CMOS — Änderungen 2403 → 2404

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 ==