Extended BIOS Data Area

Some BIOSes store additional data in the last 1 KB of conventional memory. In general this socalled Extended BIOS Data Area will be used to hold data for a mouse port, hard disk parameters and disk track buffers. The EBDA segment is normally stored in the BIOS Data Area at 0040:000Eh, a location that was originally used to store the port number for parallel port 4. This pointer is typically set to 9FC0h, representing a 1 KB memory area just below the top of conventional memory. A few systems may reserve 2 KB or even 4 KB for the EBDA.

Offset Description Size Info
00h Size of Extended BIOS Data Area 1 byte 1 = 1024 bytes; 2 = 2048 bytes
17h Number of POST error entries 1 byte  
18h POST error log 5 words  
22h Mouse device driver far call 1 dword pointer to the mouse device driver in segment:offset format
26h Mouse flags 1
Bit 7 Command in progress; 0 = no, 1 = yes
Bit 6 Mouse sent a Resend byte (FAh)
Bit 5 Mouse sent an Acknowledge byte (FEh)
Bit 4 Mouse sent an error byte (FCh)
Bit 3 Unexpected value received
Bit 2-0 Index count; used to retrieve up to 8 bytes from the controller; successive bytes are stored starting at offset 28h
1 byte  
27h Mouse flags 2
Bit 7 Device driver far call flag
Bit 6-3 Not used, or function unknown
Bit 2-0 Package count; the number of bytes received from the mouse
1 byte  
28h Mouse data 8 bytes  
39h Watchdog timer 1 word Initial count value of the watchdog timer; 0 = watchdog timer not active
3Dh Hard disk 0 parameter table 16 bytes The structure of this table is equal to the hard disk drive parameter table.
4Dh Hard disk 1 parameter table 16 bytes The structure of this table is equal to the hard disk drive parameter table.
68h Cache control
Bit 7-2 Not used
Bit 1 Cache test: 0 = test successful, 1 = test failed
Bit 0 CPU cache enable: 0 = enabled, 1 = disabled
1 byte Primarily used for CPUs with on-chip cache: 486 CPUs and IBM 386SLC.
6Eh Keyboard repeat rate 1 byte Values saved are identical to the values used by Int 16h, function 03h.
6Fh Delay until keys repeat 1 byte Values saved are identical to the values used by Int 16h, function 03h.
70h Number of hard disk drives installed 1 byte Number of drives as detected by POST: 0, 1 or 2
71h DMA channel for hard disk drive 1 byte Default: channel 5
72h Hard disk interrupt status 1 byte 1Fh = timeout has occurred
73h Hard disk operation flags
Bit 7 1 = controller issued an operation complete interrupt
Bit 6 1 = controller has been reset
Bit 5-0 Not used
1 byte  
74h Old Int 76h vector pointer 1 dword  
78h Hard disk DMA type 1 byte This byte is used as temporary storage for the DMA extended mode register.
79h Hard disk: status of last operation 1 byte The value stored is the value returned by Int 13h, function 01h.
7Ah Hard disk: timeout value 1 byte The timeout value is set by POST to indicate how long BIOS disk services should wait for the controller to indicate the operate has completed.
7Eh Hard disk controller: return status words 8 words ESDI - PS/2
E7h Diskette drive type
Bit
Bit
Bit
1 byte  
ECh Hard disk parameters loaded
Bit
Bit
1 byte  
EEh CPU family ID 1 byte The value stored is the value returned by Int 15h, function C9h
EFh CPU stepping 1 byte The value stored is the value returned by Int 15h, function C9h
117h Keyboard ID 1 word  
11Ah Non-BIOS Int 18h flag
Bit 7-1 Not used
Bit 0 Set to 1 before calling user Int 18h.
1 word  
11D User Int 18h far pointer 1 dword