Source:Eamon Master 1.2 Main Hall (ProDOS)

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

The Applesoft BASIC source code of the ProDOS Main Hall program from the standard Eamon Master (version 1.2) provided by the Eamon Adventurer's Guild.

Source

Eamon Master 1 from EAG Online

Date

2 June 1991

Author

Donald Brown, John Nelson, Tom Zuchowski

License

It is believed that the use of this copyrighted item in Eamon Wiki qualifies as fair use under the copyright law of the United States.

Other versions

Source:Eamon Master 1.2 Main Hall (DOS 3.3)

1  REM 

THE WONDERFUL WORLD OF EAMON

	 MAIN HALL

(BUY SPELLS AND EQUIPMENT
AND GO ON ADVENTURES)

ORIGINATED BY DONALD BROWN

5  REM PRODOS CONVERSION 1/11/90 TJZ
6  REM LC CONVERSION 'MHT'
7  REM  LAST UPDATE 6/2/91
10  REM 

EAMON ADVENTURER'S GUILD
7625 HAWKHAVEN DR.
CLEMMONS, NC 27012


12 D$ =  CHR$ (4)
13  ONERR  GOTO 15
14  PRINT D$"VERIFY UC": PRINT D$"-LCASE.KILLER"
15  POKE 216,0
17  PRINT D$"PREFIX": INPUT PX$
18 TT = 255: DIM B$(TT),DR$(7,2),PM$(10)
20  ONERR  GOTO 7000
25  PRINT D$"VERIFY THE.ADVENTURER"
30  PRINT D$;"OPEN THE.ADVENTURER": PRINT D$;"READ THE.ADVENTURER": INPUT NAME$: INPUT REC: PRINT D$;"CLOSE": POKE 216,0
40  ONERR  GOTO 102
50  PRINT D$;"OPEN CHARACTERS,L150": PRINT D$;"READ CHARACTERS,R";REC: INPUT NAME$: INPUT HD,AG,CH: FOR X = 1 TO 4: INPUT SA%(X): NEXT : FOR X = 1 TO 5: INPUT WA%(X): NEXT : INPUT AE
60  INPUT SEX$
70  INPUT GO,BA: INPUT AC: FOR W = 1 TO 4: INPUT WNAME$(W),WTYPE%(W),WODDS%(W),WDICE%(W),WSIDES%(W): NEXT W: PRINT D$;"CLOSE"
80  DEF  FN P(X) =  INT (X * RTIO + .5)
82 TT = 255: DIM B$(TT),DR$(7,2),PM$(10)
90  GOTO 102
100  PRINT : POKE  - 16368,0: PRINT "      (Hit any key to continue) ": GET A$: PRINT A$
102  POKE 216,0: HOME : VTAB 3: PRINT "As you wander about the hall, you": PRINT "realize you can do one of six things--": PRINT 
105  PRINT : PRINT "  1. Go on an Adventure.": PRINT : PRINT "  2. Visit the Weapon Shop for weapons": HTAB 8: PRINT "and/or armour."
110  PRINT "  3. Hire a Wizard to teach you some": HTAB 8: PRINT "spells.": PRINT "  4. Find the Banker to deposit or"
115  HTAB 8: PRINT "withdraw some gold.": PRINT "  5. Examine your abilities.": PRINT : PRINT "  6. Temporarily leave the Universe."
120  PRINT : PRINT : PRINT "(Hit the key for your choice, 1-6)";
130  POKE  - 16368,0: GET A$:CMD =  VAL (A$): IF CMD < 1 OR CMD > 6 THEN 130
140  PRINT CMD: PRINT : ON CMD GOTO 1000,2000,3000,4000,5000,6000
200  PRINT NAME$: PRINT HD: PRINT AG: PRINT CH: FOR X = 1 TO 4: PRINT SA%(X): NEXT : FOR X = 1 TO 5: PRINT WA%(X): NEXT : PRINT AE: PRINT SEX$
210  PRINT GO: PRINT BA: PRINT AC: FOR W = 1 TO 4: PRINT WNAME$(W): PRINT WTYPE%(W): PRINT WOODS%(W): PRINT WDICE%(W): PRINT WSIDES%(W): NEXT W
220  RETURN 
1000  REM 

GO ON ADVENTURE

