commit 084cb6c50504f78fb8f9b8178ef7e08e3cd5b70a Author: Ted Thompson Date: Wed Sep 12 17:05:38 2018 -0700 Inital Commit First upload of what I think is a bug free release diff --git a/OREGON78.RC.bas b/OREGON78.RC.bas new file mode 100644 index 0000000..5be9714 --- /dev/null +++ b/OREGON78.RC.bas @@ -0,0 +1,741 @@ +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 \ No newline at end of file diff --git a/OREGON78.RC.do b/OREGON78.RC.do new file mode 100644 index 0000000..67497a0 Binary files /dev/null and b/OREGON78.RC.do differ diff --git a/OREGON78.RC.wav b/OREGON78.RC.wav new file mode 100644 index 0000000..9607268 Binary files /dev/null and b/OREGON78.RC.wav differ