1'CLKDAT.101 is a modified version of CLKDAT.100 and .199. The major change 2'is that it takes full advantage of the calendar generator of CALEND.100, from which a portion of the code was used. 3'Additional code was borrowed from CHIMES.100 4'Key F8 will return user to MENU at any time. will exit the display and branch to the calendar generator. 5'In calendar, the codes are ext,

revious, ther, oday and enu. 6'At the first prompt in calendar, generates this month's calendar. 7'Thanks to authors of predecessor programs. Comments to: 8' Howard J. Benner 9' 70235,1337 11 IFRIGHT$(DATE$,2)<>"83"THENDATE$=LEFT$(DATE$,6)+"83" 12 MAXFILES=0:CLEAR 13 CLEAR1024 14 CLS:D$=DATE$:DA%=VAL(MID$(D$,4,2)):D$=LEFT$(D$,3)+RIGHT$(D$,2):I%=INSTR(D$,"/"):W=VAL(LEFT$(D$,I%-1)) 15V=VAL(RIGHT$(D$,LEN(D$)-I%)):X=1:V=V+1900 16 GOSUB22:RESTORE23:FORI%=1TOW:READ M$,MD%:NEXTI%:IFW=2THENMD%=MD%-(0=VMOD4)+(0=VMOD100)-(0=VMOD400) 17 PRINTTAB(3);M$;:PRINT@18,V:PRINT" Su Mo Tu We Th Fr Sa":D%=D-7*INT(D/7):PRINTTAB(2);SPACE$(3*D%);:FORI%=1TOMD% 18 IFI%=DA%THENPRINT" ";:PRINTCHR$(27);"p";ELSEPRINT" "; 19 PRINTUSING"##";I%;:IFI%=DA%THENPRINT CHR$(27);"q"; 20 D%=D%+1:IFD%>6ANDI%<>MD%THENPRINT: PRINTTAB(2);:D%=0 21 NEXTI%:GOTO110 22 Y=-INT((14-W)/12):Z=X-32074+INT(1461*(V+4800+Y)/4):Z=Z+INT(367*(W-2-12*Y)/12):D=Z-INT(3*INT((V+4900+Y)/100)/4):RETURN 23 DATAJanuary,31,February,28,March,31, April,30,May,31,June,30 24 DATAJuly,31,August,31,September,30, October,31,November,30,December,31,EOF,-1 110 LINE(157,4)-(219,58),1,B:LINE(159,6)-(217,16),1,B:LINE(159,19)-(217,56),1,BF 111PRINT@268,CHR$(27);CHR$(112);"- ";DAY$;" -";CHR$(27);CHR$(113);:TIME$ON 122ONKEYGOSUB,,,,,,,600:KEY(8)ON 140 C=4697:D=20:F=-1:P=192:H=VAL(MID$(TIME$,4,5)):IFH<15THENM=1ELSEIFH=>15THENM=2:IFH=>30THENM=3 190 IFH=>45THENM=4:H=1:ELSEH=0 200 H=H+VAL(LEFT$(TIME$,2)):IFH>23THENH=0 220 GOSUB1200:H$=TIME$ 240 IFH$=TIME$THENGOTO240 245 IFT1=7500THENT1=11000ELSET1=7500 250 IFH$<>TIME$THENSOUNDT1,1:H$=TIME$: F=F/(-1):TYMP$=" "+TIME$ 260 P=P+F:IFP<183ORP>193THENP=P-F 270 LINE(P-F,20)-(P-F,41),1:LINE(P-F-1,42)-(P-F+1,44),1,BF:LINE(P,20)-(P,41),0:LINE(P-1,42)-(P+1,44),0,BF 280 T2=VAL(LEFT$(TIME$,2)):IFT2>12THENT3=T2-12:TYMP$=STR$(T3)+RIGHT$(TIME$,6):IFT3<10THENTYMP$=TYMP$+" " 281 IFT2<10THENTYMP$=STR$(T2)+RIGHT$(TIME$,6)+" " 290 PRINT@67,TYMP$;:OP$=INKEY$:IFOP$<>""THENRUN3010 300 GOTO250 600 TIME$OFF:MENU 1100 RESTORE2000 1110 FORI=1TOM:READT:SOUNDT,D:SOUND0,D: READT:SOUNDT,D:SOUND0,D:NEXT 1150 IFH>12THENHT=H-12ELSEIFH=0THENHT=12 ELSEHT=H 1160 IFM=4THENFORI=1TOHT:SOUND0,D*2: SOUNDC,D:NEXTI 1170 M=M+1:IFM>4THENM=1 1180 IFM=4THENH=H+1:IFH>23THENH=0 1200 IFH<10THENH$="0"+RIGHT$(STR$(H),1)ELSEH$=RIGHT$(STR$(H),2) 1210 IFM=4THENM$="00"ELSEM$=RIGHT$(STR$(M*15),2) 1220 ONTIME$=H$+":"+M$+":00"GOSUB1100 1230 RETURN 2000 DATA3728,4697,4184,6269,6269,4184, 3728,4697 3010 CLEAR1024 3020 ONERRORGOTO9000:CLS:PRINT@170," ";:INPUT"Month/year";D$ 3040 RESTORE23:IFD$=""THEND$=DATE$: DA%=VAL(MID$(D$,4,2)):D$=LEFT$(D$,3)+RIGHT$(D$,2) 3050 I%=INSTR(D$,"/"):IFI%<2ORI%>3ORI%=LEN(D$)THENSTOP:BEEP:RUN3010 3060 W=VAL(LEFT$(D$,I%-1)):V=VAL(RIGHT$(D$,LEN(D$)-I%)):X=1 3061IFW<1ORW>12ORV<0THENBEEP:GOTO3030 ELSEIFV<100THENV=V+1900 3090 ONERRORGOTO3010 3100 GOSUB22:FORI%=1TOW:READM$,MD%: NEXTI%:IFW=2THENMD%=MD%-(0=VMOD4)+(0=VMOD100)-(0=VMOD400) 3130 CLS:PRINTTAB(7);M$;" ";V:PRINTTAB(6);" Sun Mon Tue Wed Thu Fri Sat" 3131D%=D-7*INT(D/7):PRINTTAB(6);SPACE$(4*D%);:FORI%=1TOMD% 3185 IFI%=DA%THENPRINT" ";:PRINTCHR$(27);"p";ELSEPRINT" "; 3190 PRINTUSING"##";I%;:IFI%=DA%THEN PRINTCHR$(27);"q"; 3200 D%=D%+1:IFD%>6ANDI%<>MD%THENPRINT: PRINTTAB(6);:D%=0 3210 NEXTI%:PRINT@295,"

