In order to play DOS and early Windows games, I searched eBay for a cheap laptop that can run Windows 98, preferably with built-in Sound Blaster compatible sound card as well as Ethernet and found the Twinhead A5020, which apparently has what I need. The laptop arrived within a couple of days, in good physical condition and booted Windows 98 SE just fine:
At the back is the PS2, serial, parallel, VGA ports as well as what look like USB, Ethernet and modem ports:
However, what troubled me was that the laptop also comes with a PCMCIA to Ethernet card, which is rather unusual. Why did the original owner need an external Ethernet card, if the internal one worked fine? Sure enough, I checked Windows Device Manager and the detected Ethernet entry was the PCMCIA card while the built-in port was not detected. The built-in modem was not detected, but rather there was an entry for COM2 (COM1 works well for a serial mouse), which was not an issue per se, as the correct modem driver might simply not have been installed. The USB port was not detected either, as Windows 98 will need something like nusb33e.exe to be able to recognize USB devices.
I kept my hopes high and booted up a Debian Linux Live CD to see if all hardware devices could be detected. And yes, most recent 32-bit Linux variants will still work fine on Pentium devices with sufficient memory (mine had 512MB). Debian took a good 5 minutes to boot up, and to my disappointment, only the PCMCIA card was detected. The USB, Ethernet and modem ports were not detected at all. The laptop BIOS is very simple and only contains option for COM1/COM2/LPT1 without any settings for USB or Ethernet. I would expect the BIOS to have least have legacy USB or even Wake-on-LAN support.
At this point I did a bit of research and found this link in Polish which confirmed my fears. Basically the two USB ports on this model are only for power. Internally only the VBUS/VCC and GND lines are connected while the D+ and the D- are not. Similarly for the RJ11 and RJ45 ports of this laptop, they are not for modem or Ethernet connections. The pins are simply connected to a MAX232 internally for the COM2 port! What’s more, both the RJ11 and RJ45 ports are connected to the same COM2 pins and this can be verified using a multimeter. The DB9 port on the back is for COM1. This is why Windows and Linux did not find any USB or Ethernet hardware as there are simply no Ethernet or USB chipsets on this board for such functionality! Probably, the laptop was designed for use within some specialized industrial context – the USB ports were meant to provide power to another external device with a serial interface connected to the RJ11/RJ45 ports!
Despite being taken aback by the false advertising (the laptop was sold as having USB and Ethernet functionality), I decided to make full use of it, now that I have bought it. The first thing is to install the correct sound and graphics drivers for Windows. This was easy as the display uses SiS 630/730 chipset while the sound card uses SiS 7018. Within a couple of minutes I was able to find the drivers and Device Manager now showed that all drivers had been installed:
With this, games in Windows such as Prince of Persia 3D work well. The PCMCIA Ethernet card also works great for transferring files. I then proceeded with setting up sound drivers for DOS gaming on this laptop, which involves finding the SNDTSR utility for the SiS 7018 chipset, setting the correct address in TSSND.INI, and finally starting the driver using the following command, assuming that HIMEM.SYS is already loaded:
sndinit /init sndtsr
The default emulated addresses for Adlib, Sound Blaster and MPU401 are specified in TSSND.INI:
[Resource] SB16Enabled=1 SB16Base=220 SB16IRQ=5 SB16DMA=1 MPU401Enabled=1 MPU401Base=330 GAMEPORTEnabled=1 ADLIBEnabled=1 ADLIBBase=388 GAMEBase=200
Various .SAM files containing sound samples will need to be present in the same folder (GM10MB.SAM, GM40MB.SAM and GM80MB.SAM). It took me a while to download the correct files. If the wrong set of files is used, you may receive cryptic error messages such as out of memory or the TSR may crash. Although README.TXT mentions that MPU401 General Midi support is not emulated on SiS 630 chipsets, which is used by the Twinhead A5020 laptop, I found a patched version of SNDTSR.EXE that does not have the restrictions and allows MPU401 emulation to work just fine.
If everything goes well, SNDTSR should display the emulated card addresses and set the correct Sound Blaster environment variables:
You can run SNDINIT without any parameter to perform some audio playback tests. The volume can also be set here, which will just update TSSND.INI with the new values.
With this setup, audio in most DOS games should work well. Although the TSR consumed a bit of conventional memory, I managed to maximize the amount of free memory by using CuteMouse for mouse driver and SHSUCDX for CD-ROM driver, instead of MSCDEX. I also set the laptop to boot to DOS by default by setting BootGUI=0 in MSDOS.SYS (Windows can always be started by typing WIN.COM later). DriverSpace and DoubleSpace are also disabled with DrvSpace=0 and DblSpace=0 to help save memory further. With the modifications, 577KB of conventional memory is now free, more than enough for most DOS games:
Most games I tested such as Arcade Bumpy, Prehistorik and Prince of Persia have no issues detecting the emulated Sound Blaster or MP401 cards and audio sounds great. The only issue I notice is that Prince Of Persia 2 fails to find the emulated MPU401 card and will either hang or revert to PC speaker music if MPU401 is selected for audio output. The game otherwise works well if Sound Blaster / Adlib mode is selected. I suspect the issue is unique to Prince of Persia 2 as other apps such as DOSMid or games like Super Angelo, Charlie the Duck or Charlie II have no issues playing audio via the emulated MIDI interface. On the other hand, the emulated Sound Blaster audio is not perfect and certain parts of the background music for the introduction theme of Prince of Persia 2 will sound rather odd. Still, for the most part, DOS audio works well and my favorite games are playable and enjoyable on this machine.
The ZIP file containing the drivers for this machine can be downloaded here. The DOS sound drivers are located in the SiS7018 folder. The patched SNDINIT is stored as SNDINIT.EXE while the original is stored as SNDINIT.BAK. GM10MB.OLD is the original sample set which comes with the download but does not work while GM10MB.SAM is the working sample set I downloaded from a different site. I have also included LAN_RTL_8139 folder, which is the driver for the PCMCIA card which comes with my machine. Feel free to comment below if you have any information regarding the MPU401 issues for Prince of Persia 2, I would love to be able to fix that!