[Back to HARDWARE SWAG index] [Back to Main SWAG index] [Original]

    {
    > Could someone please post what each of the 64 bytes of the CMOS are. I
    > know how to read/write to the CMOS but do not know whitch byte is what.

    I don't think this one is complete, but here you go:

    Offset Hex   Size (bytes)   Description
    ==========   ============   ===========
    00h          1              Current second in BCD
    01h          1              Alarm second (BCD)
    02h          1              Current minute (BCD)
    03h          1              Alarm minute (BCD)
    04h          1              Current hour (BCD)
    05h          1              Alarm hour (BCD)
    06h          1              Current day of week (BCD)
    07h          1              Current day (BCD)
    08h          1              Current month (BCD)
    09h          1              Current year (BCD)
    0Ah          1              Status register A
                 Bit 7   = Update in progress
                                0   = date & time can be read
                                1   = time update busy
                 Bit 6-4 = Time frequency divider
                                010 = 32.768 KHz
                 Bit 3-0 = Rate selection frequency
                                0110 = 1.024 KHz sq. wve. freq.
    0Bh          1              Status register B
                 Bit 7   = Clock update cycle
                                0 = Update normally
                                1 = Abort update in progress
                 Bit 6   = Periodic interrupt
                                0 = disable (default), 1 = enable
                 Bit 5   = Alarm interrupt
                                0 = disable (default), 1 = enable
                 Bit 4   = Update-ended interrupt
                                0 = disable (default), 1 = enable
                 Bit 3   = Status register A sq. wve. freq.
                                0 = disable (default), 1 = enable
                 Bit 2   = Date format
                                0 = Calender in BCD format (default)
                                1 = Calender in binary format
                 Bit 1   = 24-hour clock
                                0 = 24-hour, 1 = 12-hour
                 Bit 0   = Daylight Savings Time
                                0 = disable (default), 1 = enable
    0Ch          1              Status register C
                 Bit 7   = IRQF flag
                 Bit 6   = PF Flag
                 Bit 5   = AF Flag
                 Bit 4   = UF Flag
                 Other bits reserved
    0Dh          1              Status register D
                 Bit 7   = Valid CMOS RAM bit
                                0 = battery dead, 1 = battery OK
                 Other bits reserved
    0Eh          1              Diagnostic status
                 Bit 7   = Real-time clock power status
                                0 = OK, 1 = not OK
                 Bit 6   = CMOS checksum status
                                0 = good, 1 = bad
                 Bit 5   = POST config. status
                                0 = valid, 1 = not valid
                 Bit 4   = POST Memory size check
                                0 = OK, 1 = !OK
                 Bit 3   = Fixd disk/adapter init.
                                0 = init OK, 1 = init bad
                 Bit 2   = CMOS time status
                                0 = OK, 1 = !OK
                 Other bits reserved
    0Fh          1              Shutdown code
                 00h     = Power on or soft reset
                 04h     = POST end; boot system
                 05h     = JMP dword ptr with EOI
                 06h     = Prot. mode tests OK
                 07h     = Prot. mode tests FAILED
                 08h     = Memory size FAILED
                 09h     = int 15h block move
                 0Ah     = JMP dword ptr with EOI
                 0Bh     = Used by 80386
    10h          1              Floppy drive types
                 Bits 7-4= Drive 0 type
                 Bits 3-0= Drive 1 type
                 (0000 = none, 0001 = 360K, 0010 = 1.2M, 0011 = 720K,
                  0100 = 1.44M, 0101 = 2.88K?)
    11h          1              Reserved
    12h          1              HD types
                 Bits 7-4= Drive 0 type (0-15)
                 Bits 3-0= Drive 1 type (0-15)
    13h          1              Reserved
    14h          1              Installed equipment
                 Bits 7-6= Number of floppy drives
                 Bits 5-4= Primary display
                                00= Adapter BIOS
                                01= CGA 40 cols
                                10= CGA 80 cols
                                11= MDA
                 Bits 3-2= Reserved
                 Bit 1   = Math copro. present
                 Bit 0   = Floppy drive present
    15h          1              Base memory low-order byte
    16h          1              Base memory high-order byte
    17h          1              Ext. mem. low-order byte
    18h          1              Ext. mem. high-order byte
    19h          1              Hard disk 0 extended type (0-255)
    1Ah          1              Hard disk 1 ext. type (0-255)
    1Bh          9              Reserved
    2Eh          1              CMOS checksum high order byte
    2Fh          1              CMOS checksum low order byte
    30h          1              Actual extended memory low-order byte
    31h          1              Actual extended memory high-order byte
    32h          1              Date century in BCD
    33h          1              POST information flag
                 Bit 7 = Top 128K base memory status
                                0 = not installed
                                1 = installed
                 Bit 6 = Setup program flag
                                0 = Normal (default)
                                1 = Output user message
                 Other bits reserved
    34h          2              Reserved

[Back to HARDWARE SWAG index] [Back to Main SWAG index] [Original]