Our discussion on another thread has encouraged me to dive into Model II boot ROM analysis.
There have been previous efforts in this area with very good results. Here are some examples:
http://www.vcfed.org/forum/showthread.php?30044-TRS-80-model-II-Roms
http://www.vcfed.org/forum/showthread.php?19188-TRS-80-Model-II-ROM-dump
The Model II boot rom is referred to as a shadow rom since it shadows the RAM from 0-2K. Once the boot process has completed, the ROM is replaced by RAM giving true 64K RAM available to the Z80 subsystem. You can read the Model II Technical Reference Manual, Page 19 or the Tandy 6000 Service Manual, Page 129, Section 2 for more details on how this works.
The boot rom on the Model II/16 CPU card is U11. It is a 2716 compatible 2k x 8 ROM. I’ve seen many different manufacturers, part numbers, etc. used in the MII.

On the Model 12/16B/6000 the boot rom is U54 and is the same type of chip.

I went ahead and grabbed my little TL866CS chip reader and pulled several of my Model II and M12 ROMS. So, far I’ve found 3 different versions and they match identically to the ones dumped and described in the the older threads. This is a good first step.


One issue I see immediately is that the checksums derived by the chip readers do not match those computed by Tandy’s MEMII diagnostic tool and the ROMs themselves. MEMII is an indispensable testing tool and is available in the model2archive in either of the diagnostic disks. This is important to know because the Tandy documentation uses the MEMII checksums when referring to the different ROMs. So, my first job will be to match up the Tandy checksums with the reader checksums so that we will be able to definitively to know which ROM we have in our machines by simply running MEMII and without pulling chips.
Here are the steps I will be taking in my analysis that I will detail in this thread over time:
1. Match up Tandy checksums with reader checksums.
2. Burn new 2716 EPROMS with the TL866CS and test the different boot ROMS in various machines to make sure I can properly create new ROMs. The newer ROMS are supposed to be backwards compatible so I’d like to see if we can run the latest 6000 ROM in the earliest Model IIs. These are the EPROMS I will use.
3. Test the different ROMS with the following combinations of hardware to get a definitive idea of which ROM supports which hardware. I will test with TRSDOS II 4.2 first.
a. No HDA
b. Type 1 HDA with 8MB harddrive
c. Type 2 HDA with 8x300 controller
d. Type 2 HDA with WD1010 controller
e. Type 4 HD controller
4. Time for fun. Start hacking the ROMs to do interesting things like display custom boot messages and more!
I invite everyone here to join in and submit your observations or corrections.
There have been previous efforts in this area with very good results. Here are some examples:
http://www.vcfed.org/forum/showthread.php?30044-TRS-80-model-II-Roms
http://www.vcfed.org/forum/showthread.php?19188-TRS-80-Model-II-ROM-dump
The Model II boot rom is referred to as a shadow rom since it shadows the RAM from 0-2K. Once the boot process has completed, the ROM is replaced by RAM giving true 64K RAM available to the Z80 subsystem. You can read the Model II Technical Reference Manual, Page 19 or the Tandy 6000 Service Manual, Page 129, Section 2 for more details on how this works.
The boot rom on the Model II/16 CPU card is U11. It is a 2716 compatible 2k x 8 ROM. I’ve seen many different manufacturers, part numbers, etc. used in the MII.

On the Model 12/16B/6000 the boot rom is U54 and is the same type of chip.

I went ahead and grabbed my little TL866CS chip reader and pulled several of my Model II and M12 ROMS. So, far I’ve found 3 different versions and they match identically to the ones dumped and described in the the older threads. This is a good first step.


One issue I see immediately is that the checksums derived by the chip readers do not match those computed by Tandy’s MEMII diagnostic tool and the ROMs themselves. MEMII is an indispensable testing tool and is available in the model2archive in either of the diagnostic disks. This is important to know because the Tandy documentation uses the MEMII checksums when referring to the different ROMs. So, my first job will be to match up the Tandy checksums with the reader checksums so that we will be able to definitively to know which ROM we have in our machines by simply running MEMII and without pulling chips.
Here are the steps I will be taking in my analysis that I will detail in this thread over time:
1. Match up Tandy checksums with reader checksums.
2. Burn new 2716 EPROMS with the TL866CS and test the different boot ROMS in various machines to make sure I can properly create new ROMs. The newer ROMS are supposed to be backwards compatible so I’d like to see if we can run the latest 6000 ROM in the earliest Model IIs. These are the EPROMS I will use.
3. Test the different ROMS with the following combinations of hardware to get a definitive idea of which ROM supports which hardware. I will test with TRSDOS II 4.2 first.
a. No HDA
b. Type 1 HDA with 8MB harddrive
c. Type 2 HDA with 8x300 controller
d. Type 2 HDA with WD1010 controller
e. Type 4 HD controller
4. Time for fun. Start hacking the ROMs to do interesting things like display custom boot messages and more!
I invite everyone here to join in and submit your observations or corrections.