Thursday, December 29, 2022

Accelerating your Tandy 1000s

The Tandy 1000s have unique graphics hardware and sound hardware that was supported for a long time.  The number of Tandy 1000s was so large that many games from prestige publishers released after 1984 would have support for Tandy 16-color graphics and/or Tandy 3-voice sound.  While there were other graphics solutions which provided 16-color full screen graphics at a resolution of 320x200 pixels, only the Tandy 1000 series had any significant support in games.  Additionally, the Adlib and other expansion sound cards did not get PC gaming support until September of 1988.  During the lifespan of the Tandy 1000s, the system speeds were generally keeping pace with games, but by the end of the 1980s the 1000 line was not getting any faster, but games and applications were becoming increasingly demanding.  In this article let's talk about the benefits and drawbacks of installing CPU accelerators in your Tandy 1000s.

The 8088-based Tandy 1000s

The original Tandy 1000 and many of the systems which followed it, the 1000 A, 1000 HD, 1000 EX, 1000 HX and 1000 SX, came with an 8088 CPU installed into a 40-pin DIP socket.  Tandy always used sockets in these systems, which allowed the user to easily upgrade the stock CPU to a slightly faster and highly compatible NEC V20 CPU (NEC μPD70108).  The V20 has a more efficient internal architecture and could process instructions faster than an 8088, which meant performance increases of approximately 15% over the 8088 at the same clock speed.  

286 Express Card

For the HX and EX, given their limited expansion capabilities, a V20 was the end of the line in terms of upgrades.  The 1000, A, HD and SX had a special accelerator expansion card built for these systems, the 286 Express Card.  This Card contained a 286 CPU running at 7.16MHz, 8KiB of cache memory and a socket for a 287 math coprocessor.  It contained a daughterboard which plugged into card and held the original 8088.  The daughterboard contained a cable which plugged into the 8088 socket on the system's mainboard.  It is not compatible with non-Tandy systems such as an IBM PC or XT.  You should not have to remove your 8087 math coprocessor.  

The performance of the 286 Express Card could come close to AT class performance, but it was certainly faster than 8088 and 8086 systems at higher clock speeds.  There were some drawbacks to the 286 Express.  First, it took up an expansion slot and the 1000/A/HD only had three slots available (while the SX had five).  Second, the card ran hot and the system could become unstable after a period of time.  A slot cooler is a feasible option only in the SX.  I read somewhere that someone had good results at reducing the heat by using using CMOS 286s.  Third, the accelerator had to be activated by a program loaded via AUTOEXEC.BAT or CONFIG.SYS, so self-booting (non-DOS) programs on floppy disks could not enjoy the higher speeds without the computer loading the driver and then resetting.  Fourth, it likes to emit a higher pitched whine at times from the internal speaker than when the accelerator is not running.  This is most noticeable in text mode, especially after one has installed a quieter fan in the system's power supply.

When the accelerator is not active, the 8088 is running the system and program compatibility will not be affected by the presence of the card.  If you are troubleshooting compatibility, the presence of a 286 Express Card will not likely be the culprit.  You can set the 8088 CPU's speed to fast or slow in the SX just as if the card was not present.  Using the DOS MODE SLOW or MODE FAST command has no effect when the 286 Express Card is activated, the CPU always runs at fast speed (7.16MHz).  You can activate the card but disable the cache, which severely impacts performance to the extent there is little difference than running the 8088 in fast mode.  The accelerator may or may not work with a V20 installed.  I recall having no issues with a V20, but someone on the Vintage Computing Forums reported that his 286 Express Card would not work with a V20 installed.

The 286 Express Card will occasionally demonstrate some compatibility issues.  I had an issue with it and the mainstay of small memory footprint mouse drivers, Cutemouse v1.9.1.  I was seeing programs crash and throw up divide by zero errors when the card activated and the driver installed.  I found an old version of the Microsoft Mouse drive, v6.02, which worked correctly with the 286 Express.  As the 286 Express relies on memory caching to maintain 286/AT levels of performance, occasionally programs may not react well.  Eye of the Beholder would show partially garbled graphics with the Tandy graphics mode selection.  The software and enough of the installation manual for the 286 Express Card can be found on the oldskool FTP.  

Topbench is an excellent program for benchmarking the performance of an older system.  Here is a comparison of the results produced by Topbench with my Tandy 1000 SX with the 8088 in slow mode, in fast mode and with the 286 Express Card activated with cache :


If you have an original Tandy 1000, not the -A with the math coprocessor socket added, the HD or the SX, then the 286 Express Card will not work with a special daughterboard.  Such a daughterboard may be impossible to find.  However, the original 1000 has a discrete 8284 clock oscillator chip whereas the 1000 A and 1000 HD and later systems do not.  This allows you to install a PC Sprint accelerator board into the earlier system and you can achieve 1.5x to 2.0x speed of the CPU depending on the crystal used.  A CPU rated for the speed that is trying to be realized is necessary for the mod to work.  Look for at least an 8088-2 or a μPD70108-8.

The 8086-based Tandy 1000s

The later Tandy 1000s which used an 8086 CPU, the SL, SL/2, RL, RL/HD had a less interesting upgrade path.  The SL and SL/2 had a socketed 8086 CPU (40-pin DIP) and could take an NEC V30 CPU (NEC μPD70116) as a replacement.  Like the 8088 to V20 replacement, the 8086 to V30 replacement improves performance with a similar level of improvement.  Make sure it is rated for 8MHz operation with a marking such as μPD70116-8.

