OS/2 on ThinkPad T23 and T30

Recently I had a need to install IBM’s OS/2 on real hardware rather than in a VM, and for various reasons I wanted “genuine” IBM OS/2 and not eComStation. One of IBM’s older ThinkPads was a logical choice. A T42p would have been nice, but mine is currently out of action, awaiting EEPROM hacking. The next choice was a T30 and then a T23. The T30 and T23 ThinkPads are notable for being among the last machines on which OS/2 was officially supported by IBM.

The operating system was the refreshed MCP2 (Merlin Convenience Pack 2) from early 2002. Installing the OS itself was relatively easy, but there were some interesting challenges along the way.

It appears that the refreshed MCP2 is a must, since previous versions reportedly fail on Pentium 4 systems with more than 512MB RAM. But I didn’t try those. Continue reading

Posted in OS/2, ThinkPad | 11 Comments

SC-8820 Gripes

After a long while, I dusted off my Roland SC-8820 sound module which I bought used about 10 years ago. The goal was to drive it from an older PC via MIDI. This turned out to be a lot harder than expected, all because of a power supply.

SC-8820

The last time I used the SC-8820 was at least two moves ago and either I never had the matching power supply or I had lost it. But the SC-8820 can operate on USB power, so a missing power supply is not a problem, right? Wrong… Continue reading

Posted in MIDI, Roland, Sound | 12 Comments

IBM XENIX: One Step Forward, One Step Back

A while ago I wrote about why IBM PC XENIX 1.0 can’t work on any CPU other than a 286. But not content to leave well enough alone, I attempted to patch this version of XENIX so that it would run on a post-286 processor.

While doing that, I had to change my original assessment of the problem. IBM PC XENIX does not put garbage into the reserved word of a descriptor table entry, it actually stores data there! That makes the behavior much harder to excuse, and also much harder to fix.

After some quality time spent with a disassembler, greatly aided by the symbol table included in the xenix and xenix.fd kernel files, I established that XENIX stores the segment size in the reserved descriptor word (this is the size in the file which may differ from the segment limit). Unfortunately, all my attempts to patch the XENIX kernel failed and I could never get the installation floppy to boot.

Or so I thought. A few days ago, I more or less by accident booted the patched XENIX floppy, and lo and behold:

IBM XENIX MaintenanceIt actually worked! It turned out that in my previous attempts, I assigned 8MB RAM to the XENIX VM. That was a mistake, because IBM PC XENIX 1.0 crashes with more than 4MB RAM! Duh… such a common problem which in various incarnations plagues many, many old operating systems (for example OS/2 1.0 crashes with more than 8MB RAM). Continue reading

Posted in 286, 386, IBM, VirtualBox, Xenix | 5 Comments

The DOS 4.0 Shell Mouse Mystery

Several years ago, I noticed that in some virtual and physical environments, the DOS Shell in both IBM’s and Microsoft’s DOS 4.0x has a very odd glitch: the mouse pointer moves, but does not register any clicks… except on scroll bars, and even then only partially.

MS-DOS 4.01 Shell

On and off, I tried to find the source of the problem. I suspected the keyboard controller (with PS/2 mice), keyboard BIOS, PS/2 mouse BIOS… but never found any bug. Not long ago I finally found the cause of the problem, and it was not at all what I had expected. Continue reading

Posted in DOS, IBM, PC hardware, PC history | 28 Comments

Do You Know These Peripherals?

After a long pause, here’s another guessing game. Do you recognize the five peripherals below? This should be very easy since the manufacturers’ names are clearly visible, only the model numbers got “lost”.

Computer Peripherals

This is all 1980s-1990s hardware from (obviously) Roland and Yamaha. The oldest module was made in 1987 or so, the newest is 1999-ish.

At least three of these modules are explicitly supported by some/many DOS-based games from the late 1980s and early 1990s. The remaining two work more or less very well by virtue of backwards compatibility with one of the others.

Posted in MIDI, Roland, Sound, Yamaha | 10 Comments

What Is DXP44Q?

Today I came across a random 1996 vintage ISA sound card (no name, made in China). The only two chips worth noting on the board are an OPTi 82C930A chip and a mysterious DXP44Q—a square chip center left, to the right of the CD-ROM connector.

Sound Card with DXP44QIt’s clear enough what the OPTi chip does—it’s essentially a SB Pro + WSS clone with an integrated DAC/ADC and mixer. But what the heck is the DXP44Q chip? I had never come across it and I can’t find any documentation about it, not even who made the chip!

Unfortunately search results are completely poisoned because someone has DXP44Q on a list and now thousands of Chinese chip peddlers offer “DXP44Q” without having the slightest clue what it is or what it could possibly be good for.

There are a few photos of other sound cards with the same mysterious DXP44Q chip. Is it possible to at least determine what it does given the OPTi 82C930 datasheet? Let’s see… Continue reading

Posted in PC hardware, Sound | 12 Comments

Solaris 2.6, 7, and 8 Crashes on Pentium 4 and Later

A blog reader recently pointed to an interesting problem which affects older Solaris releases on certain systems. The symptoms (crash/reboot) may at first glance look like the previously described problem which affected Solaris 2.5.1 and 2.6, but both the cause and the set of affected systems are different.

