Monthly Planner

Products: Monthly Planner
Developer(s): Michael Felerski
Date: 1986
Type: Cassette
Platform(s): TS 1000

Related Products

Calendar/planner.

Gallery

Monthly Planner

Source Code

   1 REM CALENDAR PROGRAMME
   2 REM COPYRIGHT 30-OCT-86
   3 REM VERS 1.6, £ A101
   4 REM BY: M. FELERSKI
   5 LET ANUM=1
   7 LET MENU=100
  10 DIM M$(3)
  20 GOTO 100
  25 DIM W(7,5)
  30 DIM C(42)
  35 DIM P(155)
  40 DIM E$(155,25)
  45 DIM S$(1)
  50 RETURN 
 100 LET L=4
 400 REM MAIN MENU
 405 CLS 
 407 SLOW 
 410 PRINT "%C%A%L%E%N%D%A%R% %F%O%R% %M%O%N%T%H%:"
 415 PRINT AT 0,21;M$
 420 REM MAIN MENU CHOICES
 430 PRINT 
 435 PRINT AT 4,2;" SET UP NEW MONTH"
 440 PRINT AT 6,2;" VIEW MONTH/ITEMS"
 445 PRINT AT 8,2;" ENTER NEW ITEMS"
 450 PRINT AT 10,2;" SAVE MONTH TO TAPE/WAFER"
 455 PRINT AT L-2,0;"  "
 457 PRINT AT L+2,0;"  "
 460 PRINT AT L,0;"%=%>"
 465 IF INKEY$="6" THEN LET L=L+2
 467 IF INKEY$="7" THEN LET L=L-2
 469 IF INKEY$=CHR$ 118 THEN GOTO 490
 470 IF L>10 THEN LET L=10
 473 IF L<4 THEN LET L=4
 475 GOTO 455
 490 GOSUB (L*100)+100
 495 GOTO 405
 500 REM SETUP QUESTIONS
 501 GOSUB 25
 503 CLS 
 504 PRINT AT 0,1;"%C%L%E%A%R% %A%N%D% %S%E%T% %U%P% %A% %N%E%W% %M%O%N%T%H"
 505 PRINT AT 6,0;"ENTER 3 CHAR. MONTH NAME:"
 507 LET ANUM=1
 510 INPUT M$
 515 PRINT AT 6,27;M$
 520 PRINT AT 8,2;"ENTER FIRST DAY OF MONTH:"
 525 PRINT AT 10,0;"%I%.%E%. SUN=1, MON=2, TUE=3, ETC,"
 530 INPUT F
 535 PRINT AT 8,28;F
 540 PRINT AT 12,0;"ENTER NUMBER OF DAYS IN MONTH:"
 545 INPUT END
 555 LET END=END+F-1
 560 GOSUB 600
 595 RETURN 
 600 REM SET UP CALENDAR, F=DAY1
 603 FAST 
 605 FOR I=1 TO F-1
 610 LET C(I)=0
 615 NEXT I
 617 LET J=1
 620 FOR I=F TO END
 625 LET C(I)=J
 630 LET J=J+1
 635 NEXT I
 640 FOR I=(END+1) TO 42
 645 LET C(I)=0
 647 NEXT I
 650 RETURN 
 700 REM PRINT CALENDER
 703 CLS 
 705 FAST 
 707 PRINT AT 0,12;"% % ";M$;"% % "
 710 PRINT AT 2,2;"SUN MON TUE WED THR FRI SAT"
 712 LET X=1
 715 FOR I=4 TO 14 STEP 2
 720 FOR J=3 TO 27 STEP 4
 725 IF C(X)<>0 THEN PRINT AT I,J;C(X)
 726 IF (M$="JUL") AND (C(X)=4) THEN PRINT AT I,J;"%4"
 727 IF (M$="DEC") AND (C(X)=25) THEN PRINT AT I,J;"%2%5"
 730 IF C(X)=0 THEN PRINT AT I,J;"  "
 735 LET X=X+1
 740 NEXT J
 745 NEXT I
 747 SLOW 
 750 GOTO 2000
 760 REM RETURN TO MAIN MENU
 770 RETURN 
 900 REM ENTER NEW ITEMS
 905 CLS 
 910 PRINT "%E%N%T%E%R% %N%E%W% %A%P%P%O%I%N%T%M%E%N%T%S%:";M$
 911 PRINT AT 19,0;"%T%Y%P%E 0 %F%O%R% %D%A%Y% %T%O% %E%X%I%T"
 912 LET D=2
 915 IF ANUM>155 THEN GOTO 960
 920 PRINT AT 21,0;"%E%N%T%E%R% %D%A%Y% %O%F% %T%H%E% %M%O%N%T%H"
 925 INPUT P(ANUM)
 927 IF P(ANUM)=0 THEN RETURN 
 930 PRINT AT 21,0;"ENTER EVENT (25 CHAR) "
 935 INPUT E$(ANUM)
 940 LET D=D+1
 945 PRINT AT D,0;P(ANUM);AT D,3;E$(ANUM,1 TO 25)
 947 LET ANUM=ANUM+1
 948 IF ANUM>155 THEN GOTO 960
 950 IF D=18 THEN GOTO 905
 955 GOTO 915
 960 PRINT AT 21,0;"PROGRAM IS FULL--SORRY "
 965 PAUSE 220
 970 RETURN 
