• Please review our updated Terms and Rules here

Tandy 2000 BIOS

eeguru

Veteran Member
Joined
Mar 14, 2011
Messages
1,627
Location
Atlanta, GA, USA
Until the last few days, I had been under the mis-assumption that primary reason for the Tandy 2000 (an IBM 'work-a-like PC') not being compatible with quite a lot of software titles and any non-Tandy provided MS-DOS past 2.11.03, was that the 80186 was the source of the incompatibilities. And fundamentally this idea has merit as the interrupt vectors and base-addresses for integrated peripherals are not at normal PC locations. However after going down a rabbit hole over the past couple days, I've discovered that's not really why.... mostly...

It turns out the machine could, in theory, be made largely BIOS as well as MS-DOS compatible with some creative software engineering. The vector offsets aren't as big of a conflict as I once believed - especially since there are two external 8259 PICs cascaded off the internal PIC. And the few conflicts are with timers not in use.

After disassembling the BIOS, I realized most of the BIOS isn't in the BIOS! There is only 8KB worth of ROM (max 16KB) on the motherboard and it has minimal services. There is int 13h disk support for both floppy and hard-drive but only read sector, reset, calibrate and seek. And only for the purposes of boot-strap as they each stomp the vector table. There is 10h video services, but only for get/set character set and teletype. It seems there is only just enough to get a MBR loaded off disk, allow the MBR to load and install a larger BIOS supplement, and then boot DOS (which is integrated along with the BIOS supplement). I'm fairly certain even int 13h and int 10h gets completely replaced once DOS loads.

I've posted the disassembled and (nearly) fully annotated BIOS source code here if anyone wants to poke around. I didn't finish cleaning up the FDC routines. I'll get around to that later. But the annotated source code re-assembles binary bit-perfect with the exception of 4 instruction encoding fix-ups.

While I don't have it in me this week (or perhaps this year) to disassemble and annotate the loaded boot-strap from MS-DOS 2.11.03, I'll eventually return to is. It may even be possible to eventually run something like FreeDOS on the machine.

-Alan
 
As you've learned, most of the BIOS is loaded from floppy. That's one of the reasons why you can't boot the 2000 with a generic version of MS-DOS.

Tandy built the 2000 assuming that as long as they were MS-DOS compatible, they would be set. The 2000 was faster, had more memory and supported better graphics than the PC/XT line.

In reality, OS calls were too slow and many developers wrote for the IBM hardware, hastening the demise of this, and all the other "MS-DOS" compatible machines (I think the NEC APC was one also).
 
I dumped the 1MB address space of a booted machine to speed up this process. I initially used it to note the vectors and offsets trapped by IO.SYS (@seg 0060h) and MSDOS.SYS (@seg 05E0h). Some quick disassembly of IO.SYS with those entries allowed me to take a look at the hard drive routines in IO.SYS. They share a trait of the ROM hard drive routines in that they do not use DMA for data transfer nor interrupts for waiting. Like most PC IDE routines, they spin on status and PIO move each data block (8-bit wide). Since the machine used a WD1010/WD1100 MFM chipset, the fore-runner of IDE, it should be possible to map an XT-IDE like device straight into the port location used on the T2K, use a device that supports 8-bit mode like a CF card, and get a solid state hard drive with no additional ROM support needed.

I built a 1MB RAM card to fill to 896KB system RAM that works well (just 3 chips). But I originally passed on an IDE card when I saw extensive DMA and IRQ logic in the original schematics. After Tandy Assembly, I'll try to spin a quick XT-IDE style board + RAM for the T2K.
 
In reality, OS calls were too slow and many developers wrote for the IBM hardware, hastening the demise of this, and all the other "MS-DOS" compatible machines (I think the NEC APC was one also).

The APC was PC98-compatible. ISTR that you could get a version of Windows for it as well. Later PC98 machines offered Windows NT. At one time PC98 was the dominant architecture for the Japanese market (about 70% penetration). You still see it on a lot of old Japanese CNC gear (e.g. Mitsubishi).

The business with the BIOS being loaded from disk was also the situation for the Sanyo MC-500 series as well.

While you could get comparability on a BIOS level with almost any x86 box, the 2000 really suffered in the area of low-level hardware conformity. For example, the 80186 integrated DMA is nothing like an 8237. On the other hand, I believe at least one manufacturer avoided all of the 186 integrated peripherals and used legacy peripheral chips to mimic the PC.
 
I dumped the 1MB address space of a booted machine to speed up this process. I initially used it to note the vectors and offsets trapped by IO.SYS (@seg 0060h) and MSDOS.SYS (@seg 05E0h). Some quick disassembly of IO.SYS with those entries allowed me to take a look at the hard drive routines in IO.SYS. They share a trait of the ROM hard drive routines in that they do not use DMA for data transfer nor interrupts for waiting. Like most PC IDE routines, they spin on status and PIO move each data block (8-bit wide). Since the machine used a WD1010/WD1100 MFM chipset, the fore-runner of IDE, it should be possible to map an XT-IDE like device straight into the port location used on the T2K, use a device that supports 8-bit mode like a CF card, and get a solid state hard drive with no additional ROM support needed.

