View Full Version : Main Sources of 1000 to PC Incompatibility

Great Hierophant
August 25th, 2007, 12:06 PM
I have narrowed down the reasons why a particular IBM PC (pre-80286) program may not work on a Tandy 1000 (A, HD, EX, HX, SX, TX, RL, SL,TL) to two categories.

First, BIOS differences may make the program not be able to work at all. This problem is especially evident in those programs making use of the IBM BASIC ROMs, which do not exist on the Tandy. Unless the program is a booter, it won't be much of a problem. I have checked and all commercial programs using BASIC require the DOS-based BASICA, so they should work with GW-BASIC. More tricky are BIOS incompatibilities, but those should be relatively few.

Second, Keyboard differences may make the program not be able to receive the proper input. Here in the attached file are the simple differences between the IBM 83-key and Tandy 1000 90-key keyboards.

Terry Yager
August 25th, 2007, 04:39 PM
Then there's the fact that Tandy deliberately butchered thier OEM versions of DOS so that they couldn't be run on any other computer...


August 27th, 2007, 06:49 AM
Now let's talk hardware reasons.
1) Some models did not include a DMA controller. In order to expand the base memory or add a hard drive, you had to add a memory card that included the DMA
2) IRQ for hard drive was not the same one used by PC/XT family
3) The video modes, which could not be upgraded on most models. You were stuck at the T1K CGA+ for lack of a better description.
4) You already pointed out the keyboard incompatabilities.
5) Non standard joystick port.


August 27th, 2007, 10:05 AM
You're all somewhat correct :-) To keep things simple, let's keep our "original" system as the 5160 (PC/XT) and the "Tandy" system as the 1000 HD. Both have MFM hard drives, CGA, 640K, etc. So you run a program on the XT and it works fine, then run it on the 1000HD and it doesn't work. Here's a list of the possible reasons why:

Attempting to use routines and/or structures in the IBM BIOS (like BASIC) that don't exist in the Tandy ROM. This was extremely rare unless you were trying to run a BASIC program.
Trying to do something with CGA and/or the MC6845 that works on true CGA but does something else on the Tandy. This was uncommon.
Attempting to reference undocumented DOS calls and/or memory structures that may not be present in the Tandy-supplied OEM'd version of DOS. This was extremely rare.
As GH pointed out, some of the keyboard scancodes didn't map up correctly. This was common, but it usually never prevented a program from running, it just made the program more irritating to run since you had to hunt for the key it was looking for. I can only recall one instance of this being a real problem; one of my favorite TSRs (Respro) used ALT-numpad5 as an activator in early versions and that didn't match anything on the Tandy keyboard, so the program had to be hacked to use something else (I chose ALT-` (backtick)).

Oranges to oranges, that's about it, and as a result most programs ran just fine, really. Some of the other reasons listed don't really apply, like the joystick thing -- internally, the joystick ports were accessed via 201h just like everywhere else, so it didn't matter that the plugs were different.

If you had a little less memory, like 384K or 512K, then Tandy owners DID have an interesting problem with games that supported Tandy graphics: They autodetected Tandy, attempted to grab the RAM for the Tandy mode, and then failed because there wasn't enough free RAM left over to run the game. Search box covers at MobyGames for games that support Tandy modes and you can see things on the sticker like "512K RAM required (640K for Tandy)". This condition was solvable if the game could be configured to fall back to CGA, either through a setup/install program or command-line switch. On the few occasions it couldn't, you either had to patch the detection method yourself, call the company for support and get a patch (you could do that in those days!!), or upgrade your memory.

Great Hierophant
August 27th, 2007, 04:31 PM
Actually, the CGA on the Tandy is demonstrated to be excellent in compatibility to the real thing. The registers are all there, the composite colors are very close to the real machine, and it even supports the cyan/magenta/white palette. Early models have a real MC6845.

BASIC programs may have the most difficulty, but unless its a wacko BASIC program that refuses to run unless there is a ROM BASIC available, GW-BASIC should be able to tame it.

On the 1000, A, HD, EX and HX, you could not easily upgrade to EGA or VGA, but the SX, TX, SL, RL and TL you could with ease. The EX and HX did have a DMA controller built in. Even though the Hard Drive IRQ may be 2 instead of 5, it would make no difference to the software and at worst involve a wire to be soldered and a trace to be cut to the controller board.

August 28th, 2007, 04:42 AM
For what it is worth, I was trying to point out why HARDWARE and possibly testing/maintenance utilites may fail. This was in addition to the software reasons.

As for the IRQ in the hd controller, some of the BIOSes on the controllers did not work on the T1000 even if rerouted to IRQ2. There is a tech note about it on tvdog's archive (or is it the t1000 group on yahoo?).