[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Disk ][ Launcher (was: Late night musings...)
Will Baguhn <wbaguhn@nyx10.cs.du.edu> wrote:
> In article <50a5s8$o9f@darla.visi.com>, Nathan Mates <nathan@visi.com> wrote:
> >In article <hu83860@pro-palmtree.cts.com>,
> >Richard Der <rder@pro-palmtree.cts.com> wrote:
> >>nparker@cie-2.uoregon.edu (Neil Parker) wrote:
> >>>You can't just emulate one piece of hardware--you have to emulate
>
> >another), and other fun tricks. What I'd bet the Mac emulators for the
> >Amiga do is run the code at full speed, but have the mac "hardware"
> >memory protected. That way, only when the hardware is hit does the
> >emulator take over and do something special.
> >
> > The GS has none of that functionality, so the only way to really
> >see if an instruction will cause a reference to the "hardware" (Cxxx,
> >plus the currently displayed screen if you're not running the code in
> >a bank that is displaying the screen) is to verify each and every
> >instruction. Anything involving only registers would be simple--- see
> >if it won't trigger a memory access, and go on from there. Anything
> >hitting an arbitrary memory address would hhave to have that address
> >checked to see if it'll cause a hit on hardware, and specially
> >processed if so.
>
> How about the trace interrupt?
The 65816 does not have a trace interrupt. You might be thinking of the
8086.
The closest thing the 65816 has is the ABORT pin, which is intended to
be used with external hardware to implement a virtual memory system. It
is not perfect, because it cannot cleanly abort every instruction.
In any case, this is not useful for tracing instructions, as it will
just cancel the instruction and leave you where you started.
The next best option would be inserting a BRK or COP after each
instruction, but that still means working out the length of the
instruction, and handling all branch instructions specially.
--
David Empson
dempson@actrix.gen.nz
Snail Mail: P.O. Box 27-103, Wellington, New Zealand