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

📄 appendix-bios_memory_2.htm

📁 编写自己的操作系统
💻 HTM
📖 第 1 页 / 共 3 页
字号:
 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 + -