Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
back2root:ibm-pc-ms-dos:hardware:informations:bios_data_area [2023/01/16 17:54] – supprimée - modification externe (Unknown date) 127.0.0.1 | back2root:ibm-pc-ms-dos:hardware:informations:bios_data_area [2024/08/13 11:23] (Version actuelle) – [Bios Memory Maps] frater | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== BDA - BIOS Data Area - PC Memory Map - WIP ====== | ||
+ | ===== The following map varies in size and locus ===== | ||
+ | {{tablelayout? | ||
+ | | 07C0: | ||
+ | | A000: | ||
+ | | B000: | ||
+ | | B800: | ||
+ | | C000: | ||
+ | | C400: | ||
+ | | C600: | ||
+ | | C800: | ||
+ | | C800: | ||
+ | | D000: | ||
+ | | D800: | ||
+ | | E000: | ||
+ | | | ||
+ | | F000: | ||
+ | | | ||
+ | | F400: | ||
+ | | F600: | ||
+ | | F800: | ||
+ | | FC00: | ||
+ | | FF00: | ||
+ | | FFA6: | ||
+ | | FFFF: | ||
+ | | FFFF: | ||
+ | | FFFF: | ||
+ | |||
+ | |||
+ | ===== Bios Memory Maps ===== | ||
+ | {{tablelayout? | ||
+ | ^ Address | ||
+ | | 00:00 | ||
+ | | 30:00 | ||
+ | | 40:00 | ||
+ | | 40:02 | ||
+ | | 40:04 | ||
+ | | 40:06 | ||
+ | | 40:08 | ||
+ | | 40:0A | ||
+ | | 40:0C | ||
+ | | 40:0E | ||
+ | | **Equipement** | ||
+ | | 40:10 | ||
+ | | 40:12 | ||
+ | | 40:13 | ||
+ | | 40:15 | ||
+ | | 40:16 | ||
+ | | **Keyboard** | ||
+ | | 40:17 | ||
+ | | 40:18 | ||
+ | | 40:19 | ||
+ | | 40:1A | ||
+ | | 40:1C | ||
+ | | 40:1E | ||
+ | | **Drive & Diskette** | ||
+ | | 40:3E | ||
+ | | 40:3F | ||
+ | | 40:40 | ||
+ | | 40:41 | ||
+ | | 40:42 | ||
+ | | **Videos** | ||
+ | | 40:49 | ||
+ | | 40:4A | ||
+ | | 40:4C | ||
+ | | 40:4E | ||
+ | | 40:50 | ||
+ | | 40:60 | ||
+ | | 40:61 | ||
+ | | 40:62 | ||
+ | | 40:63 | ||
+ | | 40:65 | ||
+ | | 40:66 | ||
+ | | **PS/2 - 286+** | ||
+ | | 40:67 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | **RTC** | ||
+ | | | ||
+ | | 40:6C | ||
+ | | 40:70 | ||
+ | | 40:71 | ||
+ | | 40:72 | ||
+ | | 40:74 | ||
+ | | 40:75 | ||
+ | | 40:76 | ||
+ | | 40:77 | ||
+ | | 40:78 | ||
+ | | 40:7C | ||
+ | | 40:80 | ||
+ | | 40:82 | ||
+ | | 40:84 | ||
+ | | 40:85 | ||
+ | | | ||
+ | | 40:86 | ||
+ | | **EGA+** | ||
+ | | 40:87 | ||
+ | | ::: | ::: | Video mode options (EGA+) (see [[# | ||
+ | | 40:88 | ||
+ | | 40:89 | ||
+ | | 40:8A | ||
+ | | **Drives** | ||
+ | | 40:8B | ||
+ | | 40:8C | ||
+ | | 40:8D | ||
+ | | 40:8E | ||
+ | | 40:8F | ||
+ | | 40:90 | ||
+ | | 40:94 | ||
+ | | 40:95 | ||
+ | | **Keyboard** | ||
+ | | 40:96 | ||
+ | | 40:97 | ||
+ | | 40:98 | ||
+ | | 40:9C | ||
+ | | 40:A0 | ||
+ | | 40:A1 | ||
+ | | 40:A2 | ||
+ | | 40:A4 | ||
+ | | 40:A8 | ||
+ | | 40:AC | ||
+ | | 40:B4 | ||
+ | | 40:B5 | ||
+ | | 40:B9 | ||
+ | | 40:BA | ||
+ | | 40:BB | ||
+ | | 40:BC | ||
+ | | 40:BD | ||
+ | | 40:CE | ||
+ | | 40:F0 | ||
+ | | **Misc** | ||
+ | | 50:00 | ||
+ | | 50:01 | ||
+ | | 50:04 | ||
+ | | 50:05 | ||
+ | | 50:0F | ||
+ | | 50:10 | ||
+ | | 50:12 | ||
+ | | 50:16 | ||
+ | | 50:1A | ||
+ | | 50:20 | ||
+ | | 50:22 | ||
+ | | 50:30 | ||
+ | | 70:00 | ||
+ | ==== 40:10 - INT 11 registers ==== | ||
+ | {{anchor: | ||
+ | |||
+ | {{tablelayout? | ||
+ | ^ bit ^ 40:10 (value in INT 11 register AL) ^ | ||
+ | | 0 | IPL diskette installed | ||
+ | | 1 | math coprocessor | ||
+ | | 2-3 | old PC system board RAM < 256K\\ PS/2 bit 2: pointing device installed; bit 3 :not used | | ||
+ | | 4-5 | initial video mode | | ||
+ | | 6-7 | # of diskette drives, less 1 | | ||
+ | |||
+ | ==== 40:11 - INT 11 registers ==== | ||
+ | ^ bit ^ 40:11 (value in INT 11 register AH) ^ | ||
+ | | 0 | 0 if DMA installed | ||
+ | | 1-3 | number of serial ports | | ||
+ | | 4 | game adapter | ||
+ | | 5 | not used, internal modem (PS/ | ||
+ | | 6-7 | number of printer ports | | ||
+ | |||
+ | |||
+ | ==== 40:17 - Keyboard flag 0 ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | right shift key depressed | ||
+ | | 1 | left shift key depressed | ||
+ | | 2 | CTRL key depressed | ||
+ | | 3 | ALT key depressed | ||
+ | | 4 | scroll-lock is active | ||
+ | | 5 | num-lock is active | ||
+ | | 6 | caps-lock is active | ||
+ | | 7 | insert is active | ||
+ | |||
+ | ==== 40:18 - Keyboard flag 1 ==== | ||
+ | {{anchor: | ||
+ | |||
+ | ^ bit ^ description | ||
+ | | 0 | left CTRL key depressed | ||
+ | | 1 | left ALT key depressed | ||
+ | | 2 | system key depressed and held | | ||
+ | | 3 | suspend key has been toggled | ||
+ | | 4 | scroll lock key is depressed | ||
+ | | 5 | num-lock key is depressed | ||
+ | | 6 | caps-lock key is depressed | ||
+ | | 7 | insert key is depressed | ||
+ | |||
+ | ===== Floppy/ | ||
+ | |||
+ | ==== 40:3e - Drive Recalibration status ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | 1=recalibrate drive 0 | | ||
+ | | 1 | 1=recalibrate drive 1 | | ||
+ | | 2 | 1=recalibrate drive 2 | | ||
+ | | 3 | 1=recalibrate drive 3 | | ||
+ | | 4-6 | unused | ||
+ | | 7 | 1=working interrupt flag | | ||
+ | |||
+ | ==== 40:3f - Floppy motor status ===== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | 1=drive 0 motor on | | ||
+ | | 1 | 1=drive 1 motor on | | ||
+ | | 2 | 1=drive 2 motor on | | ||
+ | | 3 | 1=drive 3 motor on | | ||
+ | | 4-6 | unused | ||
+ | | 7 | 1=write operation | ||
+ | |||
+ | ==== 40:41 - status of last diskette operation ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | invalid diskette command | ||
+ | | 1 | diskette address mark not found | | ||
+ | | 2 | sector not found | | ||
+ | | 3 | diskette DMA error | | ||
+ | | 4 | CRC check / data error | | ||
+ | | 5 | diskette controller failure | ||
+ | | 6 | seek to track failed | ||
+ | | 7 | diskette time-out | ||
+ | |||
+ | ===== Soft reset flag ===== | ||
+ | |||
+ | ==== 40:72 - Soft reset flag ==== | ||
+ | {{anchor: | ||
+ | |||
+ | ^ value ^ description ^ | ||
+ | | 1234h | Bypass memory tests & CRT initialization| | ||
+ | | 4321h | Preserve memory| | ||
+ | | 5678h | System suspend| | ||
+ | | 9ABCh | Manufacturer test| | ||
+ | | ABCDh | Convertible POST loop| | ||
+ | | ????h | many other values are used during POST| | ||
+ | |||
+ | ===== Floppy disk controller ===== | ||
+ | |||
+ | ==== 40:8B - Last diskette data rate selected ==== | ||
+ | {{anchor: | ||
+ | ^ bit ^ description | ||
+ | | 0-3 | reserved | | ||
+ | | 4-5 | last floppy drive step rate selected| | ||
+ | | 6-7 | last floppy data rate selected | | ||
+ | |||
+ | {{tablelayout? | ||
+ | ^ Data ^ Rate | ||
+ | | 00 | 500K bps | 00 | step rate time of 0C | | ||
+ | | 01 | 300K bps | 01 | step rate time of 0D | | ||
+ | | 10 | 250K bps | 10 | step rate time of 0A | | ||
+ | | 11 | reserved | ||
+ | |||
+ | ==== 40:90 - Drive 0,1,2,3 media state ==== | ||
+ | {{anchor: | ||
+ | ^ bit ^ description | ||
+ | | 0-2 | drive/media state (see [[# | ||
+ | | 3 | reserved | | ||
+ | | 4 | 1=media/ | ||
+ | | 5 | double stepping required | | ||
+ | | 6-7 | data rate: | ||
+ | |||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ Bits\\ 210 ^ Drive Media State ^ | ||
+ | | 000 | 360Kb diskette/ | ||
+ | | 001 | 360Kb diskette/ | ||
+ | | 010 | 1.2Mb diskette/ | ||
+ | | 011 | 360Kb diskette/ | ||
+ | | 100 | 360Kb diskette/ | ||
+ | | 101 | 1.2Mb diskette/ | ||
+ | | 110 | Reserved | ||
+ | | 111 | None of the above | | ||
+ | |||
+ | ===== Keyboard ===== | ||
+ | |||
+ | ==== 40:96 - Keyboard mode/type ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | last code was the E1 hidden code | | ||
+ | | 1 | last code was the E0 hidden code | | ||
+ | | 2 | right CTRL key depressed | ||
+ | | 3 | right ALT key depressed | ||
+ | | 4 | 101/102 enhanced keyboard installed | ||
+ | | 5 | force num-lock if Rd ID & KBX | | ||
+ | | 6 | last char was first ID char | | ||
+ | | 7 | read ID in process | ||
+ | |||
+ | |||
+ | ==== 40:97 - Keyboard LED flags ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | scroll lock indicator | ||
+ | | 1 | um-lock indicator | ||
+ | | 2 | caps-lock indicator | ||
+ | | 3 | circus system indicator | ||
+ | | 4 | ACK received | ||
+ | | 5 | re-send received flag | | ||
+ | | 6 | mode indicator update | ||
+ | | 7 | keyboard transmit error flag | | ||
+ | |||
+ | |||
+ | |||
+ | ===== Real Time Clock ==== | ||
+ | |||
+ | ==== 40:A0 - RTC wait function flag ==== | ||
+ | {{anchor: | ||
+ | {{tablelayout? | ||
+ | ^ bit ^ description | ||
+ | | 0 | 1= wait pending | ||
+ | | 1-6 | not used | | ||
+ | | 7 | 1=[[back2root: | ||
+ | |||
+ | see [[back2root: |