Compucolor.org – Virtual Media

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