Author Archives: Michal Necasek

ThinkPad I9990303 Error Catch-22

I have an old, circa 1994 IBM ThinkPad 750C (with a 33MHz Intel 486SL processor) which used to work but now refuses to boot with error I9990303. The error prevents the laptop from booting normally and also prevents it from … Continue reading →

Posted in BIOS, IBM, Software Hacks, ThinkPad | 20 Comments

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 | 14 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 | 56 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 | 86 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 | 24 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 | 20 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 | 22 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