Ver Fonte

abc: new directory with ABC programs; first: read/set RTC

ABC programs to read and set the MAX80 RTC.
H. Peter Anvin há 3 anos atrás
pai
commit
3dd521c55c
2 ficheiros alterados com 50 adições e 0 exclusões
  1. 26 0
      abc/max80rtc.bas
  2. 24 0
      abc/set80rtc.bas

+ 26 - 0
abc/max80rtc.bas

@@ -0,0 +1,26 @@
+100 REM **** Read MAX80 RTC ****
+110 DIM T%(8%)
+120 OUT 1%,54%
+130 I%=0%
+140 IF I%>8% THEN 340
+150 IF (INP(1%) AND 130%)=2% THEN 190
+160 Z%=INP(0%)
+170 I%=I%+1%
+180 GOTO 140
+190 IF INP(0%)<>211% THEN 340
+200 OUT 2%,128%
+210 IF (INP(1%) AND 130%)<>128% THEN 340
+220 FOR I%=0% TO 7%
+230 T%(I%)=INP(0%)
+240 NEXT I%
+250 D$=""
+260 FOR I%=0% TO 7%
+270 IF T%(I%)<10% D$=D$+"0"
+280 D$=D$+RIGHT$(NUM$(T%(I%)),2%)
+290 S0$=MID$("_-- ::._",I%+1%,1%)
+300 IF S0$<>"_" THEN D$=D$+S0$
+310 NEXT I%
+320 ; D$
+330 END
+340 ; "No MAX80 RTC detected"
+350 END

+ 24 - 0
abc/set80rtc.bas

@@ -0,0 +1,24 @@
+100 REM **** Set MAX80 RTC ****
+110 DIM T%(8%)
+120 OUT 1%,54%
+130 I%=0%
+140 IF I%>8% THEN 320
+150 IF (INP(1%) AND 130%)=2% THEN 190
+160 Z%=INP(0%)
+170 I%=I%+1%
+180 GOTO 140
+190 IF INP(0%)<>211% THEN 320
+200 ; "YYYY,MM,DD,HH,MM,SS";
+210 INPUT T%(1%),T%(2%),T%(3%),T%(4%),T%(5%),S6
+220 T%(0%)=T%(1%)/100%
+230 T%(1%)=T%(1%)-T%(0%)*100%
+240 T%(6%)=S6 : T%(7%)=(S6-T%(6%))*100
+250 OUT 2%,64%
+260 IF (INP(1%) AND 65%)<>65% THEN 320
+270 FOR I%=0% TO 7%
+280 OUT 0%,T%(I%)
+290 NEXT I%
+300 OUT 2%,4%
+310 END
+320 ; "No MAX80 RTC detected"
+330 END