[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Disk ][ Launcher (was: Late night musings...)



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?

>   About the only thing that an Apple // emulator for a GS could pull
>off without much work (writing such a beast for a //e or //c would be
>hellacious at best, and they barely would have the processor speed to
>do so anyhow) natively is the support of the internal sound and video
>systems. Other emulators have to do that also, but the GS can do that
>trivially.
>
>Nathan Mates
>--
><*> Nathan Mates http://www.visi.com/~nathan/      <*>
># What are the facts? Again and again and again-- what are the _facts_?
># Shun wishful thinking, avoid opinion, care not what the neighbors
># think-- what are the facts, and to how many decimal places?  -R.A. Heinlein

It'd be slow, but using the trace interrupt one could theoretically
have it run each instruction at full speed, store all the registers,
check the next instruction and if it was nothing "special" it would
allow it to continue on processing... if it's something special, it
could perform the special stuff, advance the PC on stack appropriately,
and keep going.
-- 
       - Rev. SPQR                       1WSW team member and proud of it
geek code: finger wbaguhn@nox.nyx.net - http://www.nyx.net/~wbaguhn/home.html
Flavour of the day: