This page consolidates all of the ROM and Z-80 related areas of the site, in an effort to bring some more organization and order to the chaos.
ROM Main Page
Introduction
ROMs Compared / Checksums
These pages will show the checksums of the various ROMs and identify what version / model they correspond to. The pages also include links on how to check your own ROM CRC.
Model I ROMs (includes Clones)
Checksums and version identification for Model I ROMs
Model III ROMs
Checksums and version identification for Model III ROMs
Model 4 ROMs
ROMs Disassembled
These pages disassemble the ROMs and attempt to provide detailed information as to what each line does.
Model I Level 1 ROM
Model I Level II ROM Disasembled and Explained
Online interactive web pages
Source File
Model 1 ROM Source Code which can be compiled - By KiwiSinceBirth
This source code has support for both V1.3 (the default), and V1.2 of the ROMS. For more information on the differences see references below. Several additional (optional) patches can be applied (e.g. FreHD autoboot) be setting a #DEFINE in the code. But ultimately, this can compiled into the actual ROM.
Main Features
- Fully Compilable Source Code for Model 1 Level 2 12KB ROMS.
- Both 1.3 and 1.2 versions, plus EACA clone hardware.
- Several optional patches have been included via #DEFINE
While originally based off a (low quality) disassembly, the following improvements have been made:
- Replaced all disassembler generated labels with meaningful labels.
- Ensured all jumps (JR and JP) reference valid code labels.
- Replaced all $3xxx hardware references with .EQU definitions.
- Replaced all $4xxx buffer references with .EQU definitions, with a single .EQU $4000 reference.
- Replaced all $xx byte references with appropriate decimal or ascii values, and/or .EQU definitions.
- Replaced all generated op-code with Byte .DB definitions for DataTables/Text/Constants/Etc
- Added code documentation from various sources at the code block / function level.
- Replaced incorrect op-codes, where Better Else "Trick" was used. See Reference below.
Model III Level II ROM Disasembled and Explained
Online interactive web pages
Source File
Model III ROM Source Code which can be compiled - By KiwiSinceBirth
Main Features
- Fully Compilable Source Code for Model III Level 2 14KB ROMS
- Several optional patches have been included via #DEFINE
- Based on ROM A = 9639, ROM B = 407C, ROM C = 2EF8
Build Options
There are several DEFINE's that can be set in the code (very start) to enable certain features.
- #DEFINE VIDEO50 - Enable 50Hz Video Support (Affects RTC)
- #DEFINE FREHDBT - Enables the FreHD auto boot ROM feature, ie load fre HD at start
- #DEFINE BUGFIX27 - Fix Bug 27 - 06CCH - Basic Entry Point
- #DEFINE BUGFIX28 - Fix Bug 28 - 034BH - Stack Initialisation Problem
- #DEFINE BUGFIX30 - Fix Bug 30 - 034BH - 32 char Mode, Incompatible Model 1 code
- #DEFINE BUGFIX40 - Fix Bug 40 - 05D1H - Broken "RON" Printer Status Routine
- #DEFINE SIZE16K - Will pad the end of the rom with $FF to 16KB size. useful if want to append multiple ROM images for used in large 16K paged rom
- #DEFINE DONTEND - Disable .END directive if #INCLUDEing the source inside another file
Model 4 ROMs
Unreleased Frank Durda IV Model III ROM C
NOTE: There are some errors on this page. I recommend looking at the XDROM entry instead.
XDROM - Model 4 ROM C Replacement
Model 4P Boot ROM
Network 4 Transporter ROM
TRS-80 BASIC Original Source
Bill Gates released the original 1975 source code for BASIC that formed the basis of many BASIC's including the TRS-80
You can see his release and notes at https://www.gatesnotes.com/microsoft-original-source-code
The you can download the PDF here.
Known ROM Bugs
ROM Programming Reference
Technical references for ROM addresses, entry points, and programming techniques.