Programming (or "burning") your own ROMs for upgrade purposes requires specific software, hardware and of course ROM files to be succesful.
This guide was tested and written for Ubuntu 22.04.1 LTS and Debian systems in mind.
Hardware & software
Many EPROM programmers are available and when the CoCo was still available for purchase several magazines published articles to even build your own.
This guide uses the USB XGecu programmer (model TL 866II PLUS), commonly available at an affordable price.
You will also need an EPROM eraser, consisting of a device emitting ultraviolet light to wipe out any data on an EPROM.
Installing the minipro command line utility
We'll be using the minipro command line utility to control this EPROM programmer. Follow the instructions to install it in Ubuntu.
Once installed, you can verify it has the latest firmware :
You may get a warning about outdated firmware like Warning : firmware is out of date. It's recommended to upgrade the firmware then. Check the relevant section below.
You will then need to decide which kind chip you're going to be flashing and find it in the list of supported ICs.
In this example we'll be using an AM27128ADC EPROM. To find its reference, we search the output of the minipro command :
$ minipro -L AM27128 Found TL866II+ 04.2.128 (0x280) AM27128A@DIP28 AM27128A@PLCC32
In this case our chip has 28 PIN so the first entry is the one we need to use.
"Dumping" an EPROM contents to a file
To DUMP the content of the above EPROM to a file :
$ minipro -p "AM27128A@DIP28" -r romtest.bin Found TL866II+ 04.2.128 (0x280) Chip ID OK: 0x0189 Reading Code... 0.28Sec OK
Then this file can be edited with a hexadecimal editor such as tweak.
Flashing a ROM file to an EPROM
Erasing an EPROM
Erasing an EPROM requires an EPROM eraser. This process can take a few minutes. You can dump an EPROM to a file and if such a file contains only "FF" values, it's been erased.
Writing to an empty EPROM
To flash the above EPROM with a file we can use the file we dumped before or we can use an original ROM file from the Coco 1/2, for example Extended Color Basic (ECB) 1.1. As its name indicates, ECB sits "on top" of Color BASIC, so their respective ROM files have to be combined into one.
In this example we'd like to flash ECB 1.3 to the EPROM we have. For this we need to get the Color BASIC 1.3 ROM and the Extended Color BASIC 1.1 ROMs and combine them. Such ROMs can be obtained from the Color Computer Archive or better yet, they can be compiled from TRS-80 Color Computer ROM source code. Once you've obtained both ROMs here is an example of steps to burn the resulting ROM :
$ cat extbas11.rom bas13.rom > ECB11_CB13.rom $ minipro -p AM27128A@DIP28 -w ECB11_CB13.rom Found TL866II+ 04.2.128 (0x280) VPP=13V, VDD=6.5V, VCC=5V, Pulse=200us Chip ID OK: 0x0189 Writing Code... 12.77Sec OK Reading Code... 0.28Sec OK
Firmware upgrade for the TL866 plus
You will need to download the original Windows installer (.RAR file similar to xgproV9999_setup.rar) from the XGecu website (or from this mirror), extract it, and the extract the required file before flashing it. Version 11.90 worked in this example :
mkdir XGECUsoftware && cd XGECUsoftware get https://github.com/Kreeblah/XGecu_Software/blob/master/Xgpro/11/xgproV1190_setup.rar unrar e xgproV1190_setup.rar unrar e XgproV1190_Setup.exe updateII.dat
Once you have the updateII.dat file, use it to flash your EPROM programmer :
magicfab@PC-ProDesk:~/Documents/Projets/XGECUsoftware$ minipro -F updateII.dat Found TL866II+ 04.2.125 (0x27d) Warning: Firmware is out of date. Expected 04.2.128 (0x280) Found 04.2.125 (0x27d) updateII.dat contains firmware version 4.2.131 (newer) Do you want to continue with firmware update? y/n:y Switching to bootloader... OK Erasing... OK Reflashing... 100% Resetting device... OK Reflash... OK