Listing of file='STOCKS.BAS;01' on disk='vmedia/chip_39-sector.ccvf'
100 REM ** FILE PROGRAM "STOCKS" ** REQUIRES 16 K ** 120 REM ** BY J. R. THIRTLE ** 140 REM ** REVISED 11,1,81 ** 160 PLOT 12 180 PRINT ,,"STOCK PRICE DATA" 200 PRINT ,,"================" 220 PRINT 240 PRINT "***********************************************" 260 PRINT "THIS PROGRAM FILES PRICES ON SELECTED STOCKS" 280 PRINT "PRICES ARE THOSE AT WEEK'S CLOSING" 300 PRINT "DATES ENTERED AS DECIMALS. IE JAN 2 IS 1.02" 320 PRINT "IF DATE ENDS IN ZERO, .01 IS ADDED." 340 PRINT "THUS, JAN 20 IS 1.21 AND NOT 1.2" 360 PRINT 380 PRINT "CHANGE NUMBER OF COMPANIES (X) AND OF THE LAST" 400 PRINT "WEEK (LW) AS NEW INFO IS ADDED." 420 PRINT 440 PRINT "TO ILLUSTRATE PROGRAM EXECUTE 2 AND 4 BELOW" 480 PRINT "***********************************************" 482 PRINT "X AND LW ARE GIVEN IN LINES 4620 AND 4640" 485 GOSUB 4620 490 PRINT "X=";X",LW=";LW 500 PRINT 520 INPUT "TO CONTINUE HIT RETURN ";R 540 ON RGOTO 560 560 PLOT 12,14:PRINT "MENU:" 580 PRINT ,"1-WRITE NAMES" 600 PRINT ,"2-READ NAMES" 620 PRINT ,"3-INPUT DATA" 640 PRINT ,"4-READ FILE" 660 PRINT ,"5-CORRECT DATA" 680 PRINT ,"6-END" 700 INPUT "SELECT PROGRAM AND HIT RETURN: ";P 720 PLOT 12 740 REM 760 ON PGOTO 800,1280,1640,2240,5320,7380 780 REM 800 PRINT "***********************************" 820 PRINT "THIS PROGRAM WRITES COMPANY NAMES" 840 PRINT 860 REM FILE "N","CONAME",1,128,1 880 REM REC SIZE 126 (21 NAMES, 6 BYTES EACH) 900 GOSUB 4600:REM ** OPEN FILE "CONAME", SET X ** 920 DIM C$(X) 960 PRINT "UP TO 21 NAMES, 6 CHARACTERS EACH" 980 PRINT "CURRENTLY USING 12 NAMES, INCLUDING 'DATE'" 1020 FOR I= 0TO X 1040 READ C$(I):NEXT I 1060 DATA "DATE","BAUSCH","ESKOD","ENGHDT","IBM" 1080 DATA "MASCO","PRIME","MITCH","WANG","MATH","TANDEM" 1100 DATA "INTLSY" 1120 PRINT 1140 FOR I= OTO X 1160 PUT 2,1,6* I+ 1;C$(I)[6] 1180 NEXT I 1200 PRINT 1220 FILE "C",2 1230 PRINT "WRITING COMPLETED" 1240 FOR Z= 1TO 200:NEXT Z 1260 GOTO 560 1280 PRINT "***********************************" 1300 PRINT "THIS PROGRAM READS COMPANY NAMES" 1320 PRINT 1340 CLEAR 100 1360 GOSUB 4600:REM ** OPEN FILE "CONAME", SET X ** 1380 DIM C$(X) 1400 GOSUB 4620:REM ** SET LW ** 1420 FOR I= 0TO X 1440 GET 2,1,6* I+ 1;C$(I)[6] 1460 PRINT I;TAB( 5);C$(I) 1480 NEXT I 1500 PRINT 1520 PRINT "FREE STRING SPACE= ";FRE (Z$) 1540 FILE "C",2:PRINT "FILE CLOSED" 1560 PRINT 1580 INPUT "WHERE NOW? (1-MENU, 2-END): ";L 1600 PLOT 12 1620 ON LGOTO 560,7900 1640 PRINT "***********************************" 1660 PRINT 1680 PRINT "THIS PROGRAM INPUTS DATA" 1700 REM USE THE FOLLOWING TO CREATE DATA FILE SPACE 1720 REM FILE "N","STOCKS",52,84,6 1740 REM I.E. 52 RECORDS (WEEKS), 84 BYTES EACH (21 DATA * 4) 1760 REM 6 WEEKS IN BUFFER AT A TIME 1780 REM 1800 CLEAR 100 1840 GOSUB 4560:REM ** OPEN FILES, SET X AND LW ** 1860 DIM C$(X),P(LW,X) 1880 REM 1900 PRINT "LAST ENTRY WEEK= ";LW 1910 PRINT "NUMBER OF COMPANIES=";X 1920 PRINT 1940 FOR I= 0TO X 1960 GET 2,1,6* I+ 1;C$(I)[6]:NEXT I 1980 INPUT "ENTER WEEK NUMBER: ";J 2000 PRINT "ENTER CLOSING PRICE TO 2 DEC PLACES" 2020 PRINT "ENTER DATE AS MO.DA (EG 1.05). IF DA ENDS IN 0 ADD 1,AS IN 5.31 AND 4.21" 2040 FOR I= 0TO X 2060 PRINT I,C$(I),:INPUT P:IF P< 0THEN 1980 2080 PUT 1,J,5* I+ 1;P 2100 NEXT I 2120 PRINT "THIS ENTRY WEEK IS ";J 2140 INPUT "1-DONE, 2-MORE: ";L 2160 ON LGOTO 2200,2220 2180 PRINT 2200 FILE "C",1,2:PRINT "FILES CLOSED":GOTO 560 2220 LW= J:PLOT 12:GOTO 1900 2240 PRINT "***********************************" 2260 PRINT "THIS PROGRAM READS 'STOCKS' FILE" 2280 PRINT 2300 CLEAR 100 2340 PRINT "TYPE IN YOUR SELECTION OF DATA" 2360 PRINT 2380 PRINT "1-SEE ALL ON ONE COMPANY" 2400 PRINT "2-SEE ALL ON ONE DATE" 2420 PRINT "3-SEE A SINGLE ENTRY" 2440 PRINT 2460 INPUT "MAKE YOUR CHOICE AND HIT RETURN: ";Q 2480 PRINT 2500 PLOT 12 2520 ON QGOTO 2540,3440,3960 2540 REM ** START OF SEARCH #1 ** 2560 PLOT 12,14 2580 REM ** OPEN FILES ** 2600 GOSUB 4560:REM ** OPEN FILES, SET X AND LW ** 2610 DIM C$(X),P(52,X) 2620 PRINT 2640 REM ** GET ALL DATA, CLOSE FILES ** 2660 FOR I= 0TO X:GET 2,1,6* I+ 1;C$(I)[6]:NEXT I 2680 FOR J= 1TO LW:FOR I= 0TO X 2700 GET 1,J,5* I+ 1;P(J,I) 2720 NEXT I:NEXT J 2740 FILE "C",1,2:REM ** FILES CLOSED ** 2760 PRINT 2780 REM 2800 PLOT 12 2820 PLOT 12,14:REM ** THIS STATEMENT NECESSARY. SEE 4280 ** 2840 PRINT ,,"SEE ALL ON ONE COMPANY" 2860 GOSUB 4740:REM ** GET ID # ** 2880 INPUT "COMPANY ID # = ";N 2900 REM ** SELECT FORMAT ** 2920 INPUT "CHOOSE 1-TABLE, 2-GRAPH: ";L 2940 ON LGOTO 3000,5920 2960 PLOT 27,24,12 2980 REM ** TABULAR OUTPUT ** 3000 ID$= C$(N) 3020 PLOT 27,24,12,15:REM ** PAGE MODE,ERASE,SMALL CHAR ** 3040 PLOT 3,0,0,6,1 3080 PRINT ID$ 3100 PLOT 6,2:REM ** GREEN FG ** 3120 PRINT 3140 I= 0 3160 PRINT "WEEK";TAB( 5);"DATE";TAB( 11);"PRICE"; 3180 PRINT TAB( 19);"WEEK";TAB( 24);"DATE";TAB( 30);"PRICE"; 3200 PRINT TAB( 38);"WEEK";TAB( 43);"DATE";TAB( 49);"PRICE" 3220 PRINT 3240 FOR J= 1TO 26 3260 PRINT J;TAB( 5);P(J,I);TAB( 11);P(J,N); 3280 PRINT TAB( 19);J+ 26;TAB( 24);P(J+ 26,I);TAB( 30);P(J+ 26,N) 3300 NEXT J 3320 PLOT 27,11:REM ** SCROLL MODE ** 3340 PRINT 3350 PLOT 3,31,0 3360 INPUT "ANOTHER SELECTION (Y/N)?";L$ 3380 IF L$= "Y"THEN 2820 3400 GOTO 560:REM ** RETURN TO MENU ** 3420 REM 3440 REM ********** START OF #2 SEARCH ******** 3460 PRINT ,"SEE ALL ON ONE DATE" 3480 PRINT 3500 CLEAR 150 3520 REM ** OPEN FILES ** 3540 GOSUB 4560 3560 DIM C$(X),P(LW,X) 3580 FOR I= 0TO X 3600 GET 2,1,6* I+ 1;C$(I)[6] 3620 NEXT I 3640 PRINT "SELECT WEEK # FROM THIS LIST" 3660 GOSUB 4940 3680 INPUT "WEEK NUMBER: ";J 3700 PRINT 3720 FOR I= 0TO X 3740 GET 1,J,5* I+ 1;P(J,I) 3760 NEXT I 3780 FOR I= 0TO X 3800 PRINT C$(I);TAB( 5);P(J,I) 3820 NEXT I 3840 PRINT 3860 FILE "C",1,2 3880 REM ************* END OF #2 SEARCH ******************* 3900 INPUT "WHERE NOW? (1-MENU, 2-END): ";L 3920 PRINT :PLOT 12 3940 ON LGOTO 560,7900 3960 REM ************ START OF #3 SEARCH ***************** 3980 PRINT ,"SEE SINGLE ENTRY" 4000 PRINT 4020 CLEAR 150 4040 REM ** OPEN FILES ** 4060 GOSUB 4560 4080 REM 4100 GOSUB 4720 4120 REM 4140 DIM C$(X),P(LW,X) 4160 INPUT "COMPANY 'ID' NUMBER: ";N 4180 GET 2,1,6* N+ 1;C$(N)[6]:REM GET CONAME 4200 GOSUB 4940 4220 INPUT "WEEK NUMBER: ";J 4240 I= 0:GET 1,J,5* I+ 1;P(J,I):REM ** GET DATE ** 4260 PRINT 4280 GET 1,J,5* N+ 1;P(J,N):REM ** GET PRICE ** 4300 PRINT 4320 PRINT C$(N),,"DATE: ";P(J,I),"PRICE: ";P(J,N) 4276 INPUT "CHANGE PRICE (Y/N)? ";A$ 4360 IF A$= "N"GOTO 4420 4380 INPUT "CHANGED PRICE: ";P 4400 PUT 1,J,5* N+ 1;P 4420 PRINT 4440 FILE "C",1,2 4460 REM ************* END OF #3 SEARCH *************** 4480 PRINT 4500 INPUT "WHERE NOW? (1-MENU, 2-END) ";L 4520 PLOT 12 4540 ON LGOTO 560,7900 4560 REM ****** OPEN FILES, SET X AND LW ****** 4580 FILE "R",1,"STOCKS",1:REM ** OPEN FILE ** 4600 FILE "R",2,"CONAME",1:REM ** OPEN FILE ** 4620 X= 11 4640 LW= 45 4660 RETURN 4680 REM ********************************************** 4700 REM 4720 REM *** SELECT COMPANY ID NUMBERS *** 4740 PRINT "---------------------------------------------------------------" 4760 PRINT ,"'ID' NUMBERS" 4780 PRINT "0-DATE" 4800 PRINT "1-BAUSCH,2-ESKOD,3-ENGHDT,4-IBM,5-MASCO" 4820 PRINT "6-PRIME,7-MITCH,8-WANG,9-MATH,10-TANDEM" 4840 PRINT "11-INTLSY" 4860 PRINT "---------------------------------------------------------------" 4880 RETURN 4900 REM ********************************************** 4920 REM 4940 REM ************************************************ 4960 PRINT "---------------------------------------------------------------" 4980 PRINT "WEEKS CORRESPOND TO DATES AS FOLLOWS:" 5000 PRINT "XX=YY.ZZ, XX=YY.ZZ, XX=YY.ZZ, XX=YY.ZZ, XX=YY.ZZ" 5020 PRINT " 1=01.02, 2=01.09, 3=01.16, 4=01.23, 5=01.31" 5040 PRINT " 6=02.06, 7=02.13, 8=02.21, 9=02.27, 10=03.06" 5060 PRINT "11=03.13, 12=03.21, 13=03.27, 14=04.03, 15=04.11" 5080 PRINT "16=04.17, 17=04.24, 18=05.01, 19=05.08, 20=05.15" 5100 PRINT "21=05.22, 22=05.29, 23=06.05, 24=06.12, 25=06.19" 5120 PRINT "26=06.26, 27=07.03, 28=07.11, 29=07.17, 30=07.24" 5140 PRINT "31=07.31, 32=08.07, 33=08.14, 34=08.21, 35=08.28" 5160 PRINT "36=09.04, 37=09.11, 38=09.18, 39=09.25, 40=10.02" 5180 PRINT "41=10.09, 42=10.16, 43=10.23, 44=10.31, 45=11.06" 5200 PRINT "46=11.13, 47=11.21, 48=11.27, 49=12.04, 50=12.11" 5220 PRINT "51=12.18, 52=12.25" 5240 PRINT "---------------------------------------------------------------" 5260 RETURN 5280 REM *********************************************** 5300 REM 5320 PRINT "CORRECTIONS" 5340 PRINT 5360 INPUT "SINGLE ENTRY CORRECTION (Y/N)? ";A$ 5380 IF A$= "Y"THEN 3960 5400 REM ** OPEN FILES ** 5420 GOSUB 4560 5440 PRINT "CORRECT STOCK PRICES FOR SPLITS, ETC. " 5450 DIM C$(X),P(LW,X) 5460 REM ** SELECT COMPANY ** 5480 GOSUB 4720 5500 INPUT "'ID' NUMBER: ";I 5520 GET 2,1,6* I+ 1;C$(I)[6] 5530 PRINT C$(I) 5540 INPUT "# OF LAST WEEK TO BE CORRECTED? ";L 5560 FOR J= 1TO L 5580 GET 1,J,5* I+ 1;P(J,I):NEXT J 5600 PRINT C$(I) 5610 PRINT "WEEK","PRICE" 5620 FOR J= 1TO L 5640 PRINT J,P(J,I) 5660 NEXT J 5680 INPUT "INPUT FACTOR (F) TO CORRECT PRICE: ";F 5700 PRINT C$(I),"SPLIT P" 5720 FOR J= 1TO L 5740 P(J,I)= P(J,I)* F 5760 PRINT J,P(J,I) 5780 NEXT J 5800 FOR J= 1TO L 5820 PUT 1,J,5* I+ 1;P(J,I) 5840 NEXT J 5860 FILE "C",1,2 5880 GOTO 560 5900 REM 5920 REM ** GRAPH ** TO HERE FROM SEARCH #1 ** 5922 PRINT 5924 PRINT "CAN BE LOOPED STARTING WITH N" 5925 INPUT "HOW MANY LOOPS?";A 5926 PLOT 12 5927 N= N- 1 5928 FOR L= 1TO A 5929 GOSUB 4620:REM ** GET VALUES FOR X AND LW ** 5930 FOR I= 1TO X 5932 REM 5934 GOSUB 7500 5936 N= N+ 1 5940 IF N= 12THEN N= 1 6060 PLOT 6,2,15 6080 ID$= C$(N) 6100 PLOT 27,24 6120 PLOT 3,50,0 6140 PLOT 6,1,14 6160 PRINT ID$ 6180 PLOT 15 6500 IF N= 1OR N= 2OR N= 4THEN 6580 6520 IF N= 3THEN 6700 6540 IF N= 5OR N= 6OR N= 7OR N= 8OR N= 10OR N= 11THEN 6700 6560 IF N= 9THEN 6840 6580 SP= 20 6600 GOSUB 7000 6620 FOR J= 1TO LW 6640 X= J* 2+ 10:PLOT 6,4 6660 PLOT 2,246,Y0,X,P(J,N)+ 5,255 6680 NEXT J:GOTO 7320 6700 SP= 10 6720 GOSUB 7000 6740 FOR J= 1TO LW 6760 X= J* 2+ 10 6780 PLOT 6,4 6800 PLOT 2,246,Y0,X,P(J,N)* 2+ 5,255 6820 NEXT J:GOTO 7320 6840 SP= 5 6860 GOSUB 7000 6880 FOR J= 1TO LW 6900 X= J* 2+ 10 6920 PLOT 6,4 6940 PLOT 2,246,Y0,X,P(J,N)* 4+ 5,255 6960 NEXT J:GOTO 7320 6980 REM 7000 REM ** Y-SCALING DATA ** 7020 X= 1:Y= 30:V= 0 7040 FOR Z= 1TO 6:PLOT 3,X,Y:PRINT V 7060 Y= Y- 5:V= V+ SP 7080 NEXT Z 7090 RETURN 7300 REM 7320 PLOT 6,2,27,11:REM ** GREEN FG, SCROLL MODE ** 7340 FOR T= 1TO 1000:NEXT T 7350 PLOT 12 7360 NEXT I 7370 NEXT L 7380 PLOT 12,14 7385 INPUT "ANOTHER SELECTION (Y/N)?";L$ 7390 IF L$= "Y"THEN 2820 7395 GOTO 560:REM ** RETURN TO MENU ** 7400 REM 7500 REM ** AXES ** 7520 Y0= 5:X0= 10 7540 PLOT 6,4,2,127,Y0,242,X0,Y0,X0,127,255 7560 PLOT 27,24,6,1,15 7580 X= 13:Y= 31:H= 10 7600 FOR Z= 1TO 5 7620 PLOT 3,X,Y:PRINT H 7640 X= X+ 10:H= H+ 10 7660 NEXT Z 7680 PLOT 3,59,31,6,1,14:PRINT "WEEKS":PLOT 15 7700 REM ** Y-AXIS ** 7720 PLOT 3,0,0,27,10:PRINT "PRICE":PLOT 27,11 7740 REM ** CUE LINES ** 7760 X= 6:Y= 30 7780 Y= Y- 5:PLOT 3,X,Y 7800 IF Y= 0THEN 7860 7820 PRINT "----------------------------------------------------------" 7840 GOTO 7780 7860 RETURN 7900 END 7920 REM