; 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 KLOCKANVTID+60 MIN LD A,251 OUT (6),A ;START PIIP CALL INVSCR ;B\RJA BLINKA LD B,200 CALL DELAY ;V[NTA 1 S (ELLER P] TANGENT) CALL INVSCR ;SLUTA BLINKA XOR A OUT (6),A ;STOP PIIP RET ; ;BLINKA HELA SK[RMEN ;UTOM F\RSTA OCH SISTA RADEN SAMT KANTERNA ;ELLER SLUTA BLINKA OM DET BLINKAR (XOR) ; INVSCR LD B,22 ;R[KNA 22 RADER LD IX,884+2 ;LISTA MED ADRESSER TILL BILDMINNET LOOPL LD L,(IX) ;HL=ADRESS TILL EN RAD I BILDMINNET INC IX LD H,(IX) INC IX INC HL ;B\RJA I 2:A KOLUMNEN PUSH BC ;SPARA RADR[KNARE LD A,(623) ;A=39 ELLER 79 TECKEN/RAD DEC A LD B,A ;B=38 ELLER 78 LOOPC LD A,(HL) XOR 128 ;SL] OM BIT 7 LD (HL),A INC HL DJNZ LOOPC ;N[STA TECKEN I EN RAD POP BC ;B=RADR[KNARE DJNZ LOOPL ;N[STA RAD RET ; ; ;V[NTA EN KORT STUND ;(IN) B=TID (B*5 MS) ; DELAY ; DELAY1 LD A,(65013) ;TANGENT FLAGGA AND A RET NZ ;RETURN OM FLAGGA SATT IN A,(56) ;TANGENTBORDET AND 128 RET NZ ;RETURN OM TANGENT INTRYCKT DEC C ;INNRE DELAY LOOP JR NZ,DELAY1 DJNZ DELAY1 ;YTTRE DELAY LOOP RET ; ; END