10 HOME 20 PRINT CHR$(4);"PR#3" 30 DIM B(20,80) 32 DIM C(1600) 33 DIM A(800) 35 X1=10:Y1=42:X9=10:Y9=40:V8=10:V9=38:BB=0:LL=0:O1=0:G1=0:MA=0 36 INVERSE:VTAB 1:HTAB 30:PRINT"GUIDING ROUTE TOOL":VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 26:PRINT"PRESS ANY KEY TO BE CONTINUE":VTAB 23:HTAB 55:GET Z$:NORMAL 39 NORMAL:HOME 40 VTAB 10:HTAB 40:PRINT " " 45 VTAB 10:HTAB 40:PRINT "M" 50 INVERSE:VTAB 10:HTAB 42:PRINT "$":NORMAL 52 VTAB 20:HTAB 6:PRINT"Y":VTAB 20:HTAB 10:PRINT"I":VTAB 20:HTAB 15:PRINT"R - RUN":VTAB 20:HTAB 32:PRINT"S - SAVE MAZE":VTAB 20:HTAB 66:PRINT"DOLLAR : 0" 54 VTAB 21 :HTAB 5:PRINT"G H":VTAB 21:HTAB 9:PRINT"J K":VTAB 21:HTAB 15:PRINT"F - GUIDE":VTAB 21:HTAB 32:PRINT"L - LOAD MAZE":VTAB 21:HTAB 47:PRINT"X - CATALOG":VTAB 21:HTAB 66:PRINT" STEP : 0" 56 VTAB 22 :HTAB 6:PRINT"B":VTAB 22:HTAB 10:PRINT"M":VTAB 22:HTAB 15:PRINT"V - VIEW GUIDE":VTAB 22:HTAB 32:PRINT"C - CLEAR SCN":VTAB 22:HTAB 47:PRINT"Q - QUIT":VTAB 22:HTAB 66:PRINT"RESTEP : 0" 58 INVERSE:VTAB 23:HTAB 1:PRINT" ":NORMAL 59 GOSUB 1200 60 R1=0:NO=0 61 INVERSE:VTAB 23:HTAB 50:PRINT"COMMON MODE ":NORMAL 62 IF V8=10 AND V9=38 AND G1=0 THEN 64 63 IF G1>0 THEN INVERSE:VTAB 23:HTAB 50:PRINT"TARGET MODE":NORMAL:VTAB V8:HTAB V9:PRINT"T" 64 VTAB X9:HTAB Y9:PRINT"M":INVERSE:VTAB X1:HTAB Y1:PRINT"$":VTAB 23:HTAB 1:PRINT"COMMAND : ":VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 65 IF A$="Q" THEN 7000 66 IF A$=CHR$(25) THEN X2=X1-1:Y2=Y1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 67 IF A$=CHR$(7) THEN X2=X1:Y2=Y1-1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 68 IF A$=CHR$(8) THEN X2=X1:Y2=Y1+1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 69 IF A$=CHR$(2) THEN X2=X1+1:Y2=Y1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 70 IF A$="I" THEN X2=X1-1:Y2=Y1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT"$":GOSUB 1100:B(X1,Y1)=1:GOSUB 1200:X1=X2:Y1=Y2 80 IF A$="J" THEN X2=X1:Y2=Y1-1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT"$":GOSUB 1100:B(X1,Y1)=1:GOSUB 1200:X1=X2:Y1=Y2 90 IF A$="K" THEN X2=X1:Y2=Y1+1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT"$":GOSUB 1100:B(X1,Y1)=1:GOSUB 1200:X1=X2:Y1=Y2 95 IF A$="M" THEN X2=X1+1:Y2=Y1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT"$":GOSUB 1100:B(X1,Y1)=1:GOSUB 1200:X1=X2:Y1=Y2 100 IF A$="Y" THEN X2=X1-1:Y2=Y1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT" ":GOSUB 1150:B(X1,Y1)=0:GOSUB 1200:X1=X2:Y1=Y2 110 IF A$="G" THEN X2=X1:Y2=Y1-1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT" ":GOSUB 1150:B(X1,Y1)=0:GOSUB 1200:X1=X2:Y1=Y2 120 IF A$="H" THEN X2=X1:Y2=Y1+1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT" ":GOSUB 1150:B(X1,Y1)=0:GOSUB 1200:X1=X2:Y1=Y2 130 IF A$="B" THEN X2=X1+1:Y2=Y1:GOSUB 1000:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT" ":GOSUB 1150:B(X1,Y1)=0:GOSUB 1200:X1=X2:Y1=Y2 160 IF A$="R" THEN 300 171 IF A$="F" THEN 55000 172 IF A$="V" AND I3>0 THEN 58000 178 IF A$="S" THEN 15000 180 IF A$="L" THEN 15100 182 IF A$="C" THEN 15500 184 IF A$="X" THEN 15800 188 IF A$="U" THEN VTAB 20:HTAB 47:PRINT" ":INVERSE:VTAB 23:HTAB 66:PRINT" ":NORMAL:GOSUB 59000 190 IF A$=CHR$(19) THEN 60000 191 IF A$=CHR$(6) THEN 33000 192 IF A$=CHR$(9) THEN 63000 197 IF A$=CHR$(20) THEN GOSUB 40000:GOTO 34000 198 IF A$=CHR$(15) THEN 30000 199 IF A$=CHR$(18) THEN G1=0:GOTO 41000 200 GOTO 60 300 X4=X9:Y4=Y9:I1=1:S1=0:H2=0 305 VTAB 20:HTAB 47:PRINT" ":VTAB 21:HTAB 75:PRINT" 0":VTAB 22:HTAB 75:PRINT" 0" 307 GOSUB 59000 308 IF G1>0 THEN GOSUB 40000 310 IF B(X9,Y9)=1 THEN B(X9,Y9)=0:VTAB X9:HTAB Y9:PRINT"M":BB=BB-1:GOSUB 1200 312 IF G1>0 THEN VTAB V8:HTAB V9:PRINT"T" 313 REM IF B(V8,V9)=1 AND G1>0 THEN B(V8,V9)=0:VTAB V8:HTAB V9:PRINT"T":BB=BB-1:GOSUB 1200 314 IF B(X9,Y9+1)=1 AND B(X9+1,Y9+1)=1 AND B(X9+1,Y9)=1 AND B(X9+1,Y9-1)=1 AND B(X9,Y9-1)=1 AND B(X9-1,Y9-1)=1 AND B(X9-1,Y9)=1 AND B(X9-1,Y9+1)=1 THEN INVERSE:VTAB 20:HTAB 47:PRINT"NO EXIT":NORMAL:GOTO 60 316 IF A(1)<>0 THEN 63100 318 VTAB X4:HTAB Y4:PRINT"M" 320 X5=X4:Y5=Y4 330 IF B(X4+1,Y4-1)=0 THEN XX=X4+1:YY=Y4-1:Q=5:F1=1:GOTO 530 340 IF B(X4+1,Y4)=0 THEN XX=X4+1:YY=Y4:Q=4:F1=2:GOTO 530 350 IF B(X4+1,Y4+1)=0 THEN XX=X4+1:YY=Y4+1:Q=6:F1=3:GOTO 530 360 IF B(X4,Y4+1)=0 THEN XX=X4:YY=Y4+1:Q=3:F1=4:GOTO 530 370 IF B(X4-1,Y4+1)=0 THEN XX=X4-1:YY=Y4+1:Q=7:F1=5:GOTO 530 380 IF B(X4-1,Y4)=0 THEN XX=X4-1:YY=Y4:Q=2:F1=6:GOTO 530 390 IF B(X4-1,Y4-1)=0 THEN XX=X4-1:YY=Y4-1:Q=8:F1=7:GOTO 530 395 IF B(X4,Y4-1)=0 THEN XX=X4:YY=Y4-1:Q=1:F1=8:GOTO 530 400 I1=I1-1:IF I1<1 THEN I1=1 410 A7=C(I1):C(I1)=23:H2=H2+1:N1=22:N2=78:GOSUB 900 420 IF A7=1 THEN YY=Y4+1:XX=X4 430 IF A7=4 THEN XX=X4-1:YY=Y4 440 IF A7=3 THEN YY=Y4-1:XX=X4 450 IF A7=2 THEN XX=X4+1:YY=Y4 460 IF A7=5 THEN XX=X4-1:YY=Y4+1 470 IF A7=6 THEN XX=X4-1:YY=Y4-1 480 IF A7=7 THEN XX=X4+1:YY=Y4-1 490 IF A7=8 THEN XX=X4+1:YY=Y4+1 500 GOTO 550 530 IF B(XX,YY)=2 THEN XX=X4:YY=Y4:ON F1 GOTO 340,350,360,370,380,390,395,400 540 C(I1)=Q:I1=I1+1 550 VTAB X4:HTAB Y4:PRINT" ":B(XX,YY)=2 552 IF G1>0 AND XX=V8 AND YY=V9 THEN VTAB X5:HTAB Y5:PRINT" ":GOSUB 27000:S1=0:H2=0:GOTO 650 560 IF XX>19 OR XX<1 OR YY>79 OR YY<1 THEN VTAB X5:HTAB Y5:PRINT" ":S1=S1+1:GOSUB 1400:S1=0:H2=0:GOTO 650 570 X4=XX:Y4=YY:VTAB X4:HTAB Y4:PRINT"M":VTAB X5:HTAB Y5:PRINT" " 575 IF XX=X9 AND YY=Y9 THEN R1=R1+1 577 IF R1>8 THEN R1=0:NO=1:INVERSE:VTAB 20:HTAB 47:PRINT"NO EXIT":NORMAL:GOTO 650 580 S1=S1+1:N1=21:N2=78 590 IF S1>9 THEN N2=N2-1 600 IF S1>99 THEN N2=N2-1 610 IF S1>999 THEN N2=N2-1 620 VTAB N1:HTAB N2: PRINT S1 640 GOTO 318 650 FLASH:VTAB 23:HTAB 15:PRINT"WAITING":NORMAL 660 FOR I=0 TO 20 670 FOR J=0 TO 80 680 IF B(I,J)<>1 THEN B(I,J)=0 690 NEXT J 700 NEXT I 705 INVERSE:VTAB 23:HTAB 15:PRINT" ":NORMAL 707 IF NO=1 AND AD=1 THEN NO=0:AD=0:X9=XZ:Y9=YZ:GOTO 60 710 IF NO=1 THEN NO=0:GOTO 60 720 INVERSE:VTAB 20:HTAB 47:PRINT"CUT":NORMAL 730 X7=X9:Y7=Y9:I2=1:CUT=0 740 IF C(I2)=5 THEN X8=X7+1:Y8=Y7-1 750 IF C(I2)=4 THEN X8=X7+1:Y8=Y7 760 IF C(I2)=6 THEN X8=X7+1:Y8=Y7+1 770 IF C(I2)=3 THEN X8=X7:Y8=Y7+1 780 IF C(I2)=7 THEN X8=X7-1:Y8=Y7+1 790 IF C(I2)=2 THEN X8=X7-1:Y8=Y7 792 IF C(I2)=8 THEN X8=X7-1:Y8=Y7-1 794 IF C(I2)=1 THEN X8=X7:Y8=Y7-1 795 IF G1>0 AND X8=V8 AND Y8=V9 THEN VTAB X7:HTAB Y7:PRINT" ":NORMAL:CUT=CUT+1:VTAB 20:HTAB 51:PRINT CUT:GOTO 60 796 IF X8>19 OR X8<1 OR Y8>79 OR Y8<1 THEN CUT=CUT+1:VTAB 20:HTAB 51:PRINT CUT:VTAB X7:HTAB Y7:PRINT" ":GOTO 60 800 VTAB X8:HTAB Y8:PRINT"M":CUT=CUT+1:VTAB 20:HTAB 51:PRINT CUT:VTAB X7:HTAB Y7:PRINT" ":X7=X8:Y7=Y8 810 I2=I2+1 880 GOTO 740 900 IF H2>9 THEN N2=N2-1 910 IF H2>99 THEN N2=N2-1 920 IF H2>999 THEN N2=N2-1 922 VTAB 22:HTAB 75:PRINT" " 930 VTAB N1:HTAB N2: PRINT H2 940 RETURN 1000 IF X2<1 THEN X2=19 1010 IF X2>19 THEN X2=1 1020 IF Y2<1 THEN Y2=79 1030 IF Y2>79 THEN Y2=1 1040 RETURN 1100 IF B(X1,Y1)=0 THEN BB=BB+1 1110 RETURN 1150 IF B(X1,Y1)=1 THEN BB=BB-1 1160 RETURN 1200 IF BB<0 THEN BB=0 1210 IF BB<10 AND BB>-1 THEN NN1=78 1220 IF BB<100 AND BB>9 THEN NN1=77 1230 IF BB<1000 AND BB>99 THEN NN1=76 1240 IF BB<10000 AND BB>999 THEN NN1=75 1242 VTAB 20:HTAB 75:PRINT" " 1260 VTAB 20:HTAB NN1:PRINT BB 1270 RETURN 1400 N1=21:N2=78 1410 IF S1>9 THEN N2=N2-1 1420 IF S1>99 THEN N2=N2-1 1430 IF S1>999 THEN N2=N2-1 1432 VTAB 21:HTAB 75:PRINT" " 1440 VTAB N1:HTAB N2: PRINT S1 1450 RETURN 7000 END 15000 INVERSE:VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 15005 INVERSE:VTAB 23:HTAB 50:PRINT"SAVING ":NORMAL 15007 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 15009 IF LEN(F$) > 24 THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 15000 15010 ONERR GOTO 22200 15012 PRINT CHR$(4);"OPEN";F$ 15020 PRINT CHR$(4);"WRITE";F$ 15030 FOR I=1 TO 19 15040 FOR J=1 TO 79 15050 PRINT B(I,J) 15060 NEXT J 15070 NEXT I 15072 PRINT CHR$(4);"CLOSE";F$ 15074 REM X9=10:Y9=40:V8=10:V9=38:G1=0:MA=0 15075 M(1)=1:M(2)=2:M(3)=3:M(4)=4:M(5)=5:M(6)=6:M(7)=7:M(8)=8 15076 T$="R DR D DL L UL U UR " 15081 PRINT CHR$(4);"OPEN";F$+".INDEX" 15082 PRINT CHR$(4);"WRITE";F$+".INDEX" 15083 PRINT X1:PRINT Y1:PRINT X9:PRINT Y9:PRINT V8:PRINT V9:PRINT G1:PRINT M(1):PRINT M(2):PRINT M(3):PRINT M(4):PRINT M(5):PRINT M(6):PRINT M(7):PRINT M(8):PRINT T$:PRINT MA 15084 PRINT CHR$(4);"CLOSE";F$+".INDEX" 15086 PRINT CHR$(4);"OPEN";F$+".BITMAP" 15088 PRINT CHR$(4);"WRITE";F$+".BITMAP" 15090 FOR I=1 TO 19 15092 FOR J=1 TO 79 15093 PRINT B(I,J); 15094 NEXT J 15095 PRINT 15096 NEXT I 15097 PRINT CHR$(4);"CLOSE";F$+".BITMAP" 15098 INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL 15099 GOTO 60 15100 REM I3=0 15102 INVERSE:VTAB 23:HTAB 12:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 15105 INVERSE:VTAB 23:HTAB 50:PRINT"LOADING ":NORMAL 15106 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 15108 REM ONERR GOTO 22000 15110 PRINT CHR$(4);"OPEN";F$ 15120 PRINT CHR$(4);"READ";F$ 15130 FOR I=1 TO 19 15140 FOR J=1 TO 79 15150 INPUT B(I,J) 15160 NEXT J 15170 NEXT I 15180 PRINT CHR$(4);"CLOSE";F$ 15181 PRINT CHR$(4);"OPEN";F$+".INDEX" 15182 PRINT CHR$(4);"READ";F$+".INDEX" 15183 INPUT X1:INPUT Y1:INPUT X9:INPUT Y9:INPUT V8:INPUT V9:INPUT G1:INPUT M(1):INPUT M(2):INPUT M(3):INPUT M(4):INPUT M(5):INPUT M(6):INPUT M(7):INPUT M(8):INPUT T$:INPUT MA 15184 PRINT CHR$(4);"CLOSE";F$+".INDEX" 15185 INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL 15187 GOSUB 15200 15188 IF G1>0 THEN INVERSE:VTAB 23:HTAB 50:PRINT"TARGET MODE":NORMAL:VTAB V8:HTAB V9:PRINT"T" 15189 NORMAL:VTAB 20:HTAB 45:PRINT" " 15190 LL=1:GOTO 60 15200 BB=0:VTAB 20:HTAB 75:PRINT" " 15202 FOR I=1 TO 19 15210 FOR J=1 TO 79 15220 IF B(I,J)=1 THEN VTAB I:HTAB J:PRINT"$":BB=BB+1:GOSUB 1200 15222 IF B(I,J)<>1 THEN VTAB I:HTAB J:PRINT" " 15230 NEXT J 15240 NEXT I 15250 RETURN 15500 NORMAL:VTAB 20:HTAB 45:PRINT" ":INVERSE:VTAB 23:HTAB 66:PRINT" ":NORMAL 15502 FOR I=1 TO 19 15510 FOR J=1 TO 79 15520 VTAB I:HTAB J:PRINT" " 15530 NEXT J 15540 NEXT I 15542 FOR I=0 TO 20 15543 FOR J=0 TO 80 15544 B(I,J)=0 15545 NEXT J 15546 NEXT I 15547 FOR I=0 TO 1600:C(I)=0:NEXT I 15548 BB=0 15549 VTAB 20:HTAB 75:PRINT" 0":VTAB 21:HTAB 75:PRINT" 0":VTAB 22:HTAB 75:PRINT" 0" 15550 GOTO 60 15800 HOME 15802 PRINT CHR$(4);"CATALOG" 15810 PRINT:PRINT"":NORMAL:GET CT$ 15820 HOME:BB=0 15830 FOR I=1 TO 19 15840 FOR J=1 TO 79 15850 IF B(I,J)=1 THEN VTAB I:HTAB J:PRINT"$":BB=BB+1 15860 NEXT J 15870 NEXT I 15990 GOTO 52 22000 INVERSE:VTAB 23:HTAB 50:PRINT"FILE NOT FOUND":NORMAL 22010 Y=PEEK(222) 22011 IF Y=5 THEN PRINT CHR$(4);"CLOSE";F$:PRINT CHR$(4);"OPEN";F$:PRINT CHR$(4);"DELETE";F$:INVERSE:VTAB 23:HTAB 50:PRINT"FILE NOT FOUND":NORMAL:GOTO 15100 22014 GOTO 15100 22200 Y=PEEK(222) 22210 IF Y=4 THEN INVERSE:VTAB 23:HTAB 50:PRINT"WRITE PROTECTED":NORMAL:GOTO 15000 22212 IF Y=7 THEN INVERSE:VTAB 23:HTAB 50:PRINT"VOLUME MISMATCH":NORMAL:GOTO 15000 22214 IF Y=8 THEN INVERSE:VTAB 23:HTAB 50:PRINT"I/O ERROR":NORMAL:GOTO 15000 22216 IF Y=9 THEN INVERSE:VTAB 23:HTAB 50:PRINT"DISK FULL":NORMAL:GOTO 15000 22218 IF Y=10 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE LOCKED":NORMAL:GOTO 15000 22219 IF Y=11 THEN INVERSE:VTAB 23:HTAB 50:PRINT"SYNTAX ERROR":NORMAL:GOTO 15000 22220 IF Y=13 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE TYPE MISMATCH":NORMAL:GOTO 15000 22298 GOTO 15000 27000 S1=S1+1:N1=21:N2=78 27010 IF S1>9 THEN N2=N2-1 27020 IF S1>99 THEN N2=N2-1 27030 IF S1>999 THEN N2=N2-1 27040 VTAB N1:HTAB N2: PRINT S1 27050 RETURN 29000 IF X1=10 AND Y1=40 THEN 29040 29010 IF B(X1,Y1)=1 THEN NORMAL:VTAB X1:HTAB Y1:PRINT"$" 29020 IF B(X1,Y1)=0 THEN NORMAL:VTAB X1:HTAB Y1:PRINT" " 29030 IF X2=10 AND Y2=40 THEN 29050 29040 INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL 29050 RETURN 30000 O1=O1+1 30004 X8=10:Y8=40 30006 IF O1>1 THEN X8=X9:Y8=Y9 30007 IF LL=1 THEN X8=X9:Y8=Y9 30008 INVERSE:VTAB 23:HTAB 50:PRINT"CHANGE ORIGINAL POSITION":NORMAL 30010 INVERSE:VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 30050 IF A$=CHR$(25) THEN X9=X8-1:Y9=Y8:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9 30060 IF A$=CHR$(7) THEN X9=X8:Y9=Y8-1:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9 30070 IF A$=CHR$(8) THEN X9=X8:Y9=Y8+1:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9 30080 IF A$=CHR$(2) THEN X9=X8+1:Y9=Y8:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9 30082 IF A$=CHR$(15) THEN 36000 30090 GOTO 30010 31000 IF B(X8,Y8)=1 THEN NORMAL:VTAB X8:HTAB Y8:PRINT"$" 31010 IF B(X8,Y8)=0 THEN NORMAL:VTAB X8:HTAB Y8:PRINT" " 31020 NORMAL:VTAB X9:HTAB Y9:PRINT"M" 31050 RETURN 32000 IF X9<1 THEN X9=19 32010 IF X9>19 THEN X9=1 32020 IF Y9<1 THEN Y9=79 32030 IF Y9>79 THEN Y9=1 32040 RETURN 33000 INVERSE:VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 50:PRINT"MAZE FIXING":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 33002 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 33010 X9=10:Y9=40:V8=10:V9=38:G1=0:MA=0 33012 M(1)=1:M(2)=2:M(3)=3:M(4)=4:M(5)=5:M(6)=6:M(7)=7:M(8)=8 33014 T$="R DR D DL L UL U UR " 33081 PRINT CHR$(4);"OPEN";F$+".INDEX" 33082 PRINT CHR$(4);"READ";F$+".INDEX" 33083 INPUT T1:INPUT T2 33084 PRINT CHR$(4);"CLOSE";F$+".INDEX" 33181 PRINT CHR$(4);"OPEN";F$+".INDEX" 33182 PRINT CHR$(4);"WRITE";F$+".INDEX" 33183 PRINT T1:PRINT T2:PRINT X9:PRINT Y9:PRINT V8:PRINT V9:PRINT G1:PRINT M(1):PRINT M(2):PRINT M(3):PRINT M(4):PRINT M(5):PRINT M(6):PRINT M(7):PRINT M(8):PRINT T$:PRINT MA 33184 PRINT CHR$(4);"CLOSE";F$+".INDEX" 33186 INVERSE:VTAB 23:HTAB 50:PRINT" ":VTAB 23:HTAB 12:PRINT" ":NORMAL 33190 GOTO 60 34000 G1=G1+1 34002 G8=10:G9=38 34003 IF G1>1 OR LL=1 THEN 34005 34004 NORMAL:VTAB G8:HTAB G9:PRINT"T" 34005 IF G1>1 THEN G8=V8:G9=V9 34006 IF LL=1 THEN G8=V8:G9=V9 34007 INVERSE:VTAB 23:HTAB 50:PRINT"CHANGE TARGET POSITION":NORMAL 34010 INVERSE:VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 34050 IF A$=CHR$(25) THEN V8=G8-1:V9=G9:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9 34060 IF A$=CHR$(7) THEN V8=G8:V9=G9-1:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9 34070 IF A$=CHR$(8) THEN V8=G8:V9=G9+1:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9 34080 IF A$=CHR$(2) THEN V8=G8+1:V9=G9:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9 34082 IF A$=CHR$(20) THEN 38000 34090 GOTO 34010 35000 IF B(G8,G9)=1 THEN NORMAL:VTAB G8:HTAB G9:PRINT"$" 35010 IF B(G8,G9)=0 THEN NORMAL:VTAB G8:HTAB G9:PRINT" " 35020 NORMAL:VTAB V8:HTAB V9:PRINT"T" 35050 RETURN 36000 IF B(X9,Y9)=1 THEN INVERSE:VTAB 23:HTAB 50:PRINT"STAND ON THE DOLLAR SIGN":GOTO 30010 36001 IF V8=10 AND V9=38 THEN 36010 36002 IF X9=V8 AND Y9=V9 THEN INVERSE:VTAB 23:HTAB 50:PRINT"M STAND ON T ":GOTO 30010 36010 INVERSE:VTAB 23:HTAB 50:PRINT" ":NORMAL:GOTO 60 37000 IF V8<1 THEN V8=19 37010 IF V8>19 THEN V8=1 37020 IF V9<1 THEN V9=79 37030 IF V9>79 THEN V9=1 37040 RETURN 38000 IF B(V8,V9)=1 THEN INVERSE:VTAB 23:HTAB 50:PRINT"STAND ON THE DOLLAR SIGN":GOTO 34010 38002 IF X9=V8 AND Y9=V9 THEN INVERSE:VTAB 23:HTAB 50:PRINT"T STAND ON M ":GOTO 34010 38010 INVERSE:VTAB 23:HTAB 50:PRINT" ":NORMAL:GOTO 60 40000 NORMAL:VTAB V8:HTAB V9:PRINT"T" 40002 FOR I=0 TO 80 40010 B(0,I)=1:B(20,I)=1 40020 NEXT I 40030 FOR J=0 TO 20 40040 B(J,0)=1:B(J,80)=1 40050 NEXT J 40090 RETURN 41000 NORMAL:VTAB V8:HTAB V9:PRINT" ":G1=0:V8=10:V9=38 41001 INVERSE:VTAB 23:HTAB 50:PRINT"COMMON MODE ":NORMAL 41002 FOR I=0 TO 80 41010 B(0,I)=0:B(20,I)=0 41020 NEXT I 41030 FOR J=0 TO 20 41040 B(J,0)=0:B(J,80)=0 41050 NEXT J 41090 GOTO 64 55000 GOSUB 59000:XF=X9:YF=Y9:I3=1:Q7=0:TT=0 55001 VTAB 20:HTAB 47:PRINT" ":S1=0:GOSUB 1400:N1=22:N2=78:H2=0:GOSUB 900:NORMAL:VTAB XF:HTAB YF:PRINT"M" 55003 IF O1>0 THEN VTAB X9:HTAB Y9:PRINT"M" 55004 IF G1>0 THEN VTAB V8:HTAB V9:PRINT"T" 55006 INVERSE:VTAB 23:HTAB 1:PRINT"COMMAND : GUIDING MODE ":VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 55008 IF A$="I" AND B(XF-1,YF)=0 THEN XG=XF-1:YG=YF:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55010 IF A$="J" AND B(XF,YF-1)=0 THEN XG=XF:YG=YF-1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55020 IF A$="K" AND B(XF,YF+1)=0 THEN XG=XF:YG=YF+1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55030 IF A$="M" AND B(XF+1,YF)=0 THEN XG=XF+1:YG=YF:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55032 IF A$="Q" AND B(XF-1,YF-1)=0 THEN XG=XF-1:YG=YF-1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55033 IF A$="W" AND B(XF-1,YF+1)=0 THEN XG=XF-1:YG=YF+1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55034 IF A$="A" AND B(XF+1,YF-1)=0 THEN XG=XF+1:YG=YF-1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55035 IF A$="S" AND B(XF+1,YF+1)=0 THEN XG=XF+1:YG=YF+1:GOSUB 56000:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:VTAB XG:HTAB YG:PRINT"M":A(I3)=100*XF+YF:I3=I3+1:S1=S1+1:GOSUB 1400:B(XF,YF)=2:XF=XG:YF=YG 55037 IF A$="D" THEN TT=0:GOTO 57000 55038 IF A$="E" THEN 57600 55039 IF A$=CHR$(43) THEN Q7=1:I3=0:GOTO 57000 55040 GOTO 55006 56000 IF G1>0 AND XG=V8 AND YG=V9 THEN TT=1:A(I3)=100*XF+YF:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:S1=S1+1:GOSUB 1400:GOTO 57500 56002 IF (XG>19 OR XG<1 OR YG>79 OR YG<1) THEN TT=1:A(I3)=100*XF+YF:INVERSE:VTAB XF:HTAB YF:PRINT" ":NORMAL:S1=S1+1:GOSUB 1400:GOTO 57500 56010 RETURN 57000 FOR I=1 TO 800:A(I)=0:NEXT I 57002 FOR I=1 TO 19 57010 FOR J=1 TO 79 57020 IF B(I,J)<>1 THEN B(I,J)=0:VTAB I:HTAB J:PRINT" " 57030 NEXT J 57040 NEXT I 57062 IF Q7=1 THEN Q7=0:S1=0:GOSUB 1400:GOTO 60 57070 GOTO 55000 57500 VTAB 20:HTAB 47:PRINT" SURE Y/N ? ":VTAB 20:HTAB 59:GET S$:VTAB 20:HTAB 59:PRINT S$ 57510 IF S$="Y" THEN VTAB 20:HTAB 47:PRINT" ":Q7=1:GOTO 57002 57520 IF S$="N" THEN VTAB 20:HTAB 47:PRINT" ":TT=0:GOTO 57000 57530 GOTO 57500 57600 IF I3=1 THEN 55006 57602 NORMAL:VTAB XF:HTAB YF:PRINT" ":I3=I3-1:XG=INT(A(I3)/100):YG=A(I3)-100*XG:VTAB XG:HTAB YG:PRINT"M":B(XG,YG)=0:S1=S1-1:GOSUB 1400:XF=XG:YF=YG 57610 GOTO 55006 58000 FOR K=1 TO I3 58010 XJ=INT(A(K)/100):YJ=A(K)-100*XJ 58020 IF B(XJ,YJ)=1 OR A(1)=0 THEN 59100 58030 NEXT K 58080 I6=0 58090 INVERSE:VTAB 20:HTAB 55:PRINT"GUIDE":NORMAL 58100 FOR I=1 TO I3 58110 XI=INT(A(I)/100):YI=A(I)-100*XI 58120 INVERSE:VTAB XI:HTAB YI:PRINT"M":I6=I6+1:NORMAL:VTAB 20:HTAB 61:PRINT I6 58130 NEXT I 58160 GOTO 60 59000 FOR I=1 TO 19 59010 FOR J=1 TO 79 59020 IF B(I,J)<>1 THEN VTAB I:HTAB J:PRINT" " 59030 NEXT J 59040 NEXT I 59060 RETURN 59100 INVERSE:VTAB 20:HTAB 47:PRINT"MAZE CHANGED" 59110 GOTO 60 60000 REM IF F$="" THEN 60 60002 INVERSE:VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 60005 INVERSE:VTAB 23:HTAB 50:PRINT"SAVING ":NORMAL 60007 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 60009 IF LEN(F$) > 24 THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60000 60010 ONERR GOTO 62200 60011 A(0)=I3 60012 PRINT CHR$(4);"OPEN";F$+".GUIDE" 60020 PRINT CHR$(4);"WRITE";F$+".GUIDE" 60030 FOR I=0 TO I3 60050 PRINT A(I) 60070 NEXT I 60072 PRINT CHR$(4);"CLOSE";F$+".GUIDE" 60080 GOTO 60 62200 Y=PEEK(222) 62210 IF Y=4 THEN INVERSE:VTAB 23:HTAB 50:PRINT"WRITE PROTECTED":NORMAL:GOTO 60000 62212 IF Y=7 THEN INVERSE:VTAB 23:HTAB 50:PRINT"VOLUME MISMATCH":NORMAL:GOTO 60000 62214 IF Y=8 THEN INVERSE:VTAB 23:HTAB 50:PRINT"I/O ERROR":NORMAL:GOTO 60000 62216 IF Y=9 THEN INVERSE:VTAB 23:HTAB 50:PRINT"DISK FULL":NORMAL:GOTO 60000 62218 IF Y=10 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE LOCKED":NORMAL:GOTO 60000 62219 IF Y=11 THEN INVERSE:VTAB 23:HTAB 50:PRINT"SYNTAX ERROR":NORMAL:GOTO 60000 62220 IF Y=13 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE TYPE MISMATCH":NORMAL:GOTO 60000 62298 GOTO 60000 63000 REM IF F$="" THEN 60 63001 NORMAL:VTAB 20:HTAB 47:PRINT" " 63002 INVERSE:VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 63005 INVERSE:VTAB 23:HTAB 50:PRINT"LOADING ":NORMAL 63007 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 63009 REM IF LEN(F$) > 24 THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 63000 63010 REM ONERR GOTO 62200 63011 REM A(0)=I3 63012 PRINT CHR$(4);"OPEN";F$+".GUIDE" 63020 PRINT CHR$(4);"READ";F$+".GUIDE" 63022 INPUT I3 63030 FOR I=1 TO I3 63050 INPUT A(I) 63070 NEXT I 63072 PRINT CHR$(4);"CLOSE";F$+".GUIDE" 63080 GOTO 60 63100 I6=1:S1=1:AD=1:XZ=X9:YZ=Y9 63102 FOR I=2 TO I3 63110 XI=INT(A(I)/100):YI=A(I)-100*XI 63111 XJ=INT(A(I-1)/100):YJ=A(I-1)-100*XJ 63112 IF B(XI,YI)=1 THEN NO=1:X4=XJ:Y4=YJ:X9=XJ:Y9=YJ:A(1)=0:I6=I6-1:NORMAL:VTAB 20:HTAB 61:PRINT I6:S1=S1-1:GOSUB 1400:GOSUB 59000:VTAB 20:HTAB 55:PRINT" ":GOTO 312 63120 INVERSE:VTAB XI:HTAB YI:PRINT"M":VTAB 20:HTAB 55:PRINT"GUIDE":I6=I6+1:NORMAL:VTAB 20:HTAB 61:PRINT I6:S1=S1+1:GOSUB 1400 63130 NEXT I 63140 I6=1:S1=0 63160 GOTO 60