Offset Hex | Offset Dec | BIOS Service | Field Size | Function |
00h | 0 | Int 14h | 2 bytes | Base I/O address for serial port 1 (communications port 1 - COM 1) |
02h | 2 | Int 14h | 2 bytes | Base I/O address for serial port 2 (communications port 2 - COM 2) |
04h | 4 | Int 14h | 2 bytes | Base I/O address for serial port 3 (communications port 3 - COM 3) |
06h | 6 | Int 14h | 2 bytes | Base I/O address for serial port 4 (communications port 4 - COM 4) |
08h | 8 | Int 17h | 2 bytes | Base I/O address for parallel port 1 (printer port 1 - LPT 1) |
0Ah | 10 | Int 17h | 2 bytes | Base I/O address for parallel port 2 (printer port 2 - LPT 2) |
0Ch | 12 | Int 17h | 2 bytes | Base I/O address for parallel port 3 (printer port 3 - LPT 3) |
0Eh | 14 | POST | 2 bytes | Base I/O address for parallel port 4 (printer port 4 - LPT 4) (Only found in PC/XT systems) |
10h | 16 | Int 11h | 2 bytes | Equipment Word |
| | | | Bits 15-14 indicate the number of parallel ports installed |
| | | | 00b = 1 parallel port |
| | | | 01b = 2 parallel ports |
| | | | 03b = 3 parallel ports |
| | | | Bits 13-12 are reserved |
| | | | Bits 11-9 indicate the number of serial ports installed |
| | | | 000b = none |
| | | | 001b = 1 serial port |
| | | | 002b = 2 serial ports |
| | | | 003b = 3 serial ports |
| | | | 004b = 4 serial ports |
| | | | Bit 8 is reserved |
| | | | Bit 7-6 indicate the number of floppy drives installed |
| | | | 0b = 1 floppy drive |
| | | | 1b = 2 floppy drives |
| | | | Bits 5-4 indicate the video mode |
| | | | 00b = EGA or later |
| | | | 01b = color 40x25 |
| | | | 10b = color 80x25 |
| | | | 11b = monochrome 80x25 |
| | | | Bit 3 is reserved |
| | | | Bit 2 indicates if a PS/2 mouse is installed |
| | | | 0b = not installed |
| | | | 1b = installed |
| | | | Bit 1 indicated if a math coprocessor is installed |
| | | | 0b = not installed |
| | | | 1b = installed |
| | | | Bit 0 indicated if a boot floppy is installed |
| | | | 0b = not installed |
| | | | 1b = installed |
12h | 18 | POST | 1 byte | Interrupt flag - Manufacturing test |
13h | 19 | Int 12h | 2 bytes | Memory size in Kb |
15h | 21 | | 2 bytes | Error codes for AT+; Adapter memory size for PC and XT |
17h | 22 | Int 16h | 1 byte | Keyboard shift flags 1 |
| | | | Bit 7 indicates if Insert is on or off |
| | | | 0b = Insert off |
| | | | 1b = Insert on |
| | | | Bit 6 indicates if CapsLock is on or off |
| | | | 0b = CapsLock off |
| | | | 1b - CapsLock on |
| | | | Bit 5 indicates if NumLock is on or off |
| | | | 0b = NumLock off |
| | | | 1b = NumLock on |
| | | | Bit 4 indicates if ScrollLock is on or off |
| | | | 0b = ScrollLock off |
| | | | 1b = ScrollLock on |
| | | | Bit 3 indicates if the Alt key is up or down |
| | | | 0b = Alt key is up |
| | | | 1b = Alt key is down |
| | | | Bit 2 indicates if the Control key is up or down |
| | | | 0b = Control key is up |
| | | | 1b = Control key is down |
| | | | Bit 1 indicates if the Left Shift key is up or down |
| | | | 0b = Left Shift key is up |
| | | | 1b = Left Shift key is down |
| | | | Bit 0 indicates if the Right Shift key is up or down |
| | | | 0b = Right Shift key is up |
| | | | 1b = Right Shift key is down |
18h | 23 | Int 16h | 1 byte | Keyboard shift flags 2 |
| | | | Bit 7 indicates if the Insert key is up or down |
| | | | 0b = Insert key is up |
| | | | 1b = Insert key is down |
| | | | Bit 6 indicates if the CapsLock key is up or down |
| | | | 0b = CapsLock is key is up |
| | | | 1b = CapsLock key is down |
| | | | Bit 5 indicates if the NumLock key is up or down |
| | | | 0b = NumLock key is up |
| | | | 1b = Numlock key is down |
| | | | Bit 4 indicates if the ScrollLock key is up or down |
| | | | 0b = ScrollLock key is up |
| | | | 1b = ScrollLock key is down |
| | | | Bit 3 indicates if the Pause key is active or inactive |
| | | | 0b = pause key is inactive |
| | | | 1b = Pause key is active |
| | | | Bit 2 indicates if the SysReg key is up or down |
| | | | 0b = SysReg key is up |
| | | | 1b = SysReg key is down |
| | | | Bit 1 indicates if the Left Alt key is up or down |
| | | | 0b = Left Alt key is up |
| | | | 1b = Left Alt key is down |
| | | | Bit 0 indicates if the Right Alt key is up or down |
| | | | 0b = Right Alt key is up |
| | | | 1b = Right Alt key is down |
19h | 24 | Int 09h | 1 byte | Alt Numpad work area |
1Ah | 26 | Int 16h | 2 bytes | Pointer to the address of the next character in the keyboard buffer |
1Ch | 28 | Int 16h | 2 bytes | Pointer to the address of the last character in he keyboard buffer |
1Eh | 60 | Int 16h | 32 bytes | Keyboard buffer |
3Eh | 61 | Int 13h | 1 byte | Floppy disk drive calibration status |
| | | | Bits 7-4 are reserved |
| | | | Bit 3 = floppy drive 3 (PC, XT) |
| | | | Bit 2 = floppy drive 2 (PC, XT) |
| | | | Bit 1 = floppy drive 1 |
| | | | Bit 0 = floppy drive 0 |
| | | | 0b indicates not calibrated |
| | | | 1b indicates calibrated |
3Fh | 62 | Int 13h | 1 byte | Floppy disk drive motor status |
| | | | Bit 7 indicates current operation |
| | | | 0b = read or verify operation |
| | | | 1b = write or format operation |
| | | | Bit 6 is not used |
| | | | Bit 5-4 indicates drive select |
| | | | 00b = Drive 0 |
| | | | 01b = Drive 1 |
| | | | 10b = Drive 2 (PC, XT) |
| | | | 11b = Drive 4 (PC, XT) |
| | | | Bit 3 indicates drive 3 motor |
| | | | 0b = motor off |
| | | | 1b = motor on |
| | | | Bit 2 indicates drive 2 motor |
| | | | 0b = motor off |
| | | | 1b = motor on |
| | | | Bit 1 indicates drive 0 motor |
| | | | 0b = motor off |
| | | | 1b = motor on |
| | | | 0b = motor off |
| | | | 1b = motor on |
40h | 63 | Int 13h | 1 byte | Floppy disk drive motor time-out |
41h | 64 | Int 13h | 1 byte | Floppy disk drive status |
| | | | Bit 7 indicates drive ready status |
| | | | 0b = drive ready |
| | | | 1b = drive not ready (time out) |
| | | | Bit 6 indicates seek status |
| | | | 0b = no seek error detected |
| | | | 1b = indicates a seek error was detected |
| | | | Bit 5 indicates floppy disk controller test |
| | | | 0b = floppy disk controller passed |
| | | | 1b = floppy disk controller failed |
| | | | Bit 4-0 error codes |
| | | | 00000b = no errors |
| | | | 00001b = illegal function requested |
| | | | 00010b = address mark not found |
| | | | 00011b = write protect error |
| | | | 00100b = sector not found |
| | | | 00110b = diskette change line active |
| | | | 01000b = DMA overrun |
| | | | 01001b = DMA boundary error |
| | | | 01100b = unknown media type |
| | | | 10000b = CRC error during read |
42h | 65 | Int 13h | 1 byte | Hard disk and floppy controller status register 0 |
| | | | Bit 7-6 indicate the interrupt code |
| | | | 00b = command completed normally |
| | | | 01b = command terminated abnormally |
| | | | 10b = abnormal termination, ready line on, or diskette changed |
| | | | 11b = seek command not completed |
| | | | Bit 5 indicated seek command |
| | | | 0b = seek command not completed |
| | | | 1b = seek command completed |
| | | | Bit 4 indicated drive fault |
| | | | 0b = no drive fault |
| | | | 1b = drive fault |
| | | | Bit 3 indicates drive ready |
| | | | 0b = drive ready |
| | | | 1b = drive not ready |
| | | | Bit 2 indicates head state when interrupt occurred |
| | | | 00b = drive 0 |
| | | | 01b = drive 1 |
| | | | 10b = drive 2 (PC, XT) |
| | | | 11b = drive 3 (PC, XT) |
| | | | Bit 1-0 indicates drive select |
| | | | 00b = drive 0 |
| | | | 01b = drive 1 |
| | | | 10b = drive 2 (PC, XT) |
| | | | 11b = drive 3 (PC, XT) |
43h | 66 | Int 13h | 1 byte | Floppy drive controller status register 1 |
| | | | Bit 7-0 indicates no error |
| | | | Bit 7, 1b = indicates attempted access beyond last cylinder |
| | | | Bit 6, 0b = not used |
| | | | Bit 5, 1b = CRC error during read |
| | | | Bit 4, 1b = DMA overrun |
| | | | Bit 3, 0b = not used |
| | | | Bit 2, 1b = Sector not found or reading diskette ID failed |
| | | | Bit 1, 1b = medium write protected |
| | | | Bit 0, 1b = missing address mark |
44h | 67 | Int 13h | 1 byte | Floppy drive controller status register 2 |
| | | | Bit 7, 0b = not used |
| | | | Bit 6, 1b = deleted data address mark |
| | | | Bit 5, 1b = CRC error detected |
| | | | Bit 4, 1b = wrong cylinder |
| | | | Bit 3, 1b = condition of equal during verify |
| | | | Bit 2, 1b = sector not found during verify |
| | | | Bit 1, 1b = bad cylinder |
| | | | Bit 0, 1b = address mark not found during read |
45h | 68 | Int 13h | 1 byte | Floppy disk controller: cylinder number |
46h | 69 | Int 13h | 1 byte | Floppy disk controller: head number |
47h | 70 | Int 13h | 1 byte | Floppy disk controller: sector number |
48h | 71 | | 1 byte | Floppy disk controller: number of byte written |
49h | 72 | Int 10h | 1 byte | Active video mode setting |
4Ah | 74 | Int 10h | 2 bytes | Number of textcolumns per row for the active video mode |
4Ch | 76 | Int 10h | 2 bytes | Size of active video in page bytes |
4Eh | 78 | Int 10h | 2 bytes | Offset address of the active video page relative to the start of video RAM |
50h | 80 | Int 10h | 2 bytes | Cursor position for video page 0 |
52h | 82 | Int 10h | 2 bytes | Cursor position for video page 1 |
54h | 84 | Int 10h | 2 bytes | Cursor position for video page 2 |
56h | 86 | Int 10h | 2 bytes | Cursor position for video page 3 |
58h | 88 | Int 10h | 2 bytes | Cursor position for video page 4 |
5Ah | 90 | Int 10h | 2 bytes | Cursor position for video page 5 |
5Ch | 92 | Int 10h | 2 bytes | Cursor position for video page 6 |
5Eh | 94 | Int 10h | 2 bytes | Cursor position for video page 7 |
60h | 96 | Int 10h | 2 bytes | Cursor shape |
62h | 97 | Int 10h | 1 byte | Active video page |
63h | 99 | Int 10h | 2 bytes | I/O port address for the video display adapter |
65h | 100 | Int 10h | 1 byte | Video display adapter internal mode register |
| | | | Bit 7, 0b = not used |
| | | | Bit 6, 0b = not used |
| | | | Bit 5 |
| | | | 0b = attribute bit controls background intensity |
| | | | 1b = attribute bit controls blinking |
| | | | Bit 4, 1b = mode 6 graphics operation |
| | | | Bit 3 indicates video signal |
| | | | 0b = video signal disabled |
| | | | 1b = video signal enabled |
| | | | Bit 2 indicates color operation |
| | | | 0b = color operation |
| | | | 1b = monochrome operation |
| | | | Bit 1, 1b = mode 4/5 graphics operation |
| | | | Bit 0, 1b = mode 2/3 test operation |
66h | 101 | Int 10h | 1 byte | Color palette |
| | | | Bit 7, 0b = not used |
| | | | Bit 6, 0b = not used |
| | | | Bit 5 indicates mode 5 foreground colors |
| | | | 0b = green/red/yellow |
| | | | 1b = cyan/magenta/white |
| | | | Bit 4 indicates background color |
| | | | 0b = normal background color |
| | | | 1b = intensified background color |
| | | | Bit 3 indicates intensified border color (mode 2) and background color (mode 5) |
| | | | Bit 2 indicates red |
| | | | Bit 1 indicates green |
| | | | Bit 0 indicates blue |
67h | 103 | | 2 bytes | Adapter ROM offset address |
69h | 106 | | 2 bytes | Adapter ROM segment address |
6Bh | 107 | | 1 byte | Last interrupt (not PC) |
| | | | Bit 7 indicates IRQ 7 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 6 indicates IRQ 6 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 5 indicates IRQ 5 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 4 indicates IRQ 4 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 3 indicates IRQ 3 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 2 indicates IRQ 2 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 1 indicates IRQ 1 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
| | | | Bit 0 indicates IRQ 0 hardware interrupt |
| | | | 0b = did not occur |
| | | | 01 = did occur |
6Ch | 111 | Int 1Ah | 4 bytes | Counter for Interrupt 1Ah |
70c | 112 | Int 1Ah | 1 byte | Timer 24 hour flag |
71h | 113 | Int 16h | 1 byte | Keyboard Ctrl-Break flag |
72h | 115 | POST | 2 bytes | Soft reset flag |
74h | 116 | Int 13h | 1 byte | Status of last hard disk operation |
| | | | 00h = no errors |
| | | | 01h = invalid function requested |
| | | | 02h = address mark not found |
| | | | 04h = sector not found |
| | | | 05h = reset failed |
| | | | 06h = removable media changed |
| | | | 07h = drive parameter activity failed |
| | | | 08h = DMA overrun |
| | | | 09h = DMA boundary overrun |
| | | | 0Ah = bad sector flag detected |
| | | | 0Bh = bad track detected |
| | | | 0Dh = invalid number of sectors on format |
| | | | 0Eh = control data address mark detected |
| | | | 0Fh = DMA arbitration level out of range |
| | | | 10h = uncorrectable ECC or CRC error |
| | | | 11h = ECC corrected data error |
| | | | 20h = general controller failure |
| | | | 40h = seek operation failed |
| | | | 80h = timeout |
| | | | AAh = drive not ready |
| | | | BBh = undefined error occurred |
| | | | CCh = write fault on selected drive |
| | | | E0h = status error or error register is zero |
| | | | FFh = sense operation failed |
75h | 117 | Int 13h | 1 byte | Number of hard disk drives |
76h | 118 | Int 13h | 1 byte | Hard disk control byte |
| | | | Bit 7 |
| | | | 0b = enables retries on disk error |
| | | | 1b = disables retries on disk error |
| | | | Bit 6 |
| | | | 0b = enables reties on disk error |
| | | | 1b = enables reties on disk error |
| | | | Bit 5, 0b = not used |
| | | | Bit 4, 0b = not used |
| | | | Bit 3 |
| | | | 0b = drive has less than 8 heads |
| | | | 1b = drive has more than 8 heads |
| | | | Bit 2, 0b = not used |
| | | | Bit 1, 0b = not used |
| | | | Bit 0, 0b = not used |
77h | 119 | Int 13h | 1 byte | Offset address of hard disk I/O port (XT) |
78h | 120 | Int 17h | 1 byte | Parallel port 1 timeout |
79h | 121 | Int 17h | 1 byte | Parallel port 2 timeout |
7Ah | 122 | Int 17h | 1 byte | Parallel port 3 timeout |
7Bh | 123 | | 1 byte | Parallel port 4 timeout (PC, XT) support for virtual DMA services (VDS) |
| | | | Bit 7, 0b = not used |
| | | | Bit 6, 0b = not used |
| | | | Bit 5 indicates virtual DMA services |
| | | | 0b = not supported |
| | | | 1b = supported |
| | | | Bit 4, 0b = not used |
| | | | Bit 3 indicates chaining on interrupt 4Bh |
| | | | 0b = not required |
| | | | 1b = required |
| | | | Bit 2, 0b = not used |
| | | | Bit 1, 0b = not used |
| | | | Bit 0, 0b = not used |
7Ch | 124 | Int 14h | 1 byte | Serial port 1 timeout |
7Dh | 125 | Int 14h | 1 byte | Serial port 2 timeout |
7Eh | 126 | Int 14h | 1 byte | Serial port 3 timeout |
7Fh | 127 | Int 14h | 1 byte | Serial port 4 timeout |
80h | 129 | Int 16h | 2 bytes | Starting address of keyboard buffer |
82h | 131 | Int 16h | 2 bytes | Ending address of keyboard buffer |
84h | 132 | Int 10h | 1 byte | Number of video rows (minus 1) |
85h | 134 | Int 10h | 2 bytes | Number of scan lines per character |
87h | 135 | Int 10h | 1 byte | Video display adapter options |
| | | | Bit 7 indicates bit 7 of the last video mode |
| | | | 0b = clear display buffer when setting mode |
| | | | 1b = do not clear the display buffer |
| | | | Bit 6-4 indicates the amount of memory on the video display adapter |
| | | | 000b = 64Kb |
| | | | 001b = 128Kb |
| | | | 010b = 192Kb |
| | | | 011b = 256Kb |
| | | | 100b = 512Kb |
| | | | 110 = 1024Kb or more |
| | | | Bit 3 indicates video subsystem |
| | | | 0b = not active |
| | | | 1b = active |
| | | | Bit 2 is reserved |
| | | | Bit 1 indicates monitor type |
| | | | 0b = color |
| | | | 1b = monochrome |
| | | | Bit 0 indicates alphanumeric cursor emulation |
| | | | 0b = disabled |
| | | | 1b = enabled |
88h | 136 | Int 10h | 1 byte | Video display adapter switches |
| | | | Bit 7 indicates state of feature connector line 1 |
| | | | Bit 6 indicates state of feature connector line 0 |
| | | | Bit 5-4 not used |
| | | | Bit 3-0 indicate adapter type switch settings |
| | | | 0000b = MDA/color 40x25 |
| | | | 0001b = MDA/color 80x25 |
| | | | 0010b = MDA/high-resolution 80x25 |
| | | | 0011b = MDA/high-resolution enhanced |
| | | | 0100b = CGA 40x25/monochrome |
| | | | 0101b = CGA 80x25/monochrome |
| | | | 0110b = color 40x25/MDA |
| | | | 0111b = color 80x25/MDA |
| | | | 1000b = high-resolution 80x25/MDA |
| | | | 1001b = high-resolution enhanced/MDA |
| | | | 1010b = monochrome/CGA 40x25 |
| | | | 1011b = monochrome/CGA 80x25 |
89h | 137 | Int 10h | 1 byte | VGA video flags 1 |
| | | | Bit 7 and 4 indicate scanline mode |
| | | | 00b = 350-line mode |
| | | | 01b = 400-line mode |
| | | | 10b = 200-line mode |
| | | | Bit 6 indicates display switch |
| | | | 0b = disabled |
| | | | 1b = enabled |
| | | | Bit 5 is reserved |
| | | | Bit 3 indicates default palette loading |
| | | | 0b = disabled |
| | | | 1b= enabled |
| | | | Bit 2 indicates monitor type |
| | | | 0b = color |
| | | | 1b = monochrome |
| | | | Bit 1 indicates gray scale summing |
| | | | 0b = disabled |
| | | | 1b = enabled |
| | | | Bit 0 indicates VGA active state |
| | | | 0b = VGA inactive |
| | | | 1b = VGA active |
8Ah | 138 | Int 10h | 1 byte | VGA video flags 2 |
8Bh | 139 | Int 13h | 1 byte | Floppy disk configuration data |
| | | | Bit 7-6 indicate last data sent to the controller |
| | | | 00b = 500 Kbit/sec/sec |
| | | | 01b = 300 Kbit/sec |
| | | | 10b = 250 Kbit/sec |
| | | | 11b = rate not set or 1 Mbit/sec |
| | | | Bit 5-4 indicate last drive steprate sent to the controller |
| | | | 00b = 8ms |
| | | | 01b = 7ms |
| | | | 10b = 6ms |
| | | | 11b = 5ms |
| | | | Bit 3-2 indicate data rate, set at start of operation (Bits 7-6) |
| | | | Bit 1-0 not used |
8Ch | 140 | Int 13h | 1 byte | Hard disk drive controller status |
| | | | Bit 7 indicates controller state |
| | | | 0b = controller not busy |
| | | | 1b = controller busy |
| | | | Bit 6 indicates drive ready state |
| | | | 0b = drive selected not ready |
| | | | 1b = drive selected ready |
| | | | Bit 5 indicates write fault |
| | | | 0b = write fault did not occur |
| | | | 1b = write error occurred |
| | | | Bit 4 indicates seek state |
| | | | 0b = drive selected seeking |
| | | | 1b = drive selected seek complete |
| | | | Bit 3 indicates data request |
| | | | 0b = data request is inactive |
| | | | 1b = data request is active |
| | | | Bit 2 indicates data correction |
| | | | 0b = data not corrected |
| | | | 1b = data corrected |
| | | | Bit 1 indicates index pulse state |
| | | | 0b = index pulse inactive |
| | | | 1b = index pulse active |
| | | | Bit 0 indicates error |
| | | | 0b = no error |
| | | | 1b = error in previous command |
8Dh | 141 | Int 13h | 1 byte | Hard disk drive error |
| | | | Bit 7 indicates bad sector |
| | | | 0b = not used |
| | | | 1b = bad sector detected |
| | | | Bit 6 indicated ECC error |
| | | | 0b = not used |
| | | | 1b = uncorrectable ECC error occurred |
| | | | Bit 5 indicates media state |
| | | | 0b = not used |
| | | | 1b = media changed |
| | | | Bit 4 indicates sector state |
| | | | 0b = not used |
| | | | 1b = ID or target sector not found |
| | | | Bit 3 indicates media change request state |
| | | | 0b = not used |
| | | | 1b = media change requested |
| | | | Bit 2 indicates command state |
| | | | 0b = not used |
| | | | 1b = command aborted |
| | | | Bit 1 indicates drive track error |
| | | | 0b = not used |
| | | | 1b = track 0 not found |
| | | | Bit 0 indicates address mark |
| | | | 0b = not used |
| | | | 1b = address mark not found |
8Eh | 142 | Int 13h | 1 byte | Hard disk drive task complete flag |
8Fh | 143 | Int 13h | 1 byte | Floppy disk drive information |
| | | | Bit 7 not used |
| | | | Bit 6 indicates drive 1 type determination |
| | | | 0b = not determined |
| | | | 1b = determined |
| | | | Bit 5 indicates drive 1 multirate status |
| | | | 0b = no |
| | | | 1b = yes |
| | | | Bit 4 indicates diskette 1 change line detection |
| | | | 0b = no |
| | | | 1b = yes |
| | | | Bit 3 not used |
| | | | Bit 2 indicates drive 0 type determination |
| | | | 0b = not determined |
| | | | 1b = determined |
| | | | Bit 1 indicates drive 0 multirate status |
| | | | 0b = no |
| | | | 1b = yes |
| | | | Bit 0 indicates diskette 0 change line detection |
| | | | 0b = no |
| | | | 1b = yes |
90h | 144 | Int 13h | 1 byte | Diskette 0 media state |
| | | | Bit 7-6 indicate transfer rate |
| | | | 00b = 500 Kbit/sec |
| | | | 01b = 300 Kbit/sec |
| | | | 10b = 250 Kbit/sec |
| | | | 11b = 1 Mbit/sec |
| | | | Bit 5 indicates double stepping |
| | | | 0b = not required |
| | | | 1b = required |
| | | | Bit 4 indicates media in floppy drive |
| | | | 0b = unknown media |
| | | | 1b = known media |
| | | | Bit 3 not used |
| | | | Bit 2-0 indicates last access |
| | | | 000b = trying 360k media in 360K drive |
| | | | 001b = trying 360K media in 1.2M drive |
| | | | 010b = trying 1.2M media in 1.2M drive |
| | | | 011b = known 360K media on 360K drive |
| | | | 100b = known 360K media in 1.2M drive |
| | | | 101b = known 1.2M media in 1.2M drive |
| | | | 110b = not used |
| | | | 111b = 720K media in 720K drive or 1.44M media in 1.44M drive |
91h | 145 | Int 13h | 1 byte | Diskette 1 media state |
| | | | Bit 7-6 indicate transfer rate |
| | | | 00b = 500 Kbit/sec |
| | | | 01b = 300 Kbit/sec |
| | | | 10b = 250 Kbit/sec |
| | | | 11b = 1 Mbit/sec |
| | | | Bit 5 indicates double stepping |
| | | | 0b = not required |
| | | | 1b = required |
| | | | Bit 4 indicates media in floppy drive |
| | | | 0b = unknown media |
| | | | 1b = known media |
| | | | Bit 3 not used |
| | | | Bit 2-0 indicates last access |
| | | | 000b = trying 360k media in 360K drive |
| | | | 001b = trying 360K media in 1.2M drive |
| | | | 010b = trying 1.2M media in 1.2M drive |
| | | | 011b = known 360K media on 360K drive |
| | | | 100b = known 360K media in 1.2M drive |
| | | | 101b = known 1.2M media in 1.2M drive |
| | | | 110b = not used |
| | | | 111b = 720K media in 720K drive or 1.44M media in 1.44M drive |
92h | 146 | Int 13h | 1 byte | Diskette 0 operational starting state |
| | | | Bit 7 indicates data transfer rate |
| | | | 00b = 500 Kbit/sec |
| | | | 01b = 300 Kbit/sec |
| | | | 10b = 250 Kbit/sec |
| | | | 11b = 1 Mbit/sec |
| | | | Bits 5-3 not used |
| | | | Bit 2 indicates drive determination |
| | | | 0b = drive type not determined |
| | | | 1b = drive type determined |
| | | | Bit 1 indicates drive multirate status |
| | | | 0b = drive is not multirate |
| | | | 1b = drive is multirate |
| | | | Bit 0 indicates change line detection |
| | | | 0b = no change line detection |
| | | | 1b = change line detection |
93h | 147 | Int 13h | 1 byte | Diskette 1 operational starting status |
| | | | Bit 7 indicates data transfer rate |
| | | | 00b = 500 Kbit/sec |
| | | | 01b = 300 Kbit/sec |
| | | | 10b = 250 Kbit/sec |
| | | | 11b = 1 Mbit/sec |
| | | | Bits 5-3 not used |
| | | | Bit 2 indicates drive determination |
| | | | 0b = drive type not determined |
| | | | 1b = drive type determined |
| | | | Bit 1 indicates drive multirate status |
| | | | 0b = drive is not multirate |
| | | | 1b = drive is multirate |
| | | | Bit 0 indicates change line detection |
| | | | 0b = no change line detection |
| | | | 1b = change line detection |
94h | 148 | Int 13h | 1 byte | Diskette 0 current cylinder |
95h | 149 | Int 13h | 1 byte | Diskette 1 current cylinder |
96h | 150 | Int 16h | 1 byte | Keyboard status flags 3 |
| | | | Bit 7, 1b = reading two byte keyboard ID in progress |
| | | | Bit 6, 1b = last code was first ID character |
| | | | Bit 5, 1b = forced Numlock on |
| | | | Bit 4 indicates presence of 101/102 key keyboard |
| | | | 0b = present |
| | | | 1b = not present |
| | | | Bit 3 indicates right alt key active |
| | | | 0b = not active |
| | | | 1b = active |
| | | | Bit 2 indicates right control key active |
| | | | 0b = not active |
| | | | 1b = active |
| | | | Bit 1, 1b = last scancode was E0h |
| | | | Bit 0, 1b = last scancode was E1h |
97h | 151 | Int 16h | 1 byte | Keyboard status flags 4 |
| | | | Bit 7, 1b = keyboard transmit error |
| | | | Bit 6, 1b = LED update in progress |
| | | | Bit 5, 1b = re-send code received |
| | | | Bit 4, 1b = acknowledge code received |
| | | | Bit 3, 1b = reserved |
| | | | Bit 2 indicates CapsLock LED state |
| | | | 0b = CapsLock LED off |
| | | | 1b = CapsLock LED on |
| | | | Bit 1 indicates NumLock LED state |
| | | | 0b = NumLock LED off |
| | | | 1b = NumLock LED on |
| | | | Bit 0 indicates ScrollLock LED state |
| | | | 0b = ScrollLock LED off |
| | | | 1b = ScrollLock LED on |
98h | 155 | | 4 bytes | Segment:Offset address of user wait flag pointer |
9Ch | 159 | | 4 bytes | User wait count |
A0h | 160 | | 1 byte | User wait flag |
| | | | Bit 7, 1b = wait time has elapsed |
| | | | Bit 6-1 not used |
| | | | Bit 0 indicates wait progress |
| | | | 0b = no wait in progress |
| | | | 1b = wait in progress |
A1h | 167 | | 7 bytes | Local area network (LAN) bytes |
A8h | 171 | | 4 bytes | Segment:Offset address of video parameter control block |
ACh | 239 | | 68 bytes | Reserved |
F0h | 255 | | 16 bytes | Intra-applications communications area |