Solaris 8 MCE TrapWhen systems based on the Pentium 4 started appearing in the early 2000s, users of several then-recent versions of Intel editions of Solaris discovered that Solaris could not be successfully booted (or installed) on Pentium 4 processors. The affected versions were Solaris 2.6 (1997), Solaris 7 (1998) and Solaris 8 (2000). On the other hand, Solaris 2.5.1 (1996) and older continued working; Solaris 9 (2003) was never affected.

The problem manifested itself as a “BAD TRAP” panic very early in the boot, often but not always accompanied by a triple fault/reboot. There was no easy way to avoid the problem, but there was a workaround which required a little bit of typing, and which was available thanks to the very helpful Solaris kernel debugger. Because the kernel debugger was available even on the installation media, it was entirely possible to engage the workaround, install the OS, and then patch the kernel.

The cause of the problem was somewhat careless coding on the part of Solaris kernel developers, combined with Intel’s ever-changing MSR (Model-Specific Register) implementation. Solaris 2.6 was the first to add support for Intel MCE, or Machine Check Exceptions. Continue reading

Posted in Bugs, Debugging, Intel, Solaris | 2 Comments

Digressions

Here’s a little story illustrating the fundamental interconnectedness of all things that I wanted to share…

1) A while ago I started researching the technology of and history behind Yamaha’s OPL2 and OPL3 FM synths (just because I was curious).

2) Sometime later I read a wholly unrelated news article about a Hungarian baby.

3) The FM synthesis technique used by Yamaha was conceived and developed by John M. Chowning.

4) Chowning reportedly happened upon the idea behind FM synthesis while experimenting with vibrato in the 1960s.

5) Vibrato Wars rage between factions disagreeing on how classical music should be played with regard to vibrato to be historically accurate.

6) In The Vibrato Thing, David Montgomery makes very sarcastic remarks (on pages 5 and 6) about the perceived unlikelihood of Fritz Kreisler (an Austrian violinist born in 1875) being able to hear Gypsies play violin.

7) Wait a second! That article about a Hungarian baby mentioned a Gypsy musician named Mihaly Fatyol who “played the dance halls of Budapest and Europe from the 1920s to the 1970s, at a time when no restaurant, no society wedding was complete without a Gypsy orchestra”. Hmm, maybe Mr. Montgomery is the one jumping to conclusions and it was not at all unlikely for an Austrian living in Vienna to hear a Gypsy violinist in a Viennese café in the late 19th century? Then again, I’d rather not take part in the vibrato wars…

Anyway, there you have it—the connection between an OPL3 chip and a Hungarian baby.

Posted in Random Thoughts | 9 Comments

ThinkPad 701 Restore Using CF Media

Thanks to a kind reader, the OS/2 Museum obtained a file archive of the ThinkPad 701 recovery CD. The 701C/701CS was also known as Butterfly thanks to its unique folding keyboard.

IBM TrackWrite KeyboardThe recovery tool appears to have been designed for all ThinkPads and desktop PCs that IBM sold during the era (circa 1995). Since the recovery CD was, well, a CD, the software was able to either boot from a specially created floppy in the target system and directly use a built-in CD-ROM, or connect a CD-ROM-less target system (such as the ThinkPad 701) over a parallel (or even serial, if one had a lot of spare time) cable to a host system equipped with a CD-ROM.

Neither of these methods sounded particularly attractive. PCMCIA-attached CD-ROMs are rather exotic, and the files weren’t even on a CD anyway. A parallel cable would have been a possibility, but since the host system needed to run Windows 3.1 (and have a parallel port), this was rejected too. Oh, and the ThinkPad 701 needs a port expander or a special cable to even have a physical parallel port connector, since it is so small.

On the other hand, the ThinkPad 701 has two PCMCIA slots, and both PCMCIA to CF adapters as well as CF cards and microdrives are inexpensive and easy to find. Better yet, with a USB to CF adapter, it’s very convenient to transfer large chunks of data to/from a modern PC or a Mac. How hard would it be to restore the Butterfly using a CF card? Not too hard. Continue reading

Posted in IBM, ThinkPad | 23 Comments

Demented Board

Last week I encountered a problem that I have never seen before with a recently acquired Socket 7 motherboard. The board was a Gigabyte GA-586HX (Rev. 1.58), a relatively uninteresting older Socket 7 board based on the well-regarded Intel 430HX chipset.

Apart from automatic voltage detection, the one distinguishing feature of this board is six memory slots rather than the usual four. That makes memory upgrading easier, although in order to get the full 512MB, one would still need at least two of the somewhat hard to find 128MB SIMMs.

What made this particular board much more interesting was that although it wasn’t in original packaging and had memory and CPU installed (four 4MB SIMMs—worthless; a K5 PR133 “goldcap” CPU—at least interesting), it looked completely unused. No signs of wear, no discoloration, and rather tellingly, no dust.

ST M48T86PC1 RTC

The board as such appeared to work well, but it had one very strange problem: It wouldn’t remember any BIOS settings. No matter what I changed in the setup, on next boot the old settings were back. The only thing that I could change was the date and time. Continue reading

Posted in Bugs, PC hardware | 14 Comments