260 DIM RECORD (24,12): DIM STOCKS (18,6): DIM PORT (18)
270 WEEK=1: M=10000: DIM TRENDS (5)
275 RANDOMIZE 1
280 IF A=2 THEN GOSUB 9000: GOTO 500
290 REM - MAKE UP A GAME -
300 FOR Q=1 TO 18
310 RECORD (Q,1)=INT(RND(1)*50)+25
320 FOR QQ=2 TO 12
330 RECORD (Q,QQ)= RECORD (Q,QQ-1)+INT(RND(1)*3)-1: IF RECORD (Q,QQ)<20 THEN RECORD (Q,QQ)=20
340 NEXT QQ
350 NEXT Q: REM ^ FILL THE 12 MO. RECORD
355 FOR Q=1 TO 36: READ A$: NEXT Q
360 FOR Q=1 TO 18: STOCKS (Q,1)= RECORD (Q,12)
370 STOCKS (Q,2)= RECORD (Q,12)- RECORD (Q,11)
380 FOR QQ=3 TO 5: READ STOCKS (Q,QQ): NEXT QQ
390 STOCKS (Q,6)=INT(RND(1)*3)-1: IF STOCKS (Q,6)=0 THEN 390: REM ^ FILL STOCK RECORDS
395 NEXT Q
400 RESTORE: OV=10000
410 FOR Q=1 TO 18: MI=MI+STOCKS(Q,1): OMI=OMI+RECORD(Q,11): NEXT Q
420 FOR Q=1 TO 12: FOR QQ=1 TO 18: A=STOCKS (QQ,5): RECORD (18+A,Q)= RECORD(18+A,Q)+ RECORD (QQ,Q): RECORD (24,Q)= RECORD (24,Q)+ RECORD (QQ,Q): NEXT QQ: NEXT Q
430 FOR Q=1 TO 5: TRENDS (Q)=INT(RND(1)*5)-2: NEXT Q
440 ?:?:LINE INPUT "How many game years would you like to play? ";A$: T=VAL(A$): IF T<1 OR T>100 OR T<>INT(T) THEN ?T: GOTO 440
500 REM
510 REM - MAIN ROUTINE -
520 REM
523 IF INT(WEEK/52)=T THEN GOSUB 8000
525 MI=RECORD(24,12): OMI=RECORD(24,11)
530 SCNCLR:?"Market Index: ";MI;". Change: ";: IF MI-OMI>0 THEN ?"+";MI-OMI;".": GOTO 540
535 ?MI-OMI;"."
540 ?:?:?"Main Menu:":?:?"1) View the market summary":?"2) Read the Market News"
550 ?"3) View graphs":?"4) Trade stocks":?"5) View Records":?"6) End work":?"7) Save game"
560 ?:?"Enter your choice: ";: GETKEY A$: A=VAL (A$): IF A<1 OR A>8 THEN 530
570 ?A
600 ON A GOSUB 1000,2000,4000,5000,6000,7000,9500
990 GOTO 500
1000 REM
1010 REM - MARKET SUMMARY -
1015 REM
1020 SCNCLR:?"MARKET SUMMARY FOR WEEK #";WEEK;":":?"Company name:";TAB (35);"init:";TAB(42);"Close:";TAB(50);"Change:";
2040 ?" Yesterday, the market closed ";: IF RECORD(24,11)= RECORD(24,12) THEN ?"unchanged ";: GOTO 2070
2050 IF RECORD(24,12)>RECORD(24,11) THEN ?"up"; ELSE ?"down";
2060 ?ABS(RECORD(24,12)-RECORD(24,11));"points ";
2070 ?"to finish at";RECORD(24,12);"."
2080 ?:?"Industrial group closes:":?
2090 RESTORE: FOR Q=1 TO 90: READ A$: NEXT Q
2100 FOR Q=1 TO 5: READ A$: ?Q;". ";A$;":";TAB(40);RECORD(Q+18,12);TAB(55);"(";
2110 IF RECORD(Q+18,11)=RECORD(Q+18,12) THEN ?" unchanged )":GOTO 2150
2130 IF RECORD(Q+18,12)>RECORD(Q+18,11) THEN ?" up"; ELSE ?" down";
2140 ?ABS(RECORD(Q+18,12)-RECORD(Q+18,11));")"
2150 NEXT Q
2160 ?:?"Comments:":?: A=0
2170 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)<-2 THEN ?"Industrial group";q;"continues to slump. Stay away from these stocks.": A=A+1
2180 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)<0 THEN ?"Industrial group";q;"is overpriced. Be careful with them.": A=A+1
2190 Q=INT(RND(1)*18)+1: IF INT(RND(1)*10)+1=1 AND STOCKS(Q,6)>TRENDS(STOCKS(Q,5)) AND TRENDS(STOCKS(Q,5))>0 THEN ?"Stock number";q;"is outperforming it's industrial group. Buy!"
2200 Q=INT(RND(1)*18)+1: IF INT(RND(1)*10)+1=1 AND STOCKS(Q,6)>TRENDS(STOCKS(Q,5)) AND TRENDS(STOCKS(Q,5))<0 THEN ?"Stock number";q;"will join it's industrial group in recession. Sell out.": A=A+1
2210 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)>0 THEN ?"Industrial group";q;"should perform well in the future.": A=A+1
2220 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)>2 THEN ?"Industrial group";q;"continues to boom. Buy in fast!": A=A+1
2230 Q=INT(RND(1)*18)+1: IF INT(RND(1)*10)+1=1 AND STOCKS(Q,5)<TRENDS(STOCKS(Q,5)) AND TRENDS(STOCKS(Q,5))>0 THEN ?"The performance of stock number";q;"will improve.": A=A+1
2240 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)=0 THEN ?"Industrial group";q;"will not move much in the near future.": A=A+1
2250 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)=1 THEN ?"Industrial group";q;"should experience minor gains in the near future.": A=A+1
2260 Q=INT(RND(1)*5)+1: IF INT(RND(1)*10)+1=1 AND TRENDS(Q)=-1 THEN ?"Industrial group";q;"should experience minor losses in the near future.": A=A+1
2500 IF A<2 THEN 2170
2510 ?:?"(Press any key to return to the menu) ";: GETKEY A$: RETURN
5130 IF QQ=1 THEN Q=INT((M-20)/STOCKS(A,1)): ?: ?"Number of shares to buy (";Q;" max.): ";: INPUT "";Q$: Q=VAL(Q$): IF Q<1 OR Q>INT(M/STOCKS(A,1)) THEN 5000
5135 IF QQ=2 THEN ?:?"Number of shares to sell (";PORT(A);" max.): ";: LINE INPUT "";Q$: Q=VAL(Q$): IF Q<0 OR Q>PORT(A) THEN 5000
5140 IF Q<>INT(Q) THEN 5000
5143 IF QQ=2 AND (M+(STOCKS(A,1)*Q))<20 THEN ?:?"You won't have enough money in your account to cover the commission! ";:GETKEY A$: GOTO 5000
9540 ?:?"Save Game? (Y/N) ";:GETKEY A$: IF A$<>"Y" THEN RETURN
9550 ?A$: ?:INPUT "Title to save as: ";A$
9560 OPEN "O", #1, A$
9570 WRITE #1,M: WRITE #1,WEEK
9580 FOR Q=1 TO 24: FOR QQ=1 TO 12: WRITE #1,RECORD(Q,QQ): NEXT QQ: NEXT Q
9590 FOR Q=1 TO 5: WRITE #1,TRENDS(Q): NEXT Q
9600 FOR Q=1 TO 18: FOR QQ=1 TO 6: WRITE #1,STOCKS(Q,QQ): NEXT QQ: NEXT Q
9610 FOR Q=1 TO 18: WRITE #1,PORT(Q): NEXT Q
9620 WRITE #1,MI: WRITE #1,OMI: WRITE #1,T
9630 CLOSE #1
9640 RETURN
10000 DATA International Business Machines,IBM,Exxon oil,XON,American Telephone & Telegraph,T,General Motors,GM,Eastman Kodak,EK
10010 DATA United Air Lines,UAL,Black & Decker,BDK,Coca-cola,KO,General Electric,GE,Sears Roebuck,S,Standard Oil of Indiana (Amoco),SN,Bristol Myers,BMY
10020 DATA Dupont,DD,Boeing,BA,Johnson & Johnson,JNJ,General foods,GF,Anheuser Busch,BUD,Eckwell international,EWL
10030 DATA 10,.04,1,9,.08,2,8,.06,1,6,.06,4,9,.04,3,5,.02,4,7,.02,3,10,.04,5
10040 DATA 10,.04,3,8,.04,3,10,.05,2,10,.03,3,8,.05 ,2,8,.02, 4,10,.03,3,9, .04,5,10,.03,5,8,.06,1
10050 DATA Technologies,Chemicals / Oils,Manufacturing / Retailing,Transportation,Beverages / Foods,the Market Index
11040 ?" Megabucks is a stock investment simulation. In it you try to make as muchmoney as you can (or lose as little) within the time limit you set for"
11050 ?"yourself. The game consists of 18 stocks divided into 5 industrial groups:":?
11100 ?"The main menu of Megabucks consists of these options:":?
11110 ?"1) View the market summary":?"2) Read the Market News":?"3) View graphs":?"4) Trade stocks":?"5) View Records":?"6) End work":?"7) Save game":?
11120 ?"#1 will be explained later. #2 allows you to buy a copy of the Market News. It may be expensive ($50 a copy), but it can be very helpful when you don't"
11130 ?"know where to invest. #3 lets you graph the performance of stocks or indexesover the last 12 months (4 weeks = 1 month). #4 allows you to trade on the"
11140 ?"Àmiga Stock Exchange. There's a $20 commission charged on every transaction.#5 lets you view your current stock portfolio. #6 ends the day which allows"
11150 ?"the stock market to go into motion. #7 lets you save the game to disk."
11160 ? AT (1,22);"[Hit {ESC} to exit or anything else to continue] ";: GETKEY A$: IF A$=CHR$(27) THEN RETURN
11180 ?" The market summary (choice #1) displays each stock, it's trading initials,it's latest close, the change from the last close, it's yearly dividend
11190 ?"payment, it's grade (on a scale from 1 to 10), and it's industrial group number."
11200 ?:?"When your playing time has ended, the computer will display your final results and give you the option to continue the game."
11210 ? AT (1,22);"[Hit {ESC} to exit or anything else to continue.] ";: GETKEY A$: IF A$=CHR$(27) THEN RETURN