Tandy 2500RSX, a powerful 386 system by Tandy Corporation

0.00 avg. rating (0% score) - 0 votes

My first introduction to computers came in primary school with the Tandy 1000RSX, an 80386SX machine running at 25 MHz. On it, I spent countless hours coding in Turbo Pascal, navigating the worlds of Mike Wiering’s Super Mario and Prince of Persia, and occasionally exploring the basics of Windows 3.1. I continued to use that machine, and at the same time became more proficient in Turbo Pascal, Windows 3.1 and Visual Basic, until secondary school, when my uncle upgraded me to a Pentium I running Windows 98 @ 133MHz and 48MB of RAM. I played with both machines until I went to university, at which point I was given an IBM Thinkpad running Windows XP at 233MHz with just 96MB of RAM. Both the Tandy and the Pentium remained in my house until around 2005, when they were recycled during a renovation. Little did I know at the time, the Tandy would become a rare and valuable piece of computing history, something I now wish I had held onto.

Over the years, I’ve searched eBay for an affordable Tandy 1000RSX, hoping to recapture this part of my childhood, but I haven’t been able to find the exact same model. In early 2024, finally my luck came when I located a Tandy 2500RSX for a cheap price on eBay. The Tandy 2500RSX, a 80386SX machine running at 25MHz, is almost identical to the 1000RSX, with the main differences being its bigger case (the 100RSX has a compact case while the 2500RSX case is full-height) and the lack of sound recording capabilities (more on this later). Given the rarity of the 1000RSX, I decided that the 2500RSX would be more than enough to help me relive my childhood and purchased the unit.

A month after my order, the Tandy 2500RSX arrived intact. This photo shows the Tandy running Deskmate from the original 100MB HDD (which still works), with a standard PS2 keyboard, a PS2 mouse, and obviously with the help of a 220v-110V step-down transformer. The Tandy was designed for the US market and only runs on 110V.

Tandy 100RSX Deskmate Bootup

Both floppy drives – a 1.44MB Tandy drive (with the classic blue eject button) and a 1.2MB drive – did not work. After some cleaning, the 1.2MB floppy drive came to live whereas the 1.44MB remained non-functional and was replaced with a working 1.44MB drive. Because Tandy uses a flat 34-pin ribbon cable (with no twist) for drive A: drive (DS0), with drive B: set to DS1, whereas traditional PCs use DS1 for drive A and DS0 for drive B with a twist in the cable to swap drive A: and B:, many vintage computing websites suggest modifying the cable or jumpers on the drive to get things to work. There are also concerns about power being supplied through the ribbon cable, damaging the drive if the cable is not modified, however the drive (and cable) that came with my machine luckily had separate power connectors. To keep things simple, I jumpered the the 1.2MB drive as DS0 and the 1.44MB drive as DS1. This way, both drive will work, just that the 1.44MB drive (my main drive) will have to be accessed as B:.

BIOS Setup

This is the BIOS setup screen for the machine, accessible by pressing F2 at startup:

BIOS setup screen

The machine comes with 1MB onboard and 2 RAM slots – you can install 2x4MB SIMM for a total of 9MB of RAM, the maximum supported. Unlike many 386s, the BIOS has options to auto-detect hard disk geometries, supporting up to 512MB disk drive (without LBA). My SanDisk 512MB CompactFlash worked fine on this BIOS with “Auto” settings, without having to resort things like ANYDRIVE or EZ-BIOS. The BIOS also has options for CPU speed (8MHz – Slow vs. 25MHz – Fast) as well as parallel port (Standard Parallel Port (nibble mode) or Bidirectional). Interestingly, this BIOS also has a full-screen help page describing the selected option, unlike some modern BIOS whose help pages do not contain any useful information:

BIOS Help Screen

The BIOS setup program can also be launched using SETUPRSX.COM. Examining this file with a text editor reveals several readable chunks of text. The file size is 30,043 bytes and will fit just nice into a 32KB EPROM. This implies that SETUPRSX.COM is merely copied from the actual BIOS binary, with maybe some modifications to make the file executable from DOS.

tandy 2500RSX BIOS binary

Upgrading VGA VRAM

