10 C$=','
20 OPTION ANGLE DEGREES
30 REAL X,Y,D0,D1,T
40 INTEGER S(60,4),M(5,2),H(5,2),A,B,S0,S1,M0,M1,H0,H1,Z,I,J,K
50 PRINT 'IN;SP1;SC-500,500,-400,400'
60 REM
70 REM ** ZEICHNEN DES ZIFFERNBLATTES **
80 REM
90 FOR A=1 TO 60
100 B=(A-1)*6
110 X=SIN(B) @ Y=COS(B)
120 IF MOD(A-1,5)=0 THEN Z=330 ELSE Z=350
130 S(A,1)=Z*X @ S(A,2)=Z*Y @ S(A,3)=390*X @ S(A,4)=390*Y
140 PRINT 'PU;PA';S(A,1);C$;S(A,2);';PD;PA';S(A,3);C$;S(A,4)
150 NEXT A
160 PRINT 'PU;PA3,3;PD;PA3,-3,-3,-3,-3,3,3,3;DT$;DI;SL;SI4,3'
170 PRINT 'PU;PA-55,230;LB12$;PA255,-45;LB3$'
180 PRINT 'PA-25,-310;LB6$;PA-310,-45;LB9$;SP15;SI2,2'
190 REM
200 REM ** ERSTMALIGE ZEIGER- UNO DATUMSEINSTELLUNG **
210 REM
220 GOSUB 'TIMEDATE'
230 S0=S1 @ GOSUB 'SEKUNDE' @ M0=M1 @ GOSUB 'SETMIN'
240 H0=H1 @ GOSUB 'SETHOUR' @ D0=D1 @ GOSUB 'SETDATE'
250 REM
260 REM ** WENN ZEIT- ODER DATUMSAENDERUNG **
270 REM ** NEUE ZEIGERSTELLUNG ODER DATUMSANZEIGE **
280 REM
290 'TIME': GOSUB 'TIMEDATE'
300 IF D0<>D1 THEN GOSUB 'SETDATE' @ D0=D1 @ GOSUB 'SETDATE' @ GOTO 'TIME'
310 IF H0<>H1 THEN GOSUB 'DELHOUR' @ H0=H1 @ GOSUB 'SETHOUR' @ GOTO 'TIME'
320 IF M0<>M1 THEN GOSUB 'DELMIN' @ M0=M1 @ GOSUB 'SETMIN' @ GOTO 'TIME'
330 IF S0<>S1 THEN GOSUB 'SEKUNDE' @ S0=S1 @ GOSUB 'SEKUNDE' @ GOTO 'TIME'
340 GOTO 'TIME'
350 REM
360 REM ** SETZT ODER LOESCHT SEKUNDENANZEIGE **
370 REM
380 'SEKUNDE':
390 PRINT 'PU;PA';S(S0,1);C$;S(S0,2);';PD;PA';S(S0,3);C$;S(S0,4)
400 RETURN
410 REM
420 REM ** ZEICHNET MINUTENZEIGER **
430 REM
440 'SETMIN':
450 M(1,1)=SIN(M0)*330 @ M(1,2)=COS(M0)*330
460 M(2,1)=SIN(M0+8)*220 @ M(2,2)=COS(M0+8)*220
470 M(3,1)=SIN(M0+160)*30 @ M(3,2)=COS(M0+160)*30
480 M(4,1)=SIN(M0-160)*30 @ M(4,2)=COS(M0-160)*30
490 M(5,1)=SIN(M0-8)*220 @ M(5,2)=COS(M0-8)*220
500 REM
510 REM ** LOESCHT MINUTENZEIGER **
520 REM
530 'DELMIN':
540 PRINT 'PU;PA';M(5,1);C$;M(5,2);';PD'
550 FOR A=1 TO 5
560 PRINT 'PA';M(A,1);C$;M(A,2)
570 NEXT A
580 RETURN
590 REM
600 REM ** ZEICHNET STUNDENZEIGER **
610 REM
620 'SETHOUR':
630 H(1,1)=SIN(H0)*250 @ H(1,2)=COS(H0)*250
640 H(2,1)=SIN(H0+12)*150 @ H(2,2)=COS(H0+12)*150
650 H(3,1)=SIN(H0+135)*15 @ H(3,2)=COS(H0+135)*15
660 H(4,1)=SIN(H0-135)*15 @ H(4,2)=COS(H0-135)*15
670 H(5,1)=SIN(H0-12)*150 @ H(5,2)=COS(H0-12)*150
680 REM
690 REM ** LOESCHT STUNDENZEIGER **
700 REM
710 'DELHOUR':
720 PRINT 'PU;PA';H(5,1);C$;H(5,2);';PD'
730 FOR A=1 TO 5
740 PRINT 'PA';H(A,1);C$;H(A,2)
750 NEXT A
760 RETURN
770 REM
780 REM ** HOLT ZEIT UND DATUM **
790 REM
800 'TIMEDATE':
810 T=TIME
820 D1=DATE @ D$=DATE$
830 S1=MOD(INT(T),60)+1
840 M1=MOD(INT(T/60),60)*6
850 H1=MOD(INT(T/3600),12)*30
860 RETURN
870 REM
880 REM ** ZEIGT DATUM AN **
890 REM
900 'SETDATE':
905 W0=VAL(DATE$[7,8])
910 W1=MOD(VAL(DATE$[4,5])+9,12)+1
915 W2=INT(DATE/1000)
920 W3=19 @ IF W2<60 THEN W3=20
925 IF W1>10 THEN W2=W2-1
930 IF W2<0 THEN W2=99 @ W3=W3-1
935 W=MOD(W0+INT(2.6*W1-0.2) + W2 + INT(W2/4) + INT(W3/4) - 2*W3,7)+1
940 ON W GOTO 'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,'G'
945 'A': L$='SUN' @ GOTO 'OUT'
950 'B': L$='MON' @ GOTO 'OUT'
955 'C': L$='TUE' @ GOTO 'OUT'
960 'D': L$='WED' @ GOTO 'OUT'
965 'E': L$='THU' @ GOTO 'OUT'
970 'F': L$='FRI' @ GOTO 'OUT'
975 'G': L$='SAT'
980 'OUT':
985 PRINT 'PU;PA-160,-150;LB';L$;'  ';D$[7,8];'.';D$[4,5];'.';D$[1,2];'$'
990 RETURN
999 END
