📄 appendix-bios_memory_2.htm
字号:
75h BYTE Fixed disk: number of fixed disk drives
[WD1002-27X SuperBIOS] total fixed drives, both controllers
76h BYTE Fixed disk: control byte {IBM document only for XT}
XT: hard disk controller's I/O address (Western Digital)
[WD1002-27X SuperBIOS] used in track recalculation
77h BYTE Fixed disk: I/O port offset {IBM document only for XT}
[WD1002-27X SuperBIOS] used in track recalculation
78h 3 BYTEs Parallel devices 1-3 time-out counters
7Bh BYTE parallel device 4 time-out counter [non-PS and PS Mod 25,30]
bit 7-6 reserved
bit 5 set if Virtual DMA Spec supported [PS] (see INT 4B)
bit 4 reserved
bit 3 set if INT 4Bh intercepted and must be chained
bit 2 reserved
bit 1 set if Generic SCSI CBIOS services available on INT 4Bh
bit 0 reserved
7Ch 4 BYTEs Serial devices 1-4 time-out counters
80h WORD Keyboard buffer start as offset from segment 40h (normally 1Eh)
82h WORD Keyboard buffer end+1 as offset from segment 40h (normally 3Eh)
[XT BIOS dated 11/08/82 ends here]
84h BYTE Video EGA/MCGA/VGA rows on screen minus one
85h WORD Video EGA/MCGA/VGA character height in scan-lines
87h BYTE Video EGA/VGA control: [MCGA: =00h]
bit 7: =1 if not to clear RAM (see INT 10h, AH=00h)
bits 6-5: RAM on adapter = (this field + 1) * 64K
bit 4: reserved
bit 3: =0 if EGA/VGA video system active, =1 if inactive
bit 2: =1 if to wait for display enable (what means this?)
bit 1: =0 for color or ECD monitor, =1 for mono monitor
bit 0: =0 alphanumeric cursor emulation enabled, =1 not.
When enabled, text mode cursor size (INT 10,AH=01h)
settings looking like CGA ones are translated to
equivalent EGA/VGA ones.
88h BYTE Video EGA/VGA switches: [MCGA: reserved]
bits 7-4: power-on state of feature connector bits 3-0
bits 3-0: configuration switches 4-1 (=0 on, =1 off)
Values as read:
0h Pri MDA, Sec EGA+old color display 40 x 25
1h Pri MDA, Sec EGA+old color display 80 x 25
2h Pri MDA, Sec EGA+ECD normal mode (CGA emul)
3h Pri MDA, Sec EGA+ECD enhanced mode
4h Pri CGA 40 x 25, Sec EGA mono display
5h Pri CGA 80 x 25, Sec EGA mono display
6h Pri EGA+old color display 40 x 25, Sec MDA
7h Pri EGA+old color display 80 x 25, Sec MDA
8h Pri EGA+ECD normal mode (CGA emul), Sec MDA
9h Pri EGA+ECD enhanced mode, Sec MDA
Ah Pri EGA mono display, Sec CGA 40 x 25
Bh Pri EGA mono display, Sec CGA 80 x 25
When bit4 of 40h:89h is 0, VGA emulates 350-line EGA if
this byte is x3h or x9h, otherwise emulates 200-line CGA in
400-line double scan. VGA resets this byte to x9h after the
mode set.
See also note for next byte.
89h BYTE {Video MCGA/VGA mode-set option control:}
bits 7 and 4:
0 0 350-line mode requested
0 1 400-line mode at next mode set
1 0 200-line mode requested
1 1 reserved
Apparently VGA BIOS mode set disregards bit 7 and uses
byte 40h:88h to determine 200/350 selection when bit 4
is zero. Presumably bit 7 is a convenience for other
purposes. Bit 7 is reset to zero after the mode set.
bit 6: =1 if display switching enabled, =0 if disabled
bit 5: reserved
bit 4: [VGA] =1 if to use 400-line mode at next mode set
=0 if to emulate EGA at next mode set
This bit set to 1 after the mode set.
[MCGA] =1 use 400-line mode at next mode set
=0 emulate CGA, digital monitor, 200 lines,
8 x 8 text font at next mode set
Bit unchanged by mode set.
bit 3: =0 if default palette loading enabled at mode set
bit 2: =1 if mono display, =0 if color display
bit 1: =1 if gray scale summing enabled, =0 if disabled
bit 0: [VGA] =1 if VGA active, =0 if not
[MCGA] reserved, zero
Note: the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and
bits 6-5 of 89h to specify graphics-mode refresh
rates as follows
88h/6 640x480: 1 for 72Hz,0 for 60Hz
88h/5+89h/6 800x600: 00 60Hz
01 56Hz
11 72Hz
88h/4+89h/5 1024x768: 00 interlaced
01 60Hz
10 72Hz???
11 70Hz
8Ah BYTE {Video [MCGA/VGA]: index into Display Combination Code table}
8Bh 11 BYTEs reserved [PC, PCjr, PC/XT 11/8/82, and Convertible]
8Bh BYTE Diskette media control [not XT]:
bits 7-6: Last data rate set by controller:
00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
bits 5-4: Last diskette drive step rate selected
00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
bits 3-2: {Data rate at start of operation}
bits 1-0: reserved
Note: EHD BIOS sets this byte to 01h and never reads it back
8Ch BYTE Fixed disk controller status [not XT]
8Dh BYTE Fixed disk controller Error Status [not XT]
8Eh BYTE Fixed disk Interrupt Control [not XT]
cleared to 00h at start of disk operation, set to FFh by IRQ14
handler when hard disk controller completes command
8Fh BYTE {Diskette controller information [not XT]:}
bit 7: reserved
bit 6: =1 drive 1 determined
bit 5: =1 drive 1 is multi-rate, valid if drive determined
bit 4: =1 drive 1 supports 80 tracks, always valid
bit 3: reserved
bit 2: =1 drive 0 determined
bit 1: =1 drive 0 is multi-rate, valid if drive determined
bit 0: =1 drive 0 supports 80 tracks, always valid
Note: EHD BIOS sets this byte to 01h and never alters it again
90h BYTE Diskette drive 0 media state
91h BYTE Diskette drive 1 media state
bits 7-6: Data rate
00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
bit 5: =1 if double stepping required (e.g. 360kB in 1.2MB)
bit 4: =1 if media established
bit 3: =1 if drive capable of supporting 4MB media
bits 2-0: on exit from BIOS, contain:
000 trying 360kB in 360kB
001 trying 360kB in 1.2MB
010 trying 1.2MB in 1.2MB
011 360kB in 360kB established
100 360kB in 1.2MB established
101 1.2MB in 1.2MB established
110 reserved
111 all other formats/drives
92h BYTE {Diskette drive 0 media state at start of operation}
officially "Drive 2 media state"
bits 7-3 as above
bit 2: =1 if multiple data rate capability determined
bit 1: =1 if multiple data rate capability
bit 0: =1 if drive has 80 tracks, =0 if 40 tracks
92h BYTE [Olivetti Quaderno] Hard Disk powerdown countdown in clock
ticks (HD turned off when counter reaches zero)
93h BYTE {Diskette drive 1 media state at start of operation}
officially "Drive 3 media state"
bits 7-3 as above
bit 2: =1 if multiple data rate capability determined
bit 1: =1 if multiple data rate capability
bit 0: =1 if drive has 80 tracks, =0 if 40 tracks
[HP 100LX/200LX] display control status
bit 0 =1 if DISPCTL -K
bit 1 =1 if DISPCTL -C
94h BYTE Diskette drive 0 current track number
95h BYTE Diskette drive 1 current track number
96h BYTE Keyboard status byte 1
bit 7 =1 read-ID in progress
bit 6 =1 last code read was first of two ID codes
bit 5 =1 force Num Lock if read-ID and enhanced keyboard
bit 4 =1 enhanced keyboard installed
bit 3 =1 Right Alt pressed
bit 2 =1 Right Ctrl pressed
bit 1 =1 last code read was E0h
bit 0 =1 last code read was E1h
97h BYTE Keyboard status byte 2
bit 7 =1 keyboard transmit error flag
bit 6 =1 LED update in progress
bit 5 =1 RESEND received from keyboard
bit 4 =1 ACK received from keyboard
bit 3 reserved, must be zero
bit 2 Caps Lock LED
bit 1 Num Lock LED
bit 0 Scroll Lock LED
98h DWORD Timer2: [AT, PS exc Mod 30] ptr to user wait-complete flag
(see INT 15, AX=8300h)
9Ch DWORD Timer2: [AT, PS exc Mod 30] user wait count in microseconds
9Fh BYTE [HP 100LX/200LX] video zoom mode
02h 80x25 mono
03h 80x25 color
80h 64x18 mono
81h 64x18 color
82h 40x25 mono
83h 40x25 color
84h 40x16 mono
85h 40x16 color
(see INT 10/AH=D0h)
A0h BYTE Timer2: [AT, PS exc Mod 30] Wait active flag:
bit 7 =1 wait time elapsed
bits 6-1 reserved
bit 0 =1 INT 15h, AH=86h has occurred
A1h BYTE bit 5 set if LAN Support Program Interrupt Arbitrator present
(DEVICE=DXMA0MOD.SYS)
A2h 6 BYTEs reserved for network adapters
A4h DWORD [PS/2 Mod 30] Saved Fixed Disk Interrupt Vector
A8h DWORD Video: EGA/MCGA/VGA ptr to Video Save Pointer Table (see below)
ACh-AFh reserved
B0h BYTE (Phoenix 386 BIOS 1.10 10a) loop count for hard disk timeout
and delaying when beeping due to full keyboard buffer
B0h DWORD ptr to 3363 Optical disk driver or BIOS entry point.
When 3363 BIOS present, the signature "OPTIC ",00h occurs 3
bytes beyond this entry point.
When 3363 BIOS and 3363 File System Driver present, the
signature "FILE SYSTEM DRIVER",00h occurs 3 bytes beyond
this entry point.
B0h 16 BYTEs (1988 Phoenix 386 BIOS 1.10 03) drive parameters for hard disk
type 48 (see INT 41,INT 46)
B4h WORD reserved
B5h BYTE (Dell 4xxDE)
bit 2: ??? (related to disk drives)
bit 5: page tables set to allow Weitek addressing in real mode
bit 6: Weitek math coprocessor present
B6h 3 BYTEs reserved for POST?
B9h 7 BYTEs ???
C0h 16 BYTEs (1988 Phoenix 386 BIOS 1.10 03) drive parameters for hard disk
type 49 (see INT 41,INT 46)
C0h 14 BYTEs reserved
CEh WORD count of days since last boot
D0h-EFh reserved
D0h BYTE [Digiboard MV/4] length of data table
D0h BYTE [EHD floppy]
bit 4: installation completed
bits 3-0: drives 0-3
D1h BYTE [Digiboard MV/4] product ID
D2h WORD [Digiboard MV/4] base address found
D4h BYTE [Digiboard MV/4] ports
D5h BYTE [Digiboard MV/4] IRQ
D5h BYTE [EHD floppy] total number of floppy disk controllers in system
D6h BYTE [EHD floppy] AND-bits for DL to adjust port address (FFh if
at 03Fxh and 7Fh if at 037xh)
D6h WORD [Digiboard MV/4] keyboards found
D7h BYTE [EHD floppy] drive 0 diskette media status
bits 7-6: Data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
bit 5: =1 if double stepping reqd (e.g. 360kB in 1.2MB)
bit 4: =1 if media established
bit 3: reserved
bits 2-0: on exit from BIOS, contain:
000 trying 360kB in 360kB
001 trying 360kB in 1.2MB
010 trying 1.2MB in 1.2MB
011 360kB in 360kB established
100 360kB in 1.2MB established
101 1.2MB in 1.2MB established
110 reserved (2M8?)
111 all other formats/drives
the value in 4D7 gets sent to 490 (diskette0 media state)
D8h BYTE [EHD floppy] drive 1 diskette media state
D8h WORD [Digiboard MV/4] mice found
D9h BYTE [EHD floppy] drive 2 diskette media state
DAh BYTE [Digiboard MV/4] current port (used by VGA initialization only)
DAh BYTE [EHD floppy] drive 3 diskette media state
DBh BYTE [Digiboard MV/4] master 8259 mask (used by VGA init only)
DBh BYTE [EHD floppy] drive 0 needs recalibaration
DCh BYTE [Digiboard MV/4] slave 8259 mask (used by VGA init only)
DCh BYTE [EHD floppy] drive 1 needs recalibaration
DDh BYTE [EHD floppy] drive 2 needs recalibaration
DEh BYTE [EHD floppy] drive 3 needs recalibaration
E0h-EFh [Phoenix 386 BIOS] drive parameter table for first hard disk
if configurable "type 47"
E3h BYTE [EHD floppy] drive 0 diskette type (from jumpers)
01h undefined by diskette change (360K)
02h 1.2M
03h 720K
04h 1.44M
05h 2.88M
E4h BYTE [EHD floppy] drive 1 diskette type (from jumpers)
E5h BYTE [EHD floppy] drive 2 diskette type (from jumpers)
E6h BYTE [EHD floppy] drive 3 diskette type (from jumpers)
EAh WORD [Omti controller] segment of extended BIOS data area???
drive parameter tables stored in specified segment
ECh WORD (Dell 4xxDE BIOS A11) loop count for delays
F0h-FFh reserved for user
100h BYTE Print Screen Status byte
104h BYTE [MS-DOS] logical drive for single-floppy system (A: or B:)
10Eh BYTE state of BREAK at start of BASICA.COM execution
10Fh BYTE flag: 02h if BASICA v2.10 running
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -