Author Archives: Michal Necasek

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

Undefined Isn’t Unpredictable

The other day I discovered that 32-bit FreeBSD 11.2 has strange trouble running in an emulated environment. Utilities like ping or top would just hang when trying to print floating-point numbers through printf(). The dtoa() library routine was getting stuck … Continue reading

Posted in AMD, Development, Documentation, Intel | 22 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

PC Disk Sector Sizes and Booting

Everyone knows that the IBM PC established 512-byte sectors on floppies and hard disks as the standard, which survived for several decades until the advent of “native” 4K-sector drives. Of course what “everyone knows” is not necessarily the whole story. … Continue reading

Posted in BIOS, DOS, IBM, PC history, Storage | 15 Comments

Slovenian OS/2 Warp 4

This is a guest post written by Marko Ć tamcar from the Slovenian Computer Museum in Ljubljana. Additional context and commentary from the OS/2 Museum can be found at the end of the article. Slovenia being a tiny country with a … Continue reading

Posted in IBM, OS/2, PC history | 23 Comments

Antique Display Driving

Here’s a preview of something I’ve been slowly working on, bit by bit: That screenshot surely looks a little funny. That’s because it is Windows 1.04 running with a heavily modified 256-color Windows 3.x display driver, using resources from a … Continue reading

Posted in Development, Microsoft, Windows | 36 Comments

Learn Something Old Every Day, Part VI: Backward Buffer Overwrite

A few days ago I spent far too much time debugging a largish piece of 16-bit Windows code written in assembler. I found a scenario where (fortunately fairly reproducibly) Windows crashed because the internal state of a DLL got corrupted. … Continue reading

Posted in Bugs, Development, Windows | 24 Comments

Windows 9x Video Minidriver Source Code

As promised, here is the source code for the Windows 9x VirtualBox display minidriver. For discussion of the source code, see the included readdev.txt file. The code was developed on a Windows 10 host system. For extra credit, I attempted … Continue reading

Posted in Development, Source code, VirtualBox, Watcom, Windows 95 | 18 Comments

WordSet: Stolen Without Compensation

A kind reader from a land formerly beyond the Iron Curtain recently supplied the OS/2 Museum with a curious word processor that calls itself WordSet. The files unfortunately lost their original timestamps quite some time ago, but it is apparent … Continue reading

Posted in Editors, I18N, PC history, WordStar | 29 Comments