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 | 13 Comments

IBM ThinkPad Power Series 850

In the mid-1990s, IBM and Motorola unsuccessfully tried to create a new personal computer platform built around PowerPC RISC processors. Apple was initially a member of the alliance called AIM (Apple/IBM/Motorola) and used PowerPC processors in its own Macintosh systems for over 10 years.

PowerPC Logo

IBM’s line of machines was called Personal Power Series (PPS) and included several desktop models as well as portables sold under the ThinkPad brand. There was a very close link between the PPS machines and specific RS/6000 models. Continue reading

Posted in IBM, PowerPC | 41 Comments

Ctrl-Alt-Del Myths

In a recent interview at Harvard University, Bill Gates claimed (around 16:35 mark) that Windows uses Ctrl-Alt-Del as a logon key combination because “IBM didn’t want to give [Microsoft] a single button”. This statement is curious because it takes several facts and mixes them into something that is not even remotely true. It may be that Bill Gates never understood the technical details, or it may be that he simply forgot—after all, those decisions had been made 20-30+ years ago. Even otherwise intelligent and knowledgeable people sometimes have bizarre misconceptions about Ctrl-Alt-Del, so let’s attempt to set the record straight. Continue reading

Posted in Microsoft, PC hardware | 8 Comments

Taking Screenshots of OS/2 on ThinkPad 850

An article about OS/2 on a PowerPC-based ThinkPad 850 needed a few screenshots for illustration. Once an OS is installed and running a GUI, it’s typically possible to run a screen grab utility and capture screenshots digitally. But that’s not an option when an OS is being installed or when it is not running a windowing system. There’s of course the good old digital camera. It’s possible to take acceptable photos of a computer screen, but even with specialized equipment it’s impossible to get a perfect shot.

OS/2 PowerPC desktop

For a long time, photos seemed to be the only practical solution, but then Antoni Sawicki suggested a KVM-over-IP alternative: a Lantronix Spider, though other similar products exist. The Spider can be easily attached to the ThinkPad’s external VGA output. From a remote console it’s then trivial to take screenshots. Indeed taking screenshots of the ThinkPad 850 firmware worked beautifully. Then the OS/2 installer booted up and there was… nothing. The video signal was garbage. What a letdown! But that’s not the end of the story.

Continue reading

Posted in OS/2, PowerPC | 4 Comments

OS/2 on ThinkPad 850

The ThinkPad 850 was no ordinary ThinkPad. It was IBM’s high-end portable multimedia workstation, built around a 100MHz PowerPC 603e processor, with a list price of $12,399 (February 1996). The ThinkPad 850 was originally slated (see IBM announcement letter 195-176) to run four major operating systems: IBM’s own OS/2 and AIX, SunSoft’s Solaris, and Microsoft’s Windows NT.

The ThinkPad 850 and its smaller sibling 820 were initially announced in mid-1995 as models 6042 and 6040, respectively. In early 1996, they were relaunched under different model numbers, 7249 and 7247, perhaps to better fit into the RS/6000 numbering scheme. By that time, PowerPC editions of OS/2 and Solaris had been discontinued, and the entire Power Series brand was more or less dead. Not long after, Windows NT for PowerPC was gone, too. With only AIX left, IBM gave up on the idea of PowerPC ThinkPads, slightly refreshed the 850 with a faster CPU and better display, and rebranded it as RS/6000 Notebook 860.

Continue reading

Posted in IBM, OS/2, PowerPC | 18 Comments

The Central Point Backup Floppy Format

A reader recently asked about the “native” format of Central Point Backup (CP Backup) floppies. Diskettes formatted in this manner are somewhat tricky to work with as they do not use a standard DOS format. A session with Sydex’s AnaDisk helped shed some light on this format. An old (1992) backup on 5¼” floppies was used for analysis.

When the DIR command is ran on a CP Backup floppy, a listing of largely zero-length files is shown. If the listing is not sorted (standard DOS behavior), a message spells out that the floppy does not use normal DOS format and needs to be reformatted for DOS use. If the directory listing is sorted (4DOS or similar), the message may prove difficult to decipher.

The above should imply that CP Backup formats floppies in a way that DOS can recognize, but not work with. AnaDisk immediately shows what the “problem” is: The 5¼” diskette is formatted with a standard BPB, FATs, and a root directory, but shows that all clusters are bad. What’s worse, the BPB indicates a standard 15 sectors per track (SPT) format, but in reality the diskette is formatted with 16 SPT. This will cause severe confusion to any tool (including DOS itself) which expects the BPB to reflect the true format. Continue reading

Posted in DOS, Floppies | 28 Comments

Kids these days…

By sheer accident I stumbled on this document. In summary, it’s about a bunch of school kids working on a computer history preservation project and trying to archive a big box of floppies from George Alistair Sanger, a video game composer better known as The Fat Man. And they’re having all kinds of trouble. Inevitably this T-shirt came to mind (and yes, I do have one of those):

Kids Today...

It is is both amusing and amazing to me that someone might have trouble getting data off of a double-density 3½” floppy (Mac-formatted or not), or that anyone would even try getting software like Norton Backup or Central Point Backup running in DOSBox and expecting it to do anything useful. Continue reading

Posted in DOS, Floppies | 22 Comments