Author Archives: Michal Necasek

The PC floppy subsystem

The PC floppy subsystem, ubiquitous and indispensable until the early 21st century, suffered the typical fate of many “legacy” subsystems: The initial design was adequate, but did not adapt to newer and more complex hardware. With the original IBM PC, … Continue reading

Posted in PC architecture | Leave a comment

HIMEM.SYS, unreal mode, and LOADALL

The previous post talked about real mode on 286+ processors which behaves more like a slightly modified variant of protected mode rather than the old 8088/8086 processors. Real mode with non-compatible selector bases or limits is usually called unreal mode … Continue reading

Posted in DOS, x86 | 6 Comments

Will the real Real Mode please stand up?

Every programmer familiar with the x86 architecture understands the difference between real and protected address mode of the processor. It is well known that the real mode is compatible with Intel’s old 16-bit 8088/8086 CPUs, while protected mode was a … Continue reading

Posted in x86 | 5 Comments

Display Drivers, NT and NeXTSTEP

It is instructive to compare the OS/2 and 16-bit Windows display driver model with other operating systems. Why NT and NeXTSTEP? NT because it was Microsoft’s third take on a (mostly) PC operating system, and NeXTSTEP because it was an … Continue reading

Posted in NeXTSTEP, NT | 2 Comments

Display Drivers, OS/2 and 16-bit Windows

Not surprisingly, the display driver model of Windows 1.x/2.x/3.x and OS/2 1.x/2.x was quite similar. This was in sharp contrast to the drivers for just about every other device; while disks or network adapters already had existing drivers in DOS, … Continue reading

Posted in OS/2, Windows | Leave a comment

Windows Presentation Manager

Any programmer even passingly familiar with the Windows and Presentation Manager APIs is aware that there are significant similarities. When other windowing APIs, such as X11 or Mac OS, are taken into consideration, Windows and the Presentation Manager look like … Continue reading

Posted in OS/2, Windows | 14 Comments

Installing OS/2 Warp in a Virtual Machine

Installing OS/2 Warp in a virtual machine isn’t difficult, but there are a few pitfalls. The issues are easy to work around, but sometimes quite difficult to diagnose, especially for users not intimately familiar with OS/2. In general, the problems … Continue reading

Posted in OS/2, VirtualBox, Virtualization | 46 Comments

MS OS/2 Patents

When Microsoft OS/2 1.3 boots up, it prints a prominent message “U.S. Patent No. 4779187; 4825358”. What are those patents? As it turns out, it’s really just one invention, which for reasons perhaps clear to a patent lawyer was essentially … Continue reading

Posted in OS/2 | 3 Comments

Installing Windows NT 3.x in VirtualBox

All Windows NT 3.x versions can be used in VirtualBox, although they are not officially supported (unlike all following NT versions) and no Guest Additions are provided. Furthermore, for Windows NT 3.1 and 3.5, an extra step needs to be … Continue reading

Posted in NT, VirtualBox, Virtualization | 22 Comments

Why OS/2 is Hard to Virtualize

For a number of reasons, OS/2 is surprisingly difficult to virtualize, much more so than DOS, Windows 3.x, Windows NT, Windows 95, or many variants of UNIX. Most of these reasons have to do with OS/2’s architecture and history. To … Continue reading

Posted in OS/2, Virtualization | 6 Comments