Author Archives: Michal Necasek

Mystery CPUID Bit

Yesterday I had the opportunity to test a recently acquired Athlon 1200 CPU (Thunderbird core, ceramic PGA package). I dreaded the first boot-up attempt because I have had rather bad experience with slightly newer Palomino and Thoroughbred OPGA processors—a surprisingly … Continue reading

Posted in AMD, K7, PC hardware, Undocumented | 1 Comment

Learn Something Old Every Day, Part XVIII: How Does FPU Detection Work?

This post ended up being much longer than originally intended because halfway into writing it, I found that 286 and later CPUs don’t behave the way I had assumed they would… While investigating a bug related to a program using … Continue reading

Posted in 286, 8086/8088, x86, x87 | 34 Comments

Bitfield Pitfalls

Some time ago I ran into a bug that had been dormant for some time. The problem involved expressions where one of the operands is a bit-field. To demonstrate the problem, I will present a reduced example: #include <stdio.h> #include … Continue reading

Posted in C, Development, Standards | 4 Comments

DOS Memory Management

The memory management in DOS is simple, but that simplicity may be deceptive. There are several rather interesting pitfalls that programming documentation often does not mention. DOS 1.x (1981) had no explicit memory management support. It was designed to run … Continue reading

Posted in Development, DOS, Microsoft, PC history | 25 Comments

Cracking DXP and SXD

There are situations where software is available only in the form of a floppy image. This goes especially for historic hardware drivers and patches, which were often distributed only in the form of floppy images. This method was quite popular … Continue reading

Posted in Archiving, Development, Floppy Images | 4 Comments

A 100 Year Old Consul Typewriter?

Spurred by a discussion about Polish keyboard layouts, I tried to find more about the history of Czech keyboard layouts. Unfortunately, finding actual documents turned out to be very difficult. What I did find is that prior to the current … Continue reading

Posted in Computing History, Keyboard, Typewriter | 33 Comments

NetWare Pure IP on DOS

It is fair to say that Novell struggled with moving from the IPX protocol to TCP/IP. Of course a big part of the problem was that IPX worked extremely well on LANs and IP brought absolutely no advantages for basic … Continue reading

Posted in DOS, NetWare, Networking | 29 Comments

Wait here. No, wait here!

While working on a hobby project, I set up an OS/2 MCP2 (Convenience Package 2 for OS/2 Warp 4) virtual machine with a debug kernel and an expectation that I’d reboot the VM a lot. I was disturbed to find … Continue reading

Posted in Bugs, Debugging, OS/2 | 6 Comments

The OS/2 Display Driver Zoo

I have recently explored (again) the possibility of writing a high-res display driver for virtualized OS/2. But I ran (again) into a dizzying array of possible solutions, each with its own advantages and a good deal of drawbacks. OS/2 display … Continue reading

Posted in Development, Documentation, Graphics, IBM, OS/2 | 31 Comments

Messy Mastering

Large companies like IBM, Microsoft, or Novell typically had a well defined process for releasing software on floppies. More often than not, files were not directly copied onto a physical floppy; instead, a tool was used to create an image … Continue reading

Posted in Archiving, Floppies, IBM, Kryoflux | 20 Comments