2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)

EPROM Programming

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Revision as of 04:54, 4 September 2022 by MagicFab (talk | contribs) (Added some details about combining ROMs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 :

minipro -t

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)

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
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