ROM Main Page

Introduction

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.

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

Checksums and version identification for 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 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

Network 4 Transporter ROM

Network 4 Transporter ROM code analysis

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.

ROM Programming Reference