OS/2 2.0 LA and “Large” IDE Disks

Attempting to boot OS/2 2.0 LA (Limited Availability) on many systems built in the last 20 years often results in the following crash:

OS/2 2.0 LA Trap 0

The trap screen claims there was an exception (Trap 0 or division overflow) in device driver A:, but that’s not quite true. The crash occurred in the disk driver (DISK01.SYS) which handles both the A: floppy drive and the C: etc. hard disks. Continue reading

Posted in IDE, OS/2 | 4 Comments

Twenty Years Ago Today…

On July 24th 1993, Microsoft finalized the first release of Windows NT, labeled version 3.1 “to avoid confusion”. This was a big day for Microsoft, although the practical impact on the computer industry was not particularly big, at least not immediately.

Windows NT 3.1 Disks

After years of hyping up a vaporware product originally known as N-10 and NT OS/2, Microsoft finally laid its cards on the table. Windows NT 3.1 was a modern 32-bit, portable operating system, with support for multiprocessor systems. It was designed by a core team of mostly ex-DEC engineers, all experienced system developers, led by David Cutler. But with its 12MB minimum RAM requirement (x86 version; 16MB for the RISC version), NT 3.1 was never going to be anywhere close to a mainstream OS—not in 1993 when MS-DOS and Windows 3.1 reigned supreme. Continue reading

Posted in Microsoft, NT | 6 Comments

UNIX Alphabet Soup

When reading historical UNIX documentation or source code, one is likely to come across various terms and acronyms that are now more or less completely forgotten, even among current developers of UNIX or UNIX-like systems. These acronyms might be the names of tools, directories, organizations, products, or documents.

Following is a random assortment of terms, with brief explanations where appropriate. Note that most acronyms still in current use are not listed. Continue reading

Posted in UNIX | 3 Comments

Preserving Floppies

For many years, software was delivered predominantly on floppies. This was true especially in the world of PCs where by definition (almost) every system contained at least one floppy drive and prior to the mid-1990s and mass arrival of CD-ROMs, there was no other standardized distribution medium (compare e.g. with UNIX workstations where software was typically delivered on tapes).

Since floppies, or indeed any storage medium, do not have unlimited lifespan, there is a need to preserve the contents of floppy disks. As time marches on, this is becoming a more pressing issue, especially with 5¼” disks; ironically, finding functioning drives is becoming harder than locating error-free floppies. But even with error-free disks and working drives, the next question is how exactly to preserve the data. There are numerous options, each with advantages and drawbacks. Continue reading

Posted in PC history, Virtualization | 25 Comments

ATI mach8/mach32/early mach64 Documentation?

It’s a long shot, but I’m looking for programming documentation for ATI’s mach8/mach32 and early mach64 chips (prior to 1996 or so). The earlier documents may have only existed in paper form. These used to be available from ATI but that was a long time ago. I’d be obviously happy to pay for shipping and other costs if physical items were involved.

I’m especially interested in mach8 and mach32 register references and programming guides, plus any sample code ATI may have had (I have the mach64 SDK and sample code disks, but nothing for mach8/mach32). I do have several documents describing the latter-day mach64 derivatives (Rage XL etc.) but am interested in the earlier chips, mach8/mach32 and the earlier mach64 GX/CX chips.

Posted in ATi, Documentation | 37 Comments

BSD Buglets

Last week I ran into two wholly unrelated problems while researching the history of BSD-derived Unix systems on PCs. Both are classics in their category and merit a closer look.

Y2K Strikes Again

The first issue is a very typical Y2K bug found in 386BSD 0.0 and 0.1. When the system comes up (if it does—it’s not easy to bring up 386BSD 0.x on anything remotely modern!), it shows the system date as January 1, 1970, i.e. the beginning of the UNIX epoch. This is not merely a cosmetic issue.

For example when rebuilding the 386BSD kernel, or indeed any software which uses the make utility, the source files will be timestamped 1992 or later, but the object files will be timestamped 1970. As a consequence, the object files will be always out of date and make will be forced to rebuild them. It gets much worse if the system is networked. It is possible to correct the date manually but it will be reset to 1970 every time the system boots, which is rather unsatisfactory. Continue reading

Posted in BSD, UNIX, x86 | 11 Comments

PC DOS Retro

There’s a new DOS history and reference information website called simply “PC DOS Retro Page”. The site includes several reference pages (DOS commands, drivers, functions, internal structures) as well as a very extensive timeline of DOS releases.

Vernon Brooks, the site’s creator, worked as PC DOS lead developer at IBM. That ought to make the site rather more authoritative than most!

Posted in DOS | 20 Comments

If you ENTER, you might not LEAVE

I’ve recently spent some time debugging curious hangs/aborts in two more or less exotic operating systems, Plan 9 and QNX 4.25. Both turned to be caused by the same innocuous-looking BIOS change, even though the circumstances were somewhat different and the symptoms initially didn’t look similar at all.

With Plan 9, the system simply hung during boot. With QNX 4.25, the graphical installer aborted (without any obvious hint as to what might be going wrong) soon after beginning to detect devices. QNX itself continued to work.

Investigating the Plan 9 hangs was somewhat easier because the system died soon after the error occurred. The proximate cause turned out to be a corrupted stack pointer, never a good thing. Continue reading

Posted in Intel, x86 | 9 Comments

Why I Don’t Want a Laptop with a Glued-In Battery

Here’s why:

A Sick Battery

Not much to add really… in this case, the laptop wasn’t damaged because the battery simply forced its way out of the shell. If it had been glued in, it would have destroyed the case and quite possibly also the system board.

Posted in Apple | 6 Comments

DOS Goodies at bitsavers.org

The excellent bitsavers.org last week uploaded scans of several IBM Personal Computer DOS manuals. Included are the manuals for DOS 1.0 (1982), 1.1, and 2.0, a preliminary technical reference for DOS 3.1, the DOS 3.1 user’s reference manual, and DOS 3.3 technical reference.

Note that the old DOS manual also contained programming reference information; over time, much of the content moved over to the Technical Reference, as did some of the tools (such as the linker). Continue reading

Posted in DOS, IBM | 1 Comment