[Coco] The CoCo Flash lives!

Barry Nelson barry.nelson at amobiledevice.com
Thu Jun 9 03:21:02 EDT 2016

 It has been a while so I thought I would post an update here for the CoCo Flash reprogrammable ROM cartridge project. At the CoCo Fest show, Jim Brain updated my prototype with the new firmware with features I had discussed with him. Some of the new features include:

Support for 64K, 128K and even 256K cartridge ROM images. Note that to my knowledge, no 256K images exist yet. I have successfully tested both 64K and 128K ROM images.
SPI interface support. (Not yet tested)

Other already existing features include support for ROMs from 2K to 32K. Note that 2K ROMs will occupy 4K of space. Software rewritable on the CoCo 1, 2, and 3. Supports startup mode for both cart interrupt cartridges (most games) and DOS cartridges like HDBDOS/Drivewire. Customizable menu software written in Extended BASIC which loads directly from ROM bank 0. The sample menu runs on both CoCo 1/2 and CoCo 3. The board fits into a standard CoCo ROM cartridge case. The programming software is written as machine code usr subroutines and a BASIC program and can program up to 16K at one time. ROMs larger than 16K can be programmed by dividing them into 16K pieces and writing the pieces to sequentially adjacent ROM banks.

I currently have 29 different ROM images programmed into my cartridge. I will try to post a video soon demoing the cartridge.

Hardware I/O ports

0 = LED
1 = autostart
2 = SW0
3 = SW1
4 = SPI Select  (set to 0 to select the SPI port)
5 = Offset (1 = on)
6 = ID Flag (1 = show the ID values in the bank register)
7 = PGM Flag (1 = program mode)

IDFlag=0: bank_data_low
IDFlag=1: mfr_id = $11

IDFlag=0: bank_data_high
IDFlag=1: dev_id = $10


When offset is on:

$ff40 will contain a 4 bit offset, allowing 16 16k banks, or 256K total cartridge size.

The bank will be set by:

bank + A14:A12 + (offset*4)

More information about the Coco mailing list