[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