home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk053 / oregon.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  19.1 KB  |  533 lines

  1. 1   REM
  2. 2   REM
  3. 3   REM
  4. 4   REM   
  5. 5   REM 
  6. 6   REM   
  7. 7   REM   
  8. 8   REM     
  9. 9   REM   
  10. 10   REM  
  11. 11   REM        
  12. 12   REM  ************************
  13. 13   REM  *                      *
  14. 14   REM  *  SAN MATEO COUNTY    *
  15. 15   REM  * OFFICE OF EDUCATION  *
  16. 16   REM  *                      *
  17. 17   REM  COMPUTER-USING EDUCATORS
  18. 18   REM  *                      *
  19. 19   REM  *       SOFTSWAP       *
  20. 20   REM  *                      *
  21. 21   REM  *   333 MAIN STREET    *
  22. 22   REM  *     REDWOOD CITY     *
  23. 23   REM  *       CA 94063       *
  24. 24   REM  *(415)364-5600 EX 4401 * 
  25. 25   REM  *                      *
  26. 26   REM  ************************
  27. 27   REM  *
  28. 28   REM  *
  29. 29   REM  ************************
  30. 30   REM  * PROGRAM MAY BE COPIED*
  31. 31   REM  * FOR EDUCATIONAL USE &*
  32. 32   REM  * MAY NOT BE SOLD.COPY-*
  33. 33   REM  * RIGHT 1981 CUE,INC   *
  34. 34   REM  ************************
  35. 40   REM  REWRITTEN FOR APPLE BY TOM BEAL
  36. 50   REM  AND TIM IVERSON,STUDENTS OF
  37. 60   REM  BOWDITCH MIDDLE SCHOOL,FOSTER
  38. 70   REM  CITY, MAY/1979
  39. 80   REM  FOR FULL DOCUMENTATION,SEE
  40. 90   REM  ORIGINAL ARTICLE
  41. 100   SCREEN 0:WIDTH 40:CLS
  42. 105   PRINT "          *********************"
  43. 110   PRINT "          *                   *"
  44. 115   PRINT "          *    O R E G O N    *"
  45. 120   PRINT "          *                   *"
  46. 125   PRINT "          *     T R A I L     *"
  47. 130   PRINT "          *                   *"
  48. 135   PRINT "          *********************"
  49. 140  PRINT
  50. 159  CLEAR 1000: DIM C$(5)
  51. 160   PRINT "DO YOU NEED INSTRUCTIONS (Y/N) ";
  52. 165   C$=INKEY$ : IF C$ = "" THEN 165
  53. 170   IF C$ = "N"OR C$="n" THEN 690
  54. 175  IF C$<>"Y"AND C$<>"y" THEN 165
  55. 200   IF C$ = "N" THEN 690
  56. 210  PRINT
  57. 215   CLS 
  58. 220   PRINT 
  59. 230   REM *INSTRUCTIONS*******
  60. 240   PRINT "THIS PROGRAM SIMULATES A TRIP OVER THE  OREGON TRAIL FROM INDEPENDENCE, MISSOURI";
  61. 250   PRINT "TO OREGON CITY, OREGON IN 1847."
  62. 260   PRINT "YOUR FAMILY WILL COVER THE 2040 MILE    OREGON TRAIL IN 5-6 MONTHS---IF YOU MAKEIT ALIVE!"
  63. 280   PRINT 
  64. 290   PRINT "YOU HAVE SAVED $900 TO SPEND FOR THE    TRIP, AND YOU'VE JUST PAID $200 FOR A   WAGON.":PRINT:PRINT:PRINT
  65. 310   PRINT "YOU WILL NEED TO SPEND THE REST OF YOUR MONEY ON THE FOLLOWING ITEMS-"
  66. 320  GOSUB 9000
  67. 334   CLS : LOCATE 2
  68. 340   PRINT "OXEN - YOU CAN SPEND $200-$300 ON YOUR         TEAM. THE MORE YOU SPEND, THE           FASTER YOU WILL GO BECAUSE"
  69. 360   PRINT "       YOU'LL HAVE BETTER ANIMALS."
  70. 370   PRINT 
  71. 380   PRINT "FOOD - THE MORE YOU HAVE THE LESS CHANCE       THERE IS OF GETTING SICK."
  72. 400   PRINT 
  73. 410   PRINT "AMMUNITION - $1 BUYS A BELT OF 50              BULLETS FOR ATTACKS BY ANIMALS          AND BANDITS, AND FOR HUNTING FOOD";
  74. 440   PRINT 
  75. 450   PRINT "CLOTHING - THIS IS ESPECIALLY IMPORTANT        FOR THE COLD WEATHER YOU WILL           ENCOUNTER WHEN CROSSING THE             MOUNTAINS."
  76. 480   PRINT 
  77. 490   PRINT "MISCELLANEOUS SUPPLIES - THIS INCLUDES         MEDICINE AND OTHER THINGS YOU           WILL NEED FOR SICKNESS AND              EMERGENCY REPAIRS."
  78. 520  GOSUB 9000
  79. 525   CLS : LOCATE 2
  80. 540   PRINT "   YOU CAN SPEND ALL YOUR MONEY BEFORE  YOU START YOUR TRIP - OR YOU CAN SAVE   SOME OF YOUR CASH TO SPEND AT FORTS     ALONG THE WAY WHEN YOU RUN LOW."
  81. 560   PRINT "   HOWEVER, ITEMS COST MORE AT THE      FORTS.  YOU CAN ALSO GO HUNTING ALONG   THE WAY TO GET MORE FOOD.  WHENEVER YOU HAVE TO USE YOUR TRUSTY RIFLE ALONG THE WAY, YOU WILL BE TOLD TO TYPE IN A WORD THAT SOUNDS LIKE A GUNSHOT."
  82. 610   PRINT "   THE FASTER YOU TYPE IN THE WORD AND  PRESS THE 'RETURN' KEY, THE BETTER THE  CHANCE YOU WILL HAVE OF HITTING YOUR    TARGET."
  83. 640   PRINT : PRINT "   AT EACH TURN, ALL ITEMS ARE SHOWN IN DOLLAR AMOUNTS, EXCEPT BULLETS.  WHEN   YOU ARE ASKED TO ENTER DOLLAR AMOUNTS,  DON'T USE A '$'."
  84. 660  GOSUB 9000
  85. 665   CLS : LOCATE 1
  86. 670   FOR D = 1 TO 24: PRINT  TAB( 15):  : PRINT "Good Luck": NEXT D: CLS
  87. 690   CLS : PRINT : PRINT 
  88. 710   PRINT "HOW GOOD OF A SHOT ARE YOU WITH YOUR    RIFLE? "
  89. 720   PRINT "     1 - ACE MARKSMAN"
  90. 721   PRINT "     2 - GOOD SHOT"
  91. 722   PRINT "     3 - FAIRLY FAIR"
  92. 723   PRINT "     4 - NEED PRACTICE"
  93. 724   PRINT "     5 - SHAKY KNEES"
  94. 730   PRINT : PRINT "ENTER ONE OF THE ABOVE -- THE BETTER YOUCLAIM YOU ARE, THE FASTER YOU'LL HAVE TOBE WITH YOUR GUN TO BE SUCCESSFUL. ";
  95. 735   D9$=INKEY$: IF D9$ = "" THEN 735
  96. 740   IF  VAL (D9$) < 1 OR  VAL (D9$) > 5 THEN 735
  97. 742  D9 =  VAL (D9$)
  98. 771  D9 =  INT (D9)
  99. 780   GOTO 810
  100. 800   REM  *** PURCHASES ***
  101. 810  X1 =  - 1
  102. 820  K8 = 0:S4 = 0:F1 = 0:F2 = 0:M = 0:M9 = 0:D3 = 0
  103. 830   PRINT : PRINT 
  104. 850  CLS:LOCATE 12:INPUT "HOW MUCH DO YOU WANT TO SPEND ON YOUR   OXEN TEAM (200-300)? ";A$
  105. 851   IF  VAL (A$) = 0 OR  VAL (A$) < 200 OR  VAL (A$) > 300 THEN  PRINT "NOT POSSIBLE!!":GOSUB 9000: GOTO 850
  106. 859  A =  INT ( VAL (A$)): GOTO 865
  107. 860  CLS:ZZ$= "YOU HAVE"+STR$(700 - A - F - B - C - M1)+" DOLLARS LEFT":LOCATE 12,(20-(LEN(ZZ$)/2)):PRINT ZZ$:GOSUB 9000
  108. 861   RETURN 
  109. 865   GOSUB 860
  110. 930   PRINT :CLS:LOCATE 12: INPUT "HOW MUCH DO YOU WANT TO SPEND ON FOOD ";F$
  111. 940   IF  VAL (F$) > 0 AND  VAL (F$) <  = (700 - A - B -  VAL (F$) - C - M1) THEN 960
  112. 950   ZZ$="IMPOSSIBLE":LOCATE 15,(20-(LEN(ZZ$)/2)):PRINT ZZ$:GOSUB 9000: GOTO 930
  113. 960  F =  INT ( VAL (F$)): GOSUB 860
  114. 980   PRINT :CLS:LOCATE 12 : INPUT "HOW MUCH DO YOU WANT TO SPEND ON        AMMUNITION ($1 BUYS 50 BULLETS)?        ";B$
  115. 985   IF  VAL (B$) > 0 AND  VAL (B$) <  = (700 - A - F -  VAL (B$) - C - M1) THEN 1020
  116. 1010   ZZ$="IMPOSSIBLE":LOCATE 15,(20-LEN(ZZ$)/2):PRINT ZZ$:GOSUB 9000: GOTO 980
  117. 1020  B =  INT ( VAL (B$)): GOSUB 860
  118. 1030   PRINT :CLS:LOCATE 12: INPUT " HOW MUCH DO YOU WANT TO SPEND ON        CLOTHING? ";C$
  119. 1040   IF  VAL (C$) > 0 AND  VAL (C$) <  = (700 - A - F -  VAL (C$) - B - M1) THEN 1070
  120. 1060   ZZ$="IMPOSSIBLE":LOCATE 15,(20-(LEN(ZZ$)/2)):PRINT ZZ$:GOSUB 9000: GOTO 1030
  121. 1070  C =  VAL (C$): GOSUB 860
  122. 1080   PRINT :CLS:LOCATE 12: INPUT " HOW MUCH DO YOU WANT TO SPEND ON        MISCELLANEOUS SUPPLIES? ";M1$
  123. 1090   IF  VAL (M1$) < 0 THEN 1110
  124. 1095  M1 =  INT ( VAL (M1$))
  125. 1100   IF  VAL (M1$) >  = 0 AND  VAL (M1$) <  = (700 - A - F -  VAL (C$) - B - M1) THEN 1130
  126. 1110   ZZ$="IMPOSSIBLE":LOCATE 15,(20-(LEN(ZZ$)/2)):PRINT ZZ$:GOSUB 9000: GOTO 1080
  127. 1130  T = 700 - A - F - B - C - M1
  128. 1140   IF T >  = 0 THEN 1170
  129. 1145  A = 0:F = 0:B = 0:C = 0:M1 = 0
  130. 1150   PRINT "YOU OVER SPENT -- YOU ONLY HAD $700 TO  SPEND. BUY AGAIN": GOTO 830
  131. 1170  B = B * 50
  132. 1180   CLS : PRINT "AFTER ALL YOUR PURCHASES YOU NOW HAVE   ";T;" DOLLARS LEFT."
  133. 1190   PRINT : PRINT 
  134. 1200   PRINT "MONDAY, MARCH 29, 1847": PRINT 
  135. 1220   GOTO 1750
  136. 1230   IF M >  = 2040 THEN 5430
  137. 1240   REM  ***SETTING DATE***
  138. 1250  D3 = D3 + 1
  139. 1270   PRINT : PRINT "MONDAY ";
  140. 1280   IF D3 >  = 10 THEN 1300
  141. 1290   ON D3 GOTO 1310,1330,1350,1370,1390,1410,1430,1450,1470,1490
  142. 1300   ON D3 - 10 GOTO 1510,1530,1550,1570,1590,1610,1630,1650,1670,1690
  143. 1310   PRINT "APRIL 12 ";: GOTO 1720
  144. 1330   PRINT "APRIL 26 ";: GOTO 1720
  145. 1350   PRINT "MAY 10 ";: GOTO 1720
  146. 1370   PRINT "MAY 24 ";: GOTO 1720
  147. 1390   PRINT "JUNE 7 ";: GOTO 1720
  148. 1410   PRINT "JUNE 21 ";: GOTO 1720
  149. 1430   PRINT "JULY 5 ";: GOTO 1720
  150. 1450   PRINT "JULY 19 ";: GOTO 1720
  151. 1470   PRINT "AUGUST 2 ";: GOTO 1720
  152. 1490   PRINT "AUGUST 16 ";: GOTO 1720
  153. 1510   PRINT "AUGUST 31 ";: GOTO 1720
  154. 1530   PRINT "SEPTEMBER 13 ";: GOTO 1720
  155. 1550   PRINT "SEPTEMBER 27 ";: GOTO 1720
  156. 1570   PRINT "OCTOBER 11 ";: GOTO 1720
  157. 1590   PRINT "OCTOBER 25 ";: GOTO 1720
  158. 1610   PRINT "NOVEMBER 8 ";: GOTO 1720
  159. 1630   PRINT "NOVEMBER 22 ";: GOTO 1720
  160. 1650   PRINT "DECEMBER 20 ";: GOTO 1720
  161. 1690   PRINT "YOU HAVE BEEN ON THE TRAIL TOO LONG.    ---- YOUR FAMILY DIES IN THE FIRST      BLIZZARD OF THE WINTER.": GOTO 5170
  162. 1720   PRINT "1847"
  163. 1750   IF F >  = 0 THEN 1770
  164. 1760  F = 0
  165. 1770   IF B >  = 0 THEN 1790
  166. 1780  B = 0
  167. 1790   IF C >  = 0 THEN 1810
  168. 1800  C = 0
  169. 1810   IF M1 >  = 0 THEN 1830
  170. 1820  M1 = 0
  171. 1830   IF F >  = 13 THEN 1850
  172. 1840   PRINT "YOU'D BETTER DO SOME HUNTING OR BUY     FOOD, AND SOON!"
  173. 1850  F =  INT (F):B =  INT (B):C =  INT (C):M1 =  INT (M1):T =  INT (T):M =  INT (M):M2 = M
  174. 1920   IF S4 = 1 THEN 1950
  175. 1930   IF K8 = 1 THEN 1950
  176. 1940   GOTO 1990
  177. 1950  T = T - 20: IF T <  =  - 1 THEN 5080
  178. 1970   PRINT "THE DOCTOR BILL WAS $20"
  179. 1980  K8 = 0:S4 = 0
  180. 1990   IF M9 = 1 THEN 2020
  181. 2000   PRINT "TOTAL MILEAGE IS ";M;" WITH ";2040 - M;" TO GO": GOTO 2040
  182. 2020   PRINT "TOTAL MILEAGE IS 950 WITH 1090 TO GO":M9 = 0
  183. 2040   PRINT : PRINT "FOOD","BULLETS","CLOTHING": PRINT "----","-------","--------": PRINT F,B,C: PRINT : PRINT "----------------------------------------": PRINT "MISC. SUPP.","CASH": PRINT "-----------","----": PRINT M1,T: PRINT : PRINT 
  184. 2050  GOSUB 9000
  185. 2052   PRINT 
  186. 2060   IF X1 =  - 1 THEN 2170
  187. 2070  X1 = X1 * ( - 1)
  188. 2080   LOCATE 20   : PRINT "DO YOU WANT TO:                         1 - STOP AT NEXT FORT                   2 - HUNT                                3 - CONTINUE"
  189. 2085  DEF SEG=0:POKE 1050,PEEK(1052)
  190. 2090  X$=INKEY$: IF  VAL (X$) < 1 OR  VAL (X$) > 3 THEN 2090
  191. 2100  X =  VAL (X$)
  192. 2130  X =  INT (X): GOTO 2270
  193. 2150  X = 3: GOTO 2270
  194. 2170  LOCATE 20   : PRINT "DO YOU WANT TO:                         1 - HUNT                                2 - CONTINUE"
  195. 2175  DEF SEG=0:POKE 1050,PEEK(1052)
  196. 2180   X$=INKEY$: IF  VAL (X$) < 1 OR  VAL (X$) > 2 THEN 2180
  197. 2185  X =  VAL (X$)
  198. 2190   IF X = 1 THEN 2210
  199. 2200  X = 2
  200. 2210  X = X + 1
  201. 2220   IF X = 3 THEN 2260
  202. 2230   IF B > 39 THEN 2260
  203. 2240   PRINT : PRINT "TOUGH --- YOU NEED MORE BULLETS TO GO             HUNTING."
  204. 2250   GOTO 2170
  205. 2260  X1 = X1 * ( - 1)
  206. 2270   ON X GOTO 2290,2540,2720
  207. 2280   REM  *** STOPPING AT FORT***
  208. 2290  CLS:LOCATE 1:  PRINT "ENTER WHAT YOU WISH TO SPEND ON THE     FOLLOWING                                                                       FOOD ";
  209. 2310   GOSUB 2330
  210. 2320   GOTO 2410
  211. 2330   INPUT P: IF P < 0 THEN 2400
  212. 2350  T = T - P
  213. 2360   IF T >  = 0 THEN 2400
  214. 2370   PRINT "YOU DO NOT HAVE THAT MUCH MONEY --- KEEPYOUR SPENDING DOWN, YOU MISS YOUR CHANCE TO BUY THAT ITEM"
  215. 2380  T = T + P
  216. 2390  P = 0
  217. 2400   RETURN 
  218. 2410  F = F + 2 / 3 * P
  219. 2420   PRINT "AMMUNITION";
  220. 2430   GOSUB 2330
  221. 2440  B =  INT (B + 2 / 3 * P * 50)
  222. 2450   PRINT "CLOTHING ";
  223. 2460   GOSUB 2330
  224. 2470  C = C + 2 / 3 * P
  225. 2480   PRINT "MISCELLANEOUS SUPPLIES ";
  226. 2490   GOSUB 2330
  227. 2500  M1 = M1 + 2 / 3 * P
  228. 2510  M = M - 45
  229. 2520   GOTO 2720
  230. 2530   REM  *** HUNTING ***
  231. 2540   IF B > 39 THEN 2570
  232. 2550   PRINT "TOUGH --- YOU NEED MORE BULLETS TO GO             HUNTING"
  233. 2560   GOTO 2080
  234. 2570  M = M - 45
  235. 2580   GOSUB 6140
  236. 2590   IF B1 <  = 5 THEN 2660
  237. 2600   IF  RND (1) * 100 < 13 * B1 THEN 2710
  238. 2610  F = F + 48 - 2 * B1
  239. 2620   PRINT "NICE SHOT -- RIGHT ON TARGET -- GOOD                 EATIN' TONIGHT!"
  240. 2630  B = B - 10 - 3 * B1
  241. 2640   GOTO 2720
  242. 2650   REM  *** BELLS IN LINE 2660 ***
  243. 2660   PRINT "Right between the eyes -- you got a big one -- full bellies tonight"
  244. 2680  F = F + 52 +  RND (1) * 6
  245. 2690  B = B - 10 -  RND (1) * 4
  246. 2700   GOTO 2720
  247. 2710   PRINT "YOU MISSED --- AND YOUR DINNER GOT AWAY."
  248. 2720   IF F >  = 13 THEN 2750
  249. 2730   GOTO 5060
  250. 2740   REM  *** EATING ***
  251. 2750  LOCATE 20   : PRINT "DO YOU WANT TO EAT                      1 - POORLY                              2 - MODERATELY                          3 - WELL            "
  252. 2760   E$=INKEY$: IF  VAL (E$) < 1 OR  VAL (E$) > 3 THEN 2760
  253. 2780  E =  VAL (E$)
  254. 2800  E =  INT (E)
  255. 2810  F = F - (8 + 5 * E)
  256. 2820   IF F >  = 0 THEN 2860
  257. 2830  F = F + (8 + 5 * E)
  258. 2840  CLS:LOCATE 12: PRINT "YOU CAN'T EAT THAT WELL":GOSUB 9000: GOTO 2750
  259. 2860  M = M + 200 + (A - 220) / 5 +  INT ( RND (1) * 10)
  260. 2870  L1 = 0:C1 = 0
  261. 2880   REM  *** RIDERS ATTACK ***
  262. 2890  CLS:LOCATE 1:  IF  RND (1) * 10 > ((M / 100) ^ 2 + 72) / ((M / 100 - 4) ^ 2 + 12) - 1 THEN 3551
  263. 2900   PRINT "RIDERS AHEAD. THEY ";
  264. 2910  S5 = 0
  265. 2920   IF  RND (1) < 0.8 THEN 2940
  266. 2930   PRINT "DON'T ";:S5=1
  267. 2940   PRINT "LOOK HOSTILE": PRINT : PRINT "TACTICS": PRINT "-------": PRINT "1 - RUN                                 2 - ATTACK                              3 - CONTINUE                            4 - CIRCLE WAGONS": IF  RND (1) > 0.2 THEN 
  268. 2990  REM
  269. 3000   T1$=INKEY$: IF  VAL (T1$) < 1 OR  VAL (T1$) > 4 THEN 3000
  270. 3002  T1 =  VAL (T1$)
  271. 3010   IF T1 < 1 THEN T1 = 1
  272. 3020   IF T1 > 4 THEN T1 = 4
  273. 3030  T1 =  INT (T1)
  274. 3040   IF S5 = 1 THEN 3330
  275. 3050   IF T1 > 1 THEN 3110
  276. 3060  M = M + 20:M1 = M1 - 15:B = B - 150:A = A - 40: GOTO 3470
  277. 3110   IF T1 > 2 THEN 3240
  278. 3120   GOSUB 6140
  279. 3130  B = B - B1 * 40 - 80
  280. 3140   IF B1 >   5 THEN 3170
  281. 3150   PRINT "NICE SHOOTING -- YOU DROVE THEM OFF!": GOTO 3470
  282. 3170   IF B1 <  = 4 THEN 3220
  283. 3180   PRINT : PRINT "LOUSY SHOT -- YOU GOT KNIFED":K8 = 1: PRINT : PRINT "YOU'LL HAVE TO GO SEE OL' DOC BLANCHARD": GOTO 3470
  284. 3220   PRINT : PRINT "KINDA SLOW WITH YOUR COLT .44": GOTO 3470
  285. 3240   IF T1 > 3 THEN 3290
  286. 3250   IF  RND (1) > 0.8 THEN 3450
  287. 3260  B = B - 150:M1 = M1 - 15: GOTO 3470
  288. 3290   GOSUB 6140
  289. 3300  B = B - B1 * 30 - 80:M = M - 25: GOTO 3140
  290. 3330   IF T1 > 1 THEN 3370
  291. 3340  M = M + 15:A = A - 10: GOTO 3470
  292. 3370   IF T1 > 2 THEN 3410
  293. 3380  B = B - 100:M = M - 5: GOTO 3470
  294. 3410   IF T1 > 3 THEN 3430
  295. 3420   GOTO 3470
  296. 3430  M = M - 20
  297. 3440   GOTO 3470
  298. 3450   PRINT "THEY DID NOT ATTACK!"
  299. 3460   GOTO 3550
  300. 3470   IF S5 = 0 THEN 3500
  301. 3480   PRINT "THE RIDERS WERE FRIENDLY, BUT CHECK FOR POSSIBLE LOSSES.": GOTO 3550
  302. 3500   PRINT "THE RIDERS WERE HOSTILE -- CHECK FOR    LOSSES!"
  303. 3510   IF B >  = 0 THEN 3550
  304. 3520   PRINT "YOU RAN OUT OF BULLETS AND GOT MASSACREDBY THE RIDERS": GOTO 5170
  305. 3540   REM  ***SELECTION OF EVENTS*** 
  306. 3550  GOSUB 9000
  307. 3551  REM
  308. 3554  D1 = 0
  309. 3555   CLS 
  310. 3560   RESTORE 
  311. 3570  R1 = 100 *  RND (1)
  312. 3580  D1 = D1 + 1
  313. 3590   IF D1 = 16 THEN 4670
  314. 3600   READ D
  315. 3610   IF R1 > D THEN 3580
  316. 3620   DATA  6,11,13,15,17,22,32,35,37,42,44,54,64,69,95
  317. 3630   IF D1 > 10 THEN 3650
  318. 3640   ON D1 GOTO 3660,3700,3740,3790,3820,3850,3880,3960,4130,4190
  319. 3650   ON D1 - 10 GOTO 4220,4290,4340,4560,4610,4670
  320. 3660   PRINT "WAGON BREAKS DOWN -- LOSE TIME AND      SUPPLIES FIXING IT."
  321. 3670  M = M - 15 - 5 *  RND (1)
  322. 3680  M1 = M1 - 8
  323. 3690   GOTO 4710
  324. 3700   PRINT "OX HURTS ITS LEG --- SLOWS YOU DOWN RESTOF WAY."
  325. 3710  M = M - 25:A = A - 20
  326. 3730   GOTO 4710
  327. 3740   PRINT "BAD LUCK --- YOUR DAUGHTER BROKE HER    ARM. YOU HAD TO STOP AND USE SUPPLIES TOMAKE A SLING."
  328. 3760  M = M - 5 - 4 *  RND (1)
  329. 3770  M1 = M1 - 2 - 3 *  RND (1)
  330. 3780   GOTO 4710
  331. 3790   PRINT "OX WANDERS OFF --- SPEND TIME LOOKING   FOR IT.":M = M - 17: GOTO 4710
  332. 3820   PRINT "YOUR SON GETS LOST --- SPEND HALF THE   DAY LOOKING FOR HIM.":M = M - 10: GOTO 4710
  333. 3850   PRINT "UNSAFE WATER -- LOSE TIME LOOKING FOR   CLEAN SPRING.":M = M - 10 *  RND (1) - 2: GOTO 4710
  334. 3880   IF M > 950 THEN 4490
  335. 3890   PRINT "HEAVY RAINS -- TIME AND SUPPLIES LOST.":F = F - 10:B = B - 500:M1 = M1 - 15:M = M - 10 *  RND (1) - 5: GOTO 4710
  336. 3960  CLS:LOCATE 1: PRINT "BANDITS ARE ATTACKING !": GOSUB 6140
  337. 3980  B = B - 20 * B1
  338. 3990   IF B >  = 0 THEN 4030
  339. 4000   PRINT "YOU RAN OUT OF BULLETS AND THEY GOT A   LOT OF YOUR CASH.  YOU NOW HAVE $"; INT (T / 3 * 100) / 100
  340. 4010  T =  INT (T / 3 * 100) / 100
  341. 4020   GOTO 4040
  342. 4030   IF B1 <  = 1.5 THEN 4100
  343. 4040   PRINT "YOU GOT SHOT IN THE LEG --- AND THEY    TOOK ONE OF YOUR OXEN.":K8 = K8 - 1
  344. 4060   PRINT "BETTER HAVE DOC LOOK AT YOUR WOUND.":M1 = M1 - 5:A = A - 20: GOTO 4710
  345. 4100   PRINT "QUICKEST DRAW OUTSIDE OF DODGE CITY!!!  ---  YOU GOT 'EM!!": GOTO 4710
  346. 4130   PRINT "THERE WAS A FIRE IN YOUR WAGON -- FOOD  AND SUPPLIES DAMAGED .":F = F - 40:B = B - 400:M1 = M1 -  RND (1) * 8 - 3:M = M - 15: GOTO 4710
  347. 4190   PRINT "LOSE YOUR WAY IN HEAVY FOG --- TIME IS  LOST.":M = M - 10 - 5 *  RND (1): GOTO 4710
  348. 4220   PRINT "YOU KILLED A RATTLE SNAKE AFTER IT BIT  YOU":B = B - 10:M1 = M1 - 5: IF M1 >  = 0 THEN 4280
  349. 4260   PRINT"YOU DIE OF SNAKE-BITE SINCE YOU HAVE NO MEDICINE.": GOTO 5170
  350. 4280   GOTO 4710
  351. 4290   PRINT "WAGON GETS SWAMPED FORDING RIVER -- LOSEFOOD AND CLOTHES.":F = F - 30:C = C - 20:M = M - 20 - 20 *  RND (1): GOTO 4710
  352. 4340   PRINT "WILD ANIMALS ARE ATTACKING!!! ": GOSUB 6140
  353. 4360   IF B > 39 THEN 4410
  354. 4370   PRINT "YOU WERE TOO LOW ON BULLETS -- THE      WOLVES OVERPOWERED YOU...":K8 = 1: GOTO 5120
  355. 4410   IF B1 > 2 THEN 4440
  356. 4420   PRINT "NICE SHOOTING --- THEY DIDN'T GET MUCH": GOTO 4450
  357. 4440   PRINT "SLOW ON THE DRAW --- THEY GOT AT YOUR   FOOD AND CLOTHES"
  358. 4450  B = B - 20 * B1
  359. 4460  C = C - B1 * 4
  360. 4470  F = F - B1 * 8
  361. 4480   GOTO 4710
  362. 4490   PRINT "COLD WEATHER --- BRRRRRRR! --- YOU ";
  363. 4500   IF C > 22 + 4 *  RND (1) THEN 4530
  364. 4510   PRINT "DON'T ";
  365. 4520  C1 = 1
  366. 4530   PRINT "HAVE ENOUGH CLOTHING TO KEEP YOU WARM.": IF C1 = 0 THEN 4710
  367. 4550   GOTO 6300
  368. 4560   PRINT "HAIL STORM --- SUPPLIES DAMAGED.":M = M - 5 -  RND (1) * 10
  369. 4580  B = B - 200:M1 = M1 - 4 -  RND (1) * 3
  370. 4600   GOTO 4710
  371. 4610   IF E = 1 THEN 6300
  372. 4620   IF E = 3 THEN 4650
  373. 4630   IF  RND (1) > 0.25 THEN 6300
  374. 4640   GOTO 4710
  375. 4650   IF  RND (1) < 0.5 THEN 6300
  376. 4660   GOTO 4710
  377. 4670   PRINT "HELPFUL INDIANS SHOW YOU WHERE TO FIND  MORE FOOD.":F = F + 14: GOTO 4710
  378. 4700   REM  ***MOUNTAINS*** 
  379. 4710   IF M <  = 950 THEN 1230
  380. 4720   IF  RND (1) * 10 > 9 - ((M / 100 - 15) ^ 2 + 12) THEN 4860
  381. 4730   PRINT "RUGGED MOUNTAINS!!": IF  RND (1) > 0.11 THEN 4780
  382. 4750   PRINT "YOU GET LOST --- LOSE TIME LOOKING FOR  TRAIL.":M = M - 60: GOTO 4860
  383. 4780   IF  RND (1) > 0.11 THEN 4840
  384. 4790   PRINT "WAGON DAMAGED! -- LOSE TIME AND SUPPLIES.":M1 = M1 - 5:B = B - 200:M = M - 20 - 30 *  RND (1): GOTO 4860
  385. 4840   PRINT "THE GOING GETS SLOW":M = M - 45 -  RND (1) / 0.2: IF F1 = 1 THEN 4900
  386. 4860   IF F1 = 1 THEN 4900
  387. 4870  F1 = 1: IF  RND (1) < 0.8 THEN 4970
  388. 4890   PRINT "YOU MADE IT THROUGH THE SOUTH PASS ---  (THERE WAS NO SNOW)."
  389. 4900   IF M < 1700 THEN 4940
  390. 4910   IF F2 = 1 THEN 4940
  391. 4920  F2 = 1
  392. 4930   IF  RND (1) < 0.7 THEN 4970
  393. 4940   IF M > 950 THEN 1230
  394. 4950  M9 = 1: GOTO 1230
  395. 4970   PRINT "BLIZZARD IN MOUNTAIN PASS -- LOSE TIME  AND SUPPLIES.":L1 = 1:F = F - 25:M1 = M1 - 10:B = B - 300:M = M - 30 - 40 *  RND (1)
  396. 5030   IF C < 18 + 2 *  RND (1) THEN 6300
  397. 5040   GOTO 4940
  398. 5050  CLA:LOCATE 1:REM dying
  399. 5060   CLS:LOCATE 1:PRINT "YOU RAN OUT OF FOOD AND STARVED TO      DEATH.": GOTO 5170
  400. 5080  T = 0
  401. 5090  CLS:LOCATE 1:  PRINT "YOU CAN'T AFFORD A DOCTOR.": GOTO 5120
  402. 5110   PRINT "YOU RAN OUT OF MEDICAL SUPPLIES."
  403. 5120   PRINT "YOU DIED OF ";
  404. 5130   IF K8 = 1 THEN 5160
  405. 5140   PRINT "PNEUMONIA.": GOTO 5170
  406. 5160   PRINT "INJURIES.": PRINT
  407. 5170   PRINT
  408. 5180   PRINT "DUE TO YOUR UNFORTUNATE SITUATION, THEREARE A FEW FORMALITIES WE MUST GO        THROUGH:"
  409. 5210   PRINT "WOULD YOU LIKE A MINISTER? (Y/N)";
  410. 5212   C$=INKEY$: IF C$="y" OR C$ = "Y" THEN  PRINT : GOTO 5230
  411. 5213   IF C$ <  > "N" AND C$<>"n" THEN 5212
  412. 5214   PRINT 
  413. 5230   PRINT : PRINT "WOULD YOU LIKE A FANCY FUNERAL? (Y/N)";
  414. 5231   C$=INKEY$: IF C$="y" OR C$ = "Y" THEN  PRINT : GOTO 5250
  415. 5232   IF C$<>"n" AND C$ <  > "N" THEN 5231
  416. 5250   PRINT : PRINT "WOULD YOU LIKE US TO INFORM YOUR NEXT OFKIN? (Y/N) ";
  417. 5252   C$=INKEY$: IF C$="y" OR C$= "Y" THEN  PRINT : GOTO 5310
  418. 5253   IF C$ <  > "N" AND C$<>"n"  THEN 5252
  419. 5254   PRINT
  420. 5270   IF C$ = "Y" OR C$="y" THEN 5310
  421. 5280   PRINT : PRINT : PRINT "BUT, YOUR AUNT SADIE IN SAINT LOUIS IS  REALY WORRIED ABOUT YOU!!!!!!": PRINT :GOSUB 9000:CLS:LOCATE 1: GOTO 5330
  422. 5310   PRINT "THAT WILL BE $4.50 FOR THE TELEGRAPH    CHARGE ": PRINT:GOSUB 9000:CLS:LOCATE 1
  423. 5330   PRINT "WE THANK YOU FOR THIS INFORMATION AND WE ARE SORRY YOU DIDN'T MAKE IT TO THE     GREAT TERRITORY OF OREGON. BETTER LUCK  NEXT TIME.": PRINT : PRINT 
  424. 5380   PRINT  TAB( 15): PRINT "SINCERELY,"
  425. 5400   PRINT : PRINT  TAB( 2): PRINT "THE OREGON CITY CHAMBER OF COMMERCE"
  426. 5410  GOSUB 9000 :GOTO 6700: REM  END
  427. 5420   REM   *** FINAL TURN ***
  428. 5430  F9 = (2040 - M2) / (M - M2)
  429. 5440  F = F + (1 - F9) * (8 + 5 * E)
  430. 5450   PRINT 
  431. 5460  REM
  432. 5469   CLS : PRINT : PRINT 
  433. 5470   PRINT "You finally arrived at Oregon City"
  434. 5480   PRINT "After 2040 long miles --- hooray !!!!!"
  435. 5490   PRINT : PRINT : PRINT "A real pioneer !!!!!"
  436. 5500   PRINT 
  437. 5510  F9 =  INT (F9 * 14)
  438. 5520  D3 = D3 * 14 + F9
  439. 5530  F9 = F9 + 1
  440. 5540   IF F9 < 8 THEN 5560
  441. 5550  F9 = F9 - 7
  442. 5560  GOSUB 9000
  443. 5561  CLS:LOCATE 1:GOTO 5662
  444. 5570   PRINT "MONDAY ";: GOTO 5700
  445. 5590   PRINT "TUESDAY ";: GOTO 5700
  446. 5610   PRINT "WEDNESDAY ";: GOTO 5700
  447. 5630   PRINT "THURSDAY ";: GOTO 5700
  448. 5650   PRINT "FRIDAY ";: GOTO 5700
  449. 5662   CLS : ON F9 GOTO 5570,5590,5610,5630,5650,5670,5690
  450. 5670   PRINT "SATURDAY ";: GOTO 5700
  451. 5690   PRINT "SUNDAY ";: GOTO 5700
  452. 5700   IF D3 > 124 THEN 5740
  453. 5710  D3 = D3 - 93
  454. 5720   PRINT "JULY ";D3;" 1847": GOTO 5920
  455. 5740   IF D3 > 155 THEN 5780
  456. 5750  D3 = D3 - 124
  457. 5760   PRINT "AUGUST ";D3;" 1847": GOTO 5920
  458. 5780   IF D3 > 185 THEN 5820
  459. 5790  D3 = D3 - 155
  460. 5800   PRINT "SEPTEMBER ";D3;" 1847": GOTO 5920
  461. 5820   IF D3 > 216 THEN 5860
  462. 5830  D3 = D3 - 185
  463. 5840   PRINT "OCTOBER ";D3;" 1847": GOTO 5920
  464. 5860   IF D3 > 246 THEN 5900
  465. 5870  D3 = D3 - 216
  466. 5880   PRINT "NOVEMBER ";D3;" 1847": GOTO 5920
  467. 5900  D3 = D3 - 246
  468. 5910   PRINT "DECEMBER ";D3;" 1847": PRINT 
  469. 5920   PRINT 
  470. 5930   PRINT "FOOD","BULLETS","CLOTHING": PRINT "----","-------","--------": PRINT  INT (F), INT (B), INT (C): PRINT "---------------------------------------": PRINT "MISC. SUPP.","CASH": PRINT "-----------","----": PRINT : PRINT M1,T
  471. 6050   PRINT : PRINT  TAB( 5): PRINT "PRESIDENT JAMES K. POLK SENDS YOU       HIS HEARTIEST CONGRATULATIONS"
  472. 6090   PRINT : PRINT "AND WISHES YOU A PROSPEROUS LIFE AHEAD  AT YOUR NEW HOME"
  473. 6120  GOSUB 9000:CLS: GOTO 6700
  474. 6139  REM
  475. 6140  CLS:LOCATE 1: REM  *** START OF SHOOTING SUBROUTINE ***
  476. 6141   PRINT "PRESS <RETURN> TO START SHOOTING.";
  477. 6142   C$=INKEY$: IF  C$ <  > CHR$(13) THEN 6142
  478. 6148   PRINT 
  479. 6150  S$(1) = "BANG"
  480. 6160  S$(2) = "BLAM"
  481. 6170  S$(3) = "POW"
  482. 6180  S$(4) = "WHAM"
  483. 6190  S =  INT ( RND (1) * 4 + 1)
  484. 6205  PRINT"TO SHOOT TYPE "; S$(S)
  485. 6210  TIME$="0": V=VAL(RIGHT$(TIME$,2)):INPUT S$:V1=VAL(RIGHT$(TIME$,2)):B1=V1-V
  486. 6230  GOSUB 8000 :IF S$<>S$(S) THEN PRINT"Try again.":GOTO 6210
  487. 6280  GOSUB 8000: CLS:LOCATE 1:RETURN
  488. 6300  IF 100 * RND(1) < 10 + 35 * (E-1) THEN 6370
  489. 6310  IF 100 * RND(1) <100 - (40/4 ^(E-1)) THEN 6410
  490. 6320  PRINT "SERIOUS ILLNESS ---"
  491. 6330  PRINT "YOU MUST STOP FOR MEDICAL ATTENTION"
  492. 6370  PRINT "MILD ILLNESS --- YOUR MEDICINE CURED YOU": M=M-5::M1=M1-2
  493. 6400  GOTO 6440
  494. 6410  PRINT "BAD ILLNESS --- YOU USED YOUR MEDICINE":M = M - 5 : M1 = M1 - 2
  495. 6440  IF M1 < 0 THEN 5110
  496. 6450  IF L1 = 1 THEN 4940
  497. 6460  GOTO 4940
  498. 6700  REM
  499. 6705  REM
  500. 6710  CLS : LOCATE 10 : PRINT "ARE THERE ANY MORE PIONEERS WAITING TO  MAKE THE JOURNEY? (Y/N) "
  501. 6715  IN$=INKEY$:IF IN$ <> "Y" AND IN$ <> "N" AND IN$<>"y" AND IN$<>"n"THEN 6715
  502. 6720  IF IN$ = "Y" OR IN$="y" THEN 159
  503. 6730  CLS : LOCATE 10 : PRINT "GOOD BYE UNTIL THR NEXT WAGON TRAIN!": PRINT
  504. 6800  LOCATE 20,10: COLOR 14,0: PRINT "Loading menu...";: FOR I=1 TO 6: NEXT
  505. 6810  RUN"menu"
  506. 8000  REM
  507. 8005  SS$=""
  508. 8010  FOR II= 1 TO LEN(S$)
  509. 8020  AA$=MID$(S$,II,1)
  510. 8030  IF AA$<>"" THEN IF ASC(AA$)=>97 AND ASC(AA$)<=122 THEN SS$=SS$+CHR$(ASC(AA$)-32):GOTO 8050
  511. 8040  SS$=SS$+AA$
  512. 8050  NEXT II
  513. 8060  S$=SS$
  514. 8070  RETURN
  515. 9000  REM hold screen
  516. 9005  DEF SEG=0:POKE 1050,PEEK(1052)
  517. 9010  ZZ$="Press any key to continue"
  518. 9013  Z1$="                         "
  519. 9015  Z2$="Or press `ESC' to end program"
  520. 9016  Z3$="                             "
  521. 9020  LOCATE 22,(20-(LEN(ZZ$)/2))
  522. 9022  PRINT ZZ$
  523. 9025  LOCATE 23,(20-(LEN(Z2$)/2))
  524. 9030  PRINT Z2$;
  525. 9040  ZZ$=INKEY$:IF ZZ$="" THEN 9040
  526. 9050  Z1$="                         "
  527. 9055  IF ASC(ZZ$)=27 THEN RUN"menu"
  528. 9060  LOCATE 23,(20-(LEN(Z3$)/2))
  529. 9062  PRINT Z3$;
  530. 9065  LOCATE 22,(20-(LEN(Z1$)/2))
  531. 9070  PRINT Z1$;
  532. 9080  RETURN
  533.