Willus.com
Home
|
Archive
|
About
WIZARD.BAS
(20452 bytes)
EMULATE AS:
DEFAULT TYPE (CMD)
|
BASIC program
|
Program on Disk
|
2-Disk Debug
|
Disk Download
SHOW BELOW AS:
BASIC program
(download)
|
Text File
(download)
|
Z-80 Program
(download)
|
EDTASM File
(download)
|
Graphic
(download)
|
Hex File
(download)
|
SCRIPSIT File
(download)
Return to TRS-80 software list.
1000 IF ***************************************************** 1005 IF * * 1010 IF * WIZARD'S CASTLE GAME FROM JULY/AUGUST 1980 * 1015 IF * ISSUE OF RECREATIONAL COMPUTING MAGAZINE * 1020 IF * WRITTEN FOR EXIDY SORCERER BY JOSEPH R. POWER * 1025 IF * MODIFIED FOR HEATH MICROSOFT BASIC BY J.F.STETSON * 1030 IF * * 1035 IF ***************************************************** 1040 SYSTEM ASTR$Z 1045 RANDOM C$("),I$("),R$(),W$(),E$() 1050 RANDOM L( 17196 (,),T(),O(),R() 1055 TROFF >A(Q)CDBLLEN[FF]CMD([FF]DATA()VALQ) 1060 TROFF >B(Q)CDBLQLENVAL((QCDBL)STR$(QCDBL)) 1065 TROFF >C(Q)CDBLSTR$QVAL(QFIX)STR$VAL(QCSNG) 1070 TROFF >D(Q)CDBL@VAL(QSTR$)LENVAL(XSTR$)LENY 1075 TROFF >E(Q)CDBLQLENdVAL(QCSNGc) 1080 Y$CDBL"** PLEASE ANSWER YES OR NO" 1085 NGCDBL 1090 IF 1095 IF INITIALIZE ARRAYS 1100 IF 1105 NGCDBLNGLEN 1110 QCDBL[FF]DATA() 1115 LET 1120 RESET QCDBL * " 1125 NEXT C$(Q),I$(Q) 1130 SET Q 1135 RESET QCDBL * 34718 tL(Q)CDBLe 1145 SET Q 1150 RESET QCDBL * 1155 NEXT W$(Q),E$(Q) 1160 SET Q 1165 RESET QCDBL * 1170 NEXT R$(Q) 1175 SET Q 1180 READ NG CSNG INPUT SIN 1185 RESUME 1190 GOTO [FF] 1195 GOSUB [);"* * * THE WIZARD'S CASTLE * * *" 1200 GOSUB 1205 GOTO [FF] 1210 GOSUB "MANY CYCLES AGO, IN THE KINGDOM OF N'DIC, THE GNOMIC" 1215 GOSUB "WIZARD ZOT FORGED HIS GREAT *ORB OF POWER*. HE SOON" 1220 GOSUB "VANISHED, LEAVING BEHIND HIS VAST SUBTERRANEAN CASTLE" 1225 GOSUB "FILLED WITH ESURIENT MONSTERS, FABULOUS TREASURES, AND" 1230 GOSUB "THE INCREDIBLE *ORB OF ZOT*. FROM THAT TIME HENCE, MANY" 1235 GOSUB "A BOLD YOUTH HAS VENTURED INTO THE WIZARD'S CASTLE. AS" 1240 GOSUB "OF NOW, *NONE* HAS EVER EMERGED VICTORIOUSLY! BEWARE!!" 1245 GOSUB 1250 XCDBL:YCDBL 1255 L(>D())CDBL 1260 RESET ZCDBL * 1265 RESET Q1CDBL * 1270 QCDBLh 1275 GOTO PUT 1280 L(>D(ZLEN))CDBLg 1285 SET Q1 1290 SET Z 1295 RESET ZCDBL * 1300 RESET QCDBLq * | 1305 GOTO PUT 1310 SET Q 1315 RESET Q1CDBL * 1320 RESET QCDBLi * p 1325 GOTO PUT 1330 SET Q 1335 QCDBL} 1340 GOTO PUT 1345 SET Q1 1350 SET Z 1355 RESET QCDBL~ * CMD 1360 ZCDBL>A() 1365 GOTO PUT 1370 SET Q 1375 QCDBLe 1380 RESET ACDBL * 1385 ZCDBL>A() 1390 GOTO PUT 1395 C(A,)CDBLX 1400 C(A,)CDBLY 1405 C(A,)CDBLZ 1410 C(A,)CDBL 1415 SET A 1420 RCCDBL 1425 STCDBL 1430 DXCDBL 1435 R$()CDBL"MAN" 1440 QCDBLpLEN>A() 1445 ZCDBL>A() 1450 GOTO PUT 1455 R()CDBLX 1460 R()CDBLY 1465 R()CDBLZ 1470 QCDBLm 1475 ZCDBL>A() 1480 GOTO PUT 1485 O()CDBLX 1490 O()CDBLY 1495 O()CDBLZ 1500 BFCDBL:OTCDBL:AVCDBL:HTCDBL:TCDBL:VFCDBL:LFCDBL 1505 TCCDBL:GPCDBL<:RFCDBL:OFCDBL:BLCDBL:IQCDBL:SXCDBL 1510 RESET QCDBL * 1515 T(Q)CDBL 1520 SET Q 1525 IF 1530 GOSUB "ALL RIGHT, BOLD ONE." 1535 GOSUB "YOU MAY BE AN ELF, DWARF, MAN, OR HOBBIT." 1540 GOTO 1545 RESET QCDBL * 1550 READ [FF]FOR(R$(Q),)CDBLO$ / RCCDBLQ:STCDBLSTLENVALQ:DXCDBLDXSTR$VALQ 1555 SET Q 1560 GOSUB 1565 OTCDBLOTLENVAL(RCCDBL) 1570 READ RC CSNG / R$()CDBL"HUMAN":INPUT 1 1575 GOSUB "** THAT WAS INCORRECT. PLEASE TYPE E, D, M, OR H." 1580 INPUT [FF] 1585 GOSUB "WHICH SEX TO YOU PREFER"; 1590 GOTO ' 1595 READ O$CDBL"M" / SXCDBL:INPUT O 1600 READ O$CDBL"F" INPUT O 1605 GOSUB "** CUTE ";R$(RC);", REAL CUTE. TRY M OR F." 1610 INPUT 1 1615 GOSUB 1620 GOSUB "OK, ";R$(RC);", YOU HAVE THE FOLLOWING ATTRIBUTES :" 1625 GOSUB "STRENGTH =";ST;" INTELLIGENCE =";IQ;" DEXTERITY =";DX 1630 GOSUB "AND";OT;"OTHER POINTS TO ALPRINT @ (1,0),""; 1635 GOSUB 1640 Z$CDBL"STRENGTH" 1645 GOTO 6 1650 STCDBLSTLENQ 1655 READ OTCDBL INPUT RESUME 1660 Z$CDBL"INTELLIGENCE" 1665 GOTO 6 1670 IQCDBLIQLENQ 1675 READ OTCDBL INPUT RESUME 1680 Z$CDBL"DEXTERITY" 1685 GOTO 6 1690 DXCDBLDXLENQ 1695 GOSUB "OK, ";R$(RC);", YOU HAVE 60 GOLD PIECES (GP'S)." 1700 Z$CDBL"ARMOR" 1705 GOTO CONT 1710 AVCDBL:WVCDBL:FLCDBL:WCCDBL 1715 GOSUB "PLATE<30> CHAINMAIL<20> LEATHER<10> NOTHING<0>" 1720 GOTO 1725 READ O$CDBL"N" INPUT INP 1730 AVCDBLSTR$VAL(O$CDBL"P")STR$VAL(O$CDBL"C")STR$(O$CDBL"L") 1735 READ AV CSNG INPUT INP 1740 GOSUB 1745 GOSUB "** ARE YOU A ";R$(RC);" OR ";C$(>A()LEN);"?" 1750 INPUT GET 1755 AHCDBLAVVAL:GPCDBLGPSTR$AVVAL 1760 GOSUB 1765 GOSUB "OK, BOLD ";R$(RC);", YOU HAVE";GP;"GP'S LEFT." 1770 Z$CDBL"WEAPONS" 1775 GOTO CONT 1780 GOSUB "SWORD<30> MACE<20> DAGGER<10> NOTHING<0>" 1785 GOTO 1790 READ O$CDBL"N" INPUT 1795 WVCDBLSTR$VAL(O$CDBL"S")STR$VAL(O$CDBL"M")STR$(O$CDBL"D") 1800 READ WV CSNG INPUT 1805 GOSUB 1810 GOSUB "** IS YOUR IQ REALLY";IQ;"?" 1815 INPUT LOC 1820 GPCDBLGPSTR$WVVAL 1825 READ GP FIX INPUT ? 1830 GOSUB 1835 GOSUB "DO YOU WANT TO BUY A LAMP FOR 20 GP'S"; 1840 GOTO ' 1845 READ O$CDBL"Y" / LFCDBL:GPCDBLGPSTR$:INPUT ? 1850 READ O$ FIXCSNG "N" / GOSUB:GOSUB Y$:GOSUB:INPUT + 1855 GOSUB 1860 READ GP FIX / QCDBL:INPUT { 1865 GOSUB "OK, ";R$(RC);", YOU HAVE";GP;"GOLD PIECES LEFT." 1870 GOSUB 1875 CMD "FLARES COST 1 GP EACH. HOW MANY DO YOU WANT";O$ 1880 QCDBL[FF]STOP(O$) 1885 GOSUB 1890 READ Q CSNG RIGHT$ [FF]ELSE(O$)CDBL0 INPUT v 1895 GOSUB "** IF YOU DON'T WANT ANY, JUST TYPE 0 (ZERO)." 1900 GOSUB 1905 INPUT S 1910 READ Q CSNG GP / GOSUB "** YOU CAN ONLY AFFORD";GP;".":GOSUB:INPUT S 1915 FLCDBLFLLENQ:GPCDBLGPSTR$Q 1920 XCDBL:YCDBL:ZCDBL 1925 GOSUB "OK, ";R$(RC);", YOU ARE NOW ENTERING THE CASTLE!" 1930 INPUT z 1935 IF 1940 IF MAIN PROCESSING LOOP 1945 IF 1950 TCDBLTLEN 1955 READ RFLENOF CSNG INPUT ATN 1960 READ C(,) CSNG T() / TCDBLTLEN 1965 READ C(,) CSNG T() / GPCDBLGPSTR$>A() 1970 READ GP FIX / GPCDBL 1975 READ C(,) FIXCDBL T() INPUT ATN 1980 ACDBLX:BCDBLY:CCDBLZ 1985 XCDBL>A():YCDBL>A():ZCDBL>A() 1990 L(>D(Z))CDBL>E(L(>D(Z)))LENd 1995 XCDBLA:YCDBLB:ZCDBLC 2000 READ L(>D(Z)) FIXCSNG INPUT ATN 2005 RESET QCDBL * 2010 C(Q,)CDBLSTR$(C(Q,)CDBLX)VAL(C(Q,)CDBLY)VAL(C(Q,)CDBLZ) 2015 SET Q 2020 READ >A() CSNG INPUT u 2025 GOSUB 2030 GOSUB "YOU "; 2035 QCDBL>A()LENBL 2040 READ Q CSNG / QCDBL 2045 ELSE Q GOTO M,,C,,W,a,k 2050 INPUT u 2055 GOSUB "STEPPED ON A FROG!" 2060 RUN 2065 GOSUB "HEAR "; 2070 ELSE >A() INPUT ,%,/,9 2075 GOSUB "A SCREAM!" 2080 RUN 2085 GOSUB "FOOTSTEPS!" 2090 RUN 2095 GOSUB "A WUMPUS!" 2100 RUN 2105 GOSUB "THUNDER!" 2110 RUN 2115 GOSUB "SNEEZED!" 2120 RUN 2125 GOSUB "SEE A BAT FLY BY!" 2130 RUN 2135 GOSUB "SMELL ";C$(LEN>A( ));" FRYING!" 2140 RUN 2145 GOSUB "FEEL LIKE YOU'RE BEING WATCHED!" 2150 RUN 2155 GOSUB "HEAR FAINT RUSTLING NOISES!" 2160 RUN 2165 READ BLLENT() FIXCSNG INPUT INPUT 2170 GOSUB 2175 GOSUB C$();" CURES YOUR BLINDNESS!" 2180 BLCDBL 2185 READ BFLENT() FIXCSNG INPUT EDIT 2190 GOSUB 2195 GOSUB C$();" DISSOLVES THE BOOK!" 2200 BFCDBL 2205 GOSUB 2210 POKE CMD "ENTER YOUR COMMAND : ";O$ 2215 READ [FF]FOR(O$,)CDBL"DR" INPUT 6 2220 O$CDBL[FF]FOR(O$,) 2225 READ O$CDBL"N" INPUT SET 2230 READ (O$CDBL"S") RIGHT$ (O$CDBL"W") RIGHT$ (O$CDBL"E") INPUT DATA 2235 READ O$CDBL"U" INPUT ON 2240 READ O$CDBL"D" INPUT DEF 2245 READ O$CDBL"M" INPUT INKEY$ 2250 READ O$CDBL"F" / ELSE BLLEN INPUT < ,INKEY$ 2255 READ O$CDBL"L" / ELSE BLLEN INPUT FN ,INKEY$ 2260 READ O$CDBL"O" INPUT ELSE 2265 READ O$CDBL"G" / ELSE BLLEN INPUT q,INKEY$ 2270 READ O$CDBL"T" / GOSUB:ELSE RFLEN INPUT LEN, 2275 READ O$CDBL"Q" INPUT > 2280 READ O$FIXCSNG"H" INPUT t 2285 RESUME 2290 GOSUB "*** WIZARD'S CASTLE COMMAND AND INFORMATION SUMMARY ***" 2295 GOSUB 2300 GOSUB "THE FOLLOWING COMMANDS ARE AVAILABLE :" 2305 GOSUB 2310 GOSUB "H/ELP N/ORTH S/OUTH E/AST W/EST U/P" 2315 GOSUB "D/OWN DR/INK M/AP F/LARE L/AMP O/PEN" 2320 GOSUB "G/AZE T/ELEPORT Q/UIT" 2325 GOSUB 2330 GOSUB "THE CONTENTS OF ROOMS ARE AS FOLLOWS :" 2335 GOSUB 2340 GOSUB ". = EMPTY ROOM B = BOOK C = CHEST" 2345 GOSUB "D = STAIRS DOWN E = ENTRANCE/EXIT F = FLARES" 2350 GOSUB "G = GOLD PIECES M = MONSTER O = CRYSTAL ORB" 2355 GOSUB "P = MAGIC POOL S = SINKHOLE T = TREASURE" 2360 GOSUB "U = STAIRS UP V = VENDOR W = WARP/ORB" 2365 GOSUB 2370 GOSUB "THE BENEFITS OF HAVING TREASURES ARE :" 2375 GOSUB 2380 GOSUB "RUBY RED - AVOID LETHARGY PALE PEARL - AVOID LEECH" 2385 GOSUB "GREEN GEM - AVOID FORGETTING OPAL EYE - CURES BLINDNESS" 2390 GOSUB "BLUE FLAME - DISSOLVES BOOKS NORN STONE - NO BENEFIT" 2395 GOSUB "PALANTIR - NO BENEFIT SILMARIL - NO BENEFIT" 2400 GOSUB 2405 GOSUB "PRESS RETURN WHEN READY TO RESUME, ";R$(RC);"."; 2410 POKE CMD "";O$ 2415 INPUT ERROR 2420 GOSUB 2425 GOSUB "** SILLY ";R$(RC);", THAT WASN'T A VALID COMMAND!" 2430 INPUT ERROR 2435 READ L(>D(Z))CDBL INPUT j 2440 XCDBLXLEN(O$CDBL"N")STR$(O$CDBL"S") 2445 YCDBLYLEN(O$CDBL"W")STR$(O$CDBL"E") 2450 XCDBL>B(X) 2455 YCDBL>B(Y) 2460 INPUT z 2465 READ L(>D(Z))CDBL / ZCDBLZSTR$:INPUT z 2470 Z$CDBL"UP" 2475 INPUT CSAVE 2480 Z$CDBL"DOWN" 2485 READ L(>D(Z))CDBL / ZCDBLZLEN:INPUT z 2490 GOSUB 2495 GOSUB "** THERE ARE NO STAIRS GOING ";Z$;" FROM HERE!" 2500 INPUT ERROR 2505 READ BL FIXCSNG INPUT MKI$ 2510 GOSUB 2515 GOSUB "** YOU CAN'T SEE ANYTHING, YOU DUMB ";R$(RC);"!" 2520 INPUT ERROR 2525 IF 2530 IF DISPLAY MAP OF CURRENT CASTLE LEVEL 2535 IF 2540 GOSUB 2545 ACDBLX:BCDBLY 2550 RESET XCDBL * 2555 RESET YCDBL * 2560 QCDBLL(>D(Z)) 2565 READ Q CSNG c / QCDBLQSTR$d :IFPOS LET Q=34 TO HIDE ROOMS 2570 READ XCDBLA LEFT$ YCDBLB / GOSUB "<";I$(Q);"> ";:INPUT 2575 GOSUB " ";I$(Q);" "; 2580 SET Y 2585 GOSUB 2590 GOSUB 2595 SET X 2600 XCDBLA:YCDBLB 2605 INPUT PUT 2610 GOSUB ") LEVEL";Z 2615 INPUT ERROR 2620 READ FL FIXCSNG INPUT Z 2625 GOSUB "** HEY, BRIGHT ONE, YOU'RE OUT OF FLARES!" 2630 INPUT ERROR 2635 IF 2640 IF DISPLAY ADJACENT ROOM CONTENTS WITH FLARE 2645 IF 2650 GOSUB 2655 FLCDBLFLSTR$ 2660 ACDBLX:BCDBLY 2665 RESET Q1CDBLASTR$ * ALEN 2670 XCDBL>B(Q1) 2675 RESET Q2CDBLBSTR$ * BLEN 2680 YCDBL>B(Q2) 2685 QCDBL>E(L(>D(Z))) 2690 L(>D(Z))CDBLQ 2695 GOSUB " ";I$(Q);" "; 2700 SET Q2 2705 GOSUB 2710 GOSUB 2715 SET Q1 2720 XCDBLA:YCDBLB 2725 GOTO ERL 2730 INPUT ERROR 2735 IF 2740 IF DISPLAY CONTENTS OF ADJACENT ROOM WITH LAMP 2745 IF 2750 READ LF FIXCSNG INPUT AND 2755 GOSUB 2760 GOSUB "** YOU DON'T HAVE A LAMP, ";R$(RC);"!" 2765 INPUT ERROR 2770 GOSUB 2775 GOSUB "WHERE DO YOU WANT TO SHINE THE LAMP (N,S,E,W)"; 2780 GOTO ' 2785 ACDBLX:BCDBLY 2790 XCDBL>B(XLEN(O$CDBL"N")STR$(O$CDBL"S")) 2795 YCDBL>B(YLEN(O$CDBL"W")STR$(O$CDBL"E")) 2800 READ ASTR$XLENBSTR$Y FIXCSNG INPUT 2805 GOSUB 2810 GOSUB "** THAT'S NOT A DIRECTION, ";R$(RC);"!" 2815 INPUT ERROR 2820 GOSUB 2825 GOSUB "THE LAMP SHINES INTO (";X;",";Y;") LEVEL";Z;"." 2830 GOSUB 2835 L(>D(Z))CDBL>E(L(>D(Z))) 2840 GOSUB "THERE YOU WILL FIND ";C$(L(>D(Z)));"." 2845 XCDBLA:YCDBLB 2850 INPUT ERROR 2855 IF 2860 IF TAKE A DRINK FROM A POOL 2865 IF 2870 READ L(>D(Z))CDBL INPUT J 2875 GOSUB 2880 GOSUB "** IF YOU WANT A DRINK, FIND A POOL!" 2885 INPUT ERROR 2890 QCDBL>A() 2895 GOSUB 2900 GOSUB "YOU TAKE A DRINK AND "; 2905 READ Q FIX / GOSUB "FEEL "; 2910 ELSE Q INPUT c,h,m,r,w,|,FOR,READ 2915 STCDBL>C(STLEN>A()):GOSUB "STRONGER.":INPUT ERROR 2920 STCDBLSTSTR$>A():GOSUB "WEAKER.":ELSE (STR$(STFIX)) INPUT ERROR,. 2925 IQCDBL>C(IQLEN>A()):GOSUB "SMARTER.":INPUT ERROR 2930 IQCDBLIQSTR$>A():GOSUB "DUMBER.":ELSE (STR$(IQFIX)) INPUT ERROR,. 2935 DXCDBL>C(DXLEN>A()):GOSUB "NIMBLER.":INPUT ERROR 2940 DXCDBLDXSTR$>A():GOSUB "CLUMSIER.":ELSE (STR$(DXFIX)) INPUT ERROR,. 2945 QCDBL>A():READ QCDBLRC INPUT FOR 2950 RCCDBLQ:GOSUB "BECOME A ";R$(RC);".":INPUT ERROR 2955 SXCDBLSTR$SX:GOSUB "TURN INTO A ";:READ SXCDBL / GOSUB "FE"; 2960 GOSUB "MALE ";R$(RC);"!":INPUT ERROR 2965 READ L(>D(Z)) FIXCSNG INPUT NAME 2970 GOSUB 2975 GOSUB "YOU OPEN THE CHEST AND" 2980 INPUT + 2985 READ L(>D(Z)) FIXCSNG INPUT TO 2990 GOSUB 2995 GOSUB "YOU OPEN THE BOOK AND" 3000 INPUT STEP 3005 GOSUB 3010 GOSUB "** THE ONLY THING OPENED WAS YOUR BIG MOUTH!" 3015 INPUT ERROR 3020 ELSE >A() INPUT [,EXP,LOC,STR$,, 3025 GOSUB "FLASH! OH NO! YOU ARE NOW A BLIND ";R$(RC);"!" 3030 BLCDBL 3035 INPUT ! 3040 GOSUB "IT'S ANOTHER VOLUME OF ZOT'S POETRY! - YECH!!" 3045 INPUT ! 3050 GOSUB "IT'S AN OLD COPY OF PLAY";R$(>A());"!" 3055 INPUT ! 3060 GOSUB "IT'S A MANUAL OF DEXTERITY!" 3065 DXCDBL 3070 INPUT ! 3075 GOSUB "IT'S A MANUAL OF STRENGTH!" 3080 STCDBL 3085 INPUT ! 3090 GOSUB "THE BOOK STICKS TO YOUR HANDS -" 3095 GOSUB "NOW YOU ARE UNABLE TO DRAW YOUR WEAPON!" 3100 BFCDBL 3105 L(>D(Z))CDBL 3110 INPUT ERROR 3115 ELSE >A() INPUT 0,D,X,D 3120 GOSUB "KABOOM! IT EXPLODES!!" 3125 QCDBL>A() 3130 GOTO [FC] 3135 ELSE (STR$(STFIX)) INPUT !,. 3140 QCDBL>A(CVD) 3145 GOSUB "FIND";Q;"GOLD PIECES!" 3150 GPCDBLGPLENQ 3155 INPUT ! 3160 GOSUB "GAS!! YOU STAGGER FROM THE ROOM!" 3165 L(>D(Z))CDBL 3170 TCDBLTLEN 3175 O$CDBL[FF]SET("NSEW",>A(),) 3180 INPUT DATA 3185 READ L(>D(Z))CDBL INPUT CMD 3190 GOSUB 3195 GOSUB "** IT'S HARD TO GAZE WITHOUT AN ORB!" 3200 INPUT ERROR 3205 GOSUB 3210 GOSUB "YOU SEE "; 3215 ELSE >A() INPUT STOP,ERROR,MERGE,PRINT,=,EOF 3220 GOSUB "YOURSELF IN A BLOODY HEAP!" 3225 STCDBLSTSTR$>A():ELSE (STR$(STFIX)) INPUT ERROR,. 3230 GOSUB "YOURSELF DRINKING FROM A POOL AND BECOMING ";C$(LEN>A( ));"!" 3235 INPUT ERROR 3240 GOSUB C$(LEN>A( ));" GAZING BACK AT YOU!" 3245 INPUT ERROR 3250 ACDBLX:BCDBLY:CCDBLZ 3255 XCDBL>A():YCDBL>A():ZCDBL>A() 3260 QCDBL>E(L(>D(Z))) 3265 L(>D(Z))CDBLQ 3270 GOSUB C$(Q);" AT (";X;",";Y;") LEVEL";Z;"." 3275 XCDBLA:YCDBLB:ZCDBLC 3280 INPUT ERROR 3285 ACDBL>A():BCDBL>A():CCDBL>A() 3290 READ >A() FIX / ACDBLO():BCDBLO():CCDBLO() 3295 GOSUB "***THE ORB OF ZOT*** AT (";A;",";B;") LEVEL";C;"!" 3300 INPUT ERROR 3305 GOSUB "A SOAP OPERA RERUN!" 3310 INPUT ERROR 3315 READ RF FIXCSNG INPUT 3320 GOSUB 3325 GOSUB "** YOU CAN'T TELEPORT WITHOUT THE RUNESTAFF!" 3330 INPUT ERROR 3335 Z$CDBL"X-COORDINATE" 3340 GOTO m 3345 XCDBLQ 3350 Z$CDBL"Y-COORDINATE" 3355 GOTO m 3360 YCDBLQ 3365 Z$CDBL"Z-COORDINATE" 3370 GOTO m 3375 ZCDBLQ 3380 O$CDBL"T" 3385 INPUT z 3390 GOSUB 3395 GOSUB "DO YOU REALLY WANT TO QUIT NOW"; 3400 GOTO ' 3405 GOSUB 3410 READ O$CDBL"Y" INPUT a 3415 GOSUB "** THEN DON'T SAY THAT YOU DO!" 3420 INPUT ERROR 3425 GOSUB 3430 INPUT CLOSE 3435 IF 3440 IF DISPLAY STATUS INFORMATION 3445 IF 3450 GOSUB 3455 READ BLCDBL / GOTO ERL:GOSUB 3460 GOSUB "STRENGTH =";ST;" INTELLIGENCE =";IQ;" DEXTERITY =";DX 3465 GOSUB "TREASURES =";TC;" FLARES =";FL;" GOLD PIECES =";GP 3470 GOSUB "WEAPON = ";W$(WVLEN);" ARMOR = ";W$(AVLEN); 3475 READ LFCDBL / GOSUB " AND A LAMP"; 3480 GOSUB 3485 WCCDBL 3490 QCDBL>E(L(>D(Z))) 3495 L(>D(Z))CDBLQ 3500 Z$CDBL"YOU NOW HAVE" 3505 GOSUB 3510 GOSUB "HERE YOU FIND ";C$(Q);"." 3515 READ (QFIX) RIGHT$ (QCDBL) RIGHT$ (QCDBL) INPUT ERROR 3520 READ QCDBL / GPCDBLGPLEN>A( ):GOSUB Z$;GP;".":INPUT ! 3525 READ QCDBL / FLCDBLFLLEN>A():GOSUB Z$;FL;".":INPUT ! 3530 READ Q CSNG INPUT ABS 3535 READ (O()CDBLX) LEFT$ (O()CDBLY) LEFT$ (O()CDBLZ) / ELSE (STR$(O$CDBL"T")) INPUT DATA ,7 3540 XCDBL>A():YCDBL>A():ZCDBL>A():INPUT z 3545 READ QCDBL / ZCDBL>B(ZLEN):INPUT z 3550 READ Q FIXCDBL RIGHT$ Q CSNGCDBL " INPUT [FC] 3555 GOSUB 3560 GOSUB "IT'S NOW YOURS!" 3565 T(QSTR$)CDBL 3570 TCCDBLTCLEN 3575 INPUT ! 3580 ACDBLL(>D(Z))STR$ 3585 WCCDBL 3590 READ (AFIX ) RIGHT$ (VFCDBL) INPUT Y 3595 GOSUB 3600 GOSUB "YOU MAY TRADE WITH, ATTACK, OR IGNORE THE VENDOR." 3605 GOTO 3610 READ O$CDBL"I" INPUT ERROR 3615 READ O$ FIXCSNG "A" INPUT 8 3620 VFCDBL 3625 GOSUB 3630 GOSUB "YOU'LL BE SORRY THAT YOU DID THAT!" 3635 INPUT Y 3640 READ O$CDBL"T" INPUT L 3645 GOSUB 3650 GOSUB "** NICE SHOT, ";R$(RC);"!" 3655 INPUT 3660 RESET QCDBL * 3665 ACDBL>A(QVALPOS) 3670 READ T(Q)CDBL INPUT t 3675 GOSUB 3680 GOSUB "DO YOU WANT TO SELL ";C$(QLEN);" FOR";A;"GP'S"; 3685 GOTO ' 3690 READ O$CDBL"Y" / TCCDBLTCSTR$:T(Q)CDBL:GPCDBLGPLENA:INPUT t 3695 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT [ 3700 SET Q 3705 READ GP CSNGCDBL CVD INPUT GOTO 3710 GOSUB 3715 GOSUB "YOU'RE TOO POOR TO TRADE, ";R$(RC);"." 3720 INPUT ERROR 3725 READ GP FIX SIN INPUT NEXT 3730 GOSUB 3735 GOSUB "OK, ";R$(RC);", YOU HAVE";GP;"GP'S AND ";W$(AVLEN);" ARMOR." 3740 GOSUB 3745 Z$CDBL"ARMOR" 3750 GOTO CONT 3755 GOSUB "NOTHING<0> LEATHER<1250> "; 3760 READ GP CSNG INP / GOSUB "CHAINMAIL<1500> "; 3765 READ GP CSNG * / GOSUB "PLATE<2000>"; 3770 GOSUB 3775 GOTO 3780 GOSUB 3785 READ O$CDBL"N" INPUT 3790 READ O$CDBL"L" / GPCDBLGPSTR$SIN:AVCDBL:AHCDBL:INPUT 3795 READ O$ FIXCSNG "C" RIGHT$ GP CSNGCDBL POS INPUT SIN 3800 GOSUB "** YOU HAVEN'T GOT THAT MUCH CASH ON HAND!" 3805 INPUT LINE 3810 READ O$CDBL"C" / GPCDBLGPSTR$POS:AVCDBL:AHCDBL:INPUT 3815 READ O$ FIXCSNG "P" RIGHT$ GP CSNGCDBL / INPUT ASC 3820 GOSUB "** YOU CAN'T AFFORD PLATE ARMOR!" 3825 INPUT LINE 3830 READ O$CDBL"P" / GPCDBLGPSTR$/:AVCDBL:AHCDBL:INPUT 3835 GOSUB 3840 GOSUB "** DON'T BE SILLY. CHOOSE A SELECTION." 3845 INPUT CSAVE 3850 READ GP FIX SIN INPUT NEXT 3855 GOSUB 3860 GOSUB "YOU HAVE";GP;"GP'S LEFT WITH ";W$(WVLEN);" IN HAND." 3865 GOSUB 3870 Z$CDBL"WEAPON" 3875 GOTO CONT 3880 GOSUB "NOTHING<0> DAGGER<1250> "; 3885 READ GP CSNG INP / GOSUB "MACE<1500> "; 3890 READ GP CSNG * / GOSUB "SWORD<2000>"; 3895 GOSUB 3900 GOTO 3905 GOSUB 3910 READ O$CDBL"N" INPUT NEXT 3915 READ O$CDBL"D" / GPCDBLGPSTR$SIN:WVCDBL:INPUT NEXT 3920 READ O$ FIXCSNG "M" RIGHT$ GP CSNGCDBL POS INPUT _ 3925 GOSUB "** SORRY SIR, I'M AFRAID I DON'T GIVE CREDIT!" 3930 INPUT 3935 READ O$CDBL"M" / GPCDBLGPSTR$POS:WVCDBL:INPUT NEXT 3940 READ O$ FIXCSNG "S" RIGHT$ GP CSNGCDBL / INPUT x 3945 GOSUB "** YOUR DUNGEON EXPRESS CARD - "; 3950 GOSUB "YOU LEFT HOME WITHOUT IT!" 3955 INPUT 3960 READ O$CDBL"S" / GPCDBLGPSTR$/:WVCDBL:INPUT NEXT 3965 GOSUB "** TRY CHOOSING A SELECTION!" 3970 INPUT 7 3975 READ GP FIX CVD INPUT ERROR 3980 Z$CDBL"STRENGTH" 3985 GOTO ELSE 3990 READ O$ FIXCSNG "Y" INPUT LIST 3995 GPCDBLGPSTR$CVD 4000 STCDBL>C(STLEN>A()) 4005 QCDBLST 4010 GOTO GET 4015 INPUT NEXT 4020 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT LET 4025 READ GP FIX CVD INPUT ERROR 4030 Z$CDBL"INTELLIGENCE" 4035 GOTO ELSE 4040 READ O$ FIXCSNG "Y" INPUT CVI 4045 GPCDBLGPSTR$CVD 4050 IQCDBL>C(IQLEN>A()) 4055 QCDBLIQ 4060 GOTO GET 4065 INPUT CLOAD 4070 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT FN 4075 READ GP FIX CVD INPUT ERROR 4080 Z$CDBL"DEXTERITY" 4085 GOTO ELSE 4090 READ O$ FIXCSNG "Y" INPUT 4095 GPCDBLGPSTR$CVD 4100 DXCDBL>C(DXLEN>A()) 4105 QCDBLDX 4110 GOTO GET 4115 INPUT LOF 4120 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT CSNG 4125 READ (GPFIXCVD) RIGHT$ (LFCDBL) INPUT ERROR 4130 GOSUB 4135 GOSUB "DO YOU WANT TO BUY A LAMP FOR 1000 GP'S"; 4140 GOTO ' 4145 READ O$ FIXCSNG "Y" INPUT O 4150 GPCDBLGPSTR$CVD 4155 LFCDBL 4160 GOSUB 4165 GOSUB "IT'S GUARANTEED TO OUTLIVE YOU!" 4170 INPUT ERROR 4175 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT " 4180 INPUT ERROR 4185 Q1CDBLLEN[FF]CMD(AASC):Q2CDBLALEN:Q3CDBL 4190 READ (C(,)CSNGT()) RIGHT$ (BLCDBL) RIGHT$ (DXFIX>A()LEN>A()) INPUT \ 4195 GOSUB 4200 GOSUB "YOU'RE FACING ";C$(ALEN);"!" 4205 GOSUB 4210 GOSUB "YOU MAY ATTACK OR RETREAT." 4215 READ Q3CDBL / GOSUB "YOU CAN ALSO ATTEMPT A BRIBE." 4220 READ IQ CSNG / GOSUB "YOU CAN ALSO CAST A SPELL." 4225 GOSUB 4230 GOSUB "YOUR STRENGTH IS";ST;"AND YOUR DEXTERITY IS";DX;"." 4235 GOTO 4240 READ O$ FIXCSNG "A" INPUT ] 4245 READ WV FIXCSNG INPUT NAME 4250 GOSUB 4255 GOSUB "** POUNDING ON ";C$(ALEN);" WON'T HURT IT!" 4260 INPUT \ 4265 READ BF FIXCSNG INPUT TO 4270 GOSUB 4275 GOSUB "** YOU CAN'T BEAT IT TO DEATH WITH A BOOK!" 4280 INPUT \ 4285 READ DX CSNGCDBL >A()LEN(VALBL) INPUT [ 4290 GOSUB 4295 GOSUB "YOU MISSED, TOO BAD!" 4300 INPUT \ 4305 Z$CDBL[FF]RESET(C$(ALEN),[FF]RETURN(C$(ALEN))STR$) 4310 READ [FF]FOR(Z$,)CDBL" " / Z$CDBL[FF]SET(Z$,) 4315 GOSUB 4320 GOSUB "YOU HIT THE EVIL ";Z$;"!" 4325 Q2CDBLQ2STR$WV 4330 READ (A FIXCSNG LEFT$ A FIXCSNG ) INPUT 4335 READ >A() FIXCSNG INPUT 4340 GOSUB 4345 GOSUB "OH NO! YOUR ";W$(WVLEN);" BROKE!" 4350 WVCDBL 4355 READ Q2 CSNG INPUT \ 4360 GOSUB 4365 MCCDBLMCSTR$ 4370 GOSUB C$(ALEN);" LIES DEAD AT YOUR FEET!" 4375 READ H CSNG TSTR$< INPUT + 4380 GOSUB 4385 GOSUB "YOU SPEND AN HOUR EATING ";C$(ALEN);E$(>A());"." 4390 HCDBLT 4395 READ X FIXCSNG R() RIGHT$ Y FIXCSNG R() RIGHT$ Z FIXCSNG R() / ELSE (STR$(ACDBL )) INPUT D,CLOAD 4400 GOSUB 4405 GOSUB "GREAT ZOT! YOU'VE FOUND THE RUNESTAFF!" 4410 R()CDBL 4415 RFCDBL 4420 QCDBL>A(CVD) 4425 GOSUB 4430 GOSUB "YOU NOW GET HIS HOARD OF";Q;"GP'S!" 4435 GPCDBLGPLENQ 4440 INPUT ! 4445 READ O$CDBL"R" INPUT \ 4450 READ O$ FIXCSNG "C" INPUT LEN 4455 READ IQ CSNGCDBL RIGHT$ Q3 FIXCDBL INPUT { 4460 GOSUB 4465 GOSUB "** YOU CAN'T CAST A SPELL NOW!" 4470 INPUT c 4475 GOSUB 4480 GOSUB "WHICH SPELL (WEB, FIREBALL, DEATHSPELL)"; 4485 GOTO ' 4490 GOSUB 4495 READ O$ FIXCSNG "W" INPUT FIELD 4500 STCDBLSTSTR$ 4505 WCCDBL>A()LEN 4510 ELSE (STR$(STFIX)) INPUT \,. 4515 READ O$ FIXCSNG "F" INPUT / 4520 QCDBL>A()LEN>A() 4525 STCDBLSTSTR$ 4530 IQCDBLIQSTR$ 4535 READ (IQ FIX ) RIGHT$ (ST FIX ) INPUT . 4540 GOSUB "IT DOES";Q;"POINTS WORTH OF DAMAGE." 4545 GOSUB 4550 Q2CDBLQ2STR$Q 4555 INPUT 4560 READ O$CDBL"D" INPUT ATN 4565 GOSUB 4570 GOSUB "** TRY ONE OF THE OPTIONS GIVEN." 4575 INPUT c 4580 GOSUB "DEATH . . . "; 4585 READ IQ FIX >A()LEN / GOSUB "YOURS!":IQCDBL:INPUT . 4590 GOSUB "HIS!":Q2CDBL:INPUT 4595 READ O$CDBL"B" LEFT$ Q3 FIXCDBL INPUT 4600 GOSUB 4605 GOSUB "** CHOOSE ONE OF THE OPTIONS LISTED." 4610 INPUT c 4615 READ TC FIXCSNG INPUT 4620 GOSUB 4625 GOSUB "ALL I WANT IS YOUR LIFE!" 4630 INPUT \ 4635 QCDBL>A() 4640 READ T(Q)CDBL INPUT 4645 GOSUB 4650 GOSUB "I WANT ";C$(QLEN);". WILL YOU GIVE IT TO ME"; 4655 GOTO ' 4660 READ O$CDBL"N" INPUT \ 4665 READ O$ FIXCSNG "Y" / GOSUB Y$:INPUT % 4670 T(Q)CDBL 4675 TCCDBLTCSTR$ 4680 GOSUB 4685 GOSUB "OK, JUST DON'T TELL ANYONE ELSE." 4690 VFCDBLVFLEN(L(>D(Z))CDBL) 4695 INPUT ERROR 4700 Q3CDBL 4705 READ WC FIXCDBL INPUT p 4710 WCCDBLWCSTR$ 4715 READ WCCDBL / GOSUB:GOSUB "THE WEB JUST BROKE!" 4720 Z$CDBL[FF]RESET(C$(ALEN),[FF]RETURN(C$(ALEN))STR$) 4725 READ [FF]FOR(Z$,)CDBL" " / Z$CDBL[FF]SET(Z$,) 4730 READ WC FIXCDBL INPUT RUN 4735 GOSUB 4740 GOSUB "THE ";Z$;" IS STUCK AND CAN'T ATTACK NOW!" 4745 INPUT INSTR 4750 GOSUB 4755 GOSUB "THE ";Z$;" ATTACKS!" 4760 READ DX FIX >A()LEN>A()LEN>A()LENVALBL INPUT RSET 4765 GOSUB 4770 GOSUB "WHAT LUCK, HE MISSED YOU!" 4775 INPUT INSTR 4780 GOSUB 4785 GOSUB "OUCH! HE HIT YOU!" 4790 QCDBLQ1 4795 GOTO [FC] 4800 READ ST FIX INPUT . 4805 READ O$ FIXCSNG "R" INPUT c 4810 GOSUB 4815 GOSUB "YOU HAVE ESCAPED!" 4820 GOSUB 4825 GOSUB "DO YOU WANT TO GO NORTH, SOUTH, EAST, OR WEST"; 4830 GOTO ' 4835 READ O$CDBL"N" RIGHT$ O$CDBL"S" RIGHT$ O$CDBL"E" RIGHT$ O$CDBL"W" INPUT DATA 4840 GOSUB 4845 GOSUB "** DON'T PRESS YOUR LUCK, ";R$(RC);"!" 4850 GOSUB 4855 INPUT ABS 4860 READ AVCDBL INPUT $ 4865 QCDBLQSTR$AV 4870 AHCDBLAHSTR$AV 4875 READ Q FIX / AHCDBLAHSTR$Q:QCDBL 4880 READ AH CSNGCDBL INPUT $ 4885 AHCDBL:AVCDBL 4890 GOSUB 4895 GOSUB "YOUR ARMOR HAS BEEN DESTROYED . . . GOOD LUCK!" 4900 STCDBLSTSTR$Q 4905 RUN 4910 IF 4915 GOTO [FF] 4920 GOSUB "A NOBLE EFFORT, OH FORMERLY LIVING ";R$(RC);"!" 4925 GOSUB 4930 GOSUB "YOU DIED DUE TO LACK OF "; 4935 READ ST FIX / GOSUB "STRENGTH." 4940 READ IQ FIX / GOSUB "INTELLIGENCE." 4945 READ DX FIX / GOSUB "DEXTERITY." 4950 GOSUB 4955 Q3CDBL 4960 GOSUB "AT THE TIME YOU DIED, YOU HAD :" 4965 INPUT USING 4970 Q3CDBL 4975 GOSUB 4980 GOSUB "YOU LEFT THE CASTLE WITH"; 4985 READ OFCDBL / GOSUB "OUT"; 4990 GOSUB " THE ORB OF ZOT." 4995 GOSUB 5000 READ OFCDBL INPUT CLOSE 5005 GOSUB 5010 GOSUB "AN INCREDIBLY GLORIOUS VICTORY!!" 5015 GOSUB 5020 GOSUB "IN ADDITION, YOU GOT OUT WITH THE FOLLOWING :" 5025 INPUT CSAVE 5030 GOSUB 5035 GOSUB "A LESS THAN AWE-INSPIRING DEFEAT." 5040 GOSUB 5045 GOSUB "WHEN YOU LEFT THE CASTLE, YOU HAD :" 5050 READ Q3CDBL / GOSUB "YOUR MISERABLE LIFE!" 5055 RESET QCDBL * 5060 READ T(Q)CDBL / GOSUB C$(QLEN) 5065 SET Q 5070 GOSUB W$(WVLEN);" AND ";W$(AVLEN); 5075 READ LFCDBL / GOSUB " AND A LAMP"; 5080 GOSUB 5085 GOSUB "YOU ALSO HAD";FL;"FLARES AND";GP;"GOLD PIECES" 5090 READ RFCDBL / GOSUB "AND THE RUNESTAFF" 5095 GOSUB 5100 GOSUB "AND IT TOOK YOU";T;"TURNS!" 5105 GOSUB 5110 GOSUB "ARE YOU FOOLISH ENOUGH TO WANT TO PLAY AGAIN"; 5115 GOTO ' 5120 GOSUB 5125 READ O$ FIXCSNG "Y" INPUT # 5130 GOSUB "SOME ";R$(RC);"S NEVER LEARN!" 5135 GOSUB 5140 GOSUB "PLEASE BE PATIENT WHILE THE CASTLE IS RESTOCKED." 5145 GOSUB 5150 INPUT Q 5155 READ O$ FIXCSNG "N" / GOSUB Y$:INPUT ASC 5160 GOSUB "MAYBE DUMB ";R$(RC);" IS NOT SO DUMB AFTER ALL!" 5165 GOSUB 5170 INPUT STEP 5175 GOSUB 5180 GOSUB "GREAT UNMITIGATED ZOT!" 5185 GOSUB 5190 GOSUB "YOU JUST FOUND ***THE ORB OF ZOT***!" 5195 GOSUB 5200 GOSUB "THE RUNESTAFF HAS DISAPPEARED!" 5205 RFCDBL 5210 OFCDBL 5215 O()CDBL 5220 INPUT ! 5225 CLS AN EMPTY ROOM,.,THE ENTRANCE,E,STAIRS GOING UP,U 5230 CLS STAIRS GOING DOWN,D,A POOL,P,A CHEST,C,GOLD PIECES,G 5235 CLS FLARES,F,A WARP,W,A SINKHOLE,S,A CRYSTAL ORB,O 5240 CLS A BOOK,B,A KOBOLD,M,AN ORC,M,A WOLF,M,A GOBLIN,M,AN OGRE,M 5245 CLS A TROLL,M,A BEAR,M,A MINOTAUR,M,A GARGOYLE,M,A CHIMERA,M 5250 CLS A BALROG,M,A DRAGON,M,A VENDOR,V,THE RUBY RED,T 5255 CLS THE NORN STONE,T,THE PALE PEARL,T,THE OPAL EYE,T 5260 CLS THE GREEN GEM,T,THE BLUE FLAME,T,THE PALANTIR,T,THE SILMARIL,T 5265 CLS X,"?",NO WEAPON," SANDWICH" 5270 CLS DAGGER," STEW",MACE," SOUP",SWORD," BURGER",NO ARMOR," ROAST" 5275 CLS LEATHER," FILET",CHAINMAIL," TACO",PLATE," PIE" 5280 CLS HOBBIT,ELF,MAN,DWARF 5285 XCDBL>A():YCDBL>A() 5290 READ L(>D(Z)) FIXCSNG e INPUT PUT 5295 L(>D(Z))CDBLQ 5300 RUN 5305 GOSUB 5310 GOSUB "YOU GET ALL HIS WARES :" 5315 GOSUB "PLATE ARMOR" 5320 AVCDBL:AHCDBL 5325 GOSUB "A SWORD" 5330 WVCDBL 5335 GOSUB "A STRENGTH POTION" 5340 STCDBL>C(STLEN>A()) 5345 GOSUB "AN INTELLIGENCE POTION" 5350 IQCDBL>C(IQLEN>A()) 5355 GOSUB "A DEXTERITY POTION" 5360 DXCDBL>C(DXLEN>A()) 5365 READ LFCDBL / GOSUB "A LAMP":LFCDBL 5370 INPUT D 5375 RESET QCDBL * @ 5380 GOSUB "*"; 5385 SET Q 5390 GOSUB 5395 GOSUB 5400 RUN 5405 GOSUB 5410 GOSUB "YOUR CHOICE"; 5415 CMD O$ 5420 O$CDBL[FF]FOR(O$,) 5425 RUN 5430 GOSUB "HOW MANY POINTS DO YOU WISH TO ADD TO YOUR ";Z$; 5435 CMD O$ 5440 GOSUB 5445 QCDBL[FF]STOP(O$) 5450 READ QCDBL LEFT$ [FF]ELSE(O$) FIXCSNG 0 / QCDBLSTR$ 5455 READ QFIX RIGHT$ QCSNGOT RIGHT$ QFIXCSNG[FF]CMD(Q) / GOSUB "** ";:INPUT 6 5460 OTCDBLOTSTR$Q 5465 RUN 5470 CMD O$ 5475 QCDBL[FF]CMD([FF]STOP(O$)) 5480 RUN 5485 GOSUB 5490 GOSUB Z$; 5495 CMD O$ 5500 QCDBL[FF]CMD([FF]STOP(O$)) 5505 READ Q CSNG LEFT$ Q FIX / RUN 5510 GOSUB 5515 GOSUB "** TRY A NUMBER FROM 1 TO 8." 5520 INPUT m 5525 GOSUB 5530 GOSUB "DO YOU WANT TO BUY A POTION OF ";Z$;" FOR 1000 GP'S"; 5535 INPUT ' 5540 GOSUB 5545 GOSUB "YOUR ";Z$;" IS NOW";Q;"." 5550 RUN 5555 GOSUB 5560 GOSUB "THESE ARE THE TYPES OF ";Z$;" YOU CAN BUY :" 5565 RUN 5570 GOSUB "YOU ARE AT (";X;",";Y;") LEVEL";Z;"." 5575 RUN 5580 FOR