Category Archives: BIOS

Reconstructing the EGA BIOS

A few weeks ago I had a sudden need to understand certain finer points of the operation of EGA/VGA BIOS. I found common reference materials to be inadequate—they tend to do a good job of documenting the data structures the … Continue reading

Posted in BIOS, Development, Documentation, Graphics, IBM, PC history | 26 Comments

The IBM PC, 41 Years Ago

No, the OS/2 Museum does not have either a time machine or difficulty doing basic math. As of this writing, it is August 2021 and the IBM PC was announced in August 1981, 40 years ago. But in August 1980, … Continue reading

Posted in 8086/8088, BIOS, DOS, IBM, Intel, PC hardware, PC history | 60 Comments

Reading From Void

Recently I came across the following question: What happens when software reads the registers of a non-existent IDE controller? That is, what happens when software reads for example ports in the 1F0h-1F7h/3F6h range (primary IDE channel) when there is no … Continue reading

Posted in BIOS, IDE, PC hardware | 10 Comments

FasterModeSwitch: Is It Really?

Short answer: Yes. Before launching into the long answer, let’s recap what it even is. FasterModeSwitch is a SYSTEM.INI setting in Windows 3.1 which applies only to Standard (286) mode and can therefore be found in the [standard] section of … Continue reading

Posted in 286, BIOS, Microsoft, Windows | 10 Comments

Resetting Disks Is Hard

After digging through BIOS listings and disassembling the Adaptec 1542C BIOS as well as the PC DOS 2000 boot sector, it’s clear why the floppy-less SCSI boot does not work on my test system. It’s because disk reset done by the boot … Continue reading

Posted in BIOS, Bugs, SCSI | 22 Comments

Booting Is Hard

So I had this brilliant idea of using SCSI drives with old 286/386/486 boards which have old BIOSes that can’t handle IDE drives bigger than 500-ish megabytes. The SCSI HBA is the first one I happened to grab, an Adaptec 1542C … Continue reading

Posted in 386, BIOS, CompactFlash, DOS, SCSI | 21 Comments

Windows NT 3.1 (and OS/2) Memory Detection

It is common knowledge that Windows NT 3.1 only recognizes up to 64 MB RAM, unlike NT 3.5 and later versions. This statement can be found in various places, including this blog. The limitation was empirically determined by installing NT … Continue reading

Posted in BIOS, NT | 39 Comments


An interesting question recently popped up: How exactly did IBM build the ROM BIOS for the IBM PC? Knowing what tools were used should make it possible to use the ROM listing published in the IBM PC Technical Reference and … Continue reading

Posted in BIOS, IBM, Intel, PC history | 44 Comments

How to please WDCTRL

As any user of 16-bit Windows knows, Microsoft Windows 3.1x in 386 Enhanced mode supported a coveted feature called 32-bit disk access (sometimes also called FastDisk). The “32-bit” designation was slightly misleading as there was no 32-bit data path to … Continue reading

Posted in BIOS, Windows | 3 Comments

IBM DOS 5.0 QBASIC hangs on non-IBM systems

Much like its predecessors, IBM DOS 5.0 has no trouble running on clone systems, as long as they’re sufficiently compatible. That includes virtual machines. However, the QBASIC.EXE (and consequently EDIT.COM) program dated May 9, 1991 consistently hangs on any non-IBM … Continue reading

Posted in BIOS, DOS, PC history | 20 Comments