Grundplatine
warte macro
push
ax
in
al,80H
pop
ax
endm clock segment
assume
cs:clock, ds:daten, ss:stack
;
hwclock:
mov
ax, seg stack
mov
ss, ax
mov
ax, daten
mov
ds, ax
;
;
****
STUNDEN
lesen:
mov
al, starega
mov
dx, hwusel
out
dx, al
warte
inc
dx
in
al, dx
and
al, 10000000B
jnz
lesen
dec
dx
mov
al, stureg
out
dx, al
warte
inc
dx
in
al, dx
mov
stunde, al
;
;
****
MINUTEN
;
mov
al, starega
dec
dx
out
dx, al
warte
inc
dx
2 - 32
;Stacksegment- u. Datensegment-
;register vorbesetzen
****
;dx=Portadr. des Auswahlreg.
;Register auswählen
;dx=Portadr. MC146818
;Statusregister auslesen
;Bit 7 ausblenden
;Sprung wenn nicht null
;dx=Portadresse Auswahlreg.
;Register auswählen
;dx=Portadr. MC146818
;Register lesen
;Wert im Datenseg. speichern
****
;dx=Portadr. Auswahlreg.
;Register auswählen
;Portadr. MC146818
Systemhandbuch
C79000-B8500-C073-01