Skip to content

TRS-80 Color Computer ROM source code

Notifications You must be signed in to change notification settings

stahta01/coco_roms

 
 

Repository files navigation

TRS-80 Color Computer ROM source code

This is a collection of 6809 assembly language sources (and the C source code for a 6809 assembler) which allow one to fully build all "rom" images for variations of the TRS-80 Color Computer. The built rom images can be used with emulators such as mame that can fully simulate a running TRS-80 Color Computer.

Most of this has been collected from internet sources. Of particular note is the classic "Unravelled" series of books which was the origin of most of the assembly code.

Provided Files

file description
a09.c a 6809 assembler slightly modified from the original found here
Makefile instructions for building via make (just run "make" to build all rom version permutations)
cocodefs.asm symbol definitions for Color Computer (memory map and constants - used during assembly)
bas.asm assembly source for Color Basic (can build versions 1.0, 1.1, 1.2, 1.3, and 2.0)
extbas.asm assembly source for Exended Color Basic (can build versions 1.0, 1.1, and 2.0)
disk.asm assembly source for Disk Basic (can build versions 1.0 and 1.1)
supbas.asm assembly source for Super Color Basic (can build version 2.0)
non-standard-changes-for-asm6809.patch ROM asm changes for asm6809 assembler To build using the asm6809 assembler, apply patch and edit makefile
non-standard-changes-for-lwasm.patch ROM asm changes for lwasm assembler To build using the lwasm assembler, apply patch and edit makefile
non-standard-changes-for-mamou.patch ROM asm changes for mamou assembler To build using the mamou assembler, apply patch and edit makefile
non-standard-changes-for-vasm.patch ROM asm changes for vasm oldstyle assembler To build using the vasm assembler, apply patch and edit makefile
README.md this README file you are here.

This was all put together under linux, but it should be straightforward enough to build everything on other platforms. For windows, msys2, cygwin, or wsl may be helpful.

When you run make the a09 assembler is compiled and is then used to build the rom files. Afterwards, you should have all of the following files (named as specified for use with mame). The Makefile includes expected SHA-1 hashes for the roms and compares them all (via "sha1sum") after assembling to ensure they match bit-for-bit the original contents of the machine ROMs.

Built Files

file description
bas10.rom Color Basic 1.0 $A000 to $BFFF in TRS-80 rom
bas11.rom Color Basic 1.1 $A000 to $BFFF in TRS-80 rom
bas12.rom Color Basic 1.2 $A000 to $BFFF in TRS-80 rom
bas13.rom Color Basic 1.3 $A000 to $BFFF in TRS-80 rom
bas20.rom Color Basic 2.0 $A000 to $BFFF in TRS-80 rom
extbas10.rom Extended Color Basic 1.0 $8000 to $9FFF in TRS-80 rom
extbas11.rom Extended Color Basic 1.1 $8000 to $9FFF in TRS-80 rom
extbas20.rom Extended Color Basic 2.0 $8000 to $9FFF in TRS-80 rom
disk10.rom Disk Basic 1.0 $C000 to $DFFF in TRS-80 rom
disk11.rom Disk Basic 1.1 $C000 to $DFFF in TRS-80 rom
supbas20.rom Super Basic 2.0 $C000 to $FFFF in TRS-80 rom
supbas20p.rom Super Basic 2.0 (pal) $C000 to $FFFF in TRS-80 rom
coco3.rom Full Color Computer 3 ROM image (concatenation of extbas20.rom, bas20.rom, supbas20.rom)
coco3p.rom Full Color Computer 3 (PAL) ROM image (concatenation of extbas20.rom, bas20.rom, supbas20p.rom)
*.lst assembly listings full listings for each assembled rom (for information only)
auto_* preprocessed files (just used during assembly - you can delete them)
a09 the compiled 6809 assembler itself

Running make clean will remove all the built files.

Releases

No releases published

Packages

 
 
 

Languages

  • Assembly 82.0%
  • C 17.1%
  • Makefile 0.9%