The BIOS Data Area (BDA) is a 257-byte region of memory located at segment 0x0040 (physical address 0x00400).
It is used by the BIOS to store system variables and state.
| Offset | Bytes | Description | Int | Comments |
| 00 | 2 | COM 1 base address | 14 | |
| 02 | 2 | COM 2 base address | 14 | |
| 04 | 2 | COM 3 base address | 14 | |
| 06 | 2 | COM 4 base address | 14 | |
| 08 | 2 | LPT 1 base address | 17 | |
| 0A | 2 | LPT 2 base address | 17 | |
| 0C | 2 | LPT 3 base address | 17 | |
| 0E | 2 | LPT 4 base address | 17 | EBDA on PS/2 and later |
| 10 | 2 | Equipment List Flags | 11 | See Equipment List Flags |
| 12 | 1 | Reserved | | |
| 12 | 1 | PCjr: infrared keyboard error count | | |
| 13 | 2 | Base memory size | 12 | Number of kilobytes of RAM |
| 15 | 2 | Reserved | | |
| 17 | 1 | Keyboard Flag Byte 0 | 16 | See Keyboard Flag Byte 0 |
| 18 | 1 | Keyboard Flag Byte 1 | 16 | See Keyboard Flag Byte 1 |
| 19 | 1 | Work area for ALT key | 16 | Handles ALT + numpad key entry |
| 1A | 2 | Keyboard-buffer Head Offset | 16 | Head offset into keyboard ring buffer |
| 1C | 2 | Keyboard-buffer Tail Offset | 16 | Tail offset into keyboard ring buffer |
| 1E | 32 | Keyboard Buffer | 16 | |
| 3E | 1 | Floppy recalibrate status | 13 | See Floppy Recalibrate Status |
| 3F | 1 | Floppy motor status | 13 | See Floppy Motor Status |
| 40 | 1 | Floppy motor timeout | 13 | |
| 41 | 1 | Floppy operation status | 13 | |
| 42 | 7 | Floppy controller status | 13 | See Floppy Controller Status |
| 49 | 30 | Video info | 10 | |
| 49 | 1 | Current Video Mode | 10 | |
| 4A | 2 | Number of Columns | | |
| 4C | 2 | Size of video buffer (bytes) | | |
| 4E | 2 | Offset of current video page | | |
| 50 | 16 | Cursor position of pages 1-8 | | |
| 60 | 1 | Cursor ending scanline | | |
| 61 | 1 | Cursor starting scanline | | |
| 62 | 1 | Active display page number | | |
| 63 | 2 | Base port for active CRTC | | 3B4 for MDA, 3D4 for CGA+ |
| 65 | 1 | CGA mode control register | | Emulated on EGA+ |
| 66 | 1 | CGA current palette | | Emulated on EGA+ |
| 67 | 5 | PC: Cassette tape control | | |
| 67 | 4 | AT: POST re-entry pointer | | |
| 6B | 1 | Last Unexpected interrupt | | |
| 6C | 4 | Timer Counter | 1A | |
| 70 | 1 | Timer Overflow | 1A | |
| 71 | 1 | Break key state | 16 | |
| 72 | 2 | Reset Flag | | |
| 74 | 1 | HDD operation status | 13 | |
| 75 | 1 | Number of HDDs attached | 13 | |
| 76 | 2 | Reserved | 13 | |
| 78 | 1 | LPT 1 time-out | 14 | |
| 79 | 1 | LPT 2 time-out | 14 | |
| 7A | 1 | LPT 3 time-out | 14 | |
| 7B | 1 | Reserved | | |
| 7C | 1 | COM 1 time-out | | |
| 7D | 1 | COM 2 time-out | | |
| 7E | 1 | COM 3 time-out | | |
| 7F | 1 | COM 4 time-out | | |
| 80 | 2 | Keyboard buffer start ptr | 16 | |
| 82 | 2 | Keyboard buffer end ptr | 16 | |
| 84 | 7 | Video info | 10 | |
| 85 | 2 | EGA: Character line height | | |
| 85 | 1 | PCjr: Typematic repeat key | | |
| 86 | 1 | PCjr: Typematic repeat delay | | |
| 87 | 1 | EGA: Video mode options | | See Video Mode Options |
| 87 | 1 | PCjr: Current Fn key number | | |
| 88 | 1 | EGA: Feature / DIP switches | | See EGA Dip Switches |
| 88 | 1 | PCjr: Keyboard status byte 3 | | |
| 89 | 1 | VGA/MCGA: Video Display Data | | See VGA Display Data |
| 8A | 1 | EGA: Display Combination Code (DCC) index | | |
| 8B | 1 | Floppy media control | 13 | See Floppy Media Control |
| 8C | 1 | HDD Controller status | 13 | |
| 8D | 1 | HDD Controller error status | 13 | |
| 8E | 1 | HDD Interrupt control | 13 | |
| 8F | 1 | Reserved | | |
| 90 | 1 | Floppy 0 media status | 13 | See Floppy Media Status |
| 91 | 1 | Floppy 1 media status | 13 | |
| 92 | 1 | Floppy 2 media status | 13 | |
| 93 | 1 | Floppy 3 media status | 13 | |
| 94 | 1 | Drive 0 current cylinder | 13 | |
| 95 | 1 | Drive 1 current cylinder | 13 | |
| 96 | 1 | Keyboard Mode State and Flags | 16 | See Keyboard Mode Byte |
| 97 | 1 | Keyboard LED State | 16 | See Keyboard LED State |
| 98 | 2 | User wait flag offset | 15 | |
| 9A | 2 | User wait flag segment | 15 | |
| 9C | 4 | User wait count (milliseconds) | | |
| A0 | 1 | RTC Wait active flag | 15 | See RTC Wait Flags |
| A1 | 7 | Reserved | | |
| A8 | 4 | BIOS Video info Pointer | 10 | |
| AC | 84 | Reserved | | |
| 100 | 1 | Print Screen Status | 5 | |
| Bits | Name | Description |
| 0 | IPL | Floppy drive installed |
| 1 | FPU | FPU installed |
| 2:3 | RAM | Onboard RAM installed (first 256K) |
| 4:5 | VM | Initial video mode at boot time |
| 6:7 | nFLOP | Number of floppy drives installed, -1 |
| 8 | DMA | DMA controller installed (if 0) |
| 9:11 | nCOM | Number of serial ports installed |
| 12 | GP | Game port installed |
| 13 | – | Reserved |
| 14:15 | nPRN | Number of printer ports installed |
| Bits 5,4 | Description |
00 | Unused |
01 | 40x25 color |
10 | 80x25 color |
11 | 80x25 monochrome |
| Bits | Name | Description |
| 0 | RSHFT | Right Shift key depressed |
| 1 | LSHFT | Left Shift key depressed |
| 2 | CTRL | CTRL key depressed |
| 3 | ALT | ALT key depressed |
| 4 | SCRL | Scroll-Lock active |
| 5 | NUM | Num-Lock active |
| 6 | CAPS | Caps-Lock active |
| 7 | INS | Insert active |
| Bits | Name | Description |
| 0 | LCTRL | Left CTRL key depressed |
| 1 | LALT | Left ALT key depressed |
| 2 | SYS | System key depressed and held |
| 3 | SUSP | Suspend key has been toggled |
| 4 | SCRL | Scroll-Lock key depressed |
| 5 | NUM | Num-Lock key depressed |
| 6 | CAPS | Caps-Lock key depressed |
| 7 | INS | Insert key depressed |
| Bits | Name | Description |
| 0 | DRV0 | 1 = Recalibrate drive 0 |
| 1 | DRV1 | 1 = Recalibrate drive 1 |
| 2 | DRV2 | 1 = Recalibrate drive 2 |
| 3 | DRV3 | 1 = Recalibrate drive 3 |
| 4:6 | – | Unused |
| 7 | INT | Working interrupt flag (1=working) |
| Bits | Name | Description |
| 0 | DRV0 | 1 = Drive 0 motor on |
| 1 | DRV1 | 1 = Drive 1 motor on |
| 2 | DRV2 | 1 = Drive 2 motor on |
| 3 | DRV3 | 1 = Drive 3 motor on |
| 4:6 | – | Unused |
| 7 | WR | Write operation in progress |
| Bits | Name | Description |
| 0 | CMD | Invalid floppy controller command |
| 1 | ADDR | Address mark not found |
| 2 | SEC | Sector not found |
| 3 | DMA | Floppy controller DMA error |
| 4 | CRC | CRC check / data error |
| 5 | FAIL | Floppy controller failure |
| 6 | SEEK | Seek to track failed |
| 7 | TMO | Floppy time-out |
| Bits | Name | Description |
| 0 | CURS | 1 = Alphanumeric cursor emulation enabled |
| 1 | MONO | 1 = Video subsystem attached to monochrome |
| 2 | – | Reserved |
| 3 | INACT | 1 = Video subsystem is inactive |
| 4 | – | Reserved |
| 5:6 | RAM | Video RAM: 00=64K, 01=128K, 10=192K, 11=256K |
| 7 | MODE | Video mode number passed to INT 10, function 0 (Bit 7) |
| Bits | Name | Description |
| 0 | SW1 | EGA SW1 config (1=off) |
| 1 | SW2 | EGA SW2 config (1=off) |
| 2 | SW3 | EGA SW3 config (1=off) |
| 3 | SW4 | EGA SW4 config (1=off) |
| 4 | FEAT0 | Input FEAT0 (ISR0 bit 5) after output on FCR0 |
| 5 | FEAT0 | Input FEAT0 (ISR0 bit 6) after output on FCR0 |
| 6 | FEAT1 | Input FEAT1 (ISR0 bit 5) after output on FCR1 |
| 7 | FEAT1 | Input FEAT1 (ISR0 bit 6) after output on FCR1 |
| Bits | Name | Description |
| 0 | VGA | 1 = VGA is active |
| 1 | GRAY | 1 = Gray scale is enabled |
| 2 | MONO | 1 = Using monochrome monitor |
| 3 | PAL | 1 = Default palette loading is disabled |
| 4 | SL_LO | Scan Line Select Bit 0 |
| 5:6 | – | Reserved |
| 7 | SL_HI | Scan Line Select Bit 1 (00=350, 01=400, 10=200) |
| Bits | Name | Description |
| 0:3 | – | Reserved |
| 4:5 | STEP | Step Rate: 00=0C, 01=0D, 10=0A |
| 6:7 | RATE | Data Rate: 00=500K, 01=300K, 10=250K |
| Bits | Name | Description |
| 0:2 | STATE | Drive/Media State |
| 3 | – | Reserved |
| 4 | EST | 1 = Media/drive established |
| 5 | DBL | Double stepping required |
| 6:7 | RATE | Data Rate: 00=500K, 01=300K, 10=250K |
| Bits | Name | Description |
| 0 | E1 | Last code was the E1 hidden code |
| 1 | E0 | Last code was the E0 hidden code |
| 2 | R_CTL | Right CTRL key depressed |
| 3 | R_ALT | Right ALT key depressed |
| 4 | 101 | 101/102 enhanced keyboard installed |
| 5 | NUM | Force Num-Lock if Rd ID & KBX |
| 6 | ID_CH | Last char was first ID char |
| 7 | RD_ID | Read ID in process |
| Bits | Name | Description |
| 0 | SCRL | Scroll-Lock indicator |
| 1 | NUM | Num-Lock indicator |
| 2 | CAPS | Caps-Lock indicator |
| 3 | CIRC | Circus system indicator |
| 4 | ACK | ACK received |
| 5 | RSND | Re-send received flag |
| 6 | MODE | Mode indicator update |
| 7 | ERR | Keyboard transmit error flag |
| Bits | Name | Description |
| 0 | PEND | 1 = Wait pending |
| 1:6 | – | Unused |
| 7 | ELAP | 1 = INT 15,86 wait time elapsed |