| 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 |