Source:Main Program 7.1
Jump to navigation
Jump to search
This page is a verbatim reproduction of original source material and should not be edited except for maintenance. | |
Description |
Applesoft BASIC source code for the Eamon Main Program, version 7.1. |
---|---|
Source | |
Date |
15 January 1995 |
Author | |
License |
The use of this item is permitted on the grounds that it's free or in the public domain. |
1 REM EAMON ADVENTURE #NNN
2 REM (NAME OF ADVENTURE)
3 REM
4 REM BY (YOUR NAME HERE)
5 REM
6 REM VERSION 7.1
7 REM MP56 1/15/95
8 REM
EAMON ADVENTURER'S GUILD
7625 HAWKHAVEN DR.
CLEMMONS, NC 27012
10 PRINT CHR$ (4)"MAXFILES 3"
20 GOTO 33000
45 F1 = PEEK (111):F2 = PEEK (112): PRINT D$"READ"ED$",R"R: INPUT A$: PRINT D$
50 LL = ( LEN (A$) + CP - 1) / CP:L = L + LL: GOSUB 58: PRINT A$:L = L + LL * (L = 0): IF ( PEEK (109) + PEEK (110) * 256 + LEN (A$)) < (F1 + F2 * 256) THEN POKE 111,F1: POKE 112,F2
51 PRINT
52 L = L + 1: GOTO 58
54 L = L + 1
56 L = L + 2: PRINT
58 IF L < 23 THEN RETURN
59 PRINT " (PRESS ANY KEY TO CONTINUE) ";: GET Q$: PRINT : VTAB PEEK (37): FOR L = 1 TO 39: PRINT " ";: NEXT : PRINT : VTAB PEEK (37):L = 0: RETURN
91 PRINT : PRINT "YOU AREN'T CARRYING IT.": GOTO 99
92 PRINT : PRINT "YOU MUST FIRST OPEN IT.": GOTO 99
94 PRINT : PRINT "YOU CAN'T "C$(C)" "S$: GOTO 98
96 PRINT : PRINT "NOBODY HERE BY THAT NAME!": GOTO 99
98 GOSUB 54: GOTO 310
99 GOSUB 54
100 REM
YOU SEE
110 GOSUB 56: IF LS THEN A%(LS,5) = A%(LS,5) - 1: IF A%(LS,5) = 0 THEN PRINT : PRINT "YOUR "A$(LS)" HAS GONE OUT!":LS = 0:LT = NL: GOTO 99
115 IF LS THEN IF A%(LS,5) < 10 THEN PRINT : PRINT "YOUR "A$(LS)" IS ALMOST OUT!": GOSUB 54: GOTO 120
117 IF LS THEN IF A%(LS,5) < 20 THEN PRINT : PRINT "YOUR "A$(LS)" GROWS DIM!": GOSUB 54
120 IF SP THEN SP = SP - 1: IF NOT SP THEN M%(0,2) = M%(0,2) / 2: PRINT "YOUR SPEED SPELL HAS JUST EXPIRED!": GOSUB 56
122 FOR A = 0 TO 3: IF S2%(A) < SA%(A) THEN S2%(A) = S2%(A) * 1.1: IF S2%(A) > SA%(A) THEN S2%(A) = SA%(A)
123 NEXT
125 IF NOT LT THEN PRINT : PRINT "IT'S TOO DARK TO SEE.": GOSUB 52: GOTO 210
130 PRINT "YOU ARE ": PRINT " "RN$: GOSUB 54
135 IF NOT V%(RO) THEN R = RO: GOSUB 45:V%(RO) = 1
140 B% = NM:D% = RO: FOR M = 1 TO NM:C% = M: & A,D%,M%(C%,5),C%,B%: IF NOT C% THEN M = 999: NEXT : GOTO 160
145 M = C%:M2 = 0: IF NOT M%(M,0) THEN GOSUB 51:M%(M,0) = 1:R = M + 600: GOSUB 45:M2 = 1: PRINT " - ";
150 IF M%(M,3) = 1 THEN PRINT M$(M)" IS HERE.": GOSUB 52: GOTO 156
154 PRINT M%(M,3)" "M$(M)"S ARE HERE.": GOSUB 52
156 IF M2 THEN GOSUB 51
159 NEXT
160 GOSUB 51:B% = NZ:D% = RO: FOR A = 1 TO NZ:C% = A: & A,D%,A%(C%,4),C%,B%: IF NOT C% THEN A = 999: NEXT : GOTO 190
165 A = C%:M2 = 0: IF NOT A%(A,0) THEN A%(A,0) = 1:R = A + 200: GOSUB 45:M2 = 1: PRINT " - ";
170 PRINT "YOU SEE "A$(A)".": GOSUB 52: IF M2 THEN GOSUB 51
175 C% = C% + 1: NEXT
190 FOR A = NZ + 1 TO NA: IF A%(A,4) = RO THEN PRINT "YOUR "A$(A)" IS HERE.": GOSUB 52
200 NEXT
205 REM
CMD
210 PRINT : GOSUB 56: INPUT " YOUR COMMAND?";A$:L = 0
220 IF LEFT$ (A$,1) = " " THEN A$ = MID$ (A$,2): GOTO 220
230 IF A$ = "" THEN A$ = CZ$: VTAB PEEK (37): HTAB 16: PRINT A$
235 PRINT : IF A$ = "" THEN 275
240 CZ$ = A$: FOR A = 2 TO LEN (A$): IF MID$ (A$,A,1) < > " " THEN NEXT
250 V$ = LEFT$ (A$,A - 1):S$ = MID$ (A$,A + 1)
260 IF LEFT$ (S$,1) = " " THEN S$ = MID$ (S$,2): GOTO 260
270 SL = LEN (V$): FOR A = 1 TO ND: IF LEFT$ (C$(A),SL) = V$ THEN C = A:A = 999: NEXT : GOTO 290
272 NEXT :F = 0: FOR A = ND + 1 TO NC: IF LEFT$ (C$(A),SL) = V$ THEN C = A:F = F + 1: IF C$(A) = V$ THEN F = 1:A = 999
273 NEXT
275 IF F < > 1 THEN PRINT : PRINT "I ONLY UNDERSTAND THESE COMMANDS-- ": PRINT : FOR C = 1 TO CC: HTAB 2: POKE 1403,10: PRINT C$(C);: HTAB 15: POKE 1403,30: PRINT C$(C + CC);: HTAB 28: POKE 1403,50: PRINT C$(C + 2 * CC): NEXT : GOTO 210
290 ON C GOTO 3000,3000,3000,3000,3000,3000,4000,5000,6500,6000,7000,8000,9000,10000,11000,12000,13000,14000,15000,16000,23000,17000,18000,19000,20000,21000,22000,24000,25000,26000,27000,28000
300 REM
PICK FOE
305 GOSUB 51
310 IF NOT T(1) THEN 500
320 B% = NM:D% = RO: FOR M = 1 TO NM:C% = M: & A,D%,M%(C%,5),C%,B%: IF NOT C% THEN M = 999: NEXT : GOTO 500
330 M = C%: IF M%(M,11) = 2 THEN NEXT : GOTO 500
333 IF M%(M,3) = 1 THEN IF M%(M,13) / M%(M,1) * RND (1) * 100 > M%(M,4) THEN PRINT : PRINT M$(M)" FLEES!": GOSUB 54:M%(M,5) = 0:M2 = M: GOSUB 3600:M = M2: NEXT : GOTO 500
334 IF M%(M,3) = 1 THEN 340
335 IF (M%(M,12) - M%(M,3)) / M%(M,12) * RND (1) * 100 > M%(M,4) THEN MR% = RND (1) * M%(M,3) + 1: PRINT : PRINT MR%" "M$(M);
336 IF MR% THEN PRINT MID$ (" FLEES!S FLEE!",1 + (MR% > 1) * 7,7): GOSUB 54:M%(M,3) = M%(M,3) - MR%:M%(M,5) = M%(M,5) * (M%(M,3) > 0):M2 = M: GOSUB 3600:M = M2:MR% = 0: IF NOT M%(M,5) THEN NEXT : GOTO 500
340 MC = 1: IF M%(M,3) > 8 THEN MC = M%(M,3) - 8
350 OF = M:DF = 0: FOR MC = MC TO M%(M,3): IF M%(M,11) = 3 THEN 400
360 IF T(3) = M%(0,1) THEN 480
370 B% = NM:D% = RO: FOR M2 = 1 TO NM:C% = M2: & A,D%,M%(C%,5),C%,B%: IF NOT C% THEN M2 = 999: GOTO 380
375 M2 = C%: IF M%(M2,11) = 3 AND RND (1) < .25 THEN DF = M2:M2 = 999
380 NEXT : GOTO 480
400 C% = 1:B% = NM:D% = RO
410 & A,D%,M%(C%,5),C%,B%: IF M%(C%,11) < > 1 THEN C% = C% + 1: GOTO 410
415 DF = C%: IF DF = NM THEN 480
420 FOR M2 = DF + 1 TO NM:C% = M2: & A,D%,M%(C%,5),C%,B%: IF NOT C% THEN M2 = 999: GOTO 430
425 M2 = C%: IF M%(M2,11) = 1 AND RND (1) < .25 THEN DF = M2:M2 = 999
430 NEXT
480 GOSUB 7500
490 IF NOT T(1) THEN M = 999:MC = 999
495 NEXT : NEXT
500 REM
SPECIAL EVERY-ROUND STUFF
900 GOTO 100
3000 REM
MOVE
3010 IF T(1) THEN PRINT : PRINT "YOU CAN'T TURN YOUR BACK HERE!": GOTO 99
3020 D = C
3030 R2 = RD%(D): IF R2 > 500 THEN 3400
3040 IF R2 > 0 AND R2 < = NR THEN 3500
3050 REM /// SPECIAL MOVES
3060 IF R2 = - 99 THEN PRINT : PRINT "YOU RETURN TO THE MAIN HALL.": GOTO 32000
3180 REM /// INSERT HERE SPECIAL ROOM MOVE CHECKING
3390 PRINT : PRINT "YOU CAN'T GO THAT WAY!":V%(RO) = 0: GOTO 99
3400 REM
GATE/DOOR
3410 A = R2 - 500: IF A%(A,6) = 0 AND NOT A%(A,8) THEN R2 = A%(A,5): GOTO 3040
3420 IF A%(A,8) THEN R2 = 0: GOTO 3390
3430 PRINT : PRINT "THE "A$(A)" BLOCKS THE WAY!": GOTO 99
3500 REM
GO
3530 R3 = RO:RO = R2: GOSUB 3600
3540 PRINT D$;"READ"ER$",R"RO:NX = 0: INPUT RN$: FOR X = 1 TO ND: INPUT RD%(X)
3550 IF RD%(X) > 0 AND RD%(X) < = NR THEN NX = NX + 1
3560 NEXT : INPUT NL: PRINT D$:LT = NL OR LS
3590 GOTO 100
3600 REM
ENEMY?
3610 T(1) = 0:T(3) = M%(0,1):F(1) = 0:F(3) = M%(0,13)
3620 FOR M = 1 TO NM
3630 IF M%(M,5) = R3 THEN IF (M%(M,11) = 3 OR (M%(M,11) = 1) AND 200 * RND (1) < M%(M,4)) THEN M%(M,5) = RO: GOTO 3670
3640 IF M%(M,5) < > RO THEN NEXT : RETURN
3650 IF M%(M,11) > 100 THEN FR = M%(M,11) - 100 + (CH - 10) * 2:M%(M,11) = 1: IF FR > 100 * RND (1) THEN M%(M,11) = 2: IF FR > 200 * RND (1) THEN M%(M,11) = 3
3670 A = M%(M,11):F(A) = F(A) + M%(M,13) * M%(M,3):T(A) = T(A) + M%(M,1) * M%(M,3): NEXT : RETURN
4000 REM
GET
4010 GOSUB 4900: IF S$ = "ALL" THEN 4200
4020 HA = RO: GOSUB 4805: IF NOT F THEN 94
4030 PRINT : IF A%(A,3) > 900 THEN PRINT "DON'T BE ABSURD.": GOTO 98
4040 IF WT + A%(A,3) > 10 * M%(0,1) THEN PRINT "IT IS TOO HEAVY.": GOTO 98
4050 IF A%(A,2) = 10 THEN PRINT A$(A)" IS TIED DOWN!": GOTO 98
4140 PRINT "GOT IT.": GOSUB 54:A%(A,4) = - 1:WT = WT + A%(A,3): IF M%(0,8) = - 1 THEN IF A%(A,2) = 2 OR A%(A,2) = 3 THEN 17100
4150 GOTO 300
4200 GOSUB 51:B% = NA:D% = RO: FOR A = 1 TO NA:C% = A: & A,D%,A%(C%,4),C%,B%: IF NOT C% THEN A = 999: NEXT : GOTO 300
4210 A = C%: PRINT A$(A);: IF A%(A,2) = 10 THEN PRINT " IS TIED DOWN!": GOTO 4240
4215 IF A%(A,3) > 900 THEN PRINT ": DON'T BE ABSURD.": GOTO 4240
4220 IF WT + A%(A,3) > 10 * M%(0,1) THEN PRINT " IS TOO HEAVY.": GOTO 4240
4230 PRINT " TAKEN.":A%(A,4) = - 1:WT = WT + A%(A,3)
4240 GOSUB 52: NEXT : GOTO 98
4600 REM
SYNONYMS
4610 SL = LEN (S$)
4620 REM PUT YOUR OWN SYNONYMS HERE. SEE MANUAL FOR DETAILS
4675 RETURN
4680 IF LEFT$ (SY$,SL) = S$ OR RIGHT$ (SY$,SL) = S$ THEN S$ = A$(SY): POP
4690 RETURN
4700 REM
MONS SEARCH
4705 WH = RO:HA = - 1
4710 F = 0:C% = 0:D% = 0: & S,S$,M$,C%: IF NOT C% THEN IF LEN (S$) > 1 THEN IF RIGHT$ (S$,1) = "S" THEN S$ = LEFT$ (S$, LEN (S$) - 1): GOTO 4710
4715 IF NOT C% THEN RETURN
4720 D% = C%:X = C%: IF M%(X,5) < > HA AND M%(X,5) < > WH THEN 4770
4750 F = F + 1: IF F = 1 THEN M = X
4760 IF S$ = M$(X) THEN M = X: RETURN
4770 & R: IF C% < > D% THEN 4720
4780 RETURN
4800 REM
ARTIF SEARCH
4801 HA = - 1:WH = HA:EM = HA: GOTO 4810
4804 HA = - 1
4805 WH = RO:EM = RO + 200
4810 GOSUB 4600:F = 0:C% = 0:D% = 0: & S,S$,A$,C%: IF NOT C% THEN RETURN
4820 FOR X = 1 TO NA
4830 D% = C%:A2 = A%(C%,4): IF A2 = WH OR A2 = HA OR A2 = EM THEN F = F + 1:A = C%: IF S$ = A$(C%) THEN X = 999: NEXT : RETURN
4850 & R: IF C% < > D% THEN NEXT : RETURN
4860 X = 999: NEXT : IF F > 1 THEN PRINT : PRINT "WHICH "S$" DO YOU WANT?":F = 0: POP : GOTO 99
4870 RETURN
4900 REM
GET S$
4905 IF NOT LT THEN POP : GOTO 100
4910 IF S$ = "" THEN PRINT : PRINT C$(C)" WHO OR WHAT";: INPUT S$: GOTO 4900
4920 RETURN
5000 REM
DROP
5010 GOSUB 4900: IF S$ = "ALL" THEN 5100
5030 GOSUB 4801: IF NOT F THEN 91
5040 WT = WT - A%(A,3):A%(A,4) = RO: PRINT : PRINT A$(A)" DROPPED.": GOSUB 54
5042 IF A = LS THEN LS = 0:LT = NL: PRINT : PRINT "THE "A$(A)" GOES OUT.": GOSUB 54
5050 IF WT > 10 * M%(0,1) THEN PRINT "YOU SUDDENLY FIND YOU CANNOT CARRY ALL OF THE ITEMS YOU ARE CARRYING, AND THEY ALL FALL TO THE GROUND.":L = L + 3: GOTO 5100
5060 IF A = M%(0,8) THEN M%(0,8) = - 1
5070 GOTO 300
5100 GOSUB 51:B% = NA:D% = - 1: FOR A = 1 TO NA:C% = A: & A,D%,A%(C%,4),C%,B%: IF NOT C% THEN A = 999: GOTO 5150
5110 A = C%: PRINT A$(A)" DROPPED.":A%(A,4) = RO: GOSUB 52
5150 NEXT :WT = 0:M%(0,8) = - 1: GOTO 300
6000 REM
EXAMINE
6010 GOSUB 4900: GOSUB 4804: IF NOT F THEN 6040
6020 IF A%(A,4) = EM THEN A%(A,4) = RO
6032 IF A > NZ THEN PRINT : PRINT "THIS IS YOUR "A$(A)".": GOTO 98
6033 IF A%(A,2) = 8 THEN A%(A,8) = 0
6034 IF A%(A,2) = 6 THEN PRINT " - THERE ARE "A%(A,6)" SWALLOWS LEFT.": GOSUB 56
6035 R = A + 200: GOSUB 45:A%(A,0) = 1: GOTO 300
6040 GOSUB 4700: IF NOT F THEN PRINT : PRINT "YOU SEE NOTHING SPECIAL.": GOTO 98
6050 R = M + 600: GOSUB 45:DF = M: IF M%(M,3) > 1 AND M%(M,13) = 0 THEN PRINT "THEY ARE ";: GOSUB 7652: GOTO 300
6060 DF = M:D2 = 0: GOSUB 7637: GOTO 300
6500 REM
LOOK
6510 V%(RO) = 0: GOTO 300
7000 REM
ATTACK
7010 IF M%(0,8) = - 1 THEN PRINT : PRINT "YOU HAVE NO WEAPON READY!": GOTO 100
7020 TA = 0: GOSUB 4900: GOSUB 4700: IF F THEN 7300
7030 HA = RO: GOSUB 4805: IF NOT F THEN 94
7040 IF A%(A,2) < > 8 AND A%(A,2) < > 4 THEN PRINT : PRINT "WHY WOULD YOU DO THAT?": GOTO 99
7050 D = M%(0,9):S = M%(0,10): IF TA = 1 THEN D = 2:S = 5
7060 SX = 7:K = 6: IF A%(A,2) = 4 THEN SX = SX - 1:K = K - 1
7070 D2 = 0: FOR X = 1 TO D:D2 = D2 + RND (1) * S - 1: NEXT :A%(A,SX) = A%(A,SX) - D2: IF A%(A,SX) < 1 THEN A%(A,SX) = 0:A%(A,K) = 0:A%(A,7) = 1: PRINT : PRINT "THE "A$(A)" SHATTERS!": GOTO 98
7075 IF A%(A,2) = 8 THEN A%(A,8) = 0
7080 PRINT : PRINT "WHAM!! YOU "; MID$ ("HITBLAST",TA * 3 + 1,3 + TA * 2);" THE "A$(A);"!": GOTO 98
7300 OF = 0:DF = M: GOSUB 7500: IF NOT HI THEN 7360
7310 IF HI THEN IF UP THEN WA%(W2) = WA%(W2) + 2
7360 IF M%(DF,11) = 1 OR DF = 0 THEN 300
7370 IF M%(DF,11) > 1 THEN M%(DF,11) = 1 + (M%(DF,11) = 3) * 150:R3 = RO: GOSUB 3600: GOTO 300
7400 REM
MONS P/U WEAP
7410 M2 = ABS (M%(OF,8) + 1): IF A%(M2,4) = RO THEN 7440
7420 M2 = 0: FOR A = 1 TO NA: IF A%(A,4) = RO THEN IF A%(A,2) = 2 OR A%(A,2) = 3 THEN A2 = A%(A,7) * A%(A,8): IF A2 > M2 THEN M2 = A
7430 NEXT
7440 IF M2 THEN PRINT M$(OF)" PICKS UP "A$(M2)".": PRINT :A%(M2,4) = - OF - 1:M%(OF,8) = M2
7450 GOTO 56
7500 REM
DO BATTLE
7505 HI = 0:W = M%(OF,8): IF W < 0 THEN 7400
7507 WM = 50 + 2 * (M%(OF,2) - M%(DF,2) - M%(OF,7) + M%(DF,7)): IF W > 0 THEN WM = WM + A%(W,5) / 2: IF OF = 0 THEN WM = WM + WA%(W2) / 4 + EA
7510 A = A%(W,6) * (W > 0): PRINT M$(OF)" "BV$(A, RND (1) * 3)" AT "M$(DF)
7511 GOSUB 52:RL = 100 * RND (1): IF (RL < 5 OR RL < WM) AND RL < 97 THEN HI = 1: GOTO 7600
7515 A2 = 0: IF M%(DF,8) > 0 THEN A2 = A%(M%(DF,8),6)
7520 IF RL < 97 OR NOT W THEN PRINT " --"RB$(A2, RND (1) * 2)"!": GOTO 56
7525 PRINT " ..A FUMBLE!": GOSUB 52:R = 100 * RND (1): IF R < 41 THEN PRINT " FUMBLE RECOVERED.": GOTO 56
7530 IF R < 81 THEN PRINT " WEAPON DROPPED!":WT = WT - ((OF = 0) * A%(W,3)):A%(W,4) = RO:M%(OF,8) = - OF - 1: GOTO 56
7532 IF A%(W,2) = 3 THEN PRINT "SPARKS FLY FROM "A$(W)"!": GOTO 56
7535 IF R > 95 THEN 7545
7537 IF R < 91 THEN PRINT " WEAPON DAMAGED!":A%(W,8) = A%(W,8) - 1: IF A%(W,8) THEN 56
7540 PRINT " WEAPON BROKEN!":WT = WT - ((OF = 0) * A%(W,3)):A%(W,4) = 0::M%(OF,8) = - 1: IF RND (1) > .5 THEN 54
7545 PRINT " WEAPON HITS USER!": GOSUB 54:DF = OF: ON (R = 100) + 1 GOTO 7605,7610
7600 IF NOT OF THEN UP = (100 * RND (1) > WM + WA%(W2)): IF RND (1) * 100 < WA%(W2) THEN IF ABS (EA) > 10 * RND (1) AND AE < AC * AC THEN AE = AE + 2:EA = AE - AC * AC
7605 D = M%(OF,9):S = M%(OF,10): IF W THEN D = A%(W,7):S = A%(W,8)
7607 A = 1: PRINT MID$ (" ** ++",(DF > 0) * 3 + 1,3);: IF RL > 5 THEN PRINT "A HIT!": GOTO 7633
7610 PRINT "WELL STRUCK!": GOSUB 52:R2 = 100 * RND (1): IF R2 < 51 THEN A = 0: GOTO 7633
7615 RL = 1.5: IF R2 > 85 THEN RL = 2
7620 IF R2 > 95 THEN RL = 3
7625 IF R2 = 100 THEN RL = M%(DF,1)
7630 S = RL * S
7633 GOSUB 52:D2 = 0: FOR D3 = 1 TO D:D2 = D2 + S * RND (1): NEXT :D2 = INT (D2 - A * M%(DF,7)): IF D2 < 1 THEN IF NOT M%(DF,7) THEN PRINT " BLOW TURNED!": GOTO 56
7635 IF D2 < 1 THEN PRINT " BLOW GLANCES OFF ARMOR!": GOTO 56
7636 GOSUB 51
7637 GOSUB 52: IF M%(DF,3) > 1 THEN PRINT "ONE ";
7638 PRINT M$(DF)" IS ";
7640 A = M%(DF,11):F(A) = F(A) + D2:M%(DF,13) = M%(DF,13) + D2: IF M%(DF,13) > = M%(DF,1) THEN 7700
7650 ON M%(DF,13) * 5 / M%(DF,1) + 2 - (M%(DF,13) = 0) GOTO 7652,7655,7660,7665,7670,7675
7652 PRINT "IN PERFECT HEALTH.": GOTO 56
7655 PRINT "OK.": GOTO 56
7660 PRINT "HURT.": GOTO 56
7665 PRINT "BADLY HURT.": GOTO 56
7670 PRINT "GRAVELY INJURED.": GOTO 56
7675 PRINT "DYING.": GOTO 56
7700 REM
MONSTER DIES
7710 PRINT "DEAD!":F(A) = F(A) + M%(DF,1) - M%(DF,13): IF M%(DF,3) > 1 THEN M%(DF,3) = M%(DF,3) - 1:M%(DF,13) = 0: GOTO 56
7720 M%(DF,5) = 0:M%(DF,3) = M%(DF,12): FOR A2 = 1 TO NA: IF A%(A2,4) = - DF - 1 THEN A%(A2,4) = RO
7730 NEXT :M%(DF,8) = - 1
7735 REM A%(DF+X-1,4)=RO:REMREPLACE 'X' WITH ART. # OF FIRST DEAD MONS. IF YOU ARE USING DEAD MONS.
7740 IF DF = 0 THEN DI = 1: POP : GOTO 32000
7750 IF F(1) = > T(1) THEN T(1) = 0
7900 GOTO 56
8000 REM
FLEE
8010 IF NOT T(1) THEN PRINT : PRINT "THERE'S NOTHING TO FLEE FROM!": PRINT : GOTO 100
8020 IF NX = 0 THEN PRINT : PRINT "THERE'S NO PLACE TO GO!": GOTO 100
8030 IF S$ = "" THEN 8500
8040 SL = LEN (S$): FOR X = 1 TO ND: IF S$ = LEFT$ (C$(X),SL) THEN D = X:X = 99
8050 NEXT : GOTO 3030
8500 R2 = RD%(ND * RND (1) + 1): IF R2 < 1 OR R2 > NR THEN 8500
8510 GOTO 3500
9000 REM
GIVE
9010 IF S$ THEN Q$ = " TO ":Q = 4: GOSUB 9800
9040 IF A$ = "" THEN INPUT "GIVE WHAT?";A$
9050 IF VAL (A$) = 0 THEN S$ = A$: GOSUB 4801: IF NOT F THEN 91
9060 IF B$ = "" THEN INPUT "TO WHOM?";B$
9070 S$ = B$: GOSUB 4700: IF NOT F THEN 96
9080 PRINT : PRINT "OKAY.": IF VAL (A$) > 0 THEN 9500
9090 IF A = M%(0,8) THEN M%(0,8) = - 1
9095 IF A%(A,2) = 6 THEN IF M%(M,13) AND A%(A,6) AND A%(A,7) THEN 9300
9100 WT = WT - A%(A,3):A%(A,4) = - M - 1
9110 IF M%(M,8) < 0 THEN IF A%(A,2) = 2 OR A%(A,2) = 3 THEN M%(M,8) = A
9115 IF M%(M,11) < 3 THEN M%(M,11) = 100 + M%(M,11) * (30 + A%(A,1) / 100)
9120 R3 = RO: GOSUB 3600: GOTO 5050
9300 PRINT : PRINT M$(M)" DRINKS THE "A$(A): PRINT " THEN RETURNS IT TO YOU.":L = L + 3: GOSUB 51: IF M%(M,11) < 3 THEN M%(M,11) = 140 + 60 * M%(M,13) / M%(M,1):A%(A,6) = A%(A,6) - 1
9320 M%(M,13) = M%(M,13) - A%(A,5):M%(M,13) = M%(M,13) * (M%(M,13) > 0):DF = M:D2 = 0: GOSUB 7637: GOTO 9120
9500 SL = VAL (A$): IF SL > GO THEN 91
9540 GO = GO - SL: IF M%(M,11) < 3 THEN M%(M,11) = 101 + M%(M,11) * SL / 100
9550 GOTO 9120
9800 REM
PARSE
9810 A$ = "":B$ = "": FOR X = 1 TO LEN (S$): IF MID$ (S$,X,Q) = Q$ AND X > 2 THEN B$ = MID$ (S$,X + Q):A$ = LEFT$ (S$,X - 1):X = 999
9820 NEXT : RETURN
10000 REM
INVEN
10010 IF S$ = "" THEN M = 0:X = - 999: GOTO 10060
10020 IF NOT LT THEN 100
10030 GOSUB 4700: IF NOT F THEN 96
10040 IF M%(M,11) < > 3 THEN FOR M = M TO M: GOTO 15030
10050 X = - M - 1: GOTO 10100
10060 M2 = 0:B% = NA:D% = - 999: FOR A = 1 TO NA:C% = A: & A,D%,A%(C%,4),C%,B%: IF NOT C% THEN A = 999: GOTO 10090
10070 IF NOT M2 THEN M2 = 1: PRINT : PRINT M$(M)" IS WEARING:": GOSUB 54
10080 A = C%: PRINT " "A$(A)
10090 NEXT :X = - 1
10100 PRINT : PRINT M$(M)" IS CARRYING:": GOSUB 54
10110 LK = 0:B% = NA:D% = X: FOR A = 1 TO NA:C% = A: & A,D%,A%(C%,4),C%,B%: IF NOT C% THEN A = 999: GOTO 10130
10120 LK = 1:A = C%: PRINT " "A$(A);: IF A = M%(M,8) THEN PRINT " (READY WEAPON)";
10130 GOSUB 51: NEXT : IF NOT LK THEN PRINT " (NOTHING)": GOSUB 51
10140 IF NOT M THEN PRINT " ";GO;" GOLD PIECES.": GOSUB 54:DF = M:D2 = 0: GOSUB 7638
10150 GOTO 300
11000 REM
BLAST
11010 S = 0: GOSUB 11500: GOSUB 4900: GOSUB 4700: IF NOT F THEN TA = 1: GOTO 7030
11050 PRINT : PRINT "DIRECT HIT!": PRINT :L = L + 3:S = 5:D = 2:DF = M:A = 0: GOSUB 7635: PRINT : GOTO 300
11500 SU = 0: IF SA%(S) THEN RL = 100 * RND (1):SU = (((RL < S2%(S)) OR (RL < 5)) AND (RL < 95))
11505 IF RL = 100 THEN PRINT : PRINT "SPELL BACKLASH!! YOUR ABILITY TO CAST THIS SPELL TEMPORARILY DIMINISHES!":S2%(S) = S2%(S) / 10: POP : GOTO 98
11510 IF NOT SU THEN PRINT : PRINT "NOTHING HAPPENED.": POP : GOTO 98
11520 RL = 100 * RND (1): IF RL > S2%(S) THEN S2%(S) = S2%(S) + 2:SA%(S) = SA%(S) + 2
11530 S2%(S) = S2%(S) * .8
11540 RETURN
12000 REM
HEAL
12010 S = 1: GOSUB 11500:M = 0: IF S$ < > "" THEN GOSUB 4700
12040 GOSUB 56: IF M%(M,13) THEN PRINT M$(M)"'S HEALTH IMPROVES!"
12050 M%(M,13) = M%(M,13) - 3 - 10 * RND (1): IF M%(M,13) < 0 THEN M%(M,13) = 0
12060 DF = M:D2 = 0: GOSUB 7637: GOTO 300
13000 REM
POWER
13010 S = 3: GOSUB 11500:RL = RND (1) * 100: IF RL < 11 AND M%(0,13) THEN PRINT : PRINT "YOUR WOUNDS HEAL!":M%(0,13) = 0: GOTO 98
13050 IF RL < 91 THEN PRINT : PRINT "YOU HEAR A VERY LOUD SONIC BOOM": PRINT " THAT ECHOES THROUGH THE TUNNELS.": PRINT : GOSUB 52: GOTO 98
13070 FOR M = 1 TO NM: IF M%(M,5) = RO THEN PRINT M$(M)" HEALS!": GOSUB 51:M%(M,13) = 0
13080 NEXT :R3 = RO: GOSUB 3600: GOTO 300
14000 REM
SPEED
14010 S = 2: GOSUB 11500
14020 IF SP THEN PRINT : PRINT "NOTHING HAPPENED": GOTO 98
14040 M%(0,2) = M%(0,2) * 2:SP = SP + 25 * RND (1) + 10: PRINT : PRINT "YOUR MOVEMENTS QUICKEN!": GOTO 98
15000 REM
SMILE
15005 IF NOT LT THEN 100
15010 PRINT : FOR M = 1 TO NM: IF M%(M,5) < > RO THEN NEXT : GOTO 300
15030 GOSUB 52: PRINT M$(M);: IF M%(M,3) > 1 THEN PRINT "S";
15040 PRINT " "SM$(M%(M,11));: IF M%(M,3) = 1 THEN PRINT "S";
15050 PRINT " AT YOU."
15100 NEXT : GOSUB 51: GOTO 300
16000 REM
SAY
16010 GOSUB 4900
16900 PRINT : PRINT "OKAY, " CHR$ (34)S$ CHR$ (34): PRINT : GOTO 98
17000 REM
READY
17010 GOSUB 4900: GOSUB 4801: IF NOT F THEN 91
17030 IF A%(A,2) < 2 OR A%(A,2) > 3 THEN PRINT : PRINT "THAT ISN'T A WEAPON!": GOTO 99
17100 M%(0,8) = A:M%(0,9) = A%(A,7):M%(0,10) = A%(A,8):W2 = A%(A,6): PRINT : PRINT A$(A)" READIED.": GOTO 98
18000 REM
SAVE
18010 PRINT : PRINT "DO YOU WANT TO SAVE THIS GAME? ": PRINT "(Y/N) :";
18020 GET A$: IF A$ < > "Y" AND A$ < > "N" THEN 18020
18030 PRINT A$: IF A$ = "N" THEN 100
18040 PRINT D$"CLOSE":X = FRE (0): PRINT D$"BSAVE GAME.PTRS,A$69,L8"
18060 PRINT D$"BSAVE GAME.SVAR,A" PEEK (105) + PEEK (106) * 256",L" PEEK (109) + PEEK (110) * 256 - PEEK (105) - PEEK (106) * 256 + 1
18070 PRINT D$"BSAVE GAME.STR,A" PEEK (111) + PEEK (112) * 256",L" PEEK (115) + PEEK (116) * 256 - PEEK (111) - PEEK (112) * 256 + 1
18080 PRINT : PRINT "THE GAME IS NOW SAVED. YOU CAN BOOT THISDISKETTE, OR RUN THE PROGRAM 'MAIN PGM' TO RESTART THE GAME."
18090 PRINT : PRINT : INPUT "RESUME PLAY? ";A$: IF LEFT$ (A$,1) < > "N" THEN 29060
18100 END
19000 REM
LIGHT
19010 GOSUB 4910: GOSUB 4801: IF NOT F THEN 91
19040 PRINT :LT = NL: IF A%(A,2) < > 5 OR A%(A,5) < 1 THEN PRINT "IT WON'T LIGHT!": GOTO 98
19050 LT = 1:LS = A: PRINT "YOU'VE MANAGED TO LIGHT THE "A$(A)".": GOTO 98
20000 REM
OPEN
20010 GOSUB 4900: GOSUB 4804: IF NOT F THEN 20060
20020 IF A%(A,4) = RO + 200 THEN A%(A,4) = RO
20030 GOSUB 51:X = A%(A,2): IF X = 4 OR X = 6 OR X = 7 THEN 20100
20050 IF X = 8 THEN 20300
20060 IF S$ = "DOOR" OR S$ = "GATE" THEN PRINT "TRY GOING IN THAT DIRECTION.": GOTO 99
20070 PRINT "IT WON'T OPEN.": GOTO 99
20100 REM
OPENABLE
20110 IF A%(A,7) THEN IF X = 6 OR X = 7 THEN PRINT : PRINT "IT IS ALREADY OPEN.": GOTO 98
20120 IF X = 4 THEN A%(A,8) = 0: IF A%(A,5) AND A%(A%(A,5),4) < > - 1 THEN PRINT "IT'S LOCKED!": GOTO 99
20130 A%(A,7) = 1: PRINT : PRINT "OPENED.": IF X = 6 OR X = 7 THEN GOTO 98
20200 REM
CONT.
20220 GOSUB 54:LK = 0: FOR X = 1 TO NA: IF A%(X,4) = A + 500 THEN A%(X,4) = RO:LK = 1
20230 NEXT : PRINT "YOU FIND " MID$ ("NOSOME",LK * 2 + 1,2 + 2 * LK)"THING INSIDE.": GOTO 98
20300 REM
DOOR
20310 IF A%(A,6) > 0 THEN IF A%(A%(A,6),4) < > - 1 THEN PRINT "IT'S LOCKED!": GOTO 99
20330 A%(A,8) = 0:A%(A,6) = 0:A%(A,4) = RO: PRINT "YOU'VE OPENED THE "A$(A)".": FOR X = 1 TO ND: IF RD%(X) = A + 500 THEN RD%(X) = A%(A,5)
20340 NEXT : GOTO 98
21000 REM
PUT
21010 IF S$ THEN Q$ = " IN ":Q = 4: GOSUB 9800: IF A$ = "" THEN Q$ = " ON ":Q = 4: GOSUB 9800
21040 IF A$ = "" THEN PRINT : INPUT "PUT WHAT?";A$: INPUT "PUT IN/ON WHAT?";B$
21100 S$ = A$:M = 0: GOSUB 4804: IF NOT F THEN 21150
21110 Z = A:S$ = B$: GOSUB 4804: IF A = Z OR NOT F THEN 21150
21120 IF A%(A,2) < > 4 THEN 21150
21130 IF NOT A%(A,7) THEN 92
21140 A%(Z,4) = A + 500: PRINT : PRINT "OKAY.": GOTO 98
21150 PRINT : PRINT "YOU CAN'T DO THAT.": GOTO 98
22000 REM
DRINK
22010 GOSUB 4900: GOSUB 4804: IF NOT F THEN 94
22020 IF A%(A,2) < > 6 THEN 94
22030 IF NOT A%(A,7) THEN 92
22110 IF A%(A,6) < 1 THEN PRINT : PRINT "THERE'S NONE LEFT.": GOTO 98
22130 A%(A,6) = A%(A,6) - 1:M%(0,13) = M%(0,13) - A%(A,5): PRINT : PRINT "YOU FEEL " MID$ ("BETTERWORSE",(A%(A,5) < 0) * 6 + 1,6)"!": IF M%(0,13) < 0 THEN M%(0,13) = 0
22140 GOSUB 54:DF = 0:D2 = 0: GOSUB 7638
22190 GOTO 300
23000 REM
READ
23010 GOSUB 4900: GOSUB 4804: IF NOT F THEN 94
23020 IF A%(A,2) < > 7 THEN 94
23030 IF NOT A%(A,7) THEN 92
23040 PRINT : PRINT "IT SAYS:":L = L + 2
23210 PRINT : FOR X = 1 TO A%(A,6):R = A%(A,5) + 399 + X: GOSUB 45: NEXT : GOTO 300
24000 REM
FREE
24010 GOSUB 4900: GOSUB 4804: IF NOT F THEN 94
24020 IF A%(A,2) < > 10 THEN 94
24030 M = A%(A,5):K = A%(A,6):G = A%(A,7)
24120 IF M%(G,5) = RO THEN PRINT : PRINT M$(G)" WON'T LET YOU DO THAT!": GOTO 98
24130 IF A%(K,4) < > - 1 AND K < > 0 THEN PRINT : PRINT "YOU DON'T HAVE THE KEY!": GOTO 100
24150 PRINT : PRINT "YOU HAVE FREED "M$(M)".":M%(M,5) = RO:A%(A,4) = 0:R3 = RO: GOSUB 3600: GOTO 98
25000 REM
REQUEST
25010 IF S$ THEN Q$ = " FROM ":Q = 6: GOSUB 9800
25040 IF A$ = "" THEN GOSUB 4900:A$ = S$: INPUT "FROM WHOM?";B$
25050 S$ = B$: GOSUB 4700: IF NOT F THEN 96
25060 IF M%(M,11) < 2 THEN FOR M = M TO M: GOTO 15030
25070 S$ = A$:HA = ( - M - 1):WH = HA:EM = HA: GOSUB 4810: IF NOT F THEN PRINT : PRINT M$(M)" DOESN'T HAVE IT.": GOTO 98
25080 PRINT : PRINT "OKAY.": GOSUB 54:A%(A,4) = - 1:WT = WT + A%(A,3): IF A = M%(M,8) THEN M%(M,8) = - M - 1
25090 GOTO 5050
26000 REM
WEAR
26010 GOSUB 4900:HA = - 1:WH = RO:EM = - 999: GOSUB 4810: IF NOT F THEN 94
26015 IF A%(A,4) = EM THEN 26100
26020 IF A%(A,2) < > 11 THEN 94
26030 IF NOT A%(A,5) THEN 26080
26040 IF A%(A,5) = 1 AND SH THEN 26100
26050 IF A%(A,5) = 1 THEN SH = A:M%(0,7) = M%(0,7) + 1: GOTO 26080
26060 IF AR THEN 26100
26070 AR = A:M%(0,7) = M%(0,7) + AC / 2
26080 A%(A,4) = - 999: PRINT : PRINT A$(A)" WORN.": GOTO 98
26100 PRINT : PRINT "YOU'RE ALREADY WEARING ONE!": GOTO 98
27000 REM
REMOVE
27010 GOSUB 4900:HA = - 999:EM = HA:WH = HA: GOSUB 4810: IF NOT F THEN PRINT : PRINT "YOU AREN'T WEARING IT.": GOTO 99
27020 IF A = SH THEN M%(0,7) = M%(0,7) - 1:SH = 0
27030 IF A = AR THEN M%(0,7) = M%(0,7) - A%(A,5) / 2:AR = 0
27040 A%(A,4) = - 1: PRINT : PRINT A$(A)" REMOVED.": GOTO 98
28000 REM
USE
28010 REM ///INSERT YOUR OWN SPECIAL STUFF HERE
28900 PRINT : PRINT "TRY ANOTHER COMMAND.": GOTO 98
29000 REM
RESUME GAME
29005 POKE 216,0
29010 PRINT : PRINT "DO YOU WANT TO RESUME THE SAVED GAME?": PRINT " Y OR N:";
29020 GET A$: IF A$ < > "Y" AND A$ < > "N" THEN 29020
29030 PRINT A$: IF A$ = "N" THEN PRINT D$"DELETE GAME.PTRS": PRINT D$"DELETE GAME.SVAR": PRINT D$"DELETE GAME.STR": RUN
29040 PRINT CHR$ (4)"BLOAD GAME.PTRS": PRINT CHR$ (4)"BLOAD GAME.SVAR": PRINT CHR$ (4)"BLOAD GAME.STR"
29050 PRINT CHR$ (26)"1": PRINT CHR$ (21): HOME : IF CP = 80 THEN PRINT D$;"PR#3": PRINT CHR$ (12): HOME
29060 PRINT D$"OPEN"ED$",L242": PRINT D$"OPEN"ER$",L"LR
29070 F = 0:A$ = "":CZ$ = "": GOTO 100
31000 REM
INIT
31005 ER$ = "EAMON.ROOMS":ED$ = "EAMON.DESC"
31010 POKE 216,0: PRINT D$"OPEN"ED$: PRINT D$"READ"ED$: INPUT NR,NZ,NE,NM,LR,LM,LA: PRINT D$"CLOSE"
31015 NA = NZ + 6: DIM A$(NA),A%(NA,8),M$(NM),M%(NM,13),V%(NR),SA%(3),S2%(3),SM$(3),BV$(5,2),RB$(5,1),WA%(5)
31020 PRINT D$"OPEN EAMON.ARTIFACTS,L"LA: FOR A = 1 TO NZ: PRINT D$"READ EAMON.ARTIFACTS,R"A: INPUT A$(A): FOR A2 = 1 TO 8: INPUT A%(A,A2): NEXT
31030 NEXT : PRINT D$"OPEN EAMON.MONSTERS,L"LM: FOR A = 1 TO NM: PRINT D$;"READ EAMON.MONSTERS,R"A: INPUT M$(A): FOR A2 = 1 TO 11: INPUT M%(A,A2)
31035 NEXT :M%(A,12) = M%(A,3):M = M%(A,6) * M%(A,3):M%(A,6) = 31000: IF M < M%(A,6) THEN M%(A,6) = M
31038 NEXT
31039 REM GOTO 33500:REMFAST.START
31040 PRINT D$"OPEN FRESH MEAT": PRINT D$"READ FRESH MEAT": INPUT RE: INPUT M$(0),M%(0,1),M%(0,2),CH: FOR A = 0 TO 3: INPUT SA%(A):S2%(A) = SA%(A): NEXT : FOR A = 1 TO 5: INPUT WA%(A): NEXT : INPUT AE,SE$,GO,BA,AC
31050 NA = NZ: FOR A = NZ + 1 TO NZ + 4: INPUT A$(A),A%(A,6),A%(A,5),A%(A,7),A%(A,8)
31052 IF A$(A) < > "NONE" THEN NA = NA + 1:A%(A,2) = 2 + (A%(A,7) * A%(A,8) > 25):A%(A,3) = 2:A%(A,4) = - 1:WT = WT + 2
31054 NEXT : PRINT D$"CLOSE"
31055 REM ?D$"DELETE FRESH MEAT"
31060 PRINT D$"OPEN"ED$",L242": PRINT D$"OPEN"ER$",L";LR:M%(0,8) = NZ + 1:M%(0,9) = A%(NZ + 1,7):M%(0,10) = A%(NZ + 1,8)
31080 FOR W2 = NZ + 1 TO NA
31090 FOR A = 1 TO NZ: IF A$(A) = A$(W2) THEN A$(A) = A$(A) + "#":A = 999: NEXT : GOTO 31090
31100 NEXT : NEXT :B% = AC / 2: IF B% THEN NA = NA + 1:AR = NA:A$(NA) = MID$ ("LEATHER CHAIN MAIL PLATE ARMOR",B% * 11 - 10,7 + 3 * (B% > 1) + B%( > 2)):A%(NA,2) = 11:A%(NA,3) = B% * 7:A%(NA,4) = - 999:WT = WT + B% * 7:A%(NA,5) = B% * 2
31110 SH = ( INT (AC / 2) < > AC / 2): IF SH THEN NA = NA + 1:SH = NA:A$(NA) = "SHIELD":A%(NA,2) = 11:A%(NA,3) = 10:A%(NA,4) = - 999:WT = WT + 10:A%(NA,5) = 1
31111 M%(0,7) = B% + (SH > 0):M%(0,11) = 3
31120 EA = 0: IF AE < AC * AC THEN EA = AE - AC * AC
31130 READ NC: DIM C$(NC + 3): FOR C = 1 TO NC: READ C$(C): NEXT :CC = INT (NC / 3) + 1:R2 = 1
31140 W2 = 0:RO = 1:ND = 6:FF$ = CHR$ (12)
31410 FOR A = 1 TO 3: READ SM$(A): NEXT
31420 FOR A = 0 TO 5: FOR A2 = 0 TO 2: READ BV$(A,A2): NEXT : NEXT : FOR A = 0 TO 5: FOR A2 = 0 TO 1: READ RB$(A,A2): NEXT : NEXT
31430 L = 50:CP = PEEK (768): IF CP < > 80 THEN CP = 40
31440 W2 = A%(M%(0,8),6)
31900 GOTO 3500
31910 DATA 32
31920 DATA NORTH,SOUTH,EAST,WEST,UP,DOWN,GET,DROP,LOOK,EXAMINE,ATTACK,FLEE,GIVE,INVENTORY,BLAST,HEAL,POWER,SPEED,SMILE,SAY,READ,READY,SAVE,LIGHT,OPEN,PUT,DRINK,FREE,REQUEST,WEAR,REMOVE,USE
31930 REM (INSERT ADDITIONAL COMMANDS HERE)
31940 DATA GROWL,LOOK,SMILE
31945 DATA LUNGES,TEARS,CLAWS,SWINGS,CHOPS,SWINGS,SHOOTS,SHOOTS,SHOOTS,SWINGS,SWINGS,SWINGS,STABS,LUNGES,JABS,SWINGS,CHOPS,STABS
31950 DATA MISSED,MISSED,PARRIED,MISSED,MISSED,MISSED,PARRIED,MISSED,PARRIED,MISSED,PARRIED,MISSED
32000 REM
DONE
32010 PRINT : POKE - 16368,0: GOSUB 59: PRINT
32020 PRINT D$"CLOSE": IF SP THEN M%(0,2) = M%(0,2) / 2
32030 IF DI THEN 32500
32040 DIM WP%(NA),WP$(NA): FOR W = 1 TO 4:WP$(W) = "NONE": NEXT :W2 = 0: FOR A = 1 TO NA: IF A%(A,4) = - 1 THEN IF A%(A,2) = 2 OR A%(A,2) = 3 THEN W2 = W2 + 1:WP$(W2) = A$(A):WP%(W2) = A:A%(A,4) = 0
32050 NEXT : IF W2 < 5 THEN 32300
32060 PRINT FF$: HOME : PRINT "AS YOU ENTER THE MAIN HALL, LORD WILLIAM CRANKHANDLE APPROACHES AND SAYS, 'YOU HAVE TOO MANY WEAPONS -- 4 IS THE LEGAL LIMIT.": PRINT : PRINT "YOUR WEAPONS ARE:"
32070 FOR W = 1 TO W2: PRINT SPC( 4);W;"--";WP$(W): NEXT : PRINT : PRINT "ENTER THE NUMBER OF THE WEAPON TO SELL (1-";W2;") "
32080 VTAB PEEK (37) + 1: INPUT A$:W5 = VAL (A$): IF W5 < 1 OR W5 > W2 THEN 32080
32090 A%(WP%(W5),4) = - 1:WP$(W5) = WP$(W2):WP%(W5) = WP%(W2):W2 = W2 - 1: IF W2 > 4 THEN 32060
32300 DIM WD%(4,4): FOR W = 1 TO 4: IF WP%(W) THEN A = WP%(W):WD%(W,1) = A%(A,6):WD%(W,2) = A%(A,5):WD%(W,3) = A%(A,7):WD%(W,4) = A%(A,8):A%(A,4) = 0
32310 NEXT : PRINT FF$: HOME : PRINT " YOU SELL YOUR GOODS TO THE LOCAL BUYER OF TREASURE (UNDER THE SIGN OF 3 BALLS). HE PAYS YOU ";
32315 A%(SH,4) = 0:A%(AR,4) = 0
32320 TP = 0: FOR A = 1 TO NA: IF A%(A,4) = - 1 THEN TP = TP + A%(A,1) * ((A%(A,2) < > 0) * CH / 10 + (A%(A,2) = 0))
32350 NEXT :TP = INT (TP): PRINT TP;" GOLD PIECES.": PRINT
32360 GO = GO + TP: IF GO < 0 THEN GO = 0
32370 PRINT : GOSUB 59: PRINT
32500 ONERR GOTO 32510
32505 PRINT CHR$ (26)"1": REM TURN OFF VIDEX 80-COL
32506 PRINT CHR$ (21): REM TURN OFF //E 80-COL
32510 HOME : VTAB 5: PRINT "(INSERT EAMON MASTER DISKETTE, THEN": PRINT " HIT THE 'C' KEY) ";: POKE - 16368,0
32520 GET A$: IF A$ < > "C" THEN 32520
32530 PRINT A$
32540 IF DI THEN PRINT D$"OPEN THE ADVENTURER": PRINT D$"DELETE THE ADVENTURER": GOTO 32900
32550 PRINT D$"OPEN CHARACTERS,L150": PRINT D$"WRITE CHARACTERS,R";RE: PRINT M$(0): PRINT M%(0,1): PRINT M%(0,2): PRINT CH: FOR A = 0 TO 3: PRINT SA%(A): NEXT
32555 AC = M%(0,7) * 2: IF SH THEN AC = AC - 1
32560 FOR A = 1 TO 5: PRINT WA%(A): NEXT : PRINT AE: PRINT SE$: PRINT GO: PRINT BA: PRINT AC: FOR A = 1 TO 4: PRINT WP$(A): FOR M = 1 TO 4: PRINT WD%(A,M): NEXT : NEXT
32570 PRINT D$"OPEN THE ADVENTURER": PRINT D$"WRITE THE ADVENTURER": PRINT M$(0): PRINT RE: PRINT D$"CLOSE"
32900 PRINT D$"RUN MAIN HALL"
33000 REM
FAST START
33005 HM = PEEK (115) + PEEK (116) * 256:A = HM - 290:A2 = INT (A / 256): POKE 1014,A + 1 - A2 * 256: POKE 1015,A2: HIMEM: A:D$ = CHR$ (4): PRINT D$"BLOAD EAMON 7.1 SEARCH ROUTINE,A"A + 1
33010 ONERR GOTO 33020
33015 PRINT D$"VERIFY GAME.PTRS": GOTO 29000
33020 ONERR GOTO 31000
33025 PRINT D$"VERIFY FS.PARMS": PRINT D$"OPEN FS.PARMS": PRINT D$"READ FS.PARMS": INPUT A: INPUT B: PRINT D$"CLOSE"
33030 IF PEEK (105) + PEEK (106) * 256 = A AND PEEK (115) + PEEK (116) * 256 = B THEN PRINT CHR$ (4)"BLOAD FS.PTRS": PRINT CHR$ (4)"BLOAD FS.SVAR": PRINT CHR$ (4)"BLOAD FS.STR": POKE 216,0: GOTO 31040
33035 PRINT CHR$ (4)"DELETE FS.PARMS": GOTO 31000
33500 X = FRE (0):A = PEEK (105) + PEEK (106) * 256:M = PEEK (115) + PEEK (116) * 256: PRINT D$"OPEN FS.PARMS": PRINT D$"WRITE FS.PARMS": PRINT A: PRINT M: PRINT D$"CLOSE"
33510 PRINT D$"BSAVE FS.PTRS,A$69,L8"
33520 PRINT D$"BSAVE FS.SVAR,A"A",L" PEEK (109) + PEEK (110) * 256 - A + 1
33530 PRINT D$"BSAVE FS.STR,A" PEEK (111) + PEEK (112) * 256",L"M - PEEK (111) - PEEK (112) * 256 + 1
33540 GOTO 31040