Author Archives: Michal Necasek

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 | 15 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 | 11 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 | 13 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 | 31 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 | 14 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 | 26 Comments

Windows 9x Video Minidriver HD+

The OS/2 Museum has made available the first version of a display driver disk for Windows 9x running on VirtualBox. The driver uses a linear framebuffer and supports 8/16/24/32bpp modes with resolutions up to 1920×1200 pixels (see more below). The … Continue reading

Posted in Development, VirtualBox, Watcom, Windows 95 | 51 Comments

Compaq EGA Technical Reference Guide

A rater nice Compaq EGA Tech Ref recently turned up on archive.org, under the title COMPAQ Enhanced Color Graphics Board Technical Reference Guide. It’s from December 1986, relatively late in EGA’s life (given that it was about to be obsoleted … Continue reading

Posted in Compaq, Documentation, PC history | Leave a comment