[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Organization of CMOS Memory - non-Clock


The last two bytes in the first hexadecimal decade (hexade ?) were not
specified in the PC/AT but may have the following use on some systems:

 0Eh (PS/2) Diagnostic Status Byte
     Bit 7 - When set (1) indicates clock has lost power
     Bit 6 - (1) indicates incorrect checksum
     Bit 5 - (1) indicates that equipment configuration is incorrect
                 power-on check requires that atleast one floppy be installed
     Bit 4 - (1) indicates error in memory size
     Bit 3 - (1) indicates that controller or disk drive failed initialization
     Bit 2 - (1) indicates that time is invalid
     Bit 1 - (1) indicates installed adaptors do not match configuration
     Bit 0 - (1) indicates a time-out while reading adaptor ID

 0Eh (AMSTRAD) 6  BYTEs time and date machine last used

 0Fh Reset Code
     (IBM PS/2 "Shutdown Status Byte")

The second group of values extends from address 10h to 2Dh. The word at
2Eh-2Fh is a byte-wise summation of the values in these bytes. Most BIOSes
will generate a CMOS Checksum error if this value is invalid however many
programs ignore the checksum and report the apparent value. The current
version of MSD reports my XT as having 20+ MB of extended memory.

Where a definiton appears universal, no identification is made. Where
the definition is thought to be specific to a manufacturer/model (AMI,
AMSTRAD, IBM AT, IBM PS/2) the identification is enclosed in parens. The
AMSTAD definitions appear to relate to 8088/8086 (PC and PC/XT class)
mchines only. AT class machines appear to adhere to IBM PC/AT fornat.

 10h - Floppy Drive Type

  Bits 7-4 - First Floppy Disk Drive Type
   0h      No Drive
   1h      360 KB 5 1/4 Drive
   2h      1.2 MB 5 1/4 Drive - note: not listed in PS/2 technical manual
   3h      720 KB 3 1/2 Drive
   4h     1.44 MB 3 1/2 Drive
   5h-Fh  unused (??? 5h: 2.88 Mb 3 1/2 Drive ???)

   Bits 3-0 Second Floppy Disk Drive Type (bit settings same as A)

   Hence a PC having a 5 1/4 1.2 Mb A: drive and a 1.44 Mb B: drive will
   have a value of 24h in byte 10h. With a single 1.44 drive: 40h.


 11h - (IBM-PS/2) First Fixed Disk Drive Type Byte (00-FFh) Note: if IBM
   ESDI or SCSI drive controller is used, CMOS drive type will be zero (00 -
   no drive) and Int 13h will be directed to controller ROM.
 11h - (AMI) Keyboard Typematic Data

  Bit 7 Enable Typematic (1 = On)

  Bits 6-5 Typematic Delay (wait before begin repeating)
   00b 250 ms
   01b 500 ms
   10b 750 ms
   11b 100 ms

  Bits 4-0 Typematic Rate char/sec e.g. 01010b = 12.0 cps
   00000b - 300  01000b - 159  10000b - 75  11000b - 37
   00001b - 267  01001b - 133  10001b - 67  11001b - 33
   00010b - 240  01010b - 120  10010b - 60  11010b - 30
   00011b - 218  01011b - 109  10011b - 55  11011b - 27
   00100b - 200  01100b - 100  10100b - 50  11100b - 25
   00101b - 185  01101b -  92  10101b - 46  11101b - 23
   00110b - 171  01110b -  86  10110b - 43  11110b - 21
   00111b - 160  01111b -  80  10111b - 40  11111b - 20

 12h - (IBM PS/2) Second Fixed Disk Drive Type (00-FFh) - see 11h
 12h - Hard Disk Data
  Bits 7-4 First Hard Disk Drive
   00     No drive
   01-0Eh Hard drive Type 1-14
   0Fh    Hard Disk Type 16-255 (actual Hard Drive Type is in CMOS RAM 1Ah)
  Bits 3-0 Second Hard Disk Drive Type (same as above except extrnded type
          will be found in 1Bh).
  A PC with a single type 2 (20 Mb ST-225) hard disk will have 20h in byte 12h

  Note: some PCs utilizing external disk controller ROMs will use type 0 to
   disable ROM BIOS (e.g. Zenith 248 with Plus HardCard).

 13h (AMI) Advanced Setup Options
  Bit 7 Mouse Enabled (1 = On)
  Bit 6 Test Memory above 1 MB (1 = On)
  Bit 5 Memory Test Tick Sound (1 = On)
  Bit 4 Memory Parity Error Check (1 = On)
  Bit 3 Press <Esc> to Disable Memory Test (1 = On)
  Bit 2 User-Defined Hard Disk (1 = Type 47 data area at address 0:300h)
  Bit 1 Wait for <F1> Message if Error (1 = On)
  Bit 0 Turn Num Lock On at boot (1 = On)

 14h - Equipment Byte
  Bits 7-6 Number of Floppy Drives (system must have at least one)
   00b     1 Drive
   01b     2 Drives
   10b ??? 3 Drives
   11b ??? 4 Drives
  Bits 5-4 Monitor Type
   00b Not CGA or MDA (observed for EGA & VGA)
   01b 40x25 CGA
   10b 80x25 CGA
   11b MDA (Monochrome)
  Bit 3 Display Enabled (1 = On)   (turned off to enable boot of rackmount)
  Bit 2 Keyboard Enabled (1 = On)  (turned off to enable boot of rackmount)
  Bit 1 Math coprocessor Installed (1 = On)
  Bit 0 Floppy Drive Installed (1 = On) (turned off for rackmount boot)

 14h - (AMSTRAD)    BYTE user RAM checksum
           LSB of sum of all user bytes should be AAh

 15h - Base Memory in K, Low Byte
 15h - (AMSTRAD)    WORD Enter key scancode/ASCII code
           default: 1C0Dh  - emulates Return key

 16h Base Memory in K, High Byte
  The value in 15h-16h should be the same as in 0:413h and that returned by
  Int 12h. A PC having 640k (280h) of conventional memory will return 80h in
  byte 15h and 02h in byte 16h.

 17h - Extended Memory in K, Low Byte
 17h - (AMSTRAD)    WORD Forward delete key scancode/ASCII code
           default: 2207h  - emulates G (bell/beep)

 18h - Extended Memory in K, High Byte (some systems will only accommodate
  15 Mb extended or 16 Mb total) Format is the same as in 15h-16h

 19h - First Extended Hard Disk Drive Type (not in original AT
  specification but now nearly universally used except for PS/2).

  0-Fh unused (would not require extension. Note: this has the effect
    making type 0Fh (15d) unavailable.
  10h-FFh First Extended Hard Drive Type 16d-255d

For most manufacturers the last drive type (typically either 47d or 49d)
is "user defined" and parameters are stored elsewhere in the CMOS.

 19h - (AMSTRAD)    WORD Joystick fire button 1 scancode/ASCII code
           default: FFFFh  - (no translation)

 1Ah - Second Extended Hard Disk Drive Type (see 19h above)

 1Bh - (AMI) First Hard Disk (type 47) user defined: # of Cylinders, LSB
 1Bh - (AMSTRAD)    WORD Joystick fire button 2 scancode/ASCII code
           default: FFFFh  - (no translation)
 1Bh - (PHOENIX) LSB of Word to 82335 RC1 roll compare register

 1Ch - (AMI) First Hard Disk user defined: # of Cylinders, High Byte
 1Ch - (PHOENIX) MSB of Word to 82335 RC1 roll compare register

 1Dh - (AMI) First Hard Disk user defined: Number of Heads
 1Dh - (AMSTRAD)    WORD mouse button 1 scancode/ASCII code
           default: FFFFh  - (no translation)
 1Dh - (Zenith Z-200 monitor) Boot Drive Selection
       Bits 6-5 (0xx0 0000)
       00 - MFM Monitor
       01 - First floppy drive (A:)
       10 - First fixed disk (C:)
       11 - First floppy drive (A:). If not there then First fixed disk (C:)
            (this is the default).
 1Dh - (PHOENIX) LSB of Word to 82335 RC2 roll compare register

 1Eh - (AMI) First Hard Disk user defined: Write Precompensation Cylinder,
       Low Byte
 1Eh - (PHOENIX) MSB of Word to 82335 RC2 roll compare register

 1Fh - (AMI) First Hard Disk user defined: Write Precompensation Cylinder,
       High Byte
 1Fh - (AMSTRAD)    WORD mouse button 2 scancode/ASCII code
           default: FFFFh  - (no translation)

 20h - (AMI) First Hard Disk user defined: Control Byte (80h if # of heads
       is equal or greater than 8)
 20h - (PHOENIX) First user defined hard disk (type 48) Cylinders LSB

 21h - (AMI) First Hard Disk user defined: Landing Zone, Low Byte
 21h - (AMSTRAD) BYTE mouse X scaling factor, default: 0Ah
 21h - (PHOENIX) First user defined hard disk (type 48) Cylinders MSB


 22h - (AMI) First Hard Disk user defined: Landing Zone, High Byte
 22h - (AMSTRAD) BYTE mouse Y scaling factor default: 0Ah
 22h - (PHOENIX) First user defined hard disk (type 48)  of Heads

 23h - (AMI) First Hard Disk user defined: # of Sectors per track
 23h - (AMSTRAD) BYTE initial VDU mode and drive count  default: 20h
    bit 7:  enables extended serial flow control
            (NB this is buggy)
    bit 6:  set if two floppy drives installed
    bits 5 & 4: (from Amstrad 1640 tech ref)
         0   0      Internal video adapter
         0   1      CGA card added; 40 x 25 mode
         1   0      CGA card added; 80 x 25 mode
         1   1      mono card added; 80 x 25 mode
 23h - (PHOENIX) First user defined hard disk (type 48) Write Precomp. LSB

 24h - (AMI) Second Hard Disk user defined: # of Cylinders, Low Byte
 24h - (AMSTRAD)    BYTE initial VDU character attribute, default: 7h
 24h - (PHOENIX) First user defined hard disk (type 48) Write Precomp. MSB


 25h - (AMI) Second Hard Disk user defined: # of Cylinders, High Byte
 25h - (AMSTRAD)    BYTE size of RAM disk in 2K blocks
       default: 0  - only used by the RAMDISK software supplied.
 25h - (PHOENIX) First user defined hard disk (type 48) Parking zone LSB


 26h - (AMI) Second Hard Disk user defined: Number of Heads
 26h - (AMSTRAD)    BYTE initial system UART setup byte
           default: E3h - format as for Int 14h fn 0
 26h - (PHOENIX) First user defined hard disk (type 48) Parking zone MSB

 27h - (AMI) Second Hard Disk user defined: Write Precompensation Cylinder,
       Low Byte
 27h - (AMSTRAD)    BYTE initial external UART setup byte
           default: E3h - format as for Int 14h fn 0
 27h - (PHOENIX) First user defined hard disk (type 48) Sectors per track

 28h - (AMI) Second Hard Disk user defined: Write Precompensation Cylinder,
       High Byte
 28h - (HP Vectra) checksum over words 29h-2Dh

 28h-3Fh (AMSTRAD) 24 BYTEs user applications default: zeroes


 29h - (AMI) Second Hard Disk user defined: Control Byte (80h if # of heads
       is equal or greater than 8)
 29h - (PHOENIX) LSB word to Intel 82335 CC0 compare register

 2Ah - (AMI) Second Hard Disk user defined: Landing Zone, Low Byte
 2Ah - (PHOENIX) MSB word to Intel 82335 CC0 compare register

 2Bh - (AMI) Second Hard Disk user defined: Landing Zone, High Byte
 2Bh - (PHOENIX) LSB word to Intel 82335 CC1 compare register

 2Ch - (AMI) Second Hard Disk user defined: # of Sectors per track
 2Ch - (COMPAQ) bit 6:  0 - numlock OFF on boot, 1 - numlock ON at boot
 29h - (PHOENIX) MSB word to Intel 82335 CC1 compare register

 2Dh - (AMI) Configuration Options
  Bit 7 Weitek Installed(1 = On)
  Bit 6 Floppy Drive Seek - turn off for fast boot
  Bit 5 Boot Order 0 - Drive C:, then A:
                   1 - Drive A:, then C:
  Bit 4 Boot Speed (0 - Low; 1 - High)
  Bit 3 External Cache Enable (1 = On)
  Bit 2 Internal Cache Enable (1 = On)
  Bit 1 Use Fast Gate A20 after boot (1 = On)
  Bit 0 Turbo Switch (1 = On)
 2Dh - (PHOENIX) Checks for values AAh or CCh

 2Eh - Standard CMOS Checksum, High Byte
 2Fh - Standard CMOS Checksum, Low Byte

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson