|
Startmenü
![]() |
CMOS auslesen |
Der CMOS Speicher
befindet sich außerhalb des normalen Adress-Bereiches und kann keinen direkt
ausführbaren Code enthalten. Er ist erreichbar durch IN und OUT Kommandos über Port 70h
und 71h. Um ein CMOS Byte zu lesen, ist ein OUT Kommando an Port 70 nötig, mit Angabe der Adresse, die gelesen werden soll. Durch ein IN Kommando von Port 71h erhält man die gewünschten Informationen. Das nachstehende BASIC-Programm liest 128 CMOS Bytes Blöcke aus und zeigt diese am Bildschirm an. Der CMOS RAM Speicher hat durch die Struktur des Port 70h eine obere Grenze von 128 Bytes. Nur die Bits 0-6 werden für das Adressieren verwendet, Bit 7 wird benutzt, um NMIs ein-(0) oder abzuschalten(1). 10 CLS Wenn nicht anders angegeben, sind alle Daten BYTES. Dies sind acht Bit Werte und die werden von MSB nach LSB gelesen. |
Organisation des CMOS Speichers / Clock |
00h-0Eh ist
definiert durch die Clock Hardware und alles andere muß danach kommen. Viele Hersteller
arbeiten mit diesem Format im Bereich 10h-2Fh. Andere wenige wiederum verwenden das IBM
Format - 30h-33h.
Die ersten 14 Bytes sind für die MC146818 Clock Funktionen reserviert und bestehen aus 10 Read/Write Daten Registern und 4 Status Registern. 2 davon sind Read/Write und 2 sind Read-Only. 10 Clock Daten Register (Bytes 00h-09h) 00h Sekunden 01h Sekunden Alarm 02h Minuten 03h Minuten Alarm 04h Stunden 05h Stunden Alarm 06h Tag der Woche 07h Datum des Monats 08h Monat 09h Jahr BCD/HEX Auswahl ist abhängig von Bit 2 von Register B (0Bh) 12/24 Std. Auswahl ist abhängig von Bit 1 von Register B (0Bh) . Alarm wird ausgelöst, wenn alle drei Alarm Byte Register mit denen der normalen Zeit übereinstimmen. |
On-Chip Status Register Information (0Ah - 0Dh) |
0Ah Status
Register A (Read/Write) (usu 26h) Bit 7 - (1) Zeit Update Zyklus läuft, Datenausgaben undefiniert (Bit 7 ist Read-Only) Bit 6,5,4 - 22 Stufen-Teiler. 010b - 32.768 Khz Zeitbasis (Standard) Bit 3-0 - Auswahl Bits für Interrupt 0000b - kein 0011b - 122 Mikrosekunden (minimum) 1111b - 500 Millisekunden 0110b - 976.562 Mikrosekunden (Standard) 0Bh
Status Register B (Read/Write) 0Ch Status Register C (Read Only) 0Dh Status Register D (Read Only) |
CMOS Speicher Organisation |
Die letzten zwei Bytes der
ersten hexadezimalen Dekade sind im PC-AT nicht spezifiziert, werden aber von vielen
Systemen, wie in den folgenden Abschnitten beschrieben, benutzt.
0Eh (PS/2) Diagnose Status Byte 0Fh Reset Code (IBM PS/2 "Shutdown
Status Byte") Die zweite Gruppe von Werten liegt zwischen 10h
und 2Dh. Das Wort bei 2Eh-2Fh ist eine Byteweise Summe der Werte dieser Bytes. Die meisten
BIOSse generieren einen CMOS Checksum Error, wenn dieser Wert falsch ist. 11h - (AMI) Erweiterte Setup Optionen 11h - (AWARD) Konfiguration Bits 12h - (IBM PS/2) Zweiter Festplattentyp
(00-FFh) 13h (AMI) Erweiterte Setup Optionen 13h - (AWARD) Konfiguration Bits 14h - PC-Ausstattung Byte 15h - Basis Speicher in KB, Niederes Byte 16h - Basis Speicher in KB, Höheres Byte 17h - Extended Speicher in KB, Niederes Byte 18h - Extended Speicher in KB, Höheres
Byte 19h - Erster Extended Festplatten Typ 1Bh - (AMI) Erste Festplatte (Typ 47)
Benutzer definiert Anzahl der Zylinder, LSB |
20h - (AMI)
Erste Festplatte Benutzer definiert: Kontroll Byte Bits 7-6 unbenutzt (1) Bit 5 Bad-Sektor-Map im letzten Zylinder + 1 Bit 4 unbenutzt (0) Bit 3 mehr als 8 Köpfe Bits 2-0 unbenutzt (0) 20h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Anzahl der Zylinder - LSB 20h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Köpfe 21h - (AMI) Erste Festplatte Benutzer definiert Lande Zone, Niederes Byte 21h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Anzahl der Zylinder - MSB 21h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC), Niederes Byte 22h - (AMI) Erste Festplatte Benutzer definiert Lande Zone, Höheres Byte 22h - (PHOENIX) Erste Festplatte Benutzer defifiert (Typ 48) Anzahl der Köpfe 22h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC), Höheres Byte 23h - (AMI) Erste Festplatte Benutzer definiert Anzahl der Sektoren pro Track 23h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC), LSB 23h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Lande Zone, Niederes Byte 24h - (AMI) Zweite Festplatte Benutzer definiert Anzahl der Zylinder, Niederes Byte 24h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC), MSB 24h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Lande Zone, Höheres Byte 25h - (AMI) Zweite Festplatte Benutzer definiert Anzahl der Zylinder, Höheres Byte 25h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Park Zone, LSB 25h - (AWARD) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Sektoren per Track 26h - (AMI) Zweite Festplatte Benutzer definiert Anzahl der Köpfe 26h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Park Zone, MSB 26h - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Anzahl der Zylinder, Niederes Byte 27h - (AMI) Zweite Festplatte Benutzer definiert Write Precompensation Cylinder (WPC), Niederes Byte 27h - (PHOENIX) Erste Festplatte Benutzer definiert (Typ 48) Anzahl der Sektoren per Track 27h - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Anzahl der Zylinder, Höheres Byte 28h - (AMI) Zweite Festplatte Benutzer definiert Write Precompensation Cylinder (WPC), Höheres Byte 28h - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Anzahl der Köpfe 29h - (AMI) Zweite Festplatte Benutzer definiert Kontroll Byte (80h wenn die Anzahl der Köpfe gleich oder größer 8 ist) 29h - (PHOENIX) LSB Word zu INTEL 82335 CC0 (Compare Register) 29h - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Write Precomp (WPC), Niederes Byte 2Ah - (AMI) Zweite Festplatte Benutzer definiert Lande Zone, Niederes Byte 2Ah - (PHOENIX) MSB Word zu INTEL 82335 CC0 (Compare Register) 2Ah - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Write Precomp (WPC), Höheres Byte 2Bh - (AMI) Zweite Festplatte Benutzer definiert Lande Zone, Höheres Byte 2Bh - (PHOENIX) LSB Word zu INTEL 82335 CC1 (Compare Register) 2Bh - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Lande Zone, Niederes Byte 2Ch - (AMI) Zweite Festplatte Benutzer definiert Anzahl der Sektoren pro Track 2Ch - (PHOENIX) MSB Word zu INTEL 82335 CC1 (Compare Register) 2Ch - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Lande Zone, Höheres Byte 2Dh - (AMI) Konfiguration Optionen Bit 7 Weitek Coprozessor installiert (1 = An) Bit 6 Diskettenzugriff, Abschalten für schnelleres Booten Bit 5 Boot Reihenfolge 0 - Laufwerk C:, dann A: 1 - Laufwerk A:, dann C: Bit 4 Boot Geschwindigkeit (0 - Niedrig; 1 - Hoch) Bit 3 Externer Cache Enable (1 = An) Bit 2 Interner Cache Enable (1 = An) Bit 1 Schnelles Gate A20 nach Booten benutzen (1 = An) Bit 0 Turbo Schalter (1 = An) 2Dh - (PHOENIX) Werte AAh oder CCh prüfen 2Dh - (AWARD) Erste Festplatte Benutzer definiert (Typ 49) Anzahl der Sektoren per Track 2Eh - Standard CMOS Checksum, Höheres Byte 2Fh - Standard CMOS Checksum, Niederes Byte 2Eh und 2Fh sind in den original IBM PC-AT Spezifikationen definiert und repräsentieren eine Byteweise Summe der Werte 10h - 2Dh. 00h - 0Fh und 30h - 33h sind darin nicht enthalten. Diese Definition wird von den meisten Herstellern, wie AMI, Compaq, Tandon, NEC, usw. benutzt. |
30h -
Extended Speicher in KB, Niederes Byte 31h - Extended Speicher in KB, Höheres Byte (dies spiegelt den Wert von Bytes 17h-18h) 32h - Jahrhundert Byte (BCD Wert für das Jahrhundert - aktuell 19) 32h - (IBM-PS2) Konfiguration CRC Niederes Byte. CRC für Bereich 10h-31h 33h - Information Flag Bit 7 128K (dies zeigt das Vorhandensein der speziellen 128 KB Speichererweiterungskarte für den PC-AT an, die den Speicher von 512 KB auf 640 KB erweitert. (Alle getesteten PCs haben dieses Bit gesetzt.) Bits 6-0 ??? 33h - (IBM PS/2) Konfiguration CRC Höheres Byte (siehe 32h) 33h - (PHOENIX) Bit 4 (000x 0000) des INTEL CPU Register CP0 34h - (AMI) Shadowing & Boot Password Bits 7-6 Passwort Wahl 00b Disabled 10b Reserviert 01b Gesetzt 11b Boot Bit 5 C8000h Shadow ROM (Bit 1 = An) Bit 4 CC000h Shadow ROM (Bit 1 = An) Bit 3 D0000h Shadow ROM (Bit 1 = An) Bit 2 D4000h Shadow ROM (Bit 1 = An) Bit 1 D8000h Shadow ROM (Bit 1 = An) Bit 0 DC000h Shadow ROM (Bit 1 = An) 34h-3Ah - (AWARD) ??? unbenutzt ??? Alle Werte stehen auf FFh 35h - (AMI) Shadowing Bit 7 E0000h Shadow ROM (Bit 1 = An) Bit 6 E4000h Shadow ROM (Bit 1 = An) Bit 5 E8000h Shadow ROM (Bit 1 = An) Bit 4 EC000h Shadow ROM (Bit 1 = An) Bit 3 F0000h Shadow ROM (Bit 1 = An) Bit 2 C0000h Shadow ROM (Bit 1 = An) Bit 1 C4000h Shadow ROM (Bit 1 = An) Bit 0 Reserviert 35h - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Zylinder, LSB. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 36h - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Zylinder, MSB. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 36h - (AWARD) Bit 6: IDE 32-bit Transfer Modus 37h - (IBM PS/2) Datum - Jahrhundert Byte 37h - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Köpfe. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 38h-3Dh (AMI) Verschlüsseltes Passwort 38h-3Fh ??? (IBM PS/2) Verschlüsseltes Passwort. 38h - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC). LSB Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 39h - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Write Precomp (WPC). MSB Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 3Ah - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Park Zone, LSB. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 3Bh - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Park Zone, MSB. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 3Bh - (AWARD) Konfiguration Bits Bit 4-7 Bildschirm Farben im Setup 0 Gelb/Weiß auf Blau (Standard) 1 Magenta/Weiß auf Blau 2 Gelb/Schwarz auf Grün 3 Gelb/Grün auf Cyan 4 Schwarz/Gelb auf Cyan 5 Braun/Weiß auf Cyan 6 Weiß/Grün auf Rot 7 Weiß/Weiß auf Rot 8 Grün/Weiß auf Magenta 9 Gelb/Rot auf Magenta Ah Rot/Weiß auf Grau Bh Gelb/Weiß auf Grau Ch Cyan/Weiß auf Grau Dh Cyan/Gelb auf Schwarz Eh Weiß auf Schwarz (Monochrome) Fh Grün/Rot auf Schwarz Bit 3 ??? Standard = 0 Bit 2 ??? Standard = 0 Bit 1 ??? Standard = 1 Bit 0 Enable Externen Cache 3Ch - (PHOENIX) Zweite Festplatte Benutzer definiert (Typ 48) Anzahl der Sektoren per Track. Wird nur benutzt, wenn das Passwort NICHT benutzt wird. 3Ch - (AWARD) Boot Konfiguration Bits Bit 7 1 = Virus Warnung bei Booten abschalten Bit 6,5 ??? Bit 4 Schneller POST Enabled Bit 3,2 ??? Bit 1 Enable Turbo Schalter Eingang Bit 0 0 = Boot von A, dann C 1 = Boot von C, dann A 3Dh - (AWARD) ??? 3Eh - (AMI) Erweiterte CMOS Prüfsumme Höheres Byte (enthält 34h - 3Dh) 3Eh - (AWARD) Boot Konfiguration Bits Bit 7 Shadow Video BIOS bei C000h Bit 6,5 ??? Bit 4 Diskettenlaufwerk tauschen Bit 3 ??? Bit 2 Bei Disketten-Laufwerk-Fehler während Booten nicht stoppen Bit 1 Bei Tastatur-Fehler während Booten nicht stoppen Bit 0 Bei keinem Fehler während Booten stoppen 3Fh - (AMI) Erweiterte CMOS Prüfsumme Niederes Byte (enthält 34h - 3Dh) 3Fh - (AWARD) ??? Ende der Original 64 CMOS RAM Bytes. Viele neuere Chips enthalten jetzt 128 Bytes und der IBM PS/2 hat die Möglichkeit für eine 2 KB CMOS-Erweiterung. Die AMI HI-FLEX Beschreibung finden Sie weiter unten. Wenn der Chip nur 64 Bytes hat, werden die Adressen umgeleitet, so daß die Bytes 40h - 7Fh die selben Werte haben, wie die Bytes 00h - 3Fh. |
Wenn der Chip nur
64 Bytes hat, werden die Adressen umgeleitet, so daß die Bytes 40h - 7Fh die selben Werte
haben, wie die Bytes 00h - 3Fh. 40h ??? 40h - (AWARD) Motherboard Chipset Bit 7-1 ??? Bit 0 Automatische Konfiguration Enabled (Standard: 1=Enabled) 41h - (AMI) Bits 7-6 IOR/IOW Wait-States Bits 5-4 16-bit DMA Wait-States Bits 3-2 8-bit DMA Wait-States Bit 1 EMR Bit Bit 0 DMA Clock Source 42h-43h ??? 42h-44h - (AWARD) ??? Chipset Setup ??? 44h - (AMI) Bit 4 NMI Warnung bei Spannungsfehler Bit 3 NMI Local Bus Time-Out 45h - (AMI) Bits 7-6 AT Bus 32-Bit Verzögerung Bits 5-4 AT Bus 16-Bit Verzögerung Bits 3-2 AT Bus 8-Bit Verzögerung Bits 1-0 AT Bus I/O Verzögerung 45h - (AWARD) Motherboard Chipset Bit 7 System BIOS Cacheable (Standard: 1=Enabled) Bit 6 Video BIOS Cacheable (Standard: 1=Enabled) Bit 6-0 ??? 46h - (AMI) Bits 7-6 AT Bus 32 Bit Wait-States Bits 5-4 AT Bus 16 Bit Wait-States Bits 3-2 AT Bus 8 Bit Wait-States Bits 1-0 AT Bus Clock Source 46h bis 47h - (AWARD) ??? Chipset Setup ??? 47h-50h ??? 48h-4Fh - (AWARD) ??? unbenutzt ??? Alle Werte auf FFh |
50h -
(AWARD) PCI Bus Slot 1 Latency Timer 0-255 (Standard: 0) 51h - (AMI) Bit 7 Bank 0/1 RAS Precharge Bit 6 Bank 0/1 Zugriff Wait-States Bits 3-2 Bank 0/1 Wait-States 51h - (AWARD) PCI Bus Setup Bit 7 PIRQ0# Interrupt Triggerung 0 = Edge 1 = Level Bit 6-2 ??? Standard: alle 1 Bit 0-1 Slot 1 IRQ Setup 00 = A-PIRQ0 (Standard) 01 = B-PIRQ1 10 = C-PIRQ2 11 = D-PIRQ3 52h ??? 52h - (AWARD) PCI Bus Slot 2 Latency Timer 0-255 (Standard: 0) 53h - (AMI) Bit 7 Bank 2/3 RAS Precharge Bit 6 Bank 2/3 Zugriff Wait-States Bits 3-2 Bank 2/3 Wait-States 53h - (AWARD) PCI Bus Setup Bit 7 PIRQ1# Interrupt Triggerung 0 = Edge 1 = Level Bit 6-2 ??? Standard: alle 1 Bit 0-1 Slot 2 IRQ Setup 00 = A-PIRQ1 (Standard) 01 = B-PIRQ2 10 = C-PIRQ3 11 = D-PIRQ0 54h-7Fh ??? 54h - (AWARD) PCI Bus Slot 3 Latency Timer 0-255 (Standard: 0) 55h - (AWARD) PCI Bus Setup Bit 7 PIRQ2# Interrupt Triggerung 0 = Edge 1 = Level Bit 6-2 ??? Standard: alle 1 Bit 0-1 Slot 3 IRQ Setup 00 = A-PIRQ2 (Standard) 01 = B-PIRQ3 10 = C-PIRQ0 11 = D-PIRQ1 56h - (AWARD) ?? reserviert für PCI Bus Slot 4 Latency Timer ?? 57h - (AWARD) PCI Bus Setup Bit 7 PIRQ3# Interrupt Triggerung 0 = Edge 1 = Level Bit 6-0 ?? unbenutzt ?? Standard: alle 1 58h - (AWARD) ?? reserviert für PCI Bus Slot 5 Latency Timer ?? Bit 3: On-Board CMD IDE Mode 3 59h - (AWARD) ?? reserviert für PCI Bus Setup ?? 5Ah - (AWARD) PCI Bus IRQ Setup Bit 4-7 PIRQ1# Interrupt Leitung (0=nein, Bh=IRQ11, etc) Bit 0-3 PIRQ0# Interrupt Leitung " " " 5Bh - (AWARD) PCI Bus IRQ Setup Bit 4-7 PIRQ3# Interrupt Leitung (0=nein, Bh=IRQ11, etc.) Bit 0-3 PIRQ2# Interrupt Leitung " " " 5Ch-5Fh - (AWARD) ??? unbenutzt ??? Standard: alle auf FFh |
60h -
(AWARD) Power Management Bit 7 ??? Bit 6 Video Aus Methode 1 = V/H SYNC + Löschen (Standard) 0 = Bildschirm löschen Bit 4,5 Video Aus Option 00 = Immer An (Standard) 01 = Suspend -> Aus 10 = Suspend, Standby -> Aus 11 = Alle Modes -> Aus Bit 3 PM Kontrolle durch APM (1=Ja) Bit 2 ??? Bit 0,1 Power Management Setup 00 Benutzer definiert 01 Abgeschaltet (Standard) 10 Minimales Stromsparen (40 Minuten für alles) 11 Maximales Stromsparen (20 Sekunden für alles) 61h - (AWARD) Power Management Bit 7 PM Auslösung durch HDD Port Aktivität (1=Enable) Bit 6 PM Auslösung durch LPT Port Aktivität (1=Enable) Bit 5 PM Auslösung durch COM Port Aktivität (1=Enable) Bit 4 HDD Abschaltung Bit 0-3 HDD Zeit bis zur Abschaltung 0 Disabled 1-15 Zeit in Minuten 62h - (AWARD) Power Management Bit 7-4 Stand-By Modus Einstellung (Benutzer definiert) 0 Abgeschaltet 1 20 Sekunden 2 1 Minute 3 5 Minuten 4 10 Minuten 5 15 Minuten 6 20 Minuten 7 30 Minuten 8 40 Minuten Bit 0-3 Schlummer Modus Einstellung (Benutzer definiert) (Siehe Stand-By Modus oben) 63h - (AWARD) Power Management Bit 7 PM Auslösung durch IRQ3 (COM2) Aktivität abschalten (1=Disable) Bit 6 PM Auslösung durch VGA Aktivität (1=Enable) Bit 5 ??? (Standard auf 1) Bit 4 PM Auslösung durch PCI/ISA Master Aktivität (1=Enable) Bit 0-3 Schlummer Modus Einstellung (Benutzer definiert) (Siehe Stand-By Modus oben) 64h - (AWARD) Power Management Bit 7 PM Auslösung durch IRQ11 Aktivität abschalten (1=Disable) Bit 6 PM Auslösung durch IRQ10 Aktivität abschalten (1=Disable) Bit 5 PM Auslösung durch IRQ9 Aktivität abschalten (1=Disable) Kaskadierung auf IRQ2 Bit 4 PM Auslösung durch IRQ8 Aktivität abschalten (1=Disable) RTC Alarm Bit 3 PM Auslösung durch IRQ7 Aktivität abschalten (1=Disable) LPT1 Bit 2 PM Auslösung durch IRQ6 Aktivität abschalten (1=Disable) Disketten-Laufwerks-Controller Bit 1 PM Auslösung durch IRQ5 Aktivität abschalten (1=Disable) LPT2 Bit 0 PM Auslösung durch IRQ4 Aktivität abschalten (1=Disable) COM1 65h - (AWARD) Power Management Bit 7-4 ??? unbenutzt ??? Standard alle auf 1 Bit 3 PM Auslösung durch IRQ15 Aktivität abschalten (1=Disable) Bit 2 PM Auslösung durch IRQ14 Aktivität abschalten (1=Disable) Festplattencontroller Bit 1 PM Auslösung durch IRQ13 Aktivität abschalten (1=Disable) Coprozessor Bit 0 PM Auslösung durch IRQ12 Aktivität abschalten (1=Disable) PS/2 Maus 66h-79h - (AWARD) ??? unbenutzt ??? Standard alle auf FFh 68h-6Fh - (AWARD) IDE Festplatten Parameter für das erste Laufwerk auf dem zweiten IDE Port 70h-77h - (AWARD) IDE Festplatten Parameter für das zweite Laufwerk auf dem zweiten IDE Port 7Ah - (AWARD) Erweiterte CMOS Prüfsumme, Höheres Byte 7Bh - (AWARD) Erweiterte CMOS Prüfsumme, Niederes Byte Award's erweiterte Prüfsumme ist die arithmetische Summe aller Bytes von 40h bis 79h (64d - 121d). |