1010  HOME : PRINT D$;"OPEN CHARACTERS,L150": PRINT D$;"WRITE CHARACTERS,R";REC: PRINT : PRINT D$;"CLOSE"
1020 CX$ = PX$
1030  IF  RIGHT$ (CX$,1) <  > "/" THEN CX$ = CX$ + "/"
1040  GOSUB 8900: VTAB 8
1060  PRINT "Type: (V)olumes On-Line": PRINT "      (F)olders Available": PRINT "      (C)lose Current Folder"
1065  PRINT "      <ESC>ape to Main Menu": PRINT "      (/) to type Pathname or Prefix: ": POKE  - 16368,0: GET AX$: PRINT AX$: IF AX$ =  CHR$ (3) THEN  END 
1070  IF AX$ =  CHR$ (27) THEN 1800
1075  IF AX$ = "V" THEN 8000
1080  IF AX$ = "F" THEN 1200
1085  IF AX$ = "C" THEN 8500
1090  IF AX$ = "/" THEN 1092
1091  GOTO 1030
1092  PRINT : PRINT "Type Pathname or Prefix": PRINT : INPUT "/";AX$:A$ = CX$:CX$ = "/" + AX$ + "/"
1095 C = 0: ONERR  GOTO 1097
1096  PRINT D$"PREFIX"CX$: POKE 216,0: GOTO 1220
1097  IF C THEN  POKE 216,0: GOTO 1217
1098 CX$ = A$ + AX$:C = 1: GOTO 1096
1099  GOSUB 8900
1100  VTAB 9: PRINT "Available Folders:":X = 0
1102  ONERR  GOTO 1125
1105  PRINT : PRINT D$"OPEN"CX$",TDIR": PRINT D$"READ"CX$: INPUT A$: INPUT A$: INPUT A$
1110  INPUT B$: IF B$ = "" THEN 1125
1120  IF  MID$ (B$,18,3) <  > "DIR" THEN 1110
1121 X = X + 1:B$(X) =  MID$ (B$,2,16)
1122  IF  RIGHT$ (B$(X),1) = " " THEN B$(X) =  LEFT$ (B$(X), LEN (B$(X)) - 1): GOTO 1122
1123  PRINT B$(X): GOTO 1110
1125  POKE 216,0: PRINT D$"CLOSE": IF  NOT X THEN  INVERSE : HTAB 15: PRINT "NO FOLDERS": NORMAL : GET A$: PRINT A$: GOTO 1040
1130  PRINT :DX$ = "":A1 = 1:B = 1: PRINT : PRINT "<ARROW> keys step through Folders       <RETURN> key to select Folder           <ESC>ape to previous menu               (/) to type folder name": PRINT : PRINT 
1131 B$(X + 1) = "": IF X > 13 THEN 1160
1132 VT =  PEEK (37):B1 = B
1133  VTAB VT - X + B1 - 7: PRINT B$(B1 + 1)
1134  VTAB VT - X + B - 8: INVERSE : PRINT B$(B): NORMAL : VTAB VT: HTAB A1
1135  VTAB VT - X + B1 - 9: HTAB 1: PRINT B$(B1 - 1 + ( NOT B1)): IF B2 THEN B2 = 0:B1 = B: VTAB VT - X + B - 8
1136  INVERSE : PRINT B$(B): NORMAL : VTAB VT: HTAB A1
1137  POKE  - 16368,0: GET A$:A =  ASC (A$)
1138  IF A = 47 THEN  VTAB VT - X + B - 8: PRINT B$(B): GOTO 9000
1139  IF A = 3 THEN  END 
1140  IF A = 21 OR A = 10 THEN RV = 0:B = B + 1:B1 = B1 + 1: IF B > X THEN B2 = 1:B = 1
1141  IF A = 8 OR A = 11 THEN RV = 1:B = B - 1:B1 = B1 - 1: IF B <  = 0 THEN B2 = 1:B = X
1142  IF A = 21 OR A = 10 THEN 1135
1143  IF A = 8 OR A = 11 THEN 1133
1144  IF A = 27 THEN 1030
1146  IF A = 13 THEN CX$ = CX$ + B$(B): GOTO 1210
1150  PRINT  CHR$ (7);: GOTO 1137
1160  PRINT 
1162  VTAB 22: PRINT "               ";: HTAB 1: INVERSE : PRINT B$(B): NORMAL : PRINT 
1163  POKE  - 16368,0: GET A$:A =  ASC (A$): IF A = 21 OR A = 10 THEN B = B + 1
1164  IF A = 47 THEN  VTAB 22: PRINT "                ";: HTAB 1: GOTO 9000
1165  IF A = 8 OR A = 11 THEN B = B - 1
1166  IF B = X + 1 THEN B = X
1167  IF B = 0 THEN B = 1
1168  IF A = 21 OR A = 10 OR A = 8 OR A = 11 THEN 1162
1170  IF A = 27 THEN 1030
1172  IF A = 13 THEN CX$ = CX$ + B$(B): GOTO 1210
1176  PRINT  CHR$ (7);: GOTO 1163
1177  VTAB 22: PRINT "                ";: HTAB 1
1190  IF  LEFT$ (AX$,1) = "/" THEN AX$ =  MID$ (AX$,2)
1192 A$ = CX$:CX$ = CX$ + AX$: PRINT : PRINT "PREFIX:": PRINT "   ";CX$: GOTO 1210
1200 AX$ = CX$: PRINT CX$
1205 CX$ = AX$: IF  LEFT$ (CX$,1) <  > "/" THEN CX$ = "/" + CX$
1210  ONERR  GOTO 1217
1215  PRINT D$"PREFIX"CX$: GOTO 1220
1217  GOSUB 8900: PRINT : HTAB 12: INVERSE : PRINT "PATHNAME ERROR": NORMAL : PRINT :CX$ = A$: GOTO 1060
1220  ONERR  GOTO 1250
1230  PRINT D$"VERIFY LEADIN"
1233  IF CX$ = PX$ THEN  POKE 216,0: GOSUB 8900: PRINT  CHR$ (7): INVERSE : PRINT "ADVENTURE DETECTED IN MAIN.HALL FOLDER.  PUT THIS ADVENTURE IN ITS OWN FOLDER.  ";: NORMAL : GOTO 1255
1240  POKE 216,0: GOTO 1500
1250  POKE 216,0: GOSUB 8900: PRINT : PRINT 
1255  FOR A = 1 TO 2000: NEXT : IF  RIGHT$ (CX$,1) <  > "/" THEN CX$ = CX$ + "/"
1260  GOTO 1100
1500  POKE 216,0: PRINT D$;"OPEN EAMON.NAME": PRINT D$;"READ EAMON.NAME": INPUT AD$: PRINT D$;"CLOSE"
1510  HOME : VTAB 5: PRINT "You are about to adventure in": PRINT : INVERSE : PRINT AD$: NORMAL : PRINT : PRINT 
1520  PRINT D$"OPEN EAMON.PREFIX": PRINT D$"WRITE EAMON.PREFIX": PRINT PX$: PRINT D$"CLOSE"
1530  PRINT D$;"OPEN FRESH.MEAT": PRINT D$;"WRITE FRESH.MEAT": PRINT REC: GOSUB 200: PRINT D$;"CLOSE"
1540  ONERR  GOTO 1560
1550  PRINT D$"DELETE SAVED.GAME"
1560  POKE 216,0
1580  PRINT D$;"RUN LEADIN"
1800  ONERR  GOTO 1805
1802  PRINT D$"PREFIX"PX$: POKE 216,0: GOTO 102
1805  POKE 216,0: PRINT : PRINT "Prefix: "PX$: PRINT : PRINT "Insert Master Disk and type 'C'"
1806  GET A$: IF A$ <  > "C" THEN  PRINT  CHR$ (7): GOTO 1806
1810  PRINT A$: GOTO 1800
2000  PRINT : PRINT "As you enter the Weapon Shop, Marcos": PRINT "Cavielli (the owner) comes from out of": PRINT "the back room and says, 'Well, as I"
2010  PRINT "live and breathe, if it isn't my old pal";: PRINT NAME$;"!  So, you want to": PRINT "buy a weapon, sell a weapon, or get": PRINT "some better armour?": PRINT : PRINT "(Hit the key, B S or A)   ";
2020 C2 = CH +  INT (11 *  RND (1) - 5):C2 = C2 + (C2 = 0):RTIO = 10 / C2
2030  POKE  - 16368,0: GET A$: FOR TR = 1 TO 3: IF A$ <  >  MID$ ("BSA",TR,1) THEN  NEXT : GOTO 2030
2040  PRINT A$: PRINT : ON TR GOTO 2050,2220,2490
2050  IF WN$(4) <  > "NONE" THEN  PRINT "Marcos smiles at you and says, 'Thatsa": PRINT "good, but first you gotta sell me a": PRINT "weapon. you know the law--no more than": PRINT "four weapons per person!'": PRINT : GOTO 2220
2060  PRINT "Marcos smiles at you and says, 'Good.": PRINT "I gotta the best. You wanta axe, bow,": PRINT "mace, spear, or sword?": PRINT : GOSUB 2650
2070  PRINT : PRINT "Marcos says, 'Well, I just happen to": PRINT "have three ";N$;"s in, of varying": PRINT "quality. I've got a very good one for": PRINT  FN P(2 * BP);" GP, a fair one for "; FN P(BP);" GP,"
2080  PRINT "and a kinda shabby one for "; FN P(BP / 2): PRINT "Which do you want?'": PRINT : PRINT "(Hit the key, G F OR P)   ";
2090  POKE  - 16368,0: GET A$: FOR Q = 1 TO 3: IF A$ <  >  MID$ ("GFP",Q,1) THEN  NEXT : GOTO 2090
2100  PRINT A$:P = BP + BP * (Q = 1) - BP / 2 * (Q = 3):P =  FN P(P)
2110  IF P > GOLD THEN  PRINT : PRINT "Marcos shakes a finger at you and says,": PRINT "'You shouldn't play tricks on an old"
2115  IF P > GOLD THEN  PRINT "friend! Come back when you gotta more": PRINT "gold or you want something you can": PRINT "afford.' He then shoos you out the": PRINT "door.": PRINT : GOTO 100
2120  FOR W = 1 TO 4: IF WN$(W) = N$ THEN N$ = N$ + "#": GOTO 2120
2130  NEXT W: FOR W = 1 TO 4: IF WN$(W) <  > "NONE" THEN  NEXT 
2140 WN$(W) = N$:WT%(W) = TP:WO%(W) = 10 * (2 - Q):WD%(W) = DICE:WS%(W) = SIDES:GO = GO - P
2150  PRINT "Marcos hands you your weapon and takes": PRINT "the price from you.": PRINT 
2160  IF GO <  FN P(50) THEN 2210
2170  PRINT "He now asks you, 'Now how about some": PRINT "armour?'": PRINT : PRINT "(Hit Y or N)   ";
2180  POKE  - 16368,0: GET A$: IF A$ = "N" THEN  PRINT A$: PRINT : GOTO 2210
2190  IF A$ <  > "Y" THEN 2180
2200  PRINT A$: GOTO 2490
2210  PRINT "Marcos smiles and says, 'Come back": PRINT "again soon!' as he shoos you out of his": PRINT "shop.": PRINT : GOTO 100
2220  PRINT : PRINT "Marcos asks you, 'Is this weapon you": PRINT "want to sell me a standard weapon like": PRINT "I sell?  (Hit 'Y' or 'N')  ";
2230  POKE  - 16368,0: GET A$: IF A$ = "Y" THEN 2350
2240  IF A$ <  > "N" THEN 2230
2250  PRINT A$: PRINT :P =  INT (50 / RTIO + .5): PRINT "Marcos says, 'Then I can only give you": PRINT P;" gold pieces for it, take it or": PRINT "leave it!'": PRINT : PRINT "(Hit T or L)   ";
2260  POKE  - 16368,0: GET A$: IF A$ = "L" THEN  PRINT A$: PRINT : GOTO 2210
2270  IF A$ <  > "T" THEN 2260
2280  PRINT A$: PRINT : PRINT "Marcos says, 'Okay, what've you got?": PRINT : INPUT "(Enter the weapon name)";W$:
2281  FOR W = 1 TO 4: IF WN$(W) <  > W$ THEN  NEXT : PRINT : PRINT "Marcos frowns at you and says, 'You": PRINT "can't sell a weapon you don't own!'": PRINT : GOTO 2210
2285  IF W$ = "NONE" THEN  PRINT : PRINT "Marcos frowns and says 'Then why do you waste my time?'": PRINT : PRINT "Marcos shoos you out of his store.": GOTO 100
2290 L =  LEFT$ (W$,5) = "SWORD" OR  LEFT$ (W$,5) = "SPEAR" OR  LEFT$ (W$,4) = "MACE" OR  LEFT$ (W$,3) = "BOW" OR  LEFT$ (W$,3) = "AXE": IF L THEN  PRINT "Marcos frowns at you and says, 'This is": PRINT "a weapon like I sell, remember!'": GOTO 2420
2300  PRINT "Marcos gives you your money and takes": PRINT "your weapon.": PRINT :GO = GO + P: FOR W2 = W TO 4:WN$(W2) = WN$(W2 + 1):WT%(W2) = WT%(W2 + 1):WO%(W2) = WO%(W2 + 1):WD%(W2) = WD%(W2 + 1):WS%(W2) = WS%(W2 + 1): NEXT :WN$(4) = "NONE"
2310  PRINT : PRINT "Marcos asks you, 'How about buying a": PRINT "weapon?'": PRINT : PRINT "(Hit Y or N)   ";
2320  POKE  - 16368,0: GET A$: IF A$ = "Y" THEN  PRINT A$: PRINT : GOTO 2050
2330  IF A$ <  > "N" THEN 2320
2340  PRINT A$: PRINT : GOTO 2160
2350  PRINT : PRINT "Marcos asks, 'Well, what weapon you": PRINT "wanta return?": PRINT : GOSUB 2650: PRINT 
2360 W2 = W: FOR W = 1 TO 4: IF  LEFT$ (WN$(W), LEN (N$)) <  > N$ THEN  NEXT : PRINT "Marcos laughs and says, 'You never": PRINT "bought one from me, remember?'": PRINT : GOTO 2210
2370 BP = BP + BP * (WO%(T) > 5) - BP / 2 * (WO%(T) <  - 5):P =  INT (BP / RTIO + .5): IF P > BP / 4 THEN P =  INT (BP / 4 + .5)
2380  PRINT "Marcos examines your weapons and says,": PRINT "'Well, you've banged it up a bit, but": PRINT "I can give you ";P;" gold pieces": PRINT "for it, take it or leave it.'": PRINT : PRINT "(Hit T or L)  ";
2390  POKE  - 16368,0: GET A$: IF A$ = "L" THEN  PRINT A$: PRINT : GOTO 2210
2400  IF A$ <  > "T" THEN 2390
2410  PRINT A$: PRINT : GOTO 2300
2420  PRINT : FOR X = 1 TO 4: IF  MID$ ("ABMS",X,1) =  LEFT$ (W$,1) THEN  ON X GOTO 2440,2450,2460,2470
2430  NEXT X
2440 BP = 25: GOTO 2370
2450 BP = 40: GOTO 2370
2460 BP = 20: GOTO 2370
2470  IF  MID$ (W$,2,1) = "P" THEN BP = 25: GOTO 2370
2480 BP = 50: GOTO 2370
2490 A2 =  INT (AC / 2):SH = AC - A2 * 2:B1 = 25 * (A2 = 1) + 60 * (A2 = 2) + 100 * (A2 = 3):TI =  INT (B1 / RTIO + .5)
2491  PRINT "Marcos takes you to the armour section": PRINT "of his shop and shows you suits of": PRINT "leather armour, chain armour, and plate.": IF TI > B1 * 2 THEN TI = B1 * 2
2500  PRINT : PRINT "He says, 'I can put you in any of these": PRINT "very cheaply.  I need "; FN P(100);" gold": PRINT "pieces for the leather, "; FN P(250);" for": PRINT "the chain, and "; FN P(500);" for the plate.": PRINT 
2510  IF TI THEN  PRINT "Also, I can give you a trade-in on your": PRINT "old armour of ";TI;" gold pieces.": PRINT 
2520  PRINT "Well, what will it be?'": PRINT : PRINT "(Hit N for Nothing or L C or P)  ";
2530  POKE  - 16368,0: GET A$: FOR A = 1 TO 4: IF A$ <  >  MID$ ("NLCP",A,1) THEN  NEXT : GOTO 2530
2540  PRINT A$: PRINT : IF A = 1 THEN 2570
2550 P =  FN P(100 * (A = 2) + 250 * (A = 3) + 500 * (A = 4)) - TI: IF P > GO THEN  PRINT "Marcos frowns when he sees that you do": PRINT "not have enought to pay for your": PRINT "armour and says, 'I don't give credit!'": PRINT : GOTO 2570
2560  PRINT "Marcos takes your old armour and your": PRINT "gold and helps you into your new": PRINT "armour.": PRINT :GO = GO - P:A2 = A - 1
2570  IF SH THEN 2630
2580  PRINT "Marcos smiles and says, 'Now how about": PRINT "a shield?  I can let you have one for": PRINT "only "; FN P(50);" gold pieces!'": PRINT : PRINT "(Hit Y or N)";
2590  POKE  - 16368,0: GET A$: IF A$ = "N" THEN  PRINT A$: PRINT : GOTO 2630
2600  IF A$ <  > "Y" THEN 2590
2610  PRINT A$: PRINT : IF GO <  FN P(50) THEN  PRINT "When he sees that you do not have": PRINT "enough gold to buy the shield, Marcos": PRINT "frowns and says, 'I'm sorry, but I": PRINT "don't give credit!'": PRINT : GOTO 2630
2620 GO = GO -  FN P(50):SH = 1: PRINT "Marcos takes your gold and gives you": PRINT "a shield.": PRINT 
2630 AC = A2 * 2 + SH: PRINT : GOTO 100
2640  END 
2650  PRINT "(Hit the key(s), A B M SP or SW)  ";:
2660  POKE  - 16368,0: GET A$: FOR W = 1 TO 4: IF A$ <  >  MID$ ("ABMS",W,1) THEN  NEXT : GOTO 2660
2670  ON W GOTO 2680,2690,2700,2710
2680  PRINT "AXE":BP = 25:N$ = "AXE":TP = 1:SIDE = 6: GOTO 2750
2690  PRINT "BOW":BP = 40:N$ = "BOW":TP = 2:SIDE = 6: GOTO 2750
2700  PRINT "MACE":BP = 20:N$ = "MACE":TP = 3:SIDE = 4: GOTO 2750
2710  PRINT A$;:
2720  GET A$: IF A$ = "P" THEN  PRINT "PEAR":BP = 25:TP = 4:SIDE = 5:N$ = "SPEAR": GOTO 2750
2730  IF A$ <  > "W" THEN 2720
2740  PRINT "WORD":BP = 50:N$ = "SWORD":TP = 5:SIDE = 8
2750 DICE = 1: RETURN 
2760  END 
3000  PRINT : PRINT "After a few minutes diligent searching,": PRINT "you find Hokas Tokas, the old mage. He": PRINT "looks at you and says, 'So you want old": PRINT "Tokey to teach you some magic, heh heh?"
3010  PRINT "Well, it'll cost you. Today my fees are:":C2 = CH +  INT (11 *  RND (1) - 5):C2 = C2 + (C2 = 0):RTIO = 10 / C2
3020  PRINT "   BLAST  "; FN P(3000);"GP": PRINT "   HEAL   "; FN P(1000);"GP": PRINT "   SPEED  "; FN P(5000);"GP": PRINT "   POWER  "; FN P(100);"GP": PRINT 
3030  PRINT "Well, which will it be?'": PRINT : PRINT "(Hit the key for your spell:": PRINT "   N for Nothing, or B,H,S or P)   ";
3040  GET A$: FOR SP = 1 TO 5: IF A$ <  >  MID$ ("BHSPN",SP,1) THEN  NEXT : GOTO 3040
3050  ON SP GOTO 3060,3070,3080,3090,3200
3060  PRINT "BLAST":P =  FN P(3000): GOTO 3100
3070  PRINT "HEAL":P =  FN P(1000): GOTO 3100
3080  PRINT "SPEED":P =  FN P(5000): GOTO 3100
3090  PRINT "POWER":P =  FN P(100)
3100  PRINT : IF P > GO THEN  PRINT "When Hokas sees that you don't have": PRINT "enough to pay him, he stalks to the": PRINT "bar, muttering about youngsters who": PRINT "should be turned into frogs.": PRINT : GOTO 100
3110  IF SA%(SP) THEN  PRINT "Hokas says, 'I ought to take your gold  anyway, but haven't you forgotten": PRINT "something?  I already taught you that   spell!'": PRINT : PRINT "Shaking his head sadly, he returns to   the bar.": PRINT : GOTO 100
3120 GO = GO - P:SA%(SP) =  INT (50 *  RND (1) + 26): PRINT "Hokas teaches you your spell, takes": PRINT "his fee, and returns to his stool on": PRINT "the bar.  As you walk away you hear"
3130  PRINT "him order a double Dragon Blomb.": PRINT : GOTO 100
3140  END 
3200  PRINT : PRINT : PRINT "As you leave, you hear Hokas muttering": PRINT "about cheapskate adventurers always": PRINT "wanting something for nothing.": PRINT : GOTO 100
4000  PRINT : PRINT "You have no trouble spotting Shylock": PRINT "McFenney, the local banker, due to his": PRINT "large belly.": PRINT : PRINT "You attract his attention, and he comes": PRINT "over to you and says, 'Well,"
4010  PRINT NAME$;", my dear "; MID$ ("girlboy",(SEX$ = "M") * 4 + 1,4);",": PRINT "What a pleasure to see you! Do you want"
4020  PRINT "to make a deposit or a withdrawal?'": PRINT : PRINT "(Hit 'D' for Deposit, 'W' for Withdrawal)   ";
4030  GET A$: IF A$ = "D" THEN  PRINT A$: PRINT : GOTO 4090
4040  IF A$ <  > "W" THEN 4030
4050  PRINT A$: PRINT : PRINT "Shylock says, 'Well, you have ";BA: PRINT "gold pieces stored with me.  How many": PRINT "do you want to take back?'": PRINT 
4060  PRINT "(Enter the number of gold pieces to": INPUT "   withdraw)  ";A$:MNY =  VAL (A$)
4061  IF MNY < 0 OR MNY <  >  INT (MNY) OR  STR$ (MNY) <  > A$ THEN  PRINT : PRINT "The banker scowls and says,'Come, come,": PRINT "You're not making sense!  Try again.'": PRINT : GOTO 4060
4070  IF MNY > BANK THEN  PRINT : PRINT "The Banker throws you a terrible glance and says, 'That's more than you've got! You know I don't make loans to your     kind!'  With that he loses himself in   the crowd.": PRINT : GOTO 100
4080 GO = GO + MNY:BA = BA - MNY: PRINT : PRINT "The Banker hands you your gold and": PRINT "says, 'That leaves you with ";BA: PRINT "pieces in my care.'  He shakes your": PRINT "hand and walks away.": PRINT : GOTO 100
4090  PRINT "Shylock gets a wide grin on his face": PRINT "and says, 'Good for you!  How much do": PRINT "You want to deposit?'"
4100  PRINT : PRINT "(Enter the amount you want to deposit)": INPUT "      ";A$
4101 MNY =  VAL (A$): IF MNY < 0 OR MNY <  >  INT (MNY) OR  STR$ (MNY) <  > A$ THEN  PRINT : PRINT "The Banker scowls at you and says,": PRINT "'Come, come, you're not making sense!": PRINT "Try again.'": PRINT : GOTO 4100
4110  IF MNY > GO THEN  PRINT : PRINT "The Banker was very pleased when you    told him the sum, but when he discoveredthat you didn't have that much on you,  he walked away, shouting about fools whoplay tricks on a kindly banker.": PRINT : GOTO 100
4120 GO = GO - MNY:BA = BA + MNY: PRINT "Shylock takes your money, puts it in": PRINT "his bag, listens to it jingle, then": PRINT "thanks you and walks away.": PRINT : GOTO 100
4130  END 
5000  HOME : PRINT "You are the "; MID$ ("Mighty Fair ",1 + 7 * (SEX$ = "F"),7);NAME$: PRINT : PRINT "Your Attributes are:": PRINT "  HD=";HD;"  AG=";AG;"  CH=";CH: PRINT 
5010  PRINT "You know the following Spells--":SM = 0: FOR S = 1 TO 4: IF SA%(S) THEN  PRINT  MID$ ("BLASTHEAL SPEEDPOWER",(S - 1) * 5 + 1,5);"  ";:SM = 1
5020  NEXT S: IF  NOT SM THEN  PRINT "   NO SPELLS";
5030  PRINT : PRINT : PRINT "Your Weapon Abilities are--": PRINT "  AXE   BOW   CLUB  SPEAR SWORD": PRINT " ";: FOR W = 1 TO 5: PRINT  SPC( 1 - (WA%(W) < 0) + ( ABS (WA%(W)) < 10) + ( ABS (WA%(WA)) < 100));WA%(W);"% ";: NEXT : PRINT 
5040  PRINT :A2 =  INT (AC / 2): PRINT "Armour: "; MID$ ("SKIN   LEATHERCHAIN  PLATE  ",A2 * 7 + 1,7);: IF AC > A2 * 2 THEN  PRINT " AND SHIELD";
5050  PRINT  TAB( 30);"AE=";AE;"%": PRINT : PRINT "Gold in Hand=";GO;", Bank=";BA"
5060  PRINT : PRINT "Weapons"; TAB( 19);"CMPLX    DAM": FOR W = 1 TO 4: IF W > 1 AND WN$(W) = "NONE" THEN 5090
5070  IF WN$(W) = "NONE" THEN  PRINT : PRINT "        NO WEAPONS": GOTO 5090
5080  PRINT WN$(W); TAB( 20 - (WO%(W) < 0) + ( ABS (WO%(W)) < 10) + ( ABS (WO%(W)) < 100));WO%(W);"%    ";WD%(W);" D ";WS%(W)
5090  NEXT W: GOTO 100
5100  END 
6000  PRINT "As you leave the hall, the Irishman": PRINT "comes up to you, slaps you on the back": PRINT "and says, 'Y'all come back real soon,": PRINT "Ya heah?'"
6010  PRINT D$;"OPEN CHARACTERS,L150": PRINT D$;"WRITE CHARACTERS,R";REC: GOSUB 200: PRINT D$;"CLOSE"
6020  PRINT D$;"DELETE THE.ADVENTURER"
6030  PRINT D$"RUN EAMON.MASTER,@100"
7000  PRINT  CHR$ (4);"RUN EAMON.MASTER"
8000  REM  VOLUME POLLING ROUTINE
8010  HOME : FOR I = 3 TO 7:DR$(I,1) = "":DR$(I,2) = "": NEXT 
8040 S = 3:D = 2
8050  ONERR  GOTO 8080
8060  PRINT D$"PREFIX,S"S",D"D
8070  PRINT D$"PREFIX": INPUT DR$(S,D)
8080 D = D + 1: IF D > 2 THEN S = S + 1:D = 1: IF S > 7 THEN 8100
8090  GOTO 8060
8100  POKE 216,0
8110 P = 0: FOR S = 3 TO 7: FOR D = 1 TO 2
8120  IF DR$(S,D) <  > "" THEN P = P + 1:PM$(P) = DR$(S,D)
8130  NEXT : NEXT 
8140  ONERR  GOTO 8160
8150  PRINT D$"PREFIX"PX$
8160  POKE 216,0
8200  HOME 
8210  PRINT "These Volumes are currently On-Line:"
8220  PRINT : PRINT : FOR I = 1 TO P: HTAB 5: PRINT PM$(I): NEXT :I = 1:J = I
8230  VTAB 3 + J: HTAB 5: PRINT PM$(J)
8235  VTAB 3 + I: HTAB 5: INVERSE : PRINT PM$(I): NORMAL 
8240  VTAB 20: PRINT "<ARROW> keys to step through volumes": PRINT "<TAB> key to recheck drives (CTRL-I)": PRINT "<RETURN> key to select desired Prefix"
8250  POKE  - 16368,0: GET A$:A =  ASC (A$): IF A = 3 THEN  END 
8260  IF A = 10 OR A = 21 THEN J = I:I = I + 1: IF I > P THEN I = 1: GOTO 8230
8270  IF A = 8 OR A = 11 THEN J = I:I = I - 1: IF  NOT I THEN I = P
8280  IF A = 9 THEN 8000
8290  IF A <  > 13 THEN 8230
8300 CX$ = PM$(I): GOTO 1210
8500 L =  LEN (CX$): FOR I = L - 1 TO 1 STEP  - 1: IF  MID$ (CX$,I,1) <  > "/" THEN  NEXT 
8510  IF I = 1 THEN  NEXT : GOTO 1030
8520 CX$ =  LEFT$ (CX$,I):I = 1: NEXT : GOTO 1030
8900  HOME : PRINT "If necessary, insert Adventure disk now.";: PRINT : PRINT "Current Prefix:": PRINT : HTAB 5: PRINT CX$: RETURN 
9000  REM INPUT PATHNAME ROUTINE
9005  VTAB 22: PRINT "Pathname: ";
9010  POKE  - 16368,0: GET A$:A =  ASC (A$)
9015  IF (A = 13 OR A = 8) AND DX$ = "" THEN  HTAB 1: PRINT "            ";: HTAB 1: ON (X > 13) + 1 GOTO 1134,1162
9020  IF A = 13 THEN AX$ = DX$: GOTO 1190
9030  IF A = 8 THEN  IF A1 > 2 THEN A1 = A1 - 1: HTAB 11:DX$ =  LEFT$ (DX$,A1 - 1): PRINT DX$" ";: HTAB A1 + 10: GOTO 9010
9040  IF A = 8 THEN  HTAB 11:A1 = 1: PRINT " ";: HTAB 11:DX$ = "": GOTO 9010
9050  IF (A < 65 OR A > 90) AND A <  > 46 THEN  PRINT  CHR$ (7);: GOTO 9010
9060 DX$ = DX$ + A$:A1 = A1 + 1: PRINT A$;: GOTO 9010