Compucolor.org – Virtual Media

Listing of file='STOCKM.BAS;01' on disk='vmedia/taylor-sideA-sector.ccvf'

1 PRINT CHR$ (12)
10 PRINT TAB( 25);"STOCK MARKET"
20 IF P8* P9= 12THEN 9100
30 PRINT :PRINT :PRINT
50 PRINT "HI. I'M YOUR LOCAL STOCK BROKER.  I'LL BE HAPPY TO "
51 PRINT "OPEN AN ACCOUNT FOR YOU.  "
52 PRINT :INPUT "WHAT IS YOUR NAME? ";N$
60 X= LEN (N$)
70 PRINT :PRINT "DO YOU HAVE A FAVORITE NUMBER THAT I CAN USE FOR YOUR ACCOUNT?"
72 PRINT :PRINT "PLEASE TYPE ONLY NUMERICAL CHARACTERS, NO , OR - OR OTHER."
80 PRINT "          ";:INPUT Y
90 Y1= INT (Y/ 10):Y2= Y- 10* Y1
95 FOR F= 1TO Y2:Y1= RND (X):NEXT F
100 DIM S(5),P(5),Z(5),C(5)
110 T5= 0:X9= 0:N1= 0:N2= 0:E1= 0:E2= 0
115 D6= 0:K3= 1:X9= 0
120 FOR F= 1TO 5:P(F)= 0:Z(F)= 0:NEXT F
130 C= 10000
200 PRINT "DO YOU WANT THE INSTRUCTIONS? (YES OR NO) "
210 INPUT Y$
220 PRINT CHR$ (12)
230 IF Y$< "Y"THEN 300
235 REM  ***************INSTRUCTIONS******************
240 PRINT "       THIS PROGRAM PLAYS THE STOCK MARKET."
250 PRINT "YOU WILL BE GIVEN $10,000 AND MAY BUY OR SELL STOCKS."
260 PRINT "THE STOCK PRICES WILL GO UP AND DOWN RANDOMLY AND"
270 PRINT "THEREFORE, THIS MODEL DOES NOT REPRESENT EXACTLY WHAT"
280 PRINT "HAPPENS ON THE EXCHANGES."
290 PRINT :PRINT "A TABLE OF AVAILABLE STOCKS, THEIR PRICES, AND THE NUMBER OF"
291 PRINT "SHARES IN YOUR PORTFOLIO WILL BE PRESENTED."
292 PRINT "FOLLOWING THIS, INITIALS OF EACH STOCK WILL BE PRESENTED "
293 PRINT "WITH A QUESTION MARK.":PRINT
294 PRINT :PRINT "TO BUY A STOCK, TYPE +NNN,     WHERE NNN IS THE NUMBER"
295 PRINT "                               OF SHARES YOU WISH TO BUY."
296 PRINT "TO SELL A STOCK, TYPE -NNN."
297 PRINT
298 PRINT :PRINT "A BROKERAGE FEE OF 2% WILL BE CHARGED ON ALL TRANSACTIONS."
299 PRINT :PRINT :PRINT :PRINT :INPUT "PRESS <RETURN> WHEN READY TO CONTINUE.";Y$
300 PRINT CHR$ (12)
310 PRINT "TO GET A FEEL FOR THE MARKET,"
311 PRINT "RUN THE PROGRAM FOR AT LEAST FIFTEEN WEEKS.":PRINT :PRINT
320 REM  ********  INITIAL STOCK VALUES  ****************
330 FOR I= 1TO 5
340 B= INT (RND (Y)* 100+ 10)
350 S(I)= B
360 NEXT I
370 REM  ********  A  IS SLOPE OF MARKETTREND
371 REM            SAME FOR ALL STOCKS ***************
380 A= INT (10* RND (X)+ .5)/ 100
390 REM  ********  T8 IS INITIAL NUMBER OF DAYS FOR
391 REM            FIRST TREND************************
400 T8= INT (4.99* RND (X)+ 1)
410 IF A< .06THEN 450
420 A= A- .11
430 PRINT "THE GENERAL MARKET TREND HAS BEEN DOWN THE LAST FEW DAYS."
440 GOTO 480
450 PRINT "THE GENERAL MARKET TREND HAS BEEN UP FOR THE LAST"
451 PRINT "FEW DAYS.":PRINT
480 PRINT "YOU HAVE $10,000 TO INVEST.  USE INTEGERS FOR ALL YOUR"
481 PRINT "TRANSACTIONS.  DO NOT USE $ OR , WHEN YOU TYPE THE NUMBERS.":PRINT
490 FOR F= 1TO 2000:NEXT F
500 GOSUB 2000
510 GOSUB 3000
520 GOSUB 6000
522 GOTO 7000
526 GOSUB 5000
530 D= T+ C
540 IF X9> 0THEN 560
550 PRINT "COMPUTER STOCK EXCHANGE AVERAGE: ";Z5
555 X9= 1
557 GOTO 570
560 PRINT "COMPUTER STOCK EXCHANGE AVERAGE: ";Z5;"; NET CHANGE: ";Z6
570 PRINT
580 T= INT (100* T+ .5)/ 100
590 PRINT "TOTAL STOCK ASSETS ARE $";T
600 C= INT (100* C+ .5)/ 100
610 PRINT "TOTAL CASH ASSETS ARE $";C
620 D= INT (100* D+ .5)/ 100
630 PRINT "TOTAL ASSETS ARE $";D
640 PRINT
645 GOTO 9000
650 IF D6< 12THEN 700
655 IF D6< 15THEN 690
660 PRINT "DO YOU WISH TO CONTINUE? (YES OR NO)"
670 INPUT Y$
680 IF Y$= "NO"OR Y$= "N"THEN 1800
685 GOTO 700
690 PRINT :PRINT :INPUT "PRESS <RETURN> TO CONTINUE.";Y$
700 K1= INT (D6/ 12):K2= D6- K1* 12
710 IF D6< 12THEN GOTO 520
720 IF K2> 4THEN GOTO 520
725 IF K3= 1THEN GOTO 730
726 K3= 1:GOTO 520
730 ON K2+ 1GOTO 8000,8200,8400,520,8600
740 GOTO 520
1800 PRINT CHR$ (12)
1810 PRINT "YOU HAVE EARNED A TOTAL OF ";Q;" IN DIVIDENDS"
1812 PRINT "OVER A PERIOD OF ";D6;" WEEKS WHICH IS A "
1814 PRINT "RATE OF RETURN OF ";INT (Q* 5.2/ D6+ .5)/ 10;"%."
1820 PRINT :PRINT "IF YOU ARE A SINGLE WAGE EARNER MAKING AN ANNUAL WAGE OF $15000"
1825 PRINT "AFTER EXEMPTIONS AND DEDUCTIONS, THEN THE TAXES DUE ON THESE"
1830 PRINT "DIVIDENDS ARE APPROXIMATELY "
1835 PRINT :PRINT "     STATE OF CALIFORNIA   $  ";
1840 T1= INT (9* Q+ .5)/ 100:PRINT T1
1845 PRINT "     U.S.INTERNAL REVENUE     ";
1850 T2= INT (30* (Q- T1)+ .5)/ 100:PRINT T2
1860 PRINT :PRINT
1870 C1= INT (100* (D- Q- 10000)+ .5)/ 100
1875 PRINT :PRINT :PRINT :PRINT "PRESS <RETURN> WHEN READY."
1876 INPUT Y$
1880 PRINT "YOU HAVE USED 10000 FOR ";D6;" WEEKS."
1885 PRINT "YOUR EARNINGS ON THIS MONEY ARE ";C1;"."
1890 PRINT "THIS IS A RATE OF RETURN OF ";INT (C1* 5.2/ D6+ .5)/ 10;"%."
1900 PRINT :PRINT "THE TAXES ON THIS AMOUNT OF CAPITAL GAINS ARE APPROXIMATELY"
1905 PRINT :PRINT "     STATE OF CALIFORNIA    $  ";
1906 T3= INT (9* C1+ .5)/ 100:PRINT T3
1910 PRINT "     U.S.INTERNAL REVENUE      ";
1915 T4= INT (30* (C1- T3)+ .5)/ 100:PRINT T4
1920 PRINT :PRINT "THIS ASSUMES THAT NO STOCKS WERE HELD OVER SIX MONTHS."
1921 PRINT
1925 PRINT "YOUR TOTAL EARNINGS WERE $ ";D- 10000
1930 PRINT :PRINT "YOUR TOTAL EARNINGS AFTER TAXES WERE $ ";
1940 C2= D- 10000- T1- T2- T3- T4
1950 PRINT INT (C2* 100+ .5)/ 100
1960 PRINT :PRINT "THIS IS A RATE OF RETURN OF ";INT (C2* 5.2/ D6+ .5)/ 10;"%."
1990 PRINT "HOPE YOU HAD FUN!"
1995 LOAD "MENU":RUN
2000 REM  SUBROUTINE TO PRINT STOCK NAMES
2010 PRINT ,"STOCK",,,"INITIALS"
2020 PRINT
2030 PRINT "INT. BALLISTIC MISSILES ","IBM"
2040 PRINT "GENEROUS MINICOMPUTERS",,"GM"
2050 PRINT "RECTANGULAR COMPONENTS ASSN.","RCA"
2060 PRINT "CORN BALL SOUNDS",,"CBS"
2070 PRINT "EVERLASTING POLITICAL ASSN.","EPA"
2080 PRINT :PRINT
2090 RETURN
3000 PRINT ,"STOCK",,"PRICE/SHARE":PRINT
3010 PRINT ,"IBM",,S(1)
3020 PRINT ,"GM",,S(2)
3030 PRINT ,"RCA",,S(3)
3040 PRINT ,"CBS",,S(4)
3050 PRINT ,"EPA",,S(5)
3060 PRINT
3070 RETURN
4000 REM  *****SUBROUTINE TO COMPUTE STOCK VALUES :::::
4010 REM    N1 AND N2 ARE NUMBERS OF DAYS
4020 IF N1> 0THEN 4050
4030 I1= INT (4.99* RND (X)+ 1)
4040 N1= INT (4.99* RND (X)+ 1)
4045 E1= 1
4050 IF N2> 0THEN 4100
4060 I2= INT (4.99* RND (X)+ 1)
4070 N2= INT (4.99* RND (X)+ 1)
4080 E2= 1
4100 N1= N1- 1:N2= N2- 1
4110 REM  *****LOOP THROUGH ALL STOCKS ******
4120 FOR I= 1TO 5
4130 X1= RND (X)
4140 IF X1> .25THEN 4200
4150 X1= .25
4160 GOTO 4500
4200 IF X1> .50THEN 4250
4210 X1= .50
4220 GOTO 4500
4250 IF X1> .75THEN 4300
4270 GOTO 4500
4300 X1= 0.0
4500 W3= 0
4510 IF E1< 1THEN 4600
4520 IF INT (I1+ .5)< > INT (I+ .5)THEN 4600
4522 W3= 2:E1= 0
4524 IF E2< 1THEN 4600
4526 IF INT (I2+ .5)< > INT (I+ .5)THEN 4600
4530 W3= - 2:E2= 0
4600 REM  **** C(I) IS CHANGE IN STOCK VALUE ***********
4610 C(I)= X1* A* S(I)+ W3+ A* INT (3- 6* RND (X)+ .5)/ 8
4620 C(I)= INT (8* C(I)+ .5)/ 8
4630 S(I)= S(I)+ C(I)
4640 IF S(I)> 0THEN 4700
4645 S(I)= S(I)- C(I)
4650 LETC(I)= 0
4700 S(I)= INT (8* S(I)+ .5)/ 8
4710 NEXT I
4720 REM  ********AFTER T8 DAYS CHANGE THE TREND *****
4722 T8= T8- 1
4724 IF T8< 1THEN 4730
4726 RETURN
4730 T8= INT (4.99* RND (X)+ 1)
4740 A= INT (RND (X)* 10+ .5)/ 100
4750 IF A< .06THEN 4800
4760 A= A- .1
4800 RETURN
5000 REM  ***** SUBROUTINE TO COMPUTE AVERAGES *********
5010 REM   NYSE AVERAGE Z5;TEMP VALUE Z4;NET CHANGE Z6
5020 Z4= Z5
5030 Z5= 0
5040 T= 0
5050 FOR I= 1TO 5
5060 Z5= Z5+ S(I)
5070 T= T+ S(I)* P(I)
5080 NEXT I
5090 Z5= INT (100* (Z5/ 5)+ .5)/ 100
5100 Z6= INT ((Z5- Z4)* 100+ .5)/ 100
5110 RETURN
5140 PRINT "
6000 REM  SUBROUTINE TO INPUT TRANSACTIONS
6010 PRINT "WHAT IS YOUR TRANSACTION IN (TYPE NUMBER OF SHARES) "
6020 INPUT "        IBM   ";Z(1)
6030 INPUT "        GM    ";Z(2)
6040 INPUT "        RCA   ";Z(3)
6050 INPUT "        CBS   ";Z(4)
6060 INPUT "        EPA   ";Z(5)
6070 PRINT :PRINT
6080 REM  TOTAL DAY'S PURCHASES IN  $:P5
6090 P5= 0
6100 REM  TOTAL DAY'S SALES IN   $: S5
6110 S5= 0
6120 FOR I= 1TO 5
6130 LETZ(I)= INT (Z(I)+ .5)
6140 IF Z(I)< = 0THEN 6200
6150 P5= P5+ Z(I)* S(I)
6160 GOTO 6250
6200 S5= S5- Z(I)* S(I)
6210 IF - Z(I)< = P(I)THEN 6250
6220 PRINT "YOU HAVE OVERSOLD A STOCK; TRY AGAIN."
6230 GOTO 6000
6250 NEXT I
6260 REM  :::::TOTAL VALUE OF TRANSACTION :::::T5
6270 T5= P5+ S5
6280 REM  ******BROKERAGE FEE:**********
6290 B5= INT (2* T5+ .5)/ 100
6300 C5= C- P5- B5+ S5
6310 IF C5> = 0THEN 6350
6315 C6= INT (100* - C5+ .5)/ 100
6320 PRINT "YOU HAVE USED $ ";C6;" MORE THAN YOU HAVE."
6330 GOTO 6000
6350 C= INT (100* C5+ .5)/ 100
6360 RETURN
7000 REM  ***** SUBROUTINE TO CALCULATE NEW PORTFOLIO **
7010 FOR I= 1TO 5
7020 P(I)= P(I)+ Z(I)
7030 NEXT I
7040 GOSUB 4000
7060 PRINT CHR$ (12)
7065 D6= D6+ 1
7070 PRINT "    ******   END OF TRADING, WEEK ";D6;"   ******"
7080 FOR F= 1TO 200:NEXT F
7085 PRINT
7090 PRINT "STOCK","PRICE/SHARE","HOLDINGS","NET VALUE","CHANGE"
7095 PRINT :PRINT ""
7100 PRINT :PRINT "IBM",S(1);TAB( 24);P(1);TAB( 40);INT (S(1)* P(1)* 100+ .5)/ 100;TAB( 56);C(1)
7110 PRINT "GM",S(2);TAB( 24);P(2);TAB( 40);INT (S(2)* P(2)* 100+ .5)/ 100;TAB( 56);C(2)
7120 PRINT "RCA",S(3);TAB( 24);P(3);TAB( 40);INT (S(3)* P(3)* 100+ .5)/ 100;TAB( 56);C(3)
7130 PRINT "CBS",S(4);TAB( 24);P(4);TAB( 40);INT (S(4)* P(4)* 100+ .5)/ 100;TAB( 56);C(4)
7140 PRINT "EPA",S(5);TAB( 24);P(5);TAB( 40);INT (S(5)* P(5)* 100+ .5)/ 100;TAB( 56);C(5)
7150 PRINT ""
7240 PRINT
7250 GOTO 526
8000 REM  *********DIVIDEND TIME ************************
8010 Q(2)= INT (22* S(2)+ .5)/ 1000
8020 S(2)= S(2)- 1:C(2)= - 1
8030 FOR F= 1TO 5
8040 IF F< > 2THEN C(F)= 0
8050 NEXT F
8060 K3= 0
8100 PRINT "GM HAS JUST PAID A DIVIDEND OF ";Q(2);" PER SHARE."
8110 Q5= INT (100* Q(2)* P(2)+ .5)/ 100:C= C+ Q5:Q= Q+ Q5
8115 PRINT :PRINT
8120 GOTO 7090
8200 K4= INT (10* RND (X)+ .5)
8210 IF K4< 5THEN 8300
8220 PRINT "EPA HAS DECIDED TO ISSUE A DIVIDEND OF 12.5 CENTS PER SHARE."
8230 Q5= INT (12.5* P(2)+ .5)/ 100
8235 C= C+ Q5:Q= Q+ Q5
8240 FOR F= 1TO 5:C(F)= 0:NEXT F
8245 K3= 0
8250 GOTO 7090
8300 PRINT "EPA HAS DECIDED NOT TO ISSUE A DIVIDEND THIS QUARTER DUE TO     SAGGING PROFITS."
8305 PRINT :PRINT
8310 GOTO 520
8400 Q(4)= INT (9* S(2)+ .5)/ 1000
8410 S(4)= S(4)- .5:C(4)= - .5
8420 Q(3)= INT (7* S(2)+ .5)/ 1000
8430 S(3)= S(3)- .25:C(3)= - .25
8440 C(1)= 0:C(2)= 0:C(5)= 0
8460 K3= 0
8490 PRINT "RCA PAYS A DIVIDEND OF ";Q(3);" PER SHARE."
8500 PRINT "CBS PAYS A DIVIDEND OF ";Q(4);" PER SHARE."
8520 Q5= INT (100* Q(4)* P(4)+ .5)/ 100+ INT (100* Q(3)* P(3)+ .5)/ 100
8521 C= C+ Q5:Q= Q+ Q5
8525 PRINT :PRINT
8526 K3= 0
8530 GOTO 7090
8600 K2= RND (Y)
8610 IF K2< .2THEN GOTO 8700
8620 IF K2> .9THEN GOTO 8750
8630 Q(1)= INT (15* S(1)+ .5)/ 1000
8640 S(1)= S(1)- .625:C(1)= - .625
8650 FOR F= 2TO 5:C(F)= 0:NEXT F
8660 PRINT "IBM PAYS A QUARTERLY DIVIDEND OF ";Q(1);" PER SHARE."
8670 Q5= INT (100* Q(1)* P(1)+ .5)/ 100
8672 C= C+ Q5:Q= Q+ Q5
8674 K3= 0
8680 GOTO 7090
8700 PRINT "DUE TO A STRIKE AT IBM, THE QUARTERLY DIVIDEND IS REDUCED TO"
8710 PRINT ".10 PER SHARE."
8720 FOR F= 2TO 5:C(F)= 0:NEXT F
8730 Q5= INT (10* P(1)+ .5)/ 100
8732 C= C+ Q5:Q= Q+ Q5
8740 C(1)= - 3:S(1)= S(1)- 3
8745 K3= 0
8747 GOTO 7090
8750 PRINT "PROFITS AT IBM ARE UP THIS QUARTER AND SHAREHOLDERS ARE PAID"
8751 PRINT "A SPECIAL DIVIDEND THIS QUARTER OF .50 PER SHARE."
8760 S(1)= S(1)+ 2:C(1)= 2
8770 FOR F= 2TO 5:C(F)= 0:NEXT F
8780 Q5= INT (50* P(1)+ .5)/ 100:C= C+ Q5:Q= Q+ Q5
8785 K3= 0
8790 PRINT :PRINT :GOTO 7090
9000 P8= INT (RND (X)* 10+ .5)
9010 IF K5= 1THEN GOTO 9045
9020 IF P8* K2= 56THEN 9100
9030 IF PI* K2= 20THEN 9200
9040 IF P8* K2= 24THEN 9300
9045 K5= 0
9050 GOTO 650
9100 PRINT "THE COUNTRY OF DAI BAJAR ORDERED MISSILES WHICH UTILIZED"
9105 PRINT "THE ENTIRE PLANT #1 OF THE TWO PLANTS OWNED BY IBM."
9110 PRINT "HOWEVER, THAT COUNTRY HAS JUST DECLARED BANKRUPTCY AND WILL"
9120 PRINT "NOT PAY FOR ITS ORDER."
9130 PRINT "IBM STOCK IS REVALUED AT 1/2 ITS ORIGINAL VALUE."
9135 K5= 1:FOR F= 1TO 3000:NEXT F
9140 S(1)= INT (50* S(1)+ .5)/ 100
9150 C(1)= - S(1)
9155 FOR F= 2TO 5:C(F)= 0:NEXT F
9160 GOTO 7090
9200 PRINT "THE EVERLASTING POLITICAL ASSOCIATION SPONSORED A MEASURE TO "
9210 PRINT "PROHIBIT BUILDING WITHIN 5 MILES OF AN AIRPORT."
9215 PRINT "THIS BILL WAS SOUNDLY DEFEATED SINCE THE AREA AROUND THE "
9220 PRINT "AIRPORT WAS THE ONLY FLAT LAND WITHIN 50 MILES."
9230 PRINT "DONATIONS TO THE EPA SLOWED TO A TRICKLE AND THE"
9240 PRINT "VALUE OF EPA STOCK DROPPED 20%."
9250 C(5)= INT (20* S(5)+ .5)/ 100* - 1
9260 S(5)= S(5)+ C(5)
9265 K5= 1:FOR F= 1TO 3000:NEXT F
9270 FOR F= 1TO 4:C(F)= 0:NEXT F
9280 GOTO 7090
9300 PRINT "GM WAS MAKING SO MUCH PROFIT DURING THE LAST QUARTER THAT "
9310 PRINT "ANOTHER COMPANY BEGAN MAKING SIMILAR MINICOMPUTERS AT A "
9320 PRINT "LOWER COST AND SELLING PRICE.  GM SALES HAVE PLUMMETED."
9330 PRINT "GM STOCK VALUE DECLINED 30%."
9335 K5= 1:FOR F= 1TO 3000:NEXT F
9340 C(2)= - INT (30* S(2)+ .5)/ 100
9350 S(2)= S(2)+ C(2)
9360 FOR F= 1TO 5
9370 IF F< > 2THEN C(F)= 0
9380 NEXT F
9390 GOTO 7090