; TSAVE VAKNA.TXT
;
;DAVID ANDERSSON
;1985-07-13
;
;BAKGRUNDSPROGRAM F\R SUPER SMARTAID SOM
;KOLLAR REALTIDSKLOCKAN.
;DEN BLINKAR OCH PIPER OM KLOCKAN [R
;MERA [N INST[LLD ALARMTID.
;LARMET ST[NGS AV EFTER 1 TIMMA.
;
;PROGRAMMET LADDAS I CMOSET OCH BEH\VER NORMALT
;INTE LADDAS OM VARJE G]NG MAN STARTAR DATORN.
;D[RIMOT SKA KOMMANDOT L[NKAS IN I SMARTAIDS
;KOMMANDOTABELL VARJE G]NG.
;
; INITIERING EFTER RESET MED CALL(INIT)
;
; L[MPLIGEN DEFINIERAS EN KEY: KEY _\=';CALL(22222)'
;
; KOMMANDON:
; VAKNA 12,30,00 GE LARM KLOCKAN 12:30
; VAKNA ST[NG AV LARM
;
;
;-------------------------------------------------
;
ORG 22222 ;H\GT UPPE I CMOSET
;
;
;SYSTEMVARIABLER I SUPER SMARTAIDS CMOS
CMDTAB EQU 05102H ;ADRESS TILL F\RSTA KOMMANDO TABELL
BATCHP EQU 05100H ;ADRESS F\R BAKGRUNDSPROGRAM
;
;
;INL[NKNING AV KOMMANDO "VAKNA" I KOMMANDOTABELLEN
;ANROPAS EFTER UPPSTART OCH RESET
;OM DE<>0 L[NKAS KOMMANDOT BORT IGEN
;
INIT LD A,E ;TESTA OM DE=0
OR D
JR NZ,INIT2 ;HOPPA OM DE<>0
CALL TESTA ;TESTA OM REDAN INL[NKAD
RET Z ;REDAN INL[NKAD
LD (LINK),HL ;L[NKA IN EGEN TABELL
LD (CMDTAB),DE
RET
;
INIT2 CALL TESTA ;TESTA OM INL[NKAD
RET NZ ;REDAN URL[NKAD
LD HL,(LINK)
LD (CMDTAB),HL ;L[NKA UR EGEN TABELL
RET
;
;TESTA OM KOMMANDOT REDAN INL[NKAD
;(KONTROLLEN EJ FULLST[NDIG, OM FLERA EGNA TABELLER FINNS)
;(UT) Z=FINNS INL[NKAD
;
TESTA LD HL,(CMDTAB) ;SMARTAIDS KOMMANDO TABELL
LD DE,VAKTAB ;EGEN KOMMANDOTABELL
AND A
PUSH HL
SBC HL,DE
POP HL
RET
;
VAKTAB DEFB 128 ;KOD
DEFM 'VAKNA' ;KOMMANDO NAMN
DEFB 255 ;SLUTM[RKE
LINK DEFW 0 ;N[STA KOMMANDO TABELL
DEFW VAKNA ;ADDRESS TILL KOMMANDOHANTERAREN
;
;
VTID DEFW 0 ;SPARAD TID N[R MAN SKA VAKNA
;
;
;HANTERA KOMMANDOT "VAKNA"
;
VAKNA LD A,(HL) ;TESTA OM RADSLUT
CP 13
JR Z,VAKNA1 ;HOPPA OM RADSLUT
CALL TAL ;KONVERTERA ASCII TILL TAL I REGISTER DE (=TIMMAR)
PUSH DE ;SPARA TIMMAR
CALL KOLONT ;DE=MINUTER
PUSH DE ;SPARA MINUTER
CALL KOLONT ;DE=SEKUNDER
XOR A ;A=0
LD H,A ;HL=0
LD L,A ;REGISTREN H,L,A KAN SES SOM ETT 24 BITS REGISTER
LD B,A ;REGISTREN B,C,D KAN SES SOM ETT 24 BITS REGISTER
LD C,A ;BC=0
LD D,50 ;BCD=50
CALL TTAM
POP DE
LD D,184 ;BCD=3000
LD BC,11
CALL TTAM
POP DE
LD D,32 ;BCD=180000
LD BC,703
CALL TTAM
LD (VTID),HL ;SPARA VAKNA TIDPUNKTEN
CALL BATOK
EX DE,HL ;HL=START ADDRESS
LD (BATCHP),HL ;STARTA BAKGRUNDSPROG
RET
;
VAKNA1 CALL BATOK
LD HL,0
LD (BATCHP),HL ;ST[NG AV BAKGRUNDSPROGR
RET
;
;BER[KNA HLA = HLA - E * BCD
;
TTAM INC E
TTAM1 DEC E
RET Z
SUB D
SBC HL,BC
JR TTAM1
;
;
;TA EN SEPARATOR OCH ETT TAL SOM PARAMETER
;(IN,UT)
;HL PEKAR I BUFFERT
;(UT)
;DE=TALV[RDE
;
KOLONT LD A,(HL)
CP 44 ;","
JR NZ,JERR31 ;HOPPA OM INTE KOMMA
RST 24 ;INC HL;RST 32
;CALL TAL
;RET
;
;KONVERTERA ASCII TILL TAL I REGISTER DE
;
TAL LD A,(6174) ;TESTA VILKEN TOLK
CP 126
JR NZ,TAL2
CALL 6174 ;CHECKSUMMA 11273
JR TAL3
TAL2 CALL 6172 ;CHECKSUMMA \VRIGA
TAL3 RET NC ;RETURN OM INGET FEL
JERR31 RST 16 ;ANNARS ERROR 31
DEFB 31+128
;
;
;KOLLA ATT INGET ANNAT BAKGRUNDSPROGRAM K\R
;
BATOK LD HL,(BATCHP)
LD DE,START
LD A,H
OR L
RET Z
SBC HL,DE
RET Z
RST 16
DEFB 51+128 ;ERROR ENHETEN UPPTAGEN
;
;
;BAKGRUNDSPROGRAM
;ANROPAS N[R DATORN V[NTAR P] TANGENTTRYCKNINGAR
;
START LD HL,(65009) ;OBS ATT REALTIDSKLOCKAN G]R BAKL[NGES
LD DE,(VTID)
AND A
SBC HL,DE
LD B,8 ;DEFAULT DELAY 40 MS
JR NC,DELAY ;DELAY OCH RETURN OM KLOCKAN