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