Now that the Tandy 1000SX finally works, it’s time to set it up for something useful. By which I mean playing Sopwith off of a Gotek floppy drive emulator.

In case you’re new around here, welcome. The Tandy 1000SX is an 8088-based PC-sorta-compatible with CGA-compatible “Tandy Graphics.” Its family also got SN76489 sound, which makes it very unique in the world of DOS-based computers.

This particular Tandy has been through a lot. Back in 2019, I bought it to learn to program x86 assembly language games on. Unfortunately, when it showed up, part of the power supply literally exploded, as it went on to cook nearly all of the custom chips on the motherboard. It turns out that the feedback circuit, used for voltage regulation, had broken off the power supply PCB in shipping, and the voltage regulation no longer regulated voltage.

Over the next little while, I used it to help teach myself how to diagnose computers. I bought a bench power supply, electronic load tester, oscilloscope, a logic probe, and desoldering gun. I fixed a whole bunch of other computers along the way, but the 1000SX eluded my newfound troubleshooting skills every time. Eventually I determined that I needed to wait for some of the machine’s damaged custom chips to be available for sale.

After a couple years, I finally found both the Light Blue clock generator and Big Blue DMA/memory/video controller ICs for sale. I picked them up, put them in the machine, and then proceeded to change a number of other blown chips until I got the computer to start.

Now that the Tandy 1000SX is working again, it’s time to learn x86 assembly language. By which I mean play videogames.

Gotek

For this machine, I decided I was going to re-use the Gotek that I originally intended to go into the X1turbo. This is mostly because I haven’t finished the floppy brackets for the X1turbo yet.

This Gotek has a hole cut in it to run one of the 0.31” OLED screens. The hole is of questionable quality due to a bit of a rush job on my part. The screen kept falling out due to my crappy glue job as well, so I decided to glue the screen in better. And then I cracked it. These things are fragile!

A yellow OLED screen is hung above the first OLED screen.

I grabbed another one out of the AliExpress parts catalogue and plugged it in to make sure it wasn’t an electrical problem, and then proceeded to remove the old, dead screen. First, I loosened the hold of the hot glue with isopropyl alcohol, and pulled the screen off. Then, I made sure to file intently to make sure that the surface was flat and keyed for the upcoming glue.

I took this opportunity to paint the case to match. There’s unfortunately no Startech 3.5” to 5.25” bay adapters available in beige or white, so I sprayed both it and the butchered Gotek face plate in two quick heads-up, no-prep coats of Rustoleum Painter’s Touch 2X Semi-Gloss “Ivory Bisque1,” which seemed (in the paint aisle at Canadian Tire, having not brought a reference with me) to be a decent match for the Tandy.

At least it’s closer than black. In person, it’s a lot “whiter” than the browny-beige of the Tandy.

The bracket is significantly whiter than the tan-beige colour of the case plastic surrounding it.

HxCFE

Blog friend Famiclone found an autoboot file for the flashfloppy-equipped Gotek that offers a boot screen selector. This is a DOS “port” of the HxC File Explorer that I had been using on my Amiga.

HXCfs running on the Tandy 1000SX. It shows a list of disk images that can be bound to each drive. It is also showing a lot of supposedly invisible files made by macOS.

This is super cool. I took a side mission to try and figure out how this worked. How could a regular old DOS program control the Gotek’s advanced functionality?

Luckily, the file explorer is open source. There’s only a small bit of platform-specific implementation. The PC_HW.H header file describes the calls, and the implementation itself is very short.

The most complex part of the whole code appears to be where it reads the FAT32 filesystem off the USB stick as a raw block device, in order to figure out where the images are and tell it how to load them. There’s some very impressive code here.

After a few minutes of poking around, I determined that the “direct access” mode for the HxC is what was being used. Because the FlashFloppy firmware can itself emulate an HxC floppy emulator, it also responds to these commands.

From a casual review, Direct Access seems to be implemented by first moving to “track 255,” then overwriting sector zero with a specific header signature on it (the ASCII "HxCFEDA\0"), which the firmware recognizes as the call number and parameters for a command. The list of commands isn’t very many (NOP, change track, 300rpm enable, set raw LBA sector address, change image) but it’s enough to implement this pretty cool front end.

Nice work to Jean-François Del Nero, the creator of HxC, and nice work to bjt for the port.

Dig Dug

I ran Dig Dug to start, but was met with a “problem reading disk: abort retry fail” error as soon as it left the HxC menu. I pushed reset, and the system booted into Dig Dug. Without a working screen on the Gotek, it was a little hard to tell what it was doing or not doing. This seemed to be the case with all the other disk images I tried later, too, so it’s possible that the frontend has a bug, or I haven’t configured the FlashFloppy firmware properly.

