`Wed May 2 21:50:32 EDT 2001
`
` CMOS
` ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`
`CMOS Memory Map Release 50 Last change 5/12/96
`
`Compiled from multiple sources by Padgett Peterson
`Corrections/additions/comments to: padgett@tccslr.dnet.mmc.com
`
`No guarantees of any kind.
`
`Copyrights/Trademarks belong to whoever they may belong to.
`
`Found: Algorithm used by IBM in calculating CRC checksums for PS/2
` (see bytes 32h‐33h). Complex (recursive part is 12 lines of
` assembly) and not yet validated for every model.
`‐‐‐‐‐‐‐‐!‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
` Background
`
`The CMOS (complementary metal oxide semiconductor) memory is actually
`a 64 or 128 byte battery‐backed RAM memory module that is a part of the
`system clock chip. Some IBM PS/2 models have the capability for a
`2k (2048 byte) CMOS ROM Extension.
`
`First used with clock‐calender cards for the IBM PC‐XT, when the PC/AT
`(Advanced Technology) was introduced in 1985, the Motorola MC146818
`became a part of the motherboard. Since the clock only uses fourteen of
`the RAM bytes, the rest are available for storing system configuration data.
`
`Interestingly, the original IBM‐PC/AT (Advanced Technology) standard for
`the region 10h‐3Fh is nearly universal with one notable exception: The
`IBM PS/2 systems deviate considerably (Note: AMSTRAD 8086 machines were
`among the first to actively use the CMOS memory available and since they
`*predate* the AT, do not follow the AT standard).
`
`This is just another example of how IBM created a standard, lost control
`of it, tried to replace it, failed and lost market share in the process.
`
`Originally, the IBM PC/AT only made use of a small portion of CMOS memory
`and was defined in the IBM PC/AT Technical Reference Manual, specifically
`bytes 10h, 12h, 14h‐18h, 2Eh‐33h. The balance was left undefined but was
`quickly appropriated by various BIOS manufacturers for such user‐selectable
`options such as wait states, clock speeds, initial boot drive selection, and
`password storage.
`
`Later, as CMOS memory requirements grew, newer clock chips with 128
`bytes of RAM came into use. However the fact remains that once the AT
`standard was established, only IBM has tried to change the definitions
`of that first description.
`
` Accessing the CMOS
`
`The CMOS memory exists outside of the normal address space and cannot
`contain directly executable code. It is reachable through IN and OUT
`commands at port number 70h (112d) and 71h (113d). To read a CMOS byte,
`an OUT to port 70h is executed with the address of the byte to be read and
`an IN from port 71h will then retrieve the requested information. The
`following BASIC fragment will read 128 CMOS bytes and print them to the
`screen in 8 rows of 16 values.
`
`CMOS RAM space has an upper limit of 128 bytes because of the structure
`
`EXHIBIT 2004
`
`
`
`of port 70: only bits 0‐6 are used for addressing, bit 7 is used to
`enable (0) or disable (1) Non‐Maskable Interrupts (NMI) and explains why
`IBM uses 80h OR
` to read/write data & follows with a "throw‐away"
`call.
`
`Note that if the CMOS only has 64 bytes available, addressing will
`generally wrap and addresses from 40h‐7Fh will mirror 00h‐3Fh. Output will
`be hexadecimal.
`
`10 CLS
`20 FOR i = 0 TO &H7F
`30 OUT &H70, i
`40 PRINT USING "\ \"; HEX$(INP(&H71));
`50 NEXT i
`60 PRINT " "
`
`Note: where not otherwise noted, all data points are expressed as BYTES
` these are eight bit values and are read from MSB to LSB e.g.
` 0000 0000 0101 1010 binary would be written as 5Ah
` 7654 3210 where only some bits are used this is represented with
` Xs e.g bits 5‐3 would be shown as 00xx x000
`
`Note: the entries for AMI WinBIOS also apply to AMIBIOS with core dates of
` 12/15/95 or later
`
`‐‐‐‐‐‐‐‐!‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
` Organization of CMOS Memory ‐ Clock
`
`00h‐0Eh is defined by the clock hardware and all must follow it. Other
`manufacturers generally follow the same format as specified for the
`region 10h ‐ 2Fh. Some also follow the IBM format for 30h‐33h but not all
`(Zenith in particular is different).
`
`The first fourteen bytes are dedicated to the MC146818 chip clock functions
`and consist of ten read/write data registers and four status registers, two
`of which are read/write and two of which are read only.
`
`The format of the ten clock data registers (bytes 00h‐09h) is:
`
`‐‐‐‐‐‐‐‐‐‐R00‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 00h ‐ RTC ‐ SECONDS
`Desc: (BCD 00‐59, Hex 00‐3B)
`Note: Bit 7 is read only
`SeeAlso: CMOS 01h,CMOS 02h,CMOS 04h
`‐‐‐‐‐‐‐‐‐‐R01‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 01h ‐ RTC ‐ SECOND ALARM
`Desc: (BCD 00‐59, Hex 00‐3B; "don't care" if C0‐FF)
`SeeAlso: CMOS 00h,CMOS 03h,CMOS 05h
`‐‐‐‐‐‐‐‐‐‐R02‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 02h ‐ RTC ‐ MINUTES
`Desc: (BCD 00‐59, Hex 00‐3B)
`SeeAlso: CMOS 00h,CMOS 03h,CMOS 04h
`‐‐‐‐‐‐‐‐‐‐R03‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 03h ‐ RTC ‐ MINUTE ALARM
`Desc: (BCD 00‐59, Hex 00‐3B; "don't care" if C0‐FF))
`SeeAlso: CMOS 00h,CMOS 02h,CMOS 05h
`‐‐‐‐‐‐‐‐‐‐R04‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 04h ‐ RTC ‐ HOURS
`Desc: (BCD 00‐23, Hex 00‐17 if 24 hr mode)
` (BCD 01‐12, Hex 01‐0C if 12 hr am)
` (BCD 81‐92. Hex 81‐8C if 12 hr pm)
`SeeAlso: CMOS 00h,CMOS 02h,CMOS 05h
`‐‐‐‐‐‐‐‐‐‐R05‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 05h ‐ RTC ‐ HOUR ALARM
`
`EXHIBIT 2004
`
`
`
`Desc: (same as hours; "don't care" if C0‐FF))
`SeeAlso: CMOS 01h,CMOS 03h,CMOS 04h
`‐‐‐‐‐‐‐‐‐‐R06‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 06h ‐ RTC ‐ DAY OF WEEK
`Desc: (01‐07 Sunday=1)
`SeeAlso: CMOS 07h,CMOS 08h,CMOS 09h
`‐‐‐‐‐‐‐‐‐‐R07‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 07h ‐ RTC ‐ DATE OF MONTH
`Desc: (BCD 01‐31, Hex 01‐1F)
`SeeAlso: CMOS 06h,CMOS 08h,CMOS 09h
`‐‐‐‐‐‐‐‐‐‐R08‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 08h ‐ RTC ‐ MONTH
`Desc: (BCD 01‐12, Hex 01‐0C)
`SeeAlso: CMOS 06h,CMOS 07h,CMOS 09h
`‐‐‐‐‐‐‐‐‐‐R09‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 09h ‐ RTC ‐ YEAR
`Desc: (BCD 00‐99, Hex 00‐63)
`Notes: BCD/Hex selection depends on Bit 2 of register B (0Bh)
` 12/24 Hr selection depends on Bit 1 of register B (0Bh)
` Alarm will trigger when contents of all three Alarm byte registers
` match their companions.
`SeeAlso: CMOS 06h,CMOS 07h,CMOS 08h
`
`The following is the on‐chip status register information.
`
`‐‐‐‐‐‐‐‐‐‐R0A‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Ah ‐ RTC ‐ STATUS REGISTER A (read/write) (usu 26h)
`
`Bitfields for Real‐Time Clock status register A:
`Bit(s) Description (Table C001)
` 7 =1 time update cycle in progress, data ouputs undefined
` (bit 7 is read only)
` 6‐4 22 stage divider
` 010 = 32768 Hz time base (default)
` 3‐0 rate selection bits for interrupt
` 0000 none
` 0011 122 microseconds (minimum)
` 1111 500 milliseconds
` 0110 976.562 microseconds (default 1024 Hz)
`SeeAlso: #C002,#C003,#C004
`‐‐‐‐‐‐‐‐‐‐R0B‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Bh ‐ RTC ‐ STATUS REGISTER B (read/write)
`
`Bitfields for Real‐Time Clock status register B:
`Bit(s) Description (Table C002)
` 7 enable cycle update
` 6 enable periodic interrupt
` 5 enable alarm interrupt
` 4 enable update‐ended interrupt
` 3 enable square wave output
` 2 Data Mode ‐ 0: BCD, 1: Binary
` 1 24/12 hour selection ‐ 1 enables 24 hour mode
` 0 Daylight Savings Enable ‐ 1 enables
`SeeAlso: #C001,#C003,#C004
`‐‐‐‐‐‐‐‐‐‐R0C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Ch ‐ RTC ‐ STATUS REGISTER C (Read only)
`
`Bitfields for Real‐Time Clock status register C:
`Bit(s) Description (Table C003)
` 7 Interrupt request flag
` =1 when any or all of bits 6‐4 are 1 and appropriate enables
` (Register B) are set to 1. Generates IRQ 8 when triggered.
` 6 Periodic Interrupt flag
` 5 Alarm Interrupt flag
` 4 Update‐Ended Interrupt Flag
`
`EXHIBIT 2004
`
`
`
` 3‐0 unused???
`SeeAlso: #C001,#C002,#C004
`‐‐‐‐‐‐‐‐‐‐R0D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Dh ‐ RTC ‐ STATUS REGISTER D (read only)
`
`Bitfields for Real‐Time Clock status register D:
`Bit(s) Description (Table C004)
` 7 Valid RAM ‐ 1 indicates batery power good, 0 if dead or disconnected.
` 6‐0 unused??? (0)
`‐‐‐‐‐‐‐‐!‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
` 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:
`‐‐‐‐‐‐‐‐‐‐R0E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Eh ‐ IBM PS/2 ‐ DIAGNOSTIC STATUS BYTE
`
`Bitfields for IBM PS/2 diagnostic status byte:
`Bit(s) Description (Table C005)
` 7 indicates clock has lost power
` 6 incorrect checksum
` 5 equipment configuration is incorrect
` (power‐on check requires that atleast one floppy be installed)
` 4 error in memory size
` 3 controller or disk drive failed initialization
` 2 time is invalid
` 1 installed adaptors do not match configuration
` 0 time‐out while reading adaptor ID
`‐‐‐‐‐‐‐‐‐‐R0E13‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Eh‐13h ‐ AMSTRAD ‐ TIME AND DATE MACHINE LAST USED
`‐‐‐‐‐‐‐‐‐‐R0F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 0Fh ‐ IBM ‐ RESET CODE (IBM PS/2 "Shutdown Status Byte")
`
`(Table C006)
`Values for Reset Code / Shutdown Status Byte:
` 00h‐03h perform power‐on reset
` 00h software reset or unexpected reset
` 01h reset after memory size check in real/virtual mode
` (or: chip set initialization for real mode reentry)
` 02h reset after successful memory test in real/virtual mode
` 03h reset after failed memory test in real/virtual mode
` 04h INT 19h reboot
` 05h flush keyboard (issue EOI) and jump via 40h:0067h
` 06h reset (after successful test in virtual mode)
` (or: jump via 40h:0067h without EOI)
` 07h reset (after failed test in virtual mode)
` 08h used by POST during protected‐mode RAM test (return to POST)
` 09h used for INT 15/87h (block move) support
` 0Ah resume execution by jump via 40h:0067h
` 0Bh resume execution via IRET via 40h:0067h
` 0Ch resume execution via RETF via 40h:0067h
` 0Dh‐FFh perform power‐on reset
`‐‐‐‐‐‐‐‐!‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`
`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.
`
`EXHIBIT 2004
`
`
`
`‐‐‐‐‐‐‐‐‐‐R10‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 10h ‐ IBM ‐ FLOPPY DRIVE TYPE
`Note: 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.
`
`Bitfields for floppy drives A/B types:
`Bit(s) Description (Table C007)
` 7‐4 first floppy disk drive type (see #C008)
` 3‐0 second floppy disk drive type (see #C008)
`
`(Table C008)
`Values for floppy drive type:
` 00h no drive
` 01h 360 KB 5.25 Drive
` 02h 1.2 MB 5.25 Drive ‐ note: not listed in PS/2 technical manual
` 03h 720 KB 3.5 Drive
` 04h 1.44 MB 3.5 Drive
` 05h 2.88 MB 3.5 drive
` 06h‐0Fh unused
`SeeAlso: #C007
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 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.
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 11h ‐ older AMI Hi‐Flex BIOS ‐ KEYBOARD TYPEMATIC DATA
`
`Bitfields for AMI Hi‐Flex BIOS keyboard typematic data:
`Bit(s) Description (Table C009)
` 7 enable Typematic
` 6‐5 Typematic Delay (wait before begin repeating)
` 00b 250 ms
` 01b 500 ms
` 10b 750 ms
` 11b 100 ms
` 4‐0 Typematic Rate (char/sec)
` 00000b ‐ 30.0 01000b ‐ 15.9 10000b ‐ 7.5 11000b ‐ 3.7
` 00001b ‐ 26.7 01001b ‐ 13.3 10001b ‐ 6.7 11001b ‐ 3.3
` 00010b ‐ 24.0 01010b ‐ 12.0 10010b ‐ 6.0 11010b ‐ 3.0
` 00011b ‐ 21.8 01011b ‐ 10.9 10011b ‐ 5.5 11011b ‐ 2.7
` 00100b ‐ 20.0 01100b ‐ 10.0 10100b ‐ 5.0 11100b ‐ 2.5
` 00101b ‐ 18.5 01101b ‐ 9.2 10101b ‐ 4.6 11101b ‐ 2.3
` 00110b ‐ 17.1 01110b ‐ 8.6 10110b ‐ 4.3 11110b ‐ 2.1
` 00111b ‐ 16.0 01111b ‐ 8.0 10111b ‐ 4.0 11111b ‐ 2.0
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 11h ‐ AMI ‐ ADVANCED SETUP OPTIONS
`
`Bitfields for AMI advanced setup options:
`Bit(s) Description (Table C010)
` 7 mouse enabled
` 6 test memory above 1 megabyte
` 5 generate clicks during memory test
` 4 enable memory parity check
` 3 display key for Setup while booting
` 2 store user‐defined disk data at top of memory instead of 0030h:0000h
` 1 request F1 keypress on boot error
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 11h ‐ AMI WinBIOS ‐ BOOT OPTIONS
`SeeAlso: CMOS 13h"AMI"
`
`Bitfields for AMI WinBIOS boot options:
`Bit(s) Description (Table C011)
` 7 systems boots with high CPU speed
` 6 memory test above 1MB enabled
`
`EXHIBIT 2004
`
`
`
` 5 memory test tick sound enabled
` 4 floppy drive seek at boot enabled
` 3 "Hit " message enabled
` 2 BIOS extended RAM area takes 1K at top of memory instead of 30h:0000h
` 1 wait for F1 key on error
` 0 NumLock enabled at boot
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 11h ‐ AWARD ‐ CONFIGURATION BITS
`
`Bitfields for AWARD configuration bits:
`Bit(s) Description (Table C012)
` 7 NumLock ON at reboot
` 6 IDE Block Mode enabled
` 5 ???
` 4 Shadow ROM BIOS at CC00‐CFFF
` 3 Shadow ROM BIOS at C800‐CBFF
` 2 ???
` 1 BIOS Password Enabled
` 0 0 = Password controls BIOS Setup Only
` 1 = Password required to enter System
`‐‐‐‐‐‐‐‐‐‐R11‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 11h ‐ Quadtel HT12 BIOS 03.05.03 ‐ CONFIGURATION BITS
`
`Bitfields for Quadtel HT12 configuration bits:
`Bit(s) Description (Table C013)
` 7 640K RAM present
` 6 extension type (=CPU's Machine Status Word)
` 3‐2 NumLock state at boot time
` 00 Auto
` 01 NumLock on
` 10 Numlock off
` 0 384K RAM relocated to top of memory
`‐‐‐‐‐‐‐‐‐‐R12‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 12h ‐ IBM ‐ HARD DISK DATA
`Notes: A PC with a single type 2 (20 Mb ST‐225) hard disk will have 20h in
` byte 12h
` some PCs utilizing external disk controller ROMs will use type 0 to
` disable ROM BIOS (e.g. Zenith 248 with Plus HardCard).
`
`Bitfields for IBM hard disk data:
`Bit(s) Description (Table C014)
` 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 19h)
` 3‐0 Second Hard Disk Drive Type
` (same as first except extrnded type will be found in 1Ah).
`‐‐‐‐‐‐‐‐‐‐R12‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 12h ‐ IBM PS/2 ‐ SECOND FIXED DISK DRIVE TYPE (00‐FFh)
`SeeAlso: CMOS 11h"IBM PS/2"
`‐‐‐‐‐‐‐‐‐‐R13‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 13h ‐ AMI Hi‐Flex BIOS ‐ ADVANCED SETUP OPTIONS
`SeeAlso: CMOS 11h"WinBIOS"
`
`Bitfields for AMI Hi‐Flex BIOS advanced setup options:
`Bit(s) Description (Table C015)
` 7 Mouse Enabled (1 = On)
` 6 Test Memory above 1 MB (1 = On)
` 5 Memory Test Tick Sound (1 = On)
` 4 Memory Parity Error Check (1 = On)
` 3 Press to Disable Memory Test (1 = On)
` 2 User‐Defined Hard Disk (1 = Type 47 data area at address 0:300h)
` 1 Wait for Message if Error (1 = On)
` 0 Turn Num Lock On at boot (1 = On)
`
`EXHIBIT 2004
`
`
`
`‐‐‐‐‐‐‐‐‐‐R13‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 13h ‐ AMI WinBIOS ‐ PERIPHERAL OPTIONS
`
`Bitfields for AMI WinBIOS peripheral options:
`Bit(s) Description (Table C016)
` 7‐5 typematic rate
` 000‐111 = 6,8,10,12,15,20,24,30 cps
` 4 numeric processor test enabled
`‐‐‐‐‐‐‐‐‐‐R13‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 13h ‐ PS/2 MCA ‐ INTERNAL POST OPERATIONS
`
`Bitfields for PS/2 MCA internal POST operations:
`Bit(s) Description (Table C017)
` 7 POST sets VGA pel information
` 6 RTC battery OK
` 5 invoke ROM BASIC from POST
` 4 POST sets typematic to 30cps/250ms delay instead of 10.9cps/500ms
` 3‐2 unused or unknown
` 1 network password installed
` 0 power‐on password installed
`‐‐‐‐‐‐‐‐‐‐R13‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 13h ‐ AWARD ‐ Configuration Bits
`
`Bitfields for AWARD configuration bits:
`Bit(s) Description (Table C018)
` 7 set keyboard typematic rate
` 4‐6 keyboard repeat rate
` 000 = 6 cps
` 001 = 8 cps
` 010 = 10 cps
` 011 = 12 cps
` 100 = 15 cps
` 101 = 20 cps
` 110 = 24 cps
` 111 = 30 cps
` 2‐3 keyboard typematic delay
` 00 = 250 Msec
` 01 = 500 Msec
` 10 = 750 Msec
` 11 = 1000 Msec
` 1 ???
` 0 boot up floppy seek
`‐‐‐‐‐‐‐‐‐‐R14‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 14h ‐ IBM ‐ EQUIPMENT BYTE
`
`Bitfields for IBM equipment byte:
`Bit(s) Description (Table C019)
` 7‐6 number of floppy drives (system must have at least one)
` 00b 1 Drive
` 01b 2 Drives
` 10b ??? 3 Drives
` 11b ??? 4 Drives
` 5‐4 monitor type
` 00b Not CGA or MDA (observed for EGA & VGA)
` 01b 40x25 CGA
` 10b 80x25 CGA
` 11b MDA (Monochrome)
` 3 display enabled (turned off to enable boot of rackmount)
` 2 keyboard enabled (turn off to enable boot of rackmount)
` 1 math coprocessor installed
` 0 floppy drive installed (turned off for rackmount boot)
`‐‐‐‐‐‐‐‐‐‐R14‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 14h ‐ AMSTRAD ‐ BYTE user RAM checksum
`Desc: LSB of sum of all user bytes should be AAh
`‐‐‐‐‐‐‐‐‐‐R15‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`
`EXHIBIT 2004
`
`
`
`CMOS 15h ‐ IBM ‐ BASE MEMORY IN KB (low byte)
`‐‐‐‐‐‐‐‐‐‐R15‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 15h ‐ AMSTRAD ‐ WORD Enter key scancode/ASCII code
`Note: default: 1C0Dh ‐ emulates Return key
`‐‐‐‐‐‐‐‐‐‐R16‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 16h ‐ IBM ‐ BASE MEMORY IN KB (high byte)
`Note: 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.
`‐‐‐‐‐‐‐‐‐‐R17‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 17h ‐ IBM ‐ EXTENDED MEMORY IN KB (low byte)
`‐‐‐‐‐‐‐‐‐‐R17‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 17h ‐ AMSTRAD ‐ WORD Forward delete key scancode/ASCII code
`Note: default: 2207h ‐ emulates ^G (bell/beep)
`‐‐‐‐‐‐‐‐‐‐R18‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 18h ‐ IBM ‐ EXTENDED MEMORY IN KB (high byte)
`Notes: some systems will only accommodate 15 MB extended (16 MB total)
` Format is the same as in 15h‐16h
`‐‐‐‐‐‐‐‐‐‐R19‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 19h ‐ IBM ‐ FIRST EXTENDED HARD DISK DRIVE TYPE
`Note: not in original AT specification but now nearly universally used
` except for PS/2.
`
`(Table C020)
`Values for extended hard disk drive type:
` 00‐0Fh unused (would not require extension. Note: this has the effect of
` making type 0Fh (15d) unavailable.
` 10h‐FFh First Extended Hard Drive Type 16d‐255d
`Note: For most manufacturers the last drive type (typically either 47d or 49d)
` is "user defined" and parameters are stored elsewhere in the CMOS.
`‐‐‐‐‐‐‐‐‐‐R19‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 19h ‐ MCA ‐ SLOT 0 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R19‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 19h ‐ AMI ‐ ???
`
`Bitfields for AMI location 19h:
`Bit(s) Description (Table C021)
` 3‐0 ???
` 7‐4 ???
`‐‐‐‐‐‐‐‐‐‐R191A‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 19h‐1Ah ‐ AMSTRAD ‐ Joystick fire button 1 scancode/ASCII code
`Note: default: FFFFh ‐ (no translation)
`‐‐‐‐‐‐‐‐‐‐R1A‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ah ‐ SECOND EXTENDED HARD DISK DRIVE TYPE
`SeeAlso: CMOS 19h"IBM",#C020
`‐‐‐‐‐‐‐‐‐‐R1A‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ah ‐ MCA ‐ SLOT 0 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1B‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Bh ‐ MCA ‐ SLOT 1 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1B‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Bh ‐ AMI ‐ First Hard Disk (type 47) user defined: # of Cylinders, LSB
`‐‐‐‐‐‐‐‐‐‐R1B1C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Bh‐1Ch ‐ AMSTRAD ‐ Joystick fire button 2 scancode/ASCII code
`Note: default: FFFFh ‐ (no translation)
`‐‐‐‐‐‐‐‐‐‐R1B‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Bh ‐ PHOENIX ‐ LSB of Word to 82335 RC1 roll compare register
`‐‐‐‐‐‐‐‐‐‐R1B‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Bh ‐ AWARD ‐ CONFIGURATION BITS
`
`Bitfields for AWARD shadow RAM configuration bits:
`Bit(s) Description (Table C022)
` 7‐4 ???
` 3 Shadow ROM BIOS at DC00‐DFFF
` 2 shadow " " " D800‐DBFF
` 1 shadow " " " D400‐D7FF
`
`EXHIBIT 2004
`
`
`
` 0 shadow " " " D000‐D3FF
`‐‐‐‐‐‐‐‐‐‐R1C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ch ‐ MCA ‐ SLOT 1 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ch ‐ AMI ‐ First Hard Disk user defined: # of Cylinders, High Byte
`‐‐‐‐‐‐‐‐‐‐R1C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ch ‐ PHOENIX ‐ MSB of Word to 82335 RC1 roll compare register
`‐‐‐‐‐‐‐‐‐‐R1C‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Ch,1Dh ‐ AWARD ‐ Password
`Note: Stored as a checksum or CRC using unknown algorithm. (See byte 11h
` to enable)
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ MCA ‐ SLOT 2 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ AMI ‐ First Hard Disk user defined: Number of Heads
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ AMSTRAD ‐ WORD mouse button 1 scancode/ASCII code
`Note: default: FFFFh ‐ (no translation)
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ Zenith Z‐200 monitor ‐ BOOT DRIVE SELECTION
`
`Bitfields for Zenith Z‐200 boot drive selection:
`Bit(s) Description (Table C023)
` 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).
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ PHOENIX ‐ LSB of Word to 82335 RC2 roll compare register
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ AWARD ‐ MSB of password checksum (see byte 1Ch)
`‐‐‐‐‐‐‐‐‐‐R1D‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Dh ‐ Quadtel HT 12 BIOS ‐ first user def. drive: # of cylinders low byte
`‐‐‐‐‐‐‐‐‐‐R1E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Eh ‐ MCA ‐ SLOT 2 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Eh ‐ AMI ‐ First Hard Disk user defined: WPC‐low
`Desc: Write Precompensation Cylinder, Low Byte, for first user‐defined hard
` disk
`‐‐‐‐‐‐‐‐‐‐R1E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Eh ‐ PHOENIX ‐ MSB of Word to 82335 RC2 roll compare register
`‐‐‐‐‐‐‐‐‐‐R1E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Eh ‐ AWARD ‐ 2nd Hard Disk user defined: # of Cylinders Low Byte
`‐‐‐‐‐‐‐‐‐‐R1E‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Eh ‐ Quadtel HT 12 BIOS ‐ FIRST USER DEFINED DRIVE
`
`Bitfields for Quadtel HT‐12 user‐defined drive heads/cylinders:
`Bit(s) Description (Table C024)
` 7‐4 number of heads
` 3‐0 number of cylinders (MSB)
`‐‐‐‐‐‐‐‐‐‐R1F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Fh ‐ MCA ‐ SLOT 3 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R1F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Fh ‐ AMI ‐ First Hard Disk user defined: WPC‐high
`Desc: Write Precompensation Cylinder, high byte, for first user‐defined
` hard disk
`‐‐‐‐‐‐‐‐‐‐R1F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Fh ‐ AMSTRAD ‐ WORD mouse button 2 scancode/ASCII code
`Note: default: FFFFh ‐ (no translation)
`‐‐‐‐‐‐‐‐‐‐R1F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Fh ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): # of Cylinders High
`‐‐‐‐‐‐‐‐‐‐R1F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 1Fh ‐ Quadtel HT 12 BIOS ‐ first user def. drive: WPC‐low
`
`EXHIBIT 2004
`
`
`
`Desc: Write Precompensation Cylinder, low byte, for first user‐defined
` hard disk
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ MCA ‐ SLOT 3 ADAPTER CARD ID
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ AMI ‐ First Hard Disk user defined: Control Byte
`
`Bitfields for AMI user‐defined hard disk control byte:
`Bit(s) Description (Table C025)
` 7‐6 no retries (1)
` 5 bad sector map at last cylinder+1
` 4 unused (0)
` 3 more than 8 heads
` 2‐0 unused (0)
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ AMI WinBIOS ‐ First Hard Disk user defined: Landing Zone, Low Byte
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ PHOENIX ‐ First user defined hard disk (type 48) Cylinders LSB
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Number of Heads
`‐‐‐‐‐‐‐‐‐‐R20‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 20h ‐ Quadtel HT 12 BIOS ‐ FIRST USER DEFINED DRIVE
`SeeAlso: CMOS 26h"Quadtel"
`
`Bitfields for Quadtel landing zone/write‐precompensation:
`Bit(s) Description (Table C026)
` 7‐4 landing zone MSB
` 3‐0 write precom. cyl. MSB
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ MCA ‐ Programmable Option Select configuration byte 2
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ AMI ‐ First Hard Disk user defined: Landing Zone, Low Byte
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ AMI WinBIOS ‐ First Hard Disk user defined: Landing Zone, High Byte
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ AMSTRAD ‐ MOUSE X SCALING FACTOR
`Note: default: 0Ah
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ PHOENIX ‐ First user defined hard disk (type 48) Cylinders MSB
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Write Precomp Low Byte
`‐‐‐‐‐‐‐‐‐‐R21‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 21h ‐ Quadtel HT 12 BIOS ‐ first user def. drive: landing zone low byte
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ MCA ‐ Programmable Option Select configuration byte 3
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ AMI ‐ First Hard Disk user defined: Landing Zone, High Byte
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ AMI WinBIOS ‐ First Hard Disk user defined: # of Sectors per track
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ AMSTRAD ‐ MOUSE Y SCALING FACTOR
`Note: default: 0Ah
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ PHOENIX ‐ First user defined hard disk (type 48) of Heads
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Write Precomp High Byte
`‐‐‐‐‐‐‐‐‐‐R22‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 22h ‐ Quadtel HT 12 BIOS ‐ first user def. drive: sectors per track
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ MCA ‐ Programmable Option Select configuration byte 4
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ AMI ‐ First Hard Disk user defined: # of Sectors per track
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: # Cylinders, Low Byte
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`
`EXHIBIT 2004
`
`
`
`CMOS 23h ‐ AMSTRAD ‐ INITIAL VDU MODE AND DRIVE COUNT
`Note: default: 20h
`
`Bitfields for Amstrad initial VDU mode/drive count:
`Bit(s) Description (Table C027)
` 7 enables extended serial flow control (NB this is buggy)
` 6 set if two floppy drives installed
` 5‐4 (from Amstrad 1640 tech ref)
` 00 Internal video adapter
` 01 CGA card added; 40 x 25 mode
` 10 CGA card added; 80 x 25 mode
` 11 mono card added; 80 x 25 mode
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ PHOENIX ‐ First user defined hard disk (type 48) Write Precomp. LSB
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Landing Zone Low Byte
`‐‐‐‐‐‐‐‐‐‐R23‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 23h ‐ Quadtel HT 12 BIOS ‐ second user def. drive: # of cylinders low byte
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ MCA ‐ Programmable Option Select configuration byte 5
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ AMI ‐ Second Hard Disk user defined: # Cylinders, Low Byte
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: # Cylinders, High Byte
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ AMSTRAD ‐ INITIAL VDU CHARACTER ATTRIBUTE
`Note: default: 7h
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ PHOENIX ‐ First user defined hard disk (type 48) Write Precomp. MSB
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Landing Zone High Byte
`‐‐‐‐‐‐‐‐‐‐R24‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 24h ‐ Quadtel HT 12 BIOS ‐ SECOND USER DEFINED DRIVE
`SeeAlso: CMOS 1Eh"Quadtel",#C024
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ AMI ‐ Second Hard Disk user defined: # of Cylinders, High Byte
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: Number of Heads
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ AMSTRAD ‐ size of RAM disk in 2K blocks
`Note: default: 0 ‐ only used by the RAMDISK software supplied.
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ PHOENIX ‐ First user defined hard disk (type 48) Parking zone LSB
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ AWARD ‐ 2nd Hard Disk user defined (type 48): Sectors per Track
`‐‐‐‐‐‐‐‐‐‐R25‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 25h ‐ Quadtel HT 12 BIOS ‐ second user def. drive: WPC‐low
`Desc: Write Precompensation Cylinder, low byte
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ AMI ‐ Second Hard Disk user defined: Number of Heads
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: WPC‐low
`Desc: Write Precompensation Cylinder, Low Byte
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ AMSTRAD ‐ INITIAL SYSTEM UART SETUP BYTE
`Note: default: E3h ‐ format as for Int 14h fn 0
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ PHOENIX ‐ First user defined hard disk (type 48) Parking zone MSB
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ AWARD ‐ 1st Hard Disk user defined (type 49): # Cylinders, Low Byte
`‐‐‐‐‐‐‐‐‐‐R26‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 26h ‐ Quadtel HT 12 BIOS ‐ SECOND USER DEFINED DRIVE
`SeeAlso: CMOS 20h"Quadtel",#C026
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ AMI ‐ Second Hard Disk user defined: WPC‐low
`
`EXHIBIT 2004
`
`
`
`Desc: Write Precompensation Cylinder, Low Byte
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: WPC‐high
`Desc: Write Precompensation Cylinder, High Byte
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ AMSTRAD ‐ INITIAL EXTERNAL UART SETUP BYTE
`Note: default: E3h ‐ format as for Int 14h fn 0
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ PHOENIX ‐ First user defined hard disk (type 48) Sectors per track
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ AWARD ‐ 1st Hard Disk user defined (type 49): # Cylinders, High Byte
`‐‐‐‐‐‐‐‐‐‐R27‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 27h ‐ Quadtel HT 12 BIOS ‐ SECOND USER DEF. DRIVE: landing zone low byte
`‐‐‐‐‐‐‐‐‐‐R28‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h ‐ AMI ‐ Second Hard Disk user defined: WPC‐high
`Desc: Write Precompensation Cylinder, High Byte
`‐‐‐‐‐‐‐‐‐‐R28‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: Landing Zone, Low Byte
`‐‐‐‐‐‐‐‐‐‐R28‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h ‐ HP Vectra ‐ checksum over bytes 29h‐2Dh
`‐‐‐‐‐‐‐‐‐‐R28‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h ‐ AWARD ‐ 1st Hard Disk user defined (type 49): Number of Heads
`‐‐‐‐‐‐‐‐‐‐R28‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h ‐ Quadtel HT 12 BIOS ‐ second user def. drive: sectors per track
`‐‐‐‐‐‐‐‐‐‐R283F‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 28h‐3Fh ‐ AMSTRAD ‐ user applications default: zeroes
`‐‐‐‐‐‐‐‐‐‐R29‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 29h ‐ AMI ‐ Second Hard Disk user defined: Control Byte
`Note: 80h if # of heads is equal or greater than 8
`‐‐‐‐‐‐‐‐‐‐R29‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
`CMOS 29h ‐ AMI WinBIOS ‐ Second Hard Disk user defined: Landing Zone, High Byte
`‐‐‐‐‐‐‐‐‐‐R29‐