9)THEND=2:IFX=15THEND=0 518 IFQ$=CHR$(10)THEND=3:IFY=1THEND=0 519 IFQ$=CHR$(8)THEND=4:IFX=1THEND=0 520 IFD=5THEN515ELSERETURN 521 CC(9)=CC(9)+6+L:IFQ1=1THEN49ELSE502 522 GOSUB514 523 PRINT"UP OR DOWN?" 524 Q$=INKEY$:IFQ$<>"U"ANDQ$<>"D"THEN524 525 PRINTQ$ 526 IF RN=1THENPRINT"THE SPELL ACTS STRANGELY":Q$="":IFRND(3)=1THENQ$="D" 527 X=X+RND(5)*((D=4)-(D=2)):Y=Y+RND(5)*((D=3)-(D=1)) 528 Z=Z+RND(5)*((Q$="U")-(Q$="D")) 529 Z=Z+(Z-20)*(Z>20)+(Z-1)*(Z<1) 530 X=X+(X-15)*(X>15)+(X-1)*(X<1) 531 Y=Y+(Y-15)*(Y>15)+(Y-1)*(Y<1) 532 GOTO39 533 IFQ2=1THEN451 534 Q$="":FORDA=1TO5:Q$=Q$+CHR$(RND(26)+96):NEXT:PRINTTAB(5);Q$ 535 GOSUB560:IFR<0THEN354ELSEGOSUB560:IFR<0THEN450 536 PRINT"THE SPELL BACKFIRED":GOSUB556:IFR>=0THENPRINT"YOU RESISTED IT":GOTO305ELSE74 537 IFQ2=1THEN451ELSEPRINT"YOU ARE SURROUNDED BY A WALL OF ICE" 538 IFML<4THENQ=3:GOTO484 539 Q=RND(5):IFMN=99ORQ=2THEN485 540 IFQ>2ANDMN>0ANDMN<>22THEN484ELSEPRINT"THE "MN$" TRIES TO REACH YOU" 541 IFQ1=3AND(MN/5=INT(MN/5)ORMN=19)THENPRINT"UNFORTUNATELY "MN$"S DON'T","MIND THE COLD":GOTO305 542 IFQ1=5AND(MN=23ORMN=24ORMN=50)THENPRINT"UNFORTUNATELY "MN$"S ARE","FIREPROOF":GOTO305 543 DA=0:FORR=1TO(1+(Q1=5)*((MN/5=INT(MN/5)+(MN=19))-(Q1=3)*(MN>22)*(MN<99)))*INT(L/3.1+1):DA=DA+RND(6):NEXT 544 PRINT"IT SUFFERS"DA "DAMAGE POINTS":GOTO350 545 CC(2)=CC(2)+6+L:GOTO442 546 IFQ2=1THEN451ELSEPRINT"FLAMES SURROUND YOU":GOTO538 547 IFRND(100)>=5*(ML+4-L)THEN550 548 PRINT"THE DEMON IS ";:IFRND(2)=1THENPRINT"TAKING A BATH"ELSEPRINT"ASLEEP" 549 GOTO442 550 PRINT"THE DEMON APPEARS" 551 IFQ2=1ORMN=99THENA$="01112DEMON":MN=50:GOTO289ELSEPRINT"THE DEMON DEMOLISHES THE",MN$ 552 IFRND(100)>=5*(ML+2-L)THENPRINT"YOU DISPELL THE DEMON":GOTO154ELSEQ2=1:GOTO551 553 PRINT"YOU MADE IT OUT OF THE MINES":FORQ=0TO200:NEXT:EP=EP+G:GOSUB32:GOSUB37:G=0:FORX=0TO11:CC(X)=0:NEXT:HC=HP:GOSUB31:IFRN=0THEN19 554 PRINT"AND YOU RECOVERED THE RING!","YOU, "NA$", JOIN THE RANKS","OF THE HEROES OF OLD!":END 555 R=15-INT((2.5-(CT=0)+.5*(CT=2))*INT(L/(5.1-CT)))-(CT=2)-(C(2)<4)-(C(2)<6)-(C(2)<9)+(C(2)>12)+(C(2)>15)+(C(2)>17):GOSUB561:R=R-(CC(7)>0):RETURN 556 R=12-INT((2.5+.5*(CT=2))*INT(L/(5.1-CT)))+(CT=1)-(CT=0):GOSUB561:R=R-(CC(7)>0):RETURN 557 R=14-INT((2.5+.5*(CT=2))*INT(L/(5.1-CT))):GOSUB561:R=R-(CC(7)>0):RETURN 558 R=16-INT(2.5*INT(L/(5.1-CT)))+(CT=2):GOSUB561:R=R-(CC(7)>0):RETURN 559 R=16-2*INT(ML*(1-(MN=11)-(MN=16)-(MN=21))/3.1):GOSUB561:R=R-2*(MN=6):RETURN 560 R=12-2*INT(ML/3.1):GOSUB561:RETURN 561 IFR<2THENR=2ELSEIFR>20THENR=20 562 R=RND(20)-R:RETURN :RETURN 558 R=16-INT(2.5*INT(L/(5.1-CT)))+(CT=2):GOSUB561:R=R-(CC(HROWS LIGHTNING AT YOU":DA=0:FORR=1TOML:DA=DA+RND(4):NEXT:GOTO423 422 PRINT"HE THROWS A FIREBALL AT YOU":DA=0:FORR=1TOML:DA=DA+RND(6):NEXT 423 GOSUB555:DA=INT(DA/(1-(R>=0))+1):GOTO319 424 PRINT"HE SUMMONS A DEMON":A$="01112DEMON":MN=50:GOTO289 425 PRINT"YOU BITE OFF HIS FINGER AND","TAKE THE RING":RN=1:POKE 15*Y+X+61862,0:POKE FNPK(Q),PEEK(FNPK(Q))AND16:TR=0:GOTO47 426 PRINT"LEVEL";:GOSUB25 427 Q=VAL(Q$):PRINTQ:IFQ=0THEN440 428 IFQ<0ORQ>4THEN426 429 IFS(Q-1)<1THENPRINT"YOU HAVE NO LEVEL"Q,"SPELLS LEFT":GOTO440 430 PRINT"SPELL#";:GOSUB25 431 Q1=VAL(Q$):PRINTQ1:IFQ1>-1ANDQ1<7+2*(CT=1)THEN436 432 PRINT"SPELLS FOR THAT LEVEL ARE:" 433 FORQ1=0TO5+2*(CT=1) 434 PRINTQ1+1":";:IFCT=1THENPRINTSC$(Q1,Q-1)ELSEPRINTSM$(Q1,Q-1) 435 NEXT:PRINT:GOTO430 436 IFQ1=0THEN440 437 S(Q-1)=S(Q-1)-1:DA=0 438 IFCT=1THENPRINTSC$(Q1-1,Q-1):ON4*Q-4+Q1 GOTO441,443,444,446,452,453,454,455,463,464,468,469,475,477,480,451 439 PRINTSM$(Q1-1,Q-1):ON6*Q-6+Q1 GOTO486,488,492,493,441,443,501,504,506,508,509,510,506,511,512,455,521,468,522,533,537,545,546,547 440 IFQ2=1THEN49ELSE333 441 CC(7)=CC(7)+6-6*(CT=1)-L*(CT=2):GOTO440 442 IFQ2=1THEN49ELSE305 443 CC(1)=CC(1)+16-6*(CT=1)-L*(CT=2):GOTO440 444 HC=HC+RND(4)+3:IFHC>HP THENHC=HP 445 GOTO440 446 PRINT"BEGONE VILE CREATURE!" 447 IFQ2=1THENPRINT"THERE'S NOTHING THERE":GOTO451ELSES(0)=S(0)+1 448 IFMN/5<>INT(MN/5)THEN450 449 IFL-ML>2THEN467ELSEIFL-ML>0ORRND(6)+RND(6)>=2*(ML-L)+7THEN298 450 PRINT"THE "MN$" SCORNS YOUR WORDS":GOTO305 451 PRINT"YOU JUST WASTED A LEVEL"Q,"SPELL":GOTO442 452 CC(4)=CC(4)+2:GOTO440 453 CC(0)=CC(0)+12:GOTO440 454 CC(3)=CC(3)+12:GOTO440 455 IFQ2=1THEN451 456 GOSUB559:IFMN/5=INT(MN/5)ORR>=2THENPRINT"SPELL FAILED":GOTO305 457 PRINT"THE "MN$" IS HELD":DA=1 458 PRINT"KILL OR EVADE?" 459 GOSUB25 460 IFQ$<>"K"THENQ=-1:GOTO367ELSEIFCT=1THENDA=RND(3)+RND(3)+RND(3)+9+P(5):GOTO347 461 GOSUB559:IF(R>=2ANDDA=1)OR(RND(0)<=.125-.125*((ML>4)-(ML>7)-(MN=24))ANDDA=0)THENPRINT"IT BROKE FREE":GOTO305 462 PRINT"YOU SLIT IT'S THROAT":GOTO354 463 HC=HC+RND(4)+3:GOTO444 464 IFQ2=1THEN451 465 IFMN/5<>INT(MN/5)THEN450 466 GOSUB559:IFR>=2THEN450 467 PRINT"THE "MN$" IS DISPELLED INTO","THIN AIR":GOTO354 468 CC(1)=999:GOTO440 469 IFQ2=1THEN451 470 IFMN/5=INT(MN/5)THENPRINT"THE UNDEAD DON'T GET SICK":GOTO305 471 GOSUB559:IFR>=0THENPRINT"IT JUST HAD ITS SHOTS":GOTO305 472 PRINT"IT CATCHES THE BLACK PLAGUE":DA=RND(6)+RND(6):HM=HM-2:CH=CH+2 473 IFRND(100)<=30-L*5AND(CC(11)<1)GOSUB555:IFR<0THENPRINT"YOU CATCH IT TOO!":CC(11)=RND(50)+50:PRINT"IF YOU CAN'T GET OUT OF THE","DUNGEON IN"CC(11)-1" TURNS YOU","WILL DIE" 474 GOTO347 475 PRINT"BY THE "STRING$(5,128)" DIE!":IFQ2=1THEN451 476 GOSUB559:IFR>=2*(MN/5<>INT(MN/5))THEN450ELSE354 477 PRINT"DIE VILE CREATURE!","ZZAPP!!":IFQ2=1THEN451 478 GOSUB560:IFR>=2*(MN/5=INT(MN/5))THEN450 479 IFRND(100)<30-L*5THENPRINT"THE SPELL BACKFIRED":GOSUB556:IFR>=0THENPRINT"YOU RESISTED IT"ELSE74ELSE354 480 IFQ2=1THEN451 481 PRINT"A WALL OF STEEL ENCIRCLES YOU" 482 Q=RND(5):IFMN=99THENQ=2 483 IFQ=1ORMN=0ORMN=22THENPRINT"THE "MN$" TRIES TO","REACH YOU":DA=0:FORR=1TOINT(L/5.1+1):DA=DA+RND(6)+4:NEXT:GOTO544 484 IFQ>2THENPRINT"THE "MN$" GETS BORED","AND ";:GOTO365 485 PRINT"THE "MN$" IS PATIENT","YOUR SPELL WEARS OFF":GOTO305 486 IFQ2=1THEN451 487 DA=0:FORR=1TO2*INT(L/5.1)+1:DA=DA+RND(4)+3:NEXT:GOTO347 488 IFQ2=1THEN451 489 IFMN/5=INT(MN/5)THENPRINT"YOU CAN'T CHARM THE UNDEAD"GOTO305 490 GOSUB559:IFR>=2*(ML-4)*(ML>4)ORMN=9ORMN=99THENPRINT"IT DOESN'T THINK YOU'RE","CHARMING":GOTO305 491 PRINT"THE "MN$" IS CHARMED":DA=1:GOTO497 492 CC(5)=CC(5)+2:GOTO440 493 IFQ2=1THEN451 494 IFMN/5=INT(ML/5)THENPRINT"THE UNDEAD DON'T SLEEP":GOTO305 495 GOSUB559:IFR>=0ORMN=11ORMN=99ORML>5THENPRINT"IT'S NOT SLEEPY":GOTO305 496 PRINT"THE "MN$" IS ASLEEP":DA=0 497 PRINT"KILL OR EVADE" 498 GOSUB25 499 IFQ$<>"K"THENQ=-1:GOTO367 500 PRINT"KILL":IFRND(100)<10*(L-ML)*(DA=0)-(RND(11)+9)*(DA=1)THENPRINT"IT WOKE UP!":GOTO305ELSE462 501 IFQ2=1THEN451 502 GOSUB559:IFR>=0ORMN>24THENPRINT"THE "MN$" IS UNEFFECTED":GOTO305 503 DA=0:FORR=1TOMA:DA=DA+RND(MD):NEXT:PRINT"THE "MN$" BELIEVES","IT IS BEING ATTACKED","IT DOES"DA" DAMAGE TO ITSELF":GOTO350 504 IFQ2=1THEN451 505 IFRND(100)>90ORMN=15THENPRINT"YOU MISSED THE "MN$:GOTO305ELSEPRINT"THE "MN$" IS WEBBED":DA=0:GOTO458 506 IFQ2=1THEN451 507 DA=0:FORR=1TOL:DA=DA+RND(4)+2-2*(Q1=1):NEXT:GOSUB559:DA=INT(DA/(1-(R>=0))+1):GOTO347 508 CC(10)=CC(10)+6+L:GOTO440 509 CC(8)=CC(8)+6+L:GOTO440 510 CC(6)=999:GOTO440 511 IFQ2=1THEN451ELSEC9=12:GOTO305 512 GOSUB514 513 IFD=0THENPRINT"THAT IS SOLID ROCK":GOTO442ELSE99 514 PRINT"DIRECTION?":D=5 515 Q$=INKEY$ 516 IFQ$="^"THEND=1:IFY=15THEND=0 517 IFQ$=CHR$(>25ORMN=8ORMN=15ORMN=16ORMN=20)ANDP(5)21ANDMH-DA<1THENPRINT"THE "MN$" CHANGES SHAPE!":B9=B9-1:MN=RND(4)+5*(B9-21):DA=ML-1:GOTO288 350 MH=MH-DA:IFMH<1THEN354 351 IFCC(6)>0THENPRINT"'KNRSH' SAYS THE "MN$:CC(6)=0 352 IFRND(2)=1THENPRINT"IT BITES BACK" 353 GOTO305 354 Q=ML+1+(MLL+1)-(ML>L+2)-(MN=10)-(MN=15)-(MN=20)-(MN=6)-(MN=11)-(MN=8)-(MN=21)-(MN=18)-3*(MN>23):Q=-Q*(Q<21)*(10+10*(-(Q>3)-(Q>5)-(Q>6))+20*(-(Q>4)-(Q>7)-(Q>8)))-(Q>20)*(125*Q-1500) 355 CP=CT+1+3*(CT=2):Q=INT(Q*(1+.1*((C(CP)<6)+(C(CP)<9))-.05*((C(CP)>12)+(C(CP)>15)))) 356 EP=EP+Q:PRINT"IT DIED. YOU GAIN"Q" EP'S":GOSUB32:IF(MN=0ORMN=5ORMN=12ORMN=50)AND(TR=0ORTR=3)THEN154 357 IFMN=99THEN425ELSE372 358 A$="":PRINT"BRIBE/BLUFF",,"HOW MUCH GOLD WILL YOU GIVE","THE "MN$" TO LEAVE?","(0=BLUFF)":GOSUB26:IFQ<0THEN363 359 IFQ>G THENPRINT"YOU DON'T HAVE THAT MUCH":GOTO310 360 IFMN/5=INT(MN/5)ORMN=22ORMN=99THENPRINT"IT WON'T LISTEN":GOTO310 361 IFQ=0ANDMLL)))+10*(CC(9)>0)THENPRINT"IT IS INSULTED":GOTO310 363 G=G-Q:IFC7>11THENPRINT"THE "MN$" WHISPERS","'he IS BELOW LEVEL"Z1-1"'" 364 PRINT"IT TAKES YOUR GOLD AND" 365 PRINT"IT LEAVES" 366 POKE 15*Y+X+61862,0:TR=0:GOTO154 367 DA=0:PRINT"EVADE":IFQ=-1GOSUB514:IFD=0OR(W(D)>0ANDW(D)<4)THENPRINT"YOU RAN INTO A WALL":GOTO305ELSETR=0:GOTO96 368 FORQ=1TO4:D=RND(4):IFW(D)<4ANDW(D)>0THENNEXT 369 IFW(D)>0AND W(D)<4THEN371 370 IFCC(6)>0ORC(4)+P(1)>=FND(X)THENTR=0:IFMH/M9-.2>=RND(0)ANDCC(6)<1THENPRINT"IT FOLLOWS YOU!":TR=-2:POKE15*Y+X+61862,0:GOTO96ELSE96 371 PRINT"YOU'RE ROOTED TO THE SPOT!":GOTO305 372 POKE15*Y+X+61862,0:Q=RND((ML/5+1)*(TR/2+.5))+2+(TR<>1):TR=0:IFQ=0THEN154 373 B9=INT(Z^RND(2)*5^RND(2)*RND(5))*2:FORQ1=1TOQ:Q2=0:GOSUB374:NEXT:B9=0:FORQ1=1TO100:NEXT:GOTO154 374 PRINT"YOU HAVE FOUND "; 375 T=RND(25)-1:IFQ2>0ANDT=8THEN375 376 IFT>14THENT=RND(2)+9 377 IFT<3THENT2=5ELSEIFT>11THENT2=4ELSEIFT=6THENT2=3ELSET2=T-3 378 IFT>6ANDT<12THEN389 379 T1=INT(Z/2)+RND(5)-3:IFT1<1THENT1=1 380 IFT<>4ANDT<12THENPRINT"A "; 381 PRINT"MAGIC "T$(T);:IFT>11THENPRINT,"ARMOR"; 382 PRINT"+"T1 383 IF(T<3ANDT<>CT)OR(T>11ANDT<>CT+12)OR(T=6ANDCT=0)THENPRINT"TOO BAD YOU CAN'T USE IT":RETURN 384 IFP(T2)<0ORT12THENT1=-RND(3):IFCC(4)>0THENPRINT"'BEWARE' A VOICE WHISPERS":CC(4)=CC(4)-1 386 GOSUB25 387 IFQ$<>"Y"ANDQ$<>"K"THENPRINT"LEAVE IT":RETURN 388 PRINT"KEEP":P(T2)=T1:RETURN 389 IFT=7THENPRINT"A MAGIC "T$(7):CC(1)=CC(1)+RND(15)+20:RETURN 390 IFT>8THEN401 391 DA=0:IFRND(Z+10)>9THENDA=1 392 PRINT"A CHEST. OPEN OR IGNORE IT?" 393 IFCC(4)>0ANDDA=1THENPRINT"'BEWARE THE CHEST'","A VOICE WHISPERS":CC(4)=CC(4)-1 394 GOSUB25 395 IFQ$="O"THEN397 396 PRINT"IGNORE":RETURN 397 PRINT"OPEN":B9=B9+100:IFDA=0THEN400 398 IFRND(C(1)+C(4))>5*INT(Z/5+1)THENPRINT"YOU DEFUSE THE CHEST":GOTO400 399 Q2=RND(2*Z):HC=HC-Q2:PRINT"KABOOM! THE CHEST EXPLODES","YOU LOSE"Q2"HIT POINTS":IFHC<1THEN74 400 FORQ2=1TORND(4):GOSUB374:NEXT:RETURN 401 IFT>9THEN410 402 PRINT"A BOOK","READ OR IGNORE?" 403 GOSUB25 404 IFQ$<>"R"THEN396 405 DA=RND(3)*SGN(C(1)+C(2)-2*FND(X)-RND(Z-L)) 406 IFRND(3)=1ORDA=0THENPRINT"YOU CAN'T READ IT":RETURN 407 Q3=RND(6)-1:DA=DA+(4+DA)*(C(Q3)<3)*(DA<1):PRINT"YOUR"MID$(Q1$,Q3*4+1,4)" JUST WENT ";:D=C(Q3)+DA-20:IFD>0ANDRND(D)>1THENDA=-ABS(DA) 408 IFDA>0THENPRINT"UP";ELSEPRINT"DOWN"; 409 PRINTABS(DA):C(Q3)=C(Q3)+DA:RETURN 410 DA=-INT(Z^RND(2)*5^RND(2)*RND(T-6))*(B9>0):PRINTT$(T),"WORTH"DA:G=G+DA:B9=B9-DA:IFDA>0THENRETURNELSEIFT=11THENPRINT"THEY'RE GLASS"ELSEPRINT"IT'S REALLY GILDED LEAD" 411 RETURN 412 Q1=1-(MN=20):L=L-Q1:PRINT"THE "MN$" DRAINS"Q1," ENERGY LEVEL(S)":CP=1-(CT=0)+(CT=1):EP=FNP(L):EP=EP+INT((FNP(L+1)-EP)/2):FORQ1=1TOQ1:FORQ=0TO3:S(Q)=S(Q)+(S(Q)>0):NEXTQ:HP=HP-RND(2)-CT:NEXTQ1:IFL<1ORHP<1THEN74ELSE330 413 PRINT"THE "MN$" SINGS HER SONG OF","DEATH":GOSUB555:IFR>=0THENPRINT"YOU IGNORE IT":GOTO330ELSEPRINT"YOU FALL UNDER HER SPELL":GOTO317 414 PRINT"THE "MN$" LOOKS JUST","LIKE YOU":IFRND(C(2))>FND(X)THENPRINT"YOU SEE THROUGH HIS DISGUISE":GOTO330ELSEPRINT"YOU'RE CONFUSED":GOTO317 415 PRINT"THE "MN$" USES ITS WHIP":DA=INT(ML/2)+RND(6)+RND(6)*2:GOTO319 416 PRINT"THE "MN$" BREATHES FIRE AT YOU":DA=MH:B9=B9-1:R=16-INT(2.5*INT(L/(5.1-CT)))+(CT=2):IFR<2THENR=2ELSEIFR>20THENR=20 417 IFR<=RND(20)THENDA=INT(DA/2)+1 418 GOTO319 419 Q=RND(4):ONQ GOTO420,421,422,424 420 PRINT"HIS EYES SHOOT FIRE AT YOU":DA=0:FORR=1TOINT(ML/5.1+1):DA=DA+RND(6)+1:NEXT:GOTO319 421 PRINT"HE T1ANDP(4)>-1ANDP(5)>-1THEN272 268 PRINT"LEAVE YOUR CURSED (1)ARMOR","(2)SHIELD, OR (3) WEAPON":GOSUB25:Q1=VAL(Q$):IFQ1>3ORQ1<1THEN272 269 IF-Z>P(Q1+2)*5THENPRINT"TRY AN ALTAR BELOW"-P(Q1+2)*5:GOTO47 270 IF-Q>P(Q1+2)*1E4THENPRINT"TRY BEING MORE GENEROUS","SAY"-1E4*P(Q1+2):GOTO47 271 IFP(Q1+2)>-1THENPRINT"THAT ITEM IS NOT CURSED":GOTO47ELSEP(Q1+2)=0:GOTO47 272 IFQ<(RND(50)+50)*Z ANDQ0THENPRINT"YOU HAVE"HC"LEFT":RETURNELSERETURN 286 B9=0:MN=RND(5*(3+(Z<5)+(Z>16)))+5*INT(Z/4.1+(Z>4))-1:IFCC(7)>0ANDINT(MN/5)=MN/5ANDRND(3)>2THEN286 287 IFTR=4THENMN=24:B9=3 288 A$=M$(MN) 289 MN$=MID$(A$,6):IFMN=21THENB9=24 290 ML=INT(Z/2)+Z+3-(Z>10)-RND(5-2*(Z>10)):ML=ML+(ML<1)*(ML-1):ML=ML-(L>Z+1)-(Z=1)*(ML>1):Q=0:ML=ML+3*(ML<5)*(MN>18):IFMN=24ANDTR>1THENMN$=MN$+"LORD " 291 IFB9>21ANDMN<>21THENML=DA 292 IF RIGHT$(MN$,1)=" "THENML=ML+2 293 IFMN<99THENPRINT"YOU HAVE ENCOUNTERED A LEVEL",ML;MN$:IFRND(6)+(C(4)<9)+(C(4)<4)-(C(4)>12)-(C(4)>17)>RND(6)ORMN=5THENDA=-9 294 IFCC(2)>0THEN305 295 MH=0:FORR=1TOML:MH=MH+RND(8):NEXT:MA=VAL(MID$(A$,3,1)):MD=VAL(MID$(A$,4,2)):IFMN=1ANDMH>5THENMH=MH-4 296 M9=MH:MA=MA+(MA=1)*((ML>5)+(ML>10)):HM=19-INT(L/(5-CT))-VAL(LEFT$(A$,2))-2*(CC(11)>0):IFHM>20THENHM=20ELSEIFHM<2THENHM=2 297 HM=HM-(C(0)<9)-(C(0)<6)-(C(0)<4)+(C(0)>13)+(C(0)>15)+(C(0)>17)*(RND(2)-1)-P(5):IFCC(9)<1ORMN/5=INT(MN/5)ORMN>21ORRND(C(5))+L-ML<=FND(X)THEN299 298 PRINT"IT RUNS AWAY IN TERROR":GOTO372 299 CH=14-ML+2*CT+P(4)+P(3)+(CT=0)+(C(4)<4)+(C(4)<6)+(C(4)<9)-(C(4)>12)-(C(4)>15)-(C(4)>17)+2*(CC(11)>0):IFCH<2THENCH=2ELSEIFCH>20THENCH=20 300 IF MN=99THENIFRND(3)>1THENPRINT"'darkness take you'":GOTO419ELSEPRINT"HE ATTACKS YOU WITH A KNIFE":GOTO317 301 IFB9>20THEN314 302 IFMN<25AND(CC(0)>0ORRND(P(1)+15)>15)THENPRINT"IT DOESN'T HEAR YOU":Q=-1:GOTO330 303 IFRND(P(2)+10)>10THEN308 304 C7=RND(6)+RND(6)+(C(5)<9)+(C(5)<4)-(C(5)>12)-(C(5)>17):IFC7>8THENPRINT"IT LOOKS GUARDEDLY AT YOU, BUT","DOESN'T ATTACK":GOTO330 305 IFCC(2)>0THENPRINT"TIME IS STOPPED":GOTO372 306 IFMH2GOSUB559:IFR>=0THEN314 311 PRINT"THE "MN$" IS CONFUSED":R=RND(6)+RND(6):IFR<6THEN314 312 IFR>8THENDA=0:FORR=1TOMA:DA=DA+RND(MD):NEXT:PRINT"IT DOES"DA" DAMAGE TO ITSELF":MH=MH-DA:IFMH<1THEN354 313 GOTO330 314 PRINT"IT ATTACKS YOU":IFRND(3)>1THEN317 315 IFMN=23THEN415 316 IFMN=99THEN419 317 DA=0:FORR=1TOMA:IFRND(20)-2*(Q$="L")>=CH-3*(CC(5)>0)-(CC(7)>0)-2*(Q$="P")+2*(CC(11)>0)THENDA=DA+RND(MD) 318 NEXT:IFDA=0THEN324 319 Q=DA:GOSUB285:IFHC<1THEN74 320 IFMN=10GOSUB557:IFR<0THENPRINT"ITS TOUCH PARALYZES YOU":GOTO310 321 IF(MN=15ORMN=20)ANDRND(2)=1ANDL>1THEN412 322 IFMN=18THENGOSUB556:IFR<0THENPRINT"IT POISONED YOU":Q=INT(ML/100*HP):GOSUB285:IFHC<1THEN73 323 GOTO328 324 IFQ$="P"ANDRND(20)1THEN327ELSEPRINT"IT MISSED ";:IFMH1ANDCT>0THENPRINT"YOU BLOCK WITH YOUR SHIELD"ELSEPRINT"YOUR ARMOR PROTECTS YOU" 328 IFRND(3)=1ANDMN=6THEN413 329 IFRND(3)=1ANDMN=11THEN414 330 PRINT"ATTACK, PARRY, LUNGE,":IFQ=0THENPRINT"BRIBE,"; 331 IFCT<2THENPRINT"CAST,"; 332 PRINT"OR EVADE":Q2=2 333 Q$=INKEY$ 334 IFQ$="A"THENPRINT"ATTACK":GOTO341 335 IFQ$="L"THENPRINT"LUNGE!":GOTO341 336 IFQ$="B"ANDQ=0THEN358 337 IFQ$="P"THENPRINT"PARRY":GOTO305 338 IFQ$="C"THEN426 339 IFQ$="E"THEN367 340 GOTO333 341 DA=0:CP=1-(L>15)*INT(L/5-3):CP=CP-(4-CP)*(CP>4) 342 FORR=1TOCP:IFRND(20)-P(5)-2*(Q$="L")-(Q=-1)>=HM+2*(CC(10)>2)-2*(CC(11)>0)THENDA=DA+RND(2*CT+4)+P(5)+(C(0)<4)+(C(0)<6)+(C(0)<9)-(C(0)>12)-(C(0)>15)-(C(0)>17)-2*(CC(10)>0) 343 NEXT:Q=1:DA=INT((1-.25*(Q$="L"))*DA):IFDA>0THEN346 344 PRINT"YOU MISSED ";:IFHC8THEN190 187 IFQ=8ANDRN=0THEN162 188 PRINT"NOTHING HAPPENS":GOTO172 189 PRINT"THE THRONE ELECTROCUTES YOU","YOU LOSE A LEVEL":FORQ=0TO3:S(Q)=INT(S(Q)/2):NEXT:Q=RND(HP/L):GOSUB285:L=L-1:HP=HP-Q:EP=INT(EP-EP/(L-(L=0))):IFHC<1ORL=0THEN74ELSE172 190 PRINT"A BELL RINGS":Q=1:CP=1-(CT=0)+(CT=1):EP=INT(FNP(L+1)+1):GOSUB32:GOTO172 191 PRINT"IN THE WALL THERE IS A SMALL","DOOR WITH FOUR BUTTONS NUMBERED 1,2,3,4 AND FOUR LIGHTS.":FORMN=1TO4:PRINTCHR$(128);" ";:NEXT:PRINT:TV$="":FORMN=1TO4:TV$=TV$+STR$(RND(4)):NEXT 192 MN$="":PRINT"PRESS FOUR BUTTONS OR IGNORE" 193 GOSUB25 194 IFQ$<>"P"THEN176 195 PRINT"PRESS THEM":MN$="":FORQ=1TO4 196 Q$=INKEY$:IFQ$=""ORVAL(Q$)<1THEN196 197 PRINTQ$" ";:MN$=MN$+" "+Q$:NEXT:PRINT:DA=0:CP=0:FORQ=1TO4:IFMID$(TV$,2*Q-1,2)=MID$(MN$,2*Q-1,2)THENCP=CP+1:DA=DA-1 198 NEXT:FORQ=1TO4:FORQ1=1TO4:IFMID$(TV$,2*Q-1,2)=MID$(MN$,2*Q1-1,2)THENDA=DA+1:MID$(MN$,2*Q1-1,2)=" ":Q1=4 199 NEXTQ1,Q:IFDA>0THENFORQ=1TODA:PRINTCHR$(191);" ";:NEXT 200 IFCP>0THENFORQ=1TOCP:PRINTCHR$(207);" ";:NEXT 201 IFCP+DA<4THENFORQ=1TO4-CP-DA:PRINTCHR$(128);" ";:NEXT 202 PRINT:IFCP=4THEN204 203 PRINT"ZZAPP!! YOU ARE ELECTROCUTED!":Q=RND(Z)+1:GOSUB285:IFHC<1THEN74ELSE192 204 PRINT"THE DOOR OPENS!":TV$="":TR=3:ML=24:GOSUB284:GOTO372 205 PRINT"YOU HAVE FOUND AN EXCELSIOR","TRANSPORTER!":IFRN=1ORCC(2)>0THENPRINT"BUT IT DOESN'T WORK":GOTO47 206 A$="":PRINT"WHAT LEVEL DO YOU WANT TO GO TO ";:GOSUB26:IFQ=0ORQ>20THEN47 207 Q1=ABS(Z-Q)*100:IFQ1>G THENPRINT"YOU CAN'T AFFORD IT":GOTO206 208 PRINT"THAT WILL COST"Q1:G=G-Q1:Q1=-1:Z=Q:Q=Z*226+57357:Y=PEEK(Q)AND15:X=INT(PEEK(Q)/16):GOTO39 209 Q$="WHITEGREENBLACKRED":Q$=MID$(Q$,RND(4)*5-4,5):PRINT"YOU SEE A FOUNTAIN WITH "Q$,"WATER. DRINK OR IGNORE" 210 GOSUB25 211 IFQ$<>"D"THEN176 212 PRINT"DRINK":Q=RND(6)-1:ONRND(4)GOTO213,214,216,216 213 PRINT"AAARRRGH! IT'S POISONED WATER":Q=RND(Z/2+1):GOSUB556:IFR>=0THENPRINT"YOU RESIST IT":GOTO47ELSE:GOSUB285:IFHC<1THEN74ELSE48 214 DA=RND(3)*SGN(C(5)-FND(X)):IFDA=0THEN47 215 GOSUB407:GOTO49 216 PRINT"IT'S JUST WATER":GOTO47 217 PRINT"YOU FEEL HEAVY FOR A MOMENT":Z=Z-1:FORQ=1TO300:NEXT:GOTO39 218 IFCC(1)>0ORRND(C(4)+P(1))>RND(Z)+5THEN222 219 IFCC(8)>0THEN221 220 PRINT"YOU FALL INTO THE PIT":Q=RND(Z)+RND(Z):GOSUB285:FORQ=1TO200:NEXT:IFHC<1THEN74ELSE228 221 PRINT"AS YOU HOVER ACROSS THE ROOM" 222 PRINT"YOU NOTICE A PIT IN THE FLOOR" 223 IFZ=20THENPRINT"IT'S BOTTOMLESS!" 224 PRINT"DO YOU WANT TO GO DOWN" 225 GOSUB25 226 IFQ$<>"Y"ANDQ$<>"D"THENPRINT"NO":GOTO47 227 IFF=11ANDC(4)+RND(P(1))<=FND(X)+RND(Z)THENPRINT"YOU SLIP":GOTO220 228 Z=Z+1:GOTO39 229 PRINT"YOU SEE A MIRROR","DO YOU WANT TO LOOK IN IT?" 230 GOSUB25 231 IFQ$<>"Y"ANDQ$<>"L"THEN176 232 Q=RND(7)+3*(RN=1):IFQ<5THENPRINT"YOU SEE YOURSELF":GOTO47 233 IFQ>5ANDZ"Y"ANDQ$<>"E"THEN176 241 Q=RND(24):IFQ<13THENPRINT"IT'S JUST STONE":GOTO47 242 PRINT"IT COMES TO LIFE!":GOSUB284:IFQ>16THENMN=RND(25)-1:GOTO288 243 ONQ-12GOTO244,245,246,249 244 PRINT"IT'S DIONYSUS! TOGETHER YOU GET","DRUNK. WHEN YOU COME TO, YOU","FIND SOMETHING HAS BEEN STOLEN FROM YOU AND YOUR HEAD HURTS.":P(RND(6)-1)=0:G=0:HC=INT(HC/2)+1:GOTO49 245 Q=RND(3)+P(0):PRINT"IT'S APOLLO! HE GIVES YOU","A RING +"Q:P(0)=Q:GOTO47 246 Q=RND(2):Q1=RND(3)+P(Q):MN$="":IFQ=2THENMN$="A" 247 PRINT"IT'S HERMES! HE GIVES YOU "MN$,T$(3+Q)"+"Q1:P(Q)=Q1:GOTO47 248 P(Q)=Q1:GOTO47 249 Q=RND(3):Q=Q+(CT=0)*(Q=1):Q1=P(Q+2)+RND(3):IFQ=1THENMN$="A SHIELD"ELSEIFQ=2THENMN$="ARMOR"ELSEMN$="A "+T$(CT) 250 PRINT"IT'S ATHENA! SHE GIVES YOU",MN$"+"Q1:P(Q+2)=Q1:GOTO47 251 PRINT"YOU HAVE FOUND AN ALTAR. YOU","CAN PRAY,IGNORE OR DESECRATE IT" 252 GOSUB25 253 IFQ$="P"THEN258 254 IFQ$="D"THEN275 255 PRINT"IGNORE" 256 IFRND(Z+20)<16ORCC(3)>0THEN47 257 FORQ=0TO10:CC(Q)=0:NEXT:GOTO47 258 PRINT"PRAY",,"OFFER GOLD, OR JUST PRAY" 259 GOSUB25 260 IFQ$="O"THEN265 261 IFQ$<>"P"ANDQ$<>"J"THEN259 262 PRINT"JUST PRAY":Q=RND(5):IFQ=1ANDCC(3)<1THENPRINT"CHEAPSKATE":GOTO257 263 IFQ<5THEN47ELSEQ1=RND(10)+5 264 PRINT"YOUR PRAYER HAS BEEN ANSWERED":Q=RND(11)-1:CC(Q)=CC(Q)+Q1:GOTO47 265 A$="":PRINT"HOW MUCH OF YOUR GOLD ";:GOSUB26:IFQ<0ORQ>G THENPRINT"TRY AGAIN":GOTO265 266 IFG=0THEN262ELSEG=G-Q 267 IFP(3)>-7 IFPOS(0)>28THENQ1=Q1+64:PRINT@Q1,""; 108 NEXTQ 109 Q$=STRING$(7,175):A$=CHR$(175):LG=-(CC(1)<1):Q1=0:Q2=0:D=1:N=1 110 IFW(1)>0ORLG=1THEN124 111 IFR(1,3,1)>0ORR(1,2,0)>0ORW(4)>0THEN114 112 IFFNAA(14)>0THENPRINT@68,"?"; 113 Q1=1:R9=R(1,3,0):IFR9>0THENPRINT@1,Q$;:IFR9=3THENPRINT@4,W$(1); 114 IFFNAA(15)>0THENPRINT@74,"?"; 115 R9=R(2,3,0):IFR9>0THENPRINT@7,Q$;:IFR9=3THENPRINT@10,W$(1); 116 IFW(2)>0ORR(2,3,1)>0ORR(3,2,0)THEN121 117 IFFNAA(16)>0THENPRINT@80,"?"; 118 R9=R(3,3,0):Q2=1:IFR9>0THENPRINT@13,Q$;:IFR9=3THENPRINT@16,W$(1); 119 R9=R(3,3,1):IFR9>0THENFORQ=0TO4:PRINT@19+32*Q,A$;:NEXT:IFR9=3THENPRINT@83,W$(1); 120 GOTO122 121 R9=R(2,3,1):IFR9>0THENFORQ=0TO4:PRINT@13+32*Q,A$;:NEXT:IFR9=3THENPRINT@77,W$(1); 122 R9=R(1,3,1):IFR9>0THENFORQ=0TO4:PRINT@7+32*Q,A$;:NEXT:IFR9=3THENPRINT@71,W$(1); 123 IFQ1=0THEN124ELSER9=R(0,3,1):IFR9>0THENFORQ=0TO4:PRINT@1+32*Q,A$;:NEXT:IFR9=3THENPRINT@65,W$(1); 124 IFW(4)>0ORLG=1THEN127 125 IFFNAA(-1)>0THENPRINT@196,"?"; 126 R9=R(1,2,0):IFR9>0THENPRINT@129,Q$;:IFR9=3THENPRINT@132,W$(1); 127 IFW(1)>0THENPRINT@135,Q$;:IFW(1)>LG+1THENPRINT@138,W$(W(1)-2); 128 IFW(2)>0ORLG=1THEN130ELSEIFFNAA(1)>0THENPRINT@208,"?"; 129 R9=R(3,2,0):IFR9>0THENPRINT@141,Q$;:IFR9=3THENPRINT@144,W$(1); 130 IFW(2)=0ANDLG=0THENR9=R(3,2,1):IFR9>0THENFORQ=0TO4:PRINT@147+32*Q,A$;:NEXT:IFR9=3THENPRINT@211,W$(1); 131 IFW(2)>0THENN=0:FORQ=0TO4:PRINT@141+32*Q,A$;:NEXT:IFW(2)>LG+1THENPRINT@205,W$(W(2)-2); 132 IFW(4)>0THEND=0:FORQ=0TO4:PRINT@135+32*Q,A$;:NEXT:IFW(4)>LG+1THENPRINT@199,W$(W(4)-2); 133 IFW(4)>0ORLG=1THEN135ELSER9=R(0,2,1):IFR9>0THENFORQ=0TO4:PRINT@129+32*Q,A$;:NEXT:IFR9=3THENPRINT@193,W$(1); 134 R9=R(1,1,0):IFR9>0THEND=0:PRINT@257,Q$;:IFR9=3THENPRINT@260,W$(1); 135 Q=288:IFW(3)>0THENPRINT@263,Q$;:IFW(3)>LG+1THENPRINT@266,W$(W(3)-2); 136 IFLG=1THEN149 137 IFW(2)=0THENR9=R(3,1,0):IFR9>0THENN=0:PRINT@269,Q$;:IFR9=3THENPRINT@272,W$(1); 138 IFW(3)>0THEN149 139 IFN=1ANDR(2,1,1)=0THENR9=R(3,1,1):IFR9>0THENFORQ=0TO4:PRINT@275+32*Q,A$;:NEXT:IFR9=3THENPRINT@339,W$(1); 140 R9=R(2,1,1):IFR9>0THENN=0:FORQ=0TO4:PRINT@269+32*Q,A$;:NEXT:IFR9=3THENPRINT@333,W$(1); 141 R9=R(1,1,1):IFR9>0THEND=0:FORQ=0TO4:PRINT@263+32*Q,A$;:NEXT:IFR9=3THENPRINT@327,W$(1); 142 IFD=0THEN145ELSER9=R(0,1,1):IFR9>0THENFORQ=0TO4:PRINT@257+32*Q,A$;:NEXT:IFR9=3THENPRINT@321,W$(1); 143 IFFNAA(-16)>0THENPRINT@324,"?"; 144 R9=R(1,0,0):IFR9>0THENPRINT@385,Q$;:IFR9=3THENPRINT@388,W$(1); 145 IFFNAA(-15)>0THENPRINT@330,"?"; 146 R9=R(2,0,0):IFR9>0THENPRINT@391,Q$;:IFR9=3THENPRINT@394,W$(1); 147 Q=416:IFN=0THEN149ELSEIFFNAA(-14)>0THENPRINT@336,"?"; 148 R9=R(3,3,0):IFR9>0THENPRINT@397,Q$;:IFR9=3THENPRINT@400,W$(1); 149 PRINT@202,"X";:PRINT@169,TR$(ABS(TR));:PRINT@Q,"";:POKE65494,0 150 IFTR<0THEN305 151 IFRND(Z+30)<=Z-(Z<5)-(TR=3)*RND(9)-(TR>1)*RND(9)-RN*RND(9)ORTR=4 THEN286 152 IFTR=1ORTR=3THENMN=RND(6)*3:GOTO372 153 PRINT@233,F$(F);:PRINT@Q,""; 154 IFF>3THENONF-3GOTO162,166,171,191,205,209,217,218,229,238,251,283 155 GOTO47 156 Q=-(RND(Z+10)>9):PRINT"OPEN OR IGNORE IT?":IFCC(4)>0ANDQ=1THENPRINT"'BEWARE THE DOOR'","A VOICE WHISPERS":CC(4)=CC(4)-1 157 GOSUB25 158 IFQ$<>"O"THEN176 159 IFQ=0THENW(D)=4:D=Q1:PRINT"OPENED":GOTO49 160 IFRND(C(1))+RND(C(4))>5*INT(Z/5+1)THENPRINT"YOU DEFUSE THE DOOR":Q=0:GOTO159 161 PRINT"KABOOM! THE DOOR EXPLODES":Q=RND(2*Z):HC=HC-Q:PRINT"YOU LOSE"Q"HIT POINTS":Q=0:IFHC<1THEN74ELSE159 162 IFRN=1ORCC(2)>0THENPRINT"THE TELEPORTER DOESN'T WORK":GOTO47 163 PRINT"ZZAPP!! YOU'VE BEEN TELEPORTED":FORQ=0TO100:NEXT:IFMI>1THEN165 164 IFZ/2<>INT(Z/2)THENZ=Z+RND(3)ELSEZ=Z-RND(3):Z=Z-(Z<1)+(Z>20) 165 X=RND(15):Y=RND(15):IFMI>1THEN100ELSE39 166 IFCC(4)>0THEN169 167 IF(CC(1)>0ANDRND(3)>1)ORRND(C(4)+P(1))>6THEN170 168 PRINT"YOU FALL THROUGH THE TRAP DOOR":FORQ=1TO200:NEXT:GOTO228 169 PRINT"'BEWARE THE FLOOR'","A VOICE WHISPERS":CC(4)=CC(4)-1 170 PRINT"YOU NOTICE A TRAP DOOR NEAR","YOUR FEET":GOTO224 171 RY=RY+.9:PRINT"YOU HAVE FOUND A RUNE COVERED","JEWEL ENCRUSTED THRONE" 172 PRINT,,"SIT, PRY, READ RUNES, OR IGNORE":RY=RY+.1:IFRY=INT(RY)GOSUB66 173 GOSUB25 174 IF RND(100)"I"THEN177 176 PRINT"IGNORE":GOTO47 177 IFQ$="S"THEN185 178 IFQ$="P"THEN183 179 IFQ$="R"THEN181 180 GOTO172 181 PRINT"READ RUNES!":IFRND(C(1)+C(2))0)L)THENPRINT"THEY WON'T COME OFF":GOTO172 184 Q=RND(5)*RND(Z)*25*Z:PRINT"THEY POP INTO YOUR GREEDY HANDS THEY'RE WORTH"Q:G=G+Q:GOTO172 ANY KEY TO CONTINUE":GOSUB25:GOTO19 25 Q$=INKEY$:IFQ$=""THEN25ELSERETURN 26 GOSUB25:PRINTQ$;:IFQ$>CHR$(31)THENA$=A$+Q$ 27 IFQ$=CHR$(8)ANDLEN(A$)>0THENA$=LEFT$(A$,LEN(A$)-1):GOTO26 28 IFQ$<>CHR$(13)THEN26ELSEQ=VAL(A$):RETURN 29 PRINT"CHARACTER TYPE",,"MAGE, CLERIC, OR WARRIOR":GOSUB25:CP=-1-(Q$="C")-2*(Q$="W")-3*(Q$="M"):IFCP<0THEN29ELSEA$="":PRINT"LEVEL ";:GOSUB26:N=Q:PRINT"POINTS FOR THAT LEVEL ARE",INT(FNP(N)):RETURN 30 CLS:OPEN"I",1,"^IN^USE^.CHT":INPUT#1,NA$,MZ$,X,Y,Z,CT,L,HP,HC,EP,G,RN:FORQ=0TO5:INPUT#1,P(Q),C(Q):NEXT:FORQ=0TO3:INPUT#1,S(Q):NEXT:FORQ=0TO11:INPUT#1,CC(Q):NEXT:CLOSE1:RETURN 31 IFHP=0THENRETURNELSEOPEN"O",1,LEFT$(NA$,8)+".CHR":WRITE#1,NA$,MZ$,X,Y,Z,CT,L,HP,HC,EP,G,RN:FORQ=0TO5:WRITE#1,P(Q),C(Q):NEXT:FORQ=0TO3:WRITE#1,S(Q):NEXT:FORQ=0TO11:WRITE#1,CC(Q):NEXT:CLOSE1:RETURN 32 Q=L+1:Q1=1:CP=1-(CT=0)+(CT=1) 33 IFEP>FNP(Q)THENQ=Q+1:GOTO33 34 IFQ=L+1THEN36 35 Q=Q-L-1:PRINT"YOU HAVE GAINED"Q"LEVELS!":FORQ2=1TOQ:Q1=Q1+RND(C(3)/2):NEXT:PRINT"YOU HAVE GAINED"Q1"HIT POINTS":HP=HP+Q1:HC=HC+Q1:L=L+Q:IFCT<2THENFORDA=0TO3:S(DA)=S(DA)+Q:NEXT 36 FORDA=1TO300:NEXT:RETURN 37 S(0)=1.5:S(1)=-.5*(CT=0):S(2)=.5*(CT=1):S(3)=-.5:FORQ=0TO3:S(Q)=INT(S(Q)+L*(.5-.25*(C(5)>15))+10*(CT=2)):NEXT:RETURN 38 CLS:PRINT"YOU ENTER THE MINES OF MORIA":X=EX:Y=EY:Z=1 39 IFZ=0THEN553 40 IFZ>20THENPRINT"YOU'RE FALLING...":FORQ=1TO200:NEXT:PRINT"SPLAT!",,"YOU ARE DEAD.":GOTO78 41 POKE65497,0:Q=USR0(Q1) 42 FORQ=0TO30+Z 43 Q1=RND(8):TR=-2*(Q1<5)+(Q1>4)*(Q1<7)-3*(Q1>6) 44 Q1=RND(225):IFRND(90)=1THENTR=4 45 POKEQ1+61877,TR:NEXT 46 OL=Z:POKE65496,0:GOTO100 47 HC=HC+P(0):IFHC>HP THENHC=HP 48 GOSUB66:PRINT">>":IFCC(11)=1THEN73 49 Q2=1:GOSUB25 50 IFVAL(Q$)<5THEND=VAL(Q$) 51 IFQ$="^"THEND=1 52 IFQ$=CHR$(9)THEND=2 53 IFQ$=CHR$(10)THEND=3 54 IFQ$=CHR$(8)THEND=4 55 IFQ$="U"ORQ$="D"THEN67 56 IFQ$="I"THENGOSUB90:GOTO49 57 IFQ$="H"THEN80 58 IFQ$="K"THEN72 59 IFQ$="P"GOSUB29:GOTO49 60 IFQ$="C"THEN426 61 IFQ$="W"THENIFRND(Z+15)>Z-(TR=3)*RND(9)-(TR>1)*RND(9)-RND(4)*(RN=1)THEN47ELSE286 62 IFQ$="L"THEN106 63 IFQ$="Q"THENPRINT"QUIT... ARE YOU SURE (Y/N)?":GOSUB25:IFQ$<>"Y"THEN49ELSEGOSUB31:RUN"CONTROL 64 IFD>0THEN96 65 PRINT"LEGAL COMMANDS ARE:","A DIRECTION","INVENTORY","HELP","CAST","WAIT","LOOK","KILL SELF","QUIT","POINTS FOR LEVEL 'N'":GOTO49 66 FORQ=0TO11:CC(Q)=CC(Q)-(CC(Q)>0)*(Q<>4):NEXT:RETURN 67 F=INT(PEEK(FNPK(Q))/16):IFQ$="U"THEN71 68 IFF=2ORF=3THENZ=Z+1:GOTO39 69 IFF=11 THEN227 70 PRINT"THERE'S NO WAY "Q$:GOTO49 71 IFF=1ORF=3THENZ=Z-1:GOTO39ELSE70 72 PRINT"LET ME DIE!!!":INPUT"ARE YOU SURE";Q$:IFQ$<>"YES"THEN49 73 PRINT"AAARRRRGGGGHHH!!!" 74 PRINT"YOU DIE" 75 IFCT<>1ORQ$="YES"ORS(3)<1THEN78 76 PRINT"RAISE DEAD!!":S(3)=S(3)-1:GOSUB555:IFR<2*(L<13)+2*(L<9)ORC(3)=1THENPRINT"SPELL FAILED":GOTO75 77 C(3)=C(3)-RND(1-(C(3)>2)):PRINT"YOU ARE ALIVE WITH A","CONSTITUTION OF"C(3):Q=4:L=L+(L>1)-(L=0):FORQ1=1TOL:Q=Q+RND(C(3)/2):NEXT:CP=1-(CT=0)+(CT=1):EP=INT(FNP(L)):PRINT"AND"Q"HIT POINTS":HC=Q:HP=Q:GOTO48 78 GOSUB31:KILLLEFT$(NA$,8)+".CHR" 79 RUN"CONTROL 80 PRINT"HELP!!!!!":IFRND(6+2*(CC(3)>0))>1THEN49 81 PRINT"O.K.,BUT IT'S GOING TO COST YOU":Q=RND(7)-1:IFQ=6THENG=0ELSEIFP(Q)>0THENP(Q)=0 82 PRINT"DO YOU WANT:" 83 IFP(3)<0ORP(4)<0ORP(5)<0THENPRINT"aDVICE ON CURSES" 84 PRINT"dIRECTIONS","lIGHT","pROTECTION OR","rELOCATION?":GOSUB25 85 IFQ$="A"THENPRINT"TRY PRAYING AT AN ALTAR","(AND BE GENEROUS)" 86 IFRN=0ANDQ$="R"THENFORQ=0TO10:CC(Q)=0:NEXT:Z=Z-INT(RND(Z/2)):GOTO39 87 IFQ$="P"THEN441ELSEIFQ$="L"THEN443 88 IFQ$="D"THENPRINT"YOU ARE ON LEVEL"Z", AT"X","Y" AND THE ENTRANCE IS AT"EX","EY"." 89 GOTO 49 90 PRINT"INVENTORY:"NA$" THE "CT$(CT):PRINT"LEVEL"L,,"HIT POINTS"HC,"EP'S"EP,"GOLD"G:IFRN=1THENPRINT"YOU HAVE THE RING!" 91 FORQ=3TO5:PRINTT$(Q)"+"P(Q-3);:NEXT:PRINT 92 IFCT>0THENPRINTT$(6)"+"P(3) 93 PRINTT$(CT+12)" ARMOR+"P(4),T$(CT)"+"P(5) 94 IFCT<2THENFORQ=0TO3:PRINT"SPELLS LEVEL"Q+1"=";-S(Q)*(S(Q)>0):NEXT 95 PRINTQ1$:FORQ=0TO5:PRINTUSING"####";C(Q);:NEXT:PRINT"":RETURN 96 LG=0:IFW(D)=2THENIFCC(1)ORRND(3)>2THENPRINT"YOU HAVE FOUND A SECRET DOOR.":LG=5ELSELG=-5 97 IFW(D)=1ORLG=-5THENPRINT"IT'S ONLY A WALL":Q$="W":GOTO61 98 IFW(D)=3ORLG=5THEN156 99 POKE65495,0:X=X-(D=2)+(D=4):Y=Y-(D=1)+(D=3) 100 FORRY=-2TO1:FORRX=-2TO1:R(RX+2,RY+2,0)=PEEK(FNPK(Q)+15*RY+RX)AND3:R(RX+2,RY+2,1)=(PEEK(FNPK(Q)+15*RY+RX)AND12)/4:NEXT:NEXT:F=INT(PEEK(FNPK(Q))/16):Q=PEEK(15*Y+X+61862):IFTR>-1THENTR=Q 101 IFX=1THENFORQ=1TO3:R(1,Q,1)=1:NEXT 102 IFX=2THENFORQ=1TO3:R(0,Q,1)=1:NEXT 103 IFY=1THENFORQ=1TO3:R(Q,1,0)=1:NEXT 104 IFY=2THENFORQ=1TO3:R(Q,0,0)=1:NEXT 105 W(1)=R(2,2,0):W(2)=R(2,2,1):W(3)=R(2,1,0):W(4)=R(1,2,1):RY=0:POKE65494,0 106 CLS:Q1=53:PRINT@Q1,"";:FORQ=0TO11:IFCC(Q)>0THENPRINT" "CC$(Q); 10 4` 0 ` a 4 u @\`   iu  @$1t   i#!4 a AA a   e0$4#  $W1 `P S#p a QaQ '1 uh 1$$e  \ 4$=D U  4$!54p e  Ep   QE EtT X ! t!6$1 a!  12q   a!t"D 5t 0Aj! D4q   cq P=e d   G D   44F A4y1$a1%A  uP$1p   P-5P4u p   !d1 *t m  4t1  e  ! 0  0 =U1  qTA6 0a! (Q!a @ %=z12T@%%"    q UP !5! l 5l 57 p !5aq  %=z12T@% 1 CLEAR200:CLS:PRINT@106,"MORIA V",,,TAB(8)"BY GREG OLSON",TAB(8)"COPYRIGHT 1985" 2 FORX=0TO300:NEXT:DEFUSR0=490 3 Q=RND(-TIMER) 4 EX=PEEK(57353):EY=PEEK(57354):X1=PEEK(57355):Y1=PEEK(57356):Z1=PEEK(57357):X=USR0(Y) 5 DEFFNSS(Q)=RND(10)+RND(10)-18-2*INT((Q-1)/3):DIMF$(15),T$(14),M$(24),W$(2),CC(11),CT$(2),TR$(4),CC$(11),SM$(5,3),SC$(3,3),C(5),S(3),W(4),P(5),R(3,3,1) 6 DEFFND(Q)=RND(6)+RND(6)+RND(6):DEFFNAA(V)=INT(PEEK(FNPK(Q)+V)/16)+ABS(PEEK(15*Y+X+V+61862)):DEFFNPK(Q)=226*Z+15*Y+X+57116:DEFFNP(N)=(750+CP*250)*(-(N<8)*2^(N-1))-(N>7)*(100000-20000*(CP>0)-30000*(CP>1))*(N-7) 7 Q1$=" STR INT WIS CON DEX CHA":FORX=0TO15:READF$(X):NEXT:DATA" ","U/ ","D/ ",U/D,TPT,TRP,THR,TVR,EXC,FNT,ELV,PIT,MIR,STA,ALT,DRK 8 FORX=0TO14:READT$(X):NEXT:DATADAGGER,MACE,SWORD,RING,BOOTS,CLOAK,SHIELD,TORCH,CHEST,BOOK,GOLD,JEWELS,LEATHER,MAIL,PLATE 9 FORX=0TO2:READCT$(X):NEXT:DATAMAGE,CLERIC,WARRIOR 10 FORX=0TO24:READM$(X):NEXT:DATA 07106SKELETON,07106KOBOLD,06106GOBLIN,04108DWARF,02108MERCENARY,08108ZOMBIE,07305HARPY,06106ORC,05108WEREWOLF,05308OWL BEAR,06303GHOUL,05112DOPPLEGANGER,04108TROLL,05109BUGBEAR,06110MINOTAUR 11 DATA 03106WRAITH,05404GARGOYLE,05306GRIFFIN,05706HYDRA,04124GIANT,02110VAMPIRE,04108METAMORPH,01210GARTHIM,03108BALROG,-1316DRAGON 12 FORX=0TO11:READCC$(X):NEXT:DATASLNC,LGHT,TMST,PRAY,DTRP,SHLD,INVS,PROT,LEVT,FEAR,STRG,PLAG 13 FORX=0TO2:READQ:W$(X)=CHR$(Q):NEXT:DATA128,207,143 14 FORX=0TO4:READTR$(X):NEXT:DATA""," $"," #"," #$","DGN" 15 FORY=0TO3:FORX=0TO5:READSM$(X,Y):NEXTX,Y:DATA MAGIC MISSLE,CHARM,SHIELD,SLEEP,PROTECT FROM EVIL,LIGHT,PHANTASMAL FORCES,WEB,LIGHTNING BOLT,STRENGTH,LEVITATE,INVISIBILITY,FIREBALL,CONFUSE,PASSWALL,HOLD MONSTER,FEAR,CONTINUAL LIGHT 16 DATA TELEPORT,POWER WORD KILL,WALL OF ICE,TIMESTOP,WALL OF FIRE,SUMMON DEMON 17 FORY=0TO3:FORX=0TO3:READSC$(X,Y):NEXTX,Y:DATAPROTECT FROM EVIL,LIGHT,CURE LIGHT WOUNDS,TURN UNDEAD,DETECT TRAPS,SILENCE,PRAY,HOLD MONSTER,CURE SERIOUS WOUNDS,DISPELL UNDEAD,CONTINUAL LIGHT,PLAGUE,HOLY WORD,FINGER OF DEATH,BLADE BARRIER,RAISE DEAD 18 GOSUB30:RENAME"^IN^USE^.CHT"TO LEFT$(NA$,8)+".CHR":IFZ=0THEN38ELSE39 19 CLS:MI=0:PRINT"QUIT,RE-ENTER MINES, INVENTORY,","AND POINTS FOR LEVEL 'N'":GOSUB25 20 IF Q$="Q"THENMZ$="":GOSUB31:RUN"CONTROL 21 IF Q$="R"THEN38 22 IFQ$="I"THENCLS:GOSUB90 23 IFQ$="P"THENCLS:GOSUB29 24 PRINT"PRESS&200::10);"DND-GEN V1"&/:FOR COCO1&h "NAME OF DUNGEON";MZ$:(MZ$)8"8 CHAR MAX":10&CU():MZ$MZ$".DAT"&2C957358&:4H:LIST AVAIL CHARACTERS4RTE$"CHR":CM0:1070:4\:4f:LIST AVAIL DUNGEONS5pTE$"DAT":CM0:1070:5z:5P:RUN INSYTRUCTIONS PROGRAM WHICH RETURNS TO CONTROL5\"INSTR5c:5"DELETE WHICH CHARACTER?":2905RP0"CHARACTER DOES NOT EXIST":850: RP2930:5"ARE YOU SURE (Y/N)?":2706 Q$"Y" (NA$,8)".CHR"6 ʐ6:6އ"GENERATING A NEW RANDOM MAZE","TAKES CONSIDERABLE TIME. WHILE THE PROGRAM RUNS IT WILL","SHOW WHAT FLOOR IT IS ON AND HOWMANY ROOMS IT HAS CREATED"6,,"DO YOU WISH TO CONTINUE (Y/N)":2706 Q$"Y" "DND-GEN67:7 :QUIT77n$:SUBROUTINE SCANS DISK DIRECTRORY FOR FILE OF TYPE TN$=TARGET NAME TE$=TARGET EXTENSION7.A$"DUNGEON": TE$"CHR" A$"CHARACTER"78"AVAILABLE "A$"S ARE:"7B(31,"-")7LRP07V X23 117` 0,17,X2,A$,B$8 jA$A$(B$,127)8t N0 780~NM$(A$,N321,8)8HET$(A$,N329,3)8w CM1 ET$TE$ (NM$,1)(0) 12408 TE$"DAT" NM$: 12708 "I",1,NM$".CHR"8#1,NA$,MZ$,X,Y,Z,CT,L,HP8NA$" THE "CT$(CT):RP29 ć"LEVEL"L,HP"HIT POINTS": MZ$"""IN DUNGEON "MZ$90·(31,"-")9q؅ CM1 NM$(TN$" ",8) ET$TE$ RP1:X211:N79 (NM$,1)(255) X211:N799 N,X29#1,NA$,MZ$,X,Y,Z,CT,L,HP8NA$" THE "CT$(CT):RP29 ć"LEVEL"L,HP"HIT PO@P섷큷ތ&9@ 00120 LDX #$8000 00130 MOVE LDD ,X 00140 STA $0FFDF 00150 STD ,X++ 00160 STA $0FFDE 00170 CMPX #$0FEFE 00180 LBNE MOVE 00190 STA $0FFDF 00200 ANDCC #$0AF 00210 RTS 00220 END START D & : MORIA CONTROL PROGRAM&800: : TEMP(6,5)::@106,"MORIA V",,,8)"BY GREG OLSON",8)"COPYRIGHT 1985":X490500:Q:X,Q:: 142,241,182,111,128,140,242,151,38,249,57&X474480:Y:X,Y::50,98,28,175,126,173,165'( 410,126:411,1:412,218'2X0300::0490'D>":CC(11)173V1Q21:25m2(Q$)5D(Q$)}3Q$"^"D14Q$(9)D25Q$(10)D36Q$(8)D47Q$"U"Q$"D"678Q$"I"90:499Q$"H"80:Q$"K"72;Q$"P"29:49#Q$"L"106?Q$"Q""QUIT... ARE YOU SURE (Y/N)?":25:Q$"Y"49:31:"CONTROL@D096RA"LEGAL COMMANDS ARE:","A DIRECTION","INVENTORY","HELP","CAST","WAIT","LOOK","KILL SELF","QUIT","POINTS FOR LEVEL 'N'":49BQ011:CC(Q)CC(Q)(CC(Q)0)(Q4)::CF((PK(Q))16):Q$"U"71DF2F3ZZ1:39EF11 227F"THERE'S NO WAY "Q$:49GF1F3ZZ1:39:709H"LET ME DIE!!!":"ARE YOU SURE";Q$:Q$"YES"49RI"AAARRRRGGGGHHH!!!"aJ"YOU DIE"KCT1Q$"YES"S(3)178L"RAISE DEAD!!":S(3)S(3)1:555:R2(L13)2(L9)C(3)1"SPELL FAILED":75MC(3)C(3)(1(C(3)2)):"YOU ARE ALIVE WITH A","CONSTITUTION OF"C(3):Q4:LL(L1)(L0):Q11L:QQ(C(3)2)::CP1(CT0)(CT1):EP(P(L)):"AND"Q"HIT POINTS":HCQ:HPQ:48N31:(NA$,8)".CHR"O"CONTROLP"HELP!!!!!":(62(CC(3)0))149 ,Q"O.K.,BUT IT'S GOING TO    !"#$%&'()*+./2356;<=MORIA BAS ISTART BASINSTR BASMOVE BIN&CONTROL BASDND-GEN BASDUNGEON DATINTRO BAS,DNDMASTRBAS-6MORIA BAKSTART BAK0INSTR BAK1CONTROL BAK4MOVE BIK7&DND-GEN BAK8INTRO BAK9DNDMASTRBAK: COST YOU":Q(7)1:Q6G0:P(Q)0P(Q)0 @R"DO YOU WANT:" nSP(3)0P(4)0P(5)0"aDVICE ON CURSES" T"dIRECTIONS","lIGHT","pROTECTION OR","rELOCATION?":25 UQ$"A""TRY PRAYING AT AN ALTAR","(AND BE GENEROUS)"!VRN0Q$"R"Q010:CC(Q)0::ZZ((Z2)):39!;WQ$"P"441:Q$"L"443!XQ$"D""YOU ARE ON LEVEL"Z", AT"X","Y" AND THE ENTRANCE IS AT"EX","EY"."!Y 49!Z"INVENTORY:"NA$" THE "CT$(CT):"LEVEL"L,,"HIT POINTS"HC,"EP'S"EP,"GOLD"G:RN1"YOU HAVE THE RING!""[Q35:T$(Q)"+"P(Q3);::"6\CT0T$(6)"+"P(3)"`]T$(CT12)" ARMOR+"P(4),T$(CT)"+"P(5)"^CT2Q03:"SPELLS LEVEL"Q1"=";S(Q)(S(Q)0):"_Q1$:Q05:"####";C(Q);::"":# `LG0:W(D)2CC(1)(3)2"YOU HAVE FOUND A SECRET DOOR.":LG5:LG5#?aW(D)1LG5"IT'S ONLY A WALL":Q$"W":61 #UbW(D)3LG5156 #c65495,0:XX(D2)(D4):YY(D1)(D3)$dRY21:RX21:R(RX2,RY2,0)(PK(Q)15RYRX)3:R(RX2,RY2,1)((PK(Q)15RYRX)12)4:::F((PK(Q))16):Q(15YX61862):TR1TRQ$;eX1Q13:R(1,Q,1)1:$XfX2Q13:R(0,Q,1)1:$ugY1Q13:R(Q,1,0)1:$hY2Q13:R(Q,0,0)1:$iW(1)R(2,2,0):W(2)R(2,2,1):W(3)R(2,1,0):W(4)R(1,2,1):RY0:65494,0%j:Q153:@Q1,"";:Q011:CC(Q)0" "CC$(Q);%.k(0)28Q1Q164:@Q1,"";%5lQ%qmQ$(7,175):A$(175):LG(CC(1)1):Q10:Q20:D1:N1%nW(1)0LG1124%oR(1,3,1)0R(1,2,0)0W(4)0114%pAA(14)0@68,"?";%qQ11:R9R(1,3,0):R90@1,Q$;:R93@4,W$(1);&rAA(15)0@74,"?";&BsR9R(2,3,0):R90@7,Q$;:R93@10,W$(1);&ftW(2)0R(2,3,1)0R(3,2,0)121&uAA(16)0@80,"?";&vR9R(3,3,0):Q21:R90@13,Q$;:R93@16,W$(1);&wR9R(3,3,1):R90Q04:@1932Q,A$;::R93@83,W$(1);&x122'=yR9R(2,3,1):R90Q04:@1332Q,A$;::R93@77,W$(1);'{zR9R(1,3,1):R90Q04:@732Q,A$;::R93@71,W$(1);'{Q10124:R9R(0,3,1):R90Q04:@132Q,A$;::R93@65,W$(1);'|W(4)0LG1127'}AA(1)0@196,"?";(&~R9R(1,2,0):R90@129,Q$;:R93@132,W$(1);(YW(1)0@135,Q$;:W(1)LG1@138,W$(W(1)2);(W(2)0LG1130:AA(1)0@208,"?";(R9R(3,2,0):R90@141,Q$;:R93@144,W$(1);)W(2)0LG0R9R(3,2,1):R90Q04:@14732Q,A$;::R93@211,W$(1);)JW(2)0N0:Q04:@14132Q,A$;::W(2)LG1@205,W$(W(2)2);)W(4)0D0:Q04:@13532Q,A$;::W(4)LG1@199,W$(W(4)2);)W(4)0LG1135:R9R(0,2,1):R90Q04:@12932Q,A$;::R93@193,W$(1);*R9R(1,1,0):R90D0:@257,Q$;:R93@260,W$(1);*RQ288:W(3)0@263,Q$;:W(3)LG1@266,W$(W(3)2);*`LG1149*W(2)0R9R(3,1,0):R90N0:@269,Q$;:R93@272,W$(1);*W(3)0149+N1R(2,1,1)0R9R(3,1,1):R90Q04:@27532Q,A$;::R93@339,W$(1);+ER9R(2,1,1):R90N0:Q04:@26932Q,A$;::R93@333,W$(1);+R9R(1,1,1):R90D0:Q04:@26332Q,A$;::R93@327,W$(1);+D0145:R9R(0,1,1):R90Q04:@25732Q,A$;::R93@321,W$(1);+AA(16)0@324,"?";,#R9R(1,0,0):R90@385,Q$;:R93@388,W$(1);,>AA(15)0@330,"?";,qR9R(2,0,0):R90@391,Q$;:R93@394,W$(1);,Q416:N0149:AA(14)0@336,"?";,R9R(3,3,0):R90@397,Q$;:R93@400,W$(1);-@202,"X";:@169,TR$((TR));:@Q,"";:65494,0-TR0305-T(Z30)Z(Z5)(TR3)(9)(TR1)(9)RN(9)TR4 286-tTR1TR3MN(6)3:372-@233,F$(F);:@Q,"";-F3F3162,166,171,191,205,209,217,218,229,238,251,283-47.BQ((Z10)9):"OPEN OR IGNORE IT?":CC(4)0Q1"'BEWARE THE DOOR'","A VOICE WHISPERS":CC(4)CC(4)1.K25.\Q$"O"176.Q0W(D)4:DQ1:"OPENED":49.(C(1))(C(4))5(Z51)"YOU DEFUSE THE DOOR":Q0:159/""KABOOM! THE DOOR EXPLODES":Q(2Z):HCHCQ:"YOU LOSE"Q"HIT POINTS":Q0:HC174:159/XRN1CC(2)0"THE TELEPORTER DOESN'T WORK":47/"ZZAPP!! YOU'VE BEEN TELEPORTED":Q0100::MI1165/Z2(Z2)ZZ(3):ZZ(3):ZZ(Z1)(Z20)/X(15):Y(15):MI1100:390CC(4)01690+(CC(1)0(3)1)(C(4)P(1))61700b"YOU FALL THROUGH THE TRAP DOOR":Q1200::2280"'BEWARE THE FLOOR'","A VOICE WHISPERS":CC(4)CC(4)10"YOU NOTICE A TRAP DOOR NEAR","YOUR FEET":2241RYRY.9:"YOU HAVE FOUND A RUNE COVERED","JEWEL ENCRUSTED THRONE"1Z,,"SIT, PRY, READ RUNES, OR IGNORE":RYRY.1:RY(RY)661c251 (100)ZRY9"WOOOSH!!KABOOM!!","THE THRONES' OWNER RETURNS!":A$"04110DWARFLORD ":MN3:2891Q$"I"1771"IGNORE":471Q$"S"1852Q$"P"1832Q$"R"1812(1722p"READ RUNES!":(C(1)C(2))D(X)3"YOU CAN'T READ THEM!":1722"THE LETTERS BLUR BEFORE YOU":Q(4(Z5)(Z10)(Z15))1:S(Q)S(Q)(2):1723&"PRY OFF JEWELS":C(0)(12)(CC(10)0)D(X)4(ZL)(ZL)"THEY WON'T COME OFF":1723{Q(5)(Z)25Z:"THEY POP INTO YOUR GREEDY HANDS THEY'RE WORTH"Q:GGQ:1723"SIT ON THE THRONE":Q(10):Q11893Q81903Q8RN01623"NOTHING HAPPENS":1724y"THE THRONE ELECTROCUTES YOU","YOU LOSE A LEVEL":Q03:S(Q)(S(Q)2)::Q(HPL):285:LL1:HPHPQ:EP(EPEP(L(L0))):HC1L074:1724"A BELL RINGS":Q1:CP1(CT0)(CT1):EP(P(L1)1):32:1725\"IN THE WALL THERE IS A SMALL","DOOR WITH FOUR BUTTONS NUMBERED 1,2,3,4 AND FOUR LIGHTS.":MN14:(128);" ";:::TV$"":MN14:TV$TV$((4)):5MN$"":"PRESS FOUR BUTTONS OR IGNORE"5255…Q$"P"1765Ç"PRESS THEM":MN$"":Q145Q$:Q$""(Q$)11966@ŇQ$" ";:MN$MN$" "Q$:::DA0:CP0:Q14:(TV$,2Q1,2)(MN$,2Q1,2)CPCP1:DADA16Ƌ:Q14:Q114:(TV$,2Q1,2)(MN$,2Q11,2)DADA1:(MN$,2Q11,2)" ":Q146NjQ1,Q:DA0Q1DA:(191);" ";:6ȅCP0Q1CP:(207);" ";:7ɅCPDA4Q14CPDA:(128);" ";:7ʇ:CP42047aˇ"ZZAPP!! YOU ARE ELECTROCUTED!":Q(Z)1:285:HC174:1927̇"THE DOOR OPENS!":TV$"":TR3:ML24:284:3727͇"YOU HAVE FOUND AN EXCELSIOR","TRANSPORTER!":RN1CC(2)0"BUT IT DOESN'T WORK":4783A$"":"WHAT LEVEL DO YOU WANT TO GO TO ";:26:Q0Q20478jQ1(ZQ)100:Q1G "YOU CAN'T AFFORD IT":2068Ї"THAT WILL COST"Q1:GGQ1:Q11:ZQ:QZ22657357:Y(Q)15:X((Q)16):399)Q$"WHITEGREENBLACKRED":Q$(Q$,(4)54,5):"YOU SEE A FOUNTAIN WITH "Q$,"WATER. DRINK OR IGNORE"92ҁ259CӅQ$"D"1769rԇ"DRINK":Q(6)1:(4)213,214,216,2169Շ"AAARRRGH! IT'S POISONED WATER":Q(Z21):556:R0"YOU RESIST IT":47::285:HC174:489DA(3)(C(5)D(X)):DA047:ׁ407:49:*؇"IT'S JUST WATER":47:cه"YOU FEEL HEAVY FOR A MOMENT":ZZ1:Q1300::39:څCC(1)0(C(4)P(1))(Z)5222:ۅCC(8)0221:܇"YOU FALL INTO THE PIT":Q(Z)(Z):285:Q1200::HC174:228; ݇"AS YOU HOVER ACROSS THE ROOM";.އ"YOU NOTICE A PIT IN THE FLOOR";L߅Z20"IT'S BOTTOMLESS!";j"DO YOU WANT TO GO DOWN";sၦ25;Q$"Y"Q$"D""NO":47;F11C(4)(P(1))D(X)(Z)"YOU SLIP":220;ZZ1:39<"YOU SEE A MIRROR","DO YOU WANT TO LOOK IN IT?"<恦25<0Q$"Y"Q$"L"176Q$"Y"Q$"E"176>BQ(24):Q13"IT'S JUST STONE":47>y"IT COMES TO LIFE!":284:Q16MN(25)1:288>Q12244,245,246,249?>"IT'S DIONYSUS! TOGETHER YOU GET","DRUNK. WHEN YOU COME TO, YOU","FIND SOMETHING HAS BEEN STOLEN FROM YOU AND YOUR HEAD HURTS.":P((6)1)0:G0:HC(HC2)1:49?Q(3)P(0):"IT'S APOLLO! HE GIVES YOU","A RING +"Q:P(0)Q:47?Q(2):Q1(3)P(Q):MN$"":Q2MN$"A"?"IT'S HERMES! HE GIVES YOU "MN$,T$(3Q)"+"Q1:P(Q)Q1:47@P(Q)Q1:47@fQ(3):QQ(CT0)(Q1):Q1P(Q2)(3):Q1MN$"A SHIELD":Q2MN$"ARMOR":MN$"A "T$(CT)@"IT'S ATHENA! SHE GIVES YOU",MN$"+"Q1:P(Q2)Q1:47@"YOU HAVE FOUND AN ALTAR. YOU","CAN PRAY,IGNORE OR DESECRATE IT"@25@Q$"P"258AQ$"D"275A"IGNORE"A9(Z20)16CC(3)047ATQ010:CC(Q)0::47A|"PRAY",,"OFFER GOLD, OR JUST PRAY"A25AQ$"O"265AQ$"P"Q$"J"259A"JUST PRAY":Q(5):Q1CC(3)1"CHEAPSKATE":257BQ547:Q1(10)5BE"YOUR PRAYER HAS BEEN ANSWERED":Q(11)1:CC(Q)CC(Q)Q1:47B A$"":"HOW MUCH OF YOUR GOLD ";:26:Q0QG "TRY AGAIN":265B G0262:GGQB P(3)1P(4)1P(5)1272C "LEAVE YOUR CURSED (1)ARMOR","(2)SHIELD, OR (3) WEAPON":25:Q1(Q$):Q13Q11272CS ZP(Q12)5"TRY AN ALTAR BELOW"P(Q12)5:47CQP(Q12)1E4THEN"TRY BEING MORE GENEROUS","SAY"1E4P(Q12):47CP(Q12)1"THAT ITEM IS NOT CURSED":47:P(Q12)0:47CQ((50)50)Z QG 47D (2)147D!Q1(20)10:264D"YOU DO VILE AND UNSPEAKABLE","THINGS TO THE ALTAR":C(5)D(X)3Z5"NOTHING HAPPENS":256D"THE ALTAR CRUMBLES INTO DUST":284DQ(5):Q247DQ1F11:QPK(Q): Q,((Q)16)176:218EQ3257E5Q4"THERE'S SOMETHING LEFT BEHIND":TR4:372Ef"A VOICE BOOMS OUT","'I SHALL BE AVENGED!'"EA$"01112DEMON PRINCE ":MN50:284:289F "CRUEL LAUGHTER RINGS OUT","'PREPARE TO DIE, MORTAL'","THE DARK ONE SNEERS":A$"00114DARK ONE":MN99:CC(6)0:289F- PK(Q),(PK(Q))15:F0:FqHCHCQ:"YOU LOSE"Q"HIT POINTS":HC0"YOU HAVE"HC"LEFT"::FB90:MN(5(3(Z5)(Z16)))5(Z4.1(Z4))1:CC(7)0(MN5)MN5(3)2286FTR4MN24:B93F A$M$(MN)G !MN$(A$,6):MN21B924G"ML(Z2)Z3(Z10)(52(Z10)):MLML(ML1)(ML1):MLML(LZ1)(Z1)(ML1):Q0:MLML3(ML5)(MN18):MN24TR1MN$MN$"LORD "G#B921MN21MLDAG$ (MN$,1)" "MLML2H?%MN99"YOU HAVE ENCOUNTERED A LEVEL",ML;MN$:(6)(C(4)9)(C(4)4)(C(4)12)(C(4)17)(6)MN5DA9HP&CC(2)0305H'MH0:R1ML:MHMH(8)::MA((A$,3,1)):MD((A$,4,2)):MN1MH5MHMH4I(M9MH:MAMA(MA1)((ML5)(ML10)):HM19(L(5CT))((A$,2))2(CC(11)0):HM20HM20:HM2HM2I)HMHM(C(0)9)(C(0)6)(C(0)4)(C(0)13)(C(0)15)(C(0)17)((2)1)P(5):CC(9)1MN5(MN5)MN21(C(5))LMLD(X)299I*"IT RUNS AWAY IN TERROR":372JB+CH14ML2CTP(4)P(3)(CT0)(C(4)4)(C(4)6)(C(4)9)(C(4)12)(C(4)15)(C(4)17)2(CC(11)0):CH2CH2:CH20CH20J, MN99(3)1"'darkness take you'":419:"HE ATTACKS YOU WITH A KNIFE":317J-B920314J.MN25(CC(0)0(P(1)15)15)"IT DOESN'T HEAR YOU":Q1:330K/(P(2)10)10308K0C7(6)(6)(C(5)9)(C(5)4)(C(5)12)(C(5)17):C78"IT LOOKS GUARDEDLY AT YOU, BUT","DOESN'T ATTACK":330K1CC(2)0"TIME IS STOPPED":372K2MHM9 ((MN12B920)MN20)DA1(MN20)(MH1M9):"IT REGENERATES"DA"!":MHMHDAL3CC(6)1309L44"IT DOESN'T SEE YOU":Q1:330LC5DA9330Lo6C91314:C9C91:ML2559:R0314L7"THE "MN$" IS CONFUSED":R(6)(6):R6314L8R8DA0:R1MA:DADA(MD)::"IT DOES"DA" DAMAGE TO ITSELF":MHMHDA:MH1354M9330M(:"IT ATTACKS YOU":(3)1317M7;MN23415MF:DA0324M?QDA:285:HC174N@MN10557:R0"ITS TOUCH PARALYZES YOU":310N*A(MN15MN20)(2)1L1412NrBMN18556:R0"IT POISONED YOU":Q(ML100HP):285:HC173N|C328NDQ$"P"(20)CH2"IT SLIPPED":Q1:330OE(6)1327:"IT MISSED ";:MHMLANDRND(2)1"DUE TO ITS WEAKENED CONDITION"O F:328OYG(3)1CT0"YOU BLOCK WITH YOUR SHIELD":"YOUR ARMOR PROTECTS YOU"OoH(3)1MN6413OI(3)1MN11414OJ"ATTACK, PARRY, LUNGE,":Q0"BRIBE,";OKCT2"CAST,";OL"OR EVADE":Q22OMQ$PNQ$"A""ATTACK":341POQ$"L""LUNGE!":341P2PQ$"B"Q0358PMQQ$"P""PARRY":305P]RQ$"C"426PmSQ$"E"367PwT333PUDA0:CP1(L15)(L53):CPCP(4CP)(CP4)QOVR1CP:(20)P(5)2(Q$"L")(Q1)HM2(CC(10)2)2(CC(11)0)DADA(2CT4)P(5)(C(0)4)(C(0)6)(C(0)9)(C(0)12)(C(0)15)(C(0)17)2(CC(10)0)Q~W:Q1:DA((1.25(Q$"L"))DA):DA0346QX"YOU MISSED ";:HCC(3)2(C(3))D(X)"DUE TO YOUR WEAKENED","CONDITION"QY:305R7Z(MN25MN8MN15MN16MN20)P(5)ML5"A GOOD BLOW",,"BUT IT HAS NO EFFECT!":DA0RZ["YOU DO"DA"DAMAGE TO THE",MN$Rm\MN18MAMA1R]B921MHDA1"THE "MN$" CHANGES SHAPE!":B9B91:MN(4)5(B921):DAML1:288R^MHMHDA:MH1354S _CC(6)0"'KNRSH' SAYS THE "MN$:CC(6)0S'`(2)1"IT BITES BACK"S1a305SbQML1(MLL1)(MLL2)(MLL1)(MLL2)(MN10)(MN15)(MN20)(MN6)(MN11)(MN8)(MN21)(MN18)3(MN23):QQ(Q21)(1010((Q3)(Q5)(Q6))20((Q4)(Q7)(Q8)))(Q20)(125Q1500)TScCPCT13(CT2):Q(Q(1.1((C(CP)6)(C(CP)9)).05((C(CP)12)(C(CP)15))))TdEPEPQ:"IT DIED. YOU GAIN"Q" EP'S":32:(MN0MN5MN12MN50)(TR0TR3)154TeMN99425:372U&fA$"":"BRIBE/BLUFF",,"HOW MUCH GOLD WILL YOU GIVE","THE "MN$" TO LEAVE?","(0=BLUFF)":26:Q0363URgQG "YOU DON'T HAVE THAT MUCH":310UhMN5(MN5)MN22MN99"IT WON'T LISTEN":310UiQ0MLL4(2)1365UjQ(10(MN31)((MLL)ML(MLL)))10(CC(9)0)"IT IS INSULTED":310V;kGGQ:C711"THE "MN$" WHISPERS","'he IS BELOW LEVEL"Z11"'"VYl"IT TAKES YOUR GOLD AND"Vjm"IT LEAVES"Vn 15YX61862,0:TR0:154VoDA0:"EVADE":Q1514:D0(W(D)0W(D)4)"YOU RAN INTO A WALL":305:TR0:96WpQ14:D(4):W(D)4W(D)0W qW(D)0 W(D)4371WrCC(6)0C(4)P(1)D(X)TR0:MHM9.2(0)CC(6)1"IT FOLLOWS YOU!":TR2:15YX61862,0:96:96Ws"YOU'RE ROOTED TO THE SPOT!":305Wt15YX61862,0:Q((ML51)(TR2.5))2(TR1):TR0:Q0154XJuB9(Z(2)5(2)(5))2:Q11Q:Q20:374::B90:Q11100::154Xbv"YOU HAVE FOUND ";XwT(25)1:Q20T8375XxT14T(2)9XyT3T25:T11T24:T6T23:T2T3XzT6T12389X{T1(Z2)(5)3:T11T11Y |T4T12"A ";Y/}"MAGIC "T$(T);:T11,"ARMOR";Y:~"+"T1Y(T3TCT)(T11TCT12)(T6CT0)"TOO BAD YOU CAN'T USE IT":YP(T2)0T1P(T2)"YOU LIKE THE ONE YOU HAVE":Z%"DO YOU WANT TO KEEP IT?":(25)1T22T1(3):CC(4)0"'BEWARE' A VOICE WHISPERS":CC(4)CC(4)1Z.25ZQQ$"Y"Q$"K""LEAVE IT":Zh"KEEP":P(T2)T1:ZT7"A MAGIC "T$(7):CC(1)CC(1)(15)20:ZT8401ZDA0:(Z10)9DA1Z"A CHEST. OPEN OR IGNORE IT?"[-CC(4)0DA1"'BEWARE THE CHEST'","A VOICE WHISPERS":CC(4)CC(4)1[625[FQ$"O"397[V"IGNORE":[v"OPEN":B9B9100:DA0400[(C(1)C(4))5(Z51)"YOU DEFUSE THE CHEST":400\ Q2(2Z):HCHCQ2:"KABOOM! THE CHEST EXPLODES","YOU LOSE"Q2"HIT POINTS":HC174\%Q21(4):374::\2T9410\R"A BOOK","READ OR IGNORE?"\[25\lQ$"R"396\DA(3)(C(1)C(2)2D(X)(ZL))\(3)1DA0"YOU CAN'T READ IT":]9Q3(6)1:DADA(4DA)(C(Q3)3)(DA1):"YOUR"(Q1$,Q341,4)" JUST WENT ";:DC(Q3)DA20:D0(D)1DA(DA)]TDA0"UP";:"DOWN";]q(DA):C(Q3)C(Q3)DA:]DA(Z(2)5(2)(T6))(B90):T$(T),"WORTH"DA:GGDA:B9B9DA:DA0:T11"THEY'RE GLASS":"IT'S REALLY GILDED LEAD"]^Q11(MN20):LLQ1:"THE "MN$" DRAINS"Q1," ENERGY LEVEL(S)":CP1(CT0)(CT1):EPP(L):EPEP((P(L1)EP)2):Q11Q1:Q03:S(Q)S(Q)(S(Q)0):Q:HPHP(2)CT:Q1:L1HP174:330_1"THE "MN$" SINGS HER SONG OF","DEATH":555:R0"YOU IGNORE IT":330:"YOU FALL UNDER HER SPELL":317_"THE "MN$" LOOKS JUST","LIKE YOU":(C(2))D(X)"YOU SEE THROUGH HIS DISGUISE":330:"YOU'RE CONFUSED":317_"THE "MN$" USES ITS WHIP":DA(ML2)(6)(6)2:319`S"THE "MN$" BREATHES FIRE AT YOU":DAMH:B9B91:R16(2.5(L(5.1CT)))(CT2):R2R2:R20R20`pR(20)DA(DA2)1`z319`Q(4):Q 420,421,422,424`"HIS EYES SHOOT FIRE AT YOU":DA0:R1(ML5.11):DADA(6)1::319a-"HE THROWS LIGHTNING AT YOU":DA0:R1ML:DADA(4)::423ak"HE THROWS A FIREBALL AT YOU":DA0:R1ML:DADA(6):a555:DA(DA(1(R0))1):319a"HE SUMMONS A DEMON":A$"01112DEMON":MN50:289b2"YOU BITE OFF HIS FINGER AND","TAKE THE RING":RN1: 15YX61862,0: PK(Q),(PK(Q))16:TR0:47bE"LEVEL";:25b^Q(Q$):Q:Q0440boQ0Q4426bS(Q1)1"YOU HAVE NO LEVEL"Q,"SPELLS LEFT":440b"SPELL#";:25bQ1(Q$):Q1:Q11Q172(CT1)436c"SPELLS FOR THAT LEVEL ARE:"cQ1052(CT1)cLQ11":";:CT1SC$(Q1,Q1):SM$(Q1,Q1)cZ::430chQ10440cS(Q1)S(Q1)1:DA0cCT1SC$(Q11,Q1):4Q4Q1 441,443,444,446,452,453,454,455,463,464,468,469,475,477,480,451deSM$(Q11,Q1):6Q6Q1 486,488,492,493,441,443,501,504,506,508,509,510,506,511,512,455,521,468,522,533,537,545,546,547dwQ2149:333dCC(7)CC(7)66(CT1)L(CT2):440dQ2149:305dCC(1)CC(1)166(CT1)L(CT2):440dHCHC(4)3:HCHP HCHPe440e%"BEGONE VILE CREATURE!"e[Q21"THERE'S NOTHING THERE":451:S(0)S(0)1esMN5(MN5)450eLML2467:LML0(6)(6)2(MLL)7298e‡"THE "MN$" SCORNS YOUR WORDS":305eÇ"YOU JUST WASTED A LEVEL"Q,"SPELL":442fCC(4)CC(4)2:440f0CC(0)CC(0)12:440fICC(3)CC(3)12:440fWDžQ21451fȁ559:MN5(MN5)R2"SPELL FAILED":305fɇ"THE "MN$" IS HELD":DA1fʇ"KILL OR EVADE?"fˁ25g ̅Q$"K"Q1:367:CT1DA(3)(3)(3)9P(5):347gǵ559:(R2DA1)((0).125.125((ML4)(ML7)(MN24))DA0)"IT BROKE FREE":305g·"YOU SLIT IT'S THROAT":354gHCHC(4)3:444gЅQ21451gхMN5(MN5)450gҁ559:R2450hӇ"THE "MN$" IS DISPELLED INTO","THIN AIR":354h#CC(1)999:440h1ՅQ21451hgօMN5(MN5)"THE UNDEAD DON'T GET SICK":305hׁ559:R0"IT JUST HAD ITS SHOTS":305h؇"IT CATCHES THE BLACK PLAGUE":DA(6)(6):HMHM2:CHCH2isم(100)30L5(CC(11)1)555:R0"YOU CATCH IT TOO!":CC(11)(50)50:"IF YOU CAN'T GET OUT OF THE","DUNGEON IN"CC(11)1" TURNS YOU","WILL DIE"i}ځ347iۇ"BY THE "(5,128)" DIE!":Q21451i܁559:R2(MN5(MN5))450:354i݇"DIE VILE CREATURE!","ZZAPP!!":Q21451j"ށ560:R2(MN5(MN5))450ju߅(100)30L5"THE SPELL BACKFIRED":556:R0"YOU RESISTED IT":74:354jQ21451j"A WALL OF STEEL ENCIRCLES YOU"jQ(5):MN99Q2k!Q1MN0MN22"THE "MN$" TRIES TO","REACH YOU":DA0:R1(L5.11):DADA(6)4::544kPQ2"THE "MN$" GETS BORED","AND ";:365k"THE "MN$" IS PATIENT","YOUR SPELL WEARS OFF":305kQ21451kDA0:R12(L5.1)1:DADA(4)3::347kQ21451l MN5(MN5)"YOU CAN'T CHARM THE UNDEAD"305lbꁦ559:R2(ML4)(ML4)MN9MN99"IT DOESN'T THINK YOU'RE","CHARMING":305l"THE "MN$" IS CHARMED":DA1:497lCC(5)CC(5)2:440lQ21451lMN5(ML5)"THE UNDEAD DON'T SLEEP":305m559:R0MN11MN99ML5"IT'S NOT SLEEPY":305m<"THE "MN$" IS ASLEEP":DA0mQ"KILL OR EVADE"mZ25mrQ$"K"Q1:367m"KILL":(100)10(LML)(DA0)((11)9)(DA1)"IT WOKE UP!":305:462mQ21451n 559:R0MN24"THE "MN$" IS UNEFFECTED":305n{DA0:R1MA:DADA(MD)::"THE "MN$" BELIEVES","IT IS BEING ATTACKED","IT DOES"DA" DAMAGE TO ITSELF":350nQ21451n(100)90MN15"YOU MISSED THE "MN$:305:"THE "MN$" IS WEBBED":DA0:458nQ21451o8DA0:R1L:DADA(4)22(Q11)::559:DA(DA(1(R0))1):347oTCC(10)CC(10)6L:440onCC(8)CC(8)6L:440oCC(6)999:440oQ21451:C912:305o514oD0"THAT IS SOLID ROCK":442:99o"DIRECTION?":D5oQ$p Q$"^"D1:Y15D0p&Q$(9)D2:X15D0pBQ$(10)D3:Y1D0p]Q$(8)D4:X1D0pmD5515:p CC(9)CC(9)6L:Q1149:502p 514p "UP OR DOWN?"p Q$:Q$"U"Q$"D"524p Q$q RN1"THE SPELL ACTS STRANGELY":Q$"":(3)1Q$"D"qDXX(5)((D4)(D2)):YY(5)((D3)(D1))qfZZ(5)((Q$"U")(Q$"D"))qZZ(Z20)(Z20)(Z1)(Z1)qXX(X15)(X15)(X1)(X1)qYY(Y15)(Y15)(Y1)(Y1)q39qQ21451rQ$"":DA15:Q$Q$((26)96)::5);Q$r6560:R0354:560:R0450rz"THE SPELL BACKFIRED":556:R0"YOU RESISTED IT":305:74rQ21451:"YOU ARE SURROUNDED BY A WALL OF ICE"rML4Q3:484rQ(5):MN99Q2485sQ2MN0MN22484:"THE "MN$" TRIES TO REACH YOU"smQ13(MN5(MN5)MN19)"UNFORTUNATELY "MN$"S DON'T","MIND THE COLD":305sQ15(MN23MN24MN50)"UNFORTUNATELY "MN$"S ARE","FIREPROOF":305tDA0:R1(1(Q15)((MN5(MN5)(MN19))(Q13)(MN22)(MN99)))(L3.11):DADA(6):tG "IT SUFFERS"DA "DAMAGE POINTS":350ta!CC(2)CC(2)6L:442t"Q21451:"FLAMES SURROUND YOU":538t#(100)5(ML4L)550t$"THE DEMON IS ";:(2)1"TAKING A BATH":"ASLEEP"t%442u&"THE DEMON APPEARS"uU'Q21MN99A$"01112DEMON":MN50:289:"THE DEMON DEMOLISHES THE",MN$u((100)5(ML2L)"YOU DISPELL THE DEMON":154:Q21:551v)"YOU MADE IT OUT OF THE MINES":Q0200::EPEPG:32:37:G0:X011:CC(X)0::HCHP:31:RN019v^*"AND YOU RECOVERED THE RING!","YOU, "NA$", JOIN THE RANKS","OF THE HEROES OF OLD!":v+R15((2.5(CT0).5(CT2))(L(5.1CT)))(CT2)(C(2)4)(C(2)6)(C(2)9)(C(2)12)(C(2)15)(C(2)17):561:RR(CC(7)0):w7,R12((2.5.5(CT2))(L(5.1CT)))(CT1)(CT0):561:RR(CC(7)0):wy-R14((2.5.5(CT2))(L(5.1CT))):561:RR(CC(7)0):w.R16(2.5(L(5.1CT)))(CT2):561:RR(CC(7)0):w/R162(ML(1(MN11)(MN16)(MN21))3.1):561:RR2(MN6):x0R122(ML3.1):561:x41R2R2:R20R20xE2R(20)R:.5(CT2))(L(5.1CT))):561:RR(CC(7)0):w.R16(2.5(L(5.1CT)))(CT2):561:RR(CC(7)0):w/R162(ML(1(MN11)(MN16)(MN21))3.1):561:RR2(MN6):x& :INTRO &:&3:PUTS SYSTEM IN RAM MODE&P(:AND CLEARS TO PCLEAR 0&i-:USES ONLY 1 BUFFER&v2M"MOVE"&|<&F25,14&P3584,0&U 1,256&Z:NEXT LINE COULD BE RUN"FILE-&d:NAME" TO LINK TO NEW FILE&n3K:" DUNGEON MASTER",,," BY GREG OLSON"," COPYRIGHT 1984" CO$(15),W$(3),WN$(3),WE$(3):X015:CO$(X)::X03:W$(X):W ' ' NOTHING,'U/ ' STAIRWAY UP,'D/ ' STAIRWAY DOWN,'U/D' STAIRWAY UP AND DOWN,'TPT' TELEPORT,'TRP' TRAP DOOR,'THR' THRONE,'TVR' THRONE VAULT RESERVE,'EXC' EXCELLSIOR TRANSPORTER,'FNT' FOUNTAIN 'ELV' ELEVATOR,'PIT' PIT,'MIR' MIRROR,'STA' STATUE,'ALT' ALTAR,'DRK' DARK ONE,OPEN,ROCK,SECRET DOOR,DOOR X0 3: WN$(X),WE$(X): " "," ","---","C","-=-",":","-^-",">"'WE$(1)(124)6 X1300:r:"(1) LOAD EXISTING DUNGEON","(2) CREATE NEW DUNGEON"9999: A$"1"A$"2"30(,,"ENTER THE NAME OF ";2 A$"1" "AN EXISTING":"THE NEW"<"DUNGEON (8 CHAR MAX)";MZN$F (MZN$)1(MZN$)840uP A$"2",,"INITIALIZING...PLEASE WAIT":CC57353 61877:CC,0::10000:M MZN$".DAT"Z:"(1) EDIT ROOMS"," (2) LIST ROOMS","(3) PRINT FLOORS (4) QUIT"d9999:A$"1"A$"4"100x (A$) 150,700,800, 90:EDIT ROOMS':"EDIT ROOMS",,T10510 :STARTING AT, ENDING AT ROUTINEe NNST EN 12010 :LIST CONTENTS OF ROOM SUBROUTINE"O.K.(Y/N)?"ȁ9999҅ A$"N"650܇"NORTH WALL IS ";W$(N)恦13010 :ROOM CHANGE SUBROUTINE RN4 R1N : R1RN;"EAST WALL IS ";W$(E)H 13010c RN4 R2E : R2RN""ROOM CONTAINS",,CO$(CO),"CHANGE?"69999@ A$"Y" A$"C"C1CO: 600J"ENTER A NUMBER 0 TO 15";C1^ C10 C115 V0 15:V"=";CO$(V)::330"rC18510Q|QFL22657357:XT((Q)16):YT(Q)15t(Q)9 (YYT XXT) 600,,"WARNING! THERE ALREADY IS AN","'EXC' ON THIS FLOOR AT",XT","YT"IF YOU ADD THIS NEW ONE THE OLD ONE WILL 'TRANSMIT' ONLY""IS THIS ACCEPTABLE?"!99993 A$"Y"290s"DO YOU WISH THE PREVIOUS 'EXC","TO BE BLANKED OUT (Y/N)?"~9999̅ A$"Y" "THE PREVIOUS 'EXC' WILL BECOME TRANSMIT ONLY.": 600CNFL226XT15YT57116CN,(CN)15'"PREVIOUS 'EXC' LOCATION NOW A","BLANK ROOM"2 600S C115 (57357)0 600 X(57355)Y(57356)FL(57357)600"THE DARK ONE WAS PREVIOUSLY","PLACED AT LEVEL"(57357),"X="(57355)",Y="(57356)"DO YOU WISH TO MOVE HIM (Y/N)?" &9999 0 A$"Y" 290[:"THE OLD LOCATION OF THE DARK ONEWILL BE BLANKED OUT"DCN(57357)226(57356)15(57355)57116:CN,(CN)15N57355,X:57356,Y:57357,FLXFL226NN57131,C116R24R1YFL1(C11C13)610Z X(57353)Y(57354)610Q["DO YOU WISH THIS STAIRWAY TO BE THE ENTRANCE?"\9999:A$"N""YOU MUST HAVE AN ENTRANCE":610]X","Y" WILL BE THE ENTRANCE":57353,X:57354,Yb12010 :LIST ROOM CONTENTS SUBROUTINE l"O.K. (Y/N OR 'A' TO ABORT)?"v9999/{ A$"A"NNEN: 650@ A$"N"220HNNY:LIST ROOMS 10510 :STARTING AT, ENDING ATƀ NNST ENЁ 12010 : LIST ROOMSڇ"PRESS ANY KEY TO CONTINUE (A TO ABORT)"䁦9999: A$"A" NNENNN  ':PRINT FLOOR ON PRINTER ROUTINE X :"PRINT FROM LEVEL 'N' TO LEVEL 'M'";N,M * N1 N20 M1 M20 NM "ABORTING!",,"PRESS ANY KEY":9999: 4"SET PRINTER TO TOP OF PAGE,","PRESS A KEY WHEN READY" > 9999 H FLN M! R#2:#2!'\#2,30)"DUNGEON ";MZN$!@f#2,35)"LEVEL ";FL!SpX13:#2:X!lz1260 :PRINT INDEX! Y15 1 1!#2," +";! X1 15!1280 :RETURNS 'N'!#2,"% %!";WN$(N 3),"+";! X!#2"ʇ#2, "##!";Y,(124);"Ԁ X1 15"/ށ 1280 :RETURNS 'N'"k#2,"% %!";(CO$((N16)),2,3),WE$(((N 12)4));"s X"#2,"##";Y" Y"#2," +";" X1 15:#2,"---+";::#2"$1260 :PRINT INDEX". X1 3:#2:#8#2,30)"ROOM CONTENTS CODES"#$B#2,(79,"-")#2L X0 5#@V Y0 2#\`#2,Y26);CO$(X3Y);#re X5 Y0 Y2#zj Y#t#2#~ X##2:#2##2,10);"HORIZONTAL WALLS";50);"VERTICAL WALLS"##2,(79,"-")# X0 3$#2,10);"'";WN$(X);"'";"<==>";W$(X);$G#2,50);"'";WE$(X);"'";"<==>";W$(X)$Oċ X$e΀ X1 7:#2:X$nӋ FL$tؐ$:PRINT INDEX$#2," ";:X115:#2,"###!";X," ";::#2:$:RETURN 'N'= VALUE OF ROOM$N(FL22615YX57116):%:QUIT%5:"QUIT",,"CHECKING DUNGEON","PLEASE WAIT"%B( 10000%2 (57355)(57356)(57357)0"THE DARK ONE IS NOT IN THIS","DUNGEON"%< FL1 20%F (FL22657357)0"FLOOR"FL" DOES NOT HAVE","AN 'EXC'"%P&Z"SAVE THIS DUNGEON?"& d 9999&+n A$"Y" A$"N" 1380&<x A$"N" &_"UNDER THE SAME NAME",MZN$"?"&k 9999& A$"Y" A$"N" 1420& A$"Y" 1470&"ENTER NEW NAME";MZN$& (MZN$)1 (MZN$)8 1450& ' M MZN$".DAT",57353,61877,57353'҇"SAVED AS "MZN$'%܊'>'A$:A$""9999:'J'Z120'V'X115'k'$NN226ZX57341'~'.NN,(NN)253''8X''BY115''LNN226Z15Y57131''VNN,(NN)247''`Y''jZ''t'):ENTER START, END ROOM NUMBERS()"WHAT FLOOR (0 TO ABORT";FL(0) FL0 FL20 10510(?)" FL0 (j),"STARTING AT ROOM 'X:Y' OR '#' ";RM$()6 11010: RM0 10540 : STRM()@"ENDING AT ROOM 'X:Y' OR '#' ";RM$()J 11010: RMST ENRM:()T"END EQUALS START?"()^9999))h A$"Y" A$"N"10590)7)r A$"Y" ENST : 10560)=)|)c*:TRANSLATES STRING INTO A ROOM #)x+LC(1,RM$,":"))+ LC0 RM(RM$): 11040)+RM((RM$,LC1))15(((RM$,LC1))1))+ RM0 RM226 *3+*"BAD ROOM LOCATION","1 <= X <= 15, AND 1 <= Y <= 15","OR 1 <= ROOM # <= 225"*>+4RM0:*b.:LIST ROOM CONTENTS SUBROUTINE*.Y(NN15.05)1:XNN15(Y1)*.:"CONTENTS OF ROOM AT","Z="FL;"X="X;"Y="Y*."ROOM #";NN*/CC(FL226NN57131)+ /NCC 3:E((CC 12)4):CO(CC16)+&/"NORTH WALL=";W$(N)+>/&"EAST WALL=";W$(E)+g/0(32,"-");"ROOM CONTAINS:",CO$(CO)+m/:+2:ROOM CHANGE SUBROUTINE+2҇"CHANGE (Y/N)?"+2܁9999+2 A$"Y" A$"C" RN4:+2"0, 1, 2, OR 3?"+2 9999,"3 A$"0" A$"3" V03:V"="W$(V)::13040,23RN(A$):L=";W$(E)+g/0(32,"-");"ROOM CONTAINS:",CO$(CO)+m/:+2:ROOM CHANGE SUBROUTINE+2҇"CHANGE (Y/N)?"+2܁9999+2 A$"Y" A$"C" RN4:+2"0, 1, 2, OR 3?"+2 9999,"3 A$"0" A$ 10 'ENTRO 20 ' 30 'PUTS SYSTEM IN RAM MODE 40 'AND CLEARS TO PCLEAR 0 45 'USES ONLY 1 BUFFER 50 LOADM"MOVE" 60 EXEC 70 POKE25,14 80 POKE3584,0 85 FILES 1,256 90 RUN"CONTROL COULD BE RUN"FILE- d:NAME" TO LINK TO NEW FILE n 1 CLEAR512 10 LP=1:CLS 20 READA$ 30 IFA$="ZZZ"THEN RUN"CONTROL.BAS" 40 CP=32:CK=0 50 IFLEN(A$)<32THENA$=A$+" ":CK=1 60 B=INSTR(CP,A$," ") 70 IFB=0ORB>32THENCP=CP-2:GOTO60 80 B$=LEFT$(A$,B-1) 90 PRINTB$ 100 LP=LP+1 110 A$=MID$(A$,CP+1) 120 IF LEFT$(A$,1)=" "THENA$=MID$(A$,2):GOTO120 130 IFLP=15GOSUB150 140 IFCK=1THEN20ELSE40 150 PRINTSTRING$(32,"-");" PRESS ANY KEY TO CONTINUE"; 160 Y$=INKEY$:IFY$=""THEN160 170 CLS:LP=1:RETURN 210 DATA " m BY"," o"," r GREG"," i"," a OLSON"," "," "," ",COPYRIGHT,1983," "," "," "," " 230 DATA"THE FOLLOWING FILES ARE ON THE DISK:",START.BAS & START.BAK,MORIA.BAS & MORIA.BAK,MOVE.BIN & MOVE.BAK,DNDGEN.BAS & DNDGEN.BAK,DUNGEON.DAT & DUNGEON.BAK,AND,INSTR.BAS & INSTR.BAK," " 240 DATA EACH '.BAK' FILE IF A BACKUP COPY OF THE PREVIOUS FILE," " 250 DATA MORIA REQUIRES 64K RAM AND ONE DISK DRIVE.,START.BAS PUTS THE COMPUTER IN PCLEAR 0 MODE AND RUNS MOVE.BIN WHICH PUTS THE COMPUTER IN 64K RAM MODE AND COPIES ROM TO RAM. START.BAS MUST BE RUN FOR EITHER MORIA.BAS OR DNDGEN.BAS TO WORK. 270 DATA DNDGEN.BAS IS A DUNGEON GENERATOR. WHEN RUN IT WILL RANDOMLY CREATE A DUNGEON OF 15X15X20 ROOMS. DUNGEON.DAT IS A SAMPLE OUTPUT OF THIS PROGRAM. THE DATA IS STORED AS A BINARY FILE WHICH 'LOADM'S INTO HIGH RAM. 280 DATA MORIA.BAS CONTAINS THE ACTUAL GAME PROGRAM. LIKE DNDGEN.BAS IT CAN ONLY BE RUN AFTER START.BAS AND IT REQIRES A DATA FILE GENERATED BY DNDGEN.BAS.," "," " 290 DATA O.K. READY TO PLAY THE GAME?," ",RUN START.BAS. IT WILL RUN CONTROL.BAS. ANSWER 'DUNGEON' (NO .DAT) WHEN ASKED FOR A DUNGEON NAME. YOU ARE NOW READY TO GO.,* LEAVE THE DISK IN DRIVE 0 *," " 300 DATA "MORIA USES 'DUNGEONS AND DRAGONS' - (C) TSR HOBBIES INC. - TYPE CHARATERS WHERE EACH CHARACTER HAS THE SIX ATTRIBUTES OF STRENGTH, INTELLIGENCE, WISDOM, CONSTITUTION, DEXTERITY, AND CHARISMA." 310 DATA "THERE ARE THREE TYPES OF CHARACTERS: 0= MAGE, 1= CLERIC, AND 2= WARRIOR. EACH TYPE HAS ITS ADVANTAGES AND DISADVANTAGES. EXPERIMENT AND SEE WHICH ONES YOU LIKE BEST."," " 320 DATA "TO CREATE A CHARACTER TYPE 'C' TO THE MAIN MENU. YOU WILL BE ASKED TO CHOOSE A CHARACTER TYPE. RESPOND WITH '0', '1', OR '2' (CHARACTER TYPES WILL ALWAYS BE REFERENCED BY A NUMBER)." 330 DATA YOU WILL THEN 'ROLL' THREE DIE FOR EACH OF THE CHARACTER'S ATTRIBUTES. PRESS THE NUMBER OF THE ROLL YOU LIKE BEST. 340 DATA "ONCE YOU HAVE CREATED A CHARACTER, YOU CAN VIEW HIS/HER/ITS ATTRIBUTES, POSSESSIONS AND EXPERIENCE POINTS BY PRESSING 'I' FOR INVENTORY" 350 DATA " ",EXPERIENCE POINTS (EP'S) ARE GRANTED TO A CHARACTER FOR KILLING MONSTERS AND TAKING GOLD (AND JEWELS) OUT OF THE DUNGEON. UPON GAINING SUFFICIENT E.P.'S A CHARACTER WILL 'GAIN A LEVEL' AND WILL BE GIVEN GREATER ABILITIES. 360 DATA "ALL CHARACTERS START AT LEVEL ONE, AND GAINING LEVELS IS THE KEY TO SURVIVAL IN THE LOWER LEVELS OF THE DUNGEON.",TO FIND THE POINTS NESSESSARY TO 'GAIN LEVELS' PUSH 'P' ON THE MAIN MENU. 365 DATA A KEY NUMBER TO KEEP TRACK OF IS THE CHARACTER'S HIT POINTS (HP'S). THIS NUMBER REPRESENTS THE AMOUNT OF DAMAGE A CHARACTER CAN TAKE. SHOULD THIS NUMBER REACH ZERO YOUR CHARACTER WILL DIE. A HURT CHARACTER CAN BE HEALED BY 366 DATA "MAKING IT OUT OF THE DUNGEON OR BY MAGIC (RINGS, SPELLS, ETC.)." 370 DATA " ",ONCE A CHARACTER HAS BEEN CREATED OR RECALLED FROM THE DISK YOU CAN HAVE THAT CHARACTER ENTER THE CURRENT DUNGEON BY PRESSING 'E' FOR ENTER.,THE SCREEN WILL BLUR AND AN OVERHEAD VIEW OF THE DUNGEON WILL APPEAR. 380 DATA THE CHARACTER IS MARKED BY AN 'X' AND THE STAIRWAY UP (AND OUT) BY 'U/' OR 'U/D'.,OTHER SYMBOLS DENOTE OTHER OBJECTS AND YOU WILL HAVE TO DISCOVER THESE ON YOUR OWN. 390 DATA ONCE IN THE DUNGEON THE CHARACTER CAN BE MOVED BY PRESSING AN ARROW KEY OR 'U' OR 'D' (FOR STAIRWAYS).,"IN ADDITION A CHARACTER CAN (L)OOK AT THE CURRENT LOCATION, (C)AST A SPELL, (I)NVENTORY POSSESSIONS, (W)AIT OR REST," 400 DATA "(Q)UIT PLAYING, FIND THE (P)OINTS FOR THE NEXT LEVEL, YELL FOR (H)ELP, OR (K)ILL HIS OR HER SELF [SUICIDE]"," ",PRESS THE ( )'ED LETTER TO USE THAT COMMAND. 410 DATA OTHER CHOCES WILL ARISE WILL IN THE DUNGEON AND THESE ALSO CAN BE MADE BY PRESSING ONE OR MORE KEYS. 420 DATA A WORD ABOUT SPELL CASTING. MAGES AND CLERICS CAN CAST SPELLS BY PRESSING 'C'. YOU WILL BE ASKED FOR THE LEVEL OF THE SPELL AND THE SPELL NUMBER. SPELLS FALL INTO ONE OF FOUR LEVELS EACH OF WHICH WILL HAVE FOUR (CLERIC) OR SIX (MAGE) 430 DATA SPELLS IN IT. EACH CHARACTER WILL HAVE A GIVEN NUMBER OF SPELLS TO CAST IN EACH LEVEL. THESE NUMBERS ARE SHOWN IN THE INVENTORY. THESE NUMBERS WILL BE REPLENISHED WHEN THE CHARACTER LEAVES THE DUNGEON (AS WELL AS AT CERTAIN PLACES IN IT) 440 DATA "TO CAST A SPELL PRESS 'C', THEN A LEVEL FROM '1' TO '4' ('0' ABORTS), AND THEN A SPELL NUMBER ('0' ABORTS, AND '9' PRESENTS A LIST OF VALID SPELLS). SOME SPELLS ARE OFFENSIVE, SOME DEFENSIVE, AND SOME BEST LEFT ALONE." 450 DATA THE ONLY WAY YOU CAN FIND OUT IS TO TRY.," "," ",NOW THAT YOU KNOW HOW TO PLAY THE GAME IT IS TIME TO LEARN THE RULES. LONG AGO AN EVIL WIZARD CALLED THE DARK ONE (SOUND FAMILIAR) ACQUIRED A RING OF POWER AND INVADED 460 DATA THE DWARVEN MINES OF MORIA. HE KILLED OR SUBVERTED ALL OF THE DWARFS AND ASSEMBLED A HORDE OF VILE CREATURES TO SERVE HIM. THESE CREATURES GET THEIR JOLLIES BY LAYING WASTE THE COUNTRYSIDE. AN ARMY COULD NOT BUDGE THEM FROM THE MINES. 470 DATA "BUT, BEING EVIL AND WICKED CREATURES, WHEN ARMIES AREN'T ABOUT BEING SLAUGHTERED, THEY LEAD SOLITARY (THEY HATE EACH OTHER) LIVES IN THE MINES. THUS A LONE ADVENTURER (YOU) COULD ENTER THE MINES, FIGHT THE CREATURES ONE BY ONE," 480 DATA "FIND AND KILL THE WIZARD, AND RETURN HIS RING TO THE SURFACE (THEREBY SAVING THE WORLD AND GETTING A CUSHY JOB ON THE LECTURE CIRCUIT FOR THE REST OF YOUR LIFE.)" 490 DATA " ","THE BEST WAY TO SUCCEED IN THIS QUEST, (AND AVOID BECOMING A MEAL), IS TO START SLOW, RUN AWAY FROM TOUGH MONSTERS (UNTIL YOU ARE TOUGHER), AND TRY AND COLLECT GOOD MAGIC ARMOR, SHIELDS, BOOTS, ETC. YOU'LL NEED THEM. 500 DATA " "," ",GOOD LUCK 9999 DATA ZZZ BEST WAY TO SUCCEED IN THIS QUEST, (AND AVOID BECOMING A MEAL), IS TO START SLOW, RUN AWAY FROM TOUGH MONSTERS (UNTIL YOU 10 ' MORIA CONTROL PROGRAM 20 CLEAR800:VERIFY ON:DIM TEMP(6,5):CLS:PRINT@106,"MORIA V",,,TAB(8)"BY GREG OLSON",TAB(8)"COPYRIGHT 1985":FORX=490TO500:READQ:POKEX,Q:NEXT:DATA 142,241,182,111,128,140,242,151,38,249,57 30 FORX=474TO480:READY:POKEX,Y:NEXT:DATA50,98,28,175,126,173,165 40 POKE 410,126:POKE411,1:POKE412,218 50 FORX=0TO300:NEXT:DEFUSR0=490 60 Q=RND(-TIMER):DEF FND(Q)=RND(6)+RND(6)+RND(6) 70 DIM T$(14),CT$(2),C(5),S(3),P(5),CC(11) 80 DEFFNP(N)=(750+CP*250)*(-(N<8)*2^(N-1))-(N>7)*(100000-20000*(CP>0)-30000*(CP>1))*(N-7) 90 Q1$=" STR INT WIS CON DEX CHA" 100 FORX=0TO14:READT$(X):NEXT:DATADAGGER,MACE,SWORD,RING,BOOTS,CLOAK,SHIELD,TORCH,CHEST,BOOK,GOLD,JEWELS,LEATHER,MAIL,PLATE 110 FORX=0TO2:READCT$(X):NEXT:DATAMAGE,CLERIC,WARRIOR 120 CLS 130 PRINT"(1) CREATE A CHARACTER" 140 PRINT"(2) RECALL A CHARAACTER" 150 PRINT"(3) INVENTORY OF A CHARACTER" 160 PRINT"(4) LIST OF AVAIL. CHARACTERS" 170 PRINT"(5) LIST OF AVAIL. DUNGEONS" 180 PRINT"(6) POINTS NEEDED FOR LEVEL 'N'" 190 PRINT"(7) INSTRUCTIONS" 200 PRINT"(8) DELETE A CHARACTER" 210 PRINT"(9) GENERATE NEW MAZE" 220 PRINT"(0) QUIT" 230 GOSUB270:IFQ$="0"THENQ$="10" 240 Q=VAL(Q$):IF Q<1 OR Q>10 THEN 230 250 CLS:ON Q GOSUB 280,590,800,850,880,440,910,930,990,1050 260 PRINT"PRESS ANY KEY TO CONTINUE":GOSUB270:GOTO120 270 Q$=INKEY$:IFQ$=""THEN270ELSERETURN 280 PRINT"CREATE A CHARACTER":GOSUB290:GOTO340 290 NA$="":PRINT,,"ENTER THE CHARACTER'S NAME","(10 CHARACTERS MAXIMUM)" 300 GOSUB270:PRINTQ$;:IFQ$>CHR$(31)THENNA$=NA$+Q$:GOTO300 305 IFQ$=CHR$(8)ANDLEN(NA$)>0THENNA$=LEFT$(NA$,LEN(NA$)-1):GOTO300 310 IFQ$<>CHR$(13)THEN300 ELSEPRINT 320 IF LEN(NA$)>10 THEN 290 330 TN$=LEFT$(NA$,8):TE$="CHR":CM=1:GOSUB1100:RETURN 340 IF RP=1 THEN PRINT"THE CHARACTER ALREADY EXISTS","ABORT CREATE (Y/N)":GOSUB270:IF Q$="Y"THEN PRINT"YES":GOTO120 ELSE PRINT"NO":GOTO290 350 CLS:PRINT"PRESS NUMBER OF ROLL TO ACCEPT":PRINT@35,Q1$:EP=0:G=0:RN=0:FORQ=0TO5:P(Q)=0:NEXT:FORQ=0TO3:S(Q)=0:NEXT 360 FORQ=0TO6:PRINTUSING"#";Q+1;:PRINT") "; 370 FORQ2=0TO11:CC(Q2)=0:NEXT:FORQ1=0TO5:TEMP(Q,Q1)=FND(Q1):PRINTUSING"####";TEMP(Q,Q1);:NEXTQ1:PRINT:NEXTQ 380 GOSUB270:IFQ$<"1"ORQ$>"7"THEN380 390 FORQ=0TO5:C(Q)=TEMP(VAL(Q$)-1,Q):NEXT 400 PRINT"CHARACTER TYPE",,"(M)AGE, (C)LERIC, OR (W)ARRIOR":GOSUB270 410 CT=-1-(Q$="M")-2*(Q$="C")-3*(Q$="W"):IF CT<0 THEN 400 420 HP=RND(2)+4+2*CT:L=1:HC=HP:X=0:Y=0:Z=0:MZ$="" 430 S(0)=1.5:S(1)=-.5*(CT=0):S(2)=.5*(CT=1):S(3)=-.5:FORQ=0TO3:S(Q)=INT(S(Q)+L*(.5-.25*(C(5)>15))+10*(CT=2)):NEXT:GOTO620 440 PRINT"ENTER CHARACTER TYPE","(M)AGE, (C)LERIC, OR (W)WARRIOR":GOSUB270:CP=-1-(Q$="C")-2*(Q$="W")-3*(Q$="M"):IF CP<0 THEN 440 450 PRINT"ENTER LEVEL ";:N$="" 460 GOSUB270:PRINTQ$;:IFQ$>CHR$(31)THENN$=N$+Q$:GOTO460 465 IFQ$=CHR$(8)ANDLEN(N$)>0THENN$=LEFT$(N$,LEN(N$)-1):GOTO460 470 IFQ$<>CHR$(13)THEN460ELSE N=VAL(N$):PRINT"POINTS FOR LEVEL"N,"ARE"INT(FNP(N)):RETURN 480 OPEN"O",1,LEFT$(NA$,8)+".CHR":WRITE#1,NA$,MZ$,X,Y,Z,CT,L,HP,HC,EP,G,RN:FORQ=0TO5:WRITE#1,P(Q),C(Q):NEXT:FORQ=0TO3:WRITE#1,S(Q):NEXT:FORQ=0TO11:WRITE#1,CC(Q):NEXT:CLOSE1:RETURN 490 PRINT"INVENTORY:"NA$" THE "CT$(CT):PRINT"LEVEL"L,,"HIT POINTS"HC,"EP'S"EP,"GOLD"G:IFRN=1THENPRINT"YOU HAVE THE RING!" 500 FORQ=3TO5:PRINTT$(Q)"+"P(Q-3);:NEXT:PRINT 510 IFCT>0THENPRINTT$(6)"+"P(3) 520 PRINTT$(CT+12)" ARMOR+"P(4),T$(CT)"+"P(5) 530 IFCT<2THENFORQ=0TO3:PRINT"SPELLS LEVEL"Q+1"=";-S(Q)*(S(Q)>0):NEXT 540 PRINTQ1$:FORQ=0TO5:PRINTUSING"####";C(Q);:NEXT:PRINT"" 550 IF MZ$<>"" THEN PRINTNA$" IS IN DUNGEON "MZ$ 560 PRINT 570 RETURN 580 'RECALL 590 PRINT"RECALL A CHARACTER":GOSUB290 600 IF RP=0THENPRINT"CHARACTER DOES NOT EXIST":GOSUB850:IFRP=2THEN590ELSERETURN 610 GOSUB750 620 PRINT"DO YOU WISH TO SEE AN INVENTORY OF THIS CHARACTER (Y/N)":GOSUB270 630 IF Q$="Y" GOSUB490:PRINT"PRESS ANY KEY TO CONTINUE":GOSUB270 640 IF MZ$<>""THEN710 650 TN$="":PRINT"ENTER THE NAME OF THE DUNGEON","YOU WISH TO ENTER","(8 CHARACTERS MAXIMUM)" 660 GOSUB270:IF Q$<>CHR$(13)THENPRINTQ$;:TN$=TN$+Q$:GOTO660ELSEPRINT 670 IF LEN(TN$)>8THEN650 680 TE$="DAT":CM=1:GOSUB1100 690 IFRP=0THENPRINT"DUNGEON "TN$" DOES","NOT EXIST":CM=0:GOSUB1070:GOTO650 700 MZ$=TN$:GOSUB480 710 RENAME LEFT$(NA$,8)+".CHR" TO "^IN^USE^.CHT" 720 MZ$=MZ$+".DAT":LOADM MZ$ 730 RUN"MORIA 740 ' 750 OPEN"I",1,LEFT$(NA$,8)+".CHR":INPUT#1,NA$,MZ$,X,Y,Z,CT,L,HP,HC,EP,G,RN 760 FORQ=0TO5:INPUT#1,P(Q),C(Q):NEXT 770 FORQ=0TO3:INPUT#1,S(Q):NEXT 780 FORQ=0TO11:INPUT#1,CC(Q):NEXT:CLOSE#1:RETURN 790 'INVENTORY OF A CHARACTER 800 GOSUB290 810 IF RP=0THENPRINT"CHARACTER DOES NOT EXIST":GOSUB850:IFRP=2THEN800ELSERETURN 820 GOSUB750:GOSUB490:RETURN 830 ' 840 'LIST AVAIL CHARACTERS 850 TE$="CHR":CM=0:GOSUB1070:RETURN 860 ' 870 'LIST AVAIL DUNGEONS 880 TE$="DAT":CM=0:GOSUB1070:RETURN 890 ' 900 'RUN INSYTRUCTIONS PROGRAM WHICH RETURNS TO CONTROL 910 RUN"INSTR 920 ' 930 PRINT"DELETE WHICH CHARACTER?":GOSUB290 940 IFRP=0THENPRINT"CHARACTER DOES NOT EXIST":GOSUB850:IF RP=2THEN930ELSERETURN 950 PRINT"ARE YOU SURE (Y/N)?":GOSUB270 960 IF Q$="Y"THEN KILL LEFT$(NA$,8)+".CHR" 970 RETURN 980 ' 990 PRINT"GENERATING A NEW RANDOM MAZE","TAKES CONSIDERABLE TIME. WHILE THE PROGRAM RUNS IT WILL","SHOW WHAT FLOOR IT IS ON AND HOWMANY ROOMS IT HAS CREATED" 1000 PRINT,,"DO YOU WISH TO CONTINUE (Y/N)":GOSUB270 1010 IF Q$="Y" THEN RUN "DND-GEN 1020 RETURN 1030 ' 1040 'QUIT 1050 END 1060 'SUBROUTINE SCANS DISK DIRECTRORY FOR FILE OF TYPE TN$=TARGET NAME TE$=TARGET EXTENSION 1070 A$="DUNGEON":IF TE$="CHR" THEN A$="CHARACTER" 1080 PRINT"AVAILABLE "A$"S ARE:" 1090 PRINTSTRING$(31,"-") 1100 RP=0 1110 FOR X2=3 TO 11 1120 DSKI$ 0,17,X2,A$,B$ 1130 A$=A$+LEFT$(B$,127) 1140 FOR N=0 TO 7 1150 NM$=MID$(A$,N*32+1,8) 1160 ET$=MID$(A$,N*32+9,3) 1170 IF CM=1 OR ET$<>TE$ OR LEFT$(NM$,1)=CHR$(0) THEN 1240 1180 IF TE$="DAT" THEN PRINTNM$:GOTO 1270 1190 OPEN "I",1,NM$+".CHR" 1200 INPUT#1,NA$,MZ$,X,Y,Z,CT,L,HP 1210 PRINTNA$" THE "CT$(CT):RP=2 1220 PRINT"LEVEL"L,HP"HIT POINTS":IF MZ$<>""THENPRINT"IN DUNGEON "MZ$ 1230 PRINTSTRING$(31,"-") 1240 IF CM=1 AND NM$=LEFT$(TN$+" ",8) AND ET$=TE$ THEN RP=1:X2=11:N=7 1250 IF LEFT$(NM$,1)=CHR$(255) THEN X2=11:N=7 1260 CLOSE 1270 NEXT N,X2 1280 RETURN 220 PRINT"LEVEL"L,HP"HIT POINTS":IF MZ$<>""THENPRINT"IN DUNGEON "MZ$ 1230 PRINTSTRI@P섷큷ތ&9@ 00120 LDX #$8000 00130 MOVE LDD ,X 00140 STA $0FFDF 00150 STD ,X++ 00160 STA $0FFDE 00170 CMPX #$0FEFE 00180 LBNE MOVE 00190 STA $0FFDF 00200 ANDCC #$0AF 00210 RTS 00220 END START D 1 CLEAR200:CLS:PRINTTAB(10);"DND-GEN V1" 2 'FOR COCO1 10 INPUT"NAME OF DUNGEON";MZ$:IFLEN(MZ$)>8THENPRINT"8 CHAR MAX":GOTO10 20 CU=RND(-TIMER):MZ$=MZ$+".DAT" 50 C9=57358 60 N=15:M=15 70 EX=RND(15)-1:EY=RND(15)-1 80 XD=RND(15)-1:YD=RND(15)-1:ZD=RND(3)+17 90 POKE57353,EX+1:POKE57354,15-EY:POKE57355,XD+1:POKE57356,15-YD:POKE57358,ZD 100 DIMA(N-1,M-1),F(3*(M+N),1),SO(14,14),SN(14,14) 110 FORL=1TO20 120 C=0:PRINT@203," "; 130 POKE65497,0 140 FORQQ=0TO14:FORQW=0TO14:A(QW,QQ)=0:NEXTQW,QQ 150 CU=0:A=-99 160 X=RND(N)-1:Y=RND(M)-1 170 X1=X:Y1=Y:A(X,Y)=16 180 GOSUB610 190 A=RND(CU)-1 200 MD=CU:CU=A 210 X1=F(A,0):Y1=F(A,1) 220 B1=RND(4) 230 FORBT=B1 TO B1+3:B=BT+4*(BT>4):X2=(B=4)-(B=2):Y2=(B=1)-(B=3) 240 IFX1+X2<0ORX1+X2>N-1ORY1+Y2<0ORY1+Y2>M-1THEN NEXTBT 250 IFA(X1+X2,Y1+Y2)<1THEN NEXTBT 260 A(X1,Y1)=INT(2^(B-1)) 270 B=B+2:B=B+4*(B>4):A(X1+X2,Y1+Y2)=A(X1+X2,Y1+Y2)+INT(2^(B-1)) 280 C=C+1:PRINT@203,L;C;:IFC=INT(N*M-1)THEN310 290 GOSUB610 300 GOTO190 310 A(X,Y)=A(X,Y)-16 320 'POKE65496,0 330 X1=RND(15)-1:Y1=RND(15)-1:IFL=1ANDX1=EX ANDY1=EY THEN330 340 IFL=ZD AND X1=XD ANDY1=YD THEN330 350 FORD=0TO14:FORD1=0TO14:SO(D1,D)=SN(D1,D):NEXTD1,D 360 FORY=14TO0STEP-1:FORX=0TO14 370 C=A(X,Y) AND 3 380 CN=-((C AND 1)=0) 390 CE=-(SGN(C AND 2)=0) 400 IF RND(5)=1 AND Y>0 THENCN=RND(5)-2:CN=CN-(CN<0) 410 IFRND(5)=1 AND X<14 THENCE=RND(5)-2:CE=CE-(CE<0) 420 C=CN+4*CE 430 OB=0:IFRND(11-L/3.5)>1THEN470 440 OB=RND(14) 445 IF OB=4 AND(RND(3)=1 OR L<3) THEN440 450 IF OB=8AND(X<>X1 ORY<>Y1)THEN440 460 IFOB>3ANDSO(X,Y)=1ANDRND(3)>1THENOB=RND(3) 470 IFL=1GOSUB565 480 IFX=X1 ANDY=Y1 THEN OB=8:GOTO510 490 IFOB>0ANDOB<4THENSN(X,Y)=1 500 IFL=ZD GOSUB590 510 C=C+16*OB 520 POKEC9,C:C9=C9+1 530 NEXT X,Y 550 NEXTL 555 POKE65496,0 560 SAVEM MZ$,57353,61877,57353:RUN"CONTROL 565 IFOB>0ANDOB<4THENOB=RND(10)+4 570 IF X=EX AND Y=EY THEN OB=RND(2)*2-1 580 RETURN 590 IFX=XD AND Y=YD THEN OB=15 600 RETURN 610 Y2=0:FORX2=-1TO1STEP2:GOSUB690:NEXT 620 X2=0:FORY2=-1TO1STEP2:GOSUB690:NEXT 630 IFCU<>A THEN680 640 CU=MD 650 F(A,0)=F(CU-1,0):F(A,1)=F(CU-1,1) 660 CU=CU-1 680 RETURN 690 IFX1+X2<0ORX1+X2>N-1THEN740 700 IFY1+Y2<0ORY1+Y2>M-1THEN740 710 IFA(X1+X2,Y1+Y2)<>0THEN740 720 A(X1+X2,Y1+Y2)=-1:F(CU,0)=X1+X2:F(CU,1)=Y1+Y2 730 IFCU=A THEN CU=MD ELSE CU=CU+1 740 RETURN =MD 650 F(A,0)=F(CU-1,0):F(A,1)=F(CU-1,1) 660 CU=C 10 'INTRO 20 ' 30 'PUTS SYSTEM IN RAM MODE 40 'AND CLEARS TO PCLEAR 0 45 'USES ONLY 1 BUFFER 50 LOADM"MOVE" 60 EXEC 70 POKE25,14 80 POKE3584,0 85 FILES 1,256 90 'NEXT LINE COULD BE RUN"FILE- 100 'NAME" TO LINK TO NEW FILE 110 NEW 1 CLS:PRINT" DUNGEON MASTER",,," BY GREG OLSON"," COPYRIGHT 1984" 2 DIM CO$(15),W$(3),WN$(3),WE$(3):FORX=0TO15:READCO$(X):NEXT:FORX=0TO3:READW$(X):NEXT 3 DATA ' ' NOTHING,'U/ ' STAIRWAY UP,'D/ ' STAIRWAY DOWN,'U/D' STAIRWAY UP AND DOWN,'TPT' TELEPORT,'TRP' TRAP DOOR,'THR' THRONE,'TVR' THRONE VAULT RESERVE,'EXC' EXCELLSIOR TRANSPORTER,'FNT' FOUNTAIN 4 DATA 'ELV' ELEVATOR,'PIT' PIT,'MIR' MIRROR,'STA' STATUE,'ALT' ALTAR,'DRK' DARK ONE,OPEN,ROCK,SECRET DOOR,DOOR 5 FOR X=0 TO 3:READ WN$(X),WE$(X):NEXT 6 DATA " "," ","---","C","-=-",":","-^-",">" 7 WE$(1)=CHR$(124) 10 FORX=1TO300:NEXT 20 CLS:PRINT"(1) LOAD EXISTING DUNGEON","(2) CREATE NEW DUNGEON" 30 GOSUB9999:IF A$<"1"ORA$>"2"THEN30 40 PRINT,,"ENTER THE NAME OF "; 50 IF A$="1" THENPRINT"AN EXISTING"ELSEPRINT"THE NEW" 60 INPUT"DUNGEON (8 CHAR MAX)";MZN$ 70 IF LEN(MZN$)<1ORLEN(MZN$)>8THEN40 80 IF A$="2"THENPRINT,,"INITIALIZING...PLEASE WAIT":FORCC=57353 TO 61877:POKECC,0:NEXT:GOSUB10000ELSELOADM MZN$+".DAT" 90 CLS:PRINT"(1) EDIT ROOMS"," (2) LIST ROOMS","(3) PRINT FLOORS (4) QUIT" 100 GOSUB9999:IFA$<"1"ORA$>"4"THEN100 120 ON VAL(A$) GOSUB 150,700,800, 130 GOTO 90 140 'EDIT ROOMS 150 CLS:PRINT"EDIT ROOMS",, 160 GOSUB10510 'STARTING AT, ENDING AT ROUTINE 170 FOR NN=ST TO EN 180 GOSUB 12010 'LIST CONTENTS OF ROOM SUBROUTINE 190 PRINT"O.K.(Y/N)?" 200 GOSUB9999 210 IF A$<>"N"THEN650 220 PRINT"NORTH WALL IS ";W$(N) 230 GOSUB13010 'ROOM CHANGE SUBROUTINE 240 IF RN=4 THEN R1=N ELSE R1=RN 260 PRINT"EAST WALL IS ";W$(E) 270 GOSUB 13010 280 IF RN=4 THEN R2=E ELSE R2=RN 290 PRINT"ROOM CONTAINS",,CO$(CO) 300 PRINT"CHANGE?" 310 GOSUB9999 320 IF A$<>"Y" AND A$<>"C"THENC1=CO:GOTO 600 330 INPUT"ENTER A NUMBER 0 TO 15";C1 350 IF C1<0 OR C1>15 THENFORV=0TO 15:PRINTV"=";CO$(V):NEXT:GOTO330 370 IFC1<>8THEN510 380 Q=FL*226+57357:XT=INT(PEEK(Q)/16):YT=PEEK(Q)AND15 390 IFPEEK(Q)=9 OR (Y=YT AND X=XT) THEN 600 400 PRINT,,"WARNING! THERE ALREADY IS AN","'EXC' ON THIS FLOOR AT",XT","YT 410 PRINT"IF YOU ADD THIS NEW ONE THE OLD ONE WILL 'TRANSMIT' ONLY" 420 PRINT"IS THIS ACCEPTABLE?" 430 GOSUB9999 440 IF A$<>"Y"THEN290 445 PRINT"DO YOU WISH THE PREVIOUS 'EXC","TO BE BLANKED OUT (Y/N)?" 450 GOSUB9999 460 IF A$<>"Y" THENPRINT"THE PREVIOUS 'EXC' WILL BECOME TRANSMIT ONLY.":GOTO 600 470 CN=FL*226+XT+15*YT+57116 480 POKECN,PEEK(CN)AND15 490 PRINT"PREVIOUS 'EXC' LOCATION NOW A","BLANK ROOM" 500 GOTO 600 510 IF C1<>15 OR PEEK(57357)=0 THEN 600 520 IF X=PEEK(57355)ANDY=PEEK(57356)ANDFL=PEEK(57357)THEN600 530 PRINT"THE DARK ONE WAS PREVIOUSLY","PLACED AT LEVEL"PEEK(57357),"X="PEEK(57355)",Y="PEEK(57356) 540 PRINT"DO YOU WISH TO MOVE HIM (Y/N)?" 550 GOSUB9999 560 IF A$<>"Y" THEN290 570 PRINT"THE OLD LOCATION OF THE DARK ONEWILL BE BLANKED OUT" 580 CN=PEEK(57357)*226+PEEK(57356)*15+PEEK(57355)+57116:POKECN,PEEK(CN)AND15 590 POKE57355,X:POKE57356,Y:POKE57357,FL 600 POKEFL*226+NN+57131,C1*16+R2*4+R1 601 IFFL>1OR(C1<>1ANDC1<>3)THEN610 602 IF X=PEEK(57353)ANDY=PEEK(57354)THEN610 603 PRINT"DO YOU WISH THIS STAIRWAY TO BE THE ENTRANCE?" 604 GOSUB9999:IFA$="N"THENPRINT"YOU MUST HAVE AN ENTRANCE":GOTO610 605 PRINTX","Y" WILL BE THE ENTRANCE":POKE57353,X:POKE57354,Y 610 GOSUB12010 'LIST ROOM CONTENTS SUBROUTINE 620 PRINT"O.K. (Y/N OR 'A' TO ABORT)?" 630 GOSUB9999 635 IF A$="A"THENNN=EN:GOTO 650 640 IF A$="N"THEN220 650 NEXTNN 690 'LIST ROOMS 700 GOSUB 10510 'STARTING AT, ENDING AT 710 FOR NN=ST TO EN 720 GOSUB 12010 ' LIST ROOMS 730 PRINT"PRESS ANY KEY TO CONTINUE (A TO ABORT)" 740 GOSUB9999:IF A$="A"THEN NN=EN 750 NEXTNN 760 RETURN 790 'PRINT FLOOR ON PRINTER ROUTINE 800 CLS:INPUT"PRINT FROM LEVEL 'N' TO LEVEL 'M'";N,M 810 IF N<1 OR N>20 OR M<1 OR M>20 OR N>M THENPRINT"ABORTING!",,"PRESS ANY KEY":GOSUB9999:RETURN 820 PRINT"SET PRINTER TO TOP OF PAGE,","PRESS A KEY WHEN READY" 830 GOSUB 9999 840 FOR FL=N TO M 850 PRINT#-2:PRINT#-2 860 PRINT#-2,TAB(30)"DUNGEON ";MZN$ 870 PRINT#-2,TAB(35)"LEVEL ";FL 880 FORX=1TO3:PRINT#-2:NEXTX 890 GOSUB1260 'PRINT INDEX 900 FOR Y=15 TO 1 STEP -1 910 PRINT#-2," +"; 920 FOR X=1 TO 15 930 GOSUB1280 'RETURNS 'N' 940 PRINT#-2,USING"% %!";WN$(N AND 3),"+"; 950 NEXT X 960 PRINT#-2 970 PRINT#-2, USING"##!";Y,CHR$(124); 980 FOR X=1 TO 15 990 GOSUB 1280 'RETURNS 'N' 1000 PRINT#-2,USING"% %!";MID$(CO$(INT(N/16)),2,3),WE$(INT((N AND 12)/4)); 1010 NEXT X 1020 PRINT#-2,USING"##";Y 1030 NEXT Y 1040 PRINT#-2," +"; 1050 FOR X=1 TO 15:PRINT#-2,"---+";:NEXT:PRINT#-2 1060 GOSUB1260 'PRINT INDEX 1070 FOR X=1 TO 3:PRINT#-2:NEXT 1080 PRINT#-2,TAB(30)"ROOM CONTENTS CODES" 1090 PRINT#-2,STRING$(79,"-") 1100 FOR X=0 TO 5 1110 FOR Y=0 TO 2 1120 PRINT#-2,TAB(Y*26);CO$(X*3+Y); 1125 IF X=5 AND Y=0 THEN Y=2 1130 NEXT Y 1140 PRINT#-2 1150 NEXT X 1160 PRINT#-2:PRINT#-2 1170 PRINT#-2,TAB(10);"HORIZONTAL WALLS";TAB(50);"VERTICAL WALLS" 1180 PRINT#-2,STRING$(79,"-") 1190 FOR X=0 TO 3 1200 PRINT#-2,TAB(10);"'";WN$(X);"'";"<==>";W$(X); 1210 PRINT#-2,TAB(50);"'";WE$(X);"'";"<==>";W$(X) 1220 NEXT X 1230 FOR X=1 TO 7:PRINT#-2:NEXTX 1235 NEXT FL 1240 RETURN 1250 'PRINT INDEX 1260 PRINT#-2," ";:FORX=1TO15:PRINT#-2,USING"###!";X," ";:NEXT:PRINT#-2:RETURN 1270 'RETURN 'N'= VALUE OF ROOM 1280 N=PEEK(FL*226+15*Y+X+57116):RETURN 1300 'QUIT 1310 CLS:PRINT"QUIT",,"CHECKING DUNGEON","PLEASE WAIT" 1320 GOSUB 10000 1330 IF PEEK(57355)+PEEK(57356)+PEEK(57357)=0THENPRINT"THE DARK ONE IS NOT IN THIS","DUNGEON" 1340 FOR FL=1 TO 20 1350 IF PEEK(FL*226+57357)=0THENPRINT"FLOOR"FL" DOES NOT HAVE","AN 'EXC'" 1360 NEXT 1370 PRINT"SAVE THIS DUNGEON?" 1380 GOSUB 9999 1390 IF A$<>"Y" AND A$<>"N" THEN 1380 1400 IF A$="N" THEN END 1410 PRINT"UNDER THE SAME NAME",MZN$"?" 1420 GOSUB 9999 1430 IF A$<>"Y" AND A$<>"N" THEN 1420 1440 IF A$="Y" THEN1470 1450 INPUT"ENTER NEW NAME";MZN$ 1460 IF LEN(MZN$)<1 OR LEN(MZN$)>8 THEN 1450 1470 VERIFY ON 1480 SAVEM MZN$+".DAT",57353,61877,57353 1490 PRINT"SAVED AS "MZN$ 1500 END 9999 A$=INKEY$:IFA$=""THEN9999ELSERETURN 10000 FORZ=1TO20 10010 FORX=1TO15 10020 NN=226*Z+X+57341 10030 POKENN,PEEK(NN)AND253 10040 NEXTX 10050 FORY=1TO15 10060 NN=226*Z+15*Y+57131 10070 POKENN,PEEK(NN)AND247 10080 NEXTY 10090 NEXTZ 10100 RETURN 10500 'ENTER START, END ROOM NUMBERS 10510 INPUT"WHAT FLOOR (0 TO ABORT";FL 10520 IF FL<0 OR FL>20 THEN 10510 10530 IF FL=0 THEN RETURN 10540 INPUT"STARTING AT ROOM 'X:Y' OR '#' ";RM$ 10550 GOSUB 11010:IF RM=0 THEN 10540 ELSE ST=RM 10560 INPUT"ENDING AT ROOM 'X:Y' OR '#' ";RM$ 10570 GOSUB 11010:IF RM>ST THEN EN=RM:RETURN 10580 PRINT"END EQUALS START?" 10590 GOSUB9999 10600 IF A$<>"Y"AND A$<>"N"THEN10590 10610 IF A$="Y"THEN EN=ST ELSE 10560 10620 RETURN 11000 'TRANSLATES STRING INTO A ROOM # 11010 LC=INSTR(1,RM$,":") 11020 IF LC=0 THEN RM=VAL(RM$):GOTO 11040 11030 RM=VAL(LEFT$(RM$,LC-1))+15*(VAL(MID$(RM$,LC+1))-1) 11040 IF RM>0 AND RM<226 THEN RETURN 11050 PRINT"BAD ROOM LOCATION","1 <= X <= 15, AND 1 <= Y <= 15","OR 1 <= ROOM # <= 225" 11060 RM=0:RETURN 12000 'LIST ROOM CONTENTS SUBROUTINE 12010 Y=INT(NN/15.05)+1:X=NN-15*(Y-1) 12020 CLS:PRINT"CONTENTS OF ROOM AT","Z="FL;"X="X;"Y="Y 12030 PRINT"ROOM #";NN 12040 CC=PEEK(FL*226+NN+57131) 12050 N=CC AND 3:E=INT((CC AND 12)/4):CO=INT(CC/16) 12060 PRINT"NORTH WALL=";W$(N) 12070 PRINT"EAST WALL=";W$(E) 12080 PRINTSTRING$(32,"-");"ROOM CONTAINS:",CO$(CO) 12090 RETURN 13000 'ROOM CHANGE SUBROUTINE 13010 PRINT"CHANGE (Y/N)?" 13020 GOSUB9999 13030 IF A$<>"Y" AND A$<>"C" THEN RN=4:RETURN 13040 PRINT"0, 1, 2, OR 3?" 13050 GOSUB 9999 13060 IF A$<"0" OR A$>"3" THEN FOR V=0TO3:PRINTV"="W$(V):NEXT:GOTO13040 13070 RN=VAL(A$):RETURN 0 'ROOM CHANGE SUBROUTINE 13010 PRINT"CHANGE (Y/N)?" 13020 GOSUB9999 13030 IF A$<>"Y" AND A$<>"C" THEN RN=4:RETURN 13040 PRINT"0, 1, 2, OR 3?" 13050 GOSUB 9999 13060 IF A$<"0" OR A$>"3" THEN FOR V=0TO3:PRINTV"="W$(V):NEXT:GOTO13040 13070