The RL and RL/HD used an 8086 which while faster clocked than the CPU in the SL and SL/2 (9.44MHz vs. 8MHz), came in a different chip package (44-pin PLCC vs. 40-pin DIP) and was soldered to the system's mainboard.  I have never seen a V30 that came in a PLCC package, so there is no realistic upgrade path for the RL and RL/HD.  Finally, I am not sure there are accelerators which allow you to replace the 8086 with a processor from a future generation like a 286 or a 386SX or would work in the SLs, even though as all three use a 16-bit data bus for memory accesses, designing such an accelerator would be easier than an 8088 and its 8-bit memory data bus.

The 286-based Tandy 1000s

The Tandy 1000 TX, 1000 TL, 1000 TL/2 all use an 8MHz 286 installed into a 68-pin PLCC socket.  The TL/3 uses an 10MHz 286 but is still socketed.  The RLX, RLX-HD, RLX/B and RLX/B-HD use a 10MHz 286 but have their CPUs soldered to the mainboard, eliminating their ability to be upgraded with an accelerator that plugs into a CPU socket unless you went to the not trivial challenge of installing a socket.  

The TL/3 and RLXs use a "286 Combo" chipset which can handle 286 CPU speeds up to 16MHz.  If you replace the 286 with one rated for 16MHz and the 40MHz crystal oscillator with a 64MHz crystal oscillator, you could conceivably achieve a stable 16MHz speed with few compromises.  

One fairly popular upgrade was the Improve Technologies Make-it 486, which used a smaller board than some others.  This is very important for a TX, which puts the CPU socket near the front wall of the chassis, preventing longer accelerator boards from being used.  It uses a Cyrix Cx486SLC/e running at 33MHz and supported 1KiB of on-CPU cache.  A friend of mine who owns a TX reported the accelerator he had, presumably the Make-it 486, was unreliable with some games that did read-write operations on video memory like Maniac Mansion.

I-O Data PK-X486/87SL

The accelerator I have personal experience with is the I-O Data PK-X486/87SL, which was originally intended to upgrade a Japanese PC-9801 computer.  It sports a Texas Instruments TX486SLC running at 25MHz and 1KiB of cache.  It also presents a Cyrix Cx87SLC math coprocessor running at the same speed.  It will fit into the TL, TL/2 or TL/3 mainboards without issue.  It has four dipswitches, switches 1 and 4 do nothing, switch 2 turns the math co-processor off or on and switch 3 should be set to off as it reduces performance in my TL when set to on.  It was originally set differently for different types of PC-9801s. Other similar boards may use switch 1 to turn the math co-processor on and off and may use faster CPUs or CPUs which have more cache memory on-die.

In order to safely remove the socketed 286 in these systems, you will need a PLCC chip puller to remove the 286.  Nothing else is safe to use.  You risk ruining the socket or mangling PLCC chip legs if you try to take a shortcut here.  The socket has a triangular cut notch by pin 1, so use that to match the accelerator's connector before pushing it in.  Some accelerators come with a pin grid array connector which simply will not physically work with Tandy sockets.

This chip's benchmark results are all over the map, with some reported results simply not representative of the performance gain the accelerator can provide.  I would suggest that this system is roughly equivalent to a 386SX running at 20MHz with the chip installed and the cache enabled.  You might find late 16-color Tandy supporting games, like King's Quest V and The Secret of Monkey Island, rather sluggish when played on an 8MHz 286.  This accelerator makes these games run much faster and load much more quickly.  Wing Commander may still be a bit slow, does not support Tandy DAC and requires installation from the original floppy disks for 16-color graphics.  

The accelerator has no issue with my ADP-50L hard drive interface, a Roland MPU-401 interface or  the built-in serial port.  It ran with my Everex EV-657B EGA card and my Tseng ET4000AX VGA card (which has an 8-bit/16-bit jumper).  It did not like my Cirrus Logic GD-5401 VGA card which does run just fine in an 8-bit slot on an unaccelerated Tandy 1000 TL, but that is a cheap OEM card with only 256KiB of memory.  Floppy drive access using the built-in controller was out of the question.  

More concerning than the floppy drive (in this day and age) are issues with the Tandy DAC.  The Tandy DAC permitted digital sound playback via IRQ-signaling and DMA transfers in 1988, over a year before the first Sound Blasters hit the market.  The Tandy DAC achieved a respectable level of support from several game developers, which was important because the DAC made these systems almost totally incompatible with the Sound Blaster.  The Sound Blaster defaulted to IRQ7 and only supported DMA1, signals which the PSSJ had an iron grip over and does not like to share.  Most early Sound Blaster supporting games only supported those resources.  The result would be crashes and corrupted sounds when a Sound Blaster was installed in a system with a Tandy DAC.  The accelerator causes bad/corrupt sound and the occasional crash seemingly at random in my TL with DAC-supporting games.  

Benchmarking with the latest version of Topbench gave me results a which were a little too modest for the increase in speed I was experiencing, so I decided to add a few more benchmarks to the testing suite.  My TL does not have a 287 math co-processor but I enabled the math co-processor on the accelerator.  The results were all over the map :


The archive linked in this VOGONS post has a bunch of utilities that work with these types of accelerators.

The 386-based Tandy 1000 RSX

The only official Tandy 1000 machine which had a 386 installed was the Tandy 1000 RSX.  The system uses a 386SX running at 25MHz in a 100-pin QFP soldered to the mainboard.  At this point the system is almost a completely generic PC, Tandy graphics are gone and Tandy sound has been relocated to different ports most games do not know about.  You can find clip-on accelerators for these 386SX machines, look for one using a Cx486SLC or Tx486SLC without the V25 on the end.  A friend of mine complained that a clip on accelerator would always overheat and freeze the system, so you may need a heatsink or active cooling for these to work.

1 comment:

  1. We added an expansion card to our 1000A that I believe was an NEC V20 but with a cable and switch that toggled up to 7.16 MHz which certainly helped with larger and slower programs! It has been a long time and the details are foggy!

    ReplyDelete