home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / tools / inter47 / memory.lst < prev    next >
File List  |  1995-08-13  |  61KB  |  1,582 lines

  1. MEMORY MAP            Release 47        Last Change 8/13/95
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3.  
  4. --------H-M00000000--------------------------
  5. MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
  6. Size:    1024 BYTEs
  7. Note:    see also the main interrupt list
  8. --------b-M0000031D--------------------------
  9. MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
  10. Size:    16 BYTEs
  11. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  12.       the interrupt table for the extended BIOS data area
  13. SeeAlso: MEM 0000h:032Dh,INT 41
  14. --------b-M0000032D--------------------------
  15. MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
  16. Size:    16 BYTEs
  17. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  18.       the interrupt table for the extended BIOS data area
  19. SeeAlso: MEM 0000h:031Dh,INT 46
  20. --------B-M00000400--------------------------
  21. MEM 0000h:0400h - BIOS DATA AREA
  22. Size:    256 BYTEs
  23. Note:    see also the MEM 0040h:xxxxh entries
  24. ----------M00000500--------------------------
  25. MEM 0000h:0500h - DATA AREA
  26. Size:    256 BYTEs
  27. ----------M00000600--------------------------
  28. MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
  29. ----------M00000700--------------------------
  30. MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
  31. ----------M00400000--------------------------
  32. MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
  33. Size:    WORD
  34. Notes:    the BIOS sets this word to zero if is unable to find any serial ports
  35.       at the addresses it is programmed to check at boot
  36.     DOS and BIOS serial device numbers may be redefined by re-assigning
  37.       these values of the base I/O addresses stored here
  38. SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
  39. SeeAlso: MEM 0040h:007Ch
  40. ----------M00400002--------------------------
  41. MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
  42. Size:    WORD
  43. Note:    the BIOS sets this word to zero if is unable to find more than one
  44.       serial port at the addresses it is programmed to check at boot
  45. SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
  46. SeeAlso: MEM 0040h:007Dh
  47. ----------M00400004--------------------------
  48. MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
  49. Size:    WORD
  50. Note:    the BIOS sets this word to zero if is unable to find more than two
  51.       serial ports at the addresses it is programmed to check at boot
  52. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
  53. SeeAlso: MEM 0040h:007Eh
  54. ----------M00400006--------------------------
  55. MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
  56. Size:    WORD
  57. Note:    the BIOS sets this word to zero if is unable to find more than three
  58.       serial ports at the addresses it is programmed to check at boot
  59. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
  60. SeeAlso: MEM 0040h:007Fh
  61. ----------M00400008--------------------------
  62. MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
  63. Size:    WORD
  64. Notes:    the BIOS POST routine fills in the parallel port address fields in
  65.       turn as it finds parallel ports.  All fields beyond the last one
  66.       for which a valid parallel port was found are set to zero.
  67.     the BIOS INT 17 handler uses these fields to address the parallel
  68.       ports
  69. SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch
  70. ----------M0040000A--------------------------
  71. MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
  72. Size:    WORD
  73. Note:    zero if fewer than two parallel ports installed
  74. SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch
  75. ----------M0040000C--------------------------
  76. MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
  77. Size:    WORD
  78. Note:    zero if fewer than three parallel ports installed
  79. SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
  80. ----------M0040000E--------------------------
  81. MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
  82. Size:    WORD
  83. Note:    zero if fewer than four parallel ports installed
  84. SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
  85. ----------M0040000E--------------------------
  86. MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
  87. Size:    WORD
  88. SeeAlso: MEM 0040h:000Eh"PARALLEL"
  89.  
  90. Format of Extended BIOS Data Area:
  91. Offset    Size    Description    (Table M001)
  92.  00h    BYTE    length of EBDA in kilobytes
  93.  01h 15 BYTEs    reserved
  94.  17h    BYTE    number of entries in POST error log (0-5)
  95.  18h  5 WORDs    POST error log (each word is a POST error number)
  96.  22h    DWORD    Pointing Device Driver entry point
  97.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  98.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  99.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  100.  30h    DWORD    Vector for INT 07h stored here during 80387 interrupt
  101.  34h    DWORD    Vector for INT 01h stored here during INT 07h emulation
  102.  38h    BYTE    Scratchpad for 80287/80387 interrupt code
  103.  39h    WORD    Timer3: Watchdog timer initial count
  104.  3Bh    BYTE    ??? seen non-zero on Model 30
  105.  3Ch    BYTE    ???
  106.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0 (for older machines
  107.           which don't directly support the installed drive)
  108.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1 (for older machines
  109.           which don't directly support the installed drive)
  110.  5Dh-67h    ???
  111.  68h    BYTE    cache control
  112.         bits 7-2 unused (0)
  113.         bit 1: CPU cache failed test
  114.         bit 0: CPU cache disabled
  115.  69h-6Bh    ???
  116.  6Ch    BYTE    Fixed disk: (=FFh on ESDI systems)
  117.             bits 7-4: Channel number 00-0Fh
  118.             bits 3-0: DMA arbitration level 00-0Eh
  119.  6Dh    BYTE    ???
  120.  6Eh    WORD    current typematic setting (see INT 16/AH=03h)
  121.  70h    BYTE    number of attached hard drives
  122.  71h    BYTE    hard disk 16-bit DMA channel
  123.  72h    BYTE    interrupt status for hard disk controller (1Fh on timeout)
  124.  73h    BYTE    hard disk operation flags
  125.         bit 7: controller issued operation-complete INT 76h
  126.         bit 6: controller has been reset
  127.         bits 5-0: unused (0)
  128.  74h    DWORD    old INT 76h vector
  129.  78h    BYTE    hard disk DMA type
  130.         typically 44h for reads and 4Ch for writes
  131.  79h    BYTE    status of last hard disk operation
  132.  7Ah    BYTE    hard disk timeout counter
  133.  7Bh-7Dh
  134.  7Eh  8 WORDs    storage for hard disk controller status
  135.  8Eh-E6h
  136.  E7h    BYTE    floppy drive type
  137.         bit 7: drive(s) present
  138.         bits 6-2: unused (0)
  139.         bit 1: drive 1 is 5.25" instead of 3.5"
  140.         bit 0: drive 0 is 5.25"
  141.  E8h  4 BYTEs    ???
  142.  ECh    BYTE    hard disk parameters flag
  143.         bit 7: parameters loaded into EBDA
  144.         bits 6-0: unused (0)
  145.  EDh    BYTE    ???
  146.  EEh    BYTE    CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
  147.  EFh    BYTE    CPU stepping (see INT 15/AH=C9h)
  148.  F0h 39 BYTEs    ???
  149. 117h    WORD    keyboard ID (see INT 16/AH=0Ah)
  150.         (most commonly 41ABh)
  151. 119h    BYTE    ???
  152. 11Ah    BYTE    non-BIOS INT 18h flag
  153.         bits 7-1: unused (0)
  154.         bit 0: set by BIOS before calling user INT 18h at offset 11Dh
  155. 11Bh  2 BYTE    ???
  156. 11Dh    DWORD    user INT 18h vector if BIOS has re-hooked INT 18h
  157. 121h and up:    ??? seen non-zero on Model 60
  158. 3F0h    BYTE    Fixed disk buffer (???)
  159.  
  160. Bitfields for Pointing Device Flags 1:
  161. Bit(s)    Description    (Table M002)
  162.  7    command in progress
  163.  6    resend byte (FAh) received
  164.  5    acknowledge byte (FEh) received
  165.  4    error byte (FCh) received
  166.  3    unexpected value received
  167.  2-0    index count for auxiliary device data at 28h
  168. SeeAlso: #M001,#M003
  169.  
  170. Bitfields for Pointing Device Flags 2:
  171. Bit(s)    Description    (Table M003)
  172.  7    device driver far call flag
  173.  6-3    reserved
  174.  2-0    package size (number of bytes received) - 1
  175. SeeAlso: #M001,#M002
  176. ----------M00400010--------------------------
  177. MEM 0040h:0010h - INSTALLED HARDWARE
  178. Size:    WORD
  179.  
  180. Bitfields for BIOS-detected installed hardware:
  181. Bit(s)    Description    (Table M004)
  182.  15-14    number of parallel devices
  183.     00 or 11 sometimes used to indicate four LPT ports
  184.  13    (Convertible, PS/2-55LS) internal modem
  185.  12    game port installed
  186.  11-9    number of serial devices
  187.     000 or 111 sometimes used to indicate eight COM ports
  188.  8    reserved
  189.  7-6    number of floppy disk drives (minus 1)
  190.  5-4    initial video mode
  191.     00 EGA,VGA,PGA, or other with on-board video BIOS
  192.     01 40x25 CGA color
  193.     10 80x25 CGA color
  194.     11 80x25 mono text
  195.  3-2    (PC only) RAM on motherboard
  196.     00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  197.  2    (pre-PS/2 except PC) reserved
  198.     (PS/2, newer BIOSes) pointing device installed
  199.  1    math coprocessor installed
  200.  0    floppy disk drives are installed
  201.     booted from floppy
  202. ----------M00400012--------------------------
  203. MEM 0040h:0012h - Convertible - POST STATUS
  204. Size:    BYTE
  205. ----------M00400012--------------------------
  206. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  207. Size:    BYTE
  208.  
  209. Bitfields for AT manufacturing test initialization flags:
  210. Bit(s)    Description    (Table M005)
  211.  0    start in manufacturing test mode rather than normal operation
  212.  1-7    unused
  213. ----------M00400012--------------------------
  214. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  215. Size:    BYTE
  216.  
  217. Bitfields for MCA manufacturing test flags :
  218. Bit(s)    Description    (Table M006)
  219.  7    POST flag, ???
  220.  6-5    unused
  221.  4    POST flag, slot 4 has adapter identifier EDAFh
  222.  3    POST flag, 80x25 color video
  223.  2    POST flag, ???
  224.  1    unused
  225.  0    manufacturing test mode rather than normal operation
  226. ----------M00400012--------------------------
  227. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  228. Size:    BYTE
  229.  
  230. Bitfields for PS/2 Model 25 POST sytem flag :
  231. Bit(s)    Description    (Table M007)
  232.  0    optional memory failed; memory remapped
  233.  1    real-time clock installed
  234. ----------M00400013--------------------------
  235. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  236. Size:    WORD
  237. ----------M00400015--------------------------
  238. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  239. Size:    WORD
  240. ----------M00400015--------------------------
  241. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  242. Size:    BYTE
  243. ----------M00400015--------------------------
  244. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  245. Size:    BYTE
  246. ----------M00400016--------------------------
  247. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  248. Size:    BYTE
  249. ----------M00400016--------------------------
  250. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  251. Size:    BYTE
  252. ----------M00400016--------------------------
  253. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  254. Size:    BYTE
  255. Range:    00h-7Fh
  256. --------K-M00400017--------------------------
  257. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  258. Size:    BYTE
  259. SeeAlso: MEM 0040h:0018h,INT 16/AH=01h
  260.  
  261. Bitfields for keyboard status flags 1:
  262. Bit(s)    Description    (Table M008)
  263.  7    INSert active
  264.  6    Caps Lock active
  265.  5    Num Lock active
  266.  4    Scroll Lock active
  267.  3    either Alt pressed
  268.  2    either Ctrl pressed
  269.  1    Left Shift pressed
  270.  0    Right Shift pressed
  271. SeeAlso: #M009
  272. --------K-M00400018--------------------------
  273. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  274. Size:    BYTE
  275. SeeAlso: MEM 0040h:0017h,INT 16/AH=01h
  276.  
  277. Bitfields for keyboard status flags 2 :
  278. Bit(s)    Description    (Table M009)
  279.  7    INSert pressed
  280.  6    Caps Lock pressed
  281.  5    Num Lock pressed
  282.  4    Scroll Lock pressed
  283.  3    Pause state active
  284.  2    Sys Req pressed
  285.  1    Left Alt pressed
  286.  0    Left Ctrl pressed
  287. SeeAlso: #M008
  288. --------K-M00400019--------------------------
  289. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  290. Size:    BYTE
  291. Desc:    holds the current value of an Alt-NNN keypad sequence; when Alt is
  292.       released and this byte is non-zero, the appropriate character is
  293.       placed in the keyboard buffer
  294. SeeAlso: INT 16/AH=00h
  295. --------K-M0040001A--------------------------
  296. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  297. Size:    WORD
  298. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  299. --------K-M0040001C--------------------------
  300. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  301. Size:    WORD
  302. SeeAlso: MEM 0040h:001Ah,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  303. --------K-M0040001E--------------------------
  304. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  305. Size:    16 WORDs
  306. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  307. SeeAlso: INT 16/AH=00h
  308. ----------M0040003E--------------------------
  309. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  310. Size:    BYTE
  311. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h
  312.  
  313. Bitfields for diskette recalibrate status:
  314. Bit(s)    Description    (Table M010)
  315.  7    diskette hardware interrupt occurred
  316.  6-4    reserved
  317.  3    recalibrate diskette 3 (PC,XT only)
  318.  2    recalibrate diskette 2 (PC,XT only)
  319.  1    recalibrate diskette 1
  320.  0    recalibrate diskette 0
  321. ----------M0040003F--------------------------
  322. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  323. Size:    BYTE
  324. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  325.  
  326. Bitfields for diskette motor status:
  327. Bit(s)    Description    (Table M011)
  328.  7    current operation is write or format, rather than read or verify
  329.  6    reserved (DMA enabled on 82077)
  330.  5-4    diskette drive number selected (0-3)
  331.  3    diskette 3 motor on (PC,XT only)
  332.  2    diskette 2 motor on (PC,XT only)
  333.  1    diskette 1 motor on
  334.  0    diskette 0 motor on
  335. ----------M00400040--------------------------
  336. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  337. Size:    BYTE
  338. Desc:    number of clock ticks until diskette motor is turned off
  339. Note:    the typical implementation of the timeout is to have the INT 08 
  340.       handler decrement this byte on every clock tick, and force the
  341.       diskette motor off if the result is equal to zero
  342. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h
  343. ----------M00400041--------------------------
  344. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  345. Size:    BYTE
  346. SeeAlso: MEM 0040h:003Eh
  347.  
  348. Bitfields for diskette last operation status:
  349. Bit(s)    Description    (Table M012)
  350.  7    drive not ready
  351.  6    seek error
  352.  5    general controller failure
  353.  4-0    error reason
  354.     00h no error
  355.     01h invalid request/parameter
  356.     02h address mark not found
  357.     03h write-protect error
  358.     04h sector not found
  359.     06h diskette change line active
  360.     08h DMA overrun
  361.     09h DMA across 64k boundary
  362.     0Ch media type unknown
  363.     10h CRC error on read
  364. Note:    the following values for this byte differ somewhat from the
  365.       bitfield definition above:
  366.         30h drive does not support media sense
  367.         31h no media in drive
  368.         32h drive does not support media type
  369.         AAh diskette drive not ready
  370. ----------M00400042--------------------------
  371. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  372. Size:    7 BYTEs
  373.  
  374.     42h BYTE    XT: command byte to hard disk controller
  375.         AT: write precompensation cylinder number / 4
  376.     43h    BYTE    XT: bit 5 = drive number, bits 3-0=head number
  377.         AT: sector count
  378.     44h BYTE    XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  379.         AT: starting sector
  380.     45h BYTE    low byte of track number
  381.     46h BYTE    XT: sector count
  382.         AT: high bits of track number
  383.     47h BYTE    XT: controlbyte from HD parameters (step rate,...)
  384.         AT: 101DHHHH, D=drive number, HHHH=head number
  385.     48h BYTE    XT: INT 13h subfunction number
  386.         AT: comand byte to hard disk controller
  387. ----------M00400042--------------------------
  388. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  389. Size:    BYTE
  390.  
  391. Bitfields for diskette controller status register 0:
  392. Bit(s)    Description    (Table M013)
  393.  7-6    interrupt code
  394.     00 normal completion
  395.     01 abnormal termination during execution
  396.     10 invalid command
  397.     11 abnormal termination: ready line on/diskette change
  398.  5    requested seek complete
  399.  4    drive fault
  400.  3    drive not ready
  401.  2    head state at time of interrupt
  402.  1-0    selected drive (drives 2&3 on PC,XT only)
  403. ----------M00400043--------------------------
  404. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  405. Size:    BYTE
  406.  
  407. Bitfields for diskette controller status register 0:
  408. Bit(s)    Description    (Table M014)
  409.  7    attempted access beyon last cylinder
  410.  6    unused
  411.  5    CRC error on read
  412.  4    DMA overrun
  413.  3    unused
  414.  2    data error
  415.  1    disk write protected
  416.  0    missing address mark
  417. ----------M00400044--------------------------
  418. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  419. Size:    BYTE
  420.  
  421. Bitfields for diskette controller status register 0:
  422. Bit(s)    Description    (Table M015)
  423.  7    unused
  424.  6    found deleted data address mark
  425.  5    CRC error in data field
  426.  4    wrong cylinder number read
  427.  3    verify equal
  428.  2    can't find sector matching verify condition
  429.  1    bad cylinder
  430.  0    unable to find address mark
  431. ----------M00400049--------------------------
  432. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  433. Size:    BYTE
  434. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  435. ----------M0040004A--------------------------
  436. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  437. Size:    WORD
  438. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh
  439. ----------M0040004C--------------------------
  440. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  441. Size:    WORD
  442. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  443. ----------M0040004E--------------------------
  444. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  445. Size:    WORD
  446. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h
  447. ----------M00400050--------------------------
  448. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  449. Size:    8 WORDs
  450. Desc:    contains row and column position for the cursors on each of eight
  451.       video pages
  452. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h
  453. ----------M00400060--------------------------
  454. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  455. Size:    WORD    (big-endian)
  456. Desc:    contains cursor start scan line and cursor end scan line
  457. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  458. ----------M00400062--------------------------
  459. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  460. Size:    BYTE
  461. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h
  462. ----------M00400063--------------------------
  463. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  464. Size:    WORD
  465. Note:    normally 03B4h for mono and 03D4h for color video boards
  466. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  467. ----------M00400065--------------------------
  468. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  469. Size:    BYTE
  470. Desc:    contains last value written to I/O port 03B8h / 03D8h
  471. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  472.  
  473. Bitfields for current video mode select register:
  474. Bit(s)    Description    (Table M016)
  475.  7-6    unused
  476.  5    attribute bit 7 controls blinking instead of background
  477.  4    mode 6 graphics in monochrome
  478.  3    video signal enabled
  479.  2    monochrome
  480.  1    graphics
  481.  0    80x25 text
  482. ----------M00400066--------------------------
  483. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  484. Size:    BYTE
  485. Desc:    contains the last value written to I/O port 03D9h
  486. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  487.  
  488. Bitfields for CGA palette register:
  489. Bit(s)    Description    (Table M017)
  490.  7-6    unused
  491.  5    palette (0/1)
  492.  4    intense background colors in text mode
  493.  3    intense border color (40x25) / background color (mode 5)
  494.  2    red
  495.  1    green
  496.  0    blue
  497. ----------M00400067--------------------------
  498. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  499. Size:    WORD
  500. SeeAlso: INT 15/AH=00h
  501. ----------M00400067--------------------------
  502. MEM 0040h:0067h - RESET RESTART ADDRESS
  503. Size:    DWORD
  504. Desc:    this address stores the address at which to resume execution after a
  505.       CPU reset (or jump to F000h:FFF0h) when certain magic values are
  506.       stored at 0040h:0072h or in CMOS RAM location 0Fh
  507. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  508. ----------M00400069--------------------------
  509. MEM 0040h:0069h    - CASSETTE (PC only) - CASSETTE CRC REGISTER
  510. Size:    WORD
  511. SeeAlso: MEM 0040h:006Bh"CASSETTE"
  512. ----------M00400069--------------------------
  513. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  514. Size:    BYTE
  515.  
  516. Bitfields for V20-XT-BIOS key repeat flags:
  517. Bit(s)    Description    (Table M018)
  518.  7    key repeat disabled
  519.  6    Ctrl-Alt pressed instead of just Alt
  520. ----------M0040006B--------------------------
  521. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  522. Size:    BYTE
  523. SeeAlso: MEM 0040h:0069h"CASSETTE"
  524. ----------M0040006B--------------------------
  525. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  526. Size:    BYTE
  527. Desc:   this is a bitmask of IRQs which have occurred while the corresponding
  528.       interrupt vector points at the default system BIOS handler
  529.       (bit 0 = IRQ0 to bit 7 = IRQ7)
  530. ----------M0040006C--------------------------
  531. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  532. Size:    DWORD
  533. SeeAlso: MEM 0040h:0070h,INT 1A/AH=00h
  534. ----------M00400070--------------------------
  535. MEM 0040h:0070h - TIMER OVERFLOW
  536. Size:    BYTE
  537. Desc:    non-zero if timer has counted past midnight since last call to
  538.       INT 1A/AH=00h
  539. Note:    the original IBM BIOS, and thus most other BIOSes, sets this byte to
  540.       01h at midnight; a few (such as the Eagle PC-2) increment it each
  541.       time midnight is passed.  The former behavior results in lost days
  542.       if multiple midnights pass between "get-time" calls while the machine
  543.       is powered up.
  544. SeeAlso: MEM 0040h:006Ch
  545. ----------M00400071--------------------------
  546. MEM 0040h:0071h - Ctrl-Break FLAG
  547. Size:    BYTE
  548. Desc:    bit 7 is set when Ctrl-Break has been pressed
  549. ----------M00400072--------------------------
  550. MEM 0040h:0072h - POST RESET FLAG
  551. Size:    WORD
  552. Desc:    specify the action the BIOS should take at the beginning of the
  553.       power-on self-test when the machine is reset
  554.  
  555. (Table M019)
  556. Values for POST reset flag:
  557.  0000h    cold boot
  558.  0064h    Burn-in mode
  559.  1234h    to bypass memory test (warm boot)
  560.  4321h    [PS/2 except Mod 25,30] to preserve memory
  561.  5678h    [Conv] system suspended
  562.  9ABCh    [Conv] manufacturing test mode
  563.  ABCDh    [Conv] POST loop mode
  564. ----------M00400074--------------------------
  565. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  566. Size:    BYTE
  567. SeeAlso: INT 13/AH=01h
  568.  
  569. (Table M020)
  570. Values for fixed disk last operation status:
  571.  00h    no error
  572.  01h    invalid function request
  573.  02h    address mark not found
  574.  03h    write protect error
  575.  04h    sector not found
  576.  05h    reset failed
  577.  06h    diskette removed
  578.  07h    drive parameter activity failed
  579.  08h    DMA overrun
  580.  09h    DMA data boundary error
  581.  0Ah    bad sector flag detected
  582.  0Bh    bad track detected
  583.  0Ch    requested diskette media type not found
  584.     (PS/2 or extended BIOS only) unsupported track
  585.  0Dh    invalid number of sectors for Format
  586.  0Eh    control data address mark detected
  587.  0Fh    DMA arbitration level out of range
  588.  10h    uncorrectable ECC or CRC error
  589.  11h    ECC corrected data error
  590.  20h    general controller failed
  591.  40h    seek failed
  592.  80h    time out
  593.  AAh    drive not ready
  594.  BBh    undefined error
  595.  CCh    write fault on selected drive
  596.  E0h    status error/error register is zero
  597.  FFh    sense failed
  598. ----------M00400074--------------------------
  599. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  600. Size:    BYTE
  601. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  602. ----------M00400075--------------------------
  603. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  604. Size:    BYTE
  605. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  606. ----------M00400075--------------------------
  607. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  608. Size:    BYTE
  609. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  610. ----------M00400076--------------------------
  611. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE    {IBM document only for XT}
  612. Size:    BYTE
  613. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  614. ----------M00400076--------------------------
  615. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  616. Size:    BYTE
  617. ----------M00400076--------------------------
  618. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  619. Size:    BYTE
  620. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  621. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  622. ----------M00400077--------------------------
  623. MEM 0040h:0077h    - FIXED DISK - I/O port offset {IBM document only for XT}
  624. Size:    BYTE
  625. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  626. ----------M00400077--------------------------
  627. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  628. Size:    BYTE
  629. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  630. ----------M00400078--------------------------
  631. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  632. Size:    BYTE
  633. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah
  634. ----------M00400079--------------------------
  635. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  636. Size:    BYTE
  637. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah
  638. ----------M0040007A--------------------------
  639. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  640. Size:    BYTE
  641. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  642. ----------M0040007B--------------------------
  643. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  644. Size:    BYTE
  645. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  646. ----------M0040007B--------------------------
  647. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  648. Size:    BYTE
  649.  
  650. Bitfields for INT 4Bh flags:
  651. Bit(s)    Description    (Table M021)
  652.  7-6    reserved
  653.  5    set if Virtual DMA Spec supported [PS] (see INT 4B)
  654.  4    reserved
  655.  3    set if INT 4Bh intercepted and must be chained
  656.  2    reserved
  657.  1    set if Generic SCSI CBIOS services available on INT 4Bh
  658.  0    reserved
  659. ----------M0040007C--------------------------
  660. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  661. Size:    BYTE
  662. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  663. ----------M0040007D--------------------------
  664. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  665. Size:    BYTE
  666. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  667. ----------M0040007E--------------------------
  668. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  669. Size:    BYTE
  670. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  671. ----------M0040007F--------------------------
  672. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  673. Size:    BYTE
  674. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  675. ----------M00400080--------------------------
  676. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  677. Size:    WORD
  678. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h
  679. ----------M00400082--------------------------
  680. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  681. Size:    WORD
  682. Note:    XT BIOS dated 11/08/82 ends here
  683. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h
  684. ----------M00400084--------------------------
  685. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  686. Size:    BYTE
  687. ----------M00400085--------------------------
  688. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  689. Size:    WORD
  690. ----------M00400087--------------------------
  691. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  692. Size:    BYTE
  693.  
  694. Bitfields for EGA/VGA Video control flags:
  695. Bit(s)    Description    (Table M022)
  696.  7    do not to clear RAM on mode set (see INT 10h, AH=00h)
  697.  6-5    RAM on adapter = (this field + 1) * 64K
  698.  4    reserved
  699.  3    EGA/VGA video system INactive
  700.  2    wait for display enable
  701.  1    mono monitor
  702.  0    alphanumeric cursor emulation DISabled
  703.     When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  704.      like CGA ones are translated to equivalent EGA/VGA ones.
  705. ----------M00400088--------------------------
  706. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  707. Size:    BYTE
  708. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  709.  
  710. Bitfields for EGA/VGA Video switches:
  711. Bit(s)    Description    (Table M023)
  712.  7-4    power-on state of feature connector bits 3-0
  713.  3-0    configuration switches 4-1 (=0 on, =1 off) (see #M024)
  714. Note:    when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  715.       byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  716.       double scan. VGA resets this byte to x9h after the mode set.
  717.     See also note for 0040h:0089h.
  718.  
  719. (Table M024)
  720. Values for EGA/VGA configuration switches:
  721.  00h Pri MDA,                Sec EGA+old color display 40 x 25
  722.  01h Pri MDA,                Sec EGA+old color display 80 x 25
  723.  02h Pri MDA,                Sec EGA+ECD normal mode (CGA emul)
  724.  03h Pri MDA,                Sec EGA+ECD enhanced mode
  725.  04h Pri CGA 40 x 25,            Sec EGA mono display
  726.  05h Pri CGA 80 x 25,            Sec EGA mono display
  727.  06h Pri EGA+old color display 40 x 25, Sec MDA
  728.  07h Pri EGA+old color display 80 x 25, Sec MDA
  729.  08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  730.  09h Pri EGA+ECD enhanced mode,        Sec MDA
  731.  0Ah Pri EGA mono display,        Sec CGA 40 x 25
  732.  0Bh Pri EGA mono display,        Sec CGA 80 x 25
  733. SeeAlso: #M023
  734. ----------M00400089--------------------------
  735. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  736. Size:    BYTE
  737.  
  738. Bitfields for Video mode-set option control:
  739. Bit(s)    Description    (Table M025)
  740.  7,4    requested scan lines
  741.     0 0  350-line mode requested
  742.     0 1  400-line mode at next mode set
  743.     1 0  200-line mode requested
  744.     1 1  reserved
  745.     Note:    Apparently VGA BIOS mode set disregards bit 7 and uses
  746.           byte 40h:88h to determine 200/350 selection when bit 4
  747.           is zero. Presumably bit 7 is a convenience for other
  748.           purposes. Bit 7 is reset to zero after the mode set.
  749.  6    display switching enabled
  750.  5    reserved
  751.  4    if set:   use 400-line mode at next mode set
  752.     if clear: [VGA] emulate EGA at next mode set
  753.         [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  754.     Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  755.  3    default palette loading DISabled at mode set
  756.  2    mono display
  757.  1    gray scale summing enabled
  758.  0    [VGA] =1 if VGA active, =0 if not
  759.     [MCGA] reserved, zero
  760. Note:    the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  761.       to specify graphics-mode refresh rates as follows
  762.         88h/6        640x480:  1 for 72Hz,0 for 60Hz
  763.         88h/5+89h/6    800x600:  00  60Hz
  764.                       01  56Hz
  765.                       11  72Hz
  766.         88h/4+89h/5    1024x768: 00  interlaced
  767.                       01  60Hz
  768.                       10  72Hz???
  769.                       11  70Hz
  770. ----------M0040008A--------------------------
  771. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  772. Size:    BYTE
  773. ----------M0040008B--------------------------
  774. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  775. Size:    11 BYTEs
  776. ----------M0040008B--------------------------
  777. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  778. Size:    BYTE
  779.  
  780. Bitfields for diskette media control:
  781. Bit(s)    Description    (Table M026)
  782.  7-6    last data rate set by controller
  783.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  784.  5-4    last diskette drive step rate selected
  785.     00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  786.  3-2    {data rate at start of operation}
  787.  1-0    reserved
  788. Note:    EHD BIOS sets this byte to 01h and never reads it back
  789. ----------M0040008C--------------------------
  790. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  791. Size:    BYTE
  792. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  793. ----------M0040008D--------------------------
  794. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  795. Size:    BYTE
  796. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  797. ----------M0040008E--------------------------
  798. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  799. Size:    BYTE
  800. Note:    cleared to 00h at start of disk operation, set to FFh by IRQ14
  801.       handler when hard disk controller completes command
  802. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  803. ----------M0040008F--------------------------
  804. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  805. Size:    BYTE
  806. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  807.  
  808. Bitfields for diskette controller information:
  809. Bit(s)    Description    (Table M027)
  810.  7    reserved
  811.  6    =1 drive 1 determined
  812.  5    =1 drive 1 is multi-rate, valid if drive determined
  813.  4    =1 drive 1 supports 80 tracks, always valid
  814.  3    reserved
  815.  2    =1 drive 0 determined
  816.  1    =1 drive 0 is multi-rate, valid if drive determined
  817.  0    =1 drive 0 supports 80 tracks, always valid
  818. Note:    EHD BIOS sets this byte to 01h and never alters it again
  819. ----------M00400090--------------------------
  820. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  821. Size:    BYTE
  822. SeeAlso: MEM 0040h:0091h
  823.  
  824. Bitfields for diskette drive media state:
  825. Bit(s)    Description    (Table M028)
  826.  7-6    data rate
  827.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  828.  5    double stepping required (e.g. 360kB in 1.2MB)
  829.  4    media type established
  830.  3    drive capable of supporting 4MB media
  831.  2-0    on exit from BIOS, contains
  832.     000 trying 360kB in 360kB
  833.     001 trying 360kB in 1.2MB
  834.     010 trying 1.2MB in 1.2MB
  835.     011 360kB in 360kB established
  836.     100 360kB in 1.2MB established
  837.     101 1.2MB in 1.2MB established
  838.     110 reserved
  839.     111 all other formats/drives
  840. SeeAlso: #M029,#M030
  841. ----------M00400091--------------------------
  842. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  843. Size:    BYTE
  844. SeeAlso: MEM 0040h:0090h,#M028
  845. ----------M00400092--------------------------
  846. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  847. Size:    BYTE
  848. Note:    officially "Drive 2 media state"
  849. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  850.  
  851. Bitfields for diskette drive 0 media state at start of operation:
  852. Bit(s)    Description    (Table M029)
  853.  7-3 (see #M028)
  854.  2    multiple data rate capability determined
  855.  1    multiple data rate capability
  856.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  857. SeeAlso: #M028,#M030
  858. ----------M00400092--------------------------
  859. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  860. Size:    BYTE
  861. Note:    hard disk is turned off when counter reaches zero
  862. ----------M00400093--------------------------
  863. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  864. Size:    BYTE
  865. Note:    officially "Drive 3 media state"
  866. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  867.  
  868. Bitfields for diskette drive 1 media state at start of operation:
  869. Bit(s)    Description    (Table M030)
  870.  7-3    (see #M028)
  871.  2    multiple data rate capability determined
  872.  1    multiple data rate capability
  873.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  874. --HP 100LX/200LX--
  875.     display control status
  876.  0    =1 if DISPCTL -K
  877.  1    =1 if DISPCTL -C
  878. ----------M00400094--------------------------
  879. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  880. Size:    BYTE
  881. SeeAlso: MEM 0040h:0095h
  882. ----------M00400095--------------------------
  883. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  884. Size:    BYTE
  885. SeeAlso: MEM 0040h:0094h
  886. ----------M00400096--------------------------
  887. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  888. Size:    BYTE
  889.  
  890. Bitfields for keyboard status byte 1:
  891. Bit(s)    Description    (Table M031)
  892.  7    =1 read-ID in progress
  893.  6    =1 last code read was first of two ID codes
  894.  5    =1 force Num Lock if read-ID and enhanced keyboard
  895.  4    =1 enhanced keyboard installed
  896.  3    =1 Right Alt pressed
  897.  2    =1 Right Ctrl pressed
  898.  1    =1 last code read was E0h
  899.  0    =1 last code read was E1h
  900. SeeAlso: #M032
  901. ----------M00400097--------------------------
  902. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  903. Size:    BYTE
  904.  
  905. Bitfields for keyboard status byte 2:
  906. Bit(s)    Description    (Table M032)
  907.  7    =1 keyboard transmit error flag
  908.  6    =1 LED update in progress
  909.  5    =1 RESEND received from keyboard
  910.  4    =1 ACK received from keyboard
  911.  3    reserved, must be zero
  912.  2    Caps Lock LED
  913.  1    Num Lock LED
  914.  0    Scroll Lock LED
  915. SeeAlso: #M031
  916. ----------M00400098--------------------------
  917. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  918. Size:    DWORD
  919. Note:    (see INT 15/AX=8300h)
  920. ----------M0040009C--------------------------
  921. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  922. Size:    DWORD
  923. ----------M0040009F--------------------------
  924. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  925. Size:    BYTE
  926.  
  927. (Table M033)
  928. Values for HP 100LX/200LX video zoom mode:
  929.  02h    80x25 mono
  930.  03h    80x25 color
  931.  80h    64x18 mono
  932.  81h    64x18 color
  933.  82h    40x25 mono
  934.  83h    40x25 color
  935.  84h    40x16 mono
  936.  85h    40x16 color
  937. SeeAlso: INT 10/AH=D0h
  938. ----------M004000A0--------------------------
  939. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  940. Size:    BYTE
  941.  
  942. Bitfields for Timer2 wait active flag:
  943. Bit(s)    Description    (Table M034)
  944.  7    wait time elapsed
  945.  6-1    reserved
  946.  0    INT 15/AH=86h has occurred
  947. ----------M004000A1--------------------------
  948. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  949. Size:    BYTE
  950. Note:    DEVICE=DXMA0MOD.SYS
  951. ----------M004000A2--------------------------
  952. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  953. Size:    6 BYTEs
  954. ----------M004000A4--------------------------
  955. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR 
  956. Size:    DWORD
  957. ----------M004000A8--------------------------
  958. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  959. Size:    DWORD
  960.  
  961. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  962. Offset    Size    Description    (Table M035)
  963.  00h    DWORD    ptr to Video Parameter Table
  964.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  965.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  966.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  967.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  968.  14h    DWORD    reserved, zero
  969.  18h    DWORD    reserved, zero
  970. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  971.  
  972. Format of Secondary Video Save Pointer Table [VGA only]:
  973. Offset    Size    Description    (Table M036)
  974.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  975.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  976.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  977.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  978.  0Eh    DWORD    reserved, zero
  979.  12h    DWORD    reserved, zero
  980.  16h    DWORD    reserved, zero
  981. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  982.  
  983. Format of Display Combination Code Table [VGA only]:
  984. Offset    Size    Description    (Table M037)
  985.  00h    BYTE    Number of entries in the DCC table at offset 04h
  986.  01h    BYTE    Version number
  987.  02h    BYTE    Maximum display type code that can appear in DCC table
  988.  03h    BYTE    reserved
  989.  04h 2N BYTEs    Each pair of bytes gives a valid display combination
  990.         Meaning of each byte:
  991.          00h     no display
  992.          01h     MDA with mono display
  993.          02h     CGA with color display
  994.          03h     reserved
  995.          04h     EGA with color display
  996.          05h     EGA with mono display
  997.          06h     Professional Graphics Controller
  998.          07h     VGA with mono display
  999.          08h     VGA with color display
  1000.          09h     reserved
  1001.          0Ah     MCGA with digital color display
  1002.          0Bh     MCGA with analog mono display
  1003.          0Ch     MCGA with analog color display
  1004.          FFh     unrecognised video system
  1005.  
  1006. Format of Video Parameter Table [EGA, VGA only]:
  1007. Offset    Size    Description    (Table M038)
  1008.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  1009.  04h-0Eh    Modes 04h-0Eh
  1010.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  1011.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  1012.  13h-16h    Modes 00h-03h in 350-line mode
  1013.  17h        VGA Modes 00h or 01h in 400-line mode
  1014.  18h        VGA Modes 02h or 03h in 400-line mode
  1015.  19h        VGA Mode  07h in 400-line mode
  1016.  1Ah-1Ch    VGA Modes 11h-13h
  1017. Note:    An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1018.       bytes long.  Elements appear in the above order.
  1019.  
  1020. Format of Video Parameter Table element [EGA, VGA only]:
  1021. Offset    Size    Description    (Table M039)
  1022.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1023.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1024.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1025.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1026.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  1027.  09h    BYTE    Value for Miscellaneous Output Register
  1028.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  1029.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  1030.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  1031.  
  1032. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1033. Offset    Size    Description    (Table M040)
  1034.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1035.     - An array of 11 elements, each element being 32 bytes long.
  1036.       Elements appear in the order:
  1037.         Modes 00h,01h in 200-line mode for digital displays
  1038.         Modes 00h,01h in 400-line mode for analog displays
  1039.         Modes 02h,03h in 200-line mode for digital displays
  1040.         Modes 02h,03h in 400-line mode for analog displays
  1041.         Modes 04h,05h in 200-line mode for digital displays
  1042.         Modes 04h,05h in 400-line mode for analog displays
  1043.         Mode  06h in 200-line mode for digital displays
  1044.         Mode  06h in 400-line mode for analog displays
  1045.         Mode  11h
  1046.         Mode  13h in 200-line mode for digital displays
  1047.         Mode  13h in 400-line mode for analog displays
  1048.  
  1049. Format of Video Parameter Table element [MCGA only]:
  1050. Offset    Size    Description    (Table M041)
  1051.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1052.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1053.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1054.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1055.  05h    WORD    ??? always zero
  1056.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1057.  1Ch    BYTE    PEL Mask to port 3C6h
  1058.  1Dh    BYTE    CGA Mode Control to port 3D8h
  1059.  1Eh    BYTE    CGA Border Control to port 3D9h
  1060.  1Fh    BYTE    Extended Mode Control to port 3DDh
  1061.  
  1062. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1063. Offset    Size    Description    (Table M042)
  1064.  00h 16 BYTEs    Last data written to Attribute Contr. Palette Registers 0-15
  1065.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  1066.  11h-FFh    Reserved
  1067.         Note: Need for table was that EGA registers were write-only.
  1068.         Note: If default values (from the Video Parameter Table) are
  1069.               over-ridden at a mode set by the VGA User Palette Profile
  1070.               Table, then the Dynamic Save Area is updated with the
  1071.               default values, not the User Profile ones.
  1072.  
  1073. Format of Alphanumeric Character Set Override:
  1074. Offset    Size    Description    (Table M043)
  1075.  00h    BYTE    Length in bytes of each character in font table
  1076.  01h    BYTE    Character generator RAM bank to load, 0=normal
  1077.  02h    WORD    Number of characters in font table, normally 256
  1078.  04h    WORD    Code of first character in font table, normally 0
  1079.  06h    DWORD    ptr to font table
  1080.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  1081.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  1082.     BYTE    FFh end of array
  1083.  
  1084. Format of Second Alphanumeric Character Set Override:
  1085. Offset    Size    Description    (Table M044)
  1086.  00h    BYTE    Length in bytes of each character in font table
  1087.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  1088.  02h    BYTE    reserved
  1089.  03h    DWORD    ptr to font table
  1090.  07h    BYTEs    Array of mode values to which this font is to pertain
  1091.     BYTE    FFh end of array
  1092. Note:    Authorities differ, some say same as first override above, but IBM
  1093.       says it is as shown above
  1094.  
  1095. Format of Graphics Character Set Override:
  1096. Offset    Size    Description    (Table M045)
  1097.  00h    BYTE    Number of displayable character rows
  1098.  01h    WORD    Length in bytes of each character in font table
  1099.  03h    DWORD    ptr to font table
  1100.  07h    BYTEs    Array of mode values to which this font is to pertain
  1101.     BYTE    FFh end of array
  1102.  
  1103. Format of User Palette Profile Table [VGA only]:
  1104. Offset    Size    Description    (Table M046)
  1105.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  1106.                  00h=enable in monochrome alphanumeric modes only
  1107.                  FFh=disable in all alphanumeric modes
  1108.  01h    BYTE    reserved
  1109.  02h    WORD    reserved
  1110.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  1111.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  1112.  08h    DWORD    ptr to table of Attribute Controller registers to override
  1113.             Table is an array of BYTEs.
  1114.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  1115.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  1116.  10h    DWORD    ptr to table of video DAC Color registers to override
  1117.             Table is ??? triplets ??? of BYTEs???
  1118.  14h    BYTEs    array of mode values to which this profile is to pertain
  1119.     BYTE    FFh end of array
  1120. ----------M004000AC--------------------------
  1121. MEM 0040h:00ACh - RESERVED
  1122. Size:    4 BYTEs
  1123. ----------M004000B0--------------------------
  1124. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1125. Size:    BYTE
  1126. Desc:    number of times a tight software delay loop should be executed to
  1127.       generate the sub-55ms delays used internally by the BIOS
  1128. Note:    also used for delaying when beeping due to full keyboard buffer
  1129. ----------M004000B0--------------------------
  1130. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1131. Size:    DWORD
  1132. Notes:    When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1133.       beyond this entry point
  1134.     When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1135.       "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1136. ----------M004000B0--------------------------
  1137. MEM 0040h:00B0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1138. Size:    16 BYTEs
  1139. SeeAlso: INT 41,INT 46
  1140. ----------M004000B4--------------------------
  1141. MEM 0040h:00B4h    - RESERVED
  1142. Size:    WORD
  1143. ----------M004000B5--------------------------
  1144. MEM 0040h:00B5h    - Dell 4xxDE
  1145. Size:    BYTE
  1146.  
  1147. Bitfields for Dell 4xxDE flags:
  1148. Bit(s)    Description    (Table M047)
  1149.  2    ??? (related to disk drives)
  1150.  5    page tables set to allow Weitek addressing in real mode
  1151.  6    Weitek math coprocessor present
  1152. ----------M004000B6--------------------------
  1153. MEM 0040h:00B6h    - RESERVED FOR POST???
  1154. Size:    3 BYTEs
  1155. ----------M004000B9--------------------------
  1156. MEM 0040h:00B9h - ???
  1157. Size:    7 BYTEs
  1158. ----------M004000C0--------------------------
  1159. MEM 0040h:00C0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1160. Size:    16 BYTEs
  1161. SeeAlso: INT 41,INT 46
  1162. ----------M004000C0--------------------------
  1163. MEM 0040h:00C0h    - RESERVED
  1164. Size:    14 BYTEs
  1165. ----------M004000CE--------------------------
  1166. MEM 0040h:00CEh    - COUNT OF DAYS SINCE LAST BOOT
  1167. Size:    WORD
  1168. ----------M004000D0--------------------------
  1169. MEM 0040h:00D0h - RESERVED
  1170. Size:    32 BYTEs
  1171. ----------M004000D0--------------------------
  1172. MEM 0040h:00D0h    - Digiboard MV/4 - LENGTH OF DATA TABLE
  1173. Size:    BYTE
  1174. ----------M004000D0--------------------------
  1175. MEM 0040h:00D0h    EHD floppy - INSTALLATION FLAGS
  1176. Size:    BYTE
  1177.  
  1178. Bitfields for EHD floppy installation flags:
  1179. Bit(s)    Description    (Table M048)
  1180.  4    installation completed
  1181.  3-0    drives 0-3
  1182. ----------M004000D1--------------------------
  1183. MEM 0040h:00D1h    - Digiboard MV/4 - PRODUCT ID
  1184. Size:    BYTE
  1185. ----------M004000D2--------------------------
  1186. MEM 0040h:00D2h    - Digiboard MV/4 - BASE ADDRESS FOUND
  1187. Size:    WORD
  1188. ----------M004000D4--------------------------
  1189. MEM 0040h:00D4h    - Digiboard MV/4 - PORTS
  1190. Size:    BYTE
  1191. ----------M004000D5--------------------------
  1192. MEM 0040h:00D5h    - Digiboard MV/4 - IRQ
  1193. Size:    BYTE
  1194. ----------M004000D5--------------------------
  1195. MEM 0040h:00D5h    - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1196. Size:    BYTE
  1197. ----------M004000D6--------------------------
  1198. MEM 0040h:00D6h    - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1199. Size:    BYTE
  1200. Note:    this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1201.       value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1202.       instructions
  1203. ----------M004000D6--------------------------
  1204. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1205. Size:    WORD
  1206. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1207. ----------M004000D7--------------------------
  1208. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1209. Size:    BYTE
  1210. Note:    the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1211. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1212.  
  1213. Bitfields for EHD diskette media state:
  1214. Bit(s)    Description    (Table M049)
  1215.  7-6    data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1216.  5    double stepping required (e.g. 360kB in 1.2MB)
  1217.  4    media type established
  1218.  3    reserved
  1219.  2-0    on exit from BIOS, contains:
  1220.     000 trying 360kB in 360kB
  1221.     001 trying 360kB in 1.2MB
  1222.     010 trying 1.2MB in 1.2MB
  1223.     011 360kB in 360kB established
  1224.     100 360kB in 1.2MB established
  1225.     101 1.2MB in 1.2MB established
  1226.     110 reserved (2M8?)
  1227.     111 all other formats/drives
  1228. ----------M004000D8--------------------------
  1229. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1230. Size:    WORD
  1231. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1232. ----------M004000D8--------------------------
  1233. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1234. Size:    BYTE
  1235. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1236. ----------M004000D9--------------------------
  1237. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1238. Size:    BYTE
  1239. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1240. ----------M004000DA--------------------------
  1241. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1242. Size:    BYTE
  1243. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1244. ----------M004000DA--------------------------
  1245. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1246. Size:    BYTE
  1247. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1248. ----------M004000DB--------------------------
  1249. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1250. Size:    BYTE
  1251. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1252. ----------M004000DB--------------------------
  1253. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1254. Size:    BYTE
  1255. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1256. ----------M004000DC--------------------------
  1257. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1258. Size:    BYTE
  1259. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1260. ----------M004000DC--------------------------
  1261. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1262. Size:    BYTE
  1263. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1264. ----------M004000DD--------------------------
  1265. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1266. Size:    BYTE
  1267. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1268. ----------M004000DE--------------------------
  1269. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1270. Size:    BYTE
  1271. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1272. ----------M004000E0--------------------------
  1273. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1274. Size:    16 BYTEs
  1275. Note:    this area is used to store the driver parameter table for the first
  1276.       hard disk if it has been setup as the user-configurable "type 47"
  1277. ----------M004000E3--------------------------
  1278. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1279. Size:    BYTE
  1280. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1281.  
  1282. (Table M050)
  1283. Values for EHD floppy diskette type:
  1284.  01h    undefined by diskette change (360K)
  1285.  02h    1.2M
  1286.  03h    720K
  1287.  04h    1.44M
  1288.  05h    2.88M
  1289. ----------M004000E4--------------------------
  1290. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1291. Size:    BYTE
  1292. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1293. ----------M004000E5--------------------------
  1294. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1295. Size:    BYTE
  1296. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1297. ----------M004000E6--------------------------
  1298. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1299. Size:    BYTE
  1300. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1301. ----------M004000EA--------------------------
  1302. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1303. Size:    WORD
  1304. Note:    drive parameter tables stored in specified segment
  1305. ----------M004000EC--------------------------
  1306. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1307. Size:    WORD
  1308. ----------M004000F0--------------------------
  1309. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1310. Size:    16 BYTEs
  1311. ----------M00500000--------------------------
  1312. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1313. Size:    BYTE
  1314. ----------M00500004--------------------------
  1315. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1316. Size:    BYTE
  1317. ----------M0050000E--------------------------
  1318. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1319. Size:    BYTE
  1320. ----------M0050000F--------------------------
  1321. MEM 0050h:000Fh - BASICA VERSION FLAG
  1322. Size:    BYTE
  1323. Note:    this byte contains the value 02h if BASICA v2.10 is running
  1324. ----------M00500010--------------------------
  1325. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1326. Size:    WORD
  1327. ----------M00500012--------------------------
  1328. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1329. Size:    DWORD
  1330. ----------M00500016--------------------------
  1331. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1332. Size:    DWORD
  1333. ----------M0050001A--------------------------
  1334. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1335. Size:    DWORD
  1336. ----------M00600000--------------------------
  1337. MEM 0060h:0000h - DOS SCRATCH SPACE
  1338. Size:    256 BYTEs
  1339. Note:    used during DOS 2+ boot process
  1340. ----------M00700000--------------------------
  1341. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1342. ----------MA0000000--------------------------
  1343. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1344. Size:    65536 BYTEs
  1345. ----------MB0000000--------------------------
  1346. MEM B000h:0000h - MDA TEXT BUFFER
  1347. Size:    4096 BYTEs
  1348. ----------MB0000000--------------------------
  1349. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  1350. Size:    16384 BYTEs
  1351. Note:    in RAMFont Mode 1, the memory is filled with the usual
  1352.       character/attribute pairs; in RAMFont Mode 2, four bits of each
  1353.       'attribute' byte is used to provide 12 bits for specifying the
  1354.       character
  1355. ----------MB0000000--------------------------
  1356. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  1357. Size:    32768 BYTEs
  1358. ----------MB4000000--------------------------
  1359. MEM B400h:0000h - HGC+ RAMFont BUFFER
  1360. Size:    4096 BYTEs
  1361. Notes:    apparently write-only
  1362.     RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  1363.     RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  1364.     each character definition is 8 pixels wide (with 9th-column duplication
  1365.       if appropriate) by 8-16 pixels high
  1366. ----------MB8000000--------------------------
  1367. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  1368. Size:    16384 BYTEs
  1369. --------V-MB8000000--------------------------
  1370. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  1371. Size:    32768 BYTEs
  1372. --------V-MB8000000--------------------------
  1373. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  1374. Size:    32768 BYTEs
  1375. ----------MBFF00000--------------------------
  1376. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  1377. Size:    169 BYTES
  1378.  
  1379. Format of ET4000/W32 memory-mapped registers:
  1380. Offset    Size    Description    (Table M051)
  1381.  00h    DWORD    MMU Registers: memory base pointer register 0 (see #M052)
  1382.  04h    DWORD    MMU Registers: memory base pointer register 1 (see #M052)
  1383.  08h    DWORD    MMU Registers: memory base pointer register 2 (see #M052)
  1384.  0Ch  7 BYTEs    ???
  1385.  13h    BYTE    MMU Registers: MMU control register
  1386.  14h 28 BYTEs    ???
  1387.  30h    BYTE    Non-Queued Registers: suspend/terminate
  1388.  31h    BYTE    Non-Queued Registers: operation state (see #M054) (write-only)
  1389.  32h    BYTE    Non-Queued Registers: sync enable
  1390.  33h    BYTE    ???
  1391.  34h    BYTE    Non-Queued Registers: interrupt mask
  1392.  35h    BYTE    Non-Queued Registers: interrupt status
  1393.  36h    BYTE    Non-Queued Registers: ACL status (read-only)
  1394.         bit 1: read status (RDST) 1=ACL active, queue not empty
  1395.         bit 0: write status (WRST) 1=queue full
  1396.  37h 73 BYTEs    ???
  1397.  80h    DWORD    Queued Registers: pattern address (see #M055)
  1398.  84h    DWORD    Queued Registers: source address (see #M055)
  1399.  88h    WORD    Queued Registers: pattern Y offset (see #M056)
  1400.  8Ah    WORD    Queued Registers: source Y offset (see #M056)
  1401.  8Ch    WORD    Queued Registers: destination y offset (see #M056)
  1402.  8Eh    BYTE    Queued Registers: virtual bus size
  1403.  8Fh    BYTE    Queued Registers: X/Y direction (see #M057)
  1404.  90h    BYTE    Queued Registers: pattern wrap (see #M058)
  1405.  91h    BYTE    ???
  1406.  92h    BYTE    Queued Registers: source wrap (see #M058)
  1407.  93h    BYTE    ???
  1408.  94h    WORD    Queued Registers: X position
  1409.  96h    WORD    Queued Registers: Y position
  1410.  98h    WORD    Queued Registers: X count (see #M059)
  1411.  9Ah    WORD    Queued Registers: Y count (see #M059)
  1412.  9Ch    BYTE    Queued Registers: routine control (see #M060)
  1413.  9Dh    BYTE    Queued Registers: reload control
  1414.  9Eh    BYTE    Queued Registers: background ROP for mixing
  1415.  9Fh    BYTE    Queued Registers: foreground ROP for mixing
  1416.  A0h    DWORD    Queued Registers: destination address (see #M055)
  1417.  A4h    DWORD    Queued Registers: internal pattern address
  1418.  A8h    DWORD    Queued Registers: internal source address
  1419.  
  1420. Bitfields for ET4000/W32 memory base pointer register:
  1421. Bit(s)    Description    (Table M052)
  1422.  31-22    reserved
  1423.  21-0    memory base pointer
  1424. SeeAlso: #M051
  1425.  
  1426. Bitfields for ET4000/W32 MMU control register:
  1427. Bit(s)    Description    (Table M053)
  1428.  7    reserved
  1429.  6-4    linear address control (LAC)
  1430.       bit 6: MMU aperture 2
  1431.       bit 5: MMU aperture 1
  1432.       bit 4: MMU aperture 0
  1433.  3    reserved
  1434.  t2-0    aperture type (APT)
  1435.       bit 2: MMU aperture 2
  1436.       bit 1: MMU aperture 1
  1437.       bit 0: MMU aperture 0
  1438. SeeAlso: #M051 
  1439.  
  1440. Bitfields for ET4000/W32 operation state register:
  1441. Bit(s)    Description    (Table M054)
  1442.  7-4    reserved
  1443.  3    restart operation after ACL-interruption
  1444.  2-1    reserved
  1445.  0    restore status before ACL-interruption
  1446. SeeAlso: #M051
  1447.  
  1448. Bitfields for ET4000/W32 memory address register:
  1449. Bit(s)    Description    (Table M055)
  1450.  31-22    reserved
  1451.  21-0    memory base pointer
  1452. SeeAlso: #M051
  1453.  
  1454. Bitfields for ET4000/W32 offset register:
  1455. Bit(s)    Description    (Table M056)
  1456.  15-12    reserved
  1457.  11-0    Y offset
  1458. SeeAlso: #M051
  1459.  
  1460. Bitfields for ET4000/W32 X/Y direction register:
  1461. Bit(s)    Description    (Table M057)
  1462.  7-2    reserved
  1463.  1    X direction
  1464.  0    Y direction
  1465. SeeAlso: #M051
  1466.  
  1467. Bitfields for ET4000/W32 wrap register:
  1468. Bit(s)    Description    (Table M058)
  1469.  7    reserved
  1470.  6-4    pattern Y wrap
  1471.     000 = 1 line    
  1472.     001 = 2 lines    
  1473.     010 = 4 lines    
  1474.     011 = 8 lines    
  1475.     100 = reserved
  1476.     101 = reserved
  1477.     110 = reserved
  1478.     111 = no wrap 
  1479.  3    reserved
  1480.  2-0    pattern X wrap
  1481.     000 = reserved    
  1482.     001 = reserved    
  1483.     010 = 4 byte    
  1484.     011 = 8 byte    
  1485.     100 = 16 byte    
  1486.     101 = 32 byte    
  1487.     110 = 64 byte    
  1488.     111 = no wrap    
  1489. SeeAlso: #M051
  1490.  
  1491. Bitfields for ET4000/W32 count register:
  1492. Bit(s)    Description    (Table M059)
  1493.  15-12    reserved
  1494.  11-0    pixel count
  1495. SeeAlso: #M051
  1496.  
  1497. Bitfields for ET4000/W32 routine control register:
  1498. Bit(s)    Description    (Table M060)
  1499.  7-6    reserved               
  1500.  5-4    routing of CPU address (ADRO)       
  1501.       00 don't use CPU address       
  1502.       01 CPU address is destination   
  1503.       10 reserved               
  1504.       11 reserved               
  1505.  3    reserved               
  1506.  2-0    routing of CPU data (DARQ)       
  1507.       000 don't use CPU data       
  1508.       001 CPU data is source data       
  1509.       010 CPU data is mixed data       
  1510.       011 reserved               
  1511.       100 CPU data is x-count       
  1512.       101 CPU data is y-count       
  1513.       10x reserved                    
  1514. SeeAlso: #M051 
  1515. ----------MC0000000--------------------------
  1516. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  1517. Size:    varies (usually 16K-24K for EGA, 24K-32K for VGA)
  1518. ----------MC8000000--------------------------
  1519. MEM C800h:0000h - HARD DISK BIOS
  1520. Size:    varies (usually 8K or 16K)
  1521. ----------MC8001C00--------------------------
  1522. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  1523. Range:    any 8K boundary within segments C000h to DFFFh
  1524. Notes:    The XGA memory mapped registers can be assigned to the last 1K block in
  1525.       in each 8K block in the range of C0000h-DFFFFh; the base offset of
  1526.       the 128 memory mapped lcoation for a particular XGA instance is
  1527.       Segment:(1C00h+instance*80h) for each XGA installed in a system
  1528.       (default instance is 6).
  1529.     The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  1530.       register area for ROM data; the XGA (PS/2 onboard) has included
  1531.       this area in it's video BIOS ROM.
  1532.     Most of the memory mapped registers are from the graphics coprocessor,
  1533.       while the I/O-registers are for the display controller.
  1534. ----------MF0006000--------------------------
  1535. MEM F000h:6000h - IBM PC ROM BASIC
  1536. Size:    32768 BYTEs
  1537. --------B-MF000E000--------------------------
  1538. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  1539. Size:    8192 BYTEs
  1540. --------H-MF000FFF0--------------------------
  1541. MEM F000h:FFF0h - RESET JUMP
  1542. Size:    5 BYTEs
  1543. --------B-MF000FFF5--------------------------
  1544. MEM F000h:FFF5h - ASCII BIOS DATE
  1545. Size:    8 BYTEs
  1546. ----------MF000FFFD--------------------------
  1547. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  1548. Size:    BYTE
  1549. --------B-MF000FFFE--------------------------
  1550. MEM F000h:FFFEh - MACHINE TYPE CODE
  1551. Size:    BYTE
  1552. SeeAlso: INT 15/AH=C0h
  1553. ----------MFFFF0010--------------------------
  1554. MEM FFFFh:0010h - HIGH MEMORY AREA
  1555. Size:    65520 BYTEs
  1556. ---------------------------------------------
  1557.  
  1558. --------!---CONTRIBUTORS---------------------
  1559. Robin Walker    <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  1560. Wim Osterholt    <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  1561.     EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  1562.              'ACME FX4-K7tb2 v:2.5 11/5/91'
  1563. Stanley Appel   <appel@stack.urc.tue.nl>
  1564. Matthias Paul    <mpaul@ibh.rwth-aachen.de>
  1565. --------!---Admin----------------------------
  1566. Highest Table Number = M060
  1567. --------!---FILELIST-------------------------
  1568. Please redistribute all of the files comprising the interrupt list (listed at
  1569. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  1570. quartet of archives named INTER47A through INTER47D (preferably the original
  1571. authenticated PKZIP archives), and the utility programs in a two additional
  1572. archives called INTER47E.ZIP and INTER47F.ZIP
  1573.  
  1574. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  1575. --------!---CONTACT_INFO---------------------
  1576. Internet: ralf@telerama.lm.com
  1577. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  1578. FIDO: Ralf Brown 1:129/26.1
  1579.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  1580.     unless you address it to me)
  1581. CIS:  >INTERNET:ralf@telerama.lm.com
  1582.