About This Page
This page contains a chart (below) which tracks the ROMs known to exist which will run in a TRS-80 emulator. NO ROM CAN BE DOWNLOADED FROM THIS SITE; LINKS ARE TO GENERAL MACHINE DESCRIPTIONS ONLY.

The ROM A/B/C Checksums listed on the chart below were determined by running the MEMTEST program (which was supplied on TRSDOS disks) against each ROM under TRS32(*). If they are in bold that means that the value was one of the checksums which the program flagged as valid checksums.

The ROM checksums which Radio Shack listed as valid are:
                                
ROM AROM BROM C
AE5DDA844002
AE60DA4540BA
  40E0
  3E3E
There is 1 ROM C after which we don’t have … checksum 40E0. HOWEVER … Matthew Reed advised that TRS32 counters many hacks and equalizes them, making the checksum different than it actually is. When I ran a MEMTEST under Matthew’s DOS emulator I got a different checksum than TRS32, and yet another checksum when I ran it under Dave Keil’s emualtor (using DOSBOX, the only way to run Dave’s emulators at this point). With this, the checksums below are unreliable.
The CRC-32 and MD5 checksums are present so that you can match any ROMs you have with the chart.

Special Thanks to Matthew Reed who took the time to analyze the Radio Shack ROMs below and who then wrote up a wonderful explanation of the differences, and also to those who have found and dumped some previously missing ROMs including Kurt Baumgardner, Katz, and John Benson.

Model I-ish ROMs
Name         Manufacturer     ROM     ROM A CHK     ROM B CHK     ROM C CHK    
model1-v1.0 Radio Shack v1.0 AE5D DA84 4002
  Notes: Good
CRC-32: D8E9DFA7
MD5: 9752FBD2780B8E4CA483B198BFE0D17E

model1-v1.1 Radio Shack v1.1 AE60 DA45 3E3E
  CRC-32: 4BE1227E
MD5: 6575A2FFF1479A825B98095C40BACA24
Changes from ROM v1.0
Memory Location(s)FromToPurpose
0683H20EFH
JR NZ,0674H
20F1H
JR NZ,0676H
Correct an error where the system buzzed during the memory test using OUT (FFH),A at 0674H. This changes the jump to 0676H below the buzz routine.
1226HEA3412H
JP PE,1234H
300B
JR NC,1233H
This change fixes a bug in double precision. It is to jump if the value in Register 1 is double precision. Since this fix is 1 byte shorter, the ROM renumbers for a while.
124CHN/AB7H
OR A
Still in the double precision routine. This addition restores the memory locations back to what they were in v1.0 for the remainder of the ROM
226AH-226EH3AH A9H 40H B7H C8H
LD A, (40A9H)
OR A
RET Z
00H 00H 00H 00H 00HA bug in v1.0 caused the DATA pointer to RESTORE randomly (well, based on the memory contents of 40A9H [16553]). This removes the call to memory location causing the problem.
2FFBH00H 00H
NOP
NOP
DEH 00H
SBC 00H
Seems to be random garbage.

model1-v1.2-1 Radio Shack v1.2 AE60 DA45 40BA
  Notes: Patches out Delays and Memory Test
CRC-32: B1ABA28D
MD5: 6D4188C2624F8F0AB42D209A0DAF7F19
model1-v1.2-2 Radio Shack v1.2 AE60 DA45 40BA
  Notes: Patches out Delays and Memory Test
CRC-32: FDC1F12C
MD5: 222A7CE2DDC800A8AF4828D2263530D3
model1-v1.2-3a Radio Shack v1.2 AE60 DA45 40BA
  Notes: Good
CRC-32: 0D8A132E
MD5: CA74822EBC2803C6635A55116ECD9539
model1-v1.2-3b Radio Shack v1.2 AE60 DA45 40BA
  Notes: Good (but has slack)
CRC-32: 0A97B531
MD5: 265919F6207316A0DFCF323CD7E3A547
model1-v1.2-4 Radio Shack v1.2 AE60 DA45 40BA
  Notes: Patches out Delays
CRC-32: D6FD9041
MD5: D63BA75967F07827D1CA7BEC98C7ADFE
Changes from ROM v1.2
Memory Location(s)FromToPurpose
2FFBHDEH 00H 00H 00H
SBC 00H
NOP
NOP
DE C3 C3 44 B2
SBC C3H
JP B244H
Seems to be random garbage.

ROM v1.3
model1-v1.3-1 Radio Shack v1.3 B078 DA45 4006
  Notes: Good
CRC-32: A8E60D9A
MD5: 6F0AC8179FA01CC44720DA319CE12A92
model1-v1.3-2 Radio Shack v1.3 AED7 DA45 4006
  Notes: Heavily Patched with Odd Changes including incorrect processing of JP/JR. If you have this ROM, you should not use it.
