Stoppuhr mit CTC 3
;===================================================
;------ Experiment: Stoppuhr mit CTC 3 -------------
;===================================================
;
.GLOBAL STPCLK
STPCLK: IN A,(PIN) ;Status der Tasten
AND 03
LD B,A
LD HL,0A5A5H ;erste Anzeige
LD (LASTCK),HL ; erzwingen
$LOOP1: LD DE,(CLKCNT) ;Zeit anzeigen
LD HL,(LASTCK) ; nur wenn Änderung
XOR A
SBC HL,DE
JR Z,$4
EX DE,HL ;neuer Wert
LD (LASTCK),HL ; = alter Wert
CALL DSPHL ;Anzeige
LD C,2
CALL SETDP
$4: IN A,(PIN) ;Tasten prüfen
AND 03
XOR B ;Veränderung ?
JR Z,$LOOP1
BIT 1,A ;Reset ?
JR Z,$1
LD HL,0 ;Uhr rücksetzen
LD (CLKCNT),HL
IN A,(PIN)
AND 03
LD B,A ;Tasten aktualisieren
JR $LOOP1
$1: IN A,(PIN) ;Start/Stop ?
AND 03
LD B,A ;Tasten aktualisieren
BIT 0,A
CALL NZ,CLKGO
CALL Z,CLKSTP
JR $LOOP1
;
.DATA
LASTCK: DEFW 0 ;letzter Zeitwert
.CODE
;
;===================================================
;------ Start clock (CTC 3) ------------------------
;===================================================
;
CLKGO: PUSH AF ;Interrupt erlauben
LD A,081H
OUT (CTC3),A
POP AF
RET
;
;===================================================
;------ Stop clock (CTC 3) -------------------------
;===================================================
;
CLKSTP: PUSH AF ;Interrupt abschalten
LD A,001H
OUT (CTC3),A
POP AF
RET
|