Category Archives: LSOED

Learn Something Old Every Day, Part X: The VGA Attribute Controller Is Weird

A few days ago I finally swatted a VGA emulation bug that I had known about for several years, but couldn’t identify until recently. The problem affected only Windows 3.1 running in Standard mode. It did not occur in Windows … Continue reading

Posted in Bugs, LSOED, PC hardware, VGA | 9 Comments

Learn Something Old Every Day, Part IX: AHA-154xB and ASPI4DOS.SYS

The other day I had a pressing “need” to examine the behavior of Adaptec 154x and compatible SCSI HBAs and their DOS drivers. I found the hard way that the AHA-154xB does not work with Adaptec’s last DOS drivers from … Continue reading

Posted in Adaptec, Bugs, BusLogic, LSOED, SCSI | 8 Comments

Learn Something Old Every Day, Part VIII: RTFM

In my quest to understand the intricacies of x87 behavior and especially floating-point exceptions, I pulled out my trusty old Alaris Cougar board. The system board had a 100 MHz Intel OverDrive 486 DX4 plugged in and worked quite well. … Continue reading

Posted in 486, Documentation, Intel, LSOED, PC hardware, x87 | 9 Comments

Learn Something Old Every Day, Part VII: 8087 Intricacies

The other day I investigated a report that a C runtime library modification causes programs to hang on a classic IBM 5150 PC with no math coprocessor. The runtime originally contained two separate routines, one to detect the presence of … Continue reading

Posted in 8086/8088, Development, IBM, Intel, LSOED, PC history, x87 | 11 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, LSOED, Windows | 24 Comments

Learn Something Old Every Day, Part V: Early IBM PS/2 Hard Disks

So I have been (again) trying to properly archive old MS OS/2 SDKs. The version 1.02 SDK from December 1987 (corresponding to OS/2 1.0) turned out to be a bit of a poser. The SDK came on both 3.5″ and … Continue reading

Posted in ESDI, IBM, LSOED, PC history, PS/2 | 18 Comments

Learn Something Old Every Day, Part IV: Ctrl+Scroll Lock is Ctrl+Break

The other day I tried running NSNIPES, a multiplayer networked game that came with old versions of NetWare. The game worked fine, but I couldn’t get out of it. Esc did nothing, any “usual” combinations like Alt+X, Alt+Q or similar … Continue reading

Posted in LSOED, NetWare, PC architecture, PC history | 3 Comments

Learn Something Old Every Day, Part III: Why MASM Behaves Oddly

As part of a hobby project, I set out to reconstruct assembly source code that should be built with an old version of MASM and exactly match an existing old binary. In the process I learned how old MASM versions … Continue reading

Posted in Assembler, Development, LSOED, Microsoft, PC history | 11 Comments

Learn Something Old Every Day, Part II: ST-506 Drives Need Correct Jumpers

The ultimate reason why I pulled out the old Seagate ST-225 drive was because I wanted to try connecting it to the Western Digital WD1003-IWH board that I recently acquired. The WD1003-IWH is a curious evolutionary half-step between ST506 interface … Continue reading

Posted in IDE, LSOED, PC hardware, PC history, Storage | 11 Comments

Learn Something Old Every Day, Part I: ST-506 Drives Have Programmable Step Rate

More or less by accident I found myself writing a very basic DOS utility to read data off of an IDE drive. It started out by just issuing the IDENTIFY DRIVE command and capturing the data, but adding the ability … Continue reading

Posted in Documentation, LSOED, PC hardware, PC history, Seagate, Storage | 4 Comments