1 REM RUN100 startet eine echtuhr
2 REM RUN500 startet den zufallsgenerator
3 REM RUN900 wartet auf <SPACE> und loest die cam aus
50 GOSUB "INIT"
60 WAIT 128:PRINT CE;" ";CE$
70 GOTO "MENUE"
80 "SJAHR"
85 if( ((JJ/4=0) AND (JJ/100<>0)) OR (JJ/400=0) ) then let SJ=1 :goto95
90 SJ=0
95 REM
110 REM
500 "RND":REM DER ZUFALLSGENERATOR
510 PRINT RND (100):END
520 REM
900 REM
910 GOSUB "INIT"
920 "GET":REM DIE TASTENROUTINE
930 CLS :WAIT 0:PRINT "?";
940 A$=INKEY$ :IF A$<>" "THEN GOTO "GET"
950 GOSUB "AUSLOESUNG"
960 GOTO "GET"
1000 "PRG1":INPUT "1. alle XXs ?";XX
1010 INPUT "1-YY Bild(er) ?";YY
1020 TA=TIME
1999 END
2000 "PRG2":WAIT :PRINT "2.":END
3000 "PRG3":WAIT :PRINT "3.":END
4000 "PRG4":WAIT 0
4100 "UHR":REM UHR
4110 GOSUB "INIT"
4120 OD$="":OT$=""
4130 "UHR1":WAIT 0:T=TIME :MM=INT (T/10000):TT=T-MM*10000:DD=INT (TT/100):TT=TT-DD*100
4140 HH=INT (TT):TT=TT-HH:TT=TT*100:MI=INT (TT):TT=TT-MI:SE=TT*100
4150 D$=RIGHT$ ("00"+STR$ (DD),2)+"."+RIGHT$ ("00"+STR$ (MM),2)+"."
4170 D$=D$+STR$ (JJ)
4180 IF OD$<>D$THEN LET OD$=D$:CURSOR 0:PRINT D$;
4190 T$=RIGHT$ ("00"+STR$ (HH),2)+":"+RIGHT$ ("00"+STR$ (MI),2)+":"
4200 T$=T$+RIGHT$ ("00"+STR$ (SE),2)
4220 IF OT$<>T$THEN LET OT$=T$:CURSOR 18:PRINT T$;
4230 GOSUB "GETONEKEY1"
4240 GOTO "UHR1"
5000 "IT"
5010 IT$="0"+STR$ (TIME *10000):IT$=RIGHT$ (IT$,10)
5012 IT=VAL (RIGHT$ (IT$,2))
5013 IT=IT+VAL (MID$ (IT$,7,2))*60
5014 IT=IT+VAL (MID$ (IT$,5,2))*3600
5015 "TNR" : REM ( UWORD jahr, UBYTE monat, UBYTE tag )
5016 d=(VAL(left$(IT$,2))+10)/13;
5017 e=(VAL(MID$(IT$,3,2))+ (611*(VAL(left$(IT$,2))+2))/20 - 2*d - 91;
5018 gosub "SJAHR"
5019 TN=e + SJ*D: REM return e + schaltjahr(jahr)*d;
5050 RETURN
6000 "WAIT":GOSUB "INIT":GOSUB "IT":TA=IT
6005 VO=5:BI=4:ZW=2
6010 WAIT 0:GOSUB "IT"
6020 PRINT VO;" VORLAUF ";IT-TA
6050 IF (IT-TA)<VOTHEN GOTO 6010
6060 FOR X=1TO BI:CLS
6070 GOSUB 60000
6080 GOSUB "IT":TA=IT:CLS
6085 WAIT 0:GOSUB "IT"
6090 IF (BI-X)>0THEN PRINT BI-X;" BILDER ";ZW;" ";IT-TA:GOTO 6095
6091 GOTO 6100
6095 IF (IT-TA)<ZWTHEN GOTO 6085
6100 NEXT X
9999 END
10000 "PRG0":INPUT "Datum stellen TT.MM.JJJJ ? ";DD$
10010 INPUT "Uhr stellen HH:MM:SS ? ";TT$
10011 MO=VAL (MID$ (DD$,4,2)):IF MO<1OR MO>12THEN GOTO "PRG0"
10012 T1=MO*10000
10013 TA=VAL (MID$ (DD$,1,2)):IF TA<1OR TA>31THEN GOTO "PRG0"
10014 T1=T1+TA*100
10015 JJ=VAL (MID$ (DD$,7,4)):IF JJ<2003THEN GOTO "PRG0"
10016 HH=VAL (MID$ (TT$,1,2)):IF HH<=0OR HH>23THEN GOTO "PRG0"
10017 T1=T1+HH
10018 MM=VAL (MID$ (TT$,4,2)):IF MM<=0OR MM>59THEN GOTO "PRG0"
10019 T1=T1+MM/100
10020 SS=VAL (MID$ (TT$,7,2)):IF SS<=0OR SS>59THEN GOTO "PRG0"
10021 T1=T1+SS/10000:TIME =T1
10900 GOTO "MENUE"
20000 IN$="?"+CHR$ (95):IT=0:WAIT 0:PRINT IN$
20010 "LOOP1":B$=INKEY$ :IF B$<>""THEN GOTO "LOOP1"
20020 "LOOP2":A$=INKEY$ :IF A$=""THEN GOTO "LOOP2"
20030 IF IT=0THEN GOTO "INTEXT0"
20040 IF IT=1THEN GOTO "INTEXT1"
20100 "INTEXT0":IF ASC (A$)>=48AND ASC (A$)<=57THEN LET IN$=LEFT$ (IN$,LEN (IN$)-1)+A$+CHR$ (95)
20110 WAIT 0:PRINT IN$
20120 IF A$=CHR$ (13)THEN GOTO "RAUS1"
20130 "LOOP3":B$=INKEY$ :IF B$<>""THEN "LOOP3"
20190 GOTO "LOOP2"
20200 "RAUS1":WAIT :IN$=MID$ (IN$,2,LEN (IN$)-2):PRINT IN$:END
20300 "INTEXT1":IF ASC (A$)>=48AND ASC (A$)<=57THEN LET IN$=LEFT$ (IN$,LEN (IN$)-1)+A$+CHR$ (95)
20310 IF ASC (A$)>=65AND ASC (A$)<=91THEN LET IN$=LEFT$ (IN$,LEN (IN$)-1)+A$+CHR$ (95)
20320 IF ASC (A$)>=97AND ASC (A$)<=123THEN LET IN$=LEFT$ (IN$,LEN (IN$)-1)+A$+CHR$ (95)
30000 "MENUE":REM MENUE
30010 "LOOP4":WAIT 0
30020 PRINT "1. alle XXs 1-YY Bild(er)"
30030 GOSUB "GETONEKEY10"
30040 PRINT "2. Bel.Reihe v.XX-YYYs,ZZZ"
30050 GOSUB "GETONEKEY10"
30060 PRINT "3. RND, v.XX-YYY,1-ZZ Bild "
30070 GOSUB "GETONEKEY10"
30080 PRINT "4. Echtuhr"
30090 GOSUB "GETONEKEY10"
30100 PRINT "0. Uhr/Datum stellen "
30110 GOSUB "GETONEKEY10"
30850 GOTO "LOOP4"
30900 END
40000 "GETONEKEY10":FOR X=1TO 20
40010 A$=INKEY$
40020 IF A$="1"THEN "PRG1"
40030 IF A$="2"THEN "PRG2"
40040 IF A$="3"THEN "PRG3"
40050 IF A$="4"THEN "UHR"
40100 IF A$="0"THEN "PRG0"
40110 NEXT X
40200 RETURN
40300 REM
40310 "GETONEKEY1"
40320 A$=INKEY$
40330 IF A$="M"THEN GOTO "MENUE"
40340 RETURN
40350 REM
40400 REM
50000 "INIT":REM init
50010 REM test RMT
50020 CE=0:CE$=CHR$ (PEEK &B87D)+CHR$ (PEEK &B87E)+CHR$ (PEEK &B87F):IF CE$="RMT"THEN LET CE=1
50030 REM set jahr
50040 IF JJ=0THEN LET JJ=2005
50070 CLS
50075 HH=5
50080 RETURN
50090 REM
50100 REM
55000 REM
55100 T=TIME
60000 "AUSLOESUNG":WAIT 200:REM ausloesung
60010 IF CE=0THEN POKE# &F00D,2:FOR H=1TO 15:NEXT H:POKE# &F00D,0
60020 IF CE=1THEN RMT OFF :POKE# &F00D,2:CURSOR 0:WAIT 5:PRINT "KLICK";:RMT ON :POKE# &F00D,0
60040 RETURN