EPROM CodeBy David Clarke [21030085++] <firstname.lastname@example.org>
This page contains downloads of the Chroma's EPROM code (for the Polaris, see Polaris EPROM Code). These files are provided as a service to Chroma owners who need to replace or update firmware, as there are no longer any "authorized" service centres. This code remains the property of Fender (or whoever might currently own the rights to Chroma products).
A .obj file is a straight binary copy of the chip contents (i.e., no header info, no encoding, no nothing). If the first byte of the EPROM is 0x4E, then the first byte of the .obj file is a binary representation of 0x4E.
For programming, load the .obj file into the program that comes with your favourite EPROM programmer, and 'program' the 2716 device.
|File||Rhodes Name||Location||EPROM Type||Mfg.||Label Info/Notes|
|O_kybdsn.obj||KBDSCAN||Z33||2716||Intel||Rev ? I/O Came with Rev 12 code|
|3_KYBDSN.obj||KBDSCAN||Z33||2716||Intel||KBDSCAN Rev 3 I/O|
|14_CBS29.obj||CBS29||Z29||2716||Intel||30-5603201 SFT 30-8200100 REV 14 CBS|
|14_CBS30.obj||CBS30||Z30||2716||Intel||30-5603202 SFT 30-8200100 REV 14 CBS|
|14_CBS31.obj||CBS31||Z31||2716||Intel||30-5603203 SFT 30-8200100 REV 14 CBS|
|14_CBS32.obj||CBS32||Z32||2716||Intel||30-5603204 SFT 30-8200100 REV 14 CBS|
|14_CBS33.obj||CBS33||Z33||2716||Intel||30-5603205 SFT 30-8200100 REV 14 CBS|
|14_CBS34.obj||CBS34||Z34||2716||Intel||30-5603206 SFT 30-8200100 REV 14 CBS|
|14_CBS35.obj||CBS35||Z35||2716||Intel||30-5603207 SFT 30-8200100 REV 14 CBS|
|14ACBS36.obj||CHROMA||Z36||2716||Intel||B6D1 CHROMA Rev 14A|
|This is the 'original' 14A chip which, as noted in the Chroma list archives, has a couple errors - most notably (1) a 'hiccup' at the end of the velocity data and (2) an error in the address for the "Set Split 18" handler address. Details on how to fix the address error are contained in the list archives (Rev 14a with Set Split 18 thread in April and May of 2000).|
|14BCBS3.obj||CHROMA||Z36||2716||Intel||CHROMA Rev 14, with the velocity table replaced with that from Rev 12|
Kybdscan software is for a 8039 processor; other (CBS) software is for a 6809 software (mem location C000 - FFFF)
Labels were as follows:
SFT 30-8200100 REV 14
©1982 CBS INC.
Line 1 and 4 were bold - all lines centred. Notch in chip to left of label.
Notch to left of label
Rev 3 I/O
(Z33 and I/O right-justified, notch in chip to left of label)
Labels approx. 11.5mm x 28.5mm
Rhodes Chroma Expander Rev 12
All original labels handwritten
|File||Rhodes Name||Location||EPROM Type||Mfg.|
Rhodes Chroma Expander Rev 14
These images were created by taking the Chroma rev 14 images and then changing the 3 or 4 bytes which differ between the Chroma and Expander.
Back in the early 90's I started to disassemble the firmware for the Chroma with an eye towards looking for 'hidden features' and possibly to rewriting things to allow the Expander to be used to actually increase the polyphony of the Chroma (and not just provide a source for 'link' programs). I was never too serious about the work, and just fiddled with the disassembly when there was nothing bettter to do (like during the long plane rides I used to have to take when I was working overseas).
Anyway, it was kind of a neat thing to do as I had not heard of anyone actually having the original source still available. About a year ago I did see parts of the source for Rev 14 (and Rev 15, apparently never released). That coupled with the fact that the Rev 14 eproms are totally full (not easily lending themselves to adding in new code) has pretty much lessened my interest in doing any more work with the disassembled source.
That being the case, I thought I might as well share what I have in that some other people may find it of interest or to carry on with it. Now you can be the first guy on your block to have commented, disassembled source for the Chroma! :->
Contains a memory map for the Chroma up to address $1FFF. (Addresses above $2000 are memory-mapped I/O and are discussed in IOSTROBE.DOC). This identifies where all the channels/instruments/programs are located, as well as the individual bit signficances, etc. The document is in Microsoft Word v6.0 format.
Provides a full decode of address $2000-$200F, which are used as memory mapped I/O. The document is in Microsoft Word v6.0 format.
This is an ASCII text disassembly of the Rev 14 firmware. The symbol names were defined by me, as were the comments.
This is a quick ASCII text disassembly of the Rev 12 firmware (using the same comment/symbol file as was used for the Rev 14 firmware). In some cases, symbol names may still have to be updated to ensure that they are Rev 12 specific (and not per Rev 14). This version was created for the purposes or compariing Rev 12 and Rev 14.
All the above is the result of my fiddling - in some cases it might not be complete (or might have some errors), but in many areas it is much better documented than the original Chroma assembler source that I saw.
Oh - while I'm at it, here are a few more things:
CHROMHEX.SYM, CHROMHEX.COM and CHROMHEX.txt
These are the symbol files and comments file that I used in conjuction with the Rev. 14 disassembly. If someone wants to continue disassembly using the same disassembler that I used, they can start exactly where I left off. CHROMHEX.TXT is the hexfile input (as used by the 6809 disassembler).
Commented assembly source files for both the Rev 2 and Rev 3 keyscan code. See "Eprom failures," March 2015, for a discussion and source files commented by Paul DeRocco .