Listing of file='CLNDR1.BAS;01' on disk='vmedia/chip_129-sector.ccvf'
2 REM CALENDAR MAINTAIMCE PROGRAM VER 7.5 3 REM LARRY PETERSON SITTINGBOURNE, KENT, ENGLAND MAY 1982 4 REM HARD COPY FOR MX-80 TYPE II WITH 132 CHARACTERS/LINE 10 CLEAR 2000 15 DIM ME$(7,12),M$(12),M(7,12),DT(37),L$(130) 20 FOR X= 1TO 7: FOR Y= 1 TO 12: ME$(X,Y)= " ": M(X,Y)= 1: NEXT Y,X 25 D$ = "----------------" 30 WE = 1 35 PLOT 14,30,16,29,22,12,27,11 40 FOR X = 1 TO 7:READ D$(X):NEXT X 45 DATA SUNDAY,MONDAY,TUESDAY,WEDNESDAY,TURSDAY,FRIDAY,SATURDAY 50 FOR X = 1 TO 12:READ M$(X):NEXT 55 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER 57 PLOT 3,13,6:PRINT "FOR INSTRUCTIONS RUN 'CLNDRI'" 60 PLOT 3,7,10:INPUT "IN WHICH YEAR WILL WE BE WORKING (82,83)? ";YR 65 IF YR> 99 THEN 60 70 PLOT 3,13,14,20:INPUT "GIVE BAUD RATE (1,2,3,4,5,6,7) ";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 DAY .............3" 135 PRINT TAB( 20)"CHANGE MONTHS ..........4" 140 PRINT TAB( 20)"LOAD A WEEK ............5" 150 PRINT TAB( 20)"SAVE A WEEK ............6" 160 PRINT TAB( 20)"PRINT THE MEETINGS .....7" 170 PRINT TAB( 20)"VEIW WEEK 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 NO GOSUB 300,500,3000,1700,4000,5000,6000,7000 210 PLOT 12,14,19:GOTO 100 300 REM BEGIN A NEW CALENDAR MONTH 310 GOTO 365 320 PLOT 3,0,8:FOR X = 1 TO 12 330 PRINT TAB( 20)""X"....."M$(X) 340 NEXT X 350 PLOT 3,0,14:PRINT " WHICH MONTH? "; 352 PLOT 2,74,44,242,38,44,38,65,1,65,1,74,38,74,38,98,74,98,74,44,255 354 INPUT "";Q 355 IF Q < 0 OR Q > 12 THEN 300 360 M1$ = LEFT$ (M$(Q),3):RETURN 365 GOSUB 320:FILE "T",420 370 FILE "N",M1$,5,1024,1 380 RETURN 420 PRINT "A CALENDAR ALREADY EXISTS FOR "M$(Q)"": RETURN 500 REM ADD A DATE TO THE CALENDAR 510 IF Q = 0 THEN GOSUB 320 520 PLOT 12,15,18:GOSUB 1500:PLOT 8 530 PRINT " ADD A WEEK TO THE CALENDAR." 534 PRINT "ANY EXISTING INFORMATION FOR A DAY WILL BE LISTED IN THE BOX." 540 PRINT "ENTER C OR c TO COPY; D OR d TO DELETE THE INFORMATION." 545 PRINT "ENTERING A - WILL SET YOU BACK A DAY." 548 PRINT "RETURN WITHOUT ENTERING ANY CHARACTERS WILL ADVANCE DAYS." 550 PRINT "ONLY DATA INSIDE THE BOX WILL BE COPIED!" 560 PRINT "WHICH WEEK IN THE MONTH OF "M$(Q)" TO ENTER? ";:INPUT "";WE 600 IF F1= 0THEN 900 610 IF F2= WETHEN 900 620 PLOT 12,3,1,10 630 PRINT "YOU HAVE NOT SAVED WEEK "F2" YET" 640 INPUT "WOULD YOU LIKE TO (Y OR N)? ";A$ 650 IF A$= "Y"THEN WE= F2:GOSUB 5000 660 F1= 0:GOTO 500 900 F1= WE:F2= WE 1000 REM GET A WEEKS SCHEDULE 1010 GOSUB 2000 1020 FOR X = 1 TO 7:PLOT 3,22,9:PRINT " " 1030 PLOT 3,22,9:PRINT "" D$(X)"" 1040 GOSUB 1300:GOSUB 1080 1060 NEXT X:RETURN 1080 REM BLOCK EDITER 1100 PLOT 3,0,9 1120 FOR Y = 2 TO 12 1140 PLOT 3,16,10 + Y:INPUT "";M$:M$ = LEFT$ (M$,17) 1150 IF M$ = "0" THEN RETURN 1160 IF M$= "D"OR M$= "d"THEN PLOT 3,16,10+ Y:PRINT " ":M$= "" 1180 IF M$= "C"OR M$= "c"THEN PLOT 3,16,10+ Y:PRINT ME$(X,Y):GOTO 1220 1190 IF M$= "U"OR M$= "u"THEN PLOT 3,16,10+ Y:PLOT 32,26:PRINT ME$(X,Y):Y= Y- 1:GOTO 1140 1195 IF M$= "-"AND X> 1THEN X= X- 2:RETURN 1197 IF M$= "-"THEN X= 0:RETURN 1200 ME$(X,Y) = M$:M(X,Y) = LEN (ME$(X,Y)) 1210 IF M(X,Y)= 0THEN M(X,Y)= 1 1220 NEXT Y:RETURN 1300 REM BLOCK LISTER 1315 FOR Y= 1TO 12:PLOT 3,16,10+ Y:PRINT " ":NEXT 1320 PLOT 3,0,9 1340 FOR Y = 1 TO 12 1360 PLOT 3,16,10 + Y:PRINT ME$(X,Y) 1380 NEXT Y:RETURN 1500 REM REM DRAW THE BOX SIZE 1510 PLOT 22,2,30,86,242,67,86,67,34,30,34,30,86,255 1520 RETURN 1700 REM CHANGE MONTHS 1720 PLOT 12,15:GOSUB 320:GOSUB 2000:GOTO 100 2000 REM FIND CALENDAR DATES 2010 Y = 0:C1 = 19 2015 FOR X = 1 TO 37:DT(X) = 0:NEXT X 2020 FOR X = 1 TO 7:ME$(X,1) = " ":NEXT X 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) = 0 GOTO 2300 2260 ME$(Y,1) = STR$ (DT(X)):M(Y,1)= 3 2300 NEXT X 2310 IF DT(36) > 0 AND WE = 5 THEN GOSUB 2330 2320 RETURN 2330 ME$(1,6) = D$:ME$(1,7) = STR$ (DT(36)) 2340 IF DT(37)> 0THEN ME$(2,6) = D$:ME$(2,7) = STR$ (DT(37)) 2350 RETURN 3000 REM EDIT A DATE ON THE CALENDAR 3005 PLOT 12,3,0,8 3008 FOR X = 1 TO 7:PRINT TAB( 20)""X") "D$(X)"":NEXT X 3010 PRINT :INPUT " WHICH DAY OF THE WEEK TO EDIT? ";X 3040 PLOT 12,20,3,22,9:PRINT D$(X) 3060 GOSUB 1500:GOSUB 1300:GOSUB 1080:RETURN 4000 REM LOAD A CALENDAR FROM THE DISK 4100 PRINT "SELECT A MONTH TO READ ":PRINT :GOSUB 320 4105 PLOT 12,19,14:PLOT 3,15,15 4110 PRINT "WHICH WEEK IN "M$(Q)" TO READ?";:INPUT " ";WE:PLOT 12 4140 FILE "R",1,M1$,1:B = 1 4150 IF NO < > 7 THEN PLOT 12,14,20,3,20,15:PRINT "READING "M$(Q)" WEEK "WE 4160 FOR X = 1 TO 7 4180 FOR Y = 1 TO 12 4190 GET 1,WEEK,B;C:M(X,Y) = C: B = B + 4 4200 GET 1,WEEK,B;ME$(X,Y)[C]:B = B + C 4240 NEXT Y 4260 NEXT X 4270 IF NO < > 7 THEN PLOT 12,15,18 4280 FILE "C",1:RETURN 5000 REM SAVE THE CALENDAR 5080 B= 1 5140 PLOT 3,13,15,20,14:PRINT "STORING WEEK "WE" OF "M$(Q) 5150 FILE "R",1,M1$,1:B = 1 5160 FOR X = 1 TO 7 5180 FOR Y = 1 TO 12:C = M(X,Y) 5190 PUT 1,WEEK,B;C:B = B + 4 5200 PUT 1,WEEK,B;ME$(X,Y)[C]:B = B + C 5240 NEXT Y 5260 NEXT X 5280 FILE "C",1:RETURN 6000 REM PRINT THE MEETING SCHEDULE ON THE CALENDAR 6010 PLOT 12,15:PRINT :PRINT TAB( 20)"PRINT HEADINGS .......6" 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 ......7" 6070 PRINT TAB( 20)"PRINT FROM KEYBOARD...8" 6080 PRINT : PRINT TAB( 19);:INPUT "MAKEY YOUR SELECTION ";W1 6100 IF W1 = WEEK GOTO 6145 6120 IF W1 = 6 GOTO 6700 6125 IF W1 = 8 GOTO 6350 6130 IF Q = 0 THEN PLOT 12:PRINT "WHICH MONTH TO PRINT":PRINT :GOSUB 320 6135 IF W1 = 7 GOTO 6500 6140 WEEK = W1:GOSUB 4140 6145 GOSUB 6150:GOSUB 6200:POKE 33265,0:RETURN 6150 PLOT 27,18,BD,27,13:REM SET BAUD TO 9600 & OUTPUT TO PRINTER 6155 PLOT 18,20,15,27,48:REM 15=132 CHARACTERS/LINE & 27,48=8 LINES/IN 6160 PLOT 27,68,19,38,57,76,95,114,0:RETURN :REM PRINT TAB SETTINGS 6200 REM PRINT OUT A WEEKS SCHEDULE 6220 FOR Y = 1 TO 12 6240 FOR X = 1 TO 7 6250 IF LEN (ME$(X,Y))= 0GOTO 6280 6265 FOR T = 1 TO LEN (ME$(X,Y)):PLOT ASC (MID$ (ME$(X,Y),T,T)):NEXT 6280 PLOT 9:NEXT X:PLOT 10,13 6300 NEXT Y 6320 GOSUB 6900: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 CALENDAR." 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 6150 6520 FOR WE = 1 TO 5 6530 GOSUB 4140:GOSUB 6200 6550 NEXT WE:POKE 33265,0:RETURN 6700 REM PRINT CALENDAR HEADINGS 6703 IF Q = 0 THEN PLOT 12,15:GOSUB 320 6705 PLOT 27,18,BD,27,13:PLOT 15,14 6708 PLOT 27,68,19,38,57,76,95,114,0 6710 PRINT TAB( 15)"CALENDAR FOR THE MONTH OF "M$(Q) 6720 PRINT :PRINT 6730 FOR X = 1 TO 7:PRINT " " D$(X);:PLOT 9:NEXT :PRINT 6740 GOSUB 6900:POKE 33265,0:RETURN 6900 FOR L = 1 TO 130:PLOT 45:NEXT L:PRINT :RETURN 7000 REM VIEW A MONTH BY DAYS 7004 T(1)= 0:T(2)= 20:T(3)= 40:T(4)= 0:T(5)= 20:T(6)= 40 7005 PLOT 12:PRINT TAB( 17)"MONTH OF "M$(Q)" WEEK"WE"" 7075 FOR X = 1 TO 3:PRINT TAB( T(X))"";D$(X);:NEXT X:PRINT "" 7080 FOR Y = 1 TO 12 7090 FOR X = 1 TO 3 7100 PRINT TAB( T(X));ME$(X,Y); 7110 NEXT X:PRINT 7120 NEXT Y 7140 FOR X = 4 TO 6:PRINT TAB( T(X))"";D$(X)"";:NEXT X:PRINT 7150 FOR Y = 1 TO 12 7160 FOR X = 4 TO 6 7170 PRINT TAB( T(X));ME$(X,Y); 7180 NEXT X:PRINT 7190 NEXT Y 7200 PRINT TAB( 20)"";D$(7)"":X = 0 7205 FOR Y1 = 1 TO 4 7210 FOR Y = Y1 TO 12 STEP 4:X = X + 1 7220 PRINT TAB( T(X));ME$(7,Y); 7230 NEXT Y:IF Y1 < 4 THEN PRINT :X = 0 7250 NEXT Y1 7340 PLOT 3,62,5,27,10 7350 INPUT "HIT RETURN FOR MENU ";A$:PLOT 27,11:RETURN