Source:Village
		
		
		
		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 Eamon program Village.  | 
|---|---|
| Source | |
| Date | 
 April 1989  | 
| Author | |
| License | 
 The use of this item is permitted on the grounds that it's free or in the public domain.  | 
1  REM MAIN HALL
2  REM 
3  REM BY DONALD BROWN
4  REM 
5  REM 
6  REM 
7  REM REV 12/84
8  REM  EXTENDED CHARACTER FILE MODIFICATION ADDED 4/89 (REV 8/85)
9  REM 
10  PRINT  CHR$ (4);"MAXFILES 3"
15 DK$ =  CHR$ (4)
20  ONERR  GOTO 17000
30  PRINT DK$;"OPEN THE ADVENTURER": PRINT DK$;"READ THE ADVENTURER": INPUT NAME$: INPUT REC: PRINT DK$;"CLOSE"
35  PRINT DK$;"OPEN REC.NUM": PRINT DK$;"READ REC.NUM": INPUT REC: PRINT DK$;"CLOSE"
40  ONERR  GOTO 100
50  PRINT DK$;"OPEN CHARACTERS.EXT,L256": PRINT DK$;"READ CHARACTERS.EXT,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 GOLD,BANK: INPUT AC: FOR W = 1 TO 4: INPUT WNAME$(W),WTYPE%(W),WODDS%(W),WDICE%(W),WSIDES%(W): NEXT W: PRINT DK$;"CLOSE"
80  DEF  FN P(X) =  INT (X * RTIO + .5)
100  PRINT : PRINT "IN THE MAIN HALL, YOU DISCOVER": PRINT "YOU CAN DO ONE OF THESE THINGS:": PRINT : PRINT "  1.  GO ON AN ADVENTURE.": PRINT "  2.  VISIT THE WEAPON SHOP FOR WEAPONS       AND/OR ARMOUR."
110  PRINT "  3.  HIRE A WIZARD TO TEACH YOU SOME         SPELLS.": PRINT "  4.  FIND THE BANKER TO DEPOSIT OR": PRINT "      WITHDRAW SOME GOLD.": PRINT "  5.  EXAMINE YOUR ABILITIES."
115  PRINT "  6.  TEMPORARILY LEAVE THE UNIVERSE.": PRINT "  7.  TAKE SOME WEAPON TRAINING."
120  PRINT : PRINT "(HIT THE KEY FOR YOUR CHOICE, 1-7)";
130  GET A$:CMD =  VAL (A$): IF CMD < 1 OR CMD > 7 THEN 130
140  PRINT CMD: PRINT : ON CMD GOTO 1000,2000,3000,4000,5000,6000,7000
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 GOLD: PRINT BANK: 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      PRINT DK$;"OPEN CHARACTERS.EXT,L256": PRINT DK$;"WRITE CHARACTERS.EXT,R";REC: PRINT : PRINT DK$;"CLOSE":REM  CHANGED TO 'REM' TO PREVENT CHARACTER FROM BEING ERASED   
1005  PRINT DK$;"OPEN REC.NUM": PRINT DK$;"WRITE REC.NUM": PRINT REC: PRINT DK$;"CLOSE"
1010  HOME : VTAB 5: PRINT "NOW REMOVE THE EAMON MASTER AND": PRINT : PRINT "INSERT THE DISKETTE WITH THE ADVENTURE": PRINT : PRINT "OF YOUR CHOICE.": PRINT : PRINT "PRESS 'C' TO CONTINUE.";: POKE  - 16368,0
1020  GET A$: IF A$ <  > "C" THEN 1020
1030  PRINT 
1040  PRINT DK$;"OPEN EAMON.NAME": PRINT DK$;"READ EAMON.NAME": INPUT ADNAME$: PRINT DK$;"CLOSE"
1050  HOME : VTAB 5: PRINT "YOU ARE ABOUT TO ADVENTURE IN": PRINT : INVERSE : PRINT ADNAME$: NORMAL : PRINT : PRINT 
1060  PRINT DK$;"OPEN FRESH MEAT": PRINT DK$;"WRITE FRESH MEAT": PRINT 1: GOSUB 200: PRINT DK$;"CLOSE": PRINT DK$;"RUN ";ADNAME$
2000  HOME : 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  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, SWORD, OR UNUSUAL WEAPON?": 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  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": 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 
2132  IF  LEFT$ (N$,3) <  > "AXE" AND  LEFT$ (N$,3) <  > "BOW" AND  LEFT$ (N$,4) <  > "MACE" AND  LEFT$ (N$,5) <  > "SPEAR" AND  LEFT$ (N$,5) <  > "SWORD" THEN U =  INT ((( RND (1) ^ 2) * 4.5) + 1.9): GOTO 2140
2135 U = 2
2140 WN$(W) = N$:WT%(W) = TP:WO%(W) = (5 * U) * (2 - Q):WD%(W) = DICE:WS%(W) = SIDES:GOLD = GOLD - P
2150  PRINT "MARCOS HANDS YOU YOUR WEAPON AND TAKES": PRINT "THE PRICE FROM YOU.": PRINT 
2160  IF GOLD <  FN P(50) THEN 2210
2170  PRINT "HE NOW ASKS YOU, 'NOW HOW ABOUT SOME": PRINT "ARMOUR?'": PRINT : PRINT "(HIT Y OR N)   ";
2180  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  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  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$: FOR WW = 1 TO 4: IF WN$(WW) <  > 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
2292  FOR U = 1 TO 4: IF UW$(U) = W$ THEN P =  INT (P / 4.2):Q =  INT ( RND (1) * 25) + 11: PRINT : PRINT "AS YOU TRY TO GIVE THE WEAPON TO MARCOS": PRINT "HE SHOWS YOU A SHELF BULGING WITH": PRINT W$;"S AND SAYS, 'I'M SORRY": GOTO 2294
2293  NEXT : GOTO 2300
2294  PRINT "BUT I JUSTA GOT ";Q;" OF THOSE IN A COUPLE"
2295  PRINT "A MINUTES AGO AND I DON'T NEED MORE.": PRINT : PRINT "BUT, BECAUSE I LIKE'A YOU, I'LL STILLA": PRINT "GIVE YOU ";P;" GOLD PIECES FOR IT;": PRINT : PRINT "TAKE IT OR LEAVE IT!'": PRINT : PRINT "(HIT T OR L)   ";
2296  GET A$: IF A$ = "L" THEN  PRINT A$: PRINT : GOTO 2210
2297  IF A$ <  > "T" THEN 2296
2298  PRINT A$
2300  PRINT "MARCOS GIVES YOU YOUR MONEY AND TAKES": PRINT "YOUR WEAPON.": PRINT :UW$(U) = "":GOLD = GOLD + 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  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 2635: 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  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 WW = 1 TO 4: IF  MID$ ("ABMS",WW,1) =  LEFT$ (W$,1) THEN  ON WW GOTO 2440,2450,2460,2470
2430  NEXT WW
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): 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  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 > GOLD THEN  PRINT "MARCOS FROWNS WHEN HE SEES THAT YOU DO": PRINT "NOT HAVE ENOUGH TO PAY FOR YOUR ARMOUR": PRINT "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 :GOLD = GOLD - 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  GET A$: IF A$ = "N" THEN  PRINT A$: PRINT : GOTO 2630
2600  IF A$ <  > "Y" THEN 2590
2610  PRINT A$: PRINT : IF GOLD <  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 GOLD = GOLD -  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
2632  END 
2635  PRINT "(HIT THE KEY(S), A B M SP OR SW)  ";:
2640  GET A$: FOR W = 1 TO 4: IF A$ <  >  MID$ ("ABMS",W,1) THEN  NEXT : GOTO 2640
2645  ON W GOTO 2680,2690,2700,2710
2650  PRINT "PRESS KEY(S): A B M SP SW OR U :";
2660  GET A$: FOR W = 1 TO 5: IF A$ <  >  MID$ ("ABMSU",W,1) THEN  NEXT : GOTO 2660
2670  ON W GOTO 2680,2690,2700,2710,2800
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:N$ = "SPEAR":TP = 4:SIDE = 5: GOTO 2750
2730  IF A$ <  > "W" THEN 2720
2740  PRINT "WORD":BP = 50:N$ = "SWORD":TP = 5:SIDE = 8
2750 DICE = 1: RETURN 
2800  REM   ///UNUSUAL WEAPONS BY BOB LINDEN
2810  PRINT "UNUSUAL"
2820  PRINT : PRINT "'WHATSA THIS UNUSUAL WEAPON CALLED?'": PRINT 
2830  INPUT "YOU NAME THE WEAPON (TYPE IT IN NOW)    ==> ";N$
2840  PRINT : IF N$ = "" THEN  PRINT "MARCOS SAYS, 'YOUR LIPS MOVED BUT I      DIDN'T CATCH THE NAME.'": PRINT : PRINT : GOTO 2830
2850  IF  LEN (N$) > 18 THEN  PRINT "THAT SOUNDS LIKE A STRANGE WEAPON.  ALL MY WEAPONS HAVE NAMES OF 18 LETTERS OR  LESS. PERHAPS THIS WEAPON IS KNOWN BY   ANOTHER NAME?": PRINT : PRINT : GOTO 2830
2853  IF  LEFT$ (N$,4) = "NONE" THEN  GOTO 2210
2855  IF  RIGHT$ (N$,1) = " " THEN N$ =  LEFT$ (N$,( LEN (N$) - 1)): GOTO 2855
2856  FOR U = 1 TO 4: IF UW$(U) = N$ THEN N$ = N$ + "#": GOTO 2856
2857  NEXT U: FOR U = 1 TO 4: IF UW$(U) <  > "" THEN  NEXT 
2858 UW$(U) = N$
2860  PRINT : PRINT " 'HMMM...', SAYS MARCOS, 'THE": PRINT ;N$;" IS NOT THE TYPE OF": PRINT "WEAPON I USUALLY GET REQUESTS FOR."
2870  PRINT : PRINT " 'WHATSA THE CLASS OF THIS WEAPON THAT  YOU FIGURE YOU CAN AFFORD?',MARCOS SAYS,'I GOT AVERAGE, SUPERIOR, AND MATCHLESS'"
2880  PRINT : PRINT "(HIT THE KEY, A S OR M) :";
2890  GET A$: FOR W = 1 TO 3: IF A$ <  >  MID$ ("ASM",W,1) THEN  NEXT : GOTO 2890
2900  ON W GOTO 2910,2920,2930
2910  PRINT "AVERAGE":DICE =  INT (( RND (1) * 1.1) + 1):SIDE =  INT ((((6 *  RND (1)) + (6 *  RND (1)) + (6 *  RND (1)) + 6) / 2) /  SQR (DICE)):BP = 30: GOTO 2950
2920  PRINT "SUPERIOR":DICE =  INT ((((.46 *  RND (1)) ^ 2) * 10) + 1):SIDE =  INT ((((6 *  RND (1)) + (6 *  RND (1)) + (6 *  RND (1)) + (6 *  RND (1)) + 5) / 2) /  SQR (DICE)):BP = 100: GOTO 2950
2930  PRINT "MATCHLESS":DICE =  INT ((((.55 *  RND (1)) ^ 2) * 10) + 1):SIDE =  INT ((((8 *  RND (1)) + (8 *  RND (1)) + (8 *  RND (1)) + (6 *  RND (1)) + 6) / 2) /  SQR (DICE)):BP = 250: GOTO 2950
2950  PRINT : PRINT " 'OK', SAYS MARCOS, 'I GOTTA LOOK INNA  BACK ROOM TO SEE IF I GOT ANY OF THESE  IN STOCK. YOU CAN HELP ME BY TELLING ME WHICH WEAPON YOUR UNUSUAL WEAPON IS MOSTLIKE: AXE, BOW, MACE, SPEAR, OR SWORD?"
2955  PRINT "(HIT THE KEY(S), A B M SP OR SW): ";:
2960  GET A$: FOR W = 1 TO 4: IF A$ <  >  MID$ ("ABMS",W,1) THEN  NEXT : GOTO 2960
2965  ON W GOTO 2970,2975,2980,2985
2970  PRINT "AXE":BP = (BP * 5):TP = 1: GOTO 2997
2975  PRINT "BOW":BP = (BP * 8):TP = 2: GOTO 2997
2980  PRINT "MACE":BP = (BP * 4):SIDE = (SIDE - 2):TP = 3: GOTO 2997
2985  PRINT A$;:
2988  GET A$: IF A$ = "P" THEN  PRINT "PEAR":BP = (BP * 5):SIDE = (SIDE - 1):TP = 4: GOTO 2997
2990  IF A$ <  > "W" THEN 2988
2995  PRINT "WORD":BP = (BP * 10):SIDE = (SIDE + 1):TP = 5
2997  IF SIDE < 3 THEN SIDE = 3
2998  PRINT : PRINT "MARCOS DISAPPEARS INTO THE BACK ROOM.   YOU HEAR THINGS BEING DRAGGED ABOUT AND THE RATTLING OF CONTAINERS. FINALLY, YOUHERE A MUFFLED 'AHA!' AND MARCOS EMERGESWITH HIS ARMS FULL."
2999  RETURN 
3000  HOME : 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 A MAGIC SPELL?'"
3010  PRINT : PRINT "'WELL, IT'LL COST YOU.  MY FEES ARE:":C2 = CH +  INT (11 *  RND (1) - 5):C2 = C2 + (C2 = 0):RTIO = 10 / C2
3020  PRINT : PRINT "     BLAST ";:KK =  FN P(3000): PRINT  SPC( 5 -  LEN ( STR$ (KK)));KK;: PRINT " GOLD PIECES"
3022  PRINT "     HEAL  ";:KK =  FN P(1000): PRINT  SPC( 5 -  LEN ( STR$ (KK)));KK;: PRINT " GOLD PIECES"
3024  PRINT "     SPEED ";:KK =  FN P(5000): PRINT  SPC( 5 -  LEN ( STR$ (KK)));KK;: PRINT " GOLD PIECES"
3026  PRINT "     POWER ";:KK =  FN P(100): PRINT  SPC( 5 -  LEN ( STR$ (KK)));KK;: PRINT " GOLD PIECES": PRINT 
3030  PRINT "WHICH WILL IT BE?'": PRINT : PRINT "(PRESS B, H, S OR P FOR YOUR SPELL,": PRINT "OR PRESS N FOR NONE.) ";
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  HOME : PRINT : IF P > GOLD THEN  PRINT "WHEN HOKAS SEES THAT YOU DON'T HAVE": PRINT "ENOUGH TO PAY HIM, HE STALKS TO THE": PRINT "BAR, MUTTERING ABOUT ADVENTURERS WHO": PRINT "SHOULD BE TURNED INTO FROGS.": PRINT : GOTO 100
3110  IF SA%(SP) THEN  PRINT "HOKAS SAYS, 'I OUGHT TO TAKE YOUR": PRINT "GOLD ANYWAY, BUT HAVEN'T YOU FORGOTTEN": PRINT "SOMETHING?  I ALREADY TAUGHT YOU THAT": PRINT "SPELL!'": PRINT : PRINT "SHAKING HIS HEAD SADLY, HE RETURNS TO": PRINT "BAR.": PRINT : GOTO 100
3120 GOLD = GOLD - 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  HOME : PRINT : PRINT : PRINT "AS YOU LEAVE, YOU HEAR HOKAS MUTTERING": PRINT "ABOUT 'CHEAPSKATE ADVENTURERS": PRINT "WHO CAN'T MAKE UP THEIR MINDS.'": PRINT : 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 WITHDRAWL?'": PRINT : PRINT "(HIT 'D' FOR DEPOSIT, 'W' FOR WITHDRAWL)   ";
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 ";BANK: 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$): 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": PRINT "AND SAYS, 'THAT'S MORE THAN YOU'VE GOT!": PRINT "YOU KNOW I DON'T MAKE LOANS TO YOUR": PRINT "KIND!'  WITH THAT HE LOSES HIMSELF IN": PRINT "THE CROWD.": PRINT : GOTO 100
4080 GOLD = GOLD + MNY:BANK = BANK - MNY: PRINT : PRINT "THE BANKER HANDS YOU YOUR GOLD AND": PRINT "SAYS, 'THAT LEAVES YOU WITH ";BANK: 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$: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 > GOLD THEN  PRINT : PRINT "THE BANKER WAS VERY PLEASED WHEN YOU": PRINT "TOLD HIM THE SUM, BUT WHEN HE DISCOVEREDTHAT YOU DIDN'T HAVE THAT MUCH ON YOU,": PRINT "HE WALKED AWAY, SHOUTING ABOUT FOOLS": PRINT "WHO PLAY TRICKS ON A KINDLY BANKER.": PRINT : GOTO 100
4120 GOLD = GOLD - MNY:BANK = BANK + 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=";GOLD;", BANK=";BANK"
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: VTAB 23: POKE  - 16368,0: PRINT "(HIT ANY KEY TO CONTINUE)  ";: GET A$: PRINT : GOTO 100
5100  END 
6000  HOME : 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 DK$;"OPEN CHARACTERS.EXT,L256": PRINT DK$;"WRITE CHARACTERS.EXT,R";REC: GOSUB 200: PRINT DK$;"CLOSE"
6020  PRINT DK$;"DELETE THE ADVENTURER"
6030  END 
7000  REM  ///TRAINING CENTER BY JOHN NELSON
7010  HOME : PRINT "AS YOU ENTER THE TRAINING CENTER, THE": PRINT "SMELL OF SWEAT GREETS YOU AT THE DOOR.": PRINT : PRINT "AN ATTENDANT COMES OVER AND ASKS IF YOU"
7020  PRINT "WOULD LIKE TRAINING ON THE AXE, BOW,    MACE, SPEAR OR SWORD. ENTER 'A' 'B' 'M' 'SP' OR 'SW' ";
7030  GOSUB 2660
7050 C2 = CH +  INT (11 *  RND (1) - 5):C2 = C2 + (C2 = 0):RTIO = 10 / C2
7060 PR =  FN P(BP * 20): PRINT : PRINT "THE ATTENDANT SAYS THAT WILL BE ";PR: PRINT "GOLD PIECES.": PRINT : PRINT "DO YOU WANT TO TAKE THE TRAINING?"
7070  PRINT "ENTER (Y OR N) ";
7080  GET A$: IF A$ <  > "Y" AND A$ <  > "N" THEN 7080
7090  PRINT A$: IF A$ = "N" THEN 100
7100  IF PR > GOLD THEN  PRINT : PRINT "THE ATTENDANT IS IRRITATED WHEN HE SEES": PRINT "YOU DO NOT HAVE THE GOLD AND STARTS TO": PRINT "GRUMBLE ABOUT USING YOU FOR PRACTICE": PRINT "TARGET.": GOTO 100
7120 GOLD = GOLD - PR
7150 WA%(TP) = WA%(TP) +  INT ( RND (1) * 15): PRINT : PRINT "THE TRAINING INSTRUCTOR DRILLS YOU ON": PRINT "THE FINE ARTS OF THE ";N$;"."
7190  GOTO 100
15000  INPUT "PRESS [RETURN] TO CONTINUE ...";A$: GOTO 100
17000  IF  PEEK (222) = 5 THEN  PRINT  CHR$ (4);"RUN THE WONDERFUL WORLD OF EAMON"
17020  END