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