Dig Dug title screen reads: DIGDUG press any key to start, (c) 1982 Namco, (c) 1983 Atari.

The Dig Dug title screen looks good. It asked me if I wanted “full colour mode,” and I answered yes, thinking that meant 4-bit colour, but then everything turned orange-y.

Dig Dug has turned a strange shade of orange, along with everything on the playfield.

Still, Dig Dug was entirely playable. The internal speaker on the Tandy is insanely loud, however, and I scrambled for an adjustment driver to turn it down. The only way to adjust the volume on this system is a teeny-tiny pot on the motherboard, as opposed to later Tandy 1000 models, which got an exterior-facing volume adjustment knob.

Zaxxon

Although I didn’t take any pictures because I couldn’t figure out how to pause the game, I also took advantage of the CGA version of Zaxxon. This looks great and runs well. I expected it to be much worse than the ColecoVision version of my youth, but it simply was only slightly worse. That’s a big compliment for early CGA PC games!

Now, onto the star of the show, my favourite biplane death simulator.

Sopwith

It turns out that I just barely missed the 40th anniversary of Sopwith. Blog friend Simon (fragglet) not only maintains an SDL-based port of the original game, but actually tracked down the original developers and panel-interviewed them, which is a depth of commitment to historical preservation that I have to respect.

I am flying over the dents in the ground that I made with my own plane just a few minutes prior. My score is in the negatives.

Sopwith, in case you’re unfamiliar, is a side-scrolling dogfighting simulator. It burned up an insane amount of computer-lab time for myself – yes, even more than Scorched Earth – and to this day I can’t look at the default CGA palette without thinking fondly on those little murderous flying machines. So naturally, I had to get it running on my Tandy!

Sopwith is running on my Tandy, showing the title screen which proudly proclaims it was made in Canada.

All the struggle with this machine was worth it. I then immediately hit myself with my own bomb.

In order to get Sopwith working with the Gotek arrangement, I made a copy of the Tandy MS-DOS 3.3 disk image and then used the HxC utility to copy SW.EXE onto the “disk.” Then I wrote an autoexec.bat file to automatically launch it when the computer starts up.

The keyboard controls are not super obvious: it’s a two-hander for sure. I only found out while reading this great Sopwith fan page that the “H” key will autopilot you home! Backslash (decelerate) is very annoying to hit on the Tandy 1000 keyboard, which made my flying a bit erratic, to say the least. A joystick would probably be a good thing to build for this, huh?

There is a multiplayer feature, but we had always assumed at the time that it simply didn’t work. After reading Simon’s excellent post about the system, it turns out that Sopwith’s multiplayer mode uses the early Imaginet LAN system, which was a proprietary file server for IBM PCs and Atari STs.

Sopwith was developed as a demo application for the Imaginet system that supported up to four players at a time. From examination of the source code, communication appears to have worked by having different players continually reading and writing from the same disk sector.

Go figure. I’ll have to install Simon’s Imaginot adapter program sometime, find some friends with similarly busted old PCs, string up an IPX network, and try to enjoy multiplayer Sopwith at long, long last.

Just after this next sortie into disk emulator land.

New Screen, New Home

While I was messing around with this other stuff, the new OLED screen arrived from China. I picked yellow for some reason, a decision that I now slightly regret, because it looks much worse in person than in the AliExpress pictures.

This time, I wanted to put as little strain on the new OLED as possible. I decided that I would use Shoe Goo instead of hot glue. Shoe Goo is basically waterproof rubber cement, which I hoped wouldn’t negatively react with the ribbon cable inside the OLED module. But I’d rather find out now, than on something more expensive.

The screen is installed into the case, whose new white paint unfortunately shows off the jagged hole I cut in it.

Initial tests were positive, so I started reassembling the entire mess.

Entreated by a question on Reddit, I made sure to measure the screws on the case as I put them back together. The white-painted machine screws on the front of the 1000SX are #8x32 (tpi) machine screws, and are about 5/8” long.

I chose the rearmost holes to mount the 5.25” adapter, lining it up with the metal tray on the bottom of the drive cage, which was the wrong thing to do. The front fascia comes out way farther than I had assumed. The bay adapter also sits lower than I would like it to, even though I used the topmost mounting screw hole.

The Tandy 1000SX is closed up again, with the Gotek blazing away in the front.

When I get this thing open again for an XT-CF or similar, I will be sure to change this setting. For now, the case is closed, so I can start stacking other computers on top of it again.

The nasty, jagged hole I cut for the OLED is now on full display with the new screen glowing yellow through it.

  1. One day, I would like to meet the people who name paint colours. The way I was raised, “bisque” is a kind of soup, and I don’t remember my mother ever making ivory soup for the family. For one thing, its trade is now banned by international convention.