| Zeile 259: | Zeile 259: | ||
Die Programmierung des CMOS ist denkbar einfach: Die sieben niederwertigen Bits des I/O Ports 0x70 dienen als Offset (siehe Tabelle). Das höchste Bit sollte nicht verändert werden, es dient als [[Non_Maskable_Interrupt | NMI]]-Markierungsregister. Durch Lesen bzw. Schreiben des I/O Ports 0x71 kann dann der Wert an diesem Offset gelesen bzw. geschrieben werden. | Die Programmierung des CMOS ist denkbar einfach: Die sieben niederwertigen Bits des I/O Ports 0x70 dienen als Offset (siehe Tabelle). Das höchste Bit sollte nicht verändert werden, es dient als [[Non_Maskable_Interrupt | NMI]]-Markierungsregister. Durch Lesen bzw. Schreiben des I/O Ports 0x71 kann dann der Wert an diesem Offset gelesen bzw. geschrieben werden. | ||
| + | |||
| + | <asm> | ||
| + | ;Ein Makro um ein Byte aus dem CMOS auszulesen | ||
| + | ;Der einzige Parameter ist das Offset des Bytes welches gelesen werden soll | ||
| + | ;Rückgabe ist das gelesene Byte in AL | ||
| + | |||
| + | %macro read_byte 1 | ||
| + | in al, 0x70 ;Bit 7 des Ports sichern | ||
| + | and al, 10000000b | ||
| + | or al, %1 ;Offset (Parameter 1) dazumixen | ||
| + | out 0x70, al ;Offset setzen | ||
| + | in al, 0x71 ;Byte lesen | ||
| + | %endmacro | ||
| + | </asm> | ||
== Weblinks == | == Weblinks == | ||