Source:Eamon Master 1.2 Main Hall (ProDOS)
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 version 1.2 from EAG Online |
Date |
2 June 1991 |
Author | |
License |
The use of this item is permitted on the grounds that it's free or in the public domain. |
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