100 REM PROGRAM NAME - OREGON----------------------------FOR THE MEANING OF THE VARIABLES USED, LIST LINES 7210-7560 ---------------------------- 110 GOTO 140 120 VTAB 24: PRINT " ";: WAIT - 16384,128: POKE - 16368,0 130 RETURN 140 TEXT : PRINT CHR$ (21): HOME 150 PRINT "PROGRAM NAME - OREGON VERSION:01/01/78": VTAB 2 160 PRINT "----------------------------------------": VTAB 3 170 PRINT " ORIGINALLY WRITTEN FOR" 180 PRINT " MINN. EDUCATIONAL COMPUTING CONSORTIUM" 190 PRINT " CDC CYBER 70/73-26 IN BASIC 3.1" 200 PRINT " AND PUBLISHED IN" 210 PRINT " CREATIVE COMPUTING MAY/JUNE 1978" 220 PRINT " VOL 4, NO 3, PAGES 132-139" 230 PRINT "----------------------------------------": VTAB 10 240 PRINT "ORIGINAL PROGRAMMING:" 250 PRINT " BILL HEINEMANN - 1971": VTAB 13 260 PRINT "SUPPORT RESEARCH AND MATERIALS:" 270 PRINT " DON RAVITSCH - MECC STAFF": VTAB 16 280 PRINT "CHIPMUNK BASIC PORT:" 290 PRINT " CHRISTOPHER PENDERSON - 2018": VTAB 19 300 PRINT "APPLESOFT BASIC PORT:" 310 PRINT " THEODORE THOMPSON - 2018" 320 VTAB 24: PRINT "DO YOU NEED INSTRUCTIONS (Y/N)"; 330 GET C$ 340 REM FOLLOWING LINE ACTS AS A 350 REM RANDOMIZE STATEMENT 360 X = RND ( - 1 * ( PEEK (78) + 256 * PEEK (79))) 370 IF C$ = "N" THEN HOME : GOTO 1060 380 IF NOT (C$ = "Y") THEN 330 390 HOME 400 REM ***INSTRUCTIONS*** 410 PRINT "THIS PROGRAM SIMULATES A TRIP OVER THE" 420 PRINT "OREGON TRAIL FROM INDEPENDENCE, MISSOURI": VTAB 3 430 PRINT "TO OREGON CITY, OREGON IN 1847." 440 PRINT 450 PRINT "YOUR FAMILY OF FIVE WILL COVER THE 2040" 460 PRINT "MILE OREGON TRAIL IN 5-6 MONTHS ---" 470 VTAB 11 480 PRINT "IF YOU MAKE IT ALIVE." 490 VTAB 17 500 PRINT "YOU HAD SAVED $900 TO SPEND FOR THE" 510 PRINT "TRIP, AND YOU'VE JUST PAID $200 FOR A" 520 PRINT "WAGON." 530 GOSUB 120: HOME 540 PRINT "YOU WILL NEED TO SPEND THE REST OF YOUR" 550 PRINT "MONEY ON THE FOLLOWING ITEMS:" 560 PRINT 570 PRINT " OXEN - YOU CAN SPEND $200-$300 ON" 580 PRINT " YOUR TEAM. THE MORE YOU" 590 PRINT " SPEND, THE FASTER YOU'LL GO": VTAB 7 600 PRINT " BECAUSE YOU'LL HAVE BETTER" 610 PRINT " ANIMALS." 620 PRINT 630 PRINT " FOOD - THE MORE YOU HAVE, THE LESS": VTAB 11 640 PRINT " CHANCE THERE IS OF GETTING" 650 PRINT " SICK." 660 PRINT 670 PRINT "AMMUNITION - $1 BUYS A BELT OF 50" 680 PRINT " BULLETS. YOU WILL NEED" 690 PRINT " BULLETS FOR ATTACKS BY" 700 PRINT " ANIMALS AND BANDITS, AND" 710 PRINT " FOR HUNTING FOOD." 720 GOSUB 120: HOME 730 PRINT " CLOTHING - THIS IS ESPECIALLY" 740 PRINT " IMPORTANT FOR THE COLD" 750 PRINT " WEATHER YOU WILL" 760 PRINT " ENCOUNTER WHEN CROSSING": VTAB 5 770 PRINT " THE MOUNTAINS." 780 PRINT 790 PRINT "MISC. SUPPLIES - THIS INCLUDES MEDICINE" 800 PRINT " AND OTHER THINGS YOU" 810 PRINT " WILL NEED FOR SICKNESS" 820 PRINT " AND EMERGENCY REPAIRS" 830 PRINT 840 PRINT "YOU CAN SPEND ALL YOUR MONEY BEFORE YOU" 850 PRINT "START YOUR TRIP - OR YOU CAN SAVE SOME" 860 PRINT "OF YOUR CASH TO SPEND AT FORTS ALONG THE": VTAB 15 870 PRINT "WAY WHEN YOU RUN LOW. HOWEVER, ITEMS" 880 PRINT "COST MORE AT THE FORTS. YOU CAN ALSO GO" 890 PRINT "HUNTING ALONG THE WAY TO GET MORE FOOD." 900 GOSUB 120: HOME 910 PRINT "WHENEVER YOU HAVE TO USE YOUR TRUSTY" 920 PRINT "RIFLE ALONG THE WAY, YOU WILL BE TOLD TO": VTAB 3 930 PRINT "TYPE IN A WORD (ONE THAT SOUNDS LIKE A" 940 PRINT "GUN SHOT). THE FASTER YOU TYPE IN THAT" 950 PRINT "WORD AND HIT THE "; CHR$ (34);"RETURN"; CHR$ (34);" KEY, THE" 960 PRINT "BETTER LUCK YOU'LL HAVE WITH YOUR GUN." 970 PRINT 980 PRINT "AT EACH TURN, ALL ITEMS ARE SHOWN IN " 990 PRINT "DOLLAR AMOUNTS EXCEPT BULLETS." 1000 PRINT 1010 PRINT "WHEN ASKED TO ENTER MONEY AMOUNTS, DON'T": VTAB 12 1020 PRINT "USE A "; CHR$ (34);"$"; CHR$ (34);"." 1030 PRINT 1040 PRINT "GOOD LUCK!!!" 1050 GOSUB 120: HOME 1060 REM **DIFFICULTY SETUP** 1070 PRINT "HOW GOOD A SHOT ARE YOU WITH YOUR RIFLE?": VTAB 3 1080 PRINT " (1) ACE MARKSMAN (2) GOOD SHOT " 1090 PRINT " (3) FAIR TO MIDDLIN' " 1100 PRINT " (4) NEED MORE PRACTICE (5) SHAKY KNEES" 1110 PRINT 1120 PRINT "ENTER ONE OF THE ABOVE -- THE BETTER YOU": VTAB 8 1130 PRINT "CLAIM YOU ARE, THE FASTER YOU'LL HAVE TO": VTAB 9 1140 PRINT "BE WITH YOUR GUN TO BE SUCCESSFUL." 1150 PRINT 1160 INPUT "CHOOSE (1-5)->";D9$ 1170 D9 = VAL (D9$): IF D9 < 1 OR D9 > 5 OR INT (D9) < > D9 THEN PRINT CHR$ (7);: VTAB PEEK (37): CALL - 868: GOTO 1160 1190 REM ***INITIAL PURCHASES*** 1200 X1 = 0 1210 D3 = 0:M9 = 0:M = 0:F2 = 0:F1 = 0:S4 = 0:K8 = 0 1220 DIM S$(4):S$(1) = "BANG":S$(2) = "BLAM":S$(3) = "POW":S$(4) = "WHAM" 1230 HOME : ONERR GOTO 1600 1240 QNUM = 1: VTAB 1: PRINT "HOW MUCH DO YOU WANT TO SPEND ON" 1250 INPUT "YOUR OXEN TEAM? $";A 1260 IF A > = 200 THEN 1290 1270 PRINT : INVERSE : PRINT CHR$ (7);" NOT ENOUGH ";: NORMAL : FOR DLY = 1 TO 1000: NEXT : HTAB 1: CALL - 868: HTAB 1: VTAB 2: CALL - 868 1280 GOTO 1240 1290 IF A < = 300 THEN 1320 1300 PRINT : INVERSE : PRINT CHR$ (7);"TOO MUCH";: NORMAL : FOR DLY = 1 TO 1000: NEXT : HTAB 1: CALL - 868: HTAB 1: VTAB 2: CALL - 868 1310 GOTO 1240 1320 QNUM = 2: VTAB 15: CALL - 958: VTAB 4: PRINT "HOW MUCH DO YOU WANT TO SPEND ON" 1330 INPUT "FOOD? $";F 1340 IF F > = 0 THEN 1360 1350 GOTO 1600 1360 QNUM = 3: PRINT : PRINT "HOW MUCH DO YOU WANT TO SPEND ON" 1370 INPUT "AMMUNITION? $";B 1380 IF B > = 0 THEN 1400 1390 GOTO 1600 1400 QNUM = 4: PRINT : PRINT "HOW MUCH DO YOU WANT TO SPEND ON" 1410 INPUT "CLOTHING? $";C 1420 IF C > = 0 THEN 1440 1430 GOTO 1600 1440 QNUM = 5: PRINT : PRINT "HOW MUCH DO YOU WANT TO SPEND ON" 1450 INPUT "MISCELLANEOUS SUPPLIES? $";M1 1460 IF M1 > = 0 THEN 1480 1470 GOTO 1600 1480 T = 700 - A - F - B - C - M1 1490 IF T > = 0 THEN 1530 1500 PRINT : PRINT CHR$ (7);"YOU OVERSPENT--YOU ONLY HAD $700 TO" 1510 PRINT "SPEND. BUY AGAIN": PRINT 1520 GOTO 1240 1530 B = 50 * B: POKE 216,0: REM POKE CLEARS ONERR 1540 PRINT : PRINT "AFTER ALL YOUR PURCHASES," 1550 PRINT "YOU NOW HAVE ";T;" DOLLARS LEFT" 1560 GOSUB 120: HOME 1570 PRINT "MONDAY MARCH 29 1847" 1580 PRINT "--------------------" 1590 GOTO 2120 1600 PRINT : INVERSE : PRINT CHR$ (7);" IMPOSSIBLE ";: NORMAL : FOR DLY = 1 TO 1000: NEXT : HTAB 1: CALL - 868: HTAB 1: VTAB ( PEEK (37) - 1): CALL - 868 1610 ON QNUM GOTO 1240,1330,1370,1410,1450 1620 IF M > = 2040 THEN 6030 1630 REM ***SETTING DATE*** 1640 D3 = D3 + 1 1650 GOSUB 120: HOME 1660 PRINT "MONDAY "; 1670 ON D3 GOTO 1680,1700,1720,1740,1760,1780,1800,1820,1840,1860,1880,1900,1920,1940,1960,1980,2000,2020,2040,2060 1680 PRINT "APRIL 12 "; 1690 GOTO 2090 1700 PRINT "APRIL 26 "; 1710 GOTO 2090 1720 PRINT "MAY 10 "; 1730 GOTO 2090 1740 PRINT "MAY 24 "; 1750 GOTO 2090 1760 PRINT "JUNE 7 "; 1770 GOTO 2090 1780 PRINT "JUNE 21 "; 1790 GOTO 2090 1800 PRINT "JULY 5 "; 1810 GOTO 2090 1820 PRINT "JULY 19 "; 1830 GOTO 2090 1840 PRINT "AUGUST 2 "; 1850 GOTO 2090 1860 PRINT "AUGUST 16 "; 1870 GOTO 2090 1880 PRINT "AUGUST 31 "; 1890 GOTO 2090 1900 PRINT "SEPTEMBER 13 "; 1910 GOTO 2090 1920 PRINT "SEPTEMBER 27 "; 1930 GOTO 2090 1940 PRINT "OCTOBER 11 "; 1950 GOTO 2090 1960 PRINT "OCTOBER 25 "; 1970 GOTO 2090 1980 PRINT "NOVEMBER 8 "; 1990 GOTO 2090 2000 PRINT "NOVEMBER 22 "; 2010 GOTO 2090 2020 PRINT "DECEMBER 6 "; 2030 GOTO 2090 2040 PRINT "DECEMBER 20 "; 2050 GOTO 2090 2060 PRINT "YOU HAVE BEEN ON THE TRAIL TOO LONG ------" 2070 PRINT "YOUR FAMILY DIES IN THE FIRST BLIZZARD OF WINTER" 2080 GOTO 5690 2090 PRINT "1847";:HP = PEEK (36): PRINT 2100 FOR I = 1 TO HP - 1: PRINT "-";: NEXT : PRINT "-" 2110 REM ***BEGINNING EACH TURN*** 2120 IF F > = 0 THEN 2140 2130 F = 0 2140 IF B > = 0 THEN 2160 2150 B = 0 2160 IF C > = 0 THEN 2180 2170 C = 0 2180 IF M1 > = 0 THEN 2200 2190 M1 = 0 2200 IF F > = 13 THEN 2220 2210 PRINT "YOU'D BETTER DO SOME HUNTING": PRINT " OR BUY FOOD AND SOON!!!!": PRINT 2220 F = INT (F) 2230 B = INT (B) 2240 C = INT (C) 2250 M1 = INT (M1) 2260 T = INT (T) 2270 M = INT (M) 2280 M2 = M 2290 IF S4 = 1 THEN 2320 2300 IF K8 = 1 THEN 2320 2310 GOTO 2360 2320 T = T - 20 2330 IF T < 0 THEN 5600 2340 PRINT "DOCTOR'S BILL IS $20" 2350 S4 = 0:K8 = 0 2360 IF M9 = 1 THEN 2390 2370 PRINT "TOTAL MILEAGE: ";M 2380 GOTO 2410 2390 PRINT "TOTAL MILEAGE: 950" 2400 M9 = 0 2410 VTAB PEEK (37) + 1: PRINT "FOOD BULLETS CLOTHES MISC.SUPP. CASH";: VTAB PEEK (37) + 1 2420 VP = PEEK (37) + 3: HTAB 2: PRINT F;: HTAB 8: PRINT B;: HTAB 17: PRINT C;: HTAB 26: PRINT M1;: HTAB 38: PRINT T;: VTAB VP: HTAB 1 2430 IF X1 = 0 THEN 2490 2440 X1 = NOT X1 2450 PRINT "DO YOU (1)STOP AT THE NEXT FORT," 2460 INPUT "(2)HUNT, OR (3)CONTINUE? ";X$ 2470 IF VAL (X$) < > 1 AND VAL (X$) < > 2 AND VAL (X$) < > 3 THEN PRINT CHR$ (7): VTAB PEEK (37) - 1: CALL - 868: GOTO 2460 2480 X = VAL (X$): GOTO 2590 2490 INPUT "DO YOU (1)HUNT OR (2)CONTINUE? ";X$ 2500 IF VAL (X$) < > 1 AND VAL (X$) < > 2 THEN PRINT CHR$ (7): VTAB PEEK (37) - 1: CALL - 868: GOTO 2490 2510 X = VAL (X$): IF X = 1 THEN 2520 2520 LET X = X + 1 2530 IF X = 3 THEN 2580 2540 IF B > 39 THEN 2580 2550 PRINT "TOUGH---" 2560 PRINT "YOU NEED MORE BULLETS TO GO HUNTING" 2570 GOTO 2040 2580 X1 = NOT X1 2590 ON X GOTO 2610,2860,3040 2600 REM ***STOPPING AT FORT*** 2610 VTAB VP: CALL - 958: PRINT "ENTER WHAT YOU WISH TO SPEND": PRINT "ON THE FOLLOWING": PRINT 2620 PRINT "FOOD"; 2630 GOSUB 2650 2640 GOTO 2730 2650 INPUT P 2660 IF P < 0 THEN 2720 2670 T = T - P 2680 IF T > = 0 THEN 2720 2690 PRINT "YOU DON'T HAVE THAT MUCH--KEEP YOUR SPENDING DOWN" 2700 T = T + P 2710 P = 0 2720 RETURN 2730 F = F + 2 / 3 * P 2740 PRINT "AMMUNITION"; 2750 GOSUB 2650 2760 LET B = INT (B + 2 / 3 * P * 50) 2770 PRINT "CLOTHING"; 2780 GOSUB 2650 2790 C = C + 2 / 3 * P 2800 PRINT "MISCELLANEOUS SUPPLIES"; 2810 GOSUB 2650 2820 M1 = M1 + 2 / 3 * P 2830 M = M - 45 2840 GOSUB 120: GOTO 3040 2850 REM ***HUNTING*** 2860 IF B > 39 THEN 2890 2870 PRINT "TOUGH---YOU NEED MORE BULLETS TO GO HUNTING" 2880 GOTO 2450 2890 M = M - 45 2900 GOSUB 6850 2910 IF B1 < = 1 THEN 2980 2920 IF 100 * RND (1) < 13 * B1 THEN 3030 2930 F = F + 48 - 2 * B1 2940 PRINT "NICE SHOT--RIGHT ON TARGET--GOOD EATIN' TONIGHT!!" 2950 B = B - 10 - 3 * B1 2960 GOSUB 120: GOTO 3040 2970 REM **BELLS IN LINE 2660** 2980 PRINT CHR$ (7); CHR$ (7);"RIGHT BETWEEN THE EYES": PRINT " ---YOU GOT A BIG ONE!!!!" 2990 PRINT "FULL BELLIES TONIGHT!" 3000 F = F + 52 + RND (1) * 6 3010 B = B - 10 - RND (1) * 4 3020 GOSUB 120: GOTO 3040 3030 PRINT "YOU MISSED---AND YOUR DINNER GOT AWAY...": GOSUB 120 3040 IF F > = 13 THEN 3070 3050 HOME : GOTO 5580 3060 REM ***EATING*** 3070 VTAB VP: HTAB 1: CALL - 958: PRINT "DO YOU EAT (1)POORLY, (2)MODERATELY, OR" 3080 INPUT "(3)WELL? ";E 3090 IF E > 3 THEN 3070 3100 IF E < 1 THEN 3070 3110 LET E = INT (E) 3120 LET F = F - 8 - 5 * E 3130 IF F > = 0 THEN 3170 3140 F = F + 8 + 5 * E 3150 PRINT "YOU CAN'T EAT THAT WELL" 3160 GOTO 3070 3170 LET M = M + 200 + (A - 220) / 5 + 10 * RND (1) 3190 C1 = 0 3200 L1 = C1 3210 REM ***RIDERS ATTACK*** 3230 IF RND (1) * 10 > ((M / 100 - 4) ^ 2 + 72) / ((M / 100 - 4) ^ 2 + 12) - 1 THEN 3900 3240 PRINT : PRINT "RIDERS AHEAD. THEY "; 3250 S5 = 0 3270 IF RND (1) < .8 THEN 3300 3280 PRINT "DON'T "; 3290 S5 = 1 3300 PRINT "LOOK HOSTILE..." 3310 PRINT : PRINT "TACTICS:" 3320 PRINT " (1) RUN (2) ATTACK (3) CONTINUE" 3330 PRINT " (4) CIRCLE WAGONS": PRINT 3340 IF RND (1) > .2 THEN 3360 3350 S5 = 1 - S5 3360 INPUT "CHOOSE (1-4)->";T1$ 3370 T1 = VAL (T1$): IF T1 < 1 OR T1 > 4 OR INT (T1) < > T1 THEN PRINT CHR$ (7);: VTAB PEEK (37): CALL - 868: GOTO 3360 3380 VTAB 10: CALL - 958 3390 IF S5 = 1 THEN 3680 3400 IF T1 > 1 THEN 3460 3410 M = M + 20 3420 M1 = M1 - 15 3430 B = B - 150 3440 A = A - 40 3450 GOTO 3820 3460 IF T1 > 2 THEN 3590 3470 GOSUB 6850 3480 B = B - B1 * 40 - 80 3490 IF B1 > 1 THEN 3520 3500 PRINT "NICE SHOOTING---YOU DROVE THEM OFF" 3510 GOTO 3820 3520 IF B1 < = 4 THEN 3570 3530 PRINT "LOUSY SHOT---YOU GOT KNIFED" 3540 K8 = 1 3550 PRINT "YOU HAVE TO SEE OL' DOC BLANCHARD" 3560 GOTO 3820 3570 PRINT "KINDA SLOW WITH YOUR COLT .45" 3580 GOTO 3820 3590 IF T1 > 3 THEN 3640 3600 IF RND (1) > .8 THEN 3800 3610 LET B = B - 150 3620 M1 = M1 - 15 3630 GOTO 3820 3640 GOSUB 6850 3650 B = B - B1 * 30 - 80 3660 M = M - 25 3670 GOTO 3490 3680 IF T1 > 1 THEN 3720 3690 M = M + 15 3700 A = A - 10 3710 GOTO 3820 3720 IF T1 > 2 THEN 3760 3730 M = M - 5 3740 B = B - 100 3750 GOTO 3820 3760 IF T1 > 3 THEN 3780 3770 GOTO 3820 3780 M = M - 20 3790 GOTO 3820 3800 PRINT "THEY DID NOT ATTACK" 3810 GOTO 3900 3820 IF S5 = 0 THEN 3850 3830 PRINT "RIDERS WERE FRIENDLY, BUT CHECK FOR": PRINT "POSSIBLE LOSSES" 3840 GOTO 3900 3850 PRINT "RIDERS WERE HOSTILE--CHECK FOR LOSES" 3860 IF B > = 0 THEN 3900 3870 PRINT "YOU RAN OUT OF BULLETS AND GOT MASSACRED BY THE RIDERS" 3880 GOTO 5690 3890 REM ***SELECTION OF EVENTS*** 3900 D1 = 0: PRINT 3910 RESTORE 3920 R1 = 100 * RND (1) 3930 LET D1 = D1 + 1 3940 IF D1 = 16 THEN 5140 3950 READ D 3960 IF R1 > D THEN 3930 3970 DATA 6,11,13,15,17,22,32,35,37,42,44,54,64,69,95 3980 ON D1 GOTO 3990,4040,4090,4150,4190,4230,4270,4340,4530,4600,4640,4730,4790,5030,5080,5140 3990 PRINT "WAGON BREAKS DOWN" 4000 PRINT " --LOSE TIME AND SUPPLIES FIXING IT" 4010 LET M = M - 15 - 5 * RND (1) 4020 LET M1 = M1 - 8 4030 GOTO 5190 4040 PRINT "OX INJURES LEG" 4050 PRINT " ---SLOWS YOU DOWN REST OF TRIP" 4060 LET M = M - 25 4070 LET A = A - 20 4080 GOTO 5190 4090 PRINT "BACK LUCK---YOUR DAUGHTER BROKE HER ARM" 4100 PRINT "YOU HAD TO STOP AND USE SUPPLIES TO" 4110 PRINT "MAKE A SLING" 4120 M = M - 5 - 4 * RND (1) 4130 M1 = M1 - 2 - 3 * RND (1) 4140 GOTO 5190 4150 PRINT "OX WANDERS OFF" 4160 PRINT " ---SPEND TIME LOOKING FOR IT" 4170 M = M - 17 4180 GOTO 5190 4190 PRINT "YOUR SON GETS LOST" 4200 PRINT " ---SPEND HALF THE DAY LOOKING FOR HIM" 4210 M = M - 10 4220 GOTO 5190 4230 PRINT "UNSAFE WATER" 4240 PRINT " --LOSE TIME LOOKING FOR CLEAN SPRING" 4250 LET M = M - 10 * RND (1) - 2 4260 GOTO 5190 4270 IF M > 950 THEN 4960 4280 PRINT "HEAVY RAINS---TIME AND SUPPLIES LOST" 4290 F = F - 10 4300 B = B - 500 4310 M1 = M1 - 15 4320 M = M - 10 * RND (1) - 5 4330 GOTO 5190 4340 PRINT "BANDITS ATTACK" 4350 GOSUB 6850 4360 B = B - 20 * B1 4370 IF B > = 0 THEN 4420 4380 PRINT "YOU RAN OUT OF BULLETS" 4390 PRINT " ---THEY GET LOTS OF CASH" 4400 T = T / 3 4410 GOTO 4430 4420 IF B1 < = 1 THEN 4500 4430 PRINT "YOU GOT SHOT IN THE LEG AND" 4440 PRINT " THEY TOOK ONE OF YOUR OXEN" 4450 K8 = 1 4460 PRINT "BETTER HAVE A DOC LOOK AT YOUR WOUND" 4470 M1 = M1 - 5 4480 A = A - 20 4490 GOTO 5190 4500 PRINT "QUICKEST DRAW OUTSIDE OF DODGE CITY!!!" 4510 PRINT "YOU GOT 'EM!" 4520 GOTO 5190 4530 PRINT "THERE WAS A FIRE IN YOUR WAGON" 4540 PRINT " --FOOD AND SUPPLIES DAMAGE!" 4550 F = F - 40 4560 B = B - 400 4570 LET M1 = M1 - RND (1) * 8 - 3 4580 M = M - 15 4590 GOTO 5190 4600 PRINT "LOSE YOUR WAY IN HEAVY FOG" 4610 PRINT " ---TIME IS LOST" 4620 M = M - 10 - 5 * RND (1) 4630 GOTO 5190 4640 PRINT "YOU KILLED A POISONOUS SNAKE" 4650 PRINT " ---AFTER IT BIT YOU" 4660 B = B - 10 4670 M1 = M1 - 5 4680 IF M1 > = 0 THEN 4720 4690 PRINT "YOU DIE OF SNAKEBITE" 4700 PRINT " SINCE YOU HAVE NO MEDICINE" 4710 GOTO 5690 4720 GOTO 5190 4730 PRINT "WAGON GETS SWAMPED FORDING RIVER" 4740 PRINT " --LOSE FOOD AND CLOTHES" 4750 F = F - 30 4760 C = C - 20 4770 M = M - 20 - 20 * RND (1) 4780 GOTO 5190 4790 PRINT "WILD ANIMALS ATTACK!" 4800 GOSUB 6850 4810 IF B > 39 THEN 4860 4820 PRINT "YOU WERE TOO LOW ON BULLETS--" 4830 PRINT "THE WOLVES OVERPOWERED YOU" 4840 K8 = 1 4850 GOTO 5640 4860 IF B1 > 2 THEN 4900 4870 PRINT "NICE SHOOTIN' PARTNER" 4880 PRINT " ---THEY DIDN'T GET MUCH" 4890 GOTO 4920 4900 PRINT "SLOW ON THE DRAW" 4910 PRINT " ---THEY GOT AT YOUR FOOD AND CLOTHES" 4920 B = B - 20 * B1 4930 C = C - B1 * 4 4940 F = F - B1 * 8 4950 GOTO 5190 4960 PRINT "COLD WEATHER---BRRRRRR!---YOU "; 4970 IF C > 22 + 4 * RND (1) THEN 5000 4980 PRINT "DONT'T "; 4990 C1 = 1 5000 PRINT "HAVE": PRINT "ENOUGH CLOTHING TO KEEP YOU WARM" 5010 IF C1 = 0 THEN 5190 5020 GOTO 7030 5030 PRINT "HAIL STORM---SUPPLIES DAMAGED" 5040 M = M - 5 - RND (1) * 10 5050 B = B - 200 5060 M1 = M1 - 4 - RND (1) * 3 5070 GOTO 5190 5080 IF E = 1 THEN 7030 5090 IF E = 3 THEN 5120 5100 IF RND (1) > .25 THEN 7030 5110 GOTO 5190 5120 IF RND (1) < .5 THEN 7030 5130 GOTO 5190 5140 PRINT "HELPFUL INDIANS SHOW YOU WHERE" 5150 PRINT " TO FIND MORE FOOD" 5160 F = F + 14 5170 GOTO 5190 5180 REM ***MOUNTAINS*** 5190 IF M < = 950 THEN 1620 5210 IF RND (1) * 10 > 9 - ((M / 100 - 15) ^ 2 + 72) / ((M / 100 - 15) ^ 2 + 12) THEN 5360 5220 PRINT : PRINT "RUGGED MOUNTAINS" 5230 IF RND (1) > .1 THEN 5280 5240 PRINT : PRINT "YOU GOT LOST---LOSE VALUABLE" 5250 PRINT " TIME TRYING TO FIND TRAIL!" 5260 M = M - 60 5270 GOTO 5360 5280 IF RND (1) > .11 THEN 5340 5290 PRINT : PRINT "WAGON DAMAGED!": PRINT " ---LOSE TIME AND SUPPLIES" 5300 M1 = M1 - 5 5310 B = B - 200 5320 M = M - 20 - 30 * RND (1) 5330 GOTO 5360 5340 PRINT " ---THE GOING GETS SLOW" 5350 M = M - 45 - RND (1) / .02 5360 IF F1 = 1 THEN 5410 5370 F1 = 1 5380 IF RND (1) < .8 THEN 5480 5390 PRINT : PRINT "YOU MADE IT SAFELY THROUGH SOUTH PASS" 5400 PRINT " --NO SNOW" 5410 IF M < 1700 THEN 5450 5420 IF F2 = 1 THEN 5450 5430 F2 = 1 5440 IF RND (1) < .7 THEN 5480 5450 IF M > 950 THEN 1620 5460 M9 = 1 5470 GOTO 1620 5480 PRINT : PRINT "BLIZZARD IN MOUNTAIN PASS" 5490 PRINT " --TIME AND SUPPLIES LOST" 5500 L1 = 1 5510 F = F - 25 5520 M1 = M1 - 10 5530 B = B - 300 5540 M = M - 30 - 40 * RND (1) 5550 IF C < 18 + 2 * RND (1) THEN 7030 5560 GOTO 5450 5570 REM ***DYING*** 5580 PRINT "YOU RAN OUT OF FOOD AND STARVED TO DEATH"; 5590 GOTO 5690 5600 LET T = 0 5610 PRINT "YOU CAN'T AFFORD A DOCTOR" 5620 GOTO 5640 5630 PRINT : PRINT "YOU RAN OUT OF MEDICAL SUPPLIES" 5640 PRINT "YOU DIED OF "; 5650 IF K8 = 1 THEN 5680 5660 PRINT "PNEUMONIA" 5670 GOTO 5690 5680 PRINT "INJURIES" 5690 GOSUB 120: HOME 5700 PRINT "DUE TO YOUR UNFORTUNATE SITUATION, THERE"; 5710 PRINT "ARE A FEW FORMALITIES WE MUST GO THROUGH" 5720 PRINT 5730 PRINT 5740 INPUT "WOULD YOU LIKE A MINISTER?";C$ 5750 PRINT 5760 INPUT "WOULD YOU LIKE A FANCY FUNERAL?";C$ 5770 PRINT 5780 PRINT "WOULD YOU LIKE US TO INFORM YOUR" 5790 INPUT "NEXT OF KIN?";C$ 5800 PRINT 5810 IF C$ = "YES" OR C$ = "Y" THEN 5850 5820 PRINT "BUT YOUR AUNT SADIE IN ST. LOUIS IS" 5830 PRINT "REALLY WORRIED ABOUT YOU." 5840 GOTO 5860 5850 PRINT "THAT WILL BE $4.50 FOR THE TELEGRAPH": PRINT "CHARGE." 5860 GOSUB 120: HOME 5870 INVERSE : PRINT SPC( 40); 5880 PRINT " WE THANK YOU FOR THIS INFORMATION AND "; 5890 PRINT " WE ARE SORRY YOU DIDN'T MAKE IT TO THE "; 5900 PRINT " GREAT TERRITORY OF OREGON. "; 5910 PRINT " "; 5920 PRINT " BETTER LUCK NEXT TIME. "; 5930 PRINT " "; 5940 PRINT " "; 5950 PRINT " SINCERELY, "; 5960 PRINT " "; 5970 PRINT " THE OREGON CITY "; 5980 PRINT " CHAMBER OF COMMERCE "; 5990 PRINT SPC( 40): NORMAL : PRINT 6010 PRINT "RUN COMPLETE.": END 6020 REM ***FINAL TURN*** 6030 F9 = (2040 - M2) / (M - M2) 6040 F = F + (1 - F9) * (8 + 5 * E) 6050 PRINT 6060 REM **BELLS IN LINES 5470,5480** 6070 PRINT CHR$ (7);"YOU FINALLY ARRIVED AT OREGON CITY" 6080 PRINT CHR$ (7);"AFTER 2040 LONG MILES---HOORAY!!!!!" 6090 PRINT "A REAL PIONEER!" 6100 GOSUB 120: HOME 6110 F9 = INT (F9 * 14) 6120 D3 = D3 * 14 + F9 6130 F9 = F9 + 1 6140 IF F9 < 8 THEN 6160 6150 F9 = F9 - 7 6160 ON F9 GOTO 6170,6190,6210,6230,6250,6270,6290 6170 PRINT "MONDAY "; 6180 GOTO 6300 6190 PRINT "TUESDAY "; 6200 GOTO 6300 6210 PRINT "WEDNESDAY "; 6220 GOTO 6300 6230 PRINT "THURSDAY "; 6240 GOTO 6300 6250 PRINT "FRIDAY "; 6260 GOTO 6300 6270 PRINT "SATURDAY "; 6280 GOTO 6300 6290 PRINT "SUNDAY "; 6300 IF D3 > 124 THEN 6340 6310 D3 = D3 - 93 6320 PRINT "JULY ";D3;" 1847" 6330 GOTO 6520 6340 IF D3 > 155 THEN 6380 6350 D3 = D3 - 124 6360 PRINT "AUGUST ";D3;" 1847" 6370 GOTO 6520 6380 IF D3 > 185 THEN 6420 6390 D3 = D3 - 155 6400 PRINT "SEPTEMBER ";D3;" 1847" 6410 GOTO 6520 6420 IF D3 > 216 THEN 6460 6430 D3 = D3 - 185 6440 PRINT "OCTOBER ";D3;" 1847" 6450 GOTO 6520 6460 IF D3 > 246 THEN 6500 6470 D3 = D3 - 216 6480 PRINT "NOVEMBER ";D3;" 1847" 6490 GOTO 6520 6500 D3 = D3 - 246 6510 PRINT "DECEMBER ";D3;" 1847" 6520 PRINT 6540 IF B > 0 THEN 6560 6550 LET B = 0 6560 IF C > 0 THEN 6580 6570 LET C = 0 6580 IF M1 > 0 THEN 6600 6590 LET M1 = 0 6600 IF T > 0 THEN 6620 6610 LET T = 0 6620 IF F > 0 THEN 6640 6630 LET F = 0 6640 VTAB PEEK (37) + 1: PRINT "FOOD BULLETS CLOTHES MISC.SUPP. CASH";: VTAB PEEK (37) + 1 6650 VP = PEEK (37) + 3: HTAB 2: PRINT F;: HTAB 8: PRINT B;: HTAB 17: PRINT C;: HTAB 26: PRINT M1;: HTAB 38: PRINT T;: VTAB VP: HTAB 1 6660 PRINT 6670 INVERSE : PRINT SPC( 40); 6680 PRINT " PRESIDENT JAMES K. POLK SENDS YOU HIS "; 6690 PRINT " HEARTIEST CONGRATULATIONS "; 6700 PRINT " "; 6710 PRINT " AND WISHES YOU A PROSPEROUS LIFE AHEAD "; 6720 PRINT " "; 6730 PRINT " AT YOUR NEW HOME "; 6740 PRINT SPC( 40): NORMAL 6750 REM 'STOP' COMMAND BELOW CHANGED TO 'END' BY C.D.P. 6760 PRINT "RUN COMPLETE.": END 6770 REM ***SHOOTING SUB-ROUTINE*** 6780 REM THE METHOD OF TIMING THE SHOOTING (LINES 6210-6240) 6790 REM WILL VARY FROM SYSTEM TO SYSTEM. FOR EXAMPLE, H-P 6800 REM USERS WILL PROBABLY PREFER TO USE THE 'ENTER' STATEMENT. 6810 REM IF TIMING ON THE USER'S SYSTEM IS HIGHLY SUSCEPTIBLE 6820 REM TO SYSTEM RESPONSE TIME, THE FORMULA IN LINE 6240 CAN 6830 REM BE TAILORED TO ACCOMMODATE THIS BY EITHER INCREASING 6840 REM OR DECREASING THE 'SHOOTING' TIME RECORDED BY THE SYSTEM 6850 S6 = INT ( RND (1) * 4 + 1) 6860 PRINT "TYPE ";S$(S6);"->"; 6870 H = 14:CN = H:C$ = "":B3 = 0: HTAB CN: PRINT "_"; 6880 KEY = PEEK (49152):B3 = B3 + 1: IF KEY < 128 THEN 6880 6890 POKE 49168,0 6900 IF KEY = 141 THEN 6956: REM RETURN 6910 IF KEY = 136 THEN CN = CN - 1: GOTO 6940: REM BACKSPACE 6920 IF KEY < 161 OR KEY > 254 THEN 6880: REM NOT ALPHA-NUMBERIC 6930 C$ = C$ + CHR$ (KEY - 128): HTAB CN: PRINT CHR$ (KEY - 128)"_";:CN = CN + 1: GOTO 6880 6940 IF LEN (C$) < 2 THEN CN = H:C$ = "" 6950 IF LEN (C$) > 1 THEN C$ = LEFT$ (C$, LEN (C$) - 1) 6955 HTAB CN: PRINT "_ ";: HTAB CN: GOTO 6880 6956 B1 = (B3 / 17.5) - (D9 - 1): REM 1ST PARENTHETICAL RESOLVES TO SECONDS 6960 HTAB CN: PRINT " ";B3 / 17.5: PRINT 6970 IF B1 > 0 THEN 6990 6980 B1 = 0 6990 IF C$ = S$(S6) THEN 7010 7000 B1 = 9 7010 RETURN 7020 REM ***ILLNESS SUB-ROUTINE*** 7030 IF 100 * RND (1) < 10 + 35 * (E - 1) THEN 7110 7050 IF 100 * RND (1) < 100 - (40 / 4 ^ (E - 1)) THEN 7150 7060 PRINT "SERIOUS ILLNESS---" 7070 PRINT "YOU MUST STOP FOR MEDICAL ATTENTION" 7080 M1 = M1 - 10 7090 S4 = 1 7100 GOTO 7180 7110 PRINT "WILD ILLNESS---MEDICINE USED" 7120 M = M - 5 7130 M1 = M1 - 2 7140 GOTO 7180 7150 PRINT "BAD ILLNESS---MEDICINE USED" 7160 M = M - 5 7170 M1 = M1 - 5 7180 IF M1 < 0 THEN 5630 7190 IF L1 = 1 THEN 5450 7200 GOTO 5190 7210 REM ***IDENTIFICATION OF VARIABLES IN THE PROGRAM*** 7220 REM A = AMOUNT SPENT ON ANIMALS 7230 REM B = AMOUNT SPENT ON AMMUNITION 7240 REM B1 = ACTUAL RESPONSE TIME FOR INPUTTING "BANG" 7250 REM B3 = CLOCK TIME AT START OF INPUTTING "BANG" 7260 REM C = AMOUNT SPENT ON CLOTHING 7270 REM C1 = FLAG FOR INSUFFICIENT CLOTHING IN COLD WEATHER 7280 REM C$ = YES/N0 RESPONSE TO QUESTIONS 7290 REM D1 = COUNTER IN GENERATING EVENTS 7300 REM D3 = TURN NUMBER FOR SETTING DATE 7310 REM D4 = CURRENT DATE 7320 REM D9 = CHOICE OF SHOOTING EXPERTISE LEVEL 7330 REM E = CHOICE OF EATING 7340 REM F = AMOUNT SPENT ON FOOD 7350 REM F1 = FLAG FOR CLEARING SOUTH PASS 7360 REM F2 = FLAG FOR CLEARING BLUE MOUNTAINS 7370 REM F9 = FRACTION OF 2 WEEKS TRAVELED ON FINAL TURN 7380 REM K8 = FLAG FOR INJURY 7390 REM L1 = FLAG FOR BLIZZARD 7400 REM M = TOTAL MILEAGE WHOLE TRIP 7410 REM M1 = AMOUNT SPENT ON MISCELLANEOUS SUPPLIES 7420 REM M2 = TOTAL MILEAGE UP THROUGH PREVIOUS TURN 7430 REM M9 = FLAG FOR CLEARING SOUTH PASS IN SETTING MILEAGE 7440 REM P = AMOUNT SPENT ON ITEMS AT FORT 7450 REM R1 = RANDOM NUMBER IN CHOOSING EVENTS 7460 REM S4 = FLAG FOR ILLNESS 7470 REM S5 = ""HOSTILITY OF RIDERS"" FACTOR 7480 REM S6 = SHOOTING WORD SELECTOR 7490 REM S$ = VARIATIONS OF SHOOTING WORD 7500 REM T = CASH LEFT OVER AFTER INITIAL PURCHASES 7510 REM T1 = CHOICE OF TACTICS WHEN ATTACKED 7520 REM X = CHOICE OF ACTION FOR EACH TURN 7530 REM X1 = FLAG FOR FORT OPTION 7540 REM DLY = DUMMY FOR DELAY LOOPS 7550 REM QNUM = QUESTION NUMBER FOR TRACKING 7560 REM VP = VERTICAL POSITION TO TRACK VTABS