home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 67
/
64er_Magazin_Sonderheft_67_19xx_Markt__Technik_de_Side_B.d64
/
op.rtc-immeruhr
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
3KB
|
92 lines
10 sys36864
20 .opt oo
30 *= 52000
100 cia =$dd00
102 ddra =cia+2
104 ddrb =cia+3
106 prta =cia
108 prtb =cia+1
110 errout =$a445
112 errptr =$22
114 pnt =181
500 jmp zeitlesen
502 sei:jsr 65418:cli:rts
600 errt .asc "unable to access rt[195]
602 try brk
604 wert brk
606 time .w[176] 0,0,0
1000 zeitlesen jsr rtcinit
1002 jsr wart ; uhr anhalten
1004 ldx #5:jsr [194]:[175] #3:sta time
1006 ldx #4:jsr [194]:sta time[170]1
1010 ldx #3:jsr [194]:sta time[170]2
1012 ldx #2:jsr [194]:sta time[170]3
1016 ldx #1:jsr [194]:sta time[170]4
1018 ldx #0:jsr [194]:sta time[170]5
1020 jsr weiter ; uhr laeuft weiter
1022 lda cia[170]14:[176]a #128:sta cia[170]14:lda cia[170]15:[175] #127:sta cia[170]15
1024 lda time:asl:asl:asl:asl:[176]a time[170]1:bne [168]0:lda #$92:bne set1
1026 [168]0 cmp #$13:bcc set1:sec:sed:sbc #$12:cld:[176]a #128
1028 set1 sta cia[170]$b
1030 lda time[170]2:asl:asl:asl:asl:[176]a time[170]3:sta cia[170]$a
1032 lda time[170]4:asl:asl:asl:asl:[176]a time[170]5:sta cia[170]$9
1034 lda #0:sta cia[170]$8
1036 sei:lda #[179]timirq:ldy #[177]timirq:sta $314:sty $315:cli:rts
1060 wart lda #10:sta try
1061 w3 ldx #13:jsr [194]:[176]a #1:ldx #13:jsr [151]
1062 w2 ldx #13:jsr [194]:[175] #2:beq w1
1064 jsr weiter
1066 dec try:bne w3
1068 w1 rts
1070 weiter ldx #13:jsr [194]:[175] #254:ldx #13:jmp [151]
1100 x [176]a #48:jmp $ffd2
2000 ; register x anfahren
2002 regx lda prta:[176]a #4:sta prta:[175] #251:sta prta
2004 l1 lda prtb:[175] #16:bne err[176]
2006 txa:beq reach
2008 lda prtb:[175] #223:sta prtb:[176]a #32:sta prtb
2010 dex:bne l1
2012 reach rts
2100 ; platine nicht angeschlossen
2104 err[176] lda #[179]errt:sta errptr:lda #[177]errt:jmp errout
2200 ; register x nach a lesen
2202 [194] jsr regx
2204 lda #224:sta ddrb
2206 lda prtb:[175] #127:sta prtb
2208 lda prtb:[175] #15:pha
2210 lda prtb:[176]a #192:sta prtb
2212 pla:rts
2400 ; uhr initialisieren
2402 rtcinit lda ddra:[176]a #4:sta ddra:lda #224:sta ddrb:sta prtb
2410 lda prta:[176]a #4:sta prta:[175] #251:sta prta
2412 ldx #16
2414 l2 lda prtb:[175] #16
2415 bne err[176]
2416 lda prtb:[175] #223:sta prtb:[176]a #32:sta prtb
2418 dex:bne l2
2420 ldx #16
2422 l3 lda prtb:[175] #16:beq err[176]
2424 lda prtb:[175] #223:sta prtb:[176]a #32:sta prtb
2426 dex:bne l3
2428 lda prtb:[175] #16:bne err[176]:rts
2500 ; schreibt a in register x
2502 [151] [175] #15:sta wert:jsr regx
2504 lda prtb:[176]a #192:sta prtb
2506 lda #239:sta ddrb
2508 lda prtb:[175] #240:[176]a wert:sta prtb
2510 lda prtb:[175] #191:sta prtb
2512 lda prtb:[176]a #192:sta prtb
2514 lda #224:sta ddrb
2516 rts
3000 timirq lda pnt:pha:lda pnt[170]1:pha
3002 lda #0:sta pnt:lda 648:sta pnt[170]1:ldy #32
3004 lda cia[170]$b:cmp #$12:beq nil:cmp #$80:bcc am:[175] #127
3006 cmp #$12:beq am:sed:clc:adc #$12:cld:bne am
3008 nil lda #0
3010 am sec:jsr [153]:lda cia[170]$a:sec:jsr [153]:lda cia[170]$9:clc:jsr [153]
3012 lda cia[170]$8:pla:sta pnt[170]1:pla:sta pnt:jmp $ea31
3014 [153] php:pha:[175] #$f0:lsr:lsr:lsr:lsr:[176]a #48:jsr pri1
3016 pla:[175] #15:[176]a #48:jsr pri1:plp:bcs dp:rts
3018 dp lda #58
3020 pri1 sta (pnt),y:lda 646:sta 55296,y:iny:rts