home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / INTER53C.ZIP / MEMORY.LST < prev    next >
File List  |  1997-01-12  |  90KB  |  2,340 lines

  1. MEMORY MAP            Release 53        Last change 12jan97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 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 (IBM):
  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. SeeAlso: #M004
  160.  
  161. Bitfields for Pointing Device Flags 1:
  162. Bit(s)    Description    (Table M002)
  163.  7    command in progress
  164.  6    resend byte (FAh) received
  165.  5    acknowledge byte (FEh) received
  166.  4    error byte (FCh) received
  167.  3    unexpected value received
  168.  2-0    index count for auxiliary device data at 28h
  169. SeeAlso: #M001,#M003
  170.  
  171. Bitfields for Pointing Device Flags 2:
  172. Bit(s)    Description    (Table M003)
  173.  7    device driver far call flag
  174.  6-3    reserved
  175.  2-0    package size (number of bytes received) - 1
  176. SeeAlso: #M001,#M002
  177.  
  178. Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
  179. Offset    Size    Description    (Table M004)
  180.  00h    BYTE    length of XBDA in kilobytes
  181.  01h 15 BYTEs    reserved
  182.  17h    BYTE    number of entries in POST error log (0-10)
  183.  18h 10 BYTEs    unused???
  184.  22h    DWORD    Pointing Device Driver entry point
  185.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  186.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  187.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  188.  30h 13 BYTEs    ???
  189.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0
  190.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1
  191.  5Dh 16 BYTEs    parameter table for drive 2???
  192.  6Dh 16 BYTEs    parameter table for drive 3???
  193.  80h 56 BYTEs?    IDE drive 0 manufacturer/model string
  194.  B8h 41 BYTEs    AMIBIOS copyright string
  195.  E1h        unused???
  196. 102h    WORD    ??? flags
  197.         bit 15: ???
  198. 108h    WORD    offset of IntelIDECfgTbl (IDE configuration settings) within
  199.           segment F000h
  200. 10Ah  2 BYTEs    ???
  201. 10Ch    DWORD    pointer to routine to call for language-specific error messages
  202. 110h    WORD    offset in segment F000h of end of currently-loaded optional
  203.           BIOS subsystems (language, APM, etc.)
  204. 112h    WORD    offset in segment F000h of end of area avaiable for loading
  205.           optional BIOS subsystems
  206. 1F0h    BYTE    APM status flags
  207. 1F1h  8 BYTEs    APM power-state data for device classes 01h-06h
  208.         bits 0-3: current power state for devices 00h-03h in class
  209.         bits 7-4: current engaged state for devices 00h-03h in class
  210. 1F9h  4 BYTEs    APM power-state data for device classes 01h-08h (four devices
  211.           per class)
  212. 1FDh  3 BYTEs    ???
  213. 200h 10 WORDs    POST error log
  214. 214h    ???
  215. SeeAlso: #M001
  216. ----------M00400010--------------------------
  217. MEM 0040h:0010h - INSTALLED HARDWARE
  218. Size:    WORD
  219.  
  220. Bitfields for BIOS-detected installed hardware:
  221. Bit(s)    Description    (Table M005)
  222.  15-14    number of parallel devices
  223.     00 or 11 sometimes used to indicate four LPT ports
  224.  13    (Convertible, PS/2-55LS) internal modem
  225.  12    game port installed
  226.  11-9    number of serial devices
  227.     000 or 111 sometimes used to indicate eight COM ports
  228.  8    reserved
  229.  7-6    number of floppy disk drives (minus 1)
  230.  5-4    initial video mode
  231.     00 EGA,VGA,PGA, or other with on-board video BIOS
  232.     01 40x25 CGA color
  233.     10 80x25 CGA color
  234.     11 80x25 mono text
  235.  3-2    (PC only) RAM on motherboard
  236.     00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  237.  2    (pre-PS/2 except PC) reserved
  238.     (PS/2, newer BIOSes) pointing device installed
  239.  1    math coprocessor installed
  240.  0    floppy disk drives are installed
  241.     booted from floppy
  242. ----------M00400012--------------------------
  243. MEM 0040h:0012h - Convertible - POST STATUS
  244. Size:    BYTE
  245. ----------M00400012--------------------------
  246. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  247. Size:    BYTE
  248.  
  249. Bitfields for AT manufacturing test initialization flags:
  250. Bit(s)    Description    (Table M006)
  251.  0    start in manufacturing test mode rather than normal operation
  252.  1-7    unused
  253. ----------M00400012--------------------------
  254. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  255. Size:    BYTE
  256.  
  257. Bitfields for MCA manufacturing test flags :
  258. Bit(s)    Description    (Table M007)
  259.  7    POST flag, ???
  260.  6-5    unused
  261.  4    POST flag, slot 4 has adapter identifier EDAFh
  262.  3    POST flag, 80x25 color video
  263.  2    POST flag, ???
  264.  1    unused
  265.  0    manufacturing test mode rather than normal operation
  266. ----------M00400012--------------------------
  267. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  268. Size:    BYTE
  269.  
  270. Bitfields for PS/2 Model 25 POST sytem flag :
  271. Bit(s)    Description    (Table M008)
  272.  0    optional memory failed; memory remapped
  273.  1    real-time clock installed
  274. ----------M00400013--------------------------
  275. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  276. Size:    WORD
  277. ----------M00400015--------------------------
  278. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  279. Size:    WORD
  280. ----------M00400015--------------------------
  281. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  282. Size:    BYTE
  283. ----------M00400015--------------------------
  284. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  285. Size:    BYTE
  286. ----------M00400016--------------------------
  287. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  288. Size:    BYTE
  289. ----------M00400016--------------------------
  290. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  291. Size:    BYTE
  292. ----------M00400016--------------------------
  293. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  294. Size:    BYTE
  295. Range:    00h-7Fh
  296. --------K-M00400017--------------------------
  297. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  298. Size:    BYTE
  299. SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
  300.  
  301. Bitfields for keyboard status flags 1:
  302. Bit(s)    Description    (Table M009)
  303.  7    INSert active
  304.  6    Caps Lock active
  305.  5    Num Lock active
  306.  4    Scroll Lock active
  307.  3    either Alt pressed
  308.  2    either Ctrl pressed
  309.  1    Left Shift pressed
  310.  0    Right Shift pressed
  311. SeeAlso: #M010,#0486
  312. --------K-M00400018--------------------------
  313. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  314. Size:    BYTE
  315. SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
  316.  
  317. Bitfields for keyboard status flags 2 :
  318. Bit(s)    Description    (Table M010)
  319.  7    INSert pressed
  320.  6    Caps Lock pressed
  321.  5    Num Lock pressed
  322.  4    Scroll Lock pressed
  323.  3    Pause state active
  324.  2    Sys Req pressed
  325.  1    Left Alt pressed
  326.  0    Left Ctrl pressed
  327. SeeAlso: #M009,#0487
  328. --------K-M00400019--------------------------
  329. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  330. Size:    BYTE
  331. Desc:    holds the current value of an Alt-NNN keypad sequence; when Alt is
  332.       released and this byte is non-zero, the appropriate character is
  333.       placed in the keyboard buffer
  334. SeeAlso: INT 16/AH=00h
  335. --------K-M0040001A--------------------------
  336. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  337. Size:    WORD
  338. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  339. --------K-M0040001C--------------------------
  340. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  341. Size:    WORD
  342. SeeAlso: MEM 0040h:001Ah,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  343. --------K-M0040001E--------------------------
  344. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  345. Size:    16 WORDs
  346. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  347. SeeAlso: INT 16/AH=00h
  348. ----------M0040003E--------------------------
  349. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  350. Size:    BYTE
  351. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h
  352.  
  353. Bitfields for diskette recalibrate status:
  354. Bit(s)    Description    (Table M011)
  355.  7    diskette hardware interrupt occurred
  356.  6-4    reserved
  357.  3    recalibrate diskette 3 (PC,XT only)
  358.  2    recalibrate diskette 2 (PC,XT only)
  359.  1    recalibrate diskette 1
  360.  0    recalibrate diskette 0
  361. ----------M0040003F--------------------------
  362. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  363. Size:    BYTE
  364. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  365.  
  366. Bitfields for diskette motor status:
  367. Bit(s)    Description    (Table M012)
  368.  7    current operation is write or format, rather than read or verify
  369.  6    reserved (DMA enabled on 82077)
  370.  5-4    diskette drive number selected (0-3)
  371.  3    diskette 3 motor on (PC,XT only)
  372.  2    diskette 2 motor on (PC,XT only)
  373.  1    diskette 1 motor on
  374.  0    diskette 0 motor on
  375. ----------M00400040--------------------------
  376. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  377. Size:    BYTE
  378. Desc:    number of clock ticks until diskette motor is turned off
  379. Note:    the typical implementation of the timeout is to have the INT 08 
  380.       handler decrement this byte on every clock tick, and force the
  381.       diskette motor off if the result is equal to zero
  382. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h
  383. ----------M00400041--------------------------
  384. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  385. Size:    BYTE
  386. SeeAlso: MEM 0040h:003Eh
  387.  
  388. Bitfields for diskette last operation status:
  389. Bit(s)    Description    (Table M013)
  390.  7    drive not ready
  391.  6    seek error
  392.  5    general controller failure
  393.  4-0    error reason
  394.     00h no error
  395.     01h invalid request/parameter
  396.     02h address mark not found
  397.     03h write-protect error
  398.     04h sector not found
  399.     06h diskette change line active
  400.     08h DMA overrun
  401.     09h DMA across 64k boundary
  402.     0Ch media type unknown
  403.     10h CRC error on read
  404. Note:    the following values for this byte differ somewhat from the
  405.       bitfield definition above:
  406.         30h drive does not support media sense
  407.         31h no media in drive
  408.         32h drive does not support media type
  409.         AAh diskette drive not ready
  410. ----------M00400042--------------------------
  411. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  412. Size:    7 BYTEs
  413.  
  414.     42h BYTE    XT: command byte to hard disk controller
  415.         AT: write precompensation cylinder number / 4
  416.     43h    BYTE    XT: bit 5 = drive number, bits 3-0=head number
  417.         AT: sector count
  418.     44h BYTE    XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  419.         AT: starting sector
  420.     45h BYTE    low byte of track number
  421.     46h BYTE    XT: sector count
  422.         AT: high bits of track number
  423.     47h BYTE    XT: controlbyte from HD parameters (step rate,...)
  424.         AT: 101DHHHH, D=drive number, HHHH=head number
  425.     48h BYTE    XT: INT 13h subfunction number
  426.         AT: comand byte to hard disk controller
  427. ----------M00400042--------------------------
  428. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  429. Size:    BYTE
  430.  
  431. Bitfields for diskette controller status register 0:
  432. Bit(s)    Description    (Table M014)
  433.  7-6    interrupt code
  434.     00 normal completion
  435.     01 abnormal termination during execution
  436.     10 invalid command
  437.     11 abnormal termination: ready line on/diskette change
  438.  5    requested seek complete
  439.  4    drive fault
  440.  3    drive not ready
  441.  2    head state at time of interrupt
  442.  1-0    selected drive (drives 2&3 on PC,XT only)
  443. ----------M00400043--------------------------
  444. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  445. Size:    BYTE
  446.  
  447. Bitfields for diskette controller status register 0:
  448. Bit(s)    Description    (Table M015)
  449.  7    attempted access beyon last cylinder
  450.  6    unused
  451.  5    CRC error on read
  452.  4    DMA overrun
  453.  3    unused
  454.  2    data error
  455.  1    disk write protected
  456.  0    missing address mark
  457. ----------M00400044--------------------------
  458. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  459. Size:    BYTE
  460.  
  461. Bitfields for diskette controller status register 0:
  462. Bit(s)    Description    (Table M016)
  463.  7    unused
  464.  6    found deleted data address mark
  465.  5    CRC error in data field
  466.  4    wrong cylinder number read
  467.  3    verify equal
  468.  2    can't find sector matching verify condition
  469.  1    bad cylinder
  470.  0    unable to find address mark
  471. ----------M00400049--------------------------
  472. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  473. Size:    BYTE
  474. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  475. ----------M0040004A--------------------------
  476. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  477. Size:    WORD
  478. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh
  479. ----------M0040004C--------------------------
  480. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  481. Size:    WORD
  482. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  483. ----------M0040004E--------------------------
  484. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  485. Size:    WORD
  486. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h
  487. ----------M00400050--------------------------
  488. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  489. Size:    8 WORDs
  490. Desc:    contains row and column position for the cursors on each of eight
  491.       video pages
  492. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h
  493. ----------M00400060--------------------------
  494. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  495. Size:    WORD    (big-endian)
  496. Desc:    contains cursor start scan line and cursor end scan line
  497. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  498. ----------M00400062--------------------------
  499. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  500. Size:    BYTE
  501. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h
  502. ----------M00400063--------------------------
  503. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  504. Size:    WORD
  505. Note:    normally 03B4h for mono and 03D4h for color video boards
  506. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  507. ----------M00400065--------------------------
  508. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  509. Size:    BYTE
  510. Desc:    contains last value written to I/O port 03B8h / 03D8h
  511. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  512.  
  513. Bitfields for current video mode select register:
  514. Bit(s)    Description    (Table M017)
  515.  7-6    unused
  516.  5    attribute bit 7 controls blinking instead of background
  517.  4    mode 6 graphics in monochrome
  518.  3    video signal enabled
  519.  2    monochrome
  520.  1    graphics
  521.  0    80x25 text
  522. ----------M00400066--------------------------
  523. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  524. Size:    BYTE
  525. Desc:    contains the last value written to I/O port 03D9h
  526. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  527.  
  528. Bitfields for CGA palette register:
  529. Bit(s)    Description    (Table M018)
  530.  7-6    unused
  531.  5    palette (0/1)
  532.  4    intense background colors in text mode
  533.  3    intense border color (40x25) / background color (mode 5)
  534.  2    red
  535.  1    green
  536.  0    blue
  537. ----------M00400067--------------------------
  538. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  539. Size:    WORD
  540. SeeAlso: INT 15/AH=00h
  541. ----------M00400067--------------------------
  542. MEM 0040h:0067h - RESET RESTART ADDRESS
  543. Size:    DWORD
  544. Desc:    this address stores the address at which to resume execution after a
  545.       CPU reset (or jump to F000h:FFF0h) when certain magic values are
  546.       stored at 0040h:0072h or in CMOS RAM location 0Fh
  547. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  548. ----------M00400069--------------------------
  549. MEM 0040h:0069h    - CASSETTE (PC only) - CASSETTE CRC REGISTER
  550. Size:    WORD
  551. SeeAlso: MEM 0040h:006Bh"CASSETTE"
  552. ----------M00400069--------------------------
  553. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  554. Size:    BYTE
  555.  
  556. Bitfields for V20-XT-BIOS key repeat flags:
  557. Bit(s)    Description    (Table M019)
  558.  7    key repeat disabled
  559.  6    Ctrl-Alt pressed instead of just Alt
  560. ----------M0040006B--------------------------
  561. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  562. Size:    BYTE
  563. SeeAlso: MEM 0040h:0069h"CASSETTE"
  564. ----------M0040006B--------------------------
  565. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  566. Size:    BYTE
  567. Desc:    this is a bitmask of IRQs which have occurred while the corresponding
  568.       interrupt vector points at the default system BIOS handler
  569.       (bit 0 = IRQ0 to bit 7 = IRQ7; bit 2 = IRQ8-15 on AT and later)
  570. ----------M0040006C--------------------------
  571. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  572. Size:    DWORD
  573. SeeAlso: MEM 0040h:0070h,INT 1A/AH=00h
  574. ----------M00400070--------------------------
  575. MEM 0040h:0070h - TIMER OVERFLOW
  576. Size:    BYTE
  577. Desc:    non-zero if timer has counted past midnight since last call to
  578.       INT 1A/AH=00h
  579. Note:    the original IBM BIOS, and thus most other BIOSes, sets this byte to
  580.       01h at midnight; a few (such as the Eagle PC-2) increment it each
  581.       time midnight is passed.  The former behavior results in lost days
  582.       if multiple midnights pass between "get-time" calls while the machine
  583.       is powered up.
  584. SeeAlso: MEM 0040h:006Ch
  585. ----------M00400071--------------------------
  586. MEM 0040h:0071h - Ctrl-Break FLAG
  587. Size:    BYTE
  588. Desc:    bit 7 is set when Ctrl-Break has been pressed
  589. ----------M00400072--------------------------
  590. MEM 0040h:0072h - POST RESET FLAG
  591. Size:    WORD
  592. Desc:    specify the action the BIOS should take at the beginning of the
  593.       power-on self-test when the machine is reset
  594.  
  595. (Table M020)
  596. Values for POST reset flag:
  597.  0000h    cold boot
  598.  0064h    Burn-in mode
  599.  1234h    to bypass memory test (warm boot)
  600.  4321h    [PS/2 except Mod 25,30] to preserve memory
  601.  5678h    [Conv] system suspended
  602.  9ABCh    [Conv] manufacturing test mode
  603.  ABCDh    [Conv] POST loop mode
  604. ----------M00400074--------------------------
  605. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  606. Size:    BYTE
  607. SeeAlso: INT 13/AH=01h
  608.  
  609. (Table M021)
  610. Values for fixed disk last operation status:
  611.  00h    no error
  612.  01h    invalid function request
  613.  02h    address mark not found
  614.  03h    write protect error
  615.  04h    sector not found
  616.  05h    reset failed
  617.  06h    diskette removed
  618.  07h    drive parameter activity failed
  619.  08h    DMA overrun
  620.  09h    DMA data boundary error
  621.  0Ah    bad sector flag detected
  622.  0Bh    bad track detected
  623.  0Ch    requested diskette media type not found
  624.     (PS/2 or extended BIOS only) unsupported track
  625.  0Dh    invalid number of sectors for Format
  626.  0Eh    control data address mark detected
  627.  0Fh    DMA arbitration level out of range
  628.  10h    uncorrectable ECC or CRC error
  629.  11h    ECC corrected data error
  630.  20h    general controller failed
  631.  40h    seek failed
  632.  80h    time out
  633.  AAh    drive not ready
  634.  B0h    volume not locked in drive (INT 13 extensions)
  635.  B1h    volume locked in drive (INT 13 extensions)
  636.  B2h    volume not removable (INT 13 extensions)
  637.  B3h    volume in use (INT 13 extensions)
  638.  B4h    lock count exceeded (INT 13 extensions)
  639.  B5h    valid eject request failed (INT 13 extensions)
  640.  BBh    undefined error
  641.  CCh    write fault on selected drive
  642.  E0h    status error/error register is zero
  643.  FFh    sense failed
  644. SeeAlso: #0144
  645. ----------M00400074--------------------------
  646. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  647. Size:    BYTE
  648. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  649. ----------M00400075--------------------------
  650. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  651. Size:    BYTE
  652. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  653. ----------M00400075--------------------------
  654. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  655. Size:    BYTE
  656. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  657. ----------M00400076--------------------------
  658. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE    {IBM documented only for XT}
  659. Size:    BYTE
  660. Desc:    loaded from the disk parameter table control byte (offset 8) during
  661.       various hard disk operations
  662. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  663. ----------M00400076--------------------------
  664. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  665. Size:    BYTE
  666. ----------M00400076--------------------------
  667. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  668. Size:    BYTE
  669. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  670. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  671. ----------M00400077--------------------------
  672. MEM 0040h:0077h    - FIXED DISK - I/O port offset {IBM documented only for XT}
  673. Size:    BYTE
  674. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  675. ----------M00400077--------------------------
  676. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  677. Size:    BYTE
  678. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  679. ----------M00400078--------------------------
  680. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  681. Size:    BYTE
  682. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah
  683. ----------M00400079--------------------------
  684. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  685. Size:    BYTE
  686. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah
  687. ----------M0040007A--------------------------
  688. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  689. Size:    BYTE
  690. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  691. ----------M0040007B--------------------------
  692. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  693. Size:    BYTE
  694. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  695. ----------M0040007B--------------------------
  696. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  697. Size:    BYTE
  698.  
  699. Bitfields for INT 4Bh flags:
  700. Bit(s)    Description    (Table M022)
  701.  7-6    reserved
  702.  5    set if Virtual DMA Spec supported [PS] (see INT 4B)
  703.  4    reserved
  704.  3    set if INT 4Bh intercepted and must be chained
  705.  2    reserved
  706.  1    set if Generic SCSI CBIOS services available on INT 4Bh
  707.  0    reserved
  708. ----------M0040007C--------------------------
  709. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  710. Size:    BYTE
  711. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  712. ----------M0040007D--------------------------
  713. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  714. Size:    BYTE
  715. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  716. ----------M0040007E--------------------------
  717. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  718. Size:    BYTE
  719. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  720. ----------M0040007F--------------------------
  721. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  722. Size:    BYTE
  723. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  724. ----------M00400080--------------------------
  725. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  726. Size:    WORD
  727. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h
  728. ----------M00400082--------------------------
  729. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  730. Size:    WORD
  731. Note:    XT BIOS dated 11/08/82 ends here
  732. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h
  733. ----------M00400084--------------------------
  734. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  735. Size:    BYTE
  736. ----------M00400085--------------------------
  737. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  738. Size:    WORD
  739. ----------M00400087--------------------------
  740. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  741. Size:    BYTE
  742.  
  743. Bitfields for EGA/VGA Video control flags:
  744. Bit(s)    Description    (Table M023)
  745.  7    do not to clear RAM on mode set (see INT 10h, AH=00h)
  746.  6-5    RAM on adapter = (this field + 1) * 64K
  747.  4    reserved
  748.  3    EGA/VGA video system INactive
  749.  2    wait for display enable
  750.  1    mono monitor
  751.  0    alphanumeric cursor emulation DISabled
  752.     When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  753.      like CGA ones are translated to equivalent EGA/VGA ones.
  754. ----------M00400088--------------------------
  755. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  756. Size:    BYTE
  757. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  758.  
  759. Bitfields for EGA/VGA Video switches:
  760. Bit(s)    Description    (Table M024)
  761.  7-4    power-on state of feature connector bits 3-0
  762.  3-0    configuration switches 4-1 (=0 on, =1 off) (see #M025)
  763. Note:    when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  764.       byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  765.       double scan. VGA resets this byte to x9h after the mode set.
  766.     See also note for 0040h:0089h.
  767.  
  768. (Table M025)
  769. Values for EGA/VGA configuration switches:
  770.  00h Pri MDA,                Sec EGA+old color display 40 x 25
  771.  01h Pri MDA,                Sec EGA+old color display 80 x 25
  772.  02h Pri MDA,                Sec EGA+ECD normal mode (CGA emul)
  773.  03h Pri MDA,                Sec EGA+ECD enhanced mode
  774.  04h Pri CGA 40 x 25,            Sec EGA mono display
  775.  05h Pri CGA 80 x 25,            Sec EGA mono display
  776.  06h Pri EGA+old color display 40 x 25, Sec MDA
  777.  07h Pri EGA+old color display 80 x 25, Sec MDA
  778.  08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  779.  09h Pri EGA+ECD enhanced mode,        Sec MDA
  780.  0Ah Pri EGA mono display,        Sec CGA 40 x 25
  781.  0Bh Pri EGA mono display,        Sec CGA 80 x 25
  782. SeeAlso: #M024
  783. ----------M00400089--------------------------
  784. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  785. Size:    BYTE
  786.  
  787. Bitfields for Video mode-set option control:
  788. Bit(s)    Description    (Table M026)
  789.  7,4    requested scan lines
  790.     0 0  350-line mode requested
  791.     0 1  400-line mode at next mode set
  792.     1 0  200-line mode requested
  793.     1 1  reserved
  794.     Note:    Apparently VGA BIOS mode set disregards bit 7 and uses
  795.           byte 40h:88h to determine 200/350 selection when bit 4
  796.           is zero. Presumably bit 7 is a convenience for other
  797.           purposes. Bit 7 is reset to zero after the mode set.
  798.  6    display switching enabled
  799.  5    reserved
  800.  4    if set:      use 400-line mode at next mode set
  801.     if clear: [VGA] emulate EGA at next mode set
  802.         [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  803.     Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  804.  3    default palette loading DISabled at mode set
  805.  2    mono display
  806.  1    gray scale summing enabled
  807.  0    [VGA] =1 if VGA active, =0 if not
  808.     [MCGA] reserved, zero
  809. Note:    the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  810.       to specify graphics-mode refresh rates as follows
  811.         88h/6        640x480:  1 for 72Hz,0 for 60Hz
  812.         88h/5+89h/6    800x600:  00  60Hz
  813.                       01  56Hz
  814.                       11  72Hz
  815.         88h/4+89h/5    1024x768: 00  interlaced
  816.                       01  60Hz
  817.                       10  72Hz???
  818.                       11  70Hz
  819. ----------M0040008A--------------------------
  820. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  821. Size:    BYTE
  822. ----------M0040008B--------------------------
  823. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  824. Size:    11 BYTEs
  825. ----------M0040008B--------------------------
  826. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  827. Size:    BYTE
  828.  
  829. Bitfields for diskette media control:
  830. Bit(s)    Description    (Table M027)
  831.  7-6    last data rate set by controller
  832.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  833.  5-4    last diskette drive step rate selected
  834.     00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  835.  3-2    {data rate at start of operation}
  836.  1-0    reserved
  837. Note:    EHD BIOS sets this byte to 01h and never reads it back
  838. ----------M0040008C--------------------------
  839. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  840. Size:    BYTE
  841. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  842. ----------M0040008D--------------------------
  843. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  844. Size:    BYTE
  845. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  846. ----------M0040008E--------------------------
  847. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  848. Size:    BYTE
  849. Note:    cleared to 00h at start of disk operation, set to FFh by IRQ14
  850.       handler when hard disk controller completes command
  851. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  852. ----------M0040008F--------------------------
  853. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  854. Size:    BYTE
  855. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  856.  
  857. Bitfields for diskette controller information:
  858. Bit(s)    Description    (Table M028)
  859.  7    reserved
  860.  6    =1 drive 1 determined
  861.  5    =1 drive 1 is multi-rate, valid if drive determined
  862.  4    =1 drive 1 supports 80 tracks, always valid
  863.  3    reserved
  864.  2    =1 drive 0 determined
  865.  1    =1 drive 0 is multi-rate, valid if drive determined
  866.  0    =1 drive 0 supports 80 tracks, always valid
  867. Note:    EHD BIOS sets this byte to 01h and never alters it again
  868. ----------M00400090--------------------------
  869. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  870. Size:    BYTE
  871. SeeAlso: MEM 0040h:0091h
  872.  
  873. Bitfields for diskette drive media state:
  874. Bit(s)    Description    (Table M029)
  875.  7-6    data rate
  876.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  877.  5    double stepping required (e.g. 360kB in 1.2MB)
  878.  4    media type established
  879.  3    drive capable of supporting 4MB media
  880.  2-0    on exit from BIOS, contains
  881.     000 trying 360kB in 360kB
  882.     001 trying 360kB in 1.2MB
  883.     010 trying 1.2MB in 1.2MB
  884.     011 360kB in 360kB established
  885.     100 360kB in 1.2MB established
  886.     101 1.2MB in 1.2MB established
  887.     110 reserved
  888.     111 all other formats/drives
  889. SeeAlso: #M030,#M031
  890. ----------M00400091--------------------------
  891. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  892. Size:    BYTE
  893. SeeAlso: MEM 0040h:0090h,#M029
  894. ----------M00400092--------------------------
  895. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  896. Size:    BYTE
  897. Note:    officially "Drive 2 media state"
  898. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  899.  
  900. Bitfields for diskette drive 0 media state at start of operation:
  901. Bit(s)    Description    (Table M030)
  902.  7-3 (see #M029)
  903.  2    multiple data rate capability determined
  904.  1    multiple data rate capability
  905.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  906. SeeAlso: #M029,#M031
  907. ----------M00400092--------------------------
  908. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  909. Size:    BYTE
  910. Note:    hard disk is turned off when counter reaches zero
  911. ----------M00400093--------------------------
  912. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  913. Size:    BYTE
  914. Note:    officially "Drive 3 media state"
  915. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  916.  
  917. Bitfields for diskette drive 1 media state at start of operation:
  918. Bit(s)    Description    (Table M031)
  919.  7-3    (see #M029)
  920.  2    multiple data rate capability determined
  921.  1    multiple data rate capability
  922.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  923. --HP 100LX/200LX--
  924.     display control status
  925.  0    =1 if DISPCTL -K
  926.  1    =1 if DISPCTL -C
  927. ----------M00400094--------------------------
  928. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  929. Size:    BYTE
  930. SeeAlso: MEM 0040h:0095h
  931. ----------M00400095--------------------------
  932. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  933. Size:    BYTE
  934. SeeAlso: MEM 0040h:0094h
  935. ----------M00400096--------------------------
  936. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  937. Size:    BYTE
  938.  
  939. Bitfields for keyboard status byte 1:
  940. Bit(s)    Description    (Table M032)
  941.  7    =1 read-ID in progress
  942.  6    =1 last code read was first of two ID codes
  943.  5    =1 force Num Lock if read-ID and enhanced keyboard
  944.  4    =1 enhanced keyboard installed
  945.  3    =1 Right Alt pressed
  946.  2    =1 Right Ctrl pressed
  947.  1    =1 last code read was E0h
  948.  0    =1 last code read was E1h
  949. SeeAlso: #M033,#M009
  950. ----------M00400097--------------------------
  951. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  952. Size:    BYTE
  953.  
  954. Bitfields for keyboard status byte 2:
  955. Bit(s)    Description    (Table M033)
  956.  7    =1 keyboard transmit error flag
  957.  6    =1 LED update in progress
  958.  5    =1 RESEND received from keyboard
  959.  4    =1 ACK received from keyboard
  960.  3    reserved, must be zero
  961.  2    Caps Lock LED
  962.  1    Num Lock LED
  963.  0    Scroll Lock LED
  964. SeeAlso: #M032,#M009
  965. ----------M00400098--------------------------
  966. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  967. Size:    DWORD
  968. Note:    (see INT 15/AX=8300h)
  969. ----------M0040009C--------------------------
  970. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  971. Size:    DWORD
  972. ----------M0040009F--------------------------
  973. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  974. Size:    BYTE
  975.  
  976. (Table M034)
  977. Values for HP 100LX/200LX video zoom mode:
  978.  02h    80x25 mono
  979.  03h    80x25 color
  980.  80h    64x18 mono
  981.  81h    64x18 color
  982.  82h    40x25 mono
  983.  83h    40x25 color
  984.  84h    40x16 mono
  985.  85h    40x16 color
  986. SeeAlso: INT 10/AH=D0h
  987. ----------M004000A0--------------------------
  988. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  989. Size:    BYTE
  990.  
  991. Bitfields for Timer2 wait active flag:
  992. Bit(s)    Description    (Table M035)
  993.  7    wait time elapsed
  994.  6-1    reserved
  995.  0    INT 15/AH=86h has occurred
  996. ----------M004000A1--------------------------
  997. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  998. Size:    BYTE
  999. Note:    DEVICE=DXMA0MOD.SYS
  1000. ----------M004000A2--------------------------
  1001. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  1002. Size:    6 BYTEs
  1003. ----------M004000A4--------------------------
  1004. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR 
  1005. Size:    DWORD
  1006. ----------M004000A8--------------------------
  1007. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  1008. Size:    DWORD
  1009.  
  1010. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  1011. Offset    Size    Description    (Table M036)
  1012.  00h    DWORD    ptr to Video Parameter Table
  1013.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  1014.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  1015.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  1016.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  1017.  14h    DWORD    reserved, zero
  1018.  18h    DWORD    reserved, zero
  1019. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  1020.  
  1021. Format of Secondary Video Save Pointer Table [VGA only]:
  1022. Offset    Size    Description    (Table M037)
  1023.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  1024.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  1025.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  1026.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  1027.  0Eh    DWORD    reserved, zero
  1028.  12h    DWORD    reserved, zero
  1029.  16h    DWORD    reserved, zero
  1030. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  1031.  
  1032. Format of Display Combination Code Table [VGA only]:
  1033. Offset    Size    Description    (Table M038)
  1034.  00h    BYTE    Number of entries in the DCC table at offset 04h
  1035.  01h    BYTE    Version number
  1036.  02h    BYTE    Maximum display type code that can appear in DCC table
  1037.  03h    BYTE    reserved
  1038.  04h 2N BYTEs    Each pair of bytes gives a valid display combination
  1039.         Meaning of each byte:
  1040.          00h     no display
  1041.          01h     MDA with mono display
  1042.          02h     CGA with color display
  1043.          03h     reserved
  1044.          04h     EGA with color display
  1045.          05h     EGA with mono display
  1046.          06h     Professional Graphics Controller
  1047.          07h     VGA with mono display
  1048.          08h     VGA with color display
  1049.          09h     reserved
  1050.          0Ah     MCGA with digital color display
  1051.          0Bh     MCGA with analog mono display
  1052.          0Ch     MCGA with analog color display
  1053.          FFh     unrecognised video system
  1054.  
  1055. Format of Video Parameter Table [EGA, VGA only]:
  1056. Offset    Size    Description    (Table M039)
  1057.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  1058.  04h-0Eh    Modes 04h-0Eh
  1059.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  1060.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  1061.  13h-16h    Modes 00h-03h in 350-line mode
  1062.  17h        VGA Modes 00h or 01h in 400-line mode
  1063.  18h        VGA Modes 02h or 03h in 400-line mode
  1064.  19h        VGA Mode  07h in 400-line mode
  1065.  1Ah-1Ch    VGA Modes 11h-13h
  1066. Note:    An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1067.       bytes long.  Elements appear in the above order.
  1068.  
  1069. Format of Video Parameter Table element [EGA, VGA only]:
  1070. Offset    Size    Description    (Table M040)
  1071.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1072.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1073.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1074.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1075.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  1076.  09h    BYTE    Value for Miscellaneous Output Register
  1077.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  1078.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  1079.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  1080.  
  1081. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1082. Offset    Size    Description    (Table M041)
  1083.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1084.     - An array of 11 elements, each element being 32 bytes long.
  1085.       Elements appear in the order:
  1086.         Modes 00h,01h in 200-line mode for digital displays
  1087.         Modes 00h,01h in 400-line mode for analog displays
  1088.         Modes 02h,03h in 200-line mode for digital displays
  1089.         Modes 02h,03h in 400-line mode for analog displays
  1090.         Modes 04h,05h in 200-line mode for digital displays
  1091.         Modes 04h,05h in 400-line mode for analog displays
  1092.         Mode  06h in 200-line mode for digital displays
  1093.         Mode  06h in 400-line mode for analog displays
  1094.         Mode  11h
  1095.         Mode  13h in 200-line mode for digital displays
  1096.         Mode  13h in 400-line mode for analog displays
  1097.  
  1098. Format of Video Parameter Table element [MCGA only]:
  1099. Offset    Size    Description    (Table M042)
  1100.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1101.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1102.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1103.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1104.  05h    WORD    ??? always zero
  1105.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1106.  1Ch    BYTE    PEL Mask to port 3C6h
  1107.  1Dh    BYTE    CGA Mode Control to port 3D8h
  1108.  1Eh    BYTE    CGA Border Control to port 3D9h
  1109.  1Fh    BYTE    Extended Mode Control to port 3DDh
  1110.  
  1111. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1112. Offset    Size    Description    (Table M043)
  1113.  00h 16 BYTEs    Last data written to Attribute Contr. Palette Registers 0-15
  1114.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  1115.  11h-FFh    Reserved
  1116.         Note: Need for table was that EGA registers were write-only.
  1117.         Note: If default values (from the Video Parameter Table) are
  1118.               over-ridden at a mode set by the VGA User Palette Profile
  1119.               Table, then the Dynamic Save Area is updated with the
  1120.               default values, not the User Profile ones.
  1121.  
  1122. Format of Alphanumeric Character Set Override:
  1123. Offset    Size    Description    (Table M044)
  1124.  00h    BYTE    Length in bytes of each character in font table
  1125.  01h    BYTE    Character generator RAM bank to load, 0=normal
  1126.  02h    WORD    Number of characters in font table, normally 256
  1127.  04h    WORD    Code of first character in font table, normally 0
  1128.  06h    DWORD    ptr to font table
  1129.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  1130.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  1131.     BYTE    FFh end of array
  1132.  
  1133. Format of Second Alphanumeric Character Set Override:
  1134. Offset    Size    Description    (Table M045)
  1135.  00h    BYTE    Length in bytes of each character in font table
  1136.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  1137.  02h    BYTE    reserved
  1138.  03h    DWORD    ptr to font table
  1139.  07h    BYTEs    Array of mode values to which this font is to pertain
  1140.     BYTE    FFh end of array
  1141. Note:    Authorities differ, some say same as first override above, but IBM
  1142.       says it is as shown above
  1143.  
  1144. Format of Graphics Character Set Override:
  1145. Offset    Size    Description    (Table M046)
  1146.  00h    BYTE    Number of displayable character rows
  1147.  01h    WORD    Length in bytes of each character in font table
  1148.  03h    DWORD    ptr to font table
  1149.  07h    BYTEs    Array of mode values to which this font is to pertain
  1150.     BYTE    FFh end of array
  1151.  
  1152. Format of User Palette Profile Table [VGA only]:
  1153. Offset    Size    Description    (Table M047)
  1154.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  1155.                  00h=enable in monochrome alphanumeric modes only
  1156.                  FFh=disable in all alphanumeric modes
  1157.  01h    BYTE    reserved
  1158.  02h    WORD    reserved
  1159.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  1160.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  1161.  08h    DWORD    ptr to table of Attribute Controller registers to override
  1162.             Table is an array of BYTEs.
  1163.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  1164.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  1165.  10h    DWORD    ptr to table of video DAC Color registers to override
  1166.             Table is ??? triplets ??? of BYTEs???
  1167.  14h    BYTEs    array of mode values to which this profile is to pertain
  1168.     BYTE    FFh end of array
  1169. ----------M004000AC--------------------------
  1170. MEM 0040h:00ACh - RESERVED
  1171. Size:    4 BYTEs
  1172. ----------M004000B0--------------------------
  1173. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1174. Size:    BYTE
  1175. Desc:    number of times a tight software delay loop should be executed to
  1176.       generate the sub-55ms delays used internally by the BIOS
  1177. Note:    also used for delaying when beeping due to full keyboard buffer
  1178. ----------M004000B0--------------------------
  1179. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1180. Size:    DWORD
  1181. Notes:    When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1182.       beyond this entry point
  1183.     When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1184.       "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1185. ----------M004000B0--------------------------
  1186. MEM 0040h:00B0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1187. Size:    16 BYTEs
  1188. SeeAlso: INT 41,INT 46
  1189. ----------M004000B4--------------------------
  1190. MEM 0040h:00B4h    - RESERVED
  1191. Size:    WORD
  1192. ----------M004000B5--------------------------
  1193. MEM 0040h:00B5h    - Dell 4xxDE
  1194. Size:    BYTE
  1195.  
  1196. Bitfields for Dell 4xxDE flags:
  1197. Bit(s)    Description    (Table M048)
  1198.  2    ??? (related to disk drives)
  1199.  5    page tables set to allow Weitek addressing in real mode
  1200.  6    Weitek math coprocessor present
  1201. ----------M004000B6--------------------------
  1202. MEM 0040h:00B6h    - RESERVED FOR POST???
  1203. Size:    3 BYTEs
  1204. ----------M004000B9--------------------------
  1205. MEM 0040h:00B9h - ???
  1206. Size:    7 BYTEs
  1207. ----------M004000BC--------------------------
  1208. MEM 0040h:00BCh - 1993 Phoenix 486 BIOS 1.03 PCI - CPU TYPE/MASK REVISION
  1209. Size:    WORD
  1210. Desc:    the high byte contains the CPU type, the low byte the mask revision
  1211.       (stepping level), as reported to the BIOS in DX by the CPU at startup
  1212. SeeAlso: INT 15/AH=C9h
  1213. ----------M004000C0--------------------------
  1214. MEM 0040h:00C0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1215. Size:    16 BYTEs
  1216. SeeAlso: INT 41,INT 46
  1217. ----------M004000C0--------------------------
  1218. MEM 0040h:00C0h    - RESERVED
  1219. Size:    14 BYTEs
  1220. ----------M004000CE--------------------------
  1221. MEM 0040h:00CEh    - COUNT OF DAYS SINCE LAST BOOT
  1222. Size:    WORD
  1223. ----------M004000D0--------------------------
  1224. MEM 0040h:00D0h - RESERVED
  1225. Size:    32 BYTEs
  1226. ----------M004000D0--------------------------
  1227. MEM 0040h:00D0h    - Digiboard MV/4 - LENGTH OF DATA TABLE
  1228. Size:    BYTE
  1229. ----------M004000D0--------------------------
  1230. MEM 0040h:00D0h    EHD floppy - INSTALLATION FLAGS
  1231. Size:    BYTE
  1232.  
  1233. Bitfields for EHD floppy installation flags:
  1234. Bit(s)    Description    (Table M049)
  1235.  4    installation completed
  1236.  3-0    drives 0-3
  1237. ----------M004000D0--------------------------
  1238. MEM 0040h:00D0h    - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
  1239. Size:    WORD
  1240. Desc:    this word holds the value of BX during an EPP BIOS call
  1241. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1242. SeeAlso: MEM 0040h:00DDh"AMI"
  1243. ----------M004000D1--------------------------
  1244. MEM 0040h:00D1h    - Digiboard MV/4 - PRODUCT ID
  1245. Size:    BYTE
  1246. ----------M004000D2--------------------------
  1247. MEM 0040h:00D2h    - Digiboard MV/4 - BASE ADDRESS FOUND
  1248. Size:    WORD
  1249. ----------M004000D2--------------------------
  1250. MEM 0040h:00D2h    - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
  1251. Size:    WORD
  1252. ----------M004000D4--------------------------
  1253. MEM 0040h:00D4h    - Digiboard MV/4 - PORTS
  1254. Size:    BYTE
  1255. ----------M004000D5--------------------------
  1256. MEM 0040h:00D5h    - Digiboard MV/4 - IRQ
  1257. Size:    BYTE
  1258. ----------M004000D5--------------------------
  1259. MEM 0040h:00D5h    - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1260. Size:    BYTE
  1261. ----------M004000D5--------------------------
  1262. MEM 0040h:00D5h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
  1263. Size:    BYTE
  1264. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1265. SeeAlso: MEM 0040h:00DCh"AMI"
  1266. ----------M004000D6--------------------------
  1267. MEM 0040h:00D6h    - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1268. Size:    BYTE
  1269. Note:    this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1270.       value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1271.       instructions
  1272. ----------M004000D6--------------------------
  1273. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1274. Size:    WORD
  1275. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1276. ----------M004000D6--------------------------
  1277. MEM 0040h:00D6h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
  1278. Size:    BYTE
  1279. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
  1280. SeeAlso: MEM 0040h:00DDh"AMI"
  1281. ----------M004000D7--------------------------
  1282. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1283. Size:    BYTE
  1284. Note:    the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1285. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1286.  
  1287. Bitfields for EHD diskette media state:
  1288. Bit(s)    Description    (Table M050)
  1289.  7-6    data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1290.  5    double stepping required (e.g. 360kB in 1.2MB)
  1291.  4    media type established
  1292.  3    reserved
  1293.  2-0    on exit from BIOS, contains:
  1294.     000 trying 360kB in 360kB
  1295.     001 trying 360kB in 1.2MB
  1296.     010 trying 1.2MB in 1.2MB
  1297.     011 360kB in 360kB established
  1298.     100 360kB in 1.2MB established
  1299.     101 1.2MB in 1.2MB established
  1300.     110 reserved (2M8?)
  1301.     111 all other formats/drives
  1302. ----------M004000D7--------------------------
  1303. MEM 0040h:00D7h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
  1304. Size:    BYTE
  1305. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1306. SeeAlso: MEM 0040h:00DDh"AMI"
  1307. ----------M004000D8--------------------------
  1308. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1309. Size:    WORD
  1310. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1311. ----------M004000D8--------------------------
  1312. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1313. Size:    BYTE
  1314. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1315. ----------M004000D8--------------------------
  1316. MEM 0040h:00D8h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
  1317. Size:    BYTE
  1318. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1319. SeeAlso: MEM 0040h:00DDh"AMI"
  1320. ----------M004000D9--------------------------
  1321. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1322. Size:    BYTE
  1323. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1324. ----------M004000DA--------------------------
  1325. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1326. Size:    BYTE
  1327. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1328. ----------M004000DA--------------------------
  1329. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1330. Size:    BYTE
  1331. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1332. ----------M004000DB--------------------------
  1333. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1334. Size:    BYTE
  1335. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1336. ----------M004000DB--------------------------
  1337. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1338. Size:    BYTE
  1339. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1340. ----------M004000DC--------------------------
  1341. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1342. Size:    BYTE
  1343. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1344. ----------M004000DC--------------------------
  1345. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
  1346. Size:    BYTE
  1347. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
  1348. SeeAlso: INT 17/AX=0200h/BX=5050h
  1349.  
  1350. (Table M051)
  1351. Values for AMI Enhanced Parallel Port mode:
  1352.  01h    compatibility mode
  1353.  02h    bi-directional mode
  1354.  04h    EPP mode
  1355. SeeAlso: #0534
  1356. ----------M004000DC--------------------------
  1357. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1358. Size:    BYTE
  1359. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1360. ----------M004000DC--------------------------
  1361. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
  1362. Size:    BYTE
  1363. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M051
  1364. ----------M004000DD--------------------------
  1365. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1366. Size:    BYTE
  1367. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1368. ----------M004000DE--------------------------
  1369. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1370. Size:    BYTE
  1371. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1372. ----------M004000DF--------------------------
  1373. MEM 0040h:00DFh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
  1374. Size:    BYTE
  1375. Note:    set to 01h if last request was to lock a port, 00h if last request was
  1376.       to unlock a port
  1377. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
  1378. ----------M004000E0--------------------------
  1379. MEM 0040h:00E0h    - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
  1380. Size:    BYTE
  1381. Desc:    contains the number of advertised real-time devices as set by EPP
  1382.       function 12h (see #0529)
  1383. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
  1384. ----------M004000E0--------------------------
  1385. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1386. Size:    16 BYTEs
  1387. Note:    this area is used to store the driver parameter table for the first
  1388.       hard disk if it has been setup as the user-configurable "type 47"
  1389. ----------M004000E3--------------------------
  1390. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1391. Size:    BYTE
  1392. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1393.  
  1394. (Table M052)
  1395. Values for EHD floppy diskette type:
  1396.  01h    undefined by diskette change (360K)
  1397.  02h    1.2M
  1398.  03h    720K
  1399.  04h    1.44M
  1400.  05h    2.88M
  1401. ----------M004000E4--------------------------
  1402. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1403. Size:    BYTE
  1404. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1405. ----------M004000E5--------------------------
  1406. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1407. Size:    BYTE
  1408. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1409. ----------M004000E6--------------------------
  1410. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1411. Size:    BYTE
  1412. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1413. ----------M004000EA--------------------------
  1414. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1415. Size:    WORD
  1416. Note:    drive parameter tables stored in specified segment
  1417. ----------M004000EC--------------------------
  1418. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1419. Size:    WORD
  1420. ----------M004000F0--------------------------
  1421. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1422. Size:    16 BYTEs
  1423. ----------M00500000--------------------------
  1424. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1425. Size:    BYTE
  1426. --------J-M00500001--------------------------
  1427. MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
  1428. Size:    BYTE
  1429. Note:    if bit 3 set, the screen is in high-resolution mode (start memory at
  1430.       segment E000h instead of A000h)
  1431. ----------M00500004--------------------------
  1432. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1433. Size:    BYTE
  1434. ----------M0050000E--------------------------
  1435. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1436. Size:    BYTE
  1437. ----------M0050000F--------------------------
  1438. MEM 0050h:000Fh - BASICA VERSION FLAG
  1439. Size:    BYTE
  1440. Note:    this byte contains the value 02h if BASICA v2.10 is running
  1441. ----------M00500010--------------------------
  1442. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1443. Size:    WORD
  1444. ----------M00500012--------------------------
  1445. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1446. Size:    DWORD
  1447. ----------M00500016--------------------------
  1448. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1449. Size:    DWORD
  1450. ----------M0050001A--------------------------
  1451. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1452. Size:    DWORD
  1453. ----------M00600000--------------------------
  1454. MEM 0060h:0000h - DOS SCRATCH SPACE
  1455. Size:    256 BYTEs
  1456. Note:    used during DOS 2+ boot process
  1457. ----------M00700000--------------------------
  1458. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1459. ----------m80C00000--------------------------
  1460. MEM 80C00000h - Compaq Deskpro 386 system memory board register
  1461. Size:    BYTE
  1462.  
  1463. 80C00000  R   Diagnostics register (see #M053)
  1464. 80C00000   W  RAM relocation register (see #M054)
  1465.  
  1466. Bitfields for Compaq Deskpro 386 diagnostics register:
  1467. Bit(s)    Description    (Table M053)
  1468.  7    =0 memory expansion board is installed
  1469.  6    =0 second 1 MB of system memory board is installed
  1470.  5-4    base memory
  1471.     00 set to 640 KB
  1472.     01 invalid
  1473.     10 set to 512 KB
  1474.     11 set to 256 KB
  1475.  3    parity correct in byte 3
  1476.  2    parity correct in byte 2
  1477.  1    parity correct in byte 1
  1478.  0    parity correct in byte 0 (in 32-bit double word)
  1479. SeeAlso: #M054
  1480.  
  1481. Bitfields for Compaq Deskpro 386 RAM relocation register:
  1482. Bit(s)    Description    (Table M054)
  1483.  7-2    reserved, always write 1's.
  1484.  1    =0  Write-protect 128-Kbyte RAM at FE0000.
  1485.     =1  Do not write-protect RAM at FE0000.
  1486.  0    =0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  1487.     =1  128-Kbyte RAM is addressed only at FE0000.
  1488. SeeAlso: #M053
  1489. ----------MA0000000--------------------------
  1490. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1491. Size:    65536 BYTEs
  1492. ----------MB0000000--------------------------
  1493. MEM B000h:0000h - MDA TEXT BUFFER
  1494. Size:    4096 BYTEs
  1495. ----------MB0000000--------------------------
  1496. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  1497. Size:    16384 BYTEs
  1498. Note:    in RAMFont Mode 1, the memory is filled with the usual
  1499.       character/attribute pairs; in RAMFont Mode 2, four bits of each
  1500.       'attribute' byte is used to provide 12 bits for specifying the
  1501.       character
  1502. ----------MB0000000--------------------------
  1503. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  1504. Size:    32768 BYTEs
  1505. ----------MB4000000--------------------------
  1506. MEM B400h:0000h - HGC+ RAMFont BUFFER
  1507. Size:    4096 BYTEs
  1508. Notes:    apparently write-only
  1509.     RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  1510.     RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  1511.     each character definition is 8 pixels wide (with 9th-column duplication
  1512.       if appropriate) by 8-16 pixels high
  1513. ----------MB8000000--------------------------
  1514. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  1515. Size:    16384 BYTEs
  1516. --------V-MB8000000--------------------------
  1517. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  1518. Size:    32768 BYTEs
  1519. --------V-MB8000000--------------------------
  1520. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  1521. Size:    32768 BYTEs
  1522. ----------MBFF00000--------------------------
  1523. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  1524. Size:    169 BYTES
  1525.  
  1526. Format of ET4000/W32 memory-mapped registers:
  1527. Offset    Size    Description    (Table M055)
  1528.  00h    DWORD    MMU Registers: memory base pointer register 0 (see #M056)
  1529.  04h    DWORD    MMU Registers: memory base pointer register 1 (see #M056)
  1530.  08h    DWORD    MMU Registers: memory base pointer register 2 (see #M056)
  1531.  0Ch  7 BYTEs    ???
  1532.  13h    BYTE    MMU Registers: MMU control register (see #M057)
  1533.  14h 28 BYTEs    ???
  1534.  30h    BYTE    Non-Queued Registers: suspend/terminate
  1535.  31h    BYTE    Non-Queued Registers: operation state (see #M058) (write-only)
  1536.  32h    BYTE    Non-Queued Registers: sync enable
  1537.  33h    BYTE    ???
  1538.  34h    BYTE    Non-Queued Registers: interrupt mask
  1539.  35h    BYTE    Non-Queued Registers: interrupt status
  1540.  36h    BYTE    Non-Queued Registers: ACL status (read-only)
  1541.         bit 1: read status (RDST) 1=ACL active, queue not empty
  1542.         bit 0: write status (WRST) 1=queue full
  1543.  37h 73 BYTEs    ???
  1544.  80h    DWORD    Queued Registers: pattern address (see #M059)
  1545.  84h    DWORD    Queued Registers: source address (see #M059)
  1546.  88h    WORD    Queued Registers: pattern Y offset (see #M060)
  1547.  8Ah    WORD    Queued Registers: source Y offset (see #M060)
  1548.  8Ch    WORD    Queued Registers: destination y offset (see #M060)
  1549.  8Eh    BYTE    Queued Registers: virtual bus size
  1550.  8Fh    BYTE    Queued Registers: X/Y direction (see #M061)
  1551.  90h    BYTE    Queued Registers: pattern wrap (see #M062)
  1552.  91h    BYTE    ???
  1553.  92h    BYTE    Queued Registers: source wrap (see #M062)
  1554.  93h    BYTE    ???
  1555.  94h    WORD    Queued Registers: X position
  1556.  96h    WORD    Queued Registers: Y position
  1557.  98h    WORD    Queued Registers: X count (see #M063)
  1558.  9Ah    WORD    Queued Registers: Y count (see #M063)
  1559.  9Ch    BYTE    Queued Registers: routine control (see #M064)
  1560.  9Dh    BYTE    Queued Registers: reload control
  1561.  9Eh    BYTE    Queued Registers: background ROP for mixing
  1562.  9Fh    BYTE    Queued Registers: foreground ROP for mixing
  1563.  A0h    DWORD    Queued Registers: destination address
  1564.  A4h    DWORD    Queued Registers: internal pattern address
  1565.  A8h    DWORD    Queued Registers: internal source address
  1566.  
  1567. Bitfields for ET4000/W32 memory base pointer register:
  1568. Bit(s)    Description    (Table M056)
  1569.  31-22    reserved
  1570.  21-0    memory base pointer
  1571. SeeAlso: #M055
  1572.  
  1573. Bitfields for ET4000/W32 MMU control register:
  1574. Bit(s)    Description    (Table M057)
  1575.  7    reserved
  1576.  6-4    linear address control (LAC)
  1577.       bit 6: MMU aperture 2
  1578.       bit 5: MMU aperture 1
  1579.       bit 4: MMU aperture 0
  1580.  3    reserved
  1581.  t2-0    aperture type (APT)
  1582.       bit 2: MMU aperture 2
  1583.       bit 1: MMU aperture 1
  1584.       bit 0: MMU aperture 0
  1585. SeeAlso: #M055 
  1586.  
  1587. Bitfields for ET4000/W32 operation state register:
  1588. Bit(s)    Description    (Table M058)
  1589.  7-4    reserved
  1590.  3    restart operation after ACL-interruption
  1591.  2-1    reserved
  1592.  0    restore status before ACL-interruption
  1593. SeeAlso: #M055
  1594.  
  1595. Bitfields for ET4000/W32 memory address register:
  1596. Bit(s)    Description    (Table M059)
  1597.  31-22    reserved
  1598.  21-0    memory base pointer
  1599. SeeAlso: #M055
  1600.  
  1601. Bitfields for ET4000/W32 offset register:
  1602. Bit(s)    Description    (Table M060)
  1603.  15-12    reserved
  1604.  11-0    Y offset
  1605. SeeAlso: #M055
  1606.  
  1607. Bitfields for ET4000/W32 X/Y direction register:
  1608. Bit(s)    Description    (Table M061)
  1609.  7-2    reserved
  1610.  1    X direction
  1611.  0    Y direction
  1612. SeeAlso: #M055
  1613.  
  1614. Bitfields for ET4000/W32 wrap register:
  1615. Bit(s)    Description    (Table M062)
  1616.  7    reserved
  1617.  6-4    pattern Y wrap
  1618.     000 = 1 line    
  1619.     001 = 2 lines    
  1620.     010 = 4 lines    
  1621.     011 = 8 lines    
  1622.     100 = reserved
  1623.     101 = reserved
  1624.     110 = reserved
  1625.     111 = no wrap 
  1626.  3    reserved
  1627.  2-0    pattern X wrap
  1628.     000 = reserved    
  1629.     001 = reserved    
  1630.     010 = 4 byte    
  1631.     011 = 8 byte    
  1632.     100 = 16 byte    
  1633.     101 = 32 byte    
  1634.     110 = 64 byte    
  1635.     111 = no wrap    
  1636. SeeAlso: #M055
  1637.  
  1638. Bitfields for ET4000/W32 count register:
  1639. Bit(s)    Description    (Table M063)
  1640.  15-12    reserved
  1641.  11-0    pixel count
  1642. SeeAlso: #M055
  1643.  
  1644. Bitfields for ET4000/W32 routine control register:
  1645. Bit(s)    Description    (Table M064)
  1646.  7-6    reserved               
  1647.  5-4    routing of CPU address (ADRO)       
  1648.     00 don't use CPU address       
  1649.     01 CPU address is destination    
  1650.     10 reserved               
  1651.     11 reserved               
  1652.  3    reserved               
  1653.  2-0    routing of CPU data (DARQ)       
  1654.     000 don't use CPU data       
  1655.     001 CPU data is source data       
  1656.     010 CPU data is mixed data       
  1657.     011 reserved               
  1658.     100 CPU data is x-count       
  1659.     101 CPU data is y-count       
  1660.     10x reserved            
  1661. SeeAlso: #M055 
  1662. ----------MC0000000--------------------------
  1663. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  1664. Size:    varies (usually 16K-24K for EGA, 24K-32K for VGA)
  1665. ----------mC0000000--------------------------
  1666. MEM C0000000h -    Weitek "Abacus" math coprocessor
  1667. Size:    4096 BYTEs
  1668. ----------MC8000000--------------------------
  1669. MEM C800h:0000h - HARD DISK BIOS
  1670. Size:    varies (usually 8K or 16K)
  1671. ----------MC8001C00--------------------------
  1672. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  1673. Range:    any 8K boundary within segments C000h to DFFFh
  1674. Notes:    The XGA memory mapped registers can be assigned to the last 1K block in
  1675.       in each 8K block in the range of C0000h-DFFFFh; the base offset of
  1676.       the 128 memory mapped lcoation for a particular XGA instance is
  1677.       Segment:(1C00h+instance*80h) for each XGA installed in a system
  1678.       (default instance is 6).  The instance number may be read from the
  1679.       XGA's Programmable Option Select registers
  1680.     The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  1681.       register area for ROM data; the XGA (PS/2 onboard) has included
  1682.       this area in it's video BIOS ROM.
  1683.     Most of the memory mapped registers are from the graphics coprocessor,
  1684.       while the I/O-registers are for the display controller.
  1685. ----------MF0006000--------------------------
  1686. MEM F000h:6000h - IBM PC ROM BASIC
  1687. Size:    32768 BYTEs
  1688. --------B-MF000E000--------------------------
  1689. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  1690. Size:    8192 BYTEs
  1691. --------H-MF000FFF0--------------------------
  1692. MEM F000h:FFF0h - RESET JUMP
  1693. Size:    5 BYTEs
  1694. --------B-MF000FFF5--------------------------
  1695. MEM F000h:FFF5h - ASCII BIOS DATE
  1696. Size:    8 BYTEs
  1697. ----------MF000FFFD--------------------------
  1698. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  1699. Size:    BYTE
  1700. --------B-MF000FFFE--------------------------
  1701. MEM F000h:FFFEh - MACHINE TYPE CODE
  1702. Size:    BYTE
  1703. SeeAlso: INT 15/AH=C0h
  1704. --------B-MF000xxxx--------------------------
  1705. MEM F000h:xxxxh - AWARD Flash Hook
  1706.  
  1707. Format of AWARD Flash BIOS interface:
  1708. Offset    Size    Description    (Table M065)
  1709.  00h  8 BYTEs    signature "AWDFLASH"
  1710.  08h    WORD    offset in F000h of FAR function: Get ???
  1711.         Return: BL = ??? (00h)
  1712.  0Ah    WORD    offset in F000h of FAR function: ???
  1713.  0Ch    WORD    offset in F000h of FAR function: ???
  1714.  0Eh    WORD    offset in F000h of FAR function: ???
  1715.  10h    WORD    offset in F000h of FAR function: ???
  1716.  12h    WORD    offset in F000h of FAR function: Disable Shadowing
  1717.  14h    WORD    offset in F000h of FAR function: Enable Shadowing
  1718.  16h    WORD    offset in F000h of FAR function: Get ???
  1719.         Return: DS:SI -> ??? (30 bytes?)
  1720.  18h    WORD    offset in F000h of FAR function: Set ???
  1721.         DS:SI -> ??? (appears to be same as previous function)
  1722. Note:    the AWDFLASH utility copies the ROM from F000h and uses the copy
  1723.       instead of the original F000h:xxxxh addresses
  1724. --------B-MF000xxxx--------------------------
  1725. MEM F000h:xxxxh - Asustek Flash Hook
  1726.  
  1727. Format of Asustek Flash interface:
  1728. Offset    Size    Description    (Table M066)
  1729.  00h 10 BYTEs    signature "ASUS_FLASH"
  1730.  0Ah  6 BYTEs    blanks (padding)
  1731.  10h    WORD    interface version??? (current PFLASH.EXE requires 0101h)
  1732.  12h    DWORD    -> position-independent code to enable shadowing
  1733.  16h    WORD    size of code pointed at by previous field (<= 0400h)
  1734.  18h    DWORD    -> position-independent code to disable shadowing
  1735.  1Ch    WORD    size of code pointed at by previous field (<= 0400h)
  1736. --------p-Mxxxxxxx0--------------------------
  1737. MEM xxxxh:xxx0h - Advanced Configuration and Power Interface Spec (ACPI) v0.9
  1738. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1739.     kilobyte of conventional memory, or from E000h:0000h to F000h:FFE0h
  1740. Note:    scan paragraph boundaries for the signature string "RSD PTR ", followed
  1741.       by a valid Root System Description Pointer structure (see #M079)
  1742. SeeAlso: INT 15/AX=E820h
  1743.  
  1744. Format of ACPI Root System Description Pointer structure:
  1745. Offset    Size    Description    (Table M079)
  1746.  00h  8 BYTEs    signature "RSD PTR "
  1747.  08h    BYTE    checksum (entire structure, including this byte, must
  1748.           add up to zero)
  1749.  09h  6 BYTEs    OEM identifier
  1750.  0Fh    BYTE    reserved
  1751.  10h    DWORD    physical address of Root System Description Table (see #M080)
  1752. SeeAlso: #M080
  1753.  
  1754. Format of ACPI System Description Table header:
  1755. Offset    Size    Description    (Table M081)
  1756.  00h  4 BYTEs    signature
  1757.  04h    DWORD    length of table in bytes, including this header
  1758.  08h    BYTE    minor version of specification corresponding to signature
  1759.  09h    BYTE    major version of specification corresponding to signature
  1760.  0Ah  6 BYTEs    OEM identification
  1761.  10h  8 BYTEs    OEM table identifier
  1762.  18h  4 BYTEs    OEM revision number
  1763. SeeAlso: #M079,#M080,#M082,#M083,#M084,#M085,#M086
  1764.  
  1765. Format of ACPI Root System Description Table:
  1766. Offset    Size    Description    (Table M080)
  1767.  00h 28 BYTEs    System Description Table Header (see #M081)
  1768.         signature "RSDT"
  1769.  1Ch  N DWORDs    physical addresses of other description tables
  1770.         (see #M082,#M083,#M084,#M085,#M086,#M087)
  1771. Note:    the number of table pointers is implied by the table length
  1772.      field in the header (at offset 04h)
  1773. SeeAlso: #M079
  1774.  
  1775. Format of ACPI Fixed ACPI Description Table:
  1776. Offset    Size    Description    (Table M083)
  1777.  00h 28 BYTEs    System Description Table Header (see #M081)
  1778.         signature "FACP"
  1779.  1Ch    DWORD    physical address of the Firmware ACPI Control Structure
  1780.           (see #M085)
  1781.  20h    DWORD    physical address of the Differentiated System Description Table
  1782.           (see #M082)
  1783.  24h    BYTE    interrupt mode
  1784.         00h dual PIC (industry-standard AT-type)
  1785.         01h multiple APIC (see #M084)
  1786.  25h    BYTE    reserved
  1787.  26h    WORD    system vector of SCI interrupt
  1788.  28h    DWORD    I/O port address of SMI command port
  1789.  2Ch    BYTE    value to write to SMI comamnd port to disable SMI ownership
  1790.           of ACPI hardware registers
  1791.  2Dh    BYTE    value to write to SMI comamnd port to re-enable SMI ownership
  1792.           of ACPI hardware registers
  1793.  2Eh  2 BYTEs    reserved
  1794.  30h    DWORD    I/O port address of Power Management 1a Event Register Block
  1795.  34h    DWORD    I/O port address of Power Management 1b Event Register Block
  1796.         (optional, 00000000h if not supported)
  1797.  38h    DWORD    I/O port address of Power Management 1a Control Register Block
  1798.  3Ch    DWORD    I/O port address of Power Management 1b Control Register Block
  1799.         (optional, 00000000h if not supported)
  1800.  40h    DWORD    I/O port address of Power Management 2 Control Register Block
  1801.         (optional, 00000000h if not supported)
  1802.  44h    DWORD    I/O port address of Power Management Timer Control Reg. Block
  1803.  48h    DWORD    I/O port address of Generic Purpose Event 0 Register Block
  1804.         (optional, 00000000h if not supported)
  1805.  4Ch    DWORD    I/O port address of Generic Purpose Event 1 Register Block
  1806.         (optional, 00000000h if not supported)
  1807.  50h    BYTE    size of Power Management 1a/1b Event Register Block (>= 4)
  1808.  51h    BYTE    size of Power Management 1a/1b Control Register Block (>= 1)
  1809.  52h    BYTE    size of Power Management 2 Control Register Block (>= 1)
  1810.  53h    BYTE    size of Power Management Timer Control Register Block (>= 1)
  1811.  54h    BYTE    size of Generic Purpose Event 0 Register Block (multiple of 2)
  1812.  55h    BYTE    size of Generic Purpose Event 1 Register Block (multiple of 2)
  1813.  56h    BYTE    offset within General Purpose Event model for GPE1-based events
  1814.  57h    BYTE    reserved
  1815.  58h    WORD    worst-case hardware latency (microseconds) for entering/leaving
  1816.           state C2; >100 if C2 not supported
  1817.  5Ah    WORD    worst-case hardware latency (microseconds) for entering/leaving
  1818.           state C3; >100 if C3 not supported
  1819.  5Ch    WORD    size of contiguous cacheable memory which must be read to flush
  1820.           all dirty lines from a processor's memory cache; use if
  1821.           fixed feature flag WBINVD (see #M088) is clear
  1822.         0000h if flushing not supported
  1823.  5Eh    WORD    memory stride size (in bytes) to flush processor's memory cache
  1824.  60h    BYTE    index of processor's duty cycle setting within
  1825.           processor's P_CNT register
  1826.  61h    BYTE    size of processor's duty cycle setting in bits
  1827.  62h    BYTE    index within RTC CMOS RAM of the day-of-month alarm value
  1828.         00h = not supported
  1829.  63h    BYTE    index within RTC CMOS RAM of the month-of-year alarm value
  1830.         00h = not supported
  1831.  64h    BYTE    index within RTC CMOS RAM of the century alarm value
  1832.         00h = not supported
  1833.  65h    BYTE    reserved
  1834.  66h    DWORD    fixed feature flags (see #M088)
  1835. SeeAlso: #M079
  1836.  
  1837. Bitfields for ACPI Fixed Feature Flags:
  1838. Bit(s)    Description    (Table M088)
  1839.  0    WBINVD instruction is currectly supported by processor
  1840.  1    WBINVD instruction flushes all caches and maintains coherency, but
  1841.       does not guarantee invalidation of all caches
  1842.  2    all processors support C1 sleep state
  1843.  3    C2 sleep state is configured to work on multiprocessor system
  1844.  4    power button is handled as a generic feature
  1845.  5    RTC wake-up state is not supported in fixed register space
  1846.  6    TMR_VAL size
  1847.     =0 24 bits
  1848.     =1 32 bits
  1849.  7-31    reserved
  1850. SeeAlso: #M083
  1851.  
  1852. Format of ACPI Differentiated System Description Table:
  1853. Offset    Size    Description    (Table M082)
  1854.  00h 28 BYTEs    System Description Table Header (see #M081)
  1855.         signature "DSDT"
  1856.  1Ch    !!! details to follow
  1857. SeeAlso: #M079
  1858.  
  1859. Format of ACPI Multiple APIC Description Table:
  1860. Offset    Size    Description    (Table M084)
  1861.  00h 28 BYTEs    System Description Table Header (see #M081)
  1862.         signature "APIC"
  1863.  1Ch    !!! details to follow
  1864. SeeAlso: #M079
  1865.  
  1866. Format of ACPI Firmware ACPI Control Structure:
  1867. Offset    Size    Description    (Table M085)
  1868.  00h  4 BYTEs    signature "FACS"
  1869.  04h    DWORD    length of entire structure in bytes (>= 40h)
  1870.  08h    DWORD    value of system's hardware signature at last boot
  1871.  0Ch    DWORD    real-mode ACPI OS waking vector
  1872.         if nonzero, control is transferred to this address on next BIOS
  1873.           POST
  1874.  10h    DWORD    global lock (see #M089)
  1875.  14h 44 BYTEs    reserved (0)
  1876. Note:    this structure is located on a 64-byte boundary anywhere in the
  1877.       first 4GB of memory
  1878. SeeAlso: #M079
  1879.  
  1880. Bitfields for ACPI Embedded Controller Arbitration Structure:
  1881. Bit(s)    Description    (Table M089)
  1882.  0    request for Global Lock ownership is pending
  1883.  1    Global Lock is currently owned
  1884.  2-31    reserved
  1885. SeeAlso: #M085
  1886.  
  1887. Format of ACPI Persistent System Description Table:
  1888. Offset    Size    Description    (Table M086)
  1889.  00h 28 BYTEs    System Description Table Header (see #M081)
  1890.         signature "PSDT"
  1891.  1Ch    !!! details to follow (acpi.pdf p.92)
  1892. SeeAlso: #M079
  1893.  
  1894. Format of ACPI Secondary System Description Table:
  1895. Offset    Size    Description    (Table M087)
  1896.  00h 28 BYTEs    System Description Table Header (see #M081)
  1897.         signature "SSDT"
  1898.  1Ch    !!! details to follow
  1899. SeeAlso: #M079
  1900. ----------Mxxxxxxx0--------------------------
  1901. MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
  1902. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1903.     kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
  1904. Note:    scan paragraph boundaries for the signature string "_MP_", followed
  1905.       by a valid floating pointer structure (see #M067)
  1906. SeeAlso: MEM FEE00000h
  1907.  
  1908. Format of Multiprocessor Specification Floating Pointer structure:
  1909. Offset    Size    Description    (Table M067)
  1910.  00h  4 BYTEs    signature "_MP_"
  1911.  04h    DWORD    physical address of MP configuration table (see #M068)
  1912.         00000000h if no configuration table
  1913.  08h    BYTE    length of this structure in paragraphs (currently 01h)
  1914.  09h    BYTE    revision of MP specification supported
  1915.         01h = v1.1
  1916.         04h = v1.4
  1917.  0Ah    BYTE    checksum (8-bit sum of entire structure, including this
  1918.           byte, must equal 00h)
  1919.  0Bh    BYTE    MP feature byte 1: system configuration type
  1920.         00h: MP configuration table present
  1921.         nonzero: default configuration implemented by system
  1922.  0Ch    BYTE    MP feature byte 2
  1923.         bit 7: IMCR present
  1924.         bits 6-0: reserved (0)
  1925.  0Dh  3    BYTEs    MP feature bytes 3-5 (reserved, must be 00h)
  1926.  
  1927. Format of Multiprocessor Specification configuration table header:
  1928. Offset    Size    Description    (Table M068)
  1929.  00h  4 BYTEs    signature "PCMP"
  1930.  04h    WORD    length of base configuration table in bytes, including
  1931.           this header
  1932.  06h    BYTE    revision of MP specification supported
  1933.         01h = v1.1
  1934.         04h = v1.4
  1935.  07h    BYTE    checksum of entire base configuration table
  1936.  08h  8 BYTEs    OEM identifier
  1937.  10h 12 BYTEs    product ID
  1938.  1Ch    DWORD    physical address to OEM-defined configuration table
  1939.         00000000h if not present
  1940.  20h    WORD    size of base OEM table in bytes (0000h if not present)
  1941.  22h    WORD    number of entries in variable portion of base table
  1942.  24h    DWORD    address of local APIC (see also MEM FEE0h:0020h)
  1943.  28h    WORD    length of extended entries following end of base table
  1944.           (in bytes)
  1945.  2Ah    BYTE    checksum for extended table entries (includes only
  1946.           extended entries following base table)
  1947.  2Ch    var    configuration table entries (see #M069)
  1948. SeeAlso: #M067
  1949.  
  1950. Format of Multiprocessor Specification configuration table entries:
  1951. Offset    Size    Description    (Table M069)
  1952.  00h    BYTE    entry type code
  1953.         00h processor
  1954.         01h bus
  1955.         02h I/O APIC
  1956.         03h I/IO interrupt assignment
  1957.         04h local interrupt assignment
  1958.         80h system address space mapping
  1959.         81h bus hierarchy descriptor
  1960.         82h compatibility bus address space modifier
  1961. ---processor---
  1962.  01h    BYTE    local APIC identifier
  1963.  02h    BYTE    local APIC version
  1964.  03h    BYTE    CPU flags
  1965.         bit 0: processor usable
  1966.         bit 1: bootstrap processor
  1967.  04h    WORD    CPU type
  1968.         bits 11-8: CPU family
  1969.         bits 7-4: CPU model
  1970.         bits 3-0: stepping
  1971.         (bits 11-0 all set indicate non-Intel-compatible CPU)
  1972.  06h  2 BYTEs    unused
  1973.  08h    DWORD    feature flags (as returned by Pentium CPUID instruction)
  1974.  0Ch  8 BYTEs    reserved
  1975. ---bus---
  1976.  01h    BYTE    bus ID (assigned sequentially from 00h by BIOS)
  1977.  02h  6 BYTEs    bus type (blank-padded ASCII string) (see #M070)
  1978. ---I/O APIC---
  1979.  01h    BYTE    APIC identifier
  1980.  02h    BYTE    APIC version
  1981.  03h    BYTE    I/O APIC flags
  1982.         bit 0: enabled
  1983.         bits 7-1: reserved
  1984.  04h    DWORD    base address for APIC
  1985. ---I/O,local interrupt assignment---
  1986.  01h    BYTE    interrupt type
  1987.         00h vectored interrupt (from APIC)
  1988.         01h NMI
  1989.         02h system management interrupt
  1990.         03h vectored interrupt (from external PIC)
  1991.  02h    BYTE    APIC control (see #M071)
  1992.  03h    BYTE    unused
  1993.  04h    BYTE    source bus identifier
  1994.  05h    BYTE    source bus IRQ
  1995.  06h    BYTE    destination I/O APIC identifier
  1996.  07h    BYTE    destination I/O APIC interrupt pin number
  1997. ---system address space mapping---
  1998.  01h    BYTE    entry length (14h)
  1999.  02h    BYTE    bus ID
  2000.  03h    BYTE    address type (00h I/O, 01h memory, 02h prefetch)
  2001.  04h    QWORD    starting address of region visible to bus
  2002.  0Ch    QWORD    length of region visible to bus
  2003. ---bus hierarchy descriptor---
  2004.  01h    BYTE    entry length (08h)
  2005.  02h    BYTE    bus ID
  2006.  03h    BYTE    bus information
  2007.         bit 0: subtractive decoding
  2008.  04h    BYTE    ID of parent bus
  2009.  05h  3 BYTEs    reserved
  2010. ---compatibility bus address space modifier---
  2011.  01h    BYTE    entry length (08h)
  2012.  02h    BYTE    bus ID
  2013.  03h    BYTE    address modifier
  2014.         bit 0: remove address ranges in predefined range list from
  2015.               bus's address space
  2016.  04h    DWORD    number indicating predefined address space range to be removed
  2017.         00h ISA-compatible I/O range (x100h-x3FFh and aliases)
  2018.         01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
  2019. SeeAlso: #M068
  2020.  
  2021. (Table M070)
  2022. Values for Multiprocessor Specification bus name:
  2023.  "CBUS"        Corollary CBus
  2024.  "CBUSII"    Corollary CBus II
  2025.  "EISA"
  2026.  "FUTURE"    IEEE FutureBus
  2027.  "INTERN"    internal bus
  2028.  "ISA"
  2029.  "MBI"        Multibus I
  2030.  "MBII"        Multibus II
  2031.  "MCA"        Microchannel
  2032.  "MPI"
  2033.  "MPSA"
  2034.  "NUBUS"    Apple Macintosh NuBus
  2035.  "PCI"
  2036.  "PCMCIA"
  2037.  "TC"        DEC TurboChannel
  2038.  "VL"        VESA Local Bus
  2039.  "VME"        VMEbus
  2040.  "XPRESS"    Express System Bus
  2041. SeeAlso: #M069
  2042.  
  2043. Bitfields for Multiprocessor Specification APIC control:
  2044. Bit(s)    Description    (Table M071)
  2045.  1-0    input signal polarity
  2046.     00 conforms to bus specification
  2047.     01 active high
  2048.     10 reserved
  2049.     11 active low
  2050.  3-2    trigger mode
  2051.     00 conforms to bus specification
  2052.     01 edge-triggered
  2053.     10 reserved
  2054.     11 level-triggered
  2055. SeeAlso: #M069
  2056. ----------mFEC00000--------------------------
  2057. MEM FEC00000h - Pentium - 82379AB I/O APIC - I/O REGISTER SELECT
  2058. Size:    DWORD
  2059. Desc:    bits 7-0 of the I/O Register Select memory location specify which
  2060.       of the APIC's registers appears in the I/O Window at FExxx010h
  2061. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  2062.       mapped on 4K boundaries between FEC00000h and FEDFC000h; the Intel
  2063.       82379AB I/O APIC can be memory-mapped on any 1K boundary within
  2064.       FEC0000h-FEC0F800h
  2065. SeeAlso: MEM FEC00010h,MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
  2066. ----------mFEC00010--------------------------
  2067. MEM FEC00010h - Pentium - 82379AB I/O APIC - I/O WINDOW
  2068. Size:    DWORD
  2069. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  2070.       mapped on 4K boundaries between FEC00000h and FEDFC000h
  2071. SeeAlso: MEM FEC00010h
  2072.  
  2073. (Table M078)
  2074. Values for Intel 82379AB I/O APIC registers:
  2075.  00h    APIC ID
  2076.  01h    APIC version (read-only)
  2077.  02h    APIC arbitration ID (read-only)
  2078.  10h-11h    redirection table entry 0 (10h=low DWORD, 11h=high DWORD)
  2079.  12h-13h    redirection table entry 1
  2080.  ...
  2081.  2Eh-2Fh    redirection table entry 15
  2082. ----------mFEE00000--------------------------
  2083. MEM FEE00000h - Pentium - LOCAL APIC
  2084. Size:    4096 BYTEs
  2085. Notes:    the Advanced Programmable Interrupt Controller built into
  2086.       multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
  2087.       faster Pentiums) maps its registers into the top of the physical
  2088.       address space on data reads and writes, but not on code reads;
  2089.       data accesses to the APIC registers do not cause external bus
  2090.       cycles
  2091.     the APIC's registers are only visible when the APIC is enabled (which
  2092.       occurs at CPU reset when external data lines contain proper signals)
  2093.     the PentiumPro (P6) permits the address at which the local APIC
  2094.       appears to be changed with Model-Specific Register 0000001Bh
  2095. SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
  2096. SeeAlso: MSR 0000001Bh
  2097. ----------mFEE00020--------------------------
  2098. MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
  2099. SeeAlso: MEM FEE00030h
  2100. ----------mFEE00030--------------------------
  2101. MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
  2102. Note:    read-only
  2103. SeeAlso: MEM FEE00020h
  2104. ----------mFEE00040--------------------------
  2105. MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
  2106. SeeAlso: MEM FEE00000h
  2107. ----------mFEE00050--------------------------
  2108. MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
  2109. SeeAlso: MEM FEE00000h
  2110. ----------mFEE00060--------------------------
  2111. MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
  2112. SeeAlso: MEM FEE00000h
  2113. ----------mFEE00070--------------------------
  2114. MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
  2115. SeeAlso: MEM FEE00000h
  2116. ----------mFEE00080--------------------------
  2117. MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
  2118. ----------mFEE00090--------------------------
  2119. MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
  2120. Note:    read-only
  2121. ----------mFEE000A0--------------------------
  2122. MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
  2123. Note:    write-only
  2124. ----------mFEE000A0--------------------------
  2125. MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
  2126. Note:    read-only
  2127. SeeAlso: MEM FEE00000h
  2128. ----------mFEE000B0--------------------------
  2129. MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
  2130. SeeAlso: MEM FEE00000h
  2131. ----------mFEE000C0--------------------------
  2132. MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
  2133. Note:    read-only
  2134. ----------mFEE000D0--------------------------
  2135. MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
  2136. SeeAlso: MEM FEE00000h
  2137. ----------mFEE000E0--------------------------
  2138. MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
  2139.     bits 27-0: read-only
  2140.     bits 31-28: read-write
  2141. ----------mFEE000F0--------------------------
  2142. MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
  2143.     bits 3-0, read-only
  2144.     bits 9-4, read/write
  2145. ----------mFEE00100--------------------------
  2146. MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
  2147. Size:    128 BYTEs
  2148. Note:    read-only
  2149. SeeAlso: MEM FEE00200h
  2150. ----------mFEE00180--------------------------
  2151. MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
  2152. Size:    128 BYTEs
  2153. Note:    read-only
  2154. SeeAlso: MEM FEE00000h
  2155. ----------mFEE00200--------------------------
  2156. MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
  2157. Size:    128 BYTEs
  2158. Note:    read-only
  2159. SeeAlso: MEM FEE00100h
  2160. ----------mFEE00280--------------------------
  2161. MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
  2162. Size:    4 BYTEs
  2163. Note:    read-only
  2164.  
  2165. Bitfields for Pentium APIC error status register:
  2166. Bit(s)    Description    (Table M072)
  2167.  0    send checksum error
  2168.  1    receive checksum error
  2169.  2    send accept error
  2170.  3    receive accept error
  2171.  4    reserved
  2172.  5    send illegal vector
  2173.  6    receive illegal vector
  2174.  7    illegal register address
  2175.  31-8    reserved
  2176. ----------mFEE00300--------------------------
  2177. MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2178. Size:    4 BYTEs
  2179. Note:    this is the low half of the 64-bit ICR
  2180. SeeAlso: MEM FEE00310h,#M073
  2181.  
  2182. Bitfields for Pentium APIC Interrupt Command Register:
  2183. Bit(s)    Description    (Table M073)
  2184.  7-0    interrupt vector number
  2185.  10-8    delivery mode (see #M074)
  2186.  11    destination mode
  2187.  12    delivery status (read-only)
  2188.     1 = transfer pending
  2189.  13    reserved
  2190.  14    level (0 = INIT Level Deassert message, 1 = anything else)
  2191.  15    trigger mode (1)
  2192.  17-16    remote read status (read-only)
  2193.  19-18    destination shorthand
  2194.     00 as specified by destination field
  2195.     01 self
  2196.     10 all including self
  2197.     11 all except self
  2198.  55-20    reserved
  2199.  63-56    destination for interrupt request or message
  2200. SeeAlso: #M076
  2201.  
  2202. (Table M074)
  2203. Values for Pentium APIC delivery mode:
  2204.  000b    fixed
  2205.  001b    lowest-priority
  2206.  010b    SMI
  2207.  011b    remote read
  2208.  100b    NMI
  2209.  101b    INIT
  2210.  110b    start up
  2211.  111b    reserved
  2212. SeeAlso: #M073
  2213. ----------mFEE00310--------------------------
  2214. MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2215. Size:    4 BYTEs
  2216. Note:    this is the high half of the 64-bit ICR
  2217. SeeAlso: MEM FEE00300h,#M073
  2218. ----------mFEE00320--------------------------
  2219. MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
  2220. Size:    4 BYTEs
  2221. SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
  2222.  
  2223. Bitfields for Pentium APIC timer local vector entry:
  2224. Bit(s)    Description    (Table M075)
  2225.  7-0    interrupt vector number
  2226.  11-8    reserved
  2227.  12    delivery status (read-only)
  2228.     1 = interrupt being sent to APIC
  2229.  15-13    reserved
  2230.  16    interrupt delivery disabled
  2231.  17    timer mode (0=one-shot, 1=periodic)
  2232.  31-18    reserved
  2233. SeeAlso: #M077,#M076
  2234. ----------mFEE00330--------------------------
  2235. MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
  2236. SeeAlso: MEM FEE00000h
  2237. ----------mFEE00340--------------------------
  2238. MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
  2239. SeeAlso: MEM FEE00000h
  2240. ----------mFEE00350--------------------------
  2241. MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
  2242. Size:    4 BYTEs
  2243. SeeAlso: MEM FEE00320h,MEM FEE00360h
  2244.  
  2245. Bitfields for Pentium APIC LINTx local vector entry:
  2246. Bit(s)    Description    (Table M076)
  2247.  7-0    interrupt vector number
  2248.  10-8    delivery mode
  2249.     000 fixed
  2250.     100 NMI
  2251.     111 external interrupt (8259A-compatibility)
  2252.  11    reserved
  2253.  12    delivery status (read-only)
  2254.     1 = interrupt being sent to APIC
  2255.  13    interrupt pin is active low
  2256.  14    remote IRR
  2257.  15    trigger mode
  2258.     0 edge-sensitive
  2259.     1 level-sensitive
  2260.  16    interrupt delivery disabled
  2261.  31-17    reserved
  2262. SeeAlso: #M075
  2263. ----------mFEE00360--------------------------
  2264. MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
  2265. Size:    4 BYTEs
  2266. SeeAlso: MEM FEE00350h,MEM FEE00370h,#M076
  2267. ----------mFEE00370--------------------------
  2268. MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
  2269. Size:    4 BYTEs
  2270. SeeAlso: MEM FEE00320h,MEM FEE00370h
  2271. ----------mFEE00380--------------------------
  2272. MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
  2273. Desc:    timer start value, which together with the Divide Configuration
  2274.       Register also determines its period when periodic mode has been
  2275.       selected
  2276. SeeAlso: MEM FEE00000h,MEM FEE00390h
  2277. ----------mFEE00390--------------------------
  2278. MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
  2279. Desc:    current timer count; when this value reaches zero, an interrupt is
  2280.       generated
  2281. Note:    read-only
  2282. SeeAlso: MEM FEE00380h
  2283. ----------mFEE003A0--------------------------
  2284. MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
  2285. SeeAlso: MEM FEE00000h
  2286. ----------mFEE003B0--------------------------
  2287. MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
  2288. SeeAlso: MEM FEE00000h
  2289. ----------mFEE003C0--------------------------
  2290. MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
  2291. SeeAlso: MEM FEE00000h
  2292. ----------mFEE003D0--------------------------
  2293. MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
  2294. SeeAlso: MEM FEE00000h
  2295. ----------mFEE003E0--------------------------
  2296. MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
  2297. SeeAlso: MEM FEE00000h,MEM FEE00320h
  2298.  
  2299. Bitfields for Pentium APIC timer divide configuration:
  2300. Bit(s)    Description    (Table M077)
  2301.  3,1,0    divisor
  2302.     000 divide by 2
  2303.     001 by 4
  2304.     010 by 8
  2305.     ...
  2306.     110 by 128
  2307.     111 by 1
  2308.  2    zero (0)
  2309.  31-4    reserved
  2310. Note:    the divisor determines the timer's time base relative to the processor
  2311.       clock
  2312. SeeAlso: #M075
  2313. ----------MFFFF0010--------------------------
  2314. MEM FFFFh:0010h - HIGH MEMORY AREA
  2315. Size:    65520 BYTEs
  2316. --------!---CONTRIBUTORS---------------------
  2317. Robin Walker    <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  2318. Wim Osterholt    <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  2319.     EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  2320.              'ACME FX4-K7tb2 v:2.5 11/5/91'
  2321. Stanley Appel    <appel@stack.urc.tue.nl>
  2322. Matthias Paul    <mpaul@ibh.rwth-aachen.de>
  2323. --------!---Admin----------------------------
  2324. Highest Table Number = M089
  2325. --------!---FILELIST-------------------------
  2326. Please redistribute all of the files comprising the interrupt list (listed at
  2327. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  2328. quartet of archives named INTER53A through INTER53D (preferably the original
  2329. authenticated PKZIP archives), and the utility and hypertext programs in
  2330. three additional archives called INTER53E.ZIP to INTER53G.ZIP
  2331.  
  2332. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  2333. --------!---CONTACT_INFO---------------------
  2334. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  2335. UUCP: {uunet,harvard}!pobox.com!ralf
  2336. FIDO: Ralf Brown 1:129/26.1
  2337.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  2338.     unless you address it to me)
  2339. CIS:  >INTERNET:ralf@pobox.com
  2340.