home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 36.dms / 36.adf / MEGABUCKS.bas < prev    next >
BASIC Source File  |  1988-05-22  |  18KB  |  293 lines

  1. 20    REM - MEGABUCKS MENU -
  2. 30    REM
  3. 40    RGB 0,0,0,0: RGB 1,13,13,13: RGB 2,4,6,13: RGB 3,13,6,0
  4. 100   SCREEN 1,2,0
  5. 200   SCNCLR:?" - $$$  MEGABUCKS  $$$ -":?:?"    By Andrew Eckert":?"   Eckwell Inc., 1986"
  6. 210   ?:? "Options:": ?: ?"1.  Start a new game"
  7. 220   ? "2.  Resume a previously saved game": ? "3.  Read instructions"
  8. 230   ?:? "Your choice: ";: GETKEY A$
  9. 240   A=VAL(A$): IF A<1 OR A>3 THEN 100
  10. 243   IF A=3 THEN GOSUB 11000: GOTO 200
  11. 245   ?A:?:?:?"Please wait a moment..."
  12. 250   REM - VARIABLES -
  13. 260   DIM RECORD (24,12): DIM STOCKS (18,6): DIM PORT (18)
  14. 270   WEEK=1: M=10000: DIM TRENDS (5)
  15. 275   RANDOMIZE 1
  16. 280   IF A=2 THEN GOSUB 9000: GOTO 500
  17. 290   REM - MAKE UP A GAME -
  18. 300   FOR Q=1 TO 18
  19. 310   RECORD (Q,1)=INT(RND(1)*50)+25
  20. 320   FOR QQ=2 TO 12
  21. 330   RECORD (Q,QQ)= RECORD (Q,QQ-1)+INT(RND(1)*3)-1: IF RECORD (Q,QQ)<20 THEN RECORD (Q,QQ)=20
  22. 340   NEXT QQ
  23. 350   NEXT Q: REM ^ FILL THE 12 MO. RECORD
  24. 355   FOR Q=1 TO 36: READ A$: NEXT Q
  25. 360   FOR Q=1 TO 18: STOCKS (Q,1)= RECORD (Q,12)
  26. 370   STOCKS (Q,2)= RECORD (Q,12)- RECORD (Q,11)
  27. 380   FOR QQ=3 TO 5: READ STOCKS (Q,QQ): NEXT QQ
  28. 390   STOCKS (Q,6)=INT(RND(1)*3)-1: IF STOCKS (Q,6)=0 THEN 390: REM ^ FILL STOCK RECORDS
  29. 395   NEXT Q
  30. 400   RESTORE: OV=10000
  31. 410   FOR Q=1 TO 18: MI=MI+STOCKS(Q,1): OMI=OMI+RECORD(Q,11): NEXT Q
  32. 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
  33. 430   FOR Q=1 TO 5: TRENDS (Q)=INT(RND(1)*5)-2: NEXT Q
  34. 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
  35. 500   REM
  36. 510   REM - MAIN ROUTINE -
  37. 520   REM
  38. 523   IF INT(WEEK/52)=T THEN GOSUB 8000
  39. 525   MI=RECORD(24,12): OMI=RECORD(24,11)
  40. 530   SCNCLR:?"Market Index: ";MI;".      Change: ";: IF MI-OMI>0 THEN ?"+";MI-OMI;".": GOTO 540
  41. 535   ?MI-OMI;"."
  42. 540   ?:?:?"Main Menu:":?:?"1)  View the market summary":?"2)  Read the Market News"
  43. 550   ?"3)  View graphs":?"4)  Trade stocks":?"5)  View Records":?"6)  End work":?"7)  Save game"
  44. 560   ?:?"Enter your choice: ";: GETKEY A$: A=VAL (A$): IF A<1 OR A>8 THEN 530
  45. 570   ?A
  46. 600   ON A GOSUB 1000,2000,4000,5000,6000,7000,9500
  47. 990   GOTO 500
  48. 1000  REM
  49. 1010  REM - MARKET SUMMARY -
  50. 1015  REM
  51. 1020  SCNCLR:?"MARKET SUMMARY FOR WEEK #";WEEK;":":?"Company name:";TAB (35);"init:";TAB(42);"Close:";TAB(50);"Change:";
  52. 1025  ? TAB(60);"Div:"; TAB(68);"Gr:";TAB(73);"I.G.:"
  53. 1028  ?"-----------------------------------------------------------------------------"
  54. 1030  RESTORE: FOR Q=1 TO 18: READ A$: ? AT (1,Q+3);A$;: READ A$: ? AT(35,Q+3);A$;
  55. 1090  NEXT Q
  56. 1100  FOR Q=1 TO 18: ? AT (42,Q+3);STOCKS(Q,1);TAB(53);
  57. 1110  IF STOCKS(Q,2)>0 THEN ?"+";
  58. 1115  IF STOCKS(Q,1)=0 THEN ?"bnkrpt.": GOTO 1140
  59. 1120  IF STOCKS (Q,2)=0 THEN ?"unch.": GOTO 1140
  60. 1130  ?STOCKS(Q,2)
  61. 1140  ? AT (60,Q+3);INT(100*(STOCKS(Q,4)+.005));"%";TAB(68);STOCKS(Q,3);TAB(73);STOCKS(Q,5)
  62. 1150  NEXT Q
  63. 1160  ? AT (1,23);"[Hit any key to return to the menu] ";:GETKEY A$: RETURN
  64. 1170  SCNCLR: FOR Q=1 TO 18: ?Q;" - ";STOCKS(Q,6): NEXT Q
  65. 1180  FOR Q=1 TO 5: ? AT (15,Q);Q;" - ";TRENDS(Q): NEXT Q
  66. 1190  ? AT (1,21);" ";: GETKEY A$: RETURN
  67. 2000  REM
  68. 2010  REM - MARKET NEWS -
  69. 2020  REM
  70. 2025  IF M<5 THEN ?:?"You don't have enough money to buy a copy! ";: GETKEY A$: RETURN
  71. 2030  M=M-5: SCNCLR:?"The Àmiga Market News Letter.      Week";WEEK:?"-----------------------------------------------------------------------------":?
  72. 2040  ?"  Yesterday, the market closed ";: IF RECORD(24,11)= RECORD(24,12) THEN ?"unchanged ";: GOTO 2070
  73. 2050  IF RECORD(24,12)>RECORD(24,11) THEN ?"up"; ELSE ?"down";
  74. 2060  ?ABS(RECORD(24,12)-RECORD(24,11));"points ";
  75. 2070  ?"to finish at";RECORD(24,12);"."
  76. 2080  ?:?"Industrial group closes:":?
  77. 2090  RESTORE: FOR Q=1 TO 90: READ A$: NEXT Q
  78. 2100  FOR Q=1 TO 5: READ A$: ?Q;".  ";A$;":";TAB(40);RECORD(Q+18,12);TAB(55);"(";
  79. 2110  IF RECORD(Q+18,11)=RECORD(Q+18,12) THEN ?" unchanged )":GOTO 2150
  80. 2130  IF RECORD(Q+18,12)>RECORD(Q+18,11) THEN ?" up"; ELSE ?" down";
  81. 2140  ?ABS(RECORD(Q+18,12)-RECORD(Q+18,11));")"
  82. 2150  NEXT Q
  83. 2160  ?:?"Comments:":?: A=0
  84. 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
  85. 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
  86. 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!"
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 2500  IF A<2 THEN 2170
  95. 2510  ?:?"(Press any key to return to the menu) ";: GETKEY A$: RETURN
  96. 2990  END
  97. 4000  REM
  98. 4010  REM - GRAPHS -
  99. 4020  REM
  100. 4025  SCNCLR: ?"GRAPH GENERATOR:":?"-----------------------------------------------------------------------------":?
  101. 4030  RESTORE: FOR Q=1 TO 17 STEP 2
  102. 4040  READ A$:?Q;". ";A$;:READ A$: READ A$:? TAB(40);Q+1;". ";A$: READ A$
  103. 4050  NEXT Q
  104. 4060  ?" 19 .  Technologies"; TAB(40); " 20 .  Chemicals / Oils":?" 21 .  Manufacturing / Retailing"; TAB(40); " 22 .  Transportation"
  105. 4070  ?" 23 .  Beverages / Foods" ;TAB(40); " 24 .  The Market Index"
  106. 4080  ?:?:INPUT "Enter number to graph (0 to exit): ";A$: A=VAL(A$): IF A=0 THEN RETURN
  107. 4090  IF A>24 OR A<>INT(A) THEN 4000
  108. 4100  IF A>18 THEN 4130
  109. 4110  RESTORE: FOR Q=1 TO A*2-1: READ A$: NEXT Q
  110. 4120  GOTO 4200
  111. 4130  RESTORE: FOR Q=1 TO 90+(A-18): READ A$: NEXT Q
  112. 4200  SCNCLR: QQ=0: FOR Q=1 TO 12: IF RECORD (A,Q)>QQ THEN QQ=RECORD (A,Q)
  113. 4210  NEXT Q: QQ=QQ+10: QQ=QQ/10: QQ=INT(QQ): QQ=QQ*10: Y=150/QQ
  114. 4220  PENA 2: DRAW (30,20 TO 558,20)
  115. 4230  FOR Q=0 TO 11: DRAW (30+(48*Q),20 TO 30+(48*Q),170): NEXT Q
  116. 4240  FOR Q=170 TO 20 STEP-(150/(QQ/10)): DRAW (30,Q TO 558,Q): NEXT Q
  117. 4250  QQ=INT(38-LEN(A$)/2): ? AT (QQ,1);A$
  118. 4255  QQ=RECORD(A,1)*Y: DRAW (30,170-QQ)
  119. 4260  PENA 3: FOR Q=78 TO 558 STEP 48: QQ=RECORD(A,(Q+18)/48)*Y: DRAW (TO Q,(170-QQ)): NEXT Q
  120. 4270  A$="POINTS IN TENS": FOR Q=1 TO 14: ? AT (1,Q+4);MID$(A$,Q,1): NEXT Q
  121. 4275  ? AT (1,1);" ";
  122. 4280  ? AT (36,23);"MONTHS                     ";:GETKEY A$: GOTO 4000
  123. 5000  REM
  124. 5010  REM - STOCK TRADES -
  125. 5020  REM
  126. 5030  SCNCLR:?"Amiga Stock Exchange      Week";WEEK:?"-----------------------------------------------------------------------------":?
  127. 5040  RESTORE: FOR Q=1 TO 17 STEP 2
  128. 5050  READ A$:?Q;". ";A$;: READ A$: READ A$:?TAB(40);Q+1;". ";A$: READ A$: NEXT Q
  129. 5060  ?:?:?"(B)UY, OR (S)ELL: ";:GETKEY A$: ?A$: IF A$<>"B" AND A$<>"S" AND A$<>"b" AND A$<>"s" THEN RETURN
  130. 5070  IF A$="B" OR A$="b" THEN QQ=1 ELSE QQ=2
  131. 5080  LINE INPUT "STOCK NUMBER: ";A$: A=VAL(A$): IF A<1 OR A>18 OR A<>INT(A) THEN 5000
  132. 5090  RESTORE: FOR Q=1 TO A: READ Q$: READ A$: NEXT Q
  133. 5095  SCNCLR:?"Amiga Stock Exchange       Week";WEEK:?"-----------------------------------------------------------------------------":?
  134. 5120  ?"Current Price of ";A$;": ";STOCKS(A,1)
  135. 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
  136. 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
  137. 5140  IF Q<>INT(Q) THEN 5000
  138. 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
  139. 5145  IF QQ=2 THEN Q=Q*-1
  140. 5150  PORT(A)=PORT(A)+Q: M=M-(STOCKS(A,1)*Q)-20
  141. 5160  ?:?"DONE... ";:GETKEY A$: RETURN
  142. 5500  REM - SELL STOCKS -
  143. 5990  END
  144. 6000  REM
  145. 6010  REM - VIEW PORTFOLIO -
  146. 6020  REM
  147. 6030  SCNCLR:?"STOCK PORTFOLIO FOR WEEK";WEEK
  148. 6040  ?"Company:";tab(12);"Price:";tab(24);"Shares:";tab(36);"Value:";tab(48);"Dividend:";tab(60);"Change:"
  149. 6050  ?"-----------------------------------------------------------------------------"
  150. 6055  A=4
  151. 6060  FOR Q=1 TO 18: IF PORT (Q)=0 THEN 6130
  152. 6070  RESTORE: FOR QQ=1 TO 2*Q: READ A$: NEXT QQ
  153. 6080  ? AT (1,A);A$;TAB(12);STOCKS(Q,1);TAB(24);PORT(Q);
  154. 6090  ?TAB(36);(PORT(Q)*STOCKS(Q,1));TAB(48);INT((STOCKS(Q,4)+.005)*100);
  155. 6100  ?"%";TAB (60);: IF STOCKS(Q,2)=0 THEN ?"unch": A=A+1: GOTO 6130
  156. 6110  IF STOCKS (Q,2)>0 THEN ?"+";
  157. 6120  ?STOCKS(Q,2): A=A+1
  158. 6130  NEXT Q
  159. 6140  ? AT (1,23);"[Hit {ESC} to return to the menu or anything else to continue] ";:GETKEY A$: IF A$=CHR$(27) THEN RETURN
  160. 6150  SCNCLR: NV=0
  161. 6160  FOR Q=1 TO 18: IF PORT (Q)=0 THEN 6180
  162. 6170  NV=NV+(PORT(Q)*STOCKS(Q,1))
  163. 6180  NEXT Q: NV=NV+M
  164. 6185  ?"TOTALS FOR WEEK ";WEEK;":              Market Index: ";MI:?"-----------------------------------------------------------------------------":?
  165. 6190  ?"PREVIOUS STOCK PORTFOLIO + ACCOUNT VALUE:  $";OV;".":?"CURRENT VALUE:                             $";NV;"."
  166. 6200  ?:?"TOTAL GAIN/LOSS:  ";:IF NV-OV=0 THEN ?"unchanged": GOTO 6230
  167. 6210  IF NV-OV>0 THEN ?"+ $";NV-OV;".": GOTO 6230
  168. 6220  ?"- $";ABS(NV-OV);"."
  169. 6230  ?"PERCENTAGE GAIN/LOSS:  ";: IF NV-OV>0 THEN ?"+"; INT(((NV-OV)/NV)*100);"%": GOTO 6260
  170. 6240  IF NV=OV THEN ?"0 %": GOTO 6260
  171. 6250  ?"-";INT(((OV-NV)/OV)*100);"%"
  172. 6260  ?:?"Money in account:  $";M;".":?:?:?"[Hit any key to return to the menu] ";: GETKEY A$: RETURN
  173. 7000  REM
  174. 7010  REM - END OF DAY -
  175. 7020  REM
  176. 7025  REM - FIGURE OLD VALUE -
  177. 7030  OV=0: FOR Q=1 TO 18: IF PORT (Q)=0 THEN 7050
  178. 7040  OV=OV+(PORT(Q)*STOCKS(Q,1))
  179. 7050  NEXT Q
  180. 7060  OV=OV+M
  181. 7070  REM - SHIFT RECORDS -
  182. 7075  IF WEEK/4<>INT(WEEK/4) THEN 7090
  183. 7080  FOR Q=1 TO 24: FOR QQ=1 TO 11: RECORD (Q,QQ)=RECORD (Q,QQ+1): NEXT QQ: NEXT Q
  184. 7090  REM - STOCK CHANGES -
  185. 7100  FOR Q=1 TO 18: IF STOCKS(Q,1)=0 THEN QQ=0: GOTO 7120
  186. 7110  A=.02*STOCKS(Q,1): QQ=RND(1)*A: QQ=QQ*STOCKS(Q,6): QQ=QQ/.125: QQ=INT(QQ): QQ=QQ*.125
  187. 7120  STOCKS(Q,1)= STOCKS(Q,1)+QQ: RECORD (Q,12)= STOCKS(Q,1)
  188. 7123  IF STOCKS(Q,1)<0 THEN STOCKS(Q,1)=0
  189. 7125  STOCKS(Q,2)=STOCKS(Q,1)-RECORD(Q,11)
  190. 7130  NEXT Q
  191. 7140  REM - REFIGURE INDEXES -
  192. 7145  FOR Q=19 TO 24: RECORD (Q,12)=0: NEXT Q
  193. 7150  FOR Q=1 TO 18: RECORD (18+STOCKS(Q,5),12)=RECORD (18+STOCKS(Q,5),12)+ STOCKS(Q,1): RECORD (24,12)=RECORD (24,12)+ STOCKS(Q,1): NEXT Q
  194. 7160  WEEK=WEEK+1
  195. 7165  REM - ADJUST TRENDS -
  196. 7170  FOR Q=1 TO 18
  197. 7180  IF INT(RND(1)*10)+1<5 AND STOCKS(Q,6)<TRENDS(STOCKS(Q,5)) THEN STOCKS(Q,6)= STOCKS(Q,6)+1
  198. 7190  IF INT(RND(1)*10)+1<5 AND STOCKS(Q,6)>TRENDS(STOCKS(Q,5)) THEN STOCKS(Q,6)= STOCKS(Q,6)-1
  199. 7200  NEXT Q
  200. 7210  REM - MAJOR TREND CHANGES -
  201. 7220  FOR Q=1 TO 5
  202. 7230  IF (TRENDS(Q)=5 OR TRENDS(Q)=-5) AND INT(RND(1)*10)+1<6 THEN TRENDS(Q)=INT(RND(1)*5)-2
  203. 7240  IF (TRENDS(Q)<-2 OR TRENDS(Q)>2) AND INT(RND(1)*10)+1<5 THEN TRENDS(Q)=INT(RND(1)*3)-1
  204. 7250  IF INT(RND(1)*10)+1<4 THEN TRENDS(Q)=TRENDS(Q)+1: IF TRENDS(Q)>5 THEN TRENDS(Q)=5
  205. 7260  IF INT(RND(1)*10)+1<4 THEN TRENDS(Q)=TRENDS(Q)-1: IF TRENDS(Q)<-5 THEN TRENDS(Q)=-5
  206. 7265  IF TRENDS(Q)=0 AND INT(RND(1)*4)=1 THEN TRENDS(Q)=INT(RND(1)*3)-1
  207. 7270  NEXT Q
  208. 7290  FOR Q=1 TO 18: IF PORT(Q)=0 THEN 7310
  209. 7300  M=M+INT(((PORT(Q)*STOCKS(Q,1))*STOCKS(Q,4))/52)
  210. 7310  NEXT Q
  211. 7330  REM ^ DAILY DIVIDEND
  212. 7990  RETURN
  213. 8000  REM
  214. 8010  REM - END OF GAME -
  215. 8020  REM
  216. 8030  SCNCLR:?"YOUR TIME IS UP!":?
  217. 8040  NV=0: FOR Q=1 TO 18: IF PORT(Q)=0 THEN 8060
  218. 8050  NV=NV+(PORT(Q)*STOCKS(Q,1))
  219. 8060  NEXT Q: NV=NV+M
  220. 8070  ?"You started the game with  $ 10000 ."
  221. 8080  ?"You ended up with  $";nv;"."
  222. 8090  ?:?"Percentage change:";:QQ=INT(((NV-10000)/10000)*100):?QQ;"%."
  223. 8100  ?:?:?"Would you like to continue playing? ";:GETKEY A$: IF A$<>"Y" AND A$<>"N" AND A$<>"y" AND A$<>"n" THEN ?A$: GOTO 8100
  224. 8105  IF A$="N" OR A$="n" THEN RGB 0,6,9,15: RGB 1,0,0,0: RGB 2,15,15,15: RGB 3,15,9,10: SCNCLR: END
  225. 8108  ?A$
  226. 8110  ?: LINE INPUT "How many more years? ";A$: A=VAL(A$): IF A<1 OR A>100 OR A<>INT(A) THEN 8110
  227. 8120  T=T+A: RETURN
  228. 9000  REM
  229. 9010  REM - LOAD SAVED GAME -
  230. 9020  REM
  231. 9030  SCNCLR:?"Load Saved Game":?"-----------------------------------------------------------------------------"
  232. 9040  ?:INPUT "TITLE TO LOAD: ";A$
  233. 9050  OPEN "I", #1, A$
  234. 9060  INPUT #1,M
  235. 9070  INPUT #1,WEEK
  236. 9080  FOR Q=1 TO 24: FOR QQ=1 TO 12: INPUT #1,RECORD(Q,QQ): NEXT QQ: NEXT Q
  237. 9090  FOR Q=1 TO 5: INPUT #1,TRENDS(Q): NEXT Q
  238. 9100  FOR Q=1 TO 18: FOR QQ=1 TO 6: INPUT #1,STOCKS(Q,QQ): NEXT QQ: NEXT Q
  239. 9110  FOR Q=1 TO 18: INPUT #1,PORT(Q): NEXT Q
  240. 9120  INPUT #1,MI: INPUT #1,OMI: INPUT #1,T
  241. 9125  CLOSE #1
  242. 9130  RETURN
  243. 9500  REM
  244. 9510  REM - SAVE GAME -
  245. 9520  REM
  246. 9530  SCNCLR:?"Save Game":?"-----------------------------------------------------------------------------"
  247. 9540  ?:?"Save Game? (Y/N) ";:GETKEY A$: IF A$<>"Y" THEN RETURN
  248. 9550  ?A$: ?:INPUT "Title to save as: ";A$
  249. 9560  OPEN "O", #1, A$
  250. 9570  WRITE #1,M: WRITE #1,WEEK
  251. 9580  FOR Q=1 TO 24: FOR QQ=1 TO 12: WRITE #1,RECORD(Q,QQ): NEXT QQ: NEXT Q
  252. 9590  FOR Q=1 TO 5: WRITE #1,TRENDS(Q): NEXT Q
  253. 9600  FOR Q=1 TO 18: FOR QQ=1 TO 6: WRITE #1,STOCKS(Q,QQ): NEXT QQ: NEXT Q
  254. 9610  FOR Q=1 TO 18: WRITE #1,PORT(Q): NEXT Q
  255. 9620  WRITE #1,MI: WRITE #1,OMI: WRITE #1,T
  256. 9630  CLOSE #1
  257. 9640  RETURN
  258. 10000 DATA International Business Machines,IBM,Exxon oil,XON,American Telephone & Telegraph,T,General Motors,GM,Eastman Kodak,EK
  259. 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
  260. 10020 DATA Dupont,DD,Boeing,BA,Johnson & Johnson,JNJ,General foods,GF,Anheuser Busch,BUD,Eckwell international,EWL
  261. 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
  262. 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
  263. 10050 DATA Technologies,Chemicals / Oils,Manufacturing / Retailing,Transportation,Beverages / Foods,the Market Index
  264. 11000 REM
  265. 11010 REM - INSTRUCTIONS -
  266. 11020 REM
  267. 11030 SCNCLR:?"MEGABUCKS Instructions    page 1":?"-----------------------------------------------------------------------------":?
  268. 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"
  269. 11050 ?"yourself.  The game consists of 18 stocks divided into 5 industrial groups:":?
  270. 11060 ?"1.  Technologies":?"2.  Chemicals / Oils":?"3.  Manufacturing / Retailing":?"4.  Transportation":?"5.  Foods / Beverages":?
  271. 11070 ?"The prices of all the stocks in an industrial group add to form that group's index.  All five indexes, in turn, add to form the Market Index."
  272. 11080 ? AT (1,22);"[Hit {ESC} to exit or anything else to continue] ";: GETKEY A$: IF A$=CHR$(27) THEN RETURN
  273. 11090 SCNCLR:?"MEGABUCKS Instructions    page 2":?"-----------------------------------------------------------------------------":?
  274. 11100 ?"The main menu of Megabucks consists of these options:":?
  275. 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":?
  276. 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"
  277. 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"
  278. 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"
  279. 11150 ?"the stock market to go into motion.  #7 lets you save the game to disk."
  280. 11160 ? AT (1,22);"[Hit {ESC} to exit or anything else to continue] ";: GETKEY A$: IF A$=CHR$(27) THEN RETURN
  281. 11170 SCNCLR:?"MEGABUCKS Instructions    page 3":?"-----------------------------------------------------------------------------":?
  282. 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
  283. 11190 ?"payment, it's grade (on a scale from 1 to 10), and it's industrial group     number."
  284. 11200 ?:?"When your playing time has ended, the computer will display your final       results and give you the option to continue the game."
  285. 11210 ? AT (1,22);"[Hit {ESC} to exit or anything else to continue.] ";: GETKEY A$: IF A$=CHR$(27) THEN RETURN
  286. 11220 SCNCLR:? INVERSE (1);"CREDITS:":? INVERSE (0)
  287. 11230 ?"MEGABUCKS.":?"Written by Andrew Eckert":?"(C) Eckwell Inc.  1986":?
  288. 11240 ?:?"Eckwell Software is available for the Àmiga, the Apple II, and IBM computers at no cost or for a minor fee depending on the program."
  289. 11250 ?"Please write us with questions or for software lists at:":?
  290. 11260 ?"Eckwell Inc.":?"C/O Andrew Eckert":?"711 Berkshire Rd.":?"Grosse Pointe Park, MI":?"48230":?
  291. 11270 ?"PS - If requesting lists, please include the computer you'd like them for."
  292. 11280 ? AT (1,22);"[Hit any key to exit] ";: GETKEY A$: RETURN
  293.