Category Archives: BIOS

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 | 16 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 | 38 Comments

The IBM PC BIOS and Intel ISIS-II

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 | 42 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 | 19 Comments

Detecting floppy drive presence and type

Detecting floppy drives is surprisingly tricky and poorly understood. The difficulty lies mainly in the interface between the floppy disk controller (FDC) and the actual drive(s). The interface isn’t particularly complex, but it isn’t straightforward, and it does not follow … Continue reading

Posted in BIOS, PC architecture | Leave a comment

Interrupt 68h and EMM386

While working with a modified BIOS image in a virtual machine, I ran into mysterious hangs when trying to load an old version of EMM386.SYS from MS-DOS 4.01. A newer version of EMM386 did not exhibit the problem. A quick … Continue reading

Posted in BIOS, DOS, Virtualization | Leave a comment

The Fixed Disk Parameter Table

The Fixed Disk Parameter Table, or FDPT, is a structure primarily used by the BIOS in IBM compatible computers, but is also of critical importance to some (especially older) operating systems which do not use the BIOS. The FDPT was … Continue reading

Posted in BIOS, PC architecture, Virtualization | 3 Comments

Geometry Problems

When introducing hard disk support in the PC/XT back in early 1983, IBM made a very unfortunate design decision: the information about drive geometry was exposed in the BIOS, and even worse, in the boot sector stored on the disk. SCSI … Continue reading

Posted in BIOS, PC architecture, Virtualization | Leave a comment