"; 3220 C$=INKEY$:IFC$=""THEN3220ELSEIF C$="M"ORC$="m"THEN3230ELSEIFC$="o"ORC$="O"THENRUN3010 3221IFC$="T"ORC$="t"THENRUN12ELSEIFC$="P"ORC$="p"THEN3225ELSEIFC$="N"ORC$="n"THEN3227ELSE3220 3225 TD$=STR$(VAL(LEFT$(D$,2))-1):TD$=RIGHT$(TD$,2)+"/"+RIGHT$(D$,2):D$=TD$:DA%=0 3226 IFVAL(LEFT$(D$,2))=0THENTD$=STR$(12)+"/"+RIGHT$(STR$(VAL(RIGHT$(D$,2))-1),2):D$=RIGHT$(TD$,5):GOTO3229ELSEGOTO3229 3227 TD$=STR$(VAL(LEFT$(D$,2))+1):TD$=RIGHT$(TD$,2)+"/"+RIGHT$(D$,2):D$=TD$:DA%=0 3228 IFVAL(LEFT$(D$,2))=13THENTD$=STR$(1)+"/"+RIGHT$(STR$(VAL(RIGHT$(D$,2))+1),2):D$=RIGHT$(TD$,5) 3229 GOTO3040 3230 MENU 9000 IFERL<>3060THENONERRORGOTO3010: RESUME 9010 BEEP:RESUME3030