1100 REM SAVE ROUTINE
1105 CLS 
1107 LET L=6
1110 PRINT AT 0,0;"%D%A%T%A% %S%T%O%R%A%G%E% %M%E%N%U"
1115 PRINT AT 6,2;" SAVE TO CASSETTE"
1120 PRINT AT 8,2;" SAVE TO MICRO WAFER"
1123 PRINT AT L,0;"%=%>"
1125 IF INKEY$="6" THEN LET L=8
1130 IF INKEY$="7" THEN LET L=6
1135 IF INKEY$=CHR$ 118 THEN GOTO 1150
1137 IF L=8 THEN PRINT AT 6,0;"  "
1139 IF L=6 THEN PRINT AT 8,0;"  "
1140 GOTO 1123
1150 IF L=8 THEN RAND USR 13082
1155 IF L=6 THEN SAVE M$
1160 RETURN 
2000 REM CHOOSE YOUR VIEWING
2003 LET LL=4
2005 GOSUB 2600
2020 IF INKEY$="5" THEN GOSUB 2500
2025 IF INKEY$="8" THEN GOSUB 2800
2030 IF (INKEY$=CHR$ 118) AND (LL<>5) THEN GOTO LL*1000
2035 IF (INKEY$=CHR$ 118) AND (LL=5) THEN GOTO 760
2040 GOTO 2020
2050 GOTO 700
2500 IF LL>3 THEN LET LL=LL-1
2505 IF LL=3 THEN GOSUB 2550
2510 IF LL=4 THEN GOSUB 2600
2520 RETURN 
2550 PRINT AT 21,0;"%F%I%N%D% %E%V%E%N%T"
2560 PRINT AT 21,12;"VIEW DAY"
2570 PRINT AT 21,22;"MAIN MENU"
2580 RETURN 
2600 PRINT AT 21,0;"FIND EVENT"
2610 PRINT AT 21,12;"%V%I%E%W% %D%A%Y"
2620 PRINT AT 21,22;"MAIN MENU"
2630 RETURN 
2800 IF LL<5 THEN LET LL=LL+1
2805 IF LL=4 THEN GOSUB 2600
2810 IF LL=5 THEN GOSUB 2850
2820 RETURN 
2850 PRINT AT 21,0;"FIND EVENT"
2860 PRINT AT 21,12;"VIEW DAY"
2870 PRINT AT 21,22;"%M%A%I%N% %M%E%N%U"
2880 RETURN 
3000 REM FIND ITEM
3005 CLS 
3010 PRINT AT 0,0;"%F%I%N%D% %E%V%E%N%T% %F%O%R%:  ";M$
3015 PRINT AT 2,0;"ENTER THE FIRST LETTER"
3020 PRINT "OF THE EVENT YOU ARE"
3025 PRINT "SEARCHING FOR.  THERE"
3030 PRINT "WILL BE A SHORT PAUSE"
3035 PRINT "DURING THE SEARCH....."
3040 INPUT S$
3045 FAST 
3047 CLS 
3050 PRINT AT 0,0;"%D%A%Y%/%E%V%E%N%T%S% %F%O%U%N%D% % % %I%N%:  ";M$
3052 LET Y=2
3055 FOR X=1 TO ANUM
3060 IF E$(X,1)=S$ THEN PRINT AT Y,0;P(X);AT Y,5;E$(X)
3065 IF E$(X,1)=S$ THEN LET Y=Y+1
3070 IF Y>21 THEN GOSUB 3200
3075 NEXT X
3080 SLOW 
3095 GOTO 3300
3200 PRINT AT 21,0;"%T%Y%P%E% %E%N%T%E%R% %T%O% %C%O%N%T%I%N%U%E"
3205 SLOW 
3210 IF INKEY$=CHR$ 118 THEN GOTO 3230
3220 GOTO 3210
3230 FAST 
3235 CLS 
3240 LET Y=2
3255 PRINT AT 0,0;"%F%I%N%D% %E%V%E%N%T% %F%O%R%:  ";M$
3260 RETURN 
3300 REM SEARCH CHOICES
3310 LET LX=1
3315 GOSUB 3400
3320 IF INKEY$="5" THEN GOSUB 3500
3325 IF INKEY$="8" THEN GOSUB 3400
3330 IF INKEY$=CHR$ 118 THEN GOTO 3350
3340 GOTO 3320
3350 IF LX=2 THEN GOTO 2050
3355 IF LX=1 THEN GOTO 3000
3400 PRINT AT 21,3;"REPEAT";AT 21,17;"%C%A%L%E%N%D%A%R"
3405 LET LX=2
3410 RETURN 
3500 PRINT AT 21,3;"%R%E%P%E%A%T";AT 21,17;"CALENDAR"
3505 LET LX=1
3510 RETURN 
4000 REM ITEM DISPLAY
4002 GOSUB 6000
4003 IF DAY=0 THEN GOTO 2050
4004 CLS 
4005 FAST 
4007 PRINT AT 0,0;"%I%N%D%E%X%/%E%V%E%N%T%S% %F%O%R% %D%A%Y ";DAY;" %O%F ";M$
4010 LET TOT=1
4020 FOR X=1 TO ANUM
4030 IF P(X)=DAY THEN GOSUB 4200
4040 IF TOT=6 THEN GOTO 4060
4050 NEXT X
4060 SLOW 
4070 LET LX=3
4080 GOSUB 4500
4100 IF INKEY$="5" THEN GOSUB 4600
4110 IF INKEY$="8" THEN GOSUB 4700
4120 IF (INKEY$=CHR$ 118) AND (LX=1) THEN GOSUB 5000
4125 IF (INKEY$=CHR$ 118) AND (LX=2) THEN COPY 
4130 IF (INKEY$=CHR$ 118) AND (LX=3) THEN GOTO 2050
4140 GOTO 4100
4200 REM DISPLAY
4210 PRINT AT TOT*2,0;X;")"
4215 PRINT AT TOT*2,5;E$(X,1 TO 25)
4220 LET TOT=TOT+1
4230 RETURN 
4300 PRINT AT 21,0;"%C%H%A%N%G%E% %I%T%E%M";AT 21,14;"COPY";AT 21,21;"CALENDAR"
4320 RETURN 
4400 PRINT AT 21,0;"CHANGE ITEM";AT 21,14;"%C%O%P%Y";AT 21,21;"CALENDAR"
4420 RETURN 
4500 PRINT AT 21,0;"CHANGE ITEM";AT 21,14;"COPY";AT 21,21;"%C%A%L%E%N%D%A%R"
4520 RETURN 
4600 IF LX>1 THEN LET LX=LX-1
4610 IF LX=1 THEN GOSUB 4300
4620 IF LX=2 THEN GOSUB 4400
4630 RETURN 
4700 IF LX<3 THEN LET LX=LX+1
4710 IF LX=2 THEN GOSUB 4400
4720 IF LX=3 THEN GOSUB 4500
4730 RETURN 
5000 REM CHANGE ITEM
5005 PRINT AT 21,0;"ENTER EVENT %I%N%D%E%X NUMBER:      "
5010 INPUT INDEX
5015 PRINT AT 21,0;"< CHANGE ON EVENT ABOVE >"
5020 PRINT AT 19,3;E$(INDEX,1 TO 25)
5025 PAUSE 160
5030 PRINT AT 21,0;"< ENTER NEW EVENT DATA: >"
5035 PAUSE 160
5040 PRINT AT 21,0;"< ENTER DAY >            "
5045 INPUT P(INDEX)
5050 PRINT AT 21,0;"< ENTER EVENT (25 CHAR) >"
5052 INPUT E$(INDEX)
5055 PRINT AT 14,0;INDEX;")";"DAY:  ";P(INDEX)
5060 PRINT AT 15,3;E$(INDEX)
5061 PRINT AT 19,3;"                         "
5062 PRINT AT 21,0;"                         "
5065 GOSUB 4300
5070 RETURN 
6000 REM CHOOSE DAY
6005 LET A=5
6007 LET B=3
6010 PRINT AT A,B;"\''\''"
6015 IF INKEY$="5" THEN GOSUB 6500
6020 IF INKEY$="6" THEN GOSUB 6600
6025 IF INKEY$="7" THEN GOSUB 6700
6030 IF INKEY$="8" THEN GOSUB 6800
6035 IF INKEY$=CHR$ 118 THEN GOTO 6050
6040 GOTO 6010
6050 REM GET DAY
6052 PRINT AT 21,0;"          DAY CHOSEN           "
6053 PAUSE 20
6055 LET X=1
6060 FOR I=4 TO 14 STEP 2
6065 FOR J=3 TO 27 STEP 4
6070 IF ((A-1)=I) AND (B=J) THEN GOTO 6100
6072 LET X=X+1
6075 NEXT J
6080 NEXT I
6085 PRINT AT 18,0;"BAD INPUT"
6087 PAUSE 30
6089 PRINT AT 18,0;"         "
6090 LET DAY=0
6095 RETURN 
6100 LET Y=1
6101 IF C(Y)<>0 THEN GOTO 6104
6102 LET Y=Y+1
6103 GOTO 6101
6104 LET DAY=X-Y+1
6105 IF DAY<1 THEN GOTO 6110
6106 IF (X>0) AND (X<(END+1)) THEN RETURN 
6110 PRINT AT 18,0;"BAD INPUT, TRY AGAIN"
6115 PAUSE 120
6120 PRINT AT 18,0;"                    "  
6122 PRINT AT 21,0;"                             "
6125 IF INKEY$=CHR$ 118 THEN GOTO 6135
6130 GOTO 6010
6135 LET DAY=0
6140 RETURN 
6500 IF B=3 THEN GOTO 6510
6502 PRINT AT A,B;"  "
6505 LET B=B-4
6510 RETURN 
6600 IF A>=14 THEN GOTO 6610
6602 PRINT AT A,B;"  "
6605 LET A=A+2
6610 RETURN 
6700 IF A<=5 THEN GOTO 6710
6702 PRINT AT A,B;"  "
6705 LET A=A-2
6710 RETURN 
6800 IF B=27 THEN GOTO 6810
6802 PRINT AT A,B;"  "
6805 LET B=B+4
6810 RETURN 
7000 REM SAVE AND BEGIN ROUTINE
7010 SAVE "CALENDE%R"
7020 GOTO 2
Scroll to Top