1 'Caps off 2 'Press 'a' to set or off alarm 3 'Press 's' or line 50 to change time setting 4 'Press 't' to read time 5 'Press 'c' to on or off ticking 6 'Press 'd' to change snooze length 7 'Hit space bar while ringing = snooze or hit enter to shut it up 8 'Press enter to on or off snooze 9 'Change value in line 60 10 'for snooze length in seconds 11 'Change line 100 for Model 100 12 'Vary line 115 for different clock sizes 13 'white screen=A.M., black=P.M. 50 ST$="20:00:00" 60 SL=300 100 MD=2 107 XC=120:YC=31:IFMD=2THENYC=63 110 DIMX(60),Y(60):PI=ATN(1)*4 115 R=YC-1 130 FORL=0TO15:X(L)=SIN(L*PI/30):Y(L)=COS(L*PI/30):X(30-L)=X(L):Y(30-L)=-Y(L):X(L+30)=-X(L):Y(L+30)=-Y(L) 132X(60-L)=-X(L):Y(60-L)=Y(L):NEXT:Y(15)=0:Y(45)=0:GOTO600 135 FORL=1TO60:LINE(XC+X(L)*R,YC-Y(L)*R)-(XC+X(L-1)*R,YC-Y(L-1)*R),PS 136LINE(XC+X(L-1)*(R-2),YC-Y(L-1)*(R-2))-(XC+X(L)*(R-2),YC-Y(L)*(R-2)),PS:X=XC+X(L)*(R-6):Y=YC-Y(L)*(R-6) 137 IFINT(L/5)=L/5THENLINE(X-1,Y-1)-(X+1,Y+1),PS,BELSEIFPS=1THENPSET(X,Y)ELSEPRESET(X,Y) 138 X=XC+X(L)*R/2:Y=YC-Y(L)*R/2 139IFINT(L/5)=L/5THENLINE(X,Y)-(X+SGN(X-XC),Y+SGN(Y-YC)),PS,BFELSEIFMD=1THEN144ELSEIFPS=1THENPSET(X,Y)ELSEPRESET(X,Y) 144 NEXT 150 S1=XC:S2=YC:M1=XC:M2=YC:H1=XC:H2=YC:S3=XC:S4=YC:M3=XC:M4=YC:H3=XC:H4=YC:SR=R-9:MR=R-9:HR=R/2 155 T$=TIME$:S=VAL(RIGHT$(T$,2)):H=VAL(LEFT$(T$,2)):M=VAL(MID$(T$,4,2)):H=H+AP*12:IFH<0ORH>11THEN600 160 M1=XC+X(M)*MR:M2=YC-Y(M)*MR:H1=XC+X(H*5+M/12)*HR:H2=YC-Y(H*5+M/12)*HR:S1=XC+X(S)*SR:S2=YC-Y(S)*SR:IFCL=-1THENSOUND0,1 162 LINE(S3,S4)-(XC,YC),PR 163LINE-(S1,S2),PS:X=XC+X(SS)*HR:Y=YC-Y(SS)*HR:IFSS/5=INT(SS/5)THENLINE(X,Y)-(X+SGN(X-XC),Y+SGN(Y-YC)),PS,BF 165 SS=S:IFMD=2THENIFPS=1THENPSET(X,Y)ELSEPRESET(X,Y) 167 LINE(XC-1,YC)-(M3,M4),PR:LINE-(XC+1,YC),PR:LINE(XC,YC+1)-(M3,M4),PR:LINE-(XC,YC-1),PR 168LINE(XC-1,YC)-(M1,M2),PS:LINE-(XC+1,YC),PS:LINE(XC,YC+1)-(M1,M2),PS:LINE-(XC,YC-1),PS 170 LINE(XC-2,YC)-(H3,H4),PR:LINE-(XC+2,YC),PR:LINE(XC,YC+2)-(H3,H4),PR:LINE-(XC,YC-2),PR 172LINE(H3,H4)-(XC,YC),PR:LINE-(H1,H2),PS:LINE(XC-2,YC)-(H1,H2),PS:LINE-(XC+2,YC),PS:LINE(XC,YC+2)-(H1,H2),PS:LINE-(XC,YC-2),PS 175 LINE(XC-2,YC-2)-(XC+2,YC+2),PS,BF:H3=H1:H4=H2:M3=M1:M4=M2:S3=S1:S4=S2 180 IFT$=TIME$THEN180ELSEIFT$=ST$ANDAS=-1THEN300ELSEIFSC=1THEN300ELSEK$=INKEY$:IFK$<>""THEN200ELSESC=SC-1:GOTO155 200 PRINT@0,"";:IFAP=-1THENPRINTCHR$(27)+"p"ELSEPRINTCHR$(27)+"q" 202 IFK$<>"a"THEN210 205 IFAS=0THENAS=-1:PRINT@30,"ALARM SET":PRINT@70,ST$:GOTO290 207 AS=0:PRINT@0,"ALARM OFF":GOTO290 210 IFK$="s"THENPRINT@0,"SET TIME":PRINT@40,"(HH:MM:SS)":LINEINPUTST$:GOTO290 220 IFK$<>CHR$(13)THEN230ELSESN=(SN=0):SC=-SN*SL:IFSN=0THENPRINT@0,"SNOOZE OFF"ELSEPRINT@30,"SNOOZE ON" 225 GOTO290 230 IFK$="c"THENCL=(CL=0) 240 IFK$<>"t"THEN250ELSEPRINT@30,"IT'S NOW":H=VAL(LEFT$(T$,2)):A=(H>11):H=H+12*A:PRINT@69,STR$(H)+RIGHT$(T$,6)" "; 243IFA=0THENPRINT"A"ELSEPRINT"P" 245 FORL=0TO700:NEXT:GOTO290 250 IFK$="d"THENPRINT@0,"SNOOZE =":LINEINPUTSL$:SL=VAL(SL$)+1:GOTO290 280 GOTO155 290 FORL=0TO120:NEXT:FORL=0TO2:PRINT@L*40," ":PRINT@L*40+30," ":NEXT:GOTO155 300 'alarm 305 ONERRORGOTO330 307 RESTORE 310 READF,D:SOUNDF,D:K$=INKEY$:IFK$=""THEN310ELSEIFK$=" "THEN320ELSEIFK$<>CHR$(13)THEN310ELSESC=-1:GOTO200 320 K$=CHR$(13):SN=0:GOTO200 330 RESUME307 406 DATA 4184,10,3728,10,3718,10,2348,20,3718,10 407 DATA 2348,20,3718,10,2348,60,2348,10,2092,10 408 DATA 1975,10,1864,10,2348,10,2092,10,1864,20 409 DATA 2484,10,2092,20,2348,50 600 AP=(VAL(LEFT$(TIME$,2))>11) 610 PS=1:PR=0:IFAP=-1THENPS=0:PR=1 615 P$="p":IFAP=0THENP$="q" 617 PRINTCHR$(27)+P$ 625 FORL=1TO75:PRINT" ";:NEXT:LINE(0,64*MD-9)-(239,64*MD-1),PR,BF 630 GOTO135