10 PRINT TAB(-1,0);"**** $TOCK$ & BOND$ ****"
20 PRINT TAB(3,1);"DEMARCO-SHATZ CORPORATION 1978"
30 RANDOMIZE
1000 REM SET UP
1010 PRINT :INPUT "NUMBER OF PLAYER(S), AND YEAR(S)? ",P,T
1020 DIM B(P),V(10),S(10,P),G(10),D(10)
1030 DIM S$(3),Z$(3),M$(7),A$(10)
1040 FOR I=1 TO P: B(I)=4716.982
1050 FOR J=1 TO 10: S(J,I)=0: V(J)=100
1060 NEXT J: NEXT I
2000 REM CYCLE
2010 FOR Y=1 TO T
2020 GOSUB 5000: GOSUB 6000
2100 FOR I=1 TO P: B(I)=INT((B(I)*1.06)*100)/100
2110 GOSUB 7000: PRINT "PLAYER #";I;
2120 PRINT "  COMMANDS ARE: P-PASS, S-SELL, B-BUY, M-MAX PURCHASE"
2130 PRINT "CURRENT HOLDINGS:  CASH";TAB(29)"$";B(I)
2200 RESTORE
2205 FOR J=1 TO 10: READ S$,D: IF S(J,I)=0 THEN 2230
2210 PRINT TAB(4)S(J,I);TAB(9)"SHARES OF";TAB(19)S$;
2220 PRINT TAB(23)"WORTH $";TAB(30)S(J,I)*V(J)
2230 NEXT J: IF K=0 THEN PRINT "   NONE"
2300 REM INPUT COMAND
2310 INPUT "- ",C$: PRINT TAB(-1,3)"- ";
2320 IF C$="P" THEN 3000
2330 IF C$="S" THEN 3100
2340 IF C$="B" THEN 3200
2350 IF C$="M" THEN 3300
2360 PRINT CHR$(13);: GOTO 2310
3000 REM PASS
3010 PRINT "PASS"
3020 NEXT I: NEXT Y: GOTO 8000
3100 REM SELL
3110 M$="SELL": GOSUB 3900: IF J=11 THEN 2300
3120 S(J,I)=S(J,I)-N: B(I)=B(I)+(V(J)*N)
3130 GOTO 3400
3200 REM BUY
3210 M$="BUY": GOSUB 3900: IF J=11 THEN 2300
3220 S(J,I)=S(J,I)+N: B(I)=B(I)-(V(J)*N)
3230 GOTO 3400
3300 REM CAL MAX
3310 INPUT "MAX PURCHASE OF? ",S$
3320 IF LEN(S$)<3 THEN 3310
3330 PRINT SPACE(24);TAB(-1,3); :RESTORE
3335 FOR J=1 TO 10: READ Z$,D: IF Z$=S$ THEN 3350
3340 NEXT J: PRINT " - NO SUCH STOCK!": PRINT "- ";: GOTO 3300
3350 IF V(J)<=0 THEN PRINT " - STOCK NOT AVAILABLE!": GOTO 2300
3360 PRINT " WOULD BE";INT(B(I)/V(J));"SHARES" :GOTO 2300
3400 REM
3410 PRINT TAB(17,1);
3420 FOR Q=1 TO 7: PRINT SPACE(79): NEXT
3430 PRINT TAB(17,1);: GOTO 2130
3900 REM
3910 RESTORE
3915 PRINT M$;: INPUT " WHAT STOCK, NUMBER OF SHARES? ",Z$,N
3920 FOR J=1 TO 10: READ S$,D
3930 IF Z$=S$ THEN 3950
3940 NEXT J: PRINT TAB(45)CHR$(11)+"* NO SUCH STOCK *": RETURN
3950 IF C$="S" THEN 3980
3960 IF B(I)-V(J)*N>=0 THEN RETURN
3970 PRINT TAB(45)CHR$(11)+"* BALANCE ERROR *": GOTO 3995
3980 IF S(J,I)<N THEN PRINT TAB(45)CHR$(11)+"* QUANTITY ERROR *":GOTO 3995
3990 RETURN
3995 PRINT "- ";: GOTO 3910
5000 REM BULL/BEAR/YEAR
5010 Q=INT(2*RND(1)): R=INT(12*RND(1)): RESTORE
5020 FOR K=1 TO 10: READ S$,D(K): NEXT
5030 G=0: W=120*Q+10*R: IF W=0 THEN 5050
5040 FOR K=1 TO W: READ N: NEXT
5050 FOR K=1 TO 10: READ G(K): G=G+G(K): NEXT
5060 IF G>0 THEN M$="UP": RETURN
5070 M$="DOWN": RETURN
6000 REM UPDATE
6100 RESTORE
6105 FOR J=1 TO 10
6110 READ S$,D(J): IF J=1 OR D(J)=0 THEN 6200
6120 D(J)=D(J)+FNR(3)-FNR(3): IF D(J)<0 THEN D(J)=0
6200 IF V(J)=0 THEN 6500
6210 V(J)=V(J)+G(J): IF V(J)>0 THEN 6300
6220 V(J)=0: FOR K=1 TO P: S(J,K)=0: NEXT: A$(J)="-DEAD"
6300 IF V(J)<151 THEN A$(J)="": GOTO 6400
6310 FOR K=1 TO P: S(J,K)=S(J,K)*2: NEXT: A$(J)="-SPLIT"
6320 V(J)=(INT(V(J)/2)*100)/100
6400 NEXT J
6500 REM UPDATE CASH
6510 FOR K=1 TO P: FOR J=1 TO 10
6520 IF V(J)<50 THEN 6540
6530 B(K)=S(J,K)*D(J)+B(K)
6540 NEXT J: NEXT K
6600 RETURN
7000 REM POSTING
7010 PRINT TAB(-1,0): IF Y=T THEN PRINT "* LAST YEAR *";: GOTO 7030
7020 IF Y<T THEN PRINT "YEAR #";Y;
7030 PRINT "  ANALYSIS - MARKET ";M$;ABS(G/10);"POINTS"
7040 PRINT "  STOCK CLOSINGS:  (PER SHARE)" :PRINT TAB(6)"STOCK";
7050 PRINT TAB(18)"YIELD";TAB(30)"GAIN/LOSS";TAB(43)"CURRENT VALUE"
7100 RESTORE
7105 FOR J=1 TO 10: READ S$,D(J)
7110 PRINT TAB(7)S$;TAB(19)"$";D(J);TAB(33)G(J);
7120 PRINT TAB(46)"$";V(J);TAB(56)A$(J)
7130 NEXT
7200 PRINT: FOR R=1 TO 72: PRINT "-";: NEXT: PRINT
7210 RETURN
8000 REM LAST ROUND
8010 GOSUB 5000: GOSUB 6000: GOSUB 7000
8100 PRINT
8110 FOR I=1 TO P: B(I)=INT((B(I)*1.06)*100)/100
8120 FOR J=1 TO 10: B(I)=B(I)+(S(J,I)*V(J))
8130 NEXT J: PRINT "PLAYER #";I;"CLOSING BALANCE= $";B(I)
8140 NEXT I: END
9010 DATA MCB,6,GCA,1,MPI,0,PMF,4,SBD,7
9015 DATA SDC,0,TTC,0,UAC,2,UEI,6,VPC,3
9020 DATA 0,12,14,13,10,10,20,21,81,8
9025 DATA 0,7,-6,10,-10,30,6,-19,37,-2
9030 DATA 0,9,10,7,-5,-20,12,21,18,7
9035 DATA 0,7,8,5,-6,-40,3,16,-20,4
9040 DATA 0,8,6,4,-4,40,8,4,-12,3
9045 DATA 0,6,4,3,3,-15,5,8,-8,5
9050 DATA 0,5,7,-1,-3,45,6,-10,10,4
9055 DATA 0,-2,6,-3,-8,-20,-7,-10,14,6
9060 DATA 0,11,13,-5,-7,30,10,-11,-25,-4
9065 DATA 0,-5,13,-8,6,25,4,18,-22,-4
9070 DATA 0,-8,-9,-10,-15,-20,-21,-23,-60,-7
9075 DATA 0,-2,-10,-7,-9,-2,-9,-7,-22,-4
9080 DATA 0,26,16,25,8,-14,21,14,-4,17
9085 DATA 0,18,23,11,12,46,18,-5,41,15
9090 DATA 0,23,28,-2,11,56,19,30,29,14
9095 DATA 0,20,15,14,7,-20,15,13,-10,12
9100 DATA 0,17,21,13,-2,37,23,26,50,14
9105 DATA 0,19,24,17,9,-5,26,13,-57,15
9110 DATA 0,11,18,14,11,67,15,22,17,13
9115 DATA 0,13,31,1,14,-11,18,18,-19,10
9120 DATA 0,14,-8,19,-1,-9,25,-10,18,19
9125 DATA 0,24,24,23,20,51,27,38,43,18
9130 DATA 0,3,2,1,2,-6,3,4,-5,3
9200 DATA 0,0,0,0,0,0,0,0,0,0