I built a 1MB RAM card to fill to 896KB system RAM that works well (just 3 chips). But I originally passed on an IDE card when I saw extensive DMA and IRQ logic in the original schematics. After Tandy Assembly, I'll try to spin a quick XT-IDE style board + RAM for the T2K.
Hello @eegru,

Sorry to revive this thread, nut can you share a schematic and the chips you used for your replacement RAM board for the Tandy 2000? I have some bad RAM chips but might want to build your board instead of the headache of desoldering!

Thanks!

Josh
 
Does anyone have actual backups of the mainboard ROMs anywhere for the Tandy 2000?
 
Unfortunately that appears to be the one thing they don't have.
All I can find is this post which lists disassembled roms.... But nowhere on the internet can I find the actual Binaries for the original roms. Thats not good. This board has two 2532 eproms for roms, if noone backed them up...
Unfortunately i cant say if mine are good anymore nor do I have a way of reading tms2532 eproms. I can build a tower of power to make a 2532 to 2732 to 2764 rom adapter if need be... will it fit? Dont know. Will it work? Well doesnt matter if I cant find roms.
 
All I can find is this post which lists disassembled roms.... But nowhere on the internet can I find the actual Binaries for the original roms. Thats not good. This board has two 2532 eproms for roms, if noone backed them up...
Unfortunately i cant say if mine are good anymore nor do I have a way of reading tms2532 eproms. I can build a tower of power to make a 2532 to 2732 to 2764 rom adapter if need be... will it fit? Dont know. Will it work? Well doesnt matter if I cant find roms.

Can you use the MAME ROM, or that is the wrong type of ROM for your sitaution?
 
Can you use the MAME ROM, or that is the wrong type of ROM for your sitaution?
If mame has a rom I dont know if its correct, and it needs to be in two files one for high one for low I am assuming as there are two rom sockets.

Hello @eegru,

Sorry to revive this thread, nut can you share a schematic and the chips you used for your replacement RAM board for the Tandy 2000? I have some bad RAM chips but might want to build your board instead of the headache of desoldering!

Thanks!

Josh
Bad ram chips is not a headache.. Its a blessing. Thats an easy repair. Tedious, but easy.
 
If mame has a rom I dont know if its correct, and it needs to be in two files one for high one for low I am assuming as there are two rom sockets.


Bad ram chips is not a headache.. Its a blessing. Thats an easy repair. Tedious, but easy.

Are the chips you are looking for images of U47 Odd & U48 Even?
 
I assumed they were. I could be completely wrong!

Okay, this should be what you are looking for attached to this post, from what I can tell they are BIOS revision 02.02.00

They said that U47 & U48 are "TMS2532JL-35 EPROM's" and that U47 was labeled "474600" and U48 was labeled "484A00". This think maybe the markings are checksums?
 

Attachments

Okay, this should be what you are looking for attached to this post, from what I can tell they are BIOS revision 02.02.00

They said that U47 & U48 are "TMS2532JL-35 EPROM's" and that U47 was labeled "474600" and U48 was labeled "484A00". This think maybe the markings are checksums?
Yes thats how mine are labeled. Excellent. Good job! I wonder what the 020200 roms are? The others seem to be vanilla and hard drive boot. Which is odd as I thought that rom would be on the hard drive controller card.
 
Last year I repaired a lot of Tandy 2000 computers, but only one of them had the hard drive.

According to this article the ROMs on the mainboard had to be upgraded in order to boot from the Hard Drive...

I don't have a programmer that's compatible with the older style EEPROMs on this machine so I was not able to read back the ROM, and also the labels had fallen off of about 1/2 of the ROMs in the machines in this lot. I did see the ROM labels with the two checksums mentioned above, but I never saw a different marking for the ROMs in the Hard Drive based machine, and haven't been able to find the hard drive ROMs on the Internet. @VERAULT if you find a way to dump your ROMs I'd like to see if there are differences too the "Normal" Tandy 2000 ROMs. Perhaps we will find out that the latest 2.02 ROMs are the ones with 474600 and 484A00 checksums and that those are capable of booting from a Hard Drive? Might be wishful thinking.
 
Last year I repaired a lot of Tandy 2000 computers, but only one of them had the hard drive.

According to this article the ROMs on the mainboard had to be upgraded in order to boot from the Hard Drive...

I don't have a programmer that's compatible with the older style EEPROMs on this machine so I was not able to read back the ROM, and also the labels had fallen off of about 1/2 of the ROMs in the machines in this lot. I did see the ROM labels with the two checksums mentioned above, but I never saw a different marking for the ROMs in the Hard Drive based machine, and haven't been able to find the hard drive ROMs on the Internet. @VERAULT if you find a way to dump your ROMs I'd like to see if there are differences too the "Normal" Tandy 2000 ROMs. Perhaps we will find out that the latest 2.02 ROMs are the ones with 474600 and 484A00 checksums and that those are capable of booting from a Hard Drive? Might be wishful thinking.
ITs a good read. What were the problems you found (other than RAM) on the main boards?

According to this article the ROMs on the mainboard had to be upgraded in order to boot from the Hard Drive...
Well my system has the hard drive controller board and came with an external 20mb hard drive.. So Im assuming this got the upgrade? I dont have the cables for the drive... Possibly misplaced them.
Ill have to read that post.
 
Last edited:
Back
Top