0 GOSUB2600:CLEAR650:DIMA$(15),B$(15),C$(15),D$(24),E$(24),I$(27),D(20,20,2):GOTO900
1 O=0:GOSUB100:O=5:GOSUB100:O=9:GOSUB100:O=14:GOSUB100:RETURN
2 GOSUB170:GOSUB150:O=14:GOSUB100:RETURN
3 GOSUB110:O=6:GOSUB100:O=7:GOSUB100:O=14:GOSUB100:RETURN
4 GOSUB110:GOSUB150:O=14:GOSUB100:RETURN
5 O=0:GOSUB100:GOSUB160:GOSUB180:RETURN
6 GOSUB170:GOSUB130:GOSUB180:RETURN
7 GOSUB110:GOSUB160:GOSUB180:RETURN
8 GOSUB110:GOSUB130:GOSUB180:RETURN
9 O=0:GOSUB100:O=6:GOSUB100:O=7:GOSUB100:GOSUB120:RETURN
10 GOSUB170:GOSUB150:GOSUB120:RETURN
11 GOSUB110:O=6:GOSUB100:O=7:GOSUB100:GOSUB120:RETURN
12 GOSUB110:GOSUB150:GOSUB120:RETURN
13 O=0:GOSUB100:GOSUB160:GOSUB120:RETURN
14 GOSUB170:GOSUB130:GOSUB120:RETURN
15 GOSUB110:GOSUB160:GOSUB120:RETURN
16 GOSUB110:GOSUB130:GOSUB120:RETURN
17 O=0:GOSUB100:GOSUB140:O=14:GOSUB100:RETURN
18 GOSUB170:GOSUB140:O=14:GOSUB100:RETURN
20 GOSUB110:GOSUB140:O=14:GOSUB100:RETURN
21 O=0:GOSUB100:GOSUB140:GOSUB180:RETURN
22 GOSUB170:GOSUB140:GOSUB180:RETURN
24 GOSUB110:GOSUB140:GOSUB180:RETURN
25 O=0:GOSUB100:GOSUB140:GOSUB120:RETURN
26 GOSUB170:GOSUB140:GOSUB120:RETURN
28 GOSUB110:GOSUB140:GOSUB120:RETURN
29 O=0:GOSUB100:GOSUB140:GOSUB120:RETURN
30 GOSUB170:GOSUB140:GOSUB120
31 RETURN
40 FORT=320TO448STEP32:PRINT@T,L$;:NEXT:RETURN
50 J=1:K=21:GOSUB40:T=320
60 ON1-(MID$(M$,K,1)<>""ANDMID$(M$,K,1)<>" ")GOTO70:K=K-1:GOTO60
70 PRINT@T,MID$(M$,J,K-J);:T=T+32:J=K+1:K=J+20:ON1-(J>LEN(M$))GOTO60:RETURN
100 FORT=0TO9:PRINT@32*T+O,B$(0);:NEXT:RETURN
110 PRINT@0,"";:PRINT@32,"";:PRINT@64,"";:PRINT@96,"";:PRINT@128,"";
115 PRINT@160,"";:PRINT@192,"";:PRINT@224,"";:PRINT@256,"";:PRINT@288,"";:RETURN
120 PRINT@14,"";:PRINT@46,"";:PRINT@78,"";:PRINT@110,"";:PRINT@142,"";
125 PRINT@174,"";:PRINT@206,"";:PRINT@238,"";:PRINT@270,"";:PRINT@302,"";:RETURN
130 PRINT@6,A$(0);:PRINT@38,A$(0);:PRINT@70,"";:PRINT@102,"";:PRINT@134,"";:PRINT@166,"";
135 PRINT@198,"";:PRINT@230,A$(0);:PRINT@262,A$(0);:PRINT@294,A$(0);:RETURN
140 PRINT@6,A$(0);:PRINT@38,A$(0);:PRINT@70,D$(0);:PRINT@102,D$(0);:PRINT@134,D$(0);:PRINT@166,D$(0);:PRINT@198,D$(0);
145 PRINT@230,"";:PRINT@262,A$(0);:PRINT@294,A$(0);:RETURN
150 PRINT@6,A$(0);:PRINT@38,A$(0);:PRINT@70,"";:PRINT@102,"";:PRINT@134,"";:PRINT@166,"";
155 PRINT@198,"";:PRINT@230,A$(0);:PRINT@262,A$(0);:PRINT@294,A$(0);:RETURN
160 PRINT@6,A$(0);:PRINT@38,A$(0);:PRINT@70,"";:PRINT@102,"";:PRINT@134,"";:PRINT@166,"";
165 PRINT@198,"";:PRINT@230,A$(0);:PRINT@262,A$(0);:PRINT@294,A$(0);:RETURN
170 PRINT@0,C$(0);:PRINT@32,C$(0);:PRINT@64,"";:PRINT@96,"";:PRINT@128,"";
175 PRINT@160,"";:PRINT@192,"";:PRINT@224,"";:PRINT@256,C$(0);:PRINT@288,C$(0);:RETURN
180 PRINT@14,B$(0);:PRINT@46,B$(0);:PRINT@78,"";:PRINT@110,"";:PRINT@142,"";:PRINT@174,"";
185 PRINT@206,"";:PRINT@238,"";:PRINT@270,B$(0);:PRINT@302,B$(0);:RETURN
200 CLS1:FORA=1TO20:FORB=1TO20:OND(A,B,L)+2GOTO210,230,230:SET(A+42,B,1):NEXT:NEXT:RETURN
210 RESET(42+A,B):NEXT:NEXT:RETURN
230 SET(A+42,B,1):NEXT:NEXT:RETURN
250 N=INT(C*100-INT(C)*100):RETURN
300 M$="YOU SEE SOMETHING. ":GOSUB50:PRINT@202,CHR$(140+(I(S,3)-1)*16);:RETURN
310 ONRND(10)GOTO31:M$="YOU SEE A SHADOWY FIGURE. ":GOSUB50:PRINT@137,CHR$(135+(I(S,3)-1)*16)+CHR$(130+(I(S,3)-1)*16);
312 PRINT@169,CHR$(134+(I(S,3)-1)*16)+CHR$(130+(I(S,3)-1)*16);:RETURN 
330 M$="IT'S A "+I$(M)+". ":GOSUB50:PRINT@480,L$"uSE WEAPON OR mAGIC?";
335 PRINT@135,A$(M-3);:PRINT@167,B$(M-3);:PRINT@199,C$(M-3);:PRINT@231,D$(M-3);:PRINT@263,E$(M-3);:RETURN
340 PRINT@265,D$(M-3);:PRINT@297,E$(M-3);:C=M:GOSUB250:M$="YOU FOUND A "+I$(M)+". "
345 ONM-18GOSUB390,410,410,420,410,430,450,440,440:GOSUB50:RETURN
350 FORT=8TO9:PRINT@32*T+9,CHR$(206)CHR$(205);:NEXT:GOTO365
360 FORT=0TO8:PRINT@32*T+9,CHR$(206)CHR$(205);:NEXT
365 PRINT@480,L$"GO";I$(M);" LADDER?";:RETURN
370 PRINT@480,L$;"USE bOW OR mAGIC?";:RETURN
380 M$=M$+"YUM, VENISON!":N=5+RND(5)
390 D(0,0,0)=D(0,0,0)+N:ON1-(D(0,0,0)>100)GOTO460:D(0,0,0)=100:GOTO460
410 IFM>D(0,8,0)THENR=D(0,8,0):D(0,8,0)=M:D(X,Y,L)=R
412 M$=M$+"YOU HAVE:":GOSUB418:FORT=6TO8:IFD(0,T,0)>1THENC=D(0,T,0):GOSUB250:M$=M$+STR$(N)+" "+I$(D(0,T,0))
414 NEXT:C=D(0,6,0):GOSUB250:D(0,1,0)=N:RETURN
418 FORR=1TO3:FORT=6TO8:IFD(0,T,0)<D(0,T+1,0)THENQ=D(0,T,0):D(0,T,0)=D(0,T+1,0):D(0,T+1,0)=Q
419 NEXT:NEXT:RETURN
420 IFN>D(0,2,0)THEND(0,2,0)=N:D(X,Y,L)=0:RETURN
430 D(0,3,0)=D(0,3,0)+N:GOTO460
440 D(0,5,0)=D(0,5,0)+N:GOTO460
450 D(0,4,0)=D(0,4,0)+N:IFD(0,4,0)>100THEND(0,4,0)=100
460 D(X,Y,L)=0:RETURN
470 U=2:Q=RND(6):ON1-(I$="M")GOTO474:U=4:ONSGOTO471:Q=RND(25):ON1-(Q>D(0,4,0))GOTO473:Q=D(0,4,0):GOTO473
471 PRINT@480,L$"bLAST WALL?";:GOSUB2500:ON1-(A$="B")GOTO31:ON1-(D(0,4,0)>24)GOTO31:ON1-(X+X(D)>1ANDX+X(D)<20)GOTO31
472 ON1-(Y+Y(D)>1ANDY+Y(D)<19)GOTO31:D(X+X(D),Y+Y(D),L)=0:D(0,4,0)=D(0,4,0)-25:RETURN
473 D(0,4,0)=D(0,4,0)-Q:GOTO475
474 ON1-(D(0,3,0)>0)GOTO31:D(0,3,0)=D(0,3,0)-1
475 C=S:GOSUB250:H=N:FORT=19TO12STEP-1:SET(20,T,U):FORR=1TO10:NEXT:RESET(20,T):NEXT:ON1-(S>3ANDS<19)GOTO31
476 IFRND(2)=1THENGOSUB480:GOSUB2520:IFH<0THENH=1
477 D(X+X(D),Y+Y(D),L)=0:D(X,Y,L)=INT(S)+(H*.01):RETURN
480 M$="YOU ATTACK AND CAUSE"+STR$(Q)+I$(0):H=H-Q:RETURN
499 ON1-(RND(5)=1)GOTO31:N=18:C=2:GOTO510
500 ON1-(RND(5)=1)GOTO31:N=18:C=9
510 R=N+RND(C):D(X,Y,L)=R+((I(R,0)+(L*RND(I(R,1))))*.01):RETURN
520 X=RND(20):Y=RND(19):R=1-(D(X,Y,L)=0):RETURN
599 M$=M$+"YOU WIN!":Z=F:RETURN
900 DIMV(1,1,1,1,1),X(3),Y(3),N(4),I(27,3),T,A(4,3),B(4,3),X,Y,A,B,F,R,Q,D,O,Z,J,K,F(2),G(2):T=RND(-(PEEK(9)*256+PEEK(10)))
910 FORT=1TO15:READA$(T),B$(T),C$(T),D$(T),E$(T):NEXT:FORT=16TO24:READD$(T),E$(T):NEXT
920 FORT=1TO32:READN(0),N(1),N(2),N(3),N(4):V(N(0),N(1),N(2),N(3),N(4))=T:NEXT
930 FORT=1TO27:READI$(T),I(T,0),I(T,1),I(T,2),I(T,3):NEXT:FORT=1TO20:L$=L$+" ":NEXT:FORT=1TO20:L$=L$+CHR$(8):NEXT
940 X(0)=1:X(1)=0:X(2)=-1:X(3)=0:Y(0)=0:Y(1)=1:Y(2)=0:Y(3)=-1:F(0)=10:G(0)=10:B$(0)="":C$(0)=""
950 D(0,0,0)=100:D(0,1,0)=3:D(0,2,0)=0:D(0,3,0)=3:D(0,4,0)=0:D(0,5,0)=0:I$(0)=" POINTS OF DAMAGE. ":A$(0)=""
960 D$(0)="":FORY=0TO3:FORX=0TO4:READA(X,Y),B(X,Y):NEXT:NEXT:PRINT@457,"LOAD PREVIOUS?":GOSUB2500:ON1-(A$="Y")GOTO2000
970 PRINT@490,"PRESS play";:CLOAD*D,"CRAWLDAT":X=D(0,0,1):Y=D(0,1,1):L=D(0,2,1):GOTO2100
2000 FORL=0TO2
2006 CLS:PRINT"MAKING LEVEL";L+1;:FORX=2TO19:FORY=2TO18:D(X,Y,L)=0:NEXT:NEXT
2007 FORX=1TO20:D(X,1,L)=-1:D(X,19,L)=-1:NEXT:FORY=1TO19:D(1,Y,L)=-1:D(20,Y,L)=-1:NEXT
2008 FORT=1TO4:A=1+RND(13):B=1+RND(12):R=2+RND(3):FORX=ATOX+R:D(X,B,L)=1:D(X,B+R,L)=1:NEXT:FORY=BTOY+R:D(A,Y,L)=1:D(A+R,Y,L)=1
2009 NEXT:Q=INT(R/2):D(A+Q,B,L)=0:D(A+Q,B+R,L)=0:D(A,B+Q,L)=0:D(A+R,B+Q,L)=0:NEXT
2010 FORT=1TO50:D(RND(18)+1,RND(17)+1,L)=1:NEXT:X=F(L):Y=G(L):D(X,Y,L)=0:A=X:B=Y:F=1:FORT=1TO300
2030 F=F+1:ON1-(F>400)GOTO2040:T=300:NEXT:GOTO2006
2040 D=RND(4)-1:ON1-(D(X+X(D),Y+Y(D),L)=0)GOTO2030:X=X+X(D):Y=Y+Y(D)
2045 ON1-(ABS(A-X)+ABS(B-Y)<13)GOTO2050:NEXT:GOTO2006
2050 D(X,Y,L)=2:T=300:NEXT:U=X:V=Y:ONL+1GOTO2060,2060,2080
2060 F(L+1)=X:G(L+1)=Y
2080 FORT=1TO15
2082 GOSUB520:ONRGOTO2082:M=3+RND(6+(L*3)):D(X,Y,L)=M+((I(M,1)+RND(I(M,1)))*.01):NEXT:FORT=1TO10
2086 GOSUB520:ONRGOTO2086:M=15+RND(2):D(X,Y,L)=M+((I(M,1)+RND(I(M,1)))*.01):NEXT:N=18:C=7:FORT=1TO8
2088 GOSUB520:ONRGOTO2088:GOSUB510:NEXT:N=25:C=2:FORT=1TO12
2089 GOSUB520:ONRGOTO2089:GOSUB510:NEXT:NEXT
2090 D(F(0),G(0),0)=0:D(F(1),G(1),1)=3:D(F(2),G(2),2)=3:D(U,V,2)=18.5+RND(35)*.01:L=0:X=10:Y=10
2100 F=65000:D=0:GOSUB200:FORZ=1TOF:GOSUB2200
2101 FORB=Y-1TOY+1:FORA=X-1TOX+1:OND(A,B,L)+2GOTO2102,2103,2104:NEXT:NEXT:GOTO2110
2102 NEXT:NEXT:GOTO2110
2103 SET(A+42,B,1):NEXT:NEXT:GOTO2110
2104 RESET(A+42,B):D(A,B,L)=-D(A,B,L):NEXT:NEXT 
2110 I$=INKEY$:RESET(X+42,Y):SET(X+42,Y,1):IFI$=""THEN2110
2111 IFI$="P"THENPRINT@480,L$"sAVE?";:GOSUB2500:ON1-(A$="S")GOTO2115:D(0,0,1)=X:D(0,1,1)=Y:D(0,2,1)=L:CSAVE*D,"CRAWLDAT":END
2112 IFI$="D"ANDM=2THEN:L=L+1:GOSUB200
2113 IFI$="U"ANDM=3THEN:L=L-1:GOSUB200
2115 IFM>3ANDM<19THENGOSUB2400
2120 IFI$="W"THENIFABS(D(X+X(D),Y+Y(D),L))<>1THENX=X+X(D):Y=Y+Y(D):GOSUB40
2130 IFI$="A"THEND=D-1:IFD=-1THEND=3:GOSUB40
2140 IFI$="S"THEND=D+1:IFD=4THEND=0:GOSUB40
2145 IF(I$="B"ORI$="M")ANDM=0THENGOSUB470
2160 NEXT:GOSUB2200:PRINT@480,L$"PLAY AGAIN (Y/N)?";:GOSUB2500:IFA$="Y"THENRUN
2170 END
2200 S=0:M=0:FORT=0TO4:N=ABS(D(X+A(T,D),Y+B(T,D),L)):N(T)=ABS(N=1):NEXT:S=ABS(D(X+X(D),Y+Y(D),L)):M=ABS(D(X,Y,L))
2250 ONV(N(0),N(1),N(2),N(3),N(4))GOSUB1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,20,21,22,24,24,25,26,28,28,29,30,28,28
2260 ONSGOSUB31,300,300,310,310,310,310,310,310,310,310,310,310,310,310,310,310,310,300,300,300,300,300,300,300,300,300
2280 ONM+1GOSUB370,31,350,360,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,340,340,340,340,340,340,340,340,340
2300 PRINT@341,"HEALTH:";RIGHT$(" "+STR$(D(0,0,0)),3);:PRINT@373,"WEAPON:";D(0,1,0);:PRINT@405,"ARMOUR:";-D(0,2,0);
2330 PRINT@437,"ARROWS:";D(0,3,0);:PRINT@469,"MAGIC:";D(0,4,0);:PRINT@501,"GP:";D(0,5,0);:RETURN
2400 C=M:GOSUB250:H=N:ON1-(I$<>"M")GOTO2490:ON1-(I$="U"ORI$=" ")GOTO2440:Q=RND(D(0,1,0))
2415 GOSUB480:D(X,Y,L)=INT(M)+(H*.01)
2420 IFH<1THENM$=M$+"YOU KILLED THE "+I$(M)+". ":D(X,Y,L)=0:ONM-3GOSUB500,500,500,500,500,500,500,500,31,500,500,31,380,499,599
2425 GOSUB2520:ON1-(RND(15)=1ANDD(0,6,0)>3ANDI$<>"M")GOTO2430:M$="YOUR WEAPON BROKE! ":D(0,6,0)=.03:GOSUB412:GOSUB2520
2430 ON1-(H<1)GOTO2440:RETURN
2440 Q=RND(I(M,0))-D(0,2,0):R=Q*ABS(Q>0):M$="THE "+I$(M)+" ATTACKS CAUSING"+STR$(R)+I$(0)
2450 D(0,0,0)=D(0,0,0)-R:IFD(0,0,0)<1THENM$=M$+"YOU'RE DEAD.":Z=F
2455 IFI$="W"THENIFRND(10)<I(M,2)THENIFD(X+X(D),Y+Y(D),L)=0THEND(X+X(D),Y+Y(D),L)=D(X,Y,L):D(X,Y,L)=0
2470 GOSUB2520:RETURN
2490 Q=RND(25):ON1-(Q>D(0,4,0))GOTO2495:Q=D(0,4,0)
2495 D(0,4,0)=D(0,4,0)-Q:GOTO2415
2500 A$=INKEY$:ON1-(A$<>"")GOTO2500:RETURN
2520 GOSUB50:PRINT@480,L$"HIT A KEY";:GOSUB2500:GOSUB40:RETURN
2600 CLS:PRINT@9,"DUNGEON CRAWL":PRINT@41,"BY JIM GERRIE":PRINT@68,"FOR RETROSPECTIVA 2012"
2610 PRINT@128,"YOUR PEACE-LOVING COMMUNITY IS  BEING RAVAGED BY THE DENIZENS   OF A PIT FIEND WHO HAS TAKEN UP"
2640 PRINT"RESIDENCE AT THE BOTTOM OF A    NEARBY DUNGEON. HE HAS BEWITCHEDA RANGE OF CREATURES, INCLUDING"
2670 PRINT"PRIOR UNWARY ADVENTURERS. YOU   MUST SEARCH HIS 3 LEVEL LAIR ANDDEFEAT HIM!":RETURN
8000 DATA"","","","߀","Հ","","","","","","","",""
8001 DATA"","","","","","","","̀","΀","","","ʀ",""
8002 DATA"","","","","ˀ","π","","","","","","",""
8003 DATA"","","","","","","","","","","","",""
8004 DATA"","","","Ҁ","","","ڀ","","","","","",""
8005 DATA"","","","","","","","","",""
8100 DATA"","","","","","Ā","","","","","","","","","","","",""
9000 DATA0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1
9010 DATA0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,1,1
9020 DATA0,1,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1
9100 DATA"WALL",100,0,0,6," dOWN",0,0,0,6," uP",0,0,0,6,"FIGHTER",8,8,4,3,"MAGIC USER",12,4,2,4,"RANGER",9,6,5,1,"HOBGOBLIN"
9146 DATA10,9,5,3,"SKELETON",11,10,2,5,"BEHOLDER",12,11,2,7,"OGRE",13,12,3,1,"BLOODHULK",15,13,5,7,"GHOST",14,14,2,5
9200 DATA"SPIDER",16,17,5,8,"GRIFFON",19,16,5,8,"PHANTOM",18,17,5,6,"DEER",2,1,0,8,"STIRGE",6,3,9,1,"PIT FIEND",30,0,8,1
9300 DATA"HEALING POTION",12,12,2,6,"DAGGER",4,1,5,6,"SWORD",6,2,2,6,"SHIELD",2,1,2,6,"WAR HAMMER",8,3,2,6
9310 DATA"BUNCH OF ARROWS",3,3,2,6,"MAGIC ITEM",20,25,2,6,"PILE OF GOLD",25,24,10,6,"JEWELED GOBLET",50,24,3,6
9400 DATA0,-1,1,-1,1,0,1,1,0,1,1,0,1,1,0,1,-1,1,-1,0,0,1,-1,+1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,-1,1,-1,1,0
