en:docs:bios:api:00226

Bitfields for BIOS equipment list:

Bit(s) Description
0 floppy disk(s) installed (number specified by bits 7-6)
1 80×87 coprocessor installed
3-2 number of 16K banks of RAM on motherboard (PC only)
number of 64K banks of RAM on motherboard (XT only)
2 pointing device installed (PS)
3 unused (PS)
5-4 initial video mode
00 EGA, VGA, or PGA
01 40×25 color
10 80×25 color
11 80×25 monochrome
7-6 number of floppies installed less 1 (if bit 0 set)
8 DMA support installed (PCjr, Tandy 1400LT)
DMA support *not* installed (Tandy 1000's)
11-9 number of serial ports installed
12 game port installed
13 serial printer attached (PCjr)
internal modem installed (PC/Convertible)
15-14 number of parallel ports installed

—Compaq, Dell, and many other 386/486 machines–

23 page tables set so that Weitek coprocessor addressable in real mode
24 Weitek math coprocessor present

—Compaq Systempro—

25 internal DMA parallel port available
26 IRQ for internal DMA parallel port (if bit 25 set)
0 = IRQ5
1 = IRQ7
28-27 parallel port DMA channel
00 DMA channel 0
01 DMA channel 0 ???
10 reserved
11 DMA channel 3

Notes

  • Some implementations of Remote (Initial) Program Loader (RPL/RIPL) don't set bit 0 to indicate a “virtual” floppy drive, although the RPL requires access to its memory image through a faked drive A:. This may have caused problems with releases of DOS 3.3x and earlier, which assumed A: and B: to be invalid drives then and would discard any attempts to access these drives. Implementations of RPL should set bit 0 to indicate a “virtual” floppy.
  • The IBM PC DOS 3.3x-2000 IBMBIO.COM contains two occurrences of code sequences like:
    INT 11h
    JMP SHORT skip
    DB 52h,50h,53h; "RPS"
    skip: OR AX,1
    TEST AX,1

While at the first glance this seems to be a bug since it just wastes memory and the condition is always true, this could well be a signature for an applyable patch to stop it from forcing AX bit 0 to be always on. MS-DOS IO.SYS does not contain these signatures, however.

BUGs

  • Some old BIOSes didn't properly report the count of floppy drives installed to the system. In newer systems INT 13h/AH=15h can be used to retrieve the number of floppy drives installed.
  • Award BIOS v4.50G and v4.51PG erroneously set bit 0 even if there are no floppy drives installed; use two calls to INT 13/AH=15h to determine whether any floppies are actually installed

SeeAlso: INT 12“BIOS”,#03215 at INT 4B“Tandy 2000”