addr. size description
----- ------ -------------------------------------------------------------
40:00 word COM1 port address | These addresses are zeroed out in the
40:02 word COM2 port address | OS/2 DOS Compatibility Box if any of
40:04 word COM3 port address | the OS/2 COM??.SYS drivers are loaded.
40:06 word COM4 port address |
40:08 word LPT1 port address
40:0A word LPT2 port address
40:0C word LPT3 port address
40:0E word LPT4 port address (not valid in PS/2 machines)
40:0E word PS/2 pointer to BIOS/ExtData extended Data Area at top of RAM
40:10 word Installed Equipment Flag BIOS/40/10
40:12 byte reserved (PC, AT)
number of errors detected by infrared keyboard link (PCjr)
POST status (Convertible)
40:13 word availible memory size in Kbytes (less display RAM in PCjr)
this is the value returned by Int/12
also serves as a pointer to the Extended BIOS Data Area
40:15 word reserved
40:17 2byte keyboard Flags BIOS/40/17
40:19 byte storage for alternate keypad entry (not normally used)
40:1A word pointer to keyboard buffer head character
40:1C word pointer to keyboard buffer tail character
40:1E 32byte 16 2-byte entries for keyboard circular buffer. Int/16
40:3E byte drive seek status BIOS/40/3E
40:3F byte diskette motor status BIOS/40/3F
40:40 byte motor off counter
starts at 37 and is decremented 1 by each system clock tick.
motor is shut off when count = 0.
40:41 byte status of last diskette operation BIOS/40/41
40:42 7 byte Floppy controller status bytes
40:49 byte current CRT mode (hex value) BIOS/40/49
40:4A word number of columns on screen, coded as hex number of columns
for example 20, 40, and 80 are 14h, 28h, and 46h
40:4C word screen buffer length in bytes
(number of bytes used per screen page, varies with video mode)
40:4E word current screen buffer starting offset (active page)
40:50 8 words cursor position pages 1-8
the first byte of each word gives the column (0-19, 39, or 79)
the second byte gives the row (0-24)
40:60 byte end line for cursor (normally 1)
40:61 byte start line for cursor (normally 0)
40:62 byte current video page being displayed (0-7)
40:63 word base port address of 6845 CRT controller or equivalent
for active display 3B4h=mono, 3D4h=color
40:65 byte current setting of the CRT mode register
40:66 byte current palette mask setting (CGA)
40:67 5 bytes temporary storage for SS:SP during shutdown (cassette interface)
40:69 byte Disk drives installed data (Columbia PCs) (not valid on most
clone computers) BIOS/40/69
40:6C word timer counter low word. See Int/1Af/00
40:6E word timer counter high word. See Int/1Af/00
40:70 byte 24 hour timer overflow 1 if timer went past midnight
it is reset to 0 each time it is read by Int/1A
40:71 byte BIOS break flag (bit 7 = 1 means break key hit)
40:72 word reset flag
PCjr keeps 1234h here for softboot when a cartridge is installed
bits 1234h = soft reset, memory check will be bypassed
4321h = preserve memory (PS/2 other only)
5678h = system suspended (Convertible)
9ABCh = manufacturing test mode (Convertible)
ABCDh = system POST loop mode (Convertible)
40:74 byte status of last hard disk operation; PCjr special disk control
40:75 byte # of hard disks attached (0-2) ; PCjr special disk control
40:76 byte HD control byte; temp holding area for 6th param table entry
40:77 byte port offset to current hd adapter ; PCjr special disk control
40:78 4 bytes timeout value for LPT1,LPT2,LPT3,LPT4
40:7C 4 bytes timeout value for COM1,COM2,COM3,COM4 (0-0FFh secs, default 1)
40:80 word pointer to start of circular keyboard buffer, default 03:1E
40:82 word pointer to end of circular keyboard buffer, default 03:3E
40:84 byte rows on the screen minus 1 (EGA only)
40:84 byte PCjr interrupt flag; timer channel 0 (used by POST)
40:85 word bytes per character (EGA only)
40:85 2 bytes (PCjr only) typamatic char to repeat
40:86 2 bytes (PCjr only) typamatic initial delay
40:87 word mode options and feature bit switches (EGA only)
40:87 byte (PCjr only) current Fn key code
40:88 byte (PCjr only) special keyboard status byte
bit 7 function flag 3 typamatic (0=enable,1=disable)
6 Fn-B break 2 typamatic speed (0=slow,1=fast)
5 Fn pressed 1 extra delay bef.typamatic (0=enable)
4 Fn lock 0 write char, typamatic delay elapsed
40:89 byte PCjr, current value of 6845 reg 2 (horiz.synch) used by
ctrl-alt-cursor screen positioning routine in ROM
40:8A byte PCjr CRT/CPU Page Register Image, default 3Fh
40:8B byte last diskette data rate selected
40:8C byte hard disk status returned by controller
40:8D byte hard disk error returned by controller
40:8E byte hard disk interrupt (bit 7=working int)
40:90 4 bytes media state drive 0, 1, 2, 3
40:94 2 bytes track currently seeked to drive 0, 1
40:96 byte keyboard flag byte 3 (see Int/09)
40:97 byte keyboard flag byte 2 (see Int/09)
40:98 dword segment:offset pointer to users wait flag
40:9C dword users timeout value in microseconds
40:A0 byte real time clock wait function in use
bits 7 wait time elapsed and posted flag
6-1 reserved
0 Int/15f/86 (WAIT) has occurred
40:A1 byte LAN A DMA channel flags
40:A2 2 bytes status LAN A 0,1
40:A4 dword saved hard disk interrupt vector
40:A8 dword EGA pointer to table of 7 parameters. Format of table:
dword pointer to 1472 byte table containing 64 video parms
dword reserved
dword reserved
dword reserved
dword reserved
dword reserved
dword reserved
40:B4 byte keyboard NMI control flags (Convertible)
40:B5 dword keyboard break pending flags (Convertible)
40:B9 byte port -0060 single byte queue (Convertible)
40:BA byte scan code of last key (Convertible)
40:BB byte pointer to NMI buffer head (Convertible)
40:BC byte pointer to NMI buffer tail (Convertible)
40:BD 16bytes NMI scan code buffer (Convertible)
40:CE word day counter (Convertible and after)
04:8F end of BIOS Data Area