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
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!
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
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.
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
During the development of the 8514/A, IBM clearly had ISA-based adapters. A proof of this may be found in the source code for the Windows 2.x setup program (part of the Binary Adaptation Kit, or BAK), which among other things detects the graphics hardware so that it could select the appropriate graphics driver. The comment in the source code is quite clear: Continue reading
After covering the 8514/A and its clones, it’s only appropriate to write a few words about the XGA (eXtended Graphics Array), IBM’s final attempt at establishing a PC graphics hardware standard.
The XGA was introduced on October 30, 1990, about the same time when several other companies just started selling their own 8514/A clones. The XGA was a combination and superset of VGA and 8514/A: VGA compatible, high-resolution, accelerated graphics chip. Initially, an XGA chip was built into the new PS/2 Model 90 and 90 XP, and also available as a stand-alone upgrade for existing PS/2 systems in the form of the “IBM PS/2 XGA Display Adapter/A” (a typical IBM product name). The initial price was $1,095 for an XGA with 512KB VRAM and additional $350 for a memory upgrade to 1MB VRAM.
The previous article about the IBM 8514/A graphics accelerator and clones did not mention S3′s chips because S3-based graphics cards were never 8514/A compatible, unlike the ATI Mach 8 and Mach 32 chips and others. However, the relationship between S3 chips and 8514/A is a bit more complex.
S3 Inc. (later known as S3 Graphics) was founded in 1989 and in mid-1991 it released the S3 911, the first single-chip SuperVGA GUI accelerator (the 911 designation was a reference to the Porsche 911). This was soon followed by S3 924, 928, the S3 Vision family (864/964/868/968), and finally by the extremely successful S3 Trio integrated GUI accelerators (Trio32, Trio64, Trio64V+). The 3D-capable S3 ViRGE and Savage chips never reached the popularity of their 2D-only predecessors.
On April 2, 1987, when IBM rolled out the PS/2 line of personal computers, one of the hardware announcements was the VGA display chip, a standard that has lasted for 25 years and counting. While the VGA was an incremental improvement over its predecessor EGA (1984) and remained backwards compatible with the EGA as well as the earlier (1981) CGA and MDA, an entirely new display adapter was also introduced: The IBM 8514/A. The 8514/A was the first fixed-function graphics accelerator for PCs with support of 1024×768 resolution and up to 256 colors. Continue reading
Because there can never be enough Dualatins, I obtained a Supermicro P3TDDE board. This is one of the relatively few boards which support dual Socket 370 Pentium III processors (including Tualatins) and at the same time sport an AGP 4x slot. This is not the Ultimate Museum PC as it lacks ISA slots, but it’s a nice board.
Such boards were relatively rare because by the time the Tualatins were released (2001), Intel was busy pushing Pentium 4s onto every desktop. On the other hand, there were numerous Tualatin-based server boards because the Tualatin (especially the Pentium III-S variant) had significantly better performance per Watt. Server boards typically had onboard graphics (often a Rage XL chip) and no AGP slots. Continue reading