Category Archives: PC architecture

The A20-Gate Fallout

A recent post explored the motivation (i.e. backwards compatibility) to implement the A20 gate in the IBM PC/AT. To recap, the problem IBM solved was the fact that 1MB address wrap-around was an inherent feature of the Intel 8086/8088 CPU, … Continue reading

Posted in IBM, Microsoft, PC architecture, PC history | 93 Comments

Floating-Point Exceptions and DOS Extenders

Recently I had a need to test the behavior of floating-point exceptions (FPEs) in environments where traditional FPE reporting is used. To briefly recap, in the original PC equipped with an 8088/8087 pair, floating-point exceptions, which are generally asynchronous events, were … Continue reading

Posted in 386, Bugs, DOS, DOS Extenders, PC architecture | Leave a comment

IBM PS/2 Model 50 Keyboard Controller

Thanks to John Elliott, a ROM dump of the PS/2 Model 50 keyboard controller (an 8742 chip) is now available. The IBM PC/AT keyboard controller (KBC) ROM has been analyzed earlier. So what exactly changed between the PC/AT and the … Continue reading

Posted in IBM, PC architecture | 1 Comment

WordStar needs address wraparound?

The CP/M compatible interface in DOS was initially documented, later forgotten, and then re-discovered every once in a while. In 1989, John Switzer described parts of the CALL 5 system call interface mechanism in a slightly hysterical article as a “back … Continue reading

Posted in DOS, PC architecture, WordStar | 11 Comments

Who needs the address wraparound, anyway?

The infamous A20 gate is well known and documented in hair-raising detail. What’s much less well documented is the real purpose of the A20 gate, that is, who actually needs the 8086 address wrap-around to be emulated in the first … Continue reading

Posted in DOS, PC architecture | 4 Comments

The Danger of Knowing Too Much

A few days ago I had to look a little closer at Microsoft’s KEYB.COM because it was misbehaving in a virtualized environment. As a reminder for those readers who perhaps forgot, KEYB.COM was the DOS keyboard “driver” with support for … Continue reading

Posted in DOS, PC architecture | Leave a comment

IBM PC/AT 8042 Keyboard Controller Commands

Anyone trying to use the classic 8042-style keyboard controller (KBC) found in the IBM PC/AT and nearly all later PCs typically runs into a problem with lack of accurate documentation. The 8042 (or 8742, or any number of compatible parts … Continue reading

Posted in PC architecture | 22 Comments

Detecting floppy drive presence and type

Detecting floppy drives is surprisingly tricky and poorly understood. The difficulty lies mainly in the interface between the floppy disk controller (FDC) and the actual drive(s). The interface isn’t particularly complex, but it isn’t straightforward, and it does not follow … Continue reading

Posted in BIOS, PC architecture | 1 Comment

DOS Memory, Managers & Extenders, Part I

To understand why the maddeningly complex world of DOS memory managers and extenders came to be, it’s necessary to understand the evolution of the PC platform. Even though memory managers and DOS extenders reached their peak on 32-bit 386 and … Continue reading

Posted in DOS, PC architecture, PC history, x86 | 27 Comments

The floppy controller evolution

The floppy subsystem in PCs hadn’t mutated over time quite as much as, say, the hard disk subsystem, but prior to its extinction in the early 21st century, the floppy disk controller (FDC) did evolve noticeably. In the original IBM … Continue reading

Posted in PC architecture | 14 Comments