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

ISA bus 8514/A?

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

Posted in Graphics, IBM, PC hardware, Windows | 7 Comments

The XGA Graphics Chip

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.

IBM XGA Continue reading

Posted in Graphics, IBM | 5 Comments

S3 Graphics Accelerators and the 8514/A

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.

SPEA Mercury V7

Continue reading

Posted in Graphics, PC hardware | Leave a comment