Author Archives: Michal Necasek

Unintended Side Effects

I’ve been lately trying to understand and improve the idling behavior of DOS programs and one of my guinea pigs has been the Open Watcom vi editor. While the 16-bit real-mode DOS variant of the editor idles nicely, the 32-bit … Continue reading

Posted in Development, DOS Extenders | 1 Comment

IDLE DR-DOS

I have a laptop. Sometimes I run VMs on it, and some of those VMs run DOS. When a DOS VM does not have any power management, the laptop quickly lets me know by kicking up the fan speed. It … Continue reading

Posted in Computing History, Development, Digital Research | 11 Comments

Tracking Down a Bug

When I first encountered the Unix vi editor many years ago, I recoiled in horror. It was nothing like the editors I was used to—Borland IDEs, DOS 5.0/6.x EDIT, or OS/2 and Windows editors. But over the years, I learned … Continue reading

Posted in Debugging, Development, DOS, Watcom | 14 Comments

First ROM Shadowing

The other day I was asked an interesting question: What was the first BIOS with support for ROM shadowing? In the 1990s, ROM shadowing was common, at first as a pure performance enhancement and later as a functional requirement; newer … Continue reading

Posted in C&T, Compaq, IBM, PC architecture, PC history | 55 Comments

A wunderBAR Story

Or, what should be broken became solid, and what should be solid became broken. While searching for something completely different, I came across a fascinating story of the “wunderBAR”. Since the story is very short, I’ll quote it here in … Continue reading

Posted in Computing History, Corrections | 21 Comments

Hash Tables FTW

Over the last few weeks I did a bit of tinkering on a hobby software project. The code was written by two other people during the last several years and I finally managed to find some time to fix a … Continue reading

Posted in Development | 4 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 | 59 Comments

Learn Something Old Every Day, Part VII: 8087 Intricacies

The other day I investigated a report that a C runtime library modification causes programs to hang on a classic IBM 5150 PC with no math coprocessor. The runtime originally contained two separate routines, one to detect the presence of … Continue reading

Posted in 8086/8088, Development, IBM, Intel, PC history, x87 | 10 Comments

A House of Cards

As one step in the development of the Windows 3.x/2.x display driver, I needed to replace a BIOS INT 10h call to set the video mode with a “native” mode set code going directly to the (virtual) hardware registers. One … Continue reading

Posted in Bugs, Development, Microsoft, Windows | 49 Comments

Win16 Retro Development

Several months ago I had a go at producing a high resolution 256-color driver for Windows 3.1. The effort was successful but is not yet complete. Along the way I re-learned many things I had forgotten, and learned several new … Continue reading

Posted in Debugging, Development, Microsoft, Windows | 27 Comments