Category Archives: 386

The Future That Never Was

Microsoft OS/2 2.0 SDK Pre-Release 2, June 1990 In 1990, the strategic PC operating system of Microsoft and IBM was not DOS, not Windows, but OS/2. The first 16-bit OS/2 was initially released in 1987 with a reduced feature set, … Continue reading

Posted in 386, IBM, LAN Manager, Microsoft, OS/2, PC history, Pre-release | 72 Comments

VDS: Borne out of Necessity

In July 1990, Microsoft released a specification for Virtual DMA Services, or VDS. This happened soon after the release of Windows 3.0, one of the first (though not the first) providers of VDS. The VDS specification was designed for writers … Continue reading

Posted in 386, Documentation, Microsoft, PC history, Windows | 10 Comments

Windows 3.x VDDVGA

While working on my Windows 3.x display driver, I ran into a vexing problem. In Windows 3.1 running in Enhanced 386 mode, I could start a DOS session and switch it to a window. But an attempt to set a … Continue reading

Posted in 386, Development, Documentation, Graphics, PC history, Windows | 56 Comments

Does (E)IP Wrap Around in 16-bit Segments?

The 8086/8088 is a 16-bit processor and offsets within a 64K segment always wrap around. If a one-byte instruction at offset FFFFh is executed on an 8086, execution will continue at offset 0. This is simply a consequence of the … Continue reading

Posted in 386, 8086/8088, Intel, x86 | 9 Comments

Xenix 2.2 vs. VGA

The other day I started wondering why certain old versions of 286 and 386 XENIX look a bit weird in emulation: The characters are cut off, because XENIX sets up an EGA text mode with 8×14 character matrix but uses … Continue reading

Posted in 286, 386, PC architecture, PC history, VGA, Xenix | 14 Comments

XMVM Surgery

Last week I was prompted to take a look at the Intel Code Builder compiler from 1991, a 32-bit compiler targeting 386 extended DOS and shipping with its own DOS extender. It is what one might call an extremely obscure … Continue reading

Posted in 386, Development, Intel, PC history, Software Hacks | 10 Comments

386 Cache Coherency

I’ve been slowly chewing my way through U.S. Patent 5,724,549, titled Cache Coherency without Bus Arbitration Signals, initially filed by Cyrix Corporation in 1992 and published in 1998 (when it was utterly irrelevant, but such is the life of patents). … Continue reading

Posted in 386, Cyrix, PC architecture, PC history | 17 Comments

A Piece of History

A few months ago I received a well-used but not abused copy of Rakesh K. Agarwal’s book 80×86 Architecture and Programming (Volume II): Architecture Reference, published by Prentice Hall in 1991. This is an unusually well-informed book, no doubt because … Continue reading

Posted in 386, Books, Cyrix, Intel, PC architecture, PC history | 6 Comments

The History of a Security Hole

Warning: If you do not care for the finer points of x86 architecture, please stop reading right now—in the interest of your own sanity. A while ago I was made aware of a strange problem causing a normal user process … Continue reading

Posted in 386, BSD, Bugs, Documentation, PC history | 44 Comments

A Brief History of Unreal Mode

After a run-in with a particularly crazy manifestation of unreal mode (Flat Assembler, or fasm), I decided to dig deeper into the history of this undocumented yet very widely used feature of 32-bit x86 processors. For the purposes of this … Continue reading

Posted in 386, Corrections, Microsoft, PC history, Undocumented | 47 Comments