0 CLEAR100:DIMLU(1,2),MZ(22,21),V(4),XX,YY,X,Y,X1,Y1,BY,VL,MA,VI,A,B,I,R,ZZ:FORX=0TO1:FORY=0TO2:READLU(X,Y):NEXTY,X
1 VI=16384:VND=16895:VCTRL=49151:GOTO20
2 DATA32,8,2,16,4,1
3 POKEVCTRL,CHOR(PEEK(VCTRL)AND7):RETURN
4 POKEVCTRL,0:RETURN
5 X1=INT(XX/2):Y1=INT(YY/3):BY=VI+(X1+Y1*32):VL=LU(INT(XX-X1*2),INT(YY-Y1*3))
6 MA=VLORPEEK(BY):POKEBY,MA:RETURN
20 CLS0
30 TI=35
50 T0=1
55 PRINT@0,"INSTRUCTIONS (Y/N)?";
56 I$=INKEY$:T2=RND(100):IFI$=""THEN56
57 IFI$="Y"ORI$="y"THENGOSUB5000
58 T2=10
60 FORI=1TO20:MZ(0,I)=10:MZ(22,I)=10:NEXTI
70 FORI=1TO21:MZ(I,0)=5:MZ(I,21)=5:NEXTI
80 MZ(0,0)=15:MZ(0,21)=15:MZ(22,0)=5:MZ(22,21)=15
95 X=10:Y=10
97 CLS0:PRINT@25,"PLEASE ";:PRINT@57,"WAIT...";
98 FORX1=22TO470STEP32:PRINT@X1,CHR$(170);:NEXTX1
99 GOTO150
100 XX=X*2:YY=Y*2
105 IF(MZ(X,Y)AND1)<>0AND(MZ(X,Y)AND8)<>0THENRETURN
110 IF(MZ(X,Y)AND1)<>0THENGOSUB5:XX=XX+1:GOSUB5:XX=XX+1:GOSUB5:RETURN
120 IF(MZ(X,Y)AND8)<>0THENGOSUB5:YY=YY+1:GOSUB5:YY=YY+1:GOSUB5:RETURN
130 GOSUB5:XX=XX+1:GOSUB5:XX=XX+1:GOSUB5:XX=XX-2:YY=YY+1:GOSUB5:YY=YY+1:GOSUB5:RETURN
150 A=0
155 IFMZ(X-1,Y)=0THENV(A)=1:A=A+1
160 IFMZ(X,Y-1)=0THENV(A)=4:A=A+1
165 IFMZ(X,Y+1)=0THENV(A)=2:A=A+1
170 IFMZ(X+1,Y)=0THENV(A)=3:A=A+1
171 IFA=0ANDX=10ANDY=10THEN1000
173 IFA=0THENR=INT(MZ(X,Y)/256):GOTO230
175 B=RND(A+1)-1:IFB>=ATHEN175
180 R=V(B)
190 ONRGOSUB300,310,320,330
230 ONRGOSUB250,260,270,280
240 GOTO150
250 X=X-1:RETURN
260 Y=Y+1:RETURN
270 X=X+1:RETURN
280 Y=Y-1:RETURN
300 MZ(X,Y)=MZ(X,Y)OR1:MZ(X-1,Y)=772:RETURN
310 MZ(X,Y)=MZ(X,Y)OR2:MZ(X,Y+1)=1032:RETURN
320 MZ(X,Y)=MZ(X,Y)OR4:MZ(X+1,Y)=257:RETURN
330 MZ(X,Y)=MZ(X,Y)OR8:MZ(X,Y-1)=514:RETURN
810 XX=(X*2)+1:YY=(Y*2)+1:RETURN
1000 X=1:Y=1:MZ(1,1)=MZ(1,1)OR8:GOSUB1400:GOSUB100
1010 X=1:Y=0:MZ(1,0)=2:GOSUB100
1020 X=1:Y=0:MZ(21,20)=MZ(21,20)OR2:GOSUB100
1025 X=21:Y=21:MZ(21,21)=8:GOSUB100
1026 FORX=1TO21:FORY=0TO21:GOSUB100:NEXTY,X
1027 HH=0:MM=0:SS=0:TD$="AM"
1030 GOSUB3:X=1:Y=0:GOSUB810:GOSUB5
1040 GOTO1100
1050 IF A$="A"AND(MZ(X,Y)AND1)<>0THENX=X-1:GOTO1085
1060 IF A$="W"AND(MZ(X,Y)AND8)<>0THENY=Y-1:GOTO1085
1070 IF A$="Z"AND(MZ(X,Y)AND2)<>0THENY=Y+1:GOTO1085
1080 IF A$="S"AND(MZ(X,Y)AND4)<>0THENX=X+1:GOTO1085
1081 IF A$=" "THENX=1:Y=0
1085 POKEBYTE,NOT(NOTMASKORVLU):GOSUB810:GOSUB5
1090 ZZ=ZZ+1:RETURN
1100 FORHH=HHTO12:HH$=STR$(HH)
1110 FORMM=MMTO59:MM$=STR$(MM)
1120 FORSS=SSTO59:SS$=STR$(SS)
1130 IFX=21ANDY=21THEN1200
1170 IFNOT(HH=11ANDMM=59ANDSS=59)THEN1182
1175 IFTD$="AM"THENTD$="PM":GOTO1182
1180 TD$="AM"
1182 POKEBYTE,MASK:FORZZ=1TOTI:A$=INKEY$:IFA$<>""THENGOSUB1050
1184 NEXTZZ
1186 POKEBYTE,NOT(NOTMASKORVLU):FORZZ=1TOTI:A$=INKEY$:IFA$<>""THENGOSUB1050
1188 NEXTZZ
1190 NEXTSS:SS=1:NEXTMM:MM=0:NEXTHH:HH=1:MM=1:SS=1
1195 RETURN
1200 SOUND50,5
1205 PRINT@25,RIGHT$(MM$,2);":";RIGHT$(SS$,2)
1210 PRINT@57,"AGAIN? ";
1215 PRINT@89,"(Y/N/Q)";
1220 I$=INKEY$:IFI$=""THEN1220
1230 IFI$="Y"ORI$="y"THEN1300
1240 IFI$="N"ORI$="n"THEN1260
1245 IFI$="Q"ORI$="q"THENEND
1250 GOTO1220
1260 RUN
1300 GOSUB1400
1310 POKEBYTE,NOT(NOT MASK OR VLU):GOTO1027
1400 FORDE=25TO89STEP32
1410 FORBL=0TO6:PRINT@DE+BL,CHR$(128);:NEXTBL
1415 NEXTDE
1420 RETURN
5000 CLS:PRINT"    haze maze instructions"
5020 PRINT@65,"IN THIS GAME YOU MUST MOVE      THROUGH A MAZE IN THE SHORTEST  NUMBER OF STEPS POSSIBLE."
5030 PRINT@193,"YOU ARE IN THE TOP LEFT CORNER. WHEN YOU SEE THE CURSOR USE"
5040 PRINT" THE ARROW KEYS TO GUIDE A MOUSE TO THE LOWER RIGHT CORNER."
5070 PRINT@353,"PRESS <SPACE> TO RETURN TO THE  STARTING POSITION."
5080 PRINT@480,"PRESS ANY KEY TO BEGIN";
5085 I$=INKEY$:IFI$=""THEN5085
5090 RETURN
