10 'Save"Clock.gmb" 20 'Save"Clock.bs",a 30 ' 40 COLOR15,1,1:BEEP:CLEAR1024:DEFINTA-Z:MOTOROFF:MO=-1:SCREEN2,2:OPEN"grp:"AS1 50 DIMAL$(4):COLOR15,1:ONSTOPGOSUB1060:STOPON 60 PRESET(35,2):PRINT#1,"<< Rodionov Software >>" 70 PRESET(92,60):PRINT#1,"C L O C K" 80 PRESET(116,78):PRINT#1,"for" 90 PRESET(92,98):PRINT#1,"M S X - 2" 100 FORI=1TO26STEP2:LINE(40+I,30+I)-(215-I,134-I),4,B:NEXT 110 GOSUB850 'lod sprts 120 CLS:DEFUSR=&H41:A=USR(0) 130 CIRCLE(122,96),76:CIRCLE(122,96),78:CIRCLE(122,96),2:CIRCLE(122,96),1 140 PT!=2.62 150 FORI=1TO12 160 X=112+INT(68*SIN(PT!)):Y=94+INT(68*COS(PT!)) 170 PRESET(X,Y):PRINT#1,I:PT!=PT!-.52 180 NEXT 190 H0$="c1bm122,96m=x1;,=y1;" 'clr hrs 200 M0$="c1bm122,96m=x2;,=y2;" 'clr min 210 H1$="c15bm122,96m=xh;,=yh;" 'drw hrs 220 M1$="c15bm122,96m=xm;,=ym;" 'drw min 230 SL=4:SR=1:CN=0:XS=240:DX=-2:XE=0:SS=10:SG=0 'init sprts## 240 GETDATED0$:LINE(15,2)-(81,13),4,BF:PSET(18,4),4:PRINT#1,D0$ 250 GETTIMET0$:LINE(173,2)-(240,13),4,BF:PSET(176,4),4:PRINT#1,T0$ 260 S0$=MID$(T0$,7,2) 'sec 270 H=VAL(MID$(T0$,1,2)) 280 M=VAL(MID$(T0$,4,2)) 290 X1=122:Y1=96:X2=122:Y2=96:GOSUB730 'init hrs & min 300 PUTSPRITE18,(25,130) 310 PRESET(2,152):PRINT#1,"F1=**:**" 320 PRESET(2,162):PRINT#1,"F2=**:**" 330 PUTSPRITE19,(204,130),,18 340 PRESET(182,152):PRINT#1,"F3=**:**" 350 PRESET(182,162):PRINT#1,"F4=**:**" 360 DEFUSR=&H44:A=USR(0) 370 ONKEYGOSUB920,930,940,950,1070:FORI=1TO5:KEY(I)ON:NEXT 380 REM --- clock goes here! --- 390 GETDATED1$ 400 GETTIMET1$ 410 FOR NA=1TO4 420 TP$=INKEY$ 'bell-stop switch 430 IFTP$=CHR$(27) THEN:_SYSTEM 440 IFAL$(NA)<>LEFT$(T1$,5)GOTO470 450 MOTORON:MO=1:IFNOT(PLAY(0))THENFORI=1TO2:PLAY"s10m1900t255l64n65n60n65n60n65n70n65n70n65n60n65n60":NEXTI 460 IFTP$<>""THENAL$(NA)="**:**" 470 NEXTNA 480 CN=(CN+1)MOD3:IFCN GOTO 550 490 SL=SL+1:IFSL>5THENSL=4 500 SR=SR+1:IFSR>3THENSR=1 510 PUTSPRITE1,(1,0),13,SL 520 PUTSPRITE2,(83,-1),14,SR 530 PUTSPRITE3,(156,-1),3,SL+2 540 PUTSPRITE4,(239,0),13,SL+4 550 SG=(SG+1)MOD4 560 XS=XS+DX:IFXS<>XEGOTO590 570 DX=-DX:IFSS=10THENSS=14:XS=0:XE=240:GOTO590 580 SS=10:XS=240:XE=0 590 PUTSPRITE5,(XS,175),7,SS+SG 600 S1$=MID$(T1$,7,2) 610 IFS1$=S0$GOTO390 620 LINE(238,10)-(224,4),4,BF:PRINT#1,S1$:S0$=S1$ 630 IFMID$(T1$,1,5)=MID$(T0$,1,5)GOTO390 640 LINE(216,10)-(176,4),4,BF:PRINT#1,MID$(T1$,1,5) 650 H=VAL(MID$(T1$,1,2)) 660 M=VAL(MID$(T1$,4,2)) 670 GOSUB730 680 T0$=T1$ 690 IFD0$=D1$GOTO390 700 LINE(15,2)-(81,13),4,BF:PSET(18,4),4:PRINT#1,D1$:D0$=D1$ 710 GOTO390 720 REM --- draw time --- 730 MA!=3.141588#-.1047196#*M 740 HA!=3.141588#-8.726631E-03*(H*60+M) 750 XM=122+INT(50*SIN(MA!)) 760 YM=96+INT(50*COS(MA!)) 770 XH=122+INT(30*SIN(HA!)) 780 YH=96+INT(30*COS(HA!)) 790 IFH=12THENXH=XH+1 800 IFH=15THENYH=YH+1 810 DRAWM0$+H0$+M1$+H1$:CIRCLE(122,96),1:CIRCLE(122,96),2 820 X1=XH:Y1=YH:X2=XM:Y2=YM 830 RETURN 840 REM --- load sprites --- 850 RESTORE1090 860 FORI=1TO18:A$="" 870 FORJ=1TO32:READA:A$=A$+CHR$(A):NEXTJ 880 SPRITE$(I)=A$ 890 NEXTI 900 RETURN 910 REM --- set alarms --- 920 NA=1:X=2:Y=152:GOTO960 930 NA=2:X=2:Y=162:GOTO960 940 NA=3:X=182:Y=152:GOTO960 950 NA=4:X=182:Y=162 960 FORI=1TO4:KEY(I)OFF:NEXTI:AL$(NA)=" : " 970 LINE(X+64,Y+8)-(X+24,Y),1,BF:PRINT#1,AL$(NA):DG$=INKEY$ 980 IFDG$=CHR$(8)ORDG$=CHR$(29)ORDG$=CHR$(127)GOTO960 990 IFDG$=CHR$(13)GOTO1020 1000 IFDG$<"0"ORDG$>"9"GOTO970 1010 BL=INSTR(AL$(NA)," "):IFBLTHENMID$(AL$(NA),BL)=DG$:GOTO970 1020 IFINSTR(AL$(NA)," ")THENAL$(NA)="**:**" 1030 LINE(X+64,Y+8)-(X+24,Y),1,BF:PRINT#1,AL$(NA) 1040 FORI=1TO4:KEY(I)ON:NEXTI 1050 RETURN 1060 COLOR15,4:END 1070 IFMO<0THENMOTORONELSEMOTOROFF 1080 MO=(-1)*MO:RETURN 1090 DATA0,12,18,155,114,66,113,8,20,47,80,160,192,0,0,0,0,6,6,2,132,250,130,116,138,5,5,10,12,0,0,0 1100 DATA0,0,12,18,154,117,69,122,8,11,10,10,10,14,0,0,0,0,3,3,1,254,1,57,74,138,10,10,10,14,0,0 1110 DATA0,12,18,154,117,74,54,105,10,9,4,2,2,1,0,0,0,0,3,115,140,50,82,146,20,40,168,168,168,176,0,0 1120 DATA3,4,248,241,240,240,240,240,208,241,216,245,50,1,0,0,224,16,200,78,245,73,174,112,144,80,224,32,160,192,0,0 1130 DATA3,4,248,241,240,240,240,240,208,241,216,245,50,1,0,0,224,16,206,77,241,78,168,112,144,80,224,32,160,192,0,0 1140 DATA0,31,32,63,32,16,112,144,144,144,151,151,87,54,8,7,192,254,1,255,1,26,6,26,26,3,195,146,14,2,4,248 1150 DATA0,0,63,63,32,16,118,151,149,148,151,144,80,48,8,7,0,192,255,255,1,26,6,26,154,131,195,18,14,2,4,248 1160 DATA7,8,19,114,175,146,117,14,9,10,7,4,5,3,0,0,192,32,31,143,15,15,15,15,11,143,27,175,76,128,0,0 1170 DATA7,8,115,178,143,114,21,14,9,10,7,4,5,3,0,0,192,32,31,143,15,15,15,15,11,143,27,175,76,128,0,0 1180 DATA1,2,4,8,31,16,20,16,20,16,20,16,31,76,120,48,254,6,202,22,226,34,170,34,162,52,168,56,236,6,28,24 1190 DATA1,2,4,8,31,16,20,16,20,16,20,16,31,6,6,30,254,6,202,22,226,34,170,34,162,52,168,48,240,48,48,224 1200 DATA1,2,4,8,31,16,20,16,20,16,20,16,31,29,15,3,254,6,202,22,226,34,170,34,162,52,168,48,224,192,192,128 1210 DATA1,2,4,8,31,16,20,16,20,16,20,16,31,6,6,30,254,6,202,22,226,34,170,34,162,52,168,48,240,48,48,224 1220 DATA127,96,83,104,71,68,85,68,69,44,21,28,55,96,56,24,128,64,32,16,248,8,40,8,40,8,40,8,248,50,30,12 1230 DATA127,96,83,104,71,68,85,68,69,44,21,12,15,12,12,7,128,64,32,16,248,8,40,8,40,8,40,8,248,96,96,120 1240 DATA127,96,83,104,71,68,85,68,69,44,21,12,7,3,3,1,128,64,32,16,248,8,40,8,40,8,40,8,248,184,240,192 1250 DATA127,96,83,104,71,68,85,68,69,44,21,12,15,12,12,7,128,64,32,16,248,8,40,8,40,8,40,8,248,96,96,120 1260 DATA1,6,9,8,8,8,8,8,16,32,64,127,1,2,2,1,128,96,240,240,112,112,112,48,56,28,30,254,128,192,192,128