[Coco] COCO4 Emulator
Mark McDougall
msmcdoug at iinet.net.au
Sat May 6 00:10:30 EDT 2006
RJRTTY at aol.com wrote:
> I think emulating a coco4 would be a good first step to actually
> building a coco4. What's wrong with that. You could write the
> software for it to make it work and have it ready before you actually
> build it and test it out to where everybody would be happy with it.
> Sounds like a plan to me.....
Well, perhaps that's a different proposition again, but here's something to
consider...
Take, for example, network emulation.
If you were *only* interested in doing an emulator, then the easiest option
is to interface to the host (PC) network stack. In fact, running under
windows etc you don't even have the option to talk to the ethernet card
hardware directly - you can only interface at the application level of the
OS. So any ethernet 'emulation' done on a virtual Coco 4 would most likely
be the upper layers of an IP stack implemented on the 6809 and 'hooked' in
to the windows IP stack at some level.
Conversely, if you were interested in designing a physical Coco 4, then
obviously you'd be talking to a real ethernet card connected to the CPU. In
this case you are talking to hardware registers and would require not only
the IP stack, but also the ethernet card driver as well running on the 6809.
You could of course preempt the hardware design and actually emulate the
ethernet card completely in the Coco 4 emulator, which would give you the
opportunity to write the code that ultimately runs on the real hardware.
However, in this case you need to choose the card/chipset up front, decide
how it will interface to the coco in the real hardware, and then set about
emulating it in software.
It's a similar dilemma for the graphics - you'd need to in effect design
your graphics hardware up front and then emulate your design in software,
before writing your NitrOS9 drivers.
In a nutshell, I'm saying that designing and coding for an emulator only (of
a purely theoretical machine) wouldn't necessarily be the same as designing
and coding for real hardware - there's plenty of 'hooks' and shortcuts you
could use in the emulator that would be irrelevant to a hardware design -
and that has significant effect on your native (NitrOS9) coding.
Regards,
--
| Mark McDougall | "Electrical Engineers do it
| <http://members.iinet.net.au/~msmcdoug> | with less resistance!"
More information about the Coco
mailing list