Listing of file='CLNDR2.BAS;01' on disk='vmedia/chip_129-sector.ccvf'
1 REM CALENDAR V7.2 BY L W PETERSON 3,16,83 2 REM PRINTS CALENDARS USING EPSON MX-80 TYPE II PRINTER 3 REM WITH GRAPHICS AND CC II WITH 32K. 5 CLEAR 3500 10 DIM ME$(5,7,12),M$(12),M(5,7,12),DT(37) 15 DIM L$(130) 20 D$ = "-------------------" 25 WE= 1:W1= 7 30 PLOT 14,30,16,29,22,12,27,11 33 PLOT 3,15,14,20:PRINT "INITIALIZING ARRAYS" 35 FOR X = 1 TO 7:READ D$(X):NEXT X 40 DATA SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY 45 FOR X = 1 TO 12:READ M$(X):NEXT 50 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER 72 FOR WE= 1TO 5 74 FOR X= 1TO 7 76 FOR Y= 1TO 12 78 M(WE,X,Y)= 1 80 NEXT Y,X,WE 85 PLOT 12,3,8,4:PRINT "FOR INSTRUCTIONS RUN THE 'CLNDRI' PROGRAM" 87 PLOT 3,7,10:INPUT "IN WHICH YEAR WILL WE BE WORKING (83,84)? ";YR 89 IF YR> 99 THEN 87 91 PLOT 3,10,14,20:INPUT "GIVE BAUD RATE (1,2,3,4,5,6,7) ";BD 93 PLOT 27,18,BD 100 PLOT 12,14:PRINT TAB( 20)"****** MAIN MENU *****":PRINT 110 PRINT TAB( 20)"BEGIN A NEW MONTH ......1" 120 PRINT TAB( 20)"ADD A WEEK .............2" 130 PRINT TAB( 20)"EDIT A DATE ............3" 135 PRINT TAB( 20)"CHANGE MONTHS ..........4" 140 PRINT TAB( 20)"LOAD A CALANDER ........5" 150 PRINT TAB( 20)"SAVE A CHALANDER .......6" 160 PRINT TAB( 20)"PRINT THE MEETINGS .....7" 170 PRINT TAB( 20)"VEIW MONTH BY DAYS .....8" 180 PRINT :PRINT TAB( 20)"MAKE YOUR SELECTION ... "; 185 PLOT 2,92,44,242,36,44,36,114,92,114,92,28,85,28,85,44,255 187 INPUT ""; NO 190 PLOT 15,12: IF NO < 1 OR NO > 8 THEN 100 200 ON NOGOSUB 300,500,3000,1600,4000,5000,6000,7000 210 PLOT 12,14,19:GOTO 100 300 REM BEGIN A NEW CALANDER DISK FILE 310 GOSUB 1700:FILE "T",420 320 FILE "N",M1$,5,1024,1 330 FOR WE= 1TO 5:FOR X= 1TO 7:FOR Y= 1TO 12 340 M(WE,X,Y)= 1 350 NEXT Y,X,WE 400 RETURN 420 PRINT "A CLANDER ALREADY EXISTS FOR "M$(Q)"": RETURN 500 REM ADD A DATE TO THE CALANDER 510 IF Q= 0THEN GOSUB 1700 520 PLOT 12,15,18:GOSUB 1500:PLOT 8 530 PRINT " ADD A WEEK TO THE CALENDAR" 540 PRINT "EXISTING INFORMATION FOR A DAY WILL BE LISTED IN THE BOX." 550 PRINT "ENTER C TO COPY OR D TO DELETE THE INFORMATION." 560 PRINT "ENTER U TO MOVE BACK UP A LINE OF TEXT." 570 PRINT "PRESS RETURN TO ADVANCE DAYS OR - TO GO BACK A DAY." 580 PRINT "A + WILL ADVANCE TO SUNDAY OF THE NEXT WEEK" 590 PRINT "ONLY DATA INSIDE THE BOX WILL BE COPIED!" 600 PRINT "WHICH WEEK IN THE MONTH OF "M$(Q)" TO ENTER? ";:INPUT "";WE 610 IF WE< 1OR WE> 5THEN 520 620 630 REM GET A WEEKS SCHEDULE 640 FOR X = 1 TO 7: PLOT 3,22,9: PRINT " " 650 PLOT 3,22,9:PRINT "" D$(X)"" 660 GOSUB 850: GOSUB 700 670 IF WE= 0OR WE= 6GOTO 690 680 NEXT X: RETURN 690 RETURN 700 REM BLOCK EDITER 710 PLOT 3,0,9 720 FOR Y= 2TO 12 730 PLOT 3,16,10+ Y:INPUT "";M$:M$= LEFT$ (M$,18) 735 IF D$(X)= "SATURDAY"THEN M$= LEFT$ (M$,16) 740 IF M$ = "0" THEN RETURN 750 IF M$= "D"OR M$= "d"THEN PLOT 3,16,10+ Y:PRINT " ":M$= "" 760 IF M$= "C"OR M$= "c"THEN PLOT 3,16,10+ Y:PRINT ME$(WE,X,Y):GOTO 830 770 IF M$= "U"OR M$= "u"THEN PLOT 3,16,10+ Y:PLOT 32,26:PRINT ME$(WE,X,Y):Y= Y- 1:GOTO 730 780 IF M$= "+"THEN WE= WE+ 1:X= 0:RETURN 790 IF M$= "-"AND X> 1THEN X= X- 2:RETURN 800 IF M$= "-"AND X= 1THEN X= 6:WE= WE- 1:RETURN 810 ME$(WE,X,Y)= M$:M(WE,X,Y)= LEN (ME$(WE,X,Y)) 820 IF M(WE,X,Y)= 0THEN M(WE,X,Y)= 1 830 NEXT Y:RETURN 840 850 REM BLOCK LISTER 860 FOR Y= 1TO 12:PLOT 3,16,10+ Y:PRINT " ":NEXT 870 PLOT 3,0,9 880 FOR Y = 1 TO 12 890 PLOT 3,16,10+ Y:PRINT ME$(WE,X,Y) 900 NEXT Y: RETURN 1500 REM REM DRAW THE BOX SIZE 1510 PLOT 22,2,30,86,242,68,86,68,34,30,34,30,86,255 1520 RETURN 1600 REM CHANGE MONTHS 1620 GOSUB 1700 1630 GOTO 100 1700 REM DISPLAY THE MONTHS 1710 PLOT 12,3,0,8:FOR X= 1TO 12 1720 PRINT TAB( 20)""X"....."M$(X) 1730 NEXT X 1740 PLOT 3,0,14: PRINT " WHICH MONTH? "; 1750 PLOT 2,74,44,242,38,44,38,65,1,65,1,74,38,74,38,98,74,98,74,44,255 1760 INPUT "";Q 1770 IF Q < 0 OR Q > 12 THEN 300 1780 M1$= LEFT$ (M$(Q),3) 1790 REM DETERMIN DATES FOR THE MONTH SELECTED 1800 PLOT 12,3,10,10:PRINT "CALCULATING DATES FOR "M$(Q)"" 1810 FOR WE= 1TO 5:GOSUB 2000:NEXT WE:RETURN 2000 REM FIND CALENDER DATES 2010 Y= 0:C1= 19 2015 FOR X = 1 TO 37:DT(X) = 0:NEXT X 2020 2100 DEF FN L(X) = X = 4 * INT (X/ 4)AND X> < 100* INT (X/ 100)OR X= 400* INT (X/ 400) 2120 DEF FN T(X) = 31 * (X- 1) + INT (2.2+ .4* X)* (X> 2) 2140 W= FN T(Q)+ 36- 28* Q+ YR+ INT (YR/ 4)- 2* (C1- 4* INT (C1/ 4))+ FN L(100* C1+ YR)* (Q< 3) 2145 W1 = INT (W/ 7) 2160 W = W - 7 * W1 2180 W = W - 7 * (W = 0) 2200 LN = FN T(Q + 1) - FN T(Q) - FN L(100 * C1 + YR) * (Q = 2) 2220 FOR X = W TO LN + W - 1:Y = Y + 1:DT(X) = Y:NEXT :Y = 0 2240 FOR X = 7 * WE - 6 TO 7 * WE:Y = Y + 1 2255 IF DT(X)= 0THEN ME$(WE,Y,1)= " ":GOTO 2300 2260 ME$(WE,Y,1)= STR$ (DT(X)):M(WE,Y,1)= 3 2300 NEXT X 2310 IF DT(36) > 0 AND WE = 5 THEN GOSUB 2330 2320 RETURN 2330 ME$(WE,1,6)= D$:ME$(WE,1,7)= STR$ (DT(36)) 2340 IF DT(37)> 0THEN ME$(WE,2,6)= "----":ME$(WE,2,7)= STR$ (DT(37)) 2350 RETURN 3000 REM EDIT A DATE ON THE CALANDER 3005 PLOT 12,3,0,8 3008 3010 PRINT " WHICH DAY IN "M$(Q)" TO EDIT? "; 3020 INPUT "";AN 3040 PLOT 12 3042 FOR WK= 1TO 5 3044 FOR XX= 1TO 7 3046 IF VAL (ME$(WK,XX,1))= ANTHEN WE= WK:X= XX 3048 NEXT XX 3050 NEXT WK:PLOT 3,22,9:PRINT D$(X) 3060 GOSUB 1500: GOSUB 850: GOSUB 700: RETURN 4000 REM LOAD A CHALANDER FROM THE DISK 4100 PRINT "SELECT A MONTH TO READ ":PRINT :GOSUB 1700 4105 PLOT 12,19,14:PLOT 3,15,15 4140 FILE "R",1,M1$,1: B = 1 4150 IF NO< > 7THEN PLOT 12,14,20,3,20,15:PRINT "READING THE MONTH OF "M$(Q) 4153 IF W1< 6THEN 4160 4155 FOR WE= 1TO 5:B= 1 4160 FOR X= 1TO 7 4180 FOR Y= 1TO 12 4190 GET 1,WEEK,B;C:M(WE,X,Y)= C:B= B+ 4 4200 GET 1,WEEK,B;ME$(WE,X,Y)[C]:B= B+ C 4240 NEXT Y 4260 NEXT X 4262 IF W1< 6THEN W1= 7:GOTO 4270 4265 NEXT WE 4270 IF NO< > 7 THEN PLOT 12,15,18 4280 FILE "C",1: RETURN 5000 REM SAVE THE CALANDER 5080 B= 1 5140 PLOT 3,13,15,20,14:PRINT "PUTTING DATA IN THE FILE" 5150 FILE "R",1,M1$,1:B= 1 5155 FOR WE= 1TO 5:B= 1 5160 FOR X= 1TO 7 5180 FOR Y= 1TO 12:C= M(WE,X,Y) 5190 PUT 1,WEEK,B;C:B= B+ 4 5200 PUT 1,WEEK,B;ME$(WE,X,Y)[C]:B= B+ C 5240 NEXT Y 5260 NEXT X 5265 NEXT WE 5280 FILE "C",1: RETURN 6000 REM PRINT THE MEETING SCHEDULE ON THE CALANDER 6010 PLOT 12,15:PRINT 6020 PRINT TAB( 20)"PRINT WEEK 1 .........1" 6030 PRINT TAB( 20)"PRINT WEEK 2 .........2" 6040 PRINT TAB( 20)"PRINT WEEK 3 .........3" 6050 PRINT TAB( 20)"PRINT WEEK 4 .........4" 6060 PRINT TAB( 20)"PRINT WEEK 5 .........5" 6065 PRINT TAB( 20)"PRINT THE MONTH ......6" 6070 PRINT TAB( 20)"PRINT FROM KEYBOARD...7" 6075 PRINT TAB( 20)"RETURN TO MAIN MENU...8" 6080 PRINT :PRINT TAB( 20);:INPUT "MAKEY YOUR SELECTION ";W1 6100 IF W1< 0OR W1> 8GOTO 6000 6120 IF W1= 8THEN RETURN 6125 IF W1= 7GOTO 6350 6130 IF Q= 0THEN PLOT 12:PRINT "WHICH MONTH TO PRINT":PRINT :GOSUB 1700 6135 IF W1= 6GOTO 6500 6140 6145 WE= 1:GOSUB 6700:GOSUB 6900:GOSUB 6155:WE= W1:GOSUB 6200 6147 WE= 6:GOSUB 6900:POKE 33265,0:RETURN 6150 6155 PLOT 18,20,15,27,48:RETURN 6160 6162 IF X= 7THEN PLOT 27,68,16,0:RETURN 6164 PLOT 27,68,18,0:RETURN 6200 REM PRINT OUT A WEEKS SCHEDULE 6220 FOR Y= 1TO 12 6240 FOR X= 1TO 7:PLOT 27,76,8,0,0,255,255,0,0,0,0,0 6250 IF LEN (ME$(WE,X,Y))= 0THEN 6280 6265 FOR T= 1TO LEN (ME$(WE,X,Y)) 6268 PLOT ASC (MID$ (ME$(WE,X,Y),T,T)) 6270 NEXT T 6280 GOSUB 6162:PLOT 9:NEXT X 6290 PLOT 27,76,8,0,0,0,0,0,0,255,255,0:PLOT 13,124,10 6300 NEXT Y: 6320 RETURN 6350 PLOT 12,3,0,3:PRINT "POSITION THE PAPER IN THE PRINTER AND ENTER" 6360 PRINT "THE MATERIAL YOU WOULD LIKE TO ADD TO THE CALANDER." 6370 PRINT "UP TO 120 CHARACTERS PER LINE CAN BE PRINTED." 6380 PRINT "TO END ENTER 'E'":PRINT :PRINT 6390 INPUT "INPUT LINE ";L$ 6400 IF L$= "E" THEN RETURN 6410 PLOT 27,18,BD,27,13,27,48:PRINT L$:POKE 33265,0 6420 GOTO 6390 6500 REM PRINT THE ENTIRE CALENDAR 6510 GOSUB 6700:GOSUB 6155 6520 FOR WE = 1 TO 5 6530 GOSUB 6900:GOSUB 6200 6550 NEXT WE:GOSUB 6900:POKE 33265,0:RETURN 6700 REM PRINT CALENDAR HEADINGS 6703 IF Q= 0THEN PLOT 12,15:GOSUB 1700 6705 PLOT 27,18,BD,27,13:PLOT 15,14 6708 PLOT 27,68,6,25,43,61,81,101,119,0 6710 PRINT TAB( 7)" CALENDAR FOR THE MONTH OF" 6720 PRINT : PLOT 14: PRINT TAB( 25)M$(Q):PRINT 6730 FOR X= 1TO 7:PLOT 9:PRINT D$(X);:NEXT :PRINT 6740 RETURN 6900 REM DRAW LINES ACROSS CALENDAR 6905 PLOT 27,76,164,3 6909 ON WEGOSUB 6998,6985,6985,6985,6985,6975 6910 FOR L= 1TO 7 6915 FOR T= 1TO 18 6918 IF T> 16AND L= 7GOTO 6922 6920 PLOT 24,24,24,24,24,24,24 6922 NEXT T 6925 ON WEGOSUB 6997,6980,6980,6980,6980,6970 6933 NEXT L:PLOT 13,45,10:RETURN 6950 REM THESE STMNTS MAKE BOX CORNERS 6970 IF L= 7THEN PLOT 24,24,24,24,24,248,248,0:RETURN 6975 PLOT 0,248,248,24,24,24,24,24:RETURN 6980 IF L= 7THEN PLOT 24,24,24,24,24,255,255,0:RETURN 6985 PLOT 0,255,255,24,24,24,24,24:RETURN 6997 IF L= 7THEN PLOT 24,24,24,24,24,31,31,0:RETURN 6998 PLOT 0,31,31,24,24,24,24,24:RETURN 7000 REM VIEW A MONTH BY DAYS 7010 PLOT 12:PRINT "WHICH WEEK IN "M$(Q)" TO VIEW? ";:INPUT "";WE 7015 IF WE< 1OR WE> 5THEN 7010 7040 T(1)= 0:T(2)= 20:T(3)= 40:T(4)= 0:T(5)= 20:T(6)= 40 7050 PLOT 12:PRINT TAB( 17)"MONTH OF "M$(Q)" WEEK"WE"" 7060 FOR X = 1 TO 3:PRINT TAB( T(X))"";D$(X);:NEXT X:PRINT "" 7070 FOR Y = 1 TO 12 7080 FOR X = 1 TO 3 7090 PRINT TAB( T(X));ME$(WE,X,Y); 7100 NEXT X:PRINT 7110 NEXT Y 7120 FOR X = 4 TO 6:PRINT TAB( T(X))"";D$(X)"";:NEXT X:PRINT 7130 FOR Y = 1 TO 12 7140 FOR X = 4 TO 6 7150 PRINT TAB( T(X));ME$(WE,X,Y); 7160 NEXT X:PRINT 7170 NEXT Y 7180 PRINT TAB( 20)"";D$(7)"":X = 0 7190 FOR Y1 = 1 TO 4 7200 FOR Y = Y1 TO 12 STEP 4:X = X + 1 7210 PRINT TAB( T(X));ME$(WE,7,Y); 7220 NEXT Y:IF Y1 < 4 THEN PRINT :X = 0 7230 NEXT Y1 7240 PLOT 3,62,5,27,10 7250 INPUT "HIT RETURN FOR MENU ";A$:PLOT 27,11:RETURN