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

  1.           CMOS Memory Map v1.25 June, 1995
  2. [Last Change: 8/13/95]
  3.  
  4. Compiled from multiple sources by Padgett Peterson
  5. Corrections/additions/comments to: padgett@tccslr.dnet.mmc.com
  6.  
  7. No guarantees of any kind.
  8.  
  9. Copyrights/Trademarks belong to whoever they may belong to.
  10.  
  11. Found: Algorithm used by IBM in calculating CRC checksums for PS/2
  12.        (see bytes 32h-33h). Complex (recursive part is 12 lines of
  13.        assembly) and not yet validated for every model.
  14.  
  15.  
  16.             Background
  17.  
  18. The CMOS (complementary metal oxide semiconductor) memory is actually 
  19. a 64 or 128 byte battery-backed RAM memory module that is a part of the 
  20. system clock chip. Some IBM PS/2 models have the capability for a
  21. 2k (2048 byte) CMOS ROM Extension.
  22.  
  23. First used with clock-calender cards for the IBM PC-XT, when the PC/AT
  24. (Advanced Technology) was introduced in 1985, the Motorola MC146818 
  25. became a part of the motherboard. Since the clock only uses fourteen of 
  26. the RAM bytes, the rest are available for storing system configuration data.
  27.  
  28. Interestingly, the original IBM-PC/AT (Advanced Technology) standard for 
  29. the region 10h-3Fh is nearly universal with one notable exception: The 
  30. IBM PS/2 systems deviate considerably (Note: AMSTRAD 8086 machines were 
  31. among the first to actively use the CMOS memory available and since they 
  32. *predate* the AT, do not follow the AT standard).
  33.  
  34. This is just another example of how IBM created a standard, lost control 
  35. of it, tried to replace it, failed and lost market share in the process. 
  36.  
  37. Originally, the IBM PC/AT only made use of a small portion of CMOS memory
  38. and was defined in the IBM PC/AT Technical Reference Manual, specifically 
  39. bytes 10h, 12h, 14h-18h, 2Eh-33h. The balance was left undefined but was 
  40. quickly appropriated by various BIOS manufacturers for such user-selectable 
  41. options such as wait states, clock speeds, initial boot drive selection, and 
  42. password storage.
  43.  
  44. Later, as CMOS memory requirements grew, newer clock chips with 128
  45. bytes of RAM came into use. However the fact remains that once the AT 
  46. standard was established, only IBM has tried to change the definitions 
  47. of that first description.
  48.  
  49.             Accessing the CMOS
  50.  
  51. The CMOS memory exists outside of the normal address space and cannot
  52. contain directly executable code. It is reachable through IN and OUT
  53. commands at port number 70h (112d) and 71h (113d). To read a CMOS byte,
  54. an OUT to port 70h is executed with the address of the byte to be read and
  55. an IN from port 71h will then retrieve the requested information. The 
  56. following BASIC fragment will read 128 CMOS bytes and print them to the 
  57. screen in 8 rows of 16 values.
  58.  
  59. CMOS RAM space has an upper limit of 128 bytes because of the structure
  60. of port 70: only bits 0-6 are used for addressing, bit 7 is used to 
  61. enable (0) or disable (1) Non-Maskable Interrupts (NMI) and explains why
  62. IBM uses 80h OR <address> to read/write data & follows with  a "throw-away"
  63. call.
  64.  
  65. Note that if the CMOS only has 64 bytes available, addressing will 
  66. generally wrap and addresses from 40h-7Fh will mirror 00h-3Fh. Output will 
  67. be hexadecimal.
  68.  
  69. 10 CLS
  70. 20 FOR i = 0 TO &H7F 
  71. 30 OUT &H70, i
  72. 40 PRINT USING "\   \"; HEX$(INP(&H71));
  73. 50 NEXT i
  74. 60 PRINT " " 
  75.  
  76. Note: where not otherwise noted, all data points are expressed as BYTES
  77.       these are eight bit values and are read from MSB to LSB e.g.
  78.       0000 0000        0101 1010 binary would be written as 5Ah
  79.       7654 3210        where only some bits are used this is represented with
  80.             Xs e.g bits 5-3 would be shown as 00xx x000
  81.  
  82. Note: the entries for AMI WinBIOS also apply to AMIBIOS with core dates of 
  83.     12/15/95 or later
  84.  
  85.  
  86.  
  87.         Organization of CMOS Memory - Clock
  88.  
  89. 00h-0Eh is defined by the clock hardware and all must follow it. Other 
  90. manufacturers generally follow the same format as specified for the
  91. region 10h - 2Fh. Some also follow the IBM format for 30h-33h but not all 
  92. (Zenith in particular is different).
  93.  
  94. The first fourteen bytes are dedicated to the MC146818 chip clock functions 
  95. and consist of ten read/write data registers and four status registers, two 
  96. of which are read/write and two of which are read only.
  97.  
  98. The format of the ten clock data registers (bytes 00h-09h) is:
  99.  
  100.  00h Seconds       (BCD 00-59, Hex 00-3B) Note: Bit 7 is read only    
  101.  01h Second Alarm  (BCD 00-59, Hex 00-3B; "don't care" if C0-FF)
  102.  02h Minutes       (BCD 00-59, Hex 00-3B)
  103.  03h Minute Alarm  (BCD 00-59, Hex 00-3B; "don't care" if C0-FF))    
  104.  04h Hours       (BCD 00-23, Hex 00-17 if 24 hr mode)
  105.            (BCD 01-12, Hex 01-0C if 12 hr am)
  106.            (BCD 81-92. Hex 81-8C if 12 hr pm)          
  107.  05h Hour Alarm       (same as hours; "don't care" if C0-FF))     
  108.  06h Day of Week   (01-07 Sunday=1)    
  109.  07h Date of Month (BCD 01-31, Hex 01-1F)    
  110.  08h Month       (BCD 01-12, Hex 01-0C)      
  111.  09h Year       (BCD 00-99, Hex 00-63)      
  112.  
  113. BCD/Hex selection depends on Bit 2 of register B (0Bh)
  114. 12/24 Hr selection depends on Bit 1 of register B (0Bh)
  115. Alarm will trigger when contents of all three Alarm byte registers
  116. match their companions.
  117.  
  118. The following is the on-chip status register information. 
  119.  
  120.  0Ah Status Register A (read/write) (usu 26h)
  121.   Bit 7        - (1) time update cycle in progress, data ouputs undefined 
  122.           (bit 7 is read only)
  123.   Bit 6,5,4 - 22 stage divider. 010b - 32.768 Khz time base (default)
  124.   Bit 3-0   - Rate selection bits for interrupt.
  125.           0000b - none
  126.           0011b - 122 microseconds (minimum)
  127.           1111b - 500 milliseconds    
  128.           0110b - 976.562 microseconds (default)
  129.  
  130.  0Bh Status Register B (read/write) 
  131.   Bit 7 - 1 enables cycle update, 0 disables
  132.   Bit 6 - 1 enables periodic interrupt
  133.   Bit 5 - 1 enables alarm interrupt
  134.   Bit 4 - 1 enables update-ended interrupt
  135.   Bit 3 - 1 enables square wave output
  136.   Bit 2 - Data Mode - 0: BCD, 1: Binary
  137.   Bit 1 - 24/12 hour selection - 1 enables 24 hour mode
  138.   Bit 0 - Daylight Savings Enable - 1 enables
  139.  
  140.  0Ch Status Register C (Read only)
  141.   Bit 7 - Interrupt request flag - 1 when any or all of bits 6-4 are
  142.       1 and appropriate enables (Register B) are set to 1. Generates
  143.       IRQ 8 when triggered.
  144.   Bit 6 - Periodic Interrupt flag
  145.   Bit 5 - Alarm Interrupt flag 
  146.   Bit 4 - Update-Ended Interrupt Flag
  147.   Bit 3-0 ???
  148.  
  149.  0Dh Status Register D (read only)
  150.   Bit 7 - Valid RAM - 1 indicates batery power good, 0 if dead or
  151.       disconnected.
  152.   Bit 6-0 ???
  153.  
  154. ---------------------------------------------
  155.  
  156.         Organization of CMOS Memory - non-Clock
  157.  
  158. The last two bytes in the first hexadecimal decade (hexade ?) were not 
  159. specified in the PC/AT but may have the following use on some systems:
  160.  
  161.  0Eh (PS/2) Diagnostic Status Byte 
  162.      Bit 7 - When set (1) indicates clock has lost power
  163.      Bit 6 - (1) indicates incorrect checksum
  164.      Bit 5 - (1) indicates that equipment configuration is incorrect
  165.          power-on check requires that atleast one floppy be installed
  166.      Bit 4 - (1) indicates error in memory size
  167.      Bit 3 - (1) indicates that controller or disk drive failed initialization
  168.      Bit 2 - (1) indicates that time is invalid
  169.      Bit 1 - (1) indicates installed adaptors do not match configuration
  170.      Bit 0 - (1) indicates a time-out while reading adaptor ID
  171.  
  172.  0Eh (AMSTRAD) 6  BYTEs time and date machine last used
  173.  
  174. ---------------------------------------------
  175.  0Fh Reset Code (IBM PS/2 "Shutdown Status Byte")
  176.      00h-03h    perform power-on reset
  177.        00h      software reset or unexpected reset
  178.        01h      reset after memory size check in real/virtual mode
  179.           (or: chip set initialization for real mode reentry)
  180.        02h      reset after successful memory test in real/virtual mode
  181.        03h      reset after failed memory test in real/virtual mode
  182.      04h    INT 19h reboot
  183.      05h    flush keyboard (issue EOI) and jump via 40h:0067h
  184.      06h    reset (after successful test in virtual mode)
  185.         (or: jump via 40h:0067h without EOI)
  186.      07h    reset (after failed test in virtual mode)
  187.      08h    used by POST during protected-mode RAM test (return to POST)
  188.      09h    used for INT 15/87h (block move) support
  189.      0Ah    resume execution by jump via 40h:0067h
  190.      0Bh    resume execution via IRET via 40h:0067h
  191.      0Bh    resume execution via RETF via 40h:0067h
  192.      0Dh-FFh    perform power-on reset
  193.  
  194. ---------------------------------------------
  195.  
  196. The second group of values extends from address 10h to 2Dh. The word at
  197. 2Eh-2Fh is a byte-wise summation of the values in these bytes. Most BIOSes
  198. will generate a CMOS Checksum error if this value is invalid however many 
  199. programs ignore the checksum and report the apparent value. The current
  200. version of MSD reports my XT as having 20+ MB of extended memory. 
  201.  
  202. Where a definiton appears universal, no identification is made. Where
  203. the definition is thought to be specific to a manufacturer/model (AMI, 
  204. AMSTRAD, IBM AT, IBM PS/2) the identification is enclosed in parens. The
  205. AMSTAD definitions appear to relate to 8088/8086 (PC and PC/XT class)
  206. mchines only. AT class machines appear to adhere to IBM PC/AT fornat.
  207.  
  208. ---------------------------------------------
  209.  10h - Floppy Drive Type
  210.  
  211.   Bits 7-4 - First Floppy Disk Drive Type
  212.    0h       No Drive
  213.    1h       360 KB 5.25 Drive
  214.    2h       1.2 MB 5.25 Drive - note: not listed in PS/2 technical manual
  215.    3h       720 KB 3.5 Drive
  216.    4h      1.44 MB 3.5 Drive
  217.    5h      2.88 MB 3.5 drive
  218.    6h-Fh  unused
  219.  
  220.    Bits 3-0 Second Floppy Disk Drive Type (bit settings same as A)
  221.  
  222.    Hence a PC having a 5 1/4 1.2 Mb A: drive and a 1.44 Mb B: drive will
  223.    have a value of 24h in byte 10h. With a single 1.44 drive: 40h.
  224.  
  225. ---------------------------------------------
  226.  11h - (IBM-PS/2) First Fixed Disk Drive Type Byte (00-FFh) Note: if IBM
  227.    ESDI or SCSI drive controller is used, CMOS drive type will be zero (00 -
  228.    no drive) and INT 13h will be directed to controller ROM.
  229.  
  230.  11h - (older AMI Hi-Flex BIOS) Keyboard Typematic Data 
  231.   Bit 7 Enable Typematic (1 = On)
  232.   Bits 6-5 Typematic Delay (wait before begin repeating)
  233.    00b 250 ms
  234.    01b 500 ms
  235.    10b 750 ms
  236.    11b 100 ms
  237.   Bits 4-0 Typematic Rate char/sec e.g. 01010b = 12.0 cps
  238.    00000b - 300     01000b - 159  10000b - 75  11000b - 37
  239.    00001b - 267     01001b - 133  10001b - 67  11001b - 33
  240.    00010b - 240     01010b - 120  10010b - 60  11010b - 30
  241.    00011b - 218     01011b - 109  10011b - 55  11011b - 27
  242.    00100b - 200     01100b - 100  10100b - 50  11100b - 25
  243.    00101b - 185     01101b -  92  10101b - 46  11101b - 23
  244.    00110b - 171     01110b -  86  10110b - 43  11110b - 21
  245.    00111b - 160     01111b -  80  10111b - 40  11111b - 20
  246.  
  247.  11h - (AMI) Advanced Setup Options
  248.     bit 7 mouse enabled
  249.     bit 6 test memory above 1 megabyte
  250.     bit 5 generate clicks during memory test
  251.     bit 4 enable memory parity check
  252.     bit 3 display key for Setup while booting
  253.     bit 2 store user-defined disk data at top of memory instead of 0030h:0000h
  254.     bit 1 request F1 keypress on boot error
  255.  
  256.  11h - (AMI WinBIOS) Boot Options
  257.     bit 7 systems boots with high CPU speed
  258.     bit 6 memory test above 1MB enabled
  259.     bit 5 memory test tick sound enabled
  260.     bit 4 floppy drive seek at boot enabled
  261.     bit 3 "Hit <Del>" message enabled
  262.     bit 2 BIOS extended RAM area takes 1K at top of memory instead of 30h:0000h
  263.     bit 1 wait for F1 key on error
  264.     bit 0 NumLock enabled at boot
  265.     see also 13h"AMI"
  266.  
  267.  11h - (AWARD) Configuration Bits
  268.     Bit 7   NumLock ON at reboot.
  269.     Bit 6   IDE Block Mode enabled.
  270.     Bit 5   ???
  271.     Bit 4   Shadow ROM BIOS at CC00-CFFF
  272.     Bit 3   Shadow ROM BIOS at C800-CBFF
  273.     Bit 2   ???
  274.     Bit 1   BIOS Password Enabled
  275.     Bit 0   0 = Password controls BIOS Setup Only
  276.         1 = Password required to enter System
  277.  
  278.  11h - (Quadtel HT12 BIOS 03.05.03) configuration bits
  279.     bit 7    640K RAM present
  280.     bit 6    extension type (=CPU's Machine Status Word)
  281.     bit 3-2    NumLock state at boot time
  282.         00 Auto
  283.         01 NumLock on
  284.         10 Numlock off
  285.     bit 0    384K RAM relocated to top of memory
  286.  
  287. ---------------------------------------------
  288.  12h - (IBM PS/2) Second Fixed Disk Drive Type (00-FFh) - see 11h
  289.  12h - Hard Disk Data
  290.   Bits 7-4 First Hard Disk Drive
  291.    00      No drive
  292.    01-0Eh Hard drive Type 1-14
  293.    0Fh      Hard Disk Type 16-255 (actual Hard Drive Type is in CMOS RAM 19h)
  294.   Bits 3-0 Second Hard Disk Drive Type (same as above except extrnded type
  295.       will be found in 1Ah).
  296.   A PC with a single type 2 (20 Mb ST-225) hard disk will have 20h in byte 12h
  297.   Note: some PCs utilizing external disk controller ROMs will use type 0 to
  298.    disable ROM BIOS (e.g. Zenith 248 with Plus HardCard).
  299.  
  300. ---------------------------------------------
  301.  13h (AMI Hi-Flex BIOS) Advanced Setup Options
  302.     bit 7 Mouse Enabled (1 = On)
  303.     bit 6 Test Memory above 1 MB (1 = On)
  304.     bit 5 Memory Test Tick Sound (1 = On)
  305.     bit 4 Memory Parity Error Check (1 = On)
  306.     bit 3 Press <Esc> to Disable Memory Test (1 = On)
  307.     bit 2 User-Defined Hard Disk (1 = Type 47 data area at address 0:300h)
  308.     bit 1 Wait for <F1> Message if Error (1 = On)
  309.     bit 0 Turn Num Lock On at boot (1 = On)
  310.     see also 11h"WinBIOS"
  311.  
  312.  13h (AMI WinBIOS) Peripheral Options
  313.     bits 7-5 typematic rate
  314.     000-111 = 6,8,10,12,15,20,24,30 cps
  315.     bit 4: numeric processor test enabled
  316.  
  317.  13h (PS/2 MCA) internal POST operations
  318.     bit 7  POST sets VGA pel information
  319.     bit 6  RTC battery OK
  320.     bit 5  invoke ROM BASIC from POST
  321.     bit 4  POST sets typematic to 30cps/250ms delay instead of 10.9cps/500ms
  322.     bit 3-2 unused or unknown
  323.     bit 1  network password installed
  324.     bit 0  power-on password installed
  325.  
  326.  13h - (AWARD) Configuration Bits
  327.     bit 7   Set Keyboard Typematic Rate
  328.     bit 4-6 Keyboard Repeat Rate
  329.         000 =  6 cps
  330.         001 =  8 cps
  331.         010 = 10 cps
  332.         011 = 12 cps
  333.         100 = 15 cps
  334.         101 = 20 cps
  335.         110 = 24 cps
  336.         111 = 30 cps
  337.     bit 2-3 Keyboard Typematic Delay
  338.         00 =  250 Msec
  339.         01 =  500 Msec
  340.         10 =  750 Msec
  341.         11 = 1000 Msec
  342.     bit 1   ???
  343.     bit 0   Boot Up Floppy Seek
  344.  
  345. ---------------------------------------------
  346.  14h - Equipment Byte 
  347.     Bits 7-6 Number of Floppy Drives (system must have at least one)
  348.         00b       1 Drive
  349.         01b       2 Drives
  350.         10b ??? 3 Drives
  351.         11b ??? 4 Drives
  352.     Bits 5-4 Monitor Type
  353.         00b Not CGA or MDA (observed for EGA & VGA)
  354.         01b 40x25 CGA
  355.         10b 80x25 CGA
  356.         11b MDA (Monochrome)
  357.     Bit 3 Display Enabled (1 = On) (turned off to enable boot of rackmount)
  358.     Bit 2 Keyboard Enabled (1 = On) (turn off to enable boot of rackmount)
  359.     Bit 1 Math coprocessor Installed (1 = On)
  360.     Bit 0 Floppy Drive Installed (1 = On) (turned off for rackmount boot)
  361.  
  362.  14h - (AMSTRAD)    BYTE user RAM checksum
  363.             LSB of sum of all user bytes should be AAh
  364.  
  365. ---------------------------------------------
  366.  15h - Base Memory in K, Low Byte
  367.  15h - (AMSTRAD)    WORD Enter key scancode/ASCII code
  368.             default: 1C0Dh    - emulates Return key
  369.  
  370. ---------------------------------------------
  371.  16h Base Memory in K, High Byte
  372.   The value in 15h-16h should be the same as in 0:413h and that returned by 
  373.   Int 12h. A PC having 640k (280h) of conventional memory will return 80h in 
  374.   byte 15h and 02h in byte 16h.
  375.  
  376. ---------------------------------------------
  377.  17h - Extended Memory in K, Low Byte
  378.  17h - (AMSTRAD)    WORD Forward delete key scancode/ASCII code
  379.             default: 2207h    - emulates ^G (bell/beep)
  380.  
  381. ---------------------------------------------
  382.  18h - Extended Memory in K, High Byte (some systems will only accommodate 
  383.   15 Mb extended or 16 Mb total) Format is the same as in 15h-16h
  384.  
  385. ---------------------------------------------
  386.  19h - First Extended Hard Disk Drive Type (not in original AT
  387.   specification but now nearly universally used except for PS/2).
  388.   0-Fh unused (would not require extension. Note: this has the effect of
  389.     making type 0Fh (15d) unavailable.
  390.   10h-FFh First Extended Hard Drive Type 16d-255d
  391.  19h - (MCA) Slot 0 adapter card ID
  392.  19h - (AMI)
  393.     bits 3-0: ???
  394.     bits 7-4: ???
  395.  
  396. For most manufacturers the last drive type (typically either 47d or 49d)
  397. is "user defined" and parameters are stored elsewhere in the CMOS.
  398.  
  399.  19h - (AMSTRAD)    WORD Joystick fire button 1 scancode/ASCII code
  400.             default: FFFFh    - (no translation)
  401.  
  402. ---------------------------------------------
  403.  1Ah - Second Extended Hard Disk Drive Type (see 19h above)
  404.  1Ah - (MCA) Slot 0 adapter card ID
  405.  
  406. ---------------------------------------------
  407.  1Bh - (MCA) Slot 1 adapter card ID
  408.  1Bh - (AMI) First Hard Disk (type 47) user defined: # of Cylinders, LSB
  409.  1Bh - (AMSTRAD)    WORD Joystick fire button 2 scancode/ASCII code
  410.             default: FFFFh    - (no translation)
  411.  1Bh - (PHOENIX) LSB of Word to 82335 RC1 roll compare register
  412.  
  413.  1Bh - (AWARD) Configuration Bits
  414.     Bit 7-4 ???
  415.     Bit 3   Shadow ROM BIOS at DC00-DFFF
  416.     Bit 2     "        "     "   " D800-DBFF
  417.     Bit 1     "        "     "   " D400-D7FF
  418.     Bit 0     "        "     "   " D000-D3FF
  419.  
  420. ---------------------------------------------
  421.  1Ch - (MCA) Slot 1 adapter card ID
  422.  1Ch - (AMI) First Hard Disk user defined: # of Cylinders, High Byte
  423.  1Ch - (PHOENIX) MSB of Word to 82335 RC1 roll compare register
  424.  
  425.  1Ch,1Dh - (AWARD) Password
  426.     Stored as a checksum or CRC using unknown algorithm.  (See byte 11h 
  427.     to enable)
  428.  
  429. ---------------------------------------------
  430.  1Dh - (MCA) Slot 2 adapter card ID
  431.  1Dh - (AMI) First Hard Disk user defined: Number of Heads
  432.  1Dh - (AMSTRAD)    WORD mouse button 1 scancode/ASCII code
  433.             default: FFFFh    - (no translation)
  434.  1Dh - (Zenith Z-200 monitor) Boot Drive Selection
  435.        Bits 6-5 (0xx0 0000)
  436.        00 - MFM Monitor
  437.        01 - First floppy drive (A:)
  438.        10 - First fixed disk (C:)
  439.        11 - First floppy drive (A:). If not there then First fixed disk (C:)
  440.         (this is the default).
  441.  1Dh - (PHOENIX) LSB of Word to 82335 RC2 roll compare register
  442.  1Dh - (AWARD) MSB of password checksum (see byte 1Ch)
  443.  1Dh - (Quadtel HT 12 BIOS) first user def. drive: # of cylinders low byte
  444.  
  445. ---------------------------------------------
  446.  1Eh - (MCA) Slot 2 adapter card ID
  447.  1Eh - (AMI) First Hard Disk user defined: Write Precompensation Cylinder, 
  448.        Low Byte
  449.  1Eh - (PHOENIX) MSB of Word to 82335 RC2 roll compare register
  450.  1Eh - (AWARD) 2nd Hard Disk user defined (type 48): # of Cylinders Low Byte
  451.  1Eh - (Quadtel HT 12 BIOS) first user def. drive
  452.     bits 7-4: number of heads
  453.     bits 3-0: # of cylinders MSB
  454.  
  455. ---------------------------------------------
  456.  1Fh - (MCA) Slot 3 adapter card ID
  457.  1Fh - (AMI) First Hard Disk user defined: Write Precompensation Cylinder, 
  458.        High Byte
  459.  1Fh - (AMSTRAD)    WORD mouse button 2 scancode/ASCII code
  460.             default: FFFFh    - (no translation)
  461.  1Fh - (AWARD) 2nd Hard Disk user defined (type 48): # of Cylinders High Byte
  462.  1Fh - (Quadtel HT 12 BIOS) first user def. drive: write precom. cyl. low byte
  463.  
  464. ---------------------------------------------
  465.  20h - (MCA) Slot 3 adapter card ID
  466.  20h - (AMI) First Hard Disk user defined: Control Byte
  467.      bits 7-6 no retries (1)
  468.      bit 5    bad sector map at last cylinder+1
  469.      bit 4    unused (0)
  470.      bit 3    more than 8 heads
  471.      bits 2-0 unused (0)
  472.  20h - (AMI WinBIOS) First Hard Disk user defined: Landing Zone, Low Byte
  473.  20h - (PHOENIX) First user defined hard disk (type 48) Cylinders LSB
  474.  20h - (AWARD) 2nd Hard Disk user defined (type 48): Number of Heads
  475.  20h - (Quadtel HT 12 BIOS) first user def. drive
  476.     bits 7-4: landing zone MSB
  477.     bits 3-0: write precom. cyl. MSB
  478.  
  479. ---------------------------------------------
  480.  21h - (MCA) Programmable Option Select configuration byte 2
  481.  21h - (AMI) First Hard Disk user defined: Landing Zone, Low Byte
  482.  21h - (AMI WinBIOS) First Hard Disk user defined: Landing Zone, High Byte
  483.  21h - (AMSTRAD) BYTE mouse X scaling factor, default: 0Ah
  484.  21h - (PHOENIX) First user defined hard disk (type 48) Cylinders MSB
  485.  21h - (AWARD) 2nd Hard Disk user defined (type 48): Write Precomp Low Byte
  486.  21h - (Quadtel HT 12 BIOS) first user def. drive: landing zone low byte
  487.  
  488. ---------------------------------------------
  489.  22h - (MCA) Programmable Option Select configuration byte 3
  490.  22h - (AMI) First Hard Disk user defined: Landing Zone, High Byte
  491.  22h - (AMI WinBIOS) First Hard Disk user defined: # of Sectors per track
  492.  22h - (AMSTRAD) BYTE mouse Y scaling factor default: 0Ah
  493.  22h - (PHOENIX) First user defined hard disk (type 48)     of Heads
  494.  22h - (AWARD) 2nd Hard Disk user defined (type 48): Write Precomp High Byte
  495.  22h - (Quadtel HT 12 BIOS) first user def. drive: sectors per track
  496.  
  497. ---------------------------------------------
  498.  23h - (MCA) Programmable Option Select configuration byte 4
  499.  23h - (AMI) First Hard Disk user defined: # of Sectors per track
  500.  23h - (AMI WinBIOS) Second Hard Disk user defined: # of Cylinders, Low Byte
  501.  23h - (AMSTRAD) BYTE initial VDU mode and drive count    default: 20h
  502.     bit 7:  enables extended serial flow control
  503.         (NB this is buggy)
  504.     bit 6:  set if two floppy drives installed
  505.     bits 5 & 4: (from Amstrad 1640 tech ref)
  506.      0   0        Internal video adapter
  507.      0   1        CGA card added; 40 x 25 mode
  508.      1   0        CGA card added; 80 x 25 mode
  509.      1   1        mono card added; 80 x 25 mode
  510.  23h - (PHOENIX) First user defined hard disk (type 48) Write Precomp. LSB
  511.  23h - (AWARD) 2nd Hard Disk user defined (type 48): Landing Zone Low Byte
  512.  23h - (Quadtel HT 12 BIOS) second user def. drive: # of cylinders low byte
  513.  
  514. ---------------------------------------------
  515.  24h - (MCA) Programmable Option Select configuration byte 5
  516.  24h - (AMI) Second Hard Disk user defined: # of Cylinders, Low Byte
  517.  24h - (AMI WinBIOS) Second Hard Disk user defined: # of Cylinders, High Byte
  518.  24h - (AMSTRAD)    BYTE initial VDU character attribute, default: 7h
  519.  24h - (PHOENIX) First user defined hard disk (type 48) Write Precomp. MSB
  520.  24h - (AWARD) 2nd Hard Disk user defined (type 48): Landing Zone High Byte
  521.  24h - (Quadtel HT 12 BIOS) second user def. drive
  522.     bits 7-4: number of heads
  523.     bits 3-0: # of cylinders MSB
  524.  
  525. ---------------------------------------------
  526.  25h - (AMI) Second Hard Disk user defined: # of Cylinders, High Byte
  527.  25h - (AMI WinBIOS) Second Hard Disk user defined: Number of Heads
  528.  25h - (AMSTRAD)    BYTE size of RAM disk in 2K blocks
  529.         default: 0  - only used by the RAMDISK software supplied.
  530.  25h - (PHOENIX) First user defined hard disk (type 48) Parking zone LSB
  531.  25h - (AWARD) 2nd Hard Disk user defined (type 48): Sectors per Track
  532.  25h - (Quadtel HT 12 BIOS) second user def. drive: write precom. cyl. low byte
  533.  
  534. ---------------------------------------------
  535.  26h - (AMI) Second Hard Disk user defined: Number of Heads
  536.  26h - (AMI WinBIOS) Second Hard Disk user defined: Write Precompensation
  537.     Cylinder, Low Byte
  538.  26h - (AMSTRAD)    BYTE initial system UART setup byte
  539.             default: E3h - format as for Int 14h fn 0
  540.  26h - (PHOENIX) First user defined hard disk (type 48) Parking zone MSB
  541.  26h - (AWARD) 1st Hard Disk user defined (type 49): # of Cylinders Low Byte
  542.  26h - (Quadtel HT 12 BIOS) second user def. drive
  543.     bits 7-4: landing zone MSB
  544.     bits 3-0: write precom. cyl. MSB
  545.  
  546. ---------------------------------------------
  547.  27h - (AMI) Second Hard Disk user defined: Write Precompensation Cylinder, 
  548.        Low Byte
  549.  27h - (AMI WinBIOS) Second Hard Disk user defined: Write Precompensation
  550.     Cylinder, High Byte
  551.  27h - (AMSTRAD)    BYTE initial external UART setup byte
  552.             default: E3h - format as for Int 14h fn 0
  553.  27h - (PHOENIX) First user defined hard disk (type 48) Sectors per track
  554.  27h - (AWARD) 1st Hard Disk user defined (type 49): # of Cylinders High Byte
  555.  27h - (Quadtel HT 12 BIOS) second user def. drive: landing zone low byte
  556.  
  557. ---------------------------------------------
  558.  28h - (AMI) Second Hard Disk user defined: Write Precompensation Cylinder, 
  559.        High Byte
  560.  28h - (AMI WinBIOS) Second Hard Disk user defined: Landing Zone, Low Byte
  561.  28h - (HP Vectra) checksum over bytes 29h-2Dh
  562.  28h - (AWARD) 1st Hard Disk user defined (type 49): Number of Heads
  563.  28h - (Quadtel HT 12 BIOS) second user def. drive: sectors per track
  564.  
  565.  28h-3Fh (AMSTRAD) 24 BYTEs user applications default: zeroes
  566.  
  567. ---------------------------------------------
  568.  29h - (AMI) Second Hard Disk user defined: Control Byte (80h if # of heads 
  569.        is equal or greater than 8)
  570.  29h - (AMI WinBIOS) Second Hard Disk user defined: Landing Zone, High Byte
  571.  29h - (PHOENIX) LSB word to Intel 82335 CC0 compare register
  572.  29h - (AWARD) 1st Hard Disk user defined (type 49): Write Precomp  Low Byte
  573.  29h - (HP Vectra) officially reserved "CMOS_HPCONFIG"
  574.     bit 7: include byte 2Ch in checksum (default = 0)
  575.     bit 6: select second ROM video adapter as primary (default = 0)
  576.     bits 5-1: reserved
  577.     bit 0: manufacturing test enabled
  578.  
  579. ---------------------------------------------
  580.  2Ah - (AMI) Second Hard Disk user defined: Landing Zone, Low Byte
  581.  2Ah - (AMI WinBIOS) Second Hard Disk user defined: # of Sectors per track
  582.  2Ah - (HP Vectra) officially reserved
  583.  2Ah - (PHOENIX) MSB word to Intel 82335 CC0 compare register
  584.  2Ah - (AWARD) 1st Hard Disk user defined (type 49): Write Precomp  High Byte
  585.  
  586. ---------------------------------------------
  587.  2Bh - (AMI) Second Hard Disk user defined: Landing Zone, High Byte
  588.  2Bh - (AMI WinBIOS) IDE and shadowing control
  589.     bit 7: LBA mode enabled
  590.     bit 6: IDE block mode enabled
  591.     bit 5: 32-bit transfer enabled
  592.     bit 4: unused
  593.     bit 3: shadowing of DC00h enabled
  594.     bit 2: shadowing of D800h enabled
  595.     bit 1: shadowing of D400h enabled
  596.     bit 0: shadowing of D000h enabled
  597.  2Bh - (HP Vectra) officially reserved
  598.  2Bh - (PHOENIX) LSB word to Intel 82335 CC1 compare register
  599.  2Bh - (AWARD) 1st Hard Disk user defined (type 49): Landing Zone   Low Byte
  600.  
  601. ---------------------------------------------
  602.  2Ch - (AMI) Second Hard Disk user defined: # of Sectors per track
  603.  2Ch - (AMI WinBIOS) cache control
  604.     bit 7: external RAM cache enabled
  605.     bit 6: internal RAM cache enabled
  606.     bit 5: shadowing of E000h enabled
  607.     bit 4: shadowing of CC00h enabled
  608.     bit 3: shadowing of C800h enabled
  609.     bit 2: shadowing of C400h (video ROM) enabled
  610.     bit 1: shadowing of C000h (video ROM) enabled
  611.     bit 0: shadowing of system BIOS (F000h, 64K) enabled
  612.  2Ch - (HP Vectra) officially reserved
  613.  2Ch - (COMPAQ) bit 6:    0 - numlock OFF on boot, 1 - numlock ON at boot
  614.  2Ch - (PHOENIX) MSB word to Intel 82335 CC1 compare register
  615.  2Ch - (AWARD) 1st Hard Disk user defined (type 49): Landing Zone   High Byte
  616.  
  617. ---------------------------------------------
  618.  2Dh - (AMI Hi-Flex BIOS) Configuration Options 
  619.     bit 7 Weitek Installed
  620.     bit 6 Floppy Drive Seek - turn off for fast boot
  621.     bit 5 Boot Order    0 - Drive C:, then A:
  622.             1 - Drive A:, then C:
  623.     bit 4 Boot Speed (0 - Low; 1 - High)
  624.     bit 3 External Cache Enable (1 = On)
  625.     bit 2 Internal Cache Enable (1 = On)
  626.     bit 1 Use Fast Gate A20 after boot (1 = On)
  627.     bit 0 Turbo Switch (1 = On)
  628.  2Dh - (AMI WinBIOS)
  629.     bit 7 Weitek Installed
  630.     bit 6 bootsector virus protection enabled
  631.     bit 5 mouse enabled
  632.     bit 4 password checking (0 setup, 1 always)
  633.     bit 3 parity error check enabled
  634.     bits 2-1 boot order (00 = C:A:, 01 = A:C:)
  635.     bit 0 turbo switch enabled
  636.  2Dh - (HP Vectra) officially reserved
  637.  2Dh - (PHOENIX) Checks for values AAh or CCh
  638.  2Dh - (AWARD) 1st Hard Disk user defined (type 49): Sectors per Track
  639.   
  640. ---------------------------------------------
  641.  2Eh - Standard CMOS Checksum, High Byte
  642.  2Fh - Standard CMOS Checksum, Low Byte
  643.  
  644.  2Eh and 2Fh are as defined by the original IBM PC/AT specification and
  645.  represent a byte-wise additive sum of the values in locations 10h-2Dh only,
  646.  00h-0Fh and 30h-33h are not included. This definition is used by most
  647.  clone manufacturers including AMI, Compaq, Tandon, NEC, and Zenith. The 
  648.  IBM PS/2 line does not follow this standard with the range 19h-31h being 
  649.  undefined.  On the original HP Vectra, this checksum only covers locations
  650.  10h to 20h, with a separate checksum for bytes 29h-2Ch (see offset 28h).
  651.  
  652.  
  653. ---------------------------------------------
  654.  30h - Extended Memory in K, Low Byte
  655.  
  656. ---------------------------------------------
  657.  31h - Extended Memory in K, High Byte 
  658.  (this appears to mirror the value in bytes 17h-18h.) 
  659.  
  660. ---------------------------------------------
  661.  32h - Century Byte (BCD value for the century - currently 19h)
  662.  32h - (IBM-PS2) Configuration CRC low byte. CRC for range 10h-31h
  663.  
  664. ---------------------------------------------
  665.  33h - Information Flag
  666.     bit 7 128K (??? believe this indicates the presence of the special 128k
  667.           memory expansion board for the AT to boost the "stock" 512k
  668.           to 640k - all machines surveyed have this bit set)
  669.     bits 6-0 ???
  670.  33h - (IBM PS/2) Configuration CRC high byte (see entry for 32h)
  671.  33h - (PHOENIX) Bit 4 (000x 0000) bit 4 from Intel CPU register CR0
  672.  33h - (AMI WinBIOS)
  673.     bit 7: IBM-defined top 128K present
  674.     bits 6-4 CPU internal clock frequency
  675.     000-011 = 25, 33, 40, 50 MHz
  676.     100 = 60/66 MHz
  677.     101 = 75 MHz
  678.     110 = 80 MHz
  679.     111 = 90/100 MHz
  680.     bits 2-1 CPU internal clock multiplier
  681.     00-11 = 1,2,3,4
  682.     bit 0 FlashROM programming enabled (Ctrl-Home pressed at power on)
  683.     Note: this location is not included in any CMOS checksum fields
  684.  33h - (Quadtel HT12 BIOS 03.05.03)
  685.     bit 7 = 1  640K RAM present
  686.     bit 6 = extension type (=CPU's Machine Status Word)
  687.     bit 1 = 1  print welcome message
  688.  
  689. ---------------------------------------------
  690.  34h - (AMI) Shadowing & Boot Password
  691.   Bits 7-6 Password Selection
  692.    00b Disable 10b Reserved
  693.    01b Set     11b Boot
  694.   Bit 5 C8000h Shadow ROM (Bit 1 = On) 
  695.   Bit 4 CC000h Shadow ROM (Bit 1 = On)
  696.   Bit 3 D0000h Shadow ROM (Bit 1 = On)
  697.   Bit 2 D4000h Shadow ROM (Bit 1 = On)
  698.   Bit 1 D8000h Shadow ROM (Bit 1 = On)
  699.   Bit 0 DC000h Shadow ROM (Bit 1 = On)
  700.  24h - (AMI WinBIOS) system-specific information (bits 3-1)
  701.  
  702.  34h-3Ah - (AWARD) ??? unused ???  Defaults to all FFh's.
  703.  
  704. ---------------------------------------------
  705.  35h - (AMI) Shadowing
  706.   bit 7 E0000h Shadow ROM (Bit 1 = On)
  707.   bit 6 E4000h Shadow ROM (Bit 1 = On)
  708.   bit 5 E8000h Shadow ROM (Bit 1 = On)
  709.   bit 4 EC000h Shadow ROM (Bit 1 = On)
  710.   bit 3 F0000h Shadow ROM (Bit 1 = On)
  711.   bit 2 C0000h Shadow ROM (Bit 1 = On)
  712.   bit 1 C4000h Shadow ROM (Bit 1 = On)
  713.   bit 0 Reserved
  714.  35h - (AMI WinBIOS) extended memory size in 64K blocks, low byte
  715.  35h - (PHOENIX) Second user defined hard disk (type 48) Cylinders LSB
  716.        NOTE: used only when PS/2 style password is NOT in effect.
  717.  35h - (AMI 1990 Hyundai super-NB368S notebook)
  718.   bit 3-1 = 000  shadow disabled
  719.           = 011  video BIOS shadowed
  720.       = 100  main BIOS shadowed
  721.       = 111  both
  722.   bit 0   coprocessor enabled
  723.  
  724. ---------------------------------------------
  725.  36h - (PHOENIX) Second user defined hard disk (type 48) Cylinders MSB
  726.        NOTE: used only when PS/2 style password is NOT in effect.
  727.  36h - (AWARD)
  728.     bit 6: IDE 32-bit transfer mode
  729.  36h - (AMI)
  730.     bits 1-0: ???
  731.     bits 3-2: ???
  732.  36h - (AMI WinBIOS) extended memory size in 64K blocks, high byte
  733.  36h - (AMI 1990 Hyundai super-NB368S notebook)
  734.   bit 7    = 1 LCD, 0 CRT at boot time
  735.   bit 6    = 1 reversed, 0 normal video mode
  736.   bit 5    = 1 external, 0 internal keyboard
  737.   bit 4-3 = 00  cpu speed high
  738.         01  cpu speed medium
  739.         10  cpu speed low
  740.   bit 2-1  harddisk vendor 1,2,3,4
  741.   bit 0    = 1 relocation enabled, 0 disabled
  742.  36h - (Quadtel HT12 BIOS 03.05.03) extended memory, low byte
  743.  
  744. ---------------------------------------------
  745.  37h - (IBM PS/2) Date Century Byte 
  746.  37h - (PHOENIX) Second user defined hard disk (type 48) # of heads
  747.        NOTE: used only when PS/2 style password is NOT in effect.
  748.  37h - (AMI Hi-Flex BIOS) ???
  749.     bit 7: ???
  750.  37h - (AMI WinBIOS)
  751.     bits 7-4 password seed
  752.     bits 3-0 WinBIOS/AMIBIOS setup color options
  753.  37h - (Quadtel HT12 BIOS 03.05.03) extended memory, high byte
  754.  37h-3Ah - (AMI 1990 Hyundai super-NB368S notebook)
  755.     encoded password, max 4 bytes.
  756.  
  757. ---------------------------------------------
  758.  38h - (PHOENIX) Second user defined hard disk (type 48) Write Precomp. LSB
  759.        NOTE: used only when PS/2 style password is NOT in effect.
  760.  
  761.  38h-3Dh (AMI) Encrypted Password
  762.  
  763.  38h-3Fh ??? (IBM PS/2) Encrypted Password. Initialized to 00h in all
  764.      bytes. Will accept from 1-7 scan codes. 
  765.  
  766. ---------------------------------------------
  767.  39h - (PHOENIX) Second user defined hard disk (type 48) Write Precomp. MSB
  768.        NOTE: used only when PS/2 style password is NOT in effect.
  769.  
  770. ---------------------------------------------
  771.  3Ah - (PHOENIX) Second user defined hard disk (type 48) Parking Zone LSB
  772.        NOTE: used only when PS/2 style password is NOT in effect.
  773.  
  774. ---------------------------------------------
  775.  3Bh - (PHOENIX) Second user defined hard disk (type 48) Parking Zone MSB
  776.        NOTE: used only when PS/2 style password is NOT in effect.
  777.  
  778.  3Bh - (AWARD) Configuration Bits
  779.     Bit 4-7 Screen Colors Used in Setup
  780.     0   Yellow/White on Blue (Default)
  781.     1   Magenta/White on Blue
  782.     2   Yellow/Black on Green
  783.     3   Yellow/Green on Cyan
  784.     4   Black/Yellow on Cyan
  785.     5   Brown/White on Cyan
  786.     6   White/Green on Red
  787.     7   White/White on Red
  788.     8   Green/White on Magenta
  789.     9   Yellow/Red on Magenta
  790.     Ah  Red/White on Grey
  791.     Bh  Yellow/White on Grey
  792.     Ch  Cyan/White on Grey
  793.     Dh  Cyan/Yellow on Black
  794.     Eh  White on Black (Monochrome)
  795.     Fh  Green/Red on Black
  796.     Bit 3   ??? Default = 0
  797.     Bit 2   ??? Default = 0
  798.     Bit 1   ??? Default = 1
  799.     Bit 0   Enable External Cache
  800.  
  801. ---------------------------------------------
  802.  3Ch - (PHOENIX) Second user defined hard disk (type 48) Sectors per track
  803.        NOTE: used only when PS/2 style password is NOT in effect.
  804.  3Ch - (AWARD) Boot Configuration Bits
  805.     bit 7   1 = Disable Virus Warning on Boot
  806.     bit 6,5 ???
  807.     bit 4   Quick POST Enabled
  808.     bit 3,2 ???
  809.     bit 1   Enable Turbo Switch Input
  810.     bit 0   0 = Boot from A, then C
  811.         1 = Boot from C, then A
  812.  3Ch - (Quadtel HT12 BIOS 03.05.03) total memory, low byte
  813.  
  814. ---------------------------------------------
  815.  3Dh - (AWARD) ???
  816.  3Dh - (Phoenix) bit 3: base memsize 512K/640K
  817.  3Dh - (Quadtel HT12 BIOS 03.05.03) total memory, high byte
  818.  
  819. ---------------------------------------------
  820.  3Eh - (AMI) Extended CMOS Checksum, High Byte (includes 34h - 3Dh)
  821.  3Eh - (AWARD) Boot Configuration Bits
  822.     bit 7   Shadow Video BIOS at C000h
  823.     bit 6,5 ???
  824.     bit 4   Swap Floppy Drive
  825.     bit 3   ???
  826.     bit 2   Don't Halt on Diskette Errors at Boot
  827.     bit 1   Don't Halt on Keyboard Errors at Boot
  828.     bit 0   Never Halt for any error at Boot
  829.  3Eh - (Quadtel HT12 BIOS 03.05.03)
  830.     bit 2 = 1  system error occurred ?? (timer/RTC)
  831.     bit 0 = 0  extended system configuration loaded
  832.       = 1  checksum error
  833.  3Eh - (Phoenix) shadowing control
  834.     bit 7    relocate enable
  835.     bit 1    shadow video enable
  836.     bit 0    shadow BIOS enable
  837.  
  838. ---------------------------------------------
  839.  3Fh - (AMI) Extended CMOS Checksum, Low Byte (includes 34h - 3Dh)
  840.  3Fh - (AWARD) ???
  841.  
  842. ---------------------------------------------
  843.  
  844.  End of original 64 CMOS RAM bytes. Many modern chips now contain 128
  845.  bytes and the IBM PS/2 has provision for 2k of "Expansion CMOS". 
  846.  The AMI HI-FLEX description is below. If the chip does have only
  847.  64 bytes, addresses will wrap so that requests for bytes 40h-7Fh will 
  848.  return the same values as 00h-3Fh.
  849.  
  850. ---------------------------------------------
  851.  40h ???
  852.  
  853.  40h - (AMI 1990 Hyundai super-NB368S notebook)
  854.     bit 7 = 1  power save enabled
  855.     bit 6-0 HD power save wait, units of 1 minute (0-20)
  856.  40h - (AWARD) Motherboard Chipset (SiS 85C501/85C502 shown)
  857.     bit 7-1 ???
  858.     bit 0   Automatic Configuration Enabled (Default: 1=enabled)
  859.  
  860. ---------------------------------------------
  861.  40h-55h - (AMI WinBIOS) PCI BIOS setup data
  862.  
  863. ---------------------------------------------
  864.  41h - (AMI)
  865.   Bits 7-6 IOR/IOW Wait states
  866.   Bits 5-4 16-bit DMA Wait States
  867.   Bits 3-2  8-bit DMA Wait States
  868.   Bit 1       EMR bit
  869.   Bit 0       DMA Clock Source
  870.  
  871. ---------------------------------------------
  872.  42h-43h ???
  873.  
  874.  42h-44h - (AWARD) ??? chipset setup ???
  875.  
  876. ---------------------------------------------
  877.  44h - (AMI)
  878.   Bit 4 NMI Power Fail Warning
  879.   Bit 3 NMI Local Bus Timeout
  880.  
  881. ---------------------------------------------
  882.  45h - (AMI) 
  883.   Bits 7-6 AT Bus 32-Bit Delay
  884.   Bits 5-4 AT Bus 16-Bit Delay
  885.   Bits 3-2 AT Bus 8-Bit Delay
  886.   Bits 1-0 AT Bus I/O Delay
  887.  
  888.  45h - (AWARD) Motherboard Chipset (SiS 85C501/85C502 shown)
  889.     Bit 7   System BIOS Cacheable (Default: 1=enabled)
  890.     Bit 6   Video BIOS Cacheable  (Default: 1=enabled)
  891.     Bit 6-0 ???
  892.  
  893. ---------------------------------------------
  894.  46h - (AMI)
  895.   Bits 7-6 AT Bus 32 Bit Wait States
  896.   Bits 5-4 AT Bus 16 Bit Wait States
  897.   Bits 3-2 AT Bus  8 Bit Wait States
  898.   Bits 1-0 AT Bus Clock Source
  899.  
  900.  46h thru 47h - (AWARD) ??? chipset setup ???
  901.  
  902. ---------------------------------------------
  903.  47h-50h ???
  904.  
  905.  48h-4Fh - (AWARD) ??? unused ???  Defaults to all FFh's.
  906.  
  907. ---------------------------------------------
  908.  50h - (AWARD) PCI Bus Slot 1 Latency Timer 0-255 (default: 0)
  909.  
  910. ---------------------------------------------
  911.  51h - (AMI)
  912.   Bit 7       Bank 0/1 RAS Precharge
  913.   Bit 6       Bank 0/1 Access Wait States
  914.   Bits 3-2 Bank 0/1 Wait States
  915.  
  916.  51h - (AWARD) PCI Bus Setup
  917.     Bit 7   PIRQ0# Interrupt Triggering
  918.         0 = Edge Sensitive,
  919.         1 = Level Sensitive
  920.     Bit 6-2 ??? Default: all 1's
  921.     Bit 0-1    Slot 1 IRQ Setup
  922.     00 = A-PIRQ0 (Default)
  923.     01 = B-PIRQ1
  924.     10 = C-PIRQ2
  925.     11 = D-PIRQ3
  926.  
  927. ---------------------------------------------
  928.  52h ???
  929.  52h - (AWARD) PCI Bus Slot 2 Latency Timer 0-255 (default: 0)
  930.  
  931. ---------------------------------------------
  932.  53h - (AMI)
  933.   Bit 7       Bank 2/3 RAS Precharge
  934.   Bit 6       Bank 2/3 Access Wait States
  935.   Bits 3-2 Bank 2/3 Wait States
  936.  
  937.  53h - (AWARD) PCI Bus Setup
  938.     Bit 7   PIRQ1# Interrupt Triggering
  939.         0 = Edge Sensitive,
  940.         1 = Level Sensitive
  941.     Bit 6-2 ??? Default: all 1's
  942.     Bit 0-1    Slot 2 IRQ Setup
  943.     00 = A-PIRQ1 (Default)
  944.     01 = B-PIRQ2
  945.     10 = C-PIRQ3
  946.     11 = D-PIRQ0
  947.  
  948. ---------------------------------------------
  949.  54h-7Fh ???
  950.  54h - (AWARD) PCI Bus Slot 3 Latency Timer 0-255 (default: 0)
  951.  
  952. ---------------------------------------------
  953.  55h - (AWARD) PCI Bus Setup
  954.     Bit 7   PIRQ2# Interrupt Triggering
  955.         0 = Edge Sensitive,
  956.         1 = Level Sensitive
  957.     Bit 6-2 ??? Default: all 1's
  958.     Bit 0-1    Slot 3 IRQ Setup
  959.     00 = A-PIRQ2 (Default)
  960.     01 = B-PIRQ3
  961.     10 = C-PIRQ0
  962.     11 = D-PIRQ1
  963.  
  964. ---------------------------------------------
  965.  56h - (AWARD) ?? reserved for PCI Bus Slot 4 Latency Timer ??
  966.  
  967. ---------------------------------------------
  968.  57h - (AWARD) PCI Bus Setup
  969.     Bit 7   PIRQ3# Interrupt Triggering
  970.         0 = Edge Sensitive,
  971.         1 = Level Sensitive
  972.     Bit 6-0 ??not used    Default: all 1's
  973.  
  974. ---------------------------------------------
  975.  58h - (AWARD) ?? reserved for PCI Bus Slot 5 Latency Timer ??
  976.     bit 3: onboard CMD IDE Mode 3
  977.  
  978. ---------------------------------------------
  979.  59h - (AWARD) ?? reserved for PCI Bus Setup ??
  980.  
  981. ---------------------------------------------
  982.  5Ah - (AWARD) PCI Bus IRQ Setup
  983.     Bit 4-7 PIRQ1# Interrupt Line (0=none, Bh=IRQ11, etc)
  984.     Bit 0-3 PIRQ0# Interrupt Line     "         "          "
  985.  
  986. ---------------------------------------------
  987.  5Bh - (AWARD) PCI Bus IRQ Setup
  988.     Bit 4-7 PIRQ3# Interrupt Line (0=none, Bh=IRQ11, etc)
  989.     Bit 0-3 PIRQ2# Interrupt Line     "         "          "
  990.  
  991. ---------------------------------------------
  992.  5Ch-5Fh - (AWARD) ??? unused ???  Defaults to all FFh's.
  993.  
  994. ---------------------------------------------
  995.  5Eh - (AMI 1990 Hyundai super-NB368S notebook) - ???
  996.     00h when values from bios defaults
  997.     34h when values from power up defaults
  998.  
  999. ---------------------------------------------
  1000.  60h-77h - (AMI WinBIOS) PCI chipset-specific setup information
  1001.  
  1002. ---------------------------------------------
  1003.  60h - (AWARD) Power Management
  1004.     Bit 7    ???
  1005.     Bit 6    Video Off Method
  1006.     1  = V/H SYNC + Blank (default)
  1007.     0  = Blank Screen
  1008.     Bit 4,5  Video Off Option
  1009.     00 = Always On (default)
  1010.     01 = Suspend -> Off
  1011.     10 = Suspend, Standby -> Off
  1012.     11 = All Modes -> Off
  1013.     Bit 3    PM Control by APM (1=Yes)
  1014.     Bit 2    ???
  1015.     Bit 0,1    Power Management Setup
  1016.     00  User Defined
  1017.     01  Disabled (default)
  1018.     10  Minimum Power Savings (40 Minutes for all events)
  1019.     11  Maximum Power Savings (20 Seconds for all events)
  1020.  
  1021. ---------------------------------------------
  1022.  61h - (AWARD) Power Management
  1023.     Bit 7   PM Event on HDD Ports Activity (1=enable)
  1024.     Bit 6   PM Event on LPT Port Activity (1=enable)
  1025.     Bit 5   PM Event on COM Port Activity (1=enable)
  1026.     Bit 4   HDD Power Down on Suspend
  1027.     Bit 0-3 HDD Power Down Time
  1028.     0    Disabled
  1029.     1-15    Time in Minutes
  1030.  
  1031. ---------------------------------------------
  1032.  62h - (AMI 1990 Hyundai super-NB368S notebook)
  1033.     FFh when values from bios defaults
  1034.     FEh when values from power up defaults
  1035.  62h - (AWARD) Power Management
  1036.     Bit 7-4    Standby Mode Setting (for User Defined)
  1037.     0   Disabled
  1038.     1   20 Seconds
  1039.     2   1 Minute
  1040.     3   5 Minutes
  1041.     4   10 Minutes
  1042.     5   15 Minutes
  1043.     6   20 Minutes
  1044.     7   30 Minutes
  1045.     8   40 Minutes
  1046.     Bit 0-3    Doze Mode Setting (for User Defined)
  1047.     (See Standby Mode above)
  1048.  
  1049. ---------------------------------------------
  1050.  63h - (AWARD) Power Management
  1051.     Bit 7    Disable PM Event on IRQ3 Activity (COM2) (1=disable)
  1052.     Bit 6    PM Event on VGA Activity (1=enable)
  1053.     Bit 5    ??? (Defaults to 1)
  1054.     Bit 4    PM Event on PCI/ISA Master Activity (1=enable)
  1055.     Bit 0-3    Suspend Mode Setting (for User Defined)
  1056.     (See Standby Mode above)
  1057.  
  1058. ---------------------------------------------
  1059.  64h - (AMI 1990 Hyundai super-NB368S notebook) - ???
  1060.  64h - (AWARD) Power Management
  1061.     Bit 7    Disable PM Event on IRQ11 Activity (1=disable)
  1062.     Bit 6    Disable PM Event on IRQ10 Activity (1=disable)
  1063.     Bit 5    Disable PM Event on IRQ9 Activity (IRQ2 Redir) (1=disable)
  1064.     Bit 4    Disable PM Event on IRQ8 Activity (RTC Alarm) (1=disable)
  1065.     Bit 3    Disable PM Event on IRQ7 Activity (LPT1) (1=disable)
  1066.     Bit 2    Disable PM Event on IRQ6 Activity (Floppy) (1=disable)
  1067.     Bit 1    Disable PM Event on IRQ5 Activity (LPT2) (1=disable)
  1068.     Bit 0    Disable PM Event on IRQ4 Activity (COM1) (1=disable)
  1069.  
  1070. ---------------------------------------------
  1071.  65h - (AWARD) Power Management
  1072.     Bit 7-4    ??? may be unused.  Defaults to all 1's
  1073.     Bit 3    Disable PM Event on IRQ15 Activity (1=disable)
  1074.     Bit 2    Disable PM Event on IRQ14 Activity (Hard Disk) (1=disable)
  1075.     Bit 1    Disable PM Event on IRQ13 Activity (Coprocessor) (1=disable)
  1076.     Bit 0    Disable PM Event on IRQ12 Activity (PS/2 Mouse) (1=disable)
  1077.  
  1078. ---------------------------------------------
  1079.  66h - (AMI 1990 Hyundai super-NB368S notebook)
  1080.     doze mode timeout 00-0F, from table (0,12 -14 sec)
  1081.  
  1082. ---------------------------------------------
  1083.  66h-79h - (AWARD) ??? unused ???  Defaults to all FFh's.
  1084.  
  1085. ---------------------------------------------
  1086.  67h - (AMI 1990 Hyundai super-NB368S notebook)
  1087.     sleep mode timeout 00-0F, units of 1 second
  1088.  
  1089. ---------------------------------------------
  1090.  68h - (AMI 1990 Hyundai super-NB368S notebook)
  1091.     suspend mode timeout 01-0F, units of 5 minutes
  1092.  
  1093. ---------------------------------------------
  1094.  68h-6Fh - (AWARD) IDE hard disk params for first drive on secondary IDE port
  1095.  
  1096. ---------------------------------------------
  1097.  69h - (AMI 1990 Hyundai super-NB368S notebook)
  1098.     LCD mode timeout 01-0F, units of 1 minute
  1099.  
  1100. ---------------------------------------------
  1101.  6Ah - (AMI 1990 Hyundai super-NB368S notebook) - ???
  1102.  
  1103. ---------------------------------------------
  1104.  70h-77h - (AWARD) IDE hard disk params for second drive on secondary IDE port
  1105.  
  1106. ---------------------------------------------
  1107.  78h-7Dh - (AMI WinBIOS) used by BIOS as scratch RAM
  1108.  
  1109. ---------------------------------------------
  1110.  7Ah - (AWARD) Extended CMOS Checksum, High Byte
  1111.  
  1112. ---------------------------------------------
  1113.  7Bh - (AWARD) Extended CMOS Checksum, Low Byte
  1114.     Award's extended checksum is the arithmetic sum of all the bytes
  1115.     from 40h (64 decimal) through 79h (121 decimal).
  1116.  
  1117. ---------------------------------------------
  1118.  7Eh-7Fh - (AMI WinBIOS) used as scratch RAM by power management code
  1119.  
  1120. ---------------------------------------------
  1121.  
  1122. Revision History
  1123.  
  1124. v1.25    June  1995    Added AMI WinBIOS info from Daniel Miller (Ralf)
  1125. v1.24    Jan,  1995    Added Award info from Tim Farley (Ralf)
  1126. v1.23    June, 1994    Added some MCA info from _The_Undocumented_PC_
  1127. v1.22    Feb,  1994    Added NMI mask note
  1128. v1.21    Jan,  1994    Added note for PS/2 checksum found
  1129. v1.20    Sept, 1993    PHOENIX data from Wim Osterholt added
  1130.             additional AMI data from Howie (hjh@gwd.dst.gov.au)
  1131. v1.15    June, 1993    AMSTRAD data updated
  1132. v1.1    June, 1993    AMSTRAD & PS/2 data added 
  1133. v1.0    June, 1993    First release: Motorola MC 146818,  PC-AT & AMI 
  1134.             "Hi-Flex" information baselined
  1135.