On the left of the motherboard is the ISA backplane, exposing 3×16-bit ISA slots. One slot is currently used for a 3COM Etherlink III, which works well with MTCP and Microsoft Network Client 3.0 to mount a Samba v1 folder shared by my TP-Link Wifi-7 router. At the bottom left is a socket for a CR2032 CMOS battery, and two DIP-20 sockets for 2 x 256K 4-bit CMOS DRAM for the VGA graphics card:

Tandy 2500RSX ISA backplane

By default, the 2500RSX will only support 640×480 (16 colors) since it only has 256KB VGA memory. After populating the sockets with 2 x KM44C256DP-7 purchased from eBay, graphics memory is now 512KB and the 2500RSX can support up to 800×600 (256 colors) or 1024×768 (16 colors). CheckIt still can’t tell whether 256KB or 512KB VRAM has been installed and will just report Video RAM size as 256KB/512KB:

Tandy 2500RSX Checkit

With the additional VRAM installed, I tested out the extra video modes using 25SVGA31.EXE (for the Tandy 2500RSX) or RSXVGA31.exe (meant for the Tandy 1000RSX but works fine on the 2500). The included utility ACU.EXE allow you to test out all supported graphics modes:

Tandy 2500RSX Video Test

It should be noted that only 800x600x256 will work with a modern monitor while 1024x768x16 will not work, due to its usage of 48KHz non-standard horizontal sync frequency. This is good enough for me as I want to play with Windows 3.1 in 256 colors, and hence I proceeded to install the provided Windows 3.1 AGA driver by running Windows Setup from the Main application group. After a reboot, Windows now works fine in 800x600x256:

Tandy 2500RSX Windows 3.1 800x600

Changing of resolution can also be done if you run C:\WINDOWS\SETUP.EXE from DOS, select the Display menu, choose Other, and enter the path to the directory which contains the Windows 3.1 graphics drivers. Once done, the AVGA drivers will appear and you can pick a graphics mode. Running SETUP.EXE from DOS is also needed if for some reasons the selected graphic mode doesn’t work and you need to revert back to VGA.

Tandy 2500RSX Graphics Driver

I also took the opportunity to try out the Tandy DAC sound driver for Windows 3.1. Installing the driver can be done from Main > Control Panel > Drivers > Add. After restarting Windows, “Tandy DAC Wave” should show up in the list of installed drivers, and Windows should play its startup and exit sound nicely.

Tandy DAC Wave Driver Installed

Playing a simple 8kHz 8-bit mono WAVE file from the default Media Player (MPLAYER.EXE) application is however too slow, producing choppy audio, most likely due to the slow 25MHz clock speed. Smoother audio playback can however be achieved using PLAYSND, a utility designed to play WAV files using the Tandy DAC, and to a certain extent, DMSOUND, a sound player developed using the Deskmate SDK. For a demonstration, refer to the video at the end of this post.

Experimenting with SOUND.PDM

Although the Tandy 2500RSX for unknown reasons does not have the necessary circuitry for audio recording to work, SOUND.PDM’s Recording function will still attempt to record, only to play back white noises. As SOUND.PDM does not perform buffering or caching of audio data, the maximum recording duration is subject to available DOS real-mode memory:

Deskmate SOUND.PDM recording duration

Free DOS conventional memory is 615KB in my setup and SOUND.PDM is showing a maximum recording duration of 37 seconds. The default sampling rate of SOUND.PDM is 11,000 Hz, which will in theory support up to 55 seconds of 8-bit, single channel mono recording. However, Deskmate’s DESK.EXE and SOUND.PDM is also loaded into DOS conventional memory, thus reducing the available duration. By loading DESK.EXE high with LOADHIGH/LH, I was able to record for 40 seconds. To further increase the recording duration, one would have to somehow load SOUND.PDM high, for example, by packaging it into an .EXE file using the Deskmate SDK, and run LH SOUND.EXE from DOS. This is not something I would bother to attempt.

Recording for much longer duration can also be done from Sound Recorder in Windows, which is not subject to the availability of DOS conventional memory. Without knowing this at the time, I remember playing with MEMMAKER.EXE back then and (blindly) following the instructions to optimize CONFIG.SYS and AUTOEXEC.BAT hoping to achieve a longer recording duration, with no understanding whatsoever of the 640KB barrier or anything to that effects. I also did not know that SOUND.PDM supports setting the recording sampling rate to 22,000 Hz (highest quality), 11,000 (default) or 5,500Hz (lowest quality) and that setting it to 5,500Hz allows for the longest recording duration at the expenses of audio degradation.

