⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appendix-bios_memory_2.htm

📁 编写自己的操作系统
💻 HTM
📖 第 1 页 / 共 3 页
字号:
116h	DWORD	INT 1Bh at start of BASICA.COM execution
11Ah	DWORD	INT 24h at start of BASICA.COM execution

Format of Interrupt Vector Table data storage (from 0000h:0000h):
Offset	Size	Description
 31Dh 16 BYTEs	user-definable hard disk parameters for drive type 47
		(1989 AMI 386sx BIOS) (see INT 41,INT 46)
 32Dh 16 BYTEs	user-definable hard disk parameters for drive type 48
		(1989 AMI 386sx BIOS) (see INT 41,INT 46)
Note:	these fields are used is the AMI BIOS setup is set to use the top of
	  the interrupt table for the extended BIOS data area

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)
 22h	DWORD	Pointing Device Driver entry point
 26h	BYTE	Pointing Device Flags 1
			bit 7:    command in progress
			bit 6:    resend byte (FAh) received
			bit 5:    acknowledge byte (FEh) received
			bit 4:    error byte (FCh) received
			bit 3:    unexpected value received
			bits 2-0: index count for auxiliary device data at 28h
 27h	BYTE	Pointing Device Flags 2
			bit 7:    device driver far call flag
			bits 6-3: reserved
			bits 2-0: package size (number of bytes received) - 1
 28h  8 BYTEs	Pointing Device Auxiliary Device Data
 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 (for older machines
		  which don't directly support the installed drive)
 4Dh 16 BYTEs	Fixed Disk parameter table for drive 1 (for older machines
		  which don't directly support the installed drive)
 5Dh-67h	???
 68h	BYTE	cache control
		bits 7-2 unused (0)
		bit 1: CPU cache failed test
		bit 0: CPU cache disabled
 69h-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	BYTE	???
 6Eh	WORD	current typematic setting (see INT 16/AH=03h)
 70h	BYTE	number of attached hard drives
 71h	BYTE	hard disk 16-bit DMA channel
 72h	BYTE	interrupt status for hard disk controller (1Fh on timeout)
 73h	BYTE	hard disk operation flags
		bit 7: controller issued operation-complete INT 76h
		bit 6: controller has been reset
		bits 5-0: unused (0)
 74h	DWORD	old INT 76h vector
 78h	BYTE	hard disk DMA type
		typically 44h for reads and 4Ch for writes
 79h	BYTE	status of last hard disk operation
 7Ah	BYTE	hard disk timeout counter
 7Bh-7Dh
 7Eh  8 WORDs	storage for hard disk controller status
 8Eh-E6h
 E7h	BYTE	floppy drive type
		bit 7: drive(s) present
		bits 6-2: unused (0)
		bit 1: drive 1 is 5.25" instead of 3.5"
		bit 0: drive 0 is 5.25"
 E8h-EBh
 ECh	BYTE	hard disk parameters flag
		bit 7: parameters loaded into EBDA
		bits 6-0: unused (0)
 EDh	BYTE	???
 EEh	BYTE	CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
 EFh	BYTE	CPU stepping (see INT 15/AH=C9h)
 F0h 39 BYTEs  ???
117h	WORD	keyboard ID (see INT 16/AH=0Ah)
		(most commonly 41ABh)
119h	BYTE	???
11Ah	BYTE	non-BIOS INT 18h flag
		bits 7-1: unused (0)
		bit 0: set by BIOS before calling user INT 18h at offset 11Dh
11Bh  2 BYTE	???
11Dh	DWORD	user INT 18h vector if BIOS has re-hooked INT 18h
121h 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 Contr. 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 2N 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

Format of System ROM:
 Address     ByteSize	Description
 F000h:6000h  32768	IBM PC ROM BASIC
 F000h:E000h   8192	original IBM PC ROM BIOS
 F000h:E739h	.	original IBM PC INT 14 handler
 F000h:E82Eh	.	original IBM PC INT 16 handler
 F000h:EC59h	.	original IBM PC INT 13 handler
 F000h:EFD2h	.	original IBM PC INT 17 handler
 F000h:F065h	.	original IBM PC INT 10 handler
 F000h:F841h	.	original IBM PC INT 12 handler
 F000h:F84Dh	.	original IBM PC INT 11 handler
 F000h:F859h	.	original IBM PC INT 15 handler
 F000h:FE6Eh	.	original IBM PC INT 1A handler
 FFFFh:0000h      5	reset jump
 FFFFh:0005h	  8	ASCII BIOS date
 FFFFh:000Dh	  1	??? (generally unused or used to fix ROM checksum)
 FFFFh:000Eh	  1	machine type code (see INT 15h/AH=C0h)
 FFFFh:0010h  65520	HMA (when A20 enabled)</FONT>
</PRE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -