Compucolor.org – Virtual Media

Listing of file='PERCAL.BAS;01' on disk='vmedia/trader-sector.ccvf'

100 REM Y ******************************************************
110 REM PERSONAL CALENDAR 01/01/81, FOR 3650/9650 SERIES BY GAB
120 REM COPYRIGHT (C) 1981 BY INTELLIGENT SYSTEMS CORP.
140 OUT 8,207:REM ENABLE KEYBOARD
150 CLEAR 1000:PLOT 7,6,2,12:INPUT "INSERT DATA DISK (IF DESIRED): ";ZZ$
160 PLOT 7:INPUT "
WHICH YEAR (IE., 81,82,83,...): ";Y$
170 FILE "T",1810
180 DIM S(200,2),M$(12),MD(12)
190 GOSUB 1410
200 DATA JAN,31,FEB,29,MAR,31,APR,30,MAY,31,JUN,30
210 DATA JUL,31,AUG,31,SEP,30,OCT,31,NOV,30,DEC,31
220 RESTORE 190:FOR I= 1TO 12:READ M$(I),MD(I):NEXT I
230 REM
240 REM
250 GOSUB 1280
260 PRINT TAB( 12);"SELECT ONE OF THE FOLLOWING OPTIONS:"
270 PRINT
280 PRINT TAB( 20);"A - ADD AN EVENT"
290 PRINT TAB( 20);"D - DELETE AN EVENT"
300 PRINT TAB( 20);"C - CLOSE FILES"
310 PRINT TAB( 20);"E - EXIT PROGRAM"
320 PRINT
330 PRINT TAB( 16);"1. LIST EVENTS FOR A DAY"
340 PRINT TAB( 16);"2. LIST EVENTS FOR A MONTH"
350 PRINT TAB( 16);"3. LIST ALL EVENTS"
360 PRINT :PRINT
370 PRINT TAB( 15):PLOT 7:INPUT "ENTER SELECTION NUMBER: ";B$
380 IF B$= "A"THEN B= 1:GOTO 430
390 IF B$= "D"THEN B= 2:GOTO 430
400 IF B$= "C"THEN B= 6:GOTO 430
410 IF B$= "E"THEN B= 6:GOTO 430
420 B= 0:B1= VAL (B$):IF B1> 0AND B1< 4THEN B= B1+ 2
430 IF B< 1OR B> 7THEN 250
440 IF N> = 1OR B= 1THEN 460
450 PRINT TAB( 15)"NO EVENTS IN FILE":GOTO 370
460 ON BGOTO 480,660,1020,860,1170,1510
470 REM
480 REM
490 REM
500 GOSUB 1280
510 GOSUB 1640
520 GOSUB 1730
530 GOSUB 1770
540 N= N+ 1:PUT 1,N;T$[32]:TD= M* 100+ D
550 REM
560 REM
570 REM
580 IF N= 1THEN S(1,1)= TD:S(1,2)= 1:GOTO 250
590 IN= 0:FOR I= 1TO N- 1
600 IF TD< S(I,1)THEN IN= I:I= N- 1
610 NEXT I:IF IN= 0THEN S(N,1)= TD:S(N,2)= N:GOTO 250
620 FOR I= NTO IN+ 1STEP - 1
630 S(I,1)= S(I- 1,1):S(I,2)= S(I- 1,2):NEXT I
640 S(IN,1)= TD:S(IN,2)= N:GOTO 250
650 REM
660 REM
670 REM
680 GOSUB 1280
690 GOSUB 1640
700 GOSUB 1730
710 GOSUB 1770
720 T1$= LEFT$ (T$,32):DE= M* 100+ D:FG= 0
730 FOR I= 1TO N:IF DE< > S(I,1)THEN 810
740 GET 1,S(I,2);T$[32]
750 IF T$< > T1$THEN 810
760 FOR J= 1TO N:IF S(J,2)= NTHEN L= J:J= N
770 NEXT J:GET 1,S(L,2);T$[32]
780 S(L,2)= S(I,2):PUT 1,S(L,2);T$[32]
790 FG= 1:N= N- 1:IF N= I- 1THEN 810
800 FOR J= ITO N:S(J,1)= S(J+ 1,1):S(J,2)= S(J+ 1,2):NEXT J
810 NEXT I:PRINT
820 IF FG= 0THEN PRINT TAB( 10);"CANNOT LOCATE EVENT"
830 IF FG= 1THEN PRINT TAB( 10);"EVENT DELETED"
840 GOTO 980
850 REM
860 REM
870 REM
880 GOSUB 1280
890 GOSUB 1640
900 PRINT :PRINT
910 ZZ= 0:FG= 0:FOR I= 1TO N
920 IF M< > INT (S(I,1)/ 100)THEN 960
930 ZZ= ZZ+ 1:FG= 1:D= S(I,1)- M* 100:GET 1,S(I,2);T$[32]
940 PRINT TAB( 7)"";M$(M);D" '"Y$;TAB( 20);"";T$;""
950 IF ZZ= 20THEN ZZ= 0:PLOT 7:INPUT "

		    HIT RETURN TO CONTINUE....";I$:GOSUB 1280
960 NEXT I
970 IF FG= 0THEN PRINT TAB( 10)"NO EVENTS ENTERED FOR THIS MONTH"
980 PRINT :PRINT :PRINT TAB( 20)
990 PLOT 7:INPUT "HIT RETURN TO CONTINUE....";I$
1000 GOTO 250
1010 REM
1020 REM
1030 REM
1040 GOSUB 1280
1050 GOSUB 1640
1060 GOSUB 1730
1070 PRINT :PRINT
1080 MD= M* 100+ D
1090 FG= 0:FOR I= 1TO N
1100 IF MD< > S(I,1)THEN 1130
1110 FG= 1:GET 1,S(I,2);T$[32]
1120 PRINT TAB( 7)"";M$(M);D" '"Y$;TAB( 20);"";T$;""
1130 NEXT I
1140 IF FG= 0THEN PRINT TAB( 10);"NO EVENTS FOR THIS DATE"
1150 GOTO 980
1160 REM
1170 REM
1180 REM
1190 GOSUB 1280
1200 ZZ= 0:FOR I= 1TO N
1210 M= INT (S(I,1)/ 100):D= S(I,1)- M* 100
1220 ZZ= ZZ+ 1:GET 1,S(I,2);T$[32]
1230 PRINT TAB( 7)"";M$(M);D" '"Y$;TAB( 20);"";T$;""
1240 IF ZZ= 23THEN ZZ= 0:PLOT 7:INPUT "

		    HIT RETURN TO CONTINUE....";I$:GOSUB 1280
1250 NEXT I
1260 GOTO 980
1270 REM
1280 REM
1290 REM
1300 PLOT 6,0
1310 PLOT 12
1320 PLOT 6,39
1330 PLOT 14
1340 PLOT 3,15,0
1350 PRINT " S P E C I A L    E V E N T S "
1360 PLOT 6,6
1370 PLOT 15
1380 PLOT 3,0,5
1390 RETURN
1400 REM
1410 REM
1420 REM
1430 FILE "R",1,"EVEN"+ Y$,1
1440 FILE "R",2,"DATE"+ Y$,1
1450 GET 2,1;N
1460 FOR I= 2TO N+ 1
1470 GET 2,I;S(I- 1,1),S(I- 1,2)
1480 NEXT I
1490 RETURN
1500 REM
1510 REM
1520 REM
1530 PUT 2,1;N
1540 FOR I= 2TO N+ 1:PUT 2,I;S(I- 1,1),S(I- 1,2):NEXT I
1550 FILE "C",1,2:IF B$= "C"THEN RUN
1560 PLOT 7:INPUT "

INSERT 'STAR TRADER' DISKETTE: ";ZZ$:PLOT 6,2,12,1
1570 REM
1580 REM
1590 PRINT "CANNOT LOCATE FILES FOR '"Y$;:PLOT 7:INPUT ": DO YOU WANT TO CREATE ONE? ";ZZ$:IF MID$ (ZZ$,1,1)< > "Y"THEN 1560
1600 FILE "N","EVEN"+ Y$,200,32,8:FILE "N","DATE"+ Y$,200,8,16
1610 FILE "R",1,"DATE"+ Y$,1
1620 PUT 1,1;0,0:FILE "C",1:GOTO 190
1630 REM
1640 REM
1650 PRINT TAB( 10)
1660 PLOT 7:INPUT "ENTER MONTH OF EVENT (3 LETTERS): ";M$
1670 M= 0:FOR I= 1TO 12:IF M$= M$(I)THEN M= I:I= 12
1680 NEXT I:IF M< > 0THEN PLOT 11:RETURN
1690 PRINT TAB( 10)"MONTH NOT RECOGNIZED"
1700 PLOT 28,28,11:GOTO 1650
1710 REM
1720 REM
1730 PRINT TAB( 10):PLOT 7:INPUT "ENTER DAY OF MONTH: ";D
1740 IF D> = 1AND D< = MD(M)THEN PLOT 11:RETURN
1750 PRINT TAB( 10)"ILLEGAL DATE":PLOT 28,28,11:GOTO 1730
1760 REM
1770 REM
1780 PRINT TAB( 10):PLOT 7:INPUT "ENTER TITLE OF EVENT: ";T$
1790 T$= T$+ "                                "
1800 RETURN
1810 FILE "E",FL,ER,LN:IF ER= 14THEN 1590
1820 PRINT "ERROR!":FOR X= 1TO 2000:NEXT :END :GOTO 210