Listing of file='QST16.BAS;01' on disk='vmedia/chip_33-sector.ccvf'
10 PLOT 15:GOTO 145 15 LN= LN+ 1:IF LN< Y0+ H0THEN PLOT 3,X0,LN:RETURN 20 A1= CALL (0) 25 PLOT 3,X0,Y0+ H0- 1:PRINT SPC( W0)"":PLOT 3,X0,Y0+ H0- 1 30 RETURN 35 GOSUB 140 40 A6= 28672+ 128* Y0+ X0+ X0:A2= A5+ 2:GOSUB 135 45 A6= 128- W0- W0:A2= A5+ 25:GOSUB 135 50 POKE A5+ 5,H0- 1:POKE A5+ 7,W0* (A3+ 1):POKE A5+ 19,35* (1- A3) 55 RETURN 60 GOSUB 140:RESTORE 65 65 DATA 33,-1,-1,6,-1,14,-1,17,128,0,25,126 70 DATA 17,128,255,25,119,35,-1,13,194,-1,-1 75 DATA 17,-1,-1,25,5,194,-1,-1,201 80 IF A5> 65503THEN A5= A5- 32:GOTO 100 85 FOR I= 1TO 32:READ A1 90 IF A1> = 0AND A1< > PEEK (A5+ I)THEN I= 32:A5= A5- 32 95 NEXT 100 RESTORE 65 105 FOR I= 1TO 32:READ A1:POKE A5+ I,A1- (A1< 0):NEXT 110 A6= A5+ 1:A2= 33283:GOSUB 135 115 A6= A5:A2= A4:GOSUB 135 120 A6= A5+ 6:A2= A5+ 30:GOSUB 135 125 A6= A5+ 8:A2= A5+ 22:GOSUB 135 130 GOTO 155 135 A7= INT (A6/ 256):POKE A2,A6- 256* A7:POKE A2+ 1,A7:RETURN 140 A4= 32940:A5= 256* PEEK (A4+ 1)+ PEEK (A4):RETURN 145 FOR I= 1TO PEEK (33209):X= RND (1):NEXT 150 GOTO 60 155 CLEAR 100 160 DIM SP(6) 165 DEF FN R(R)= INT (R* RND (1)) 170 GOTO 195 175 GOSUB 530 180 IF HC< = 0THEN GOSUB 15:PRINT "YOU DIED!!":GOTO 2430 185 RETURN 190 FOR I= 1TO 10:GOSUB 15:PRINT :NEXT :RETURN 195 PLOT 8,12,3,0,12:INPUT "TYPE NEW OR OLD GAME ";X$ 200 IF LEFT$ (X$,1)= "O"GOTO 295 205 IF LEFT$ (X$,1)= "N"GOTO 225 210 GOTO 195 215 X0= 0:Y0= 19:H0= 10:W0= 64:A3= 1:LN= 18:GOSUB 35 220 PLOT 12,27,4:PRINT "LOAD CAST16.DSP":PLOT 27,27:RETURN 225 GOSUB 215:GOSUB 15:INPUT "CHARACTER NAME (NO SPACES!)= ";C1$ 230 C1$= LEFT$ (C1$,15):C$= LEFT$ (C1$,6) 235 GOSUB 15:PRINT :GOSUB 15:PRINT "YOU START LIFE WITH 500 GOLD." 240 GP= 500:CA= 10:AC= 10:EX= 0:DL= 1:DH= 2 245 CQ= 1:CL= 1:WT= 1000+ 100* FN R(10) 250 XP= 0:HP= 30+ FN R(10):C0= 18- CL 255 FOR I= 1TO 6:SP(I)= 0:NEXT 260 CA= AC- SH- AR:GOSUB 435 265 GOSUB 530:GOSUB 445:GOSUB 530:GOSUB 800:GOSUB 590 270 T= .1:LN= 18:GOSUB 15:INPUT "DIFFICULTY LEVEL (1-3)? ";LV 275 IF LV< 1OR LV> 3GOTO 270 280 XF= 1:IF CL> LV+ 1THEN GOSUB 15:PRINT "TOO EASY--TRY AGAIN":GOTO 270 285 IF CL> LVTHEN XF= LV/ CL 290 GOSUB 530:GOTO 330 295 PLOT 8,12:INPUT "ENTER OLD NAME: ";C1$ 300 C$= LEFT$ (C1$,6):FILE "R",1,C$,1:GET 1,1,1;C1$[16],WP$[16] 305 GET 1,1,33;CL,WT,SP(1),SP(2),SP(3),SP(4),SP(5),SP(6),WP,HP,AC,GP,EN,SH 310 GET 1,1,89;AR,WA,MW,XP,CQ 315 FILE "C",1 320 PLOT 8:PLOT 27,4:PRINT "DEL ";C$;".RND;1":PLOT 27,27 325 GOSUB 215:GOTO 260 330 GOSUB 190 335 X0= 0:Y0= 19:H0= 10:W0= 40:A3= 1:GOSUB 35:LN= 18 340 FOR I= 20TO 29:PLOT 3,42,I:PRINT " ":NEXT 345 PLOT 3,42,20:PRINT "COMMANDS:" 350 PLOT 3,44,21:PRINT "1- MOVE TO ROOM" 355 PLOT 3,44,22:PRINT "2- ENTER ''" 360 PLOT 3,44,23:PRINT "3- LEAVE ''" 365 PLOT 3,44,24:PRINT "4- CAST SPELL" 370 PLOT 3,44,25:PRINT "5- FIGHT" 375 PLOT 3,44,26:PRINT "6- OPEN CHEST" 380 PLOT 3,44,27:PRINT "7- GET TREASURE" 385 PLOT 3,44,28:PRINT "8- DROP ''" 390 PLOT 3,44,29:PRINT "9- QUIT GAME" 395 GOSUB 15:PRINT :GOSUB 15:INPUT "COMMAND? ";Z 400 IF Z< 1OR Z> 9THEN GOSUB 15:PRINT "INVALID":GOTO 395 405 IF Z= 9GOTO 2355 410 ON ZGOSUB 1475,1585,1650,1690,1890,2125,2215,2290 415 IF SQ= 1THEN GOSUB 970 420 IF T= 0GOTO 1110 425 IF E= 1THEN E= 0:GOTO 340 430 GOTO 395 435 GOSUB 15:PRINT "SUPPLIES=50 GP." 440 FOR I= 1TO 1000:NEXT :GOSUB 190:GP= GP- 50:GOSUB 15:PRINT :HC= HP:RETURN 445 LN= 18 450 GOSUB 15:PRINT "ARMOR:";TAB( 10);"CLASS";TAB( 16);"COST" 455 GOSUB 15:PRINT "0- NONE (10)= 0" 460 GOSUB 15:PRINT "1-LEATHER ( 8)= 100" 465 GOSUB 15:PRINT "2- CHAIN ( 6)= 300" 470 GOSUB 15:PRINT "3- PLATE ( 4)= 500" 475 GOSUB 15:INPUT "BUY SHIELD=50 GP (Y/N)? ";X$ 480 IF X$= "Y"AND SH= 1THEN GOSUB 15:PRINT "YOU ALREADY HAVE ONE":GOTO 495 485 IF X$= "Y"AND SH= 0THEN GP= GP- 50:EN= EN+ 50:GOSUB 530:SH= 1:GOTO 495 490 IF X$< > "N"GOTO 475 495 GOSUB 15:INPUT "ARMOR TYPE (0,1,2,3)? ";X:IF X< 0OR X> 3GOTO 495 500 IF X> 0THEN EN= EN- WA 505 IF X= 0GOTO 525 510 IF GP< 200* X- 100THEN GOSUB 15:PRINT "TOO LITTLE GOLD":GOTO 495 515 AC= 10- 2* X:GP= GP- (200* X- 100):WA= 100* X 520 IF X< > 0THEN EN= EN+ WA 525 CA= AC- SH- AR:GOSUB 190:RETURN 530 C1$= LEFT$ (C1$,15) 535 FOR J= 1TO 18:PLOT 3,54,J:PRINT " ":NEXT J 540 PLOT 3,49,1:PRINT "";C1$;"":PLOT 3,54,2:PRINT CL 545 PLOT 3,54,3:PRINT "";LV:PLOT 3,54,4:PRINT "";GP 550 PLOT 3,54,5:PRINT "";XP:PLOT 3,54,6:PRINT "";WT 555 PLOT 3,54,7:PRINT "";CA:PLOT 3,54,8:PRINT "";HP 560 PLOT 3,54,9:PRINT "";HC:PLOT 3,54,11:PRINT "";SP(1) 565 PLOT 3,54,12:PRINT SP(2):PLOT 3,54,13:PRINT SP(3) 570 PLOT 3,54,14:PRINT SP(4):PLOT 3,54,15:PRINT SP(5) 575 PLOT 3,54,16:PRINT SP(6):PLOT 3,51,17:PRINT "";WP$ 580 PLOT 3,54,18:PRINT EN 585 RETURN 590 GOSUB 190 595 LN= 18 600 GOSUB 15:PRINT "SELECT SPELLS:" 605 GOSUB 15:PRINT " #1= 50 GP" 610 GOSUB 15:PRINT " #2=100 GP" 615 GOSUB 15:PRINT " #3=150 GP" 620 GOSUB 15:PRINT " #4=200 GP" 625 GOSUB 15:PRINT " #5=250 GP" 630 GOSUB 15:PRINT " #6=300 GP" 635 X0= 0:Y0= 27:H0= 3:W0= 64:A3= 1:LN= 26:GOSUB 35 640 GOSUB 15:INPUT "SPELL # (0= DONE) ";X:IF X= 0THEN GOSUB 190:GOTO 675 645 IF X< 1OR X> 6GOTO 640 650 GOSUB 15:INPUT "HOW MANY? ";Y 655 IF X< 1OR X> 6GOTO 640 660 IF Y< 1GOTO 640 665 IF GP- 50* X* Y< 0THEN GOSUB 15:PRINT "TOO LITTLE GOLD":GOTO 640 670 GP= GP- 50* X* Y:SP(X)= SP(X)+ Y:EN= EN+ 10* Y:GOSUB 1220:GOSUB 530:GOTO 640 675 X0= 0:Y0= 19:H0= 10:W0= 64:A3= 1:GOSUB 35:GOSUB 190 680 RETURN 685 RM= 0:RX= 0:RT= 0 690 Y= FN R(20)+ 1:X= FN R(100):IF X< 70THEN RT= Y 700 X= FN R(100):IF RT< > 0AND X< 60THEN GOSUB 765 705 X= FN R(100):IF RT= 0AND X< 40THEN GOSUB 765 710 DR$= "U":X= FN R(100):IF X< 25THEN DR$= "L" 720 Y= FN R(10)+ 1:X= FN R(100):IF X< 30THEN RX= Y 725 IF RT> 0AND RM= 0AND X< 60THEN RX= Y 735 IF RT= 0AND RM> 0AND X< 10THEN RX= 0 740 IF RT> 0AND RX= 0AND RM= 0AND X< 40THEN RX= FN R(4)+ 7 745 IF DR$= "L"AND RX< 3THEN RX= FN R(8)+ 3 750 IF RT= 0AND RX> 6THEN RX= FN R(4)+ 3 755 IF RX= 5OR RX= 6THEN RM= 0 760 RETURN 765 X= FN R(100)+ 1:RM= FN R(10)+ 1 770 IF LV= 1THEN Y= 70:Z= 95 775 IF LV= 2THEN Y= 20:Z= 70 780 IF LV= 3THEN Y= 10:Z= 40 785 IF X> YTHEN RM= FN R(10)+ 11 790 IF X> ZTHEN RM= FN R(10)+ 21 795 RETURN 800 LN= 18 805 GOSUB 15:PRINT "WEAPON: 0=NO CHANGE" 810 GOSUB 15:PRINT "CHOICE REPLACES CURRENT ONE" 815 GOSUB 15:PRINT "VALUES ARE: DAMAGE/WT/GOLD" 820 GOSUB 15:PRINT "1-SHORT SWORD (1-6 / 50/ 50)" 825 GOSUB 15:PRINT "2-MACE (2-7 /100/ 75)" 830 GOSUB 15:PRINT "3-LONG SW. (2-8 / 70/100)" 835 GOSUB 15:PRINT "4-BROAD SW. (1-10/ 90/150)" 840 GOSUB 15:PRINT "5-BASTARD SW. (2-12/100/200)" 845 GOSUB 15:INPUT "SELECT ";X 850 IF X< 0OR X> 5GOTO 845 855 IF X> 0THEN WP= X 860 IF WP= 0THEN GOSUB 15:PRINT "FISTS=1-2 PTS":FOR I= 1TO 500:NEXT :RETURN 865 RESTORE 1240:FOR J= 1TO WP:READ WP$,DL,DH,WW,WG:NEXT J 870 IF X> 0THEN IF GP- WG< 0THEN GOSUB 15:PRINT "TOO LITTLE GOLD":GOTO 845 875 IF X> 0THEN GP= GP- WG:EN= EN+ WW:GOSUB 1220 880 GOSUB 190:GOSUB 530:LN= 18 885 RETURN 890 GOSUB 15:PRINT "ZAP! SHOCK!" 895 X= FN R(10)+ 3:HC= HC- X:GOSUB 175 900 GOSUB 15:PRINT "DAMAGE=";X;"":RX= 0 905 RETURN 910 GOSUB 15:PRINT "BOOM!! EXPLOSION!" 915 X= FN R(13)+ 4:HC= HC- X:GOSUB 175 920 GOSUB 15:PRINT "DAMAGE=";X;"":RX= 0 925 RETURN 930 GOSUB 15:PRINT "ARROWS FLY. PAIN!!" 935 X= FN R(12)+ 1:HC= HC- X:GOSUB 175 940 GOSUB 15:PRINT "DAMAGE=";X;"":RX= 0 945 RETURN 950 GOSUB 15:PRINT "STRUCK BY LIGHTNING!" 955 X= FN R(10)+ 11:HC= HC- X:GOSUB 175 960 GOSUB 15:PRINT "DAMAGE=";X;"":RX= 0 965 RETURN 970 IF SQ= 1GOTO 990 975 GOSUB 15:PRINT "CLICK! DOOR LOCKED!":DR$= "L" 980 GOSUB 15:PRINT "THE WALLS ARE MOVING INWARD!!!":U= 1 985 SQ= 1:POKE 33210,0:POKE 33209,0:RETURN 990 IF SQ= 1AND PEEK (33210)> = 0AND PEEK (33209)> 15GOTO 1000 995 RETURN 1000 GOSUB 15:PRINT "YOU ARE VERY THIN AND..." 1005 HC= 0:SQ= 0:RX= 0:GOSUB 175 1010 RETURN 1015 GOSUB 15:PRINT "CLICK! DOOR LOCKED!":DR$= "L" 1020 GOSUB 15:PRINT "STRANGE MONSTER APPEARS!":U= 1 1025 MA= 4:M0= 17- 2* CL:AT= 1:HM= 0:HD= 1+ 2* CL:FOR I= 1TO HD:HM= HM+ FN R(8)+ 1:NEXT 1030 H= HM:D1= 1:D2= 12:SA= 2:MX= 100* HD:V= 1:A= 1:GOSUB 1890 1035 RETURN 1040 GOSUB 15:PRINT "YOU HEAR A NOISE..." 1045 GOSUB 15:PRINT "YOU ARE FALLING!!" 1050 X= FN R(6)+ 1:GOSUB 15:PRINT :GOSUB 15:PRINT "YOU CLIMBED OUT" 1055 GOSUB 15:PRINT "DAMAGE=";X;"":RX= 0:HC= HC- X:GOSUB 175 1060 RETURN 1065 GOSUB 15:PRINT "CHEST EXPLODED!":X= FN R(6)+ 7 1070 GOSUB 15:PRINT "DAMAGE=";X;"":HC= HC- X:GOSUB 175:RT= 0 1075 RETURN 1080 GOSUB 15:PRINT "GASP!! POISON GAS!" 1085 X= FN R(100):IF X> 30+ 10* CLTHEN HC= 0:GOSUB 180 1090 GOSUB 15:PRINT "YOU SURVIVED...THIS TIME":RX= 0 1095 RETURN 1100 GOSUB 15:PRINT "CHEST VANISHED!":RX= 0:RT= 0 1105 RETURN 1110 FOR I= 20TO 29:PLOT 3,42,I:PRINT " ":NEXT 1115 GOSUB 190:XP= XP+ INT (EX* XF):EX= 0:LV= 0:GP= GP+ G1 1120 IF G2> 0THEN FOR I= 1TO G2:GP= GP+ FN R(90)+ 10:NEXT 1125 IF G3> 0THEN FOR I= 1TO G3:GP= GP+ FN R(400)+ 100:NEXT 1130 EN= EN- G1- G2- 25* G3:G1= 0:G2= 0:G3= 0 1135 IF XP> 2000THEN CL= 2 1140 IF XP> 5000THEN CL= 3 1145 IF XP> 10000THEN CL= 4 1150 IF XP> 20000THEN CL= 5:GOSUB 530:GOSUB 15:PRINT "YOU MADE IT TO THE TOP!!!":GOTO 2455 1155 IF CQ< > CLTHEN HP= HP+ FN R(10)+ 1:CQ= CL 1160 CA= AC- SH- AR:GOSUB 530:GOSUB 15:PRINT "STATS UPDATED" 1165 GOSUB 15:INPUT "RETURN TO CASTLE (Y/N)? ";X$ 1170 IF GP< 50THEN GOSUB 15:PRINT "NOT ENOUGH GOLD LEFT":FOR I= 1TO 1000:NEXT :GOTO 2455 1175 IF X$= "Y"GOTO 260 1180 GOTO 2355 1185 IF CL< 1THEN HC= 0:GOSUB 175 1190 C0= 18- CL- MW:X= FN R(10):HP= HP- X:HC= HC- X:CQ= CL:GOSUB 530 1195 IF CL= 1THEN XP= 1000 1200 IF CL= 2THEN XP= 3500 1205 IF CL= 3THEN XP= 7500 1210 IF CL= 4THEN XP= 15000 1215 RETURN 1220 IF EN< = WTTHEN RETURN 1225 GOSUB 15:PRINT "OVERWEIGHT-- DROP SOMETHING":GOSUB 2290 1230 IF EN> WTGOTO 1220 1235 RETURN 1240 DATA "SHORT SWORD",1,6,50,50 1245 DATA "MACE",2,7,100,75 1250 DATA "LONG SWORD",2,8,70,100 1255 DATA "BROAD SWORD",1,10,90,150 1260 DATA "BASTARD SWORD",2,12,100,200 1265 DATA "MACE+1",3,8,100,0 1270 DATA "SWORD+1",3,9,70,0 1275 DATA "SWORD+2",2,12,90,0 1280 DATA "SWORD+3",5,15,90,0 1285 DATA "SWORD+4",9,16,150,0 1290 DATA "MAGIC RING, -1 TO ARMOR CLASS",0,0,0,0 1295 DATA "MAGIC RING, -2 TO ARMOR CLASS",0,0,0,0 1300 DATA 2,5,1,3,7,5,6,3,6,8,4,8,6,12,5,12 1305 DATA 8,15,5,14,13,3,11,3,8,8,9,9,13,15,14,13 1310 DATA 21,15,20,13,22,8,20,9,22,5,19,5,19,3,20,2 1315 DATA 25,4,26,3,25,7,27,7,25,13,28,13,33,15,34,14 1320 DATA 37,12,33,12,37,10,33,10,37,6,35,7,37,2,35,3 1325 DATA "GIANT ANT",2,3,16,1,1,4,0,100 1330 DATA "GIANT CENTIPEDE",1,9,20,1,1,1,5,120 1335 DATA "GNOLL",2,5,16,1,2,8,0,60 1340 DATA "HOBGOBLIN",1,6,18,1,1,8,0,20 1345 DATA "PIERCER",2,4,16,1,3,8,0,110 1350 DATA "SKELETON",1,7,19,1,1,6,1,45 1355 DATA "ORC",1,5,16,1,2,7,2,70 1360 DATA "TROGLODYTE",2,5,16,3,1,3,0,190 1365 DATA "ZOMBIE",2,8,16,1,1,8,2,90 1370 DATA "EVIL FIGHTER",1,4,19,1,2,8,0,60 1375 DATA "BUGBEAR",3,5,16,1,2,8,0,80 1380 DATA "GELATINOUS CUBE",4,8,15,1,2,8,2,130 1385 DATA "HARPY",3,7,16,3,1,3,0,190 1390 DATA "HELLHOUND",4,4,15,1,1,10,1,175 1395 DATA "WEREWOLF",4,5,15,1,2,8,6,175 1400 DATA "OGRE",4,5,15,1,1,10,0,130 1405 DATA "CREEPING FUNGUS",3,6,16,1,2,7,3,260 1410 DATA "GIANT SPIDER",4,4,15,1,2,8,5,220 1415 DATA "GIANT RAT",3,5,16,2,1,6,0,160 1420 DATA "GARGOYLE",3,5,15,3,2,4,6,285 1425 DATA "SUBTERRANEAN LIZARD",6,5,13,1,2,12,0,170 1430 DATA "MINOTAUR",6,6,13,2,2,8,0,250 1435 DATA "OCHRE JELLY",5,8,13,1,3,12,1,155 1440 DATA "OWLBEAR",5,5,15,3,1,8,0,320 1445 DATA "TROLL",6,4,13,3,2,5,3,510 1450 DATA "WRAITH",5,4,15,1,1,6,4,440 1455 DATA "WEREBOAR",5,4,15,1,2,12,6,245 1460 DATA "ENCHANTED FIGHTER",6,3,13,1,2,8,0,180 1465 DATA "GIANT",5,4,15,1,3,18,2,270 1470 DATA "GUARDIAN",6,2,12,1,4,16,2,350 1475 IF U> 0THEN GOSUB 15:PRINT "LEAVE ROOM FIRST":RETURN 1480 GOSUB 15:INPUT "ROOM #? (0=LEAVE CASTLE) ";Z 1485 IF Z< 0OR Z> 20OR Z< > INT (Z)GOTO 1480 1490 IF Z= 0THEN GOSUB 15:INPUT "LEAVE? (GOLD?) (Y/N) ";X$:IF X$= "N"GOTO 1480 1495 IF Z< 0OR Z> 20THEN GOSUB 15:PRINT "INVALID #":GOTO 1480 1500 IF Z= TTHEN GOSUB 15:PRINT "ALREADY THERE":RETURN 1505 D= 0:T= Z:GOSUB 685 1510 IF FN R(10)< 4THEN GOSUB 1555 1515 IF T= 0THEN PLOT 6,1:PLOT 3,X1,Y1:PLOT 47:PLOT 6,2 1520 IF T= 0THEN GOSUB 15:PRINT "YOU LEFT THE CASTLE":FOR I= 1TO 500:NEXT :RETURN 1525 IF BG= 1THEN PLOT 6,1:PLOT 3,X1,Y1:PLOT 47:PLOT 6,2 1530 RESTORE 1300:FOR I= 1TO T:READ X1,Y1,X2,Y2:NEXT 1535 PLOT 6,5:PLOT 3,X1,Y1:PLOT 88:PLOT 6,2:BG= 1 1540 GOSUB 15:PRINT "YOU ARE AT ROOM";T;"":U= 0:V= 0:D= 0 1545 IF DR$= "L"THEN GOSUB 15:PRINT "DOOR LOCKED" 1550 RETURN 1555 X= FN R(10)+ 1:X= X+ 10* (LV- 1) 1560 RESTORE 1325:FOR I= 1TO X:READ M$,HD,MA,M0,AT,D1,D2,SA,MX:NEXT 1565 V= 1:W= 1:GOSUB 15:PRINT "YOU ENCOUNTERED A" 1570 GOSUB 15:PRINT "WANDERING ";M$;"" 1575 HM= 0:FOR I= 1TO HD:HM= HM+ FN R(8)+ 1:NEXT :H= HM:GOSUB 1890 1580 RETURN 1585 IF DR$= "L"THEN GOSUB 15:PRINT "DOOR LOCKED":RETURN 1590 IF T< 1THEN GOSUB 15:PRINT "NOT OUTSIDE A ROOM":RETURN 1595 IF U= 1THEN GOSUB 15:PRINT "ALREADY INSIDE":RETURN 1600 ON RXGOSUB 890,910,930,950,970,1015 1605 X= LN:PLOT 6,1,3,X1,Y1:PLOT 47:PLOT 6,5,3,X2,Y2:PLOT 88:LN= X 1610 GOSUB 15:PRINT "YOU ARE INSIDE":U= 1 1615 IF RT> 0THEN GOSUB 15:PRINT "YOU SEE A CHEST" 1620 IF RM> 0THEN GOSUB 1635 1625 IF RT= 0AND RM= 0THEN GOSUB 15:PRINT "ROOM IS EMPTY" 1630 RETURN 1635 RESTORE 1325:FOR I= 1TO RM:READ M$,HD,MA,M0,AT,D1,D2,SA,MX:NEXT 1640 GOSUB 15:PRINT "A(AN) ";M$;" IS IN THE ROOM":V= 1 1645 HM= 0:FOR I= 1TO HD:HM= HM+ FN R(8)+ 1:NEXT :H= HM:RETURN 1650 IF U= 0THEN GOSUB 15:PRINT "NOT IN A ROOM":RETURN 1655 IF DR$= "L"THEN GOSUB 15:PRINT "DOOR LOCKED":RETURN 1660 IF V= 1AND FN R(100)< 25GOTO 1675 1665 IF V= 1THEN W= 1 1670 IF W= 1THEN GOSUB 15:PRINT "MONSTER BLOCKS THE WAY":GOSUB 1890:RETURN 1675 RT= 0:RM= 0:X= LN:SQ= 0:V= 0:W= 0:A= 0:TR= 0:M1= 0:M2= 0:M3= 0:M4= 0 1680 PLOT 3,X2,Y2:PLOT 32:PLOT 6,5,3,X1,Y1:PLOT 88:PLOT 6,2:LN= X:U= 0 1685 GOSUB 15:PRINT "OUTSIDE ROOM";T;"":RETURN 1690 IF A= 1THEN GOSUB 15:PRINT "CAN'T CAST A SPELL":RETURN 1695 FOR I= 20TO 29:PLOT 3,42,I:PRINT " ":NEXT 1700 PLOT 3,42,20:PRINT "SPELLS:" 1705 PLOT 3,44,21:PRINT "0-(QUIT)" 1710 PLOT 3,44,22:PRINT "1-KNOCK" 1715 PLOT 3,44,23:PRINT "2-DISPEL TRAPS" 1720 PLOT 3,44,24:PRINT "3-HEAL" 1725 PLOT 3,44,25:PRINT "4-REPEL MONSTER" 1730 PLOT 3,44,26:PRINT "5-FLAME" 1735 PLOT 3,44,27:PRINT "6-SHIELD" 1740 GOSUB 15:INPUT "SELECT SPELL # AT RIGHT ";Z:IF Z= 0GOTO 1770 1745 IF Z< 0OR Z> 6GOTO 1740 1750 IF SP(Z)= 0THEN GOSUB 15:PRINT "SPELL NOT AVAILABLE":GOTO 1770 1755 SP(Z)= SP(Z)- 1:EN= EN- 10:IF FN R(100)> 80THEN GOSUB 15:PRINT "SPELL FAILED":GOTO 1765 1760 ON ZGOSUB 1785,1800,1815,1830,1845,1885 1765 GOSUB 530:IF C= 1THEN RETURN 1770 FOR I= 20TO 29:PLOT 3,42,I:PRINT " ":NEXT :E= 1 1775 IF V= 1THEN GOSUB 1890 1780 RETURN 1785 IF T= 0OR DR$= "U"THEN GOSUB 15:PRINT "NOTHING TO UNLOCK" 1790 IF DR$= "L"THEN DR$= "U":GOSUB 15:PRINT "DOOR UNLOCKED" 1795 RETURN 1800 IF RX= 0THEN GOSUB 15:PRINT "NO TRAPS PRESENT":RETURN 1805 IF RX> 0THEN RX= 0:GOSUB 15:PRINT "TRAP DISARMED":RETURN 1810 RETURN 1815 HC= HC+ FN R(10)+ 11 1820 IF HC> HPTHEN HC= HP 1825 GOSUB 15:PRINT "YOU FEEL BETTER":RETURN 1830 IF V= 0THEN GOSUB 15:PRINT "REPEL WHAT?":RETURN 1835 IF SA= 2THEN GOSUB 15:PRINT "MONSTER NOT REPELLED!":RETURN 1840 GOSUB 15:PRINT "MONSTER REPELLED":V= 0:W= 0:A= 0:RETURN 1845 IF FN R(100)> 80THEN GOSUB 15:PRINT "ONLY SMOKE":RETURN 1850 GOSUB 15:PRINT "WHAM!!":X= FN R(10)+ 11 1855 IF V> 0AND SA< > 1THEN HM= HM- X:GOSUB 15:PRINT X;" PTS DAMAGE" 1860 Y= FN R(10) 1865 IF U= 1AND RT> 0AND Y> 6THEN GOSUB 15:PRINT "TREASURE DESTROYED!":RT= 0 1870 IF V= 0THEN GOSUB 15:PRINT "WHAT WERE YOU FIRING AT?":RETURN 1875 IF V> 0AND SA= 1THEN GOSUB 15:PRINT "MONSTER UNAFFECTED!" 1880 RETURN 1885 D= 1:GOSUB 15:PRINT "SHIELDED--5 ROUNDS":RETURN 1890 RD= 1 1895 IF V= 0THEN GOSUB 15:PRINT "NOTHING TO FIGHT":RETURN 1900 FOR I= 20TO 29:PLOT 3,42,I:PRINT " ":NEXT 1905 PLOT 3,42,20:PRINT "MELEE COMMANDS:" 1910 PLOT 3,44,22:PRINT "SPELLS RD.#1 ONLY" 1915 PLOT 3,44,25:PRINT "1-CAST SPELL" 1920 PLOT 3,44,26:PRINT "2-RUN" 1925 PLOT 3,44,27:PRINT "3-ATTACK" 1930 B= 0:GOSUB 15:PRINT :GOSUB 15:PRINT "ROUND";RD;"" 1935 GOSUB 15:INPUT "ACTION? ";Z 1940 IF Z< 1OR Z> 3GOTO 1935 1945 ON ZGOSUB 1975,1985,2015 1950 RD= RD+ 1:IF V= 0THEN W= 0:A= 0:RETURN 1955 IF HM< = 0GOTO 2115 1960 IF RD> = 1THEN A= 1 1965 IF B= 1THEN B= 0:GOTO 1900 1970 GOTO 1930 1975 IF RD> 1THEN A= 1 1980 C= 1:GOSUB 1690:B= 1:C= 0:RETURN 1985 X= FN R(100) 1990 IF U= 1AND DR$= "L"THEN GOSUB 15:PRINT "DOOR LOCKED":GOTO 2050 1995 IF X< 50THEN GOSUB 15:PRINT "YOU ESCAPED!":E= 1:V= 0:W= 0:A= 0:GOTO 2005 2000 GOSUB 15:PRINT "YOU'RE STILL THERE":GOTO 2050 2005 IF U= 1THEN U= 0:PLOT 3,X2,Y2:PLOT 32:PLOT 6,5,3,X1,Y1:PLOT 88:PLOT 6,2 2010 RETURN 2015 X= FN R(20)+ 1 2020 IF SA= 3THEN HM= HM+ 3:IF HM> HTHEN HM= H 2025 IF SA= 6AND WP< 6THEN GOSUB 15:PRINT "ONLY A MAGIC WEAPON HITS":X= - 10 2030 IF X< C0- MATHEN GOSUB 15:PRINT "YOU MISSED":GOTO 2050 2035 X= FN R(DH- DL+ 1)+ DL:HM= HM- X 2040 GOSUB 15:PRINT "YOU HIT--";X;" PT(S)" 2045 IF HM< = 0GOTO 2115 2050 GOSUB 15:PRINT "MONSTER HAS";AT;" ATTACK(S)" 2055 FOR I= 1TO AT 2060 X= FN R(20)+ 1 2065 IF D= 1AND RD< 7THEN GOSUB 15:PRINT "YOU ARE SHIELDED":GOTO 2095 2070 IF X< M0- CATHEN GOSUB 15:PRINT "MONSTER MISSED":GOTO 2095 2075 X= FN R(D2- D1+ 1)+ D1:HC= HC- X 2080 GOSUB 15:PRINT "DAMAGE=";X;"":GOSUB 175 2085 IF SA= 4THEN CL= CL- 1:GOSUB 15:PRINT "YOU JUST LOST 1 LEVEL!":GOSUB 1185:GOSUB 175 2090 IF SA= 5THEN GOSUB 2105 2095 NEXT I 2100 RETURN 2105 X= 60+ CL* 5:IF X> FN R(100)THEN GOSUB 15:PRINT "YOU SURVIVED ITS POISON":RETURN 2110 HC= 0:GOSUB 15:PRINT "POISON VENOM!!":GOSUB 175:RETURN 2115 GOSUB 15:PRINT "MONSTER DEAD (";H;" PTS.)":RM= 0 2120 V= 0:W= 0:A= 0:B= 0:D= 0:EX= EX+ MX+ H* 5:E= 1:RETURN 2125 IF U= 0OR RT= 0THEN GOSUB 15:PRINT "NOTHING TO OPEN":RETURN 2130 IF V= 0GOTO 2145 2135 W= 1:GOSUB 15:PRINT "MONSTER ATTACKS":GOSUB 1890 2140 RETURN 2145 X= 0:IF RX> 6THEN X= RX- 6 2150 IF TR= 1THEN GOSUB 15:PRINT "CHEST ALREADY OPEN":RETURN 2155 IF RX= 0GOTO 2170 2160 ON XGOSUB 1040,1065,1080,1100 2165 IF RT= 0THEN GOSUB 15:PRINT "TREASURE GONE":RETURN 2170 MW$= "":X= FN R(100) 2175 M1= FN R(251)+ 50:GOSUB 15:PRINT "YOU SEE:";M1;" GOLD" 2180 IF X< 20THEN M2= (FN R(5)+ 1)* LV:GOSUB 15:PRINT "";TAB( 8);M2;" GEM(S)" 2185 X= FN R(100) 2190 IF X< 10THEN M3= (FN R(2)+ 1)* LV:GOSUB 15:PRINT "";TAB( 8);M3;" PC(S). OF JEWELRY" 2195 X= FN R(100):Y= FN R(7)+ 6:IF X< 5THEN M4= Y 2200 IF M4> 0THEN RESTORE 1240:FOR I= 1TO M4:READ MW$,X,X,X,X:NEXT 2205 IF M4> 0THEN GOSUB 15:PRINT TAB( 9);"A ";MW$;"" 2210 TR= 1:RETURN 2215 IF M1= 0AND M2= 0AND M3= 0AND M4= 0THEN GOSUB 15:PRINT "WHAT TREASURE?":RETURN 2220 IF M4= 0GOTO 2245 2225 GOSUB 15:INPUT "WANT THE MAGIC ITEM (Y/N)? ";X$ 2230 IF X$< > "Y"GOTO 2245 2235 GOTO 2270 2240 MW= VAL (RIGHT$ (WP$,1)):C0= 18- CL- MW 2245 EN= EN+ M1+ M2+ 25* M3:CA= AC- SH- AR:M4= 0 2250 G1= G1+ M1:G2= G2+ M2:G3= G3+ M3:GOSUB 530 2255 GOSUB 15:PRINT "TREASURE GOTTEN":M1= 0:M2= 0:M3= 0:RT= 0:TR= 0 2260 IF EN> WTTHEN GOSUB 1220 2265 RETURN 2270 IF M4= 11THEN AR= 1:GOTO 2245 2275 IF M4= 12THEN AR= 2:GOTO 2245 2280 WP= M4:EN= EN- WW:M4= 0::RESTORE 1240:FOR I= 1TO WP:READ WP$,DL,DH,WW,WG:NEXT :GOSUB 530 2285 EN= EN+ WW:GOSUB 1220:C0= 18- CL- MW:GOTO 2240 2290 GOSUB 15:PRINT "DROP WHAT?" 2295 GOSUB 15:PRINT "CARRYING:" 2300 GOSUB 15:PRINT G1;" GOLD" 2305 GOSUB 15:PRINT G2;" GEM(S)" 2310 GOSUB 15:PRINT G3;" JEWELRY" 2315 GOSUB 15:INPUT "# GOLD TO DROP ";X 2320 GOSUB 15:INPUT "# GEMS TO DROP ";Y 2325 GOSUB 15:INPUT "# JEWELRY TO DROP ";Z 2330 IF X> G1OR Y> G2OR Z> G3THEN GOSUB 15:PRINT "TRY THAT AGAIN":GOTO 2295 2335 G1= G1- X:G2= G2- Y:G3= G3- Z:M1= X:M2= Y:M3= Z:EN= EN- X- Y- 25* Z:GOSUB 530 2340 GOSUB 15:INPUT "DONE (Y/N)? ";X$ 2345 IF X$= "N"GOTO 2290 2350 RETURN 2355 IF U= 1AND DR$= "L"AND SP(1)= 0THEN GOSUB 15:PRINT "YOU STARVED TO DEATH":GOTO 2455 2360 IF T< > 0THEN GOSUB 15:PRINT "LEAVE CASTLE FIRST":GOTO 395 2365 GOSUB 190:LN= 18 2370 GOSUB 15:INPUT "CHOOSE--SAVE GAME OR QUIT? ";X$ 2375 IF X$= "Q"THEN PLOT 8,12:GOTO 2455 2380 IF X$< > "S"GOTO 6680 2385 PLOT 8,12,14,3,25,12:PRINT "PLEASE WAIT" 2390 PLOT 3,0,30 2395 FILE "N",C$,1,128,1 2400 FILE "R",1,C$,1 2405 PUT 1,1,1;C1$[16],WP$[16] 2410 PUT 1,1,33;CL,WT,SP(1),SP(2),SP(3),SP(4),SP(5),SP(6),WP,HP,AC,GP,EN,SH 2415 PUT 1,1,89;AR,WA,MW,XP,CQ 2420 FILE "C",1 2425 PLOT 15,8,12:END 2430 FOR I= 1TO 500:NEXT 2435 PLOT 8,12,27,4:PRINT "LOAD RIP16.DSP":PLOT 27,27 2440 I= LEN (C1$):X$= RIGHT$ (C1$,1) 2445 IF X$= " "THEN I= I- 1:C1$= LEFT$ (C1$,I):GOTO 2440 2450 X= INT ((17- I)/ 2+ 21):PLOT 3,X,12:PRINT C1$ 2455 PLOT 3,0,30:INPUT "PLAY AGAIN (Y/N)? ";X$ 2460 IF X$= "Y"GOTO 150 2465 PLOT 8,12:END