[Coco] Creating and loading big machine code files into RSDOS

Mark McDougall msmcdoug at iinet.net.au
Tue Feb 14 17:58:50 EST 2017

On 15/02/2017 2:26 AM, Salvador Garcia via Coco wrote:

> What development tools do you use in Windows? Thanks! Salvador

For assembling, I use AS6809 (part of the ASXXX suite). Why? Because I 
develop for several different 8- and 16-bit CPUs and I prefer to use the 
same syntax for all of them. Also they're supported on most CPUs by the 
IDAPro disassembler, which means I can directly re-assemble stuff I've 
reverse-engineered using IDAPro. It also has decent macro support and a 
separate linker. And they run on several OSes, including Windows and 
Linux and don't require 'installation'.

A case in point is Knight Lore; written in Z80 for the ZX Spectrum. 
Here's the output from IDAPro in ASZ80 format...
There's a *ton* of data in there, and by using AS6809 I could simply 
copy and paste it into the Coco3 source file - comments an all!

My build environment is a Windows command shell or similar (eg 
MINGW/MSYS), with a standard makefile. Aside from being the most 
future-proof environment, it is also portable across windows, linux etc.

I also roll my own little utilities as required during the development 
process. These may include graphics conversion utilities, file format 
(bin,hex,etc) utilities, RSDOS BIN file formatters etc. These are all 
written in generic C (using MINGW) and can be invoked from the makefile 
where appropriate.

It takes less than 1 second to assemble a 32KB cartridge image, (also) 
convert it to an RSDOS BIN file, and inject it into a virtual floppy 
disk image (using either FILE2DSK or IMGTOOL). I then launch MAME/MESS 
from the same command line (most often using 
<UP-ARROW><UP-ARROW><ENTER>) and if I'm testing my cartridge image, it's 
running immediately, or if I'm testing my floppy disk image, I typically 
unthrottle MAME/MESS and execute the loader.

I get this is not everyone's cup of tea, but my focus is on efficiency 
of the development process. For me, that means a keyboard I'm intimately 
familiar with, a modern text editor on a large screen, and sub 1-second 
build times.


Mark McDougall

More information about the Coco mailing list