2008年12月24日 星期三
2008年12月21日 星期日
二次巴拉卡, 新加大屯山助航站
2008年12月16日 星期二
BIOS-related名詞解釋
BDA: BIOS Data Area,位於0x400位址,用來記錄一些information,讓BIOS使用來不同的周邊與資源。
BBS: BIOS Boot Specification,規範BIOS如何選擇boot device的方式,只要有能力可以execute與 load OS的device都被視為Initial Program Load (IPL) device,比如floppy drives, hard drives。
BAID: BIOS Aware IPL Device,可以boot OS且BIOS有specific code能夠去support它。
BCV: Boot Connection Vector,是一個pointor,指向OPRom中的code,該code會執行device initialization。
BEV: Bootstrap Entry Vector,是一個pointor,指向OPRom中的code,該code會直接去load OS。
ESCD: Extended System Configuration Data,它是 BIOS's CMOS memory的一個特別的memory part,它記錄著關於系統中hardware的configuration information,BIOS會去檢查它是不是有any change,如果沒有的話,代表BIOS不需要去configure anything,如此加速開機速度,就不用每次開機都去assign resource。
待續...
BBS: BIOS Boot Specification,規範BIOS如何選擇boot device的方式,只要有能力可以execute與 load OS的device都被視為Initial Program Load (IPL) device,比如floppy drives, hard drives。
BAID: BIOS Aware IPL Device,可以boot OS且BIOS有specific code能夠去support它。
BCV: Boot Connection Vector,是一個pointor,指向OPRom中的code,該code會執行device initialization。
BEV: Bootstrap Entry Vector,是一個pointor,指向OPRom中的code,該code會直接去load OS。
ESCD: Extended System Configuration Data,它是 BIOS's CMOS memory的一個特別的memory part,它記錄著關於系統中hardware的configuration information,BIOS會去檢查它是不是有any change,如果沒有的話,代表BIOS不需要去configure anything,如此加速開機速度,就不用每次開機都去assign resource。
待續...
2008年12月15日 星期一
BIOS Data Area
The BIOS Data Area is created at memory location 0040:0000h
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 |
訂閱:
文章 (Atom)