CRC-32: 39F02E2F
MD5: 54965C287F7E7894CBBB6D571D2173F2
Changes from v1.2
Memory Location(s)FromToPurpose
0059H (89)1AH (26)00H (00)Inhibit a CHR$(26) from being returned when SHIFT-DOWNARROW is pressed; allowing those to function as a control key, and passing a third key as a control equivalent.
00FD (253)11H
LD HL,0111H
0E
LD HL,010EH
The memory location of the new Level II BASIC startup message.
0108H-021CH (264-540)“ORY SIZE RADIO SHACK LEVEL II BASIC” to “SIZE R/S L2 BASIC”
0249H (585)41H (65)60H (96)Lengthen the delay after the timing pulse is detected on a tape read from 65 to 96 before resetting the cassette input data latch.
0250H (592)76H (118)85H (133)Lengthen the wait for the data pulse from 118 to 133.
03FBH-03FDH (1019-1021)7AH 07H 07H
LD A,D
RLCA
C3H 1CH 01H
JP 011CH
Change the keyboard jump to the debounce patch routine which is now where “ACK LEVEL II BASIC” used to be. That routine pops back to 03FE.
124CH-124DH (4684-4685)B7H D1H
OR A
POP DE
D1H B7H
POP DE
OR A
Swapped the 1 byte instructions. No idea why.
206DH-20F7H (8301-8439)Permits an “@” in the PRINT anywhere instead of only first. This was a problem if you wanted to use multiple print@’s on a line.
213BH (8507)3FH (63)7FH (127)This is how high a number you can TAB to. Previously you could only TAB to the 63rd position on the current line. Now you can tab to the 63rd position on the NEXT line.
2167H (8551)A0H
JP 20A0H
81H
JP 2081H
Changes a ROM jump from 20A0H to 2081H.
2C1FH-2C42H (11295 – 11330)This is the CLOAD routine. Probably a change for the reliability of CLOAD and CLOAD? Prior ROM addressed these in the following order: start the motor, find the sync byte, get the CLOAD command line parameters, and then execute a NEW. Now, they are addressed as follows: get the CLOAD command line parameters, execute a NEW, start the motor, and find the sync byte. Possibly to prevent losing data if determining the command line parameters took too long.
2FFCH-2FFFH (12284 – 12287)00H 00H 00H 00H
NOP
C3H C3H 44H B2H
JP 44C3H
OR D
Seems to be random garbage.

HT-1080z-3 HT-1080Z v2.2 C437 DA30 40BA
  CRC-32: 48985A30
MD5: BABB628C6557BFFA4120D83315456011

LNW-80 Rom 1 LNW-80 AB79 DA45 40BA
  CRC-32: 97B888AD
MD5: 58B9725112AF58FD8F9778495F10E7FC

LNW-80 Rom 2 LNW-80 AB79 DA56 40BA
  CRC-32: CFD85C89
MD5: EBF4239876575B6935C53468C02EA0FD

System-80-ROM-1 Dick Smith System 80 Black Label A94F DA67 40BA
  CRC-32: 2BFEF8F7
MD5: CAED9BF4AD65302484044CA211D46E12

System-80-ROM-2 Dick Smith System 80 Black Label A94F DA67 40BA
  CRC-32: CCBDD9B8
MD5: 883CED6D037F8EBDA7DFDE288D6DB317

System-80-ROM-5 Dick Smith System 80 Black Label A74E DA67 40BA
  Notes: Patched with TRS-80 Print Routines
CRC-32: 3BC7421E
MD5: 598BB767B95D83B2FAB1B5494599FE01

System-80-ROM-3 Dick Smith System 80 Blue Label A94F DA67 40BA
  CRC-32: BFF36D2F
MD5: 6C734A96365BAE81C729C2E4F0F7020E

System-80-ROM-4 Dick Smith System 80 Blue Label Patched with TRS-80 Print Routines A74E DA67 40BA
  Notes: Patched with TRS-80 Print Routines
CRC-32: C0B8882F
MD5: D64FEC7D8FE026026C791F32FB212663

How to Dump Your Model I ROM
If you have a Model I and want to dump your ROM for analysis, you can use the following program. Note, it takes about 30 minutes to run on a Model I, which is why the counters/screen updates are present. If you do not wish to key all that in, and don’t mind staring at a blank screen for 30 minutes, just don’t type in the italicized lines. Remember to use a disk with at least 13K free (and to adjust line 10 to point to that drive) or you will run out of space and have to start all over.
	10 OPEN "O",1,"NEWROM/ROM"
	20 FOR X = 0 TO &H2FFF
	30 PRINT #1,CHR$(PEEK(X));
	40 IR=IR+1 : IF IR = 614 THEN IR = 0: PC=PC+5: PRINT PC"% ...";
	50 NEXT X
	60 PRINT "DONE!":PRINT
	70 CLOSE

3 Comments

  1. David Keil’s emulators are certainly useable. I run them all the time. I use Microsoft Virtual PC, which is a free download from MS. VPC can run all kinds of things – DOS, Linux, Windows 95/98/2000/XP/Vista/7, OS/2, even Mac OS X etc. etc. Sort of like DOSBOX but with way more capabilites.

    You install DOS in it, then fire up your virtual DOS and install the emulator and your .DSK files onto the virtual C drive. Nothing like seeing LDOS boot up full screen on a 24″ LCD!

    Reply
  2. Dan – The issue is that Dave’s emulators are not otherwise compatible with XP and beyond. They can be run under DOSBOX of Virtual PC, but the point is that those are a LOT of hurdles to run an abandoned emulator, particularly when there are plenty of current ones. David’s emulator does only 2 things that no other emulator does, and I do run DOSBOX to use those: It has Model III 1500 Baud implementation, and it can run the TRS-80 at full PC speeds without loss of keyboard or disk. Other than those 2 things, there are plenty of emulators which do not require extraordinary measures to run.

    Reply
  3. where could i find this memtest tool? i have a trsdos disk image for the model4, but i cannot find it. is it on a separate disk?

    thanks!
    david

    Reply

Leave a Comment.