Adding support for audio recording

The 3.5mm socket for input/output audio are missing on the Tandy 2500RSX. As such, audio can only be playback via the built-in 8-ohm speaker, with no options for an external speaker. Recording audio is also not possible as the entire audio section responsible for this has not been populated on the PCB. This can be seen in the top right of the photo below. Also in the photo is the installed 80387 math coprocessor (highlighted in yellow) and 2x4MB SIMM modules. Tandy also used a proprietary power connector for the motherboard (bottom right), instead of the more standardized AT connector.

Tandy 2500RSX Audio Section 80387

I experimented with adding back the recording capability to the 2500RSX, which does not officially support audio recording according to the TandyDAC Windows 3.1 driver release notes by Microsoft. Although several components on the PCB responsible for recording were not populated, the silkscreen and the pads for these components are still present. Specifically on the top right of the PCB, the silkscreen indicates that if pad E7 and E8 are bridged, then the circuitry expects a LINE input voltage level, whereas if pad E8 and E9 are bridged, MICROPHONE input voltage level will be expected. This gave me hope that all I needed to do was to find the right pin to feed the input audio source to, and SOUND.PDM would immediately record the input audio.

Checking the PCB revealed 2 amplifier chips in the audio section, an MCP1458 chip (highlighted in blue, containing 2 op-amps and runs on -12V/+12V) acting as a preamplifier for the input audio source. and an LM386 audio amplifier (highlighted in red, running on +12V), obviously for the 8-ohm integrated speaker. I fed the 1kHz 1.5Vpp output of the square wave generator on my AN8008 multimeter into the MCP1458 as well as the LM386 and a loud tone could be heard on the speaker, indicating that I was on the right track. However, without disassembling the entire motherboard and checking the bottom side, it is unclear which pin is meant for audio input and where the PSSJ chipset is located. I tried feeding the 1kHz signal into the second amplifier of the MCP1458 chip (which has 2 amplifiers, with one being used as preamplifier for the speaker) and SOUND.PDM was able to record a faint tone. However, no recognized audio was recorded when the output of a microphone preamplifier module purchased from AliExpress (adjusted for various voltage levels from 1V to 5V) was used as an audio source. I suspect I did not feed the audio into the correct pin and the faint tone was recorded merely due to interference.

During the process of troubleshooting, my 2500RSX suddenly no longer produced audio. Probing the LM386 with a multimeter, I realized that the INPUT- pin was now shorted to GND (the pin was meant to be connected to the output of the MCP1458). Suspecting that the LM386 had failed, I removed it from the PCB and attempted to replace with a new LM386 in SOIC packaging. However, in the process, a PCB trace lifted off! Without risking further damage to the PCB, I decided not to attempt soldering the LM386 again but instead fed the output of the MCP1458 into a PAM8403 amplifier module connected to the speaker. With this, normal audio playback was restored and I had to call it quit on the idea of adding recording capability back to the 2500RSX.

Demonstration video

The following video shows how SOUND.PDM and MUSIC.PDM work to play audio and perform recording, and how WAV playback is done using Windows Media Player (lowest quality), DMSOUND (somewhat better quality with background noises) and with PLAYSND (highest quality). It also demonstrates that you can mount Samba v1 shares using Microsoft Network Client 3.0 from MS-DOS 6.22. The video then ends with a screen of the AVGA configuration utility.

Downloads

You can download a ZIP file containing the AVGA driver, TandyDAC driver for Windows 3.11 as well as the keyboard patch (WG0974) here. It is worth nothing that without the keyboard patch, the Tandy 2500RSX PS2 keyboard port will not work in Windows 3.11 for Workgroups due to incompatible interrupt behavior.

See also

Exploring Tandy Deskmate on DOSBox v0.7.4

0.00 avg. rating (0% score) - 0 votes
ToughDev

ToughDev

A tough developer who likes to work on just about anything, from software development to electronics, and share his knowledge with the rest of the world.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>