[Coco] 6309 microprocessor project 01-16-2004
Roger Taylor
rtaylor at bayou.com
Fri Jan 16 18:26:57 EST 2004
At 02:54 PM 1/16/2004 -0500, you wrote:
>Again,
>
>Since this version of the emulator will require a 586
>preferably a Pentium I am assuming these block
>moves of 8k will require very little time, but I can
>see how this might effect NitrOS-9 or OS-9
>Level 2 though. How much time does NitrOS-9
>or OS-9 Level 2 kernel spend switching MMU
>pages as opposed to getting or putting bytes
>without the MMU page being changed.
>change.
OS-9 blasts the *heck* out of the MMU. Even with super-fast Pentium block
copies, that sounds like a huge load on the CPU. I think I would try a
GIME address translation scheme instead of doing block copies.
It's simple: ask for a 2-meg block of RAM in the emulator.
MALLOC(256*8192)
Ask for another block to hold Four 8k CoCo ROMs
MALLOC(32768)
Just take the 64k CPU address and a few GIME registers/values into account
to map directly into a malloc'ed 2-meg block of RAM on the PC:
For RAM access:
64k CPU address= is naturally $0000-$FFFF
task#= bit 0 of 65425, write only
block# = int((64k CPU address) / 8192)
offset= (64k CPU address) modulas 8192
address= [(65448+task#*8)+block#*8192+offset
If ROMs are switched in (by writing to 65502), then CPU addresses
32768-65535 would translate into the separate ROM block you malloced. This
should keep things simple so you won't have to copy ROM images in and out
of the 2-meg PC block.
I just threw this psuedo-formula together, so if I'm wrong, I'm sure
someone will correct me.
----------
Roger Taylor
More information about the Coco
mailing list