Author Archives: Michal Necasek

The End of an Athlon

When I was researching the mess related to strange and poorly documented CPUID bits in the Athlon MP and XP processors, I had to swap a lot of CPUs. This was uneventful in most cases… but only most. When I … Continue reading

Posted in AMD, K7, PC hardware | 5 Comments

Maximum Overkill

A reader pointed at the 1992 game Comanche: Maximum Overkill by NovaLogic as a possible unreal mode user—since the original game release was known to be problematic. I examined the game and found no unreal mode usage, just a rather … Continue reading

Posted in 486, Bugs, DOS Extenders, Intel, PC history, Pentium, x86 | 45 Comments

Win16 Memory Management

This is a kind of knowledge base article which resulted from attempts to understand exactly how memory management works in 16-bit Windows. It is not exactly undocumented, but it is also not well documented; even before Windows 3.0 appeared, the … Continue reading

Posted in Development, Microsoft, PC history, Windows, x86 | 85 Comments

Learn Something Old Every Day, Part XXI: VGA Memory Access Is Complicated

Last week I had another run-in with VGA emulation, and like last time, the cause was very likely the generally woefully inadequate VGA documentation. The VGA is not, all things considered, a particularly complicated piece of hardware. It has no … Continue reading

Posted in Documentation, LSOED, VGA | 22 Comments

ICAT and Watcom

Some time ago I embarked on a minor retro development project related to this post. For convenience, I decided to do the development on a Windows host machine and (obviously) test in a VM. For C code compiling, and linking, … Continue reading

Posted in Debugging, Development, IBM, OS/2, Watcom | 18 Comments

When Networking Doesn’t Work

Last week I spent far too much time trying to get my Windows 11 machine to talk to an antique Tyan SMDC (Server Management Daughter Card) IPMI module over the network. At first, I tried Tyan’s own old TSO (Tyan … Continue reading

Posted in Bugs, Intel, IPMI, Networking, PC hardware, TCP/IP | 2 Comments

Learn Something Old Every Day, Part XX: 8087 Emulation on 8086 Systems

Not too long ago I had a need and an opportunity to re-acquaint myself with the mechanism used for software emulation of the 8087 FPU on 8086/8088 machines. As mentioned elsewhere, the 8086 CPU (1978) had a generic co-processor interface … Continue reading

Posted in 8086/8088, Development, Intel, LSOED, Microsoft, x87 | 20 Comments

Learn Something Old Every Day, Part XIX: Athlon XP May Be Athlon MP

Quite a while ago, I acquired a dual-socket (Socket 462 aka Socket A) board for the Athlon MP, AMD’s first entry into the multi-processor/multi-socket market. Over the course of several years, I spent quite some time searching for the board … Continue reading

Posted in AMD, K7, LSOED, PC hardware, PC history | 8 Comments

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 | 24 Comments

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, LSOED, x86, x87 | 41 Comments