home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
89xx
/
8910a.d64
/
dienst
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
189 lines
1 REM ***************************
2 REM * ECHTZEITUHR 72421 64'ER *
3 REM * VON NIKOLAUS HEUSLER *
4 REM * DIENST- UND DEMOPROGRM. *
5 REM * (C) NH-120589-ARR REV.1 *
6 REM ***************************
7 :
8 REM **** PORT VORBEREITEN ****
9 :
10 POKE56579,224
11 REM D0-D3, Q5 EINGANG (0)
12 REM -CLK, -RD, -WR AUSGANG (1)
13 :
20 POKE56578,PEEK(56578)OR4
21 REM RESET AUSGANG
22 :
24 SYS58692
25 :
30 POKE56577,224
31 REM -CLK, -RD, -WR ABSCHALTEN
32 :
34 GOSUB2000
35 REM IST UHR VORHANDEN ?
36 :
40 X=15:A=0:GOSUB1200
41 REM REGISTER 15 MIT WERT 0 FUELLEN
42 REM UHR EINSCHALTEN (12 STD)
60 :
70 REM **** ANWENDUNGSBSP. ****
80 :
90 REM GOTO 100 ODER GOTO 500
95 :
96 :
100 PRINT:PRINT:PRINT"DEMOPROGRAMM ZUR RTC 72421
110 [153]:[153]"WOLLEN SIE EIN REGISTER LESEN (1)
112 PRINT" ODER BESCHREIBEN (2) ?
114 [153]
116 [153]"BITTE WAEHLEN !
118 PRINT:POKE198,.
120 GETA$
130 IFA$="1"THEN200
140 IFA$="2"THEN300
150 GOTO120
200 PRINT:PRINT"WELCHES REGISTER LESEN ? (NR. 0 BIS 15)
202 [133]"NUMMER";X
204 [139]X[179]0[176]X[177]15[167]100
206 :
208 [141]1100 : [143] REGISTER LESEN
210 [153]:[153]"REGISTER"X"HAT DEN INHALT"A:[137]100
300 [153]:[153]"IN WELCHES REGISTER SCHREIBEN ?
302 INPUT"NUMMER";X
304 IFX<0ORX>15THEN100
306 PRINT:PRINT"WELCHEN WERT ? (0 BIS 15)
308 [133]"NEUER INHALT";A
310 [139]A[179]0[176]A[177]15[167]100
312 :
320 [141]1200 : [143] REG. BESCHREIBEN
330 [137]208
490 :
500 [143] WIEVIEL UHR IST ES ?
510 :
520 [153]:[153]"HIER KOMMT DIE GENAUE ZEIT:
530 PRINT:PRINTTAB(12)"ES IST";:NM=0
540 :
542 X=5:GOSUB1100
544 REM STUNDEN-ZEHNER LESEN
550 IF(AAND4)=4THENNM=1:REM NACHMITTAG
552 H=AAND3
554 :
556 X=4:GOSUB1100
558 REM STUNDEN-EINER LESEN
560 H=A+H*10+NM*12:REM 12 -> 24 STUNDEN
562 H$=STR$(H):IFH<10THENH$=" 0"+CHR$(H+48)
564 PRINTH$":";
566 :
568 X=3:GOSUB1100
570 REM MINUTEN-ZEHNER LESEN
572 PRINTCHR$(A+48);
574 :
578 X=2:GOSUB1100
580 REM MINUTEN-EINER LESEN
582 PRINTCHR$(A+48)":";
584 :
588 X=1:GOSUB1100
590 REM SEKUNDEN-ZEHNER LESEN
592 PRINTCHR$(A+48);
594 :
598 X=0:GOSUB1100
600 REM MINUTEN-EINER LESEN
602 PRINTCHR$(A+48)
604 :
610 PRINT"[145][145][145]":GOTO530
620 :
629 REM - KOMMENTAR:
630 REM DA DIESE ROUTINEN IN BASIC GE-
631 REM SCHRIEBEN SIND, ARBEITEN SIE
632 REM NATUERLICH NICHT SO SCHNELL
633 REM WIE EIN ASSEMBLERPROGRAMM. BE-
634 REM SONDERS DAS ANFAHREN (ZEILEN
635 REM 1000FF) VERZOEGERT IN BASIC
636 REM DOCH SEHR...
800 :
960 :
970 REM **** DIENSTROUTINEN ****
980 :
1000 REM REGISTER X ANFAHREN *******
1001 :
1002 POKE56576,PEEK(56576)OR4: POKE56576,PEEK(56576)AND251
1004 REM KURZEN RESET-IMPULS
1005 :
1006 IFX=.THENRETURN : REM REGISTER 0 IST ERREICHT
1007 :
1010 FORI=1TOX : REM SONST X MAL CLOCKEN
1014 POKE56577,PEEK(56577)AND223: POKE56577,PEEK(56577)OR32
1016 REM KURZEN CLOCK-IMPULS (LOW AKTIV)
1018 NEXT:RETURN
1020 :
1100 REM LESE REGISTER X NACH A *******
1101 :
1102 GOSUB1002:REM REGISTER X ANFAHREN
1103 :
1104 POKE56579,224
1105 REM D0-D3 AUF EINGANG :
1106 POKE56577,PEEK(56577)AND127
1107 REM READ-SIGNAL :
1108 A=PEEK(56577)AND15
1109 REM D0 BIS D3 LESEN :
1110 POKE56577,PEEK(56577)OR192
1111 REM READ UND WRITE AUS :
1112 RETURN
1120 :
1200 REM SCHREIBE A IN REGISTER X *******
1201 :
1202 GOSUB1002:REM REGISTER X ANFAHREN
1203 POKE56577,PEEK(56577)OR192:REM READ UND WRITE AUS (ZUR SICHERHEIT)
1204 POKE56579,239
1205 REM D0-D3 AUF AUSGANG :
1206 POKE56577,(PEEK(56577)AND240)OR(AAND15)
1207 REM A AUF D0-D3 (ZUM PORT) :
1208 POKE56577,PEEK(56577)AND191
1209 REM WRITE-SIGNAL :
1210 POKE56577,PEEK(56577)OR192
1211 REM WRITE UND READ AUS :
1212 POKE56579,224
1213 REM D0-D3 AUF EINGANG :
1214 RETURN
1216 :
2000 REM MODUL ANGESCHLOSSEN ? *******
2001 :
2002 POKE56576,PEEK(56576)OR4
2003 REM RESET AN :
2004 POKE56576,PEEK(56576)AND251
2005 REM RESET AUS
2006 :
2010 FORI=1TO16
2011 REM 16 MAL CLOCKEN, D4 TESTEN :
2012 IF(PEEK(56577)AND16)=16THEN2100
2013 REM WENN ZU FRUEH GESETZT, FEHLER :
2014 POKE56577,PEEK(56577)AND223
2015 REM CLOCK-SIGNAL :
2016 POKE56577,PEEK(56577)OR32
2017 REM CLOCK AUS :
2018 NEXT
2019 :
2020 FORI=1TO16
2021 REM 16 MAL CLOCKEN, D4 TESTEN :
2022 IF(PEEK(56577)AND16)=0THEN2100
2023 REM WENN NICHT GESETZT, FEHLER :
2024 POKE56577,PEEK(56577)AND223
2025 REM CLOCK-SIGNAL :
2026 POKE56577,PEEK(56577)OR32
2027 REM CLOCK AUS :
2028 NEXT
2029 :
2030 IF(PEEK(56577)AND16)=16THEN2100
2031 REM WENN D4 NOCH GESETZT, FEHLER :
2032 PRINT"OK."
2034 RETURN
2035 :
2100 PRINT:PRINT"MODUL NICHT ANGESCHLOSSEN !"
2104 END
2106 :
2200 :
2202 REM ******************************
2204 REM RTC-ENTWICKLUNG: N. HEUSLER
2206 REM ZWENGAUERWEG 18, 8 MUENCHEN 71
2208 REM FUER MEHR INFO (RUECKPORTO!)
2210 REM ******************************