Re: 6809 / 6702 puzzle

From: Rhialto <rhialto_at_falu.nl>
Date: Sun, 8 Apr 2012 21:34:42 +0200
Message-ID: <20120408193442.GA20800@falu.nl>
Hi Dave,

On Sun 08 Apr 2012 at 20:16:59 +0200, davee.roberts@fsmail.net wrote:
> There are two ways to get to the destination subroutine from the ROM
> banksw routine. A "JSR ,X" at address 0xBC0B invokes the destination 
> subroutine after changing the bank register. Another way (if the
> calling and the called subroutine are within the same bank) is via the 
> "JMP ,X" instruction at address 0xBC1F. You *** may *** have to catch
> both instructions within the 6809 emulator.

I added this to my checks, just in case. It seems that Fortran just does
a plain JSR to the check routine, at  least when starting up. I found
out that later on, when running a user program, it goes via the
bankswitcher. So I had removed the Fortran address from the JSR ,X patch
but I had to add it back anyway.

> I only have the check in the JSR instruction and my version of FORTRAN
> appears to work OK with my hack (i.e. I don't get any debug 
> messages from the I/O routines associated with the 6702). Is it
> possible you have a different version of FORTRAN to me?

After updating my checks, I get the same as you, as far as I can see.

> When you get FORTRAN to run ;-) I would be interested if you could run
> the noddy program:
> 
> print,"Hello World"
> end
> 
> and see if it runs and returns to the editor/compiler or crashes out
> with an illegal instruction (as mine does). I suspect the 6809 
> emulator that I am using (sim6809 V0.1 beta). If you use a different
> 6809 emulator then this would identify the problem - or rule it out. 
> Either way, it could save me a lot of time...

I haven't read the manual and at the moment I have to run via a remote X
connection (which is very slow with VICE) but I just tried typing RUN
after entering those lines into the editor, and it seemed to work.
(The sneaky part is that before I got the dongle check right, the run of
the program ended with an apparently bogus error message about 'invalid
access' or somesuch, and a trip to a debugger)

<BEGINNING OF FILE>
PRINT,"HALLO WERELD"
END
<END OF FILE>

(some empty lines removed)

RUN
EXECUTING...
HALLO WERELD
...STOP

(copy/paste seems to turn stuff to uppercase)

So it seems that there is some very subtle bug in the 6809 emulator
you're using (since so many other things work fine for you).
I have wondered if there is some instruction set validator somewhere,
since we have been restructuring a lot in the emulator I started with
and it would be nice to be able to check it doesn't break.

> Dave
Cheers,
-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- There's no point being grown-up if you 
\X/ rhialto/at/xs4all.nl    -- can't be childish sometimes. -The 4th Doctor

       Message was sent through the cbm-hackers mailing list
Received on 2012-04-08 20:00:10

Archive generated by hypermail 2.2.0.