The 2013 Summer Retrochallenge started days ago, but I haven't done much so far -- I did take some time to read the various docs that came with the Micro-C package, but beyond that I've been caught somewhere between laziness and real life demands.
I hope to get a bit more done this weekend. In the meantime, I figured I could take a few moments to describe a little bit about my development environment for this project...
For me, the biggest drawback with using the Micro-C tools is the fact that they run under DOS. I was a DOS refugee long before Bill Gates said goodbye to DOS, having been an OS/2 user in the early- and mid-90's. Alas, there is little to be done about that other than to adapt. Fortunately, the world of free software has provided an acceptable option in the form of DOSbox!
DOSbox emulates an x86 PC running DOS. This tool was originally created to enable playing DOS-era games on more modern systems, and that remains the focus of its development. Fortunately, making games work generally requires the same things as making apps work. The Micro-C tools work just fine under DOSbox.
Hear Me Roar
A compiler that runs on one system but produces code for another is called a "cross compiler". This sort of tool provides many advantages, including faster compilation times and easier integration with other (e.g. modern) tools. One problem with cross compiling is that the resulting code needs to be loaded onto the target system before it can be run and tested. An emulator for the target system can make this task a lot more convenient.
One of the best CoCo emulators is called Xroar. Xroar was actually written to emulate the Dragon, but the two systems are so similar that adding CoCo support must have seemed an obvious addition. In any event, Xroar works and provides stable and accurate emulation of the CoCo. It also provides options for quickly loading code -- perfect for a rapid development cadence!
Sometimes there is just no substitute for running on real hardware. Loading code on a stock system can be slow and awkward. Doing that might include audio playback through the cassette port, or even managing physical diskettes. File transfers over the serial port are another option.
Using the serial port requires software running on the CoCo. A good option for that is a machine code monitor. Fortunately the Micro-C package includes such a monitor, called MON09. Along with the ability to load code and modify memory, MON09 is capable of examining and modifying registers, setting breakpoints, etc. It is a great development tool for working with the CoCo. I'll describe my modifications to MON09 for the CoCo in a later post.
Well, that is enough for now. I should have a bit more available soon. Until then...stay tuned!