[Coco] Putting cartridge images in CoCo SDC Flash, without a programmer.

Zippster zippster278 at gmail.com
Mon Jul 6 22:37:05 EDT 2015


Hi everyone,

One of the guys on the list was asking about getting Program Pak code into the
unused flash banks on the SDC, to be run from there.

I’ve always used an EPROM/FLASH programmer for this sort of thing, but gave it
a try as if I didn’t have one, since Darren’s great SDC supports writing the flash
directly.  It is definitely doable.

Here is the procedure I used in case anyone else is interested.

1) Download the .ccc file you want to put in a bank. (I used the recently added Super Logo from the archive).

2) Use a hex editor to add the preamble (header), and postamble to the file as specified by DECB
	Preamble (5 bytes) 00, 40 00 (2 byte size of code, 16k in this case), 40 00 (load address)
	Postamble (5 bytes) FF, 00, 00, 40 00 (last to bytes are exec address, may not be needed)

3) Rename file to .bin and copy into a .dsk image using CoCoDskUtil

4) Put the .dsk image on the SD card and boot up the SDC in the CoCo

5) Use the following commands to load the image and write to the flash bank (bank 7 in this case)

DRIVE 0, “IMAGE.DSK”
CLEAR 200, &H4000
LOADM”CCCFILE.BIN”
KILL MEM @7
WRITE MEM @7,&H4000,&HC000,16384-256

Your bin will be in the flash bank at this point.

To run it from the SDC-DOS prompt, type…

RUN @bank_number, R

Depending on the image it may not want to run at first (Super Logo didn’t), but since we used RUN with the R option,
simply press reset (our flash bank will still be selected), and type EXEC &HC000.

Super Logo flashed this way boots perfectly when autostart is jumpered and the flash bank is selected on the DIP.
Using the RUN @bank from the SDC-DOS prompt required the above reset and EXEC, but it works.

Anyway, I thought this was pretty neat, and although there may be a smoother way, I thought I’d share this so people
without EPROM programmers can use the flash banks for cart firmware.  :)

- Ed


More information about the Coco mailing list