add directory study
This commit is contained in:
486
study/sabre/os/files/Booting/BIOS_SEG.txt
Normal file
486
study/sabre/os/files/Booting/BIOS_SEG.txt
Normal file
@@ -0,0 +1,486 @@
|
||||
Format of BIOS Data Segment at segment 40h:
|
||||
{items in curly braces not documented by IBM}
|
||||
Offset Size Description
|
||||
00h WORD Base I/O address of 1st serial I/O port, zero if none
|
||||
02h WORD Base I/O address of 2nd serial I/O port, zero if none
|
||||
04h WORD Base I/O address of 3rd serial I/O port, zero if none
|
||||
06h WORD Base I/O address of 4th serial I/O port, zero if none
|
||||
Note: Above fields filled in turn by POST as it finds serial
|
||||
ports. POST never leaves gaps. DOS and BIOS serial device
|
||||
numbers may be redefined by re-assigning these fields.
|
||||
08h WORD Base I/O address of 1st parallel I/O port, zero if none
|
||||
0Ah WORD Base I/O address of 2nd parallel I/O port, zero if none
|
||||
0Ch WORD Base I/O address of 3rd parallel I/O port, zero if none
|
||||
0Eh WORD [non-PS] Base I/O address of 4th parallel I/O port, zero if none
|
||||
[PS] Segment of Extended BIOS Data Segment
|
||||
Note: Above fields filled in turn by POST as it finds
|
||||
parallel ports. POST never leaves gaps. DOS and BIOS
|
||||
parallel device numbers may de redefined by re-assigning
|
||||
these fields.
|
||||
10h WORD Installed hardware:
|
||||
bits 15-14: number of parallel devices
|
||||
bit 13: [Conv] Internal modem
|
||||
bit 12: reserved
|
||||
bits 11- 9: number of serial devices
|
||||
bit 8: reserved
|
||||
bits 7- 6: number of diskette drives minus one
|
||||
bits 5- 4: Initial video mode:
|
||||
00b = EGA,VGA,PGA
|
||||
01b = 40 x 25 color
|
||||
10b = 80 x 25 color
|
||||
11b = 80 x 25 mono
|
||||
bit 3: reserved
|
||||
bit 2: [PS] =1 if pointing device
|
||||
[non-PS] reserved
|
||||
bit 1: =1 if math co-processor
|
||||
bit 0: =1 if diskette available for boot
|
||||
12h BYTE [Conv] POST status
|
||||
[AT] {Manufacturing test initialisation flags}
|
||||
13h WORD Base memory size in kbytes (0-640)
|
||||
15h BYTE [AT] {Manufacturing test scratch pad}
|
||||
16h BYTE [AT] {Manufacturing test scratch pad}
|
||||
[PS/2 Mod 30] BIOS control flags
|
||||
17h BYTE Keyboard status flags 1:
|
||||
bit 7 =1 INSert active
|
||||
bit 6 =1 Caps Lock active
|
||||
bit 5 =1 Num Lock active
|
||||
bit 4 =1 Scroll Lock active
|
||||
bit 3 =1 either Alt pressed
|
||||
bit 2 =1 either Ctrl pressed
|
||||
bit 1 =1 Left Shift pressed
|
||||
bit 0 =1 Right Shift pressed
|
||||
18h BYTE Keyboard status flags 2:
|
||||
bit 7 =1 INSert pressed
|
||||
bit 6 =1 Caps Lock pressed
|
||||
bit 5 =1 Num Lock pressed
|
||||
bit 4 =1 Scroll Lock pressed
|
||||
bit 3 =1 Pause state active
|
||||
bit 2 =1 Sys Req pressed
|
||||
bit 1 =1 Left Alt pressed
|
||||
bit 0 =1 Left Ctrl pressed
|
||||
19h BYTE Keyboard: Alt-nnn keypad workspace
|
||||
1Ah WORD Keyboard: ptr to next character in keyboard buffer
|
||||
1Ch WORD Keyboard: ptr to first free slot in keyboard buffer
|
||||
1Eh 16 WORDs Keyboard circular buffer (but see 80h, 82h for override)
|
||||
3Eh BYTE Diskette recalibrate status:
|
||||
bit 7 =1 Diskette hardware interrupt occurred
|
||||
bits 6-4 reserved
|
||||
bit 3 =1 Recalibrate diskette 3
|
||||
bit 2 =1 Recalibrate diskette 2
|
||||
bit 1 =1 Recalibrate diskette 1
|
||||
bit 0 =1 Recalibrate diskette 0
|
||||
3Fh BYTE Diskette motor status:
|
||||
bit 7 =1 current operation is write or format
|
||||
=0 current operation is read or verify
|
||||
bit 6 reserved
|
||||
bits 5-4 diskette drive number selected (0-3)
|
||||
bit 3 =1 diskette 3 motor on
|
||||
bit 2 =1 diskette 2 motor on
|
||||
bit 1 =1 diskette 1 motor on
|
||||
bit 0 =1 diskette 0 motor on
|
||||
40h BYTE Diskette motor turn-off time-out count
|
||||
41h BYTE Diskette last operation status (0 = OK)
|
||||
bit 7 =1 drive not ready
|
||||
bit 6 =1 seek error
|
||||
bit 5 =1 general controller failure
|
||||
bits 4-0:
|
||||
00h no error
|
||||
01h invalid request
|
||||
02h address mark not found
|
||||
03h write-protect error
|
||||
04h sector not found
|
||||
06h diskette change line active
|
||||
08h DMA overrun
|
||||
09h DMA across 64k boundary
|
||||
0Ch media type unknown
|
||||
10h CRC error on read
|
||||
42h 7 BYTEs Diskette/Fixed disk status/command bytes
|
||||
49h BYTE Video current mode
|
||||
4Ah WORD Video columns on screen
|
||||
4Ch WORD Video page (regen buffer) size in bytes
|
||||
4Eh WORD Video current page start address in regen buffer
|
||||
50h 16 BYTEs Video cursor position (col, row) for eight pages, 0 based
|
||||
60h WORD Video cursor type, 6845 compatible, hi=startline, lo=endline
|
||||
62h BYTE Video current page number
|
||||
63h WORD Video CRT controller base address: color=03D4h, mono=03B4h
|
||||
65h BYTE Video current setting of mode select register 03D8h/03B8h
|
||||
66h BYTE Video current setting of CGA palette register 03D9h
|
||||
67h DWORD POST real mode re-entry point after certain resets
|
||||
6Bh BYTE POST last unexpected interrupt
|
||||
6Ch DWORD Timer ticks since midnight
|
||||
70h BYTE Timer overflow, non-zero if has counted past midnight
|
||||
71h BYTE Ctrl-Break flag: bit 7=1
|
||||
72h WORD POST reset flag:
|
||||
= 1234h if to bypass memory test (warm boot)
|
||||
= 4321h [PS/2 MCA only] if to preserve memory
|
||||
= 5678h [Conv] system suspended
|
||||
= 9ABCh [Conv] manufacturing test mode
|
||||
= ABCDh [Conv] POST loop mode
|
||||
= 64h Burn-in mode
|
||||
74h BYTE Fixed disk last operation status: {except ESDI drives}
|
||||
00h no error
|
||||
01h invalid function request
|
||||
02h address mark not found
|
||||
03h write protect error
|
||||
04h sector not found
|
||||
05h reset failed
|
||||
07h drive parameter activity failed
|
||||
08h DMA overrun
|
||||
09h DMA data boundary error
|
||||
0Ah bad sector flag detected
|
||||
0Bh bad track detected
|
||||
0Dh invalid number of sectors for 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 failed
|
||||
40h seek failed
|
||||
80h time out
|
||||
AAh drive not ready
|
||||
BBh undefined error
|
||||
CCh write fault on selected drive
|
||||
E0h status error/error register is zero
|
||||
FFh sense failed
|
||||
75h BYTE Fixed disk: number of fixed disk drives
|
||||
76h BYTE Fixed disk: control byte {IBM document only for XT}
|
||||
77h BYTE Fixed disk: I/O port offset {IBM document only for XT}
|
||||
78h 3 BYTEs Parallel devices 1-3 time-out counters
|
||||
7Bh BYTE parallel device 4 time-out counter [non-PS]
|
||||
bit 5 set if Virtual DMA Spec supported [PS] (see INT 4B)
|
||||
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.
|
||||
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
|
||||
8Ah BYTE Video [MCGA/VGA]: index into Display Combination Code table
|
||||
8Bh BYTE Diskette media control [not XT]:
|
||||
bits 7-6: Last data rate set by controller:
|
||||
00=500kbps, 01=300kbps, 10=250kbps, 11=reserved
|
||||
bits 5-4: Last diskette drive step rate selected
|
||||
bits 3-2: {Data rate at start of operation}
|
||||
bits 1-0: reserved
|
||||
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]
|
||||
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
|
||||
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
|
||||
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
|
||||
111 all other formats/drives
|
||||
92h BYTE Diskette drive 0 media state at start of operation
|
||||
93h BYTE Diskette drive 1 media state at start of operation
|
||||
94h BYTE Diskette drive 0 current track number
|
||||
95h BYTE Diskette drive 1 current track number
|
||||
96h BYTE Keyboard status byte 3
|
||||
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 1 =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
|
||||
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 7 BYTEs reserved for network adapters (oh really?)
|
||||
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 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.
|
||||
B4h WORD reserved
|
||||
B6h 3 BYTEs reserved for POST?
|
||||
B9h 7 BYTEs ???
|
||||
C0h 14 BYTEs reserved
|
||||
CEh WORD count of days since last boot?
|
||||
D0h-EFh reserved
|
||||
F0h-FFh reserved for user
|
||||
100h BYTE Print Screen Status byte
|
||||
|
||||
Format of Extended BIOS Data Area (see 40:0Eh for ptr) [PS only]
|
||||
Offset Size Description
|
||||
00h BYTE Length of EBDA in kilobytes
|
||||
01h 15 BYTEs reserved
|
||||
17h BYTE Number of entries in POST error log (0-5)
|
||||
18h 5 WORDs POST error log (each word is a POST error number)
|
||||
19h-21h reserved
|
||||
22h DWORD Pointing Device Driver entry point
|
||||
26h BYTE Pointing Device Flags 1
|
||||
bit 7: =1 command in progress
|
||||
bit 6: =1 resend
|
||||
bit 5: =1 acknowledge
|
||||
bit 4: =1 error
|
||||
bit 3: =0 reserved
|
||||
bits 2-0: index count
|
||||
27h BYTE Pointing Device Flags 2
|
||||
bit 7: =1 device driver far call flag
|
||||
bits 6-3: reserved
|
||||
bits 2-0: package size
|
||||
28h 7 BYTEs Pointing Device Auxiliary Device Data
|
||||
2Fh BYTE reserved
|
||||
30h DWORD Vector for INT 07h stored here during 80387 interrupt
|
||||
34h DWORD Vector for INT 01h stored here during INT 07h emulation
|
||||
38h BYTE Scratchpad for 80287/80387 interrupt code
|
||||
39h WORD Timer3: Watchdog timer initial count
|
||||
3Bh BYTE ??? seen non-zero on Model 30
|
||||
3Ch BYTE ???
|
||||
3Dh 16 BYTEs Fixed Disk parameter table for drive 0 (oh really?)
|
||||
4Dh 16 BYTEs Fixed Disk parameter table for drive 1 (oh really?)
|
||||
Neither of above seen on any Model 30, 50, 60 yet.
|
||||
5Dh-6Bh ???
|
||||
6Ch BYTE Fixed disk: (=FFh on ESDI systems)
|
||||
bits 7-4: Channel number 00-0Fh
|
||||
bits 3-0: DMA arbitration level 00-0Eh
|
||||
6Dh and up: ??? seen non-zero on Model 60
|
||||
3F0h BYTE Fixed disk buffer (???!!!)
|
||||
|
||||
Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
|
||||
Offset Size Description
|
||||
00h DWORD ptr to Video Parameter Table
|
||||
04h DWORD ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
|
||||
08h DWORD ptr to Alphanumeric Character Set Override, else 0
|
||||
0Ch DWORD ptr to Graphics Character Set Override, else 0
|
||||
10h DWORD [VGA only] ptr to Secondary Save Pointer Table, must be valid
|
||||
14h DWORD reserved, zero
|
||||
18h DWORD reserved, zero
|
||||
Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
|
||||
|
||||
Format of Secondary Video Save Pointer Table [VGA only]:
|
||||
Offset Size Description
|
||||
00h WORD Length of this table in bytes, including this word (1Ah)
|
||||
02h DWORD ptr to Display Combination Code Table, must be valid
|
||||
06h DWORD ptr to second Alphanumeric Character Set Override, else 0
|
||||
0Ah DWORD ptr to User Palette Profile Table, else 0
|
||||
0Eh DWORD reserved, zero
|
||||
12h DWORD reserved, zero
|
||||
16h DWORD reserved, zero
|
||||
Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
|
||||
|
||||
Format of Video Parameter Table [EGA, VGA only]:
|
||||
An array of 23 [EGA] or 29 [VGA] elements, each element being 64 bytes long.
|
||||
Elements appear in the order:
|
||||
00h-03h Modes 00h-03h in 200-line CGA emulation mode
|
||||
04h-0Eh Modes 04h-0Eh
|
||||
0Fh-10h Modes 0Fh-10h when only 64kB RAM on adapter
|
||||
11h-12h Modes 0Fh-10h when >64kB RAM on adapter
|
||||
13h-16h Modes 00h-03h in 350-line mode
|
||||
17h VGA Modes 00h or 01h in 400-line mode
|
||||
18h VGA Modes 02h or 03h in 400-line mode
|
||||
19h VGA Mode 07h in 400-line mode
|
||||
1Ah-1Ch VGA Modes 11h-13h
|
||||
|
||||
Format of Video Parameter Table element [EGA, VGA only]:
|
||||
Offset Size Description
|
||||
00h BYTE Columns on screen (see 40h:4Ah)
|
||||
01h BYTE Rows on screen minus one (see 40h:84h)
|
||||
02h BYTE Height of character in scan lines (see 40h:85h)
|
||||
03h WORD Size of video buffer (see 40h:4Ch)
|
||||
05h 4 BYTEs Values for Sequencer Registers 1-4
|
||||
09h BYTE Value for Miscellaneous Output Register
|
||||
0Ah 25 BYTEs Values for CRTC Registers 00h-18h
|
||||
23h 20 BYTEs Values for Attribute Controller Registers 00h-13h
|
||||
37h 9 BYTEs Values for Graphics Controller Registers 00h-08h
|
||||
|
||||
Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
|
||||
- 16 triplet BYTEs of R,G,B DAC info for 16 colors;
|
||||
- An array of 11 elements, each element being 32 bytes long.
|
||||
Elements appear in the order:
|
||||
Modes 00h,01h in 200-line mode for digital displays
|
||||
Modes 00h,01h in 400-line mode for analog displays
|
||||
Modes 02h,03h in 200-line mode for digital displays
|
||||
Modes 02h,03h in 400-line mode for analog displays
|
||||
Modes 04h,05h in 200-line mode for digital displays
|
||||
Modes 04h,05h in 400-line mode for analog displays
|
||||
Mode 06h in 200-line mode for digital displays
|
||||
Mode 06h in 400-line mode for analog displays
|
||||
Mode 11h
|
||||
Mode 13h in 200-line mode for digital displays
|
||||
Mode 13h in 400-line mode for analog displays
|
||||
|
||||
Format of Video Parameter Table element [MCGA only]:
|
||||
Offset Size Description
|
||||
00h BYTE Columns on screen (see 40h:4Ah)
|
||||
01h BYTE Rows on screen minus one (see 40h:84h)
|
||||
02h BYTE Height of character in scan lines (see 40h:85h)
|
||||
03h WORD Size of video buffer (see 40h:4Ch)
|
||||
05h WORD ??? always zero
|
||||
07h 21 BYTEs Video data registers 00h-14h to port 3D5h indexed by 3D4h
|
||||
1Ch BYTE PEL Mask to port 3C6h
|
||||
1Dh BYTE CGA Mode Control to port 3D8h
|
||||
1Eh BYTE CGA Border Control to port 3D9h
|
||||
1Fh BYTE Extended Mode Control to port 3DDh
|
||||
|
||||
Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
|
||||
Offset Size Description
|
||||
00h 16 BYTEs Last data written to Attribute Controller Palette Registers 0-15
|
||||
10h BYTE Last data written to Attribute Controller Overscan Register
|
||||
11h-FFh Reserved
|
||||
Note: Need for table was that EGA registers were write-only.
|
||||
Note: If default values (from the Video Parameter Table) are
|
||||
over-ridden at a mode set by the VGA User Palette Profile
|
||||
Table, then the Dynamic Save Area is updated with the
|
||||
default values, not the User Profile ones.
|
||||
|
||||
Format of Alphanumeric Character Set Override:
|
||||
Offset Size Description
|
||||
00h BYTE Length in bytes of each character in font table
|
||||
01h BYTE Character generator RAM bank to load, 0=normal
|
||||
02h WORD Number of characters in font table, normally 256
|
||||
04h WORD Code of first character in font table, normally 0
|
||||
06h DWORD ptr to font table
|
||||
0Ah BYTE Displayable rows (FFh=use maximum calculated value)
|
||||
0Bh BYTEs Array of mode values to which this font is to pertain
|
||||
BYTE FFh end of array
|
||||
|
||||
Format of Second Alphanumeric Character Set Override:
|
||||
Authorities differ, some say same as first override above, but IBM say:
|
||||
Offset Size Description
|
||||
00h BYTE Length in bytes of each character in font table
|
||||
01h BYTE Character generator RAM bank to load, normally non-zero
|
||||
02h BYTE reserved
|
||||
03h DWORD ptr to font table
|
||||
07h BYTEs Array of mode values to which this font is to pertain
|
||||
BYTE FFh end of array
|
||||
|
||||
Format of Graphics Character Set Override:
|
||||
Offset Size Description
|
||||
00h BYTE Number of displayable character rows
|
||||
01h WORD Length in bytes of each character in font table
|
||||
03h DWORD ptr to font table
|
||||
07h BYTEs Array of mode values to which this font is to pertain
|
||||
BYTE FFh end of array
|
||||
|
||||
Format of Display Combination Code Table [VGA only]:
|
||||
Offset Size Description
|
||||
00h BYTE Number of entries in the DCC table at offset 04h
|
||||
01h BYTE Version number
|
||||
02h BYTE Maximum display type code that can appear in DCC table
|
||||
03h BYTE reserved
|
||||
04h ARRAY OF 2 BYTEs Each pair of bytes gives a valid display combination
|
||||
Meaning of each byte:
|
||||
00h no display
|
||||
01h MDA with mono display
|
||||
02h CGA with color display
|
||||
03h reserved
|
||||
04h EGA with color display
|
||||
05h EGA with mono display
|
||||
06h Professional Graphics Controller
|
||||
07h VGA with mono display
|
||||
08h VGA with color display
|
||||
09h reserved
|
||||
0Ah MCGA with digital color display
|
||||
0Bh MCGA with analog mono display
|
||||
0Ch MCGA with analog color display
|
||||
FFh unrecognised video system
|
||||
|
||||
Format of User Palette Profile Table [VGA only]:
|
||||
Offset Size Description
|
||||
00h BYTE Underlining: 01h=enable in all alphanumeric modes
|
||||
00h=enable in monochrome alphanumeric modes only
|
||||
FFh=disable in all alphanumeric modes
|
||||
01h BYTE reserved
|
||||
02h WORD reserved
|
||||
04h WORD Number (0-17) of Attribute Controller registers in table
|
||||
06h WORD Index (0-16) of first Attribute Controller register in table
|
||||
08h DWORD ptr to table of Attribute Controller registers to override
|
||||
Table is an array of BYTEs.
|
||||
0Ch WORD Number (0-256) of video DAC Color registers in table
|
||||
0Eh WORD Index (0-255) of first video DAC Color register in table
|
||||
10h DWORD ptr to table of video DAC Color registers to override
|
||||
Table is ??? triplets ??? of BYTEs???
|
||||
14h BYTEs array of mode values to which this profile is to pertain
|
||||
BYTE FFh end of array
|
||||
Reference in New Issue
Block a user