Installing Oct ’91 NT from CD

With VirtualBox 4.3, it is possible to install the oldest known pre-release of Windows NT directly from CD, the way Microsoft intended. This is the Fall ’91 Comdex preview which only supported the x86 architecture and a very short list of hardware devices. The pre-release was available only on CD-ROM and although it was possible to install it more or less manually from DOS, there was a graphical installer on the CD-ROM.

NT 10/91 GUI Setup

However, the hardware support being as limited as it was, the only supported storage controller was Adaptec AHA-1540 or compatible with a SCSI CD-ROM attached. Fortunately this is adequately emulated by the BusLogic SCSI HBA device in VirtualBox.

Continue reading

Posted in Microsoft, NT, SCSI | 35 Comments

SMD Fun

I recently tried to revive an old ThinkPad 600 (with a 300 MHz mobile Pentium II processor). The system wouldn’t boot up and reported errors (173, 163) which are usually a good indication of a dead CMOS battery. In a 15-year old system, that’s not particularly surprising.

So I opened the memory cover on the bottom of the laptop, removed the CMOS battery from its housing, and pulled on the cable… only to break off the connector from the board instead of just unplugging the wires.

A Broken off ThinkPad Battery Connector

Unfortunately the CMOS battery connector is located right under the shell and can’t be re-attached without more or less completely dismantling the entire laptop, which I proceeded to do. Continue reading

Posted in PC hardware, ThinkPad | 2 Comments

Fantasy History at Ars Technica

Ars Technica today published an article titled “Half an operating system: The triumph and tragedy of OS/2“. Although very interesting, unfortunately the article to a significant extent engages in what can best be called fantasy history, which causes the text to contradict itself. And while it attempts to present a coherent view of the history of OS/2, the article is more a hodgepodge of facts/products/trends (PS/2, NT, PowerPC) picked at random to support an argument.

It also presents the old “geniuses at Microsoft vs. dumb IBM” story which is increasingly difficult to justify as time marches on. IBM is the bad guy, overly bureaucratic and incompetent. Yet listening to old IBMers a somewhat different picture emerges, with Microsoft being a disorganized, sloppy company producing poorly documented and buggy software. As always, there’s some truth to both sides of the story.

Let’s start with some of the inaccuracies. When OS/2 was conceived and designed, it wasn’t called OS/2 at all. In fact there is no known evidence that the name OS/2 existed before 1987. The name OS/2 had a lot to do with PS/2, but the OS itself not so much. Continue reading

Posted in IBM, Microsoft, OS/2 | 51 Comments

IBM ThinkPad 755CD

An earlier article about PowerPC-based ThinkPad 850 mentioned that the 850 was a close cousin of x86-based ThinkPads of the era. The OS/2 Museum now takes a look at one of those laptops, and interesting laptop in its own right: the ThinkPad 755CD.

ThinkPad 755CD

The 755CD’s claim to fame is the fact that it was the first-ever laptop equipped with a built-in CD-ROM drive. In October 1994, a CD-ROM reader was common but not quite standard equipment for desktop computers, and portables by definition only came with a floppy drive. The 755CD flipped things around and came only with a built-in CD-ROM drive, although it could be swapped out for a floppy drive which used the same UltraBay connector. Continue reading

Posted in IBM, ThinkPad | 12 Comments

Dongle Bungle

A few weeks ago I needed a 3Com 3C589 PCMCIA network card to run Solaris on a ThinkPad Power Series 850. The Solaris PowerPC HCL only listed 3C589 and 3C589B as supported models (and no other network adapters were listed at all), so I went looking for one of those old cards.

Of course eBay was full of newer 3C589D and 3C589E (Megahertz) variants, but I wasn’t sure those would work with Solaris. In the end I found a 3C589B with manual, driver floppy, and whopping two dongles. What could possibly go wrong?

Once the package arrived, I discovered that while the PMCIA adapter appeared to be working fine, neither of the dongles did. It was possible to plug the dongles into the card and some LEDs might blink, but no link was ever detected. Both dongles were also suspiciously loose. The short story was that while Solaris detected and initialized the card just fine, I was no closer to having a functioning network connection. Continue reading

Posted in Networking, PC hardware | 11 Comments

Cracking a ThinkPad 755C

Note: Most of the following information does not apply to any Lenovo-made ThinkPads or even IBM-made ThinkPads manufactured after circa 1999. If you have one of those laptops protected with an unknown password, please look elsewhere.

Imagine you bought, found, or were given an old ThinkPad. The hardware has very little value as such, but for anyone interested in the history of PC computing, it may be a valuable system nonetheless. These systems tend to have been reasonably well built and are fairly likely to function more or less 100% even after all this time.

If the system is 15-20 years old, chances are the CMOS battery is dead. That would normally not pose any serious difficulty, unless the previous owner was slightly paranoid and set a supervisor password, also called Privileged Access Password or PAP. You will only get as far as this:

ThinkPad POP/PAPThe PAP is bad news for two reasons: The original owner probably forgot the password or cannot be contacted at all (might easily be dead!), and the IBM engineers weren’t stupid when they designed the PAP. Continue reading

Posted in IBM, PC hardware, ThinkPad | 16 Comments

Don’t Let This Happen to You

I recently got an old ThinkPad on eBay for a modest price. The seller marked it as defective, with absolutely no warranty. Since the ThinkPad came with a port replicator (the kind with two PCMICA slots) and an external 2.88MB floppy drive, I figured that even if the laptop is completely dead, the accessories are worth it (those 2.88MB drives aren’t easy to find!). The laptop itself seemed in decent enough shape, at least from the outside.

When the laptop arrived and I looked inside, it was obvious what’s wrong with it:

Corroded EMI shield

There had clearly been a nasty leak. Probably both the main battery as well as the small standby battery (both Ni-MH) had some leakage. Based on the location, it seemed like the standby battery caused most of the damage. Continue reading

Posted in PC hardware, ThinkPad | 10 Comments

More on LOADALL and OS/2

As previously mentioned, IBM’s OS/2 1.0 and 1.1 used the 286 LOADALL instruction, even on 386 and later processors which do not support it. This was typically solved by BIOS emulation. Now there’s more information about how OS/2 uses LOADALL.

Tracing OS/2 showed that LOADALL was used to implement the PhysToVirt DevHlp (Device Helper) API. The PhysToVirt function was documented in the OS/2 DDK; its function was to create a virtual address mapping for a (contiguous) buffer in physical memory.

PhysToVirt was used by device drivers when they needed to map physical memory. This might be memory on a device or a buffer in system memory provided by caller. Since the driver might execute in the context of any process, it was not necessarily able to use “normal” pointers. PhysToVirt created a temporary mapping (selector) pointing to the given physical memory. The documentation naturally made no mention of LOADALL, but it provided a very clear hint. The relevant paragraph is worth quoting in full: Continue reading

Posted in IBM, Intel, Microsoft | 31 Comments

The Carolina Mystery

On the weekend I decided to examine my old PowerPC 604 system. The case is from a RS/6000 type 7248, but the actual system board is from a Power Series 830. This is the famous Carolina board (or “planar” in IBM-speak), which was shared by RS/6000 43P (7248) workstations and Personal Power Series 830/850 desktops (type 6050/6070). The only significant difference was that the RS/6000 boards included a SCSI controller and the Power Series boards did not.

Carolina Credits

The differences between the Power Series 830 and 850 models were again small. The 850 system case was larger (with more slots and bays, 5/5 vs. 3/3), and the 830 was only sold as a 100MHz version while the 850 was additionally available in 120 and 133MHz variants. The system board was in all cases essentially the same except for the CPU (which is soldered to the board) and L2 cache (256K on 100/120MHz models, 512K on 133MHz models, always separate module in its own socket). Continue reading

Posted in IBM, PowerPC | 6 Comments

LOADALL Strikes Again

A minor mystery recently popped up while running IBM’s OS/2 1.1 (1988), the first OS/2 version with the Presentation Manager GUI. While Microsoft’s and IBM’s releases of OS/2 were fully compatible from application perspective, there were differences in the drivers supplied and the kernel itself was slightly different.

One of the differences was that while all Microsoft’s OS/2 kernels (starting with the May 1987 beta) detected a 386 CPU and used 386-specific instructions to switch from protected back to real mode, IBM’s OS/2 1.0 and 1.1 kernels did not. IBM only used the 286-specific method (which MS’s OS/2 kernels also used, but only on 286s) of mode switching: triple fault the CPU, trigger a shutdown cycle, let the motherboard reset the CPU, and ask the BIOS to skip the POST code and jump to a specified address soon after the CPU restarts execution.

This method is not supported by most virtualization products (Virtual PC, VMware) and may not work with some recent BIOSes. But that’s not the interesting part. The really interesting part is that when running a DOS box and hence executing in real mode, IBM OS/2 1.0 and 1.1 in some cases executes the infamous 286 LOADALL instruction. In OS/2 1.0 this appears to be fairly rare, in version 1.1 LOADALL is typically executed within seconds of switching to the DOS box. Continue reading

Posted in IBM, Intel, Microsoft, OS/2, x86 | 11 Comments