Source:Main Program 7.1

From Eamon Wiki
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

Eamon Dungeon Designer version 7.1

Date

15 January 1995

Author

Tom Zuchowski, Donald Brown

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