10 HOME 20 PRINT CHR$(4);"PR#3" 30 DIM B(20,80) 32 DIM C(1510) 35 X1=10:Y1=42:BB=0:B=0 36 INVERSE:VTAB 1:HTAB 30:PRINT"MAZE PAINTER TOOL":VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 26:PRINT"PRESS ANY KEY TO BE CONTINUE" 37 VTAB 23:HTAB 55:GET Z$:VTAB 23:HTAB 55:PRINT Z$:NORMAL 38 HOME:INVERSE:VTAB 23:HTAB 1:PRINT" PLEASE INSERT A DATA DISK IN SLOT 6 DRIVE 2,THEN PRESS TO BE CONTINUE. ":VTAB 23:HTAB 79:GET G$:VTAB 23:HTAB 79:PRINT G$:NORMAL:D2=1:GOSUB 15800 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 - PAINTER":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"Q - QUIT":VTAB 22:HTAB 32:PRINT"C - CLEAR SCN":VTAB 22:HTAB 66:PRINT"RESTEP : 0" 58 INVERSE:VTAB 23:HTAB 1:PRINT" ":NORMAL 59 GOSUB 1200 60 R1=0:NO=0 62 VTAB 10:HTAB 40: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 162 IF A$="F" THEN 30000 172 IF A$="S" THEN 15000 180 IF A$="L" THEN 15100 182 IF A$="C" THEN 15500 184 IF A$="X" THEN 15800 191 IF A$=CHR$(6) THEN 33000 200 GOTO 60 300 X4=10:Y4=40:I1=1:S1=0:H2=0 305 VTAB 20:HTAB 47:PRINT" ":VTAB 21:HTAB 75:PRINT" 0":VTAB 22:HTAB 75:PRINT" 0" 310 IF B(10,40)=1 THEN B(10,40)=0:VTAB 10:HTAB 40:PRINT"M":BB=BB-1:GOSUB 1200 312 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(X4,Y4+1)=1 AND B(X4+1,Y4+1)=1 AND B(X4+1,Y4)=1 AND B(X4+1,Y4-1)=1 AND B(X4,Y4-1)=1 AND B(X4-1,Y4-1)=1 AND B(X4-1,Y4)=1 AND B(X4-1,Y4+1)=1 THEN INVERSE:VTAB 20:HTAB 47:PRINT"NO EXIT":NORMAL:GOTO 60 315 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 560 IF XX>19 OR XX<1 OR YY>79 OR YY<1 THEN VTAB X5:HTAB Y5:PRINT" ":GOSUB 27000: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=10 AND YY=40 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 315 650 INVERSE:VTAB 23:HTAB 1: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 710 IF NO=1 THEN NO=0:GOTO 60 720 INVERSE:VTAB 20:HTAB 47:PRINT"SHORTCUT":NORMAL 730 X7=10:Y7=40:I2=1 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 796 IF X8>19 OR X8<1 OR Y8>79 OR Y8<1 THEN VTAB X7:HTAB Y7:PRINT" ":VTAB 20:HTAB 47:PRINT" ":GOTO 60 800 VTAB X8:HTAB Y8:PRINT"M":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 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 1440 VTAB N1:HTAB N2: PRINT S1 1450 RETURN 1500 IF XP<1 THEN XP=1 1510 IF XP>19 THEN XP=19 1520 IF YP<1 THEN YP=1 1530 IF YP>79 THEN YP=79 1540 RETURN 7000 HOME:PRINT CHR$(4);"CATALOG"+",D1,S6":END 14900 BB=0 14902 FOR I=1 TO 19 14910 FOR J=1 TO 79 14920 IF B(I,J)=1 THEN VTAB I:HTAB J:PRINT"$":BB=BB+1 14922 IF B(I,J)=0 THEN VTAB I:HTAB J:PRINT" " 14930 NEXT J 14940 NEXT I 14942 GOSUB 1200 14950 RETURN 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 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 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 ONERR GOTO 22200 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 REM 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:GOSUB 1200:GOTO 60 15200 BB=0:VTAB 20:HTAB 75:PRINT" ":VTAB 21:HTAB 75:PRINT" 0":VTAB 22:HTAB 75:PRINT" 0" 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 1510: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"+",D2,S6" 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 15880 IF D2=1 THEN D2=0:RETURN 15990 GOTO 52 22200 Y=PEEK(222) 22210 IF Y=4 THEN INVERSE:VTAB 23:HTAB 50:PRINT"WRITE PROTECTED":NORMAL:GOSUB 22500:GOTO 60 22212 IF Y=7 THEN INVERSE:VTAB 23:HTAB 50:PRINT"VOLUME MISMATCH":NORMAL:GOSUB 22500:GOTO 60 22214 IF Y=8 THEN INVERSE:VTAB 23:HTAB 50:PRINT"I/O ERROR":NORMAL:GOSUB 22500:GOTO 60 22216 IF Y=9 THEN INVERSE:VTAB 23:HTAB 50:PRINT"DISK FULL":NORMAL:GOSUB 22500:GOTO 60 22218 IF Y=10 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE LOCKED":NORMAL:GOSUB 22500:GOTO 60 22219 IF Y=11 THEN INVERSE:VTAB 23:HTAB 50:PRINT"SYNTAX ERROR":NORMAL:GOSUB 22500:GOTO 60 22220 IF Y=13 THEN INVERSE:VTAB 23:HTAB 50:PRINT"FILE TYPE MISMATCH":NORMAL:GOSUB 22500:GOTO 60 22298 INVERSE:VTAB 23:HTAB 50:PRINT"FILE NOT FOUND":NORMAL:GOSUB 22500:GOTO 60 22500 FOR I=1 TO 50000 22510 NEXT I 22520 RETURN 24000 FOR I=1 TO 19 24010 FOR J=1 TO 79 24020 IF B(I,J)=1 THEN VTAB I:HTAB J:PRINT"$":GOTO 24040 24030 VTAB I:HTAB J:PRINT" " 24040 NEXT J 24050 NEXT I 24060 RETURN 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 REM 30002 INVERSE:VTAB 23:HTAB 1:PRINT"COMMAND : ":VTAB 23:HTAB 50:PRINT"MAZE PAINTER ":VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 30010 IF A$="M" THEN M2=1:X2=10:Y2=42:GOTO 31000 30020 REM IF A$="O" THEN O2=1:X2=10:Y2=42:GOTO 31000 30030 REM IF A$="P" THEN 56000 30032 REM IF A$="T" THEN 58000 30034 REM IF A$="R" THEN RO=1:GOTO 58000 30040 IF A$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 30060 GOTO 30002 31000 VTAB 10:HTAB 40:PRINT"M":INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL 31002 INVERSE:VTAB 23:HTAB 1:PRINT"COMMAND : ":VTAB 23:HTAB 50:PRINT"MIRROR":VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 31066 IF A$=CHR$(25) THEN X2=X1-1:Y2=Y1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 31067 IF A$=CHR$(7) THEN X2=X1:Y2=Y1-1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 31068 IF A$=CHR$(8) THEN X2=X1:Y2=Y1+1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 31069 IF A$=CHR$(2) THEN X2=X1+1:Y2=Y1:GOSUB 1000:GOSUB 29000:X1=X2:Y1=Y2 31070 IF A$=CHR$(43) THEN INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL:VTAB 10:HTAB 40:PRINT"M":INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 30002 31080 IF A$="B" THEN X2=X1:Y2=Y1:GOTO 32000 31090 GOTO 31000 32000 INVERSE:VTAB X1:HTAB Y1:PRINT"B":B=1:XS=X1:YS=Y1:NORMAL 32010 INVERSE:VTAB 23:HTAB 11:GET A$:VTAB 23:HTAB 11:PRINT A$:NORMAL 32066 IF A$=CHR$(25) THEN X2=X1-1:Y2=Y1:GOSUB 1000:GOSUB 49000:VTAB 10:HTAB 40:PRINT"M":GOSUB 40000:X1=X2:Y1=Y2 32067 IF A$=CHR$(7) THEN X2=X1:Y2=Y1-1:GOSUB 1000:GOSUB 49000:VTAB 10:HTAB 40:PRINT"M":GOSUB 40000:X1=X2:Y1=Y2 32068 IF A$=CHR$(8) THEN X2=X1:Y2=Y1+1:GOSUB 1000:GOSUB 49000:VTAB 10:HTAB 40:PRINT"M":GOSUB 40000:X1=X2:Y1=Y2 32069 IF A$=CHR$(2) THEN X2=X1+1:Y2=Y1:GOSUB 1000:GOSUB 49000:VTAB 10:HTAB 40:PRINT"M":GOSUB 40000:X1=X2:Y1=Y2 32070 IF A$=CHR$(43) THEN GOSUB 49000:INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL:VTAB 10:HTAB 40:PRINT"M":GOTO 31000 32072 IF A$="I" THEN Q1=1:GOSUB 40000:GOSUB 49500:NORMAL:VTAB 10:HTAB 40:PRINT"M":GOTO 32010 32074 IF A$="J" THEN Q2=1:GOSUB 40000:GOSUB 49500:NORMAL:VTAB 10:HTAB 40:PRINT"M":GOTO 32010 32076 IF A$="K" THEN Q3=1:GOSUB 40000:GOSUB 49500:NORMAL:VTAB 10:HTAB 40:PRINT"M":GOTO 32010 32078 IF A$="M" THEN Q4=1:GOSUB 40000:GOSUB 49500:NORMAL:VTAB 10:HTAB 40:PRINT"M":GOTO 32010 32079 REM IF A$="E" THEN NORMAL:VTAB 10:HTAB 40:PRINT"M":GOSUB 14900:GOTO 31000 32080 GOTO 32010 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 A9=10:B9=40:C8=10:D9=38:E1=0:FF=1 33012 N(1)=1:N(2)=2:N(3)=3:N(4)=4:N(5)=5:N(6)=6:N(7)=7:N(8)=8 33014 H$="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 A9:PRINT B9:PRINT C8:PRINT D9:PRINT E1:PRINT N(1):PRINT N(2):PRINT N(3):PRINT N(4):PRINT N(5):PRINT N(6):PRINT N(7):PRINT N(8):PRINT H$:PRINT FF 33184 PRINT CHR$(4);"CLOSE";F$+".INDEX" 33186 INVERSE:VTAB 23:HTAB 50:PRINT" ":VTAB 23:HTAB 12:PRINT" ":NORMAL 33190 GOTO 60 39000 IF X1=10 AND Y1=40 THEN 39040 39002 IF X1=XS AND Y1=YS THEN 39030 39010 IF B(X1,Y1)=1 THEN NORMAL:VTAB X1:HTAB Y1:PRINT"$" 39020 IF B(X1,Y1)=0 THEN NORMAL:VTAB X1:HTAB Y1:PRINT" " 39030 IF X2=10 AND Y2=40 THEN 39050 39040 INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL 39050 RETURN 40000 IF X2>XS AND Y2>YS THEN 40100 40010 IF X2YS THEN 42100 40030 IF X2>XS AND Y2XS THEN 44100 40050 IF Y2=YS AND X2YS THEN 46100 40070 IF X2=XS AND Y279 THEN 50118 50114 IF B(I,J)=1 THEN VTAB I:HTAB J+2*ABS(Y2-J)+1:PRINT"$":B(I,J+2*ABS(Y2-J)+1)=1 50116 IF B(I,J)=0 THEN VTAB I:HTAB J+2*ABS(Y2-J)+1:PRINT" ":B(I,J+2*ABS(Y2-J)+1)=0 50118 NEXT J 50119 NEXT I 50120 RETURN 50200 REM 50202 FOR I=XS TO X2 50204 K=0 50212 FOR J=YS TO Y2 50213 K=K+1 50214 IF YS-K<1 THEN 50218 50215 IF B(I,J)=1 THEN VTAB I:HTAB YS-K:PRINT"$":B(I,YS-K)=1 50216 IF B(I,J)=0 THEN VTAB I:HTAB YS-K:PRINT" ":B(I,YS-K)=0 50218 NEXT J 50219 NEXT I 50220 RETURN 50300 K=0 50302 FOR I=XS TO X2 50304 K=K+1 50312 FOR J=YS TO Y2 50314 IF XS-K<1 THEN 50318 50315 IF B(I,J)=1 THEN VTAB XS-K:HTAB J:PRINT"$":B(XS-K,J)=1 50316 IF B(I,J)=0 THEN VTAB XS-K:HTAB J:PRINT" ":B(XS-K,J)=0 50318 NEXT J 50319 NEXT I 50320 RETURN 50400 FOR I=XS TO X2 50412 FOR J=YS TO Y2 50413 IF I+2*ABS(X2-I)+1>19 THEN 50418 50414 IF B(I,J)=1 THEN VTAB I+2*ABS(X2-I)+1:HTAB J:PRINT"$":B(I+2*ABS(X2-I)+1,J)=1 50416 IF B(I,J)=0 THEN VTAB I+2*ABS(X2-I)+1:HTAB J:PRINT" ":B(I+2*ABS(X2-I)+1,J)=0 50418 NEXT J 50419 NEXT I 50420 RETURN 51100 FOR I=X2 TO XS 51112 FOR J=Y2 TO YS 51113 IF J+2*ABS(YS-J)+1>79 THEN 51118 51114 IF B(I,J)=1 THEN VTAB I:HTAB J+2*ABS(YS-J)+1:PRINT"$":B(I,J+2*ABS(YS-J)+1)=1 51116 IF B(I,J)=0 THEN VTAB I:HTAB J+2*ABS(YS-J)+1:PRINT" ":B(I,J+2*ABS(YS-J)+1)=0 51118 NEXT J 51119 NEXT I 51120 RETURN 51200 REM 51202 FOR I=X2 TO XS 51204 K=0 51212 FOR J=Y2 TO YS 51213 K=K+1 51214 IF Y2-K<1 THEN 51218 51215 IF B(I,J)=1 THEN VTAB I:HTAB Y2-K:PRINT"$":B(I,Y2-K)=1 51216 IF B(I,J)=0 THEN VTAB I:HTAB Y2-K:PRINT" ":B(I,Y2-K)=0 51218 NEXT J 51219 NEXT I 51220 RETURN 51300 K=0 51302 FOR I=X2 TO XS 51304 K=K+1 51312 FOR J=Y2 TO YS 51314 IF X2-K<1 THEN 51318 51315 IF B(I,J)=1 THEN VTAB X2-K:HTAB J:PRINT"$":B(X2-K,J)=1 51316 IF B(I,J)=0 THEN VTAB X2-K:HTAB J:PRINT" ":B(X2-K,J)=0 51318 NEXT J 51319 NEXT I 51320 RETURN 51400 FOR I=X2 TO XS 51412 FOR J=Y2 TO YS 51413 IF I+2*ABS(XS-I)+1>19 THEN 51418 51414 IF B(I,J)=1 THEN VTAB I+2*ABS(XS-I)+1:HTAB J:PRINT"$":B(I+2*ABS(XS-I)+1,J)=1 51416 IF B(I,J)=0 THEN VTAB I+2*ABS(XS-I)+1:HTAB J:PRINT" ":B(I+2*ABS(XS-I)+1,J)=0 51418 NEXT J 51419 NEXT I 51420 RETURN 52100 FOR I=X2 TO XS 52112 FOR J=YS TO Y2 52113 IF J+2*ABS(Y2-J)+1>79 THEN 52118 52114 IF B(I,J)=1 THEN VTAB I:HTAB J+2*ABS(Y2-J)+1:PRINT"$":B(I,J+2*ABS(Y2-J)+1)=1 52116 IF B(I,J)=0 THEN VTAB I:HTAB J+2*ABS(Y2-J)+1:PRINT" ":B(I,J+2*ABS(Y2-J)+1)=0 52118 NEXT J 52119 NEXT I 52120 RETURN 52200 REM 52202 FOR I=X2 TO XS 52204 K=0 52212 FOR J=YS TO Y2 52213 K=K+1 52214 IF YS-K<1 THEN 52218 52215 IF B(I,J)=1 THEN VTAB I:HTAB YS-K:PRINT"$":B(I,YS-K)=1 52216 IF B(I,J)=0 THEN VTAB I:HTAB YS-K:PRINT" ":B(I,YS-K)=0 52218 NEXT J 52219 NEXT I 52220 RETURN 52300 K=0 52302 FOR I=X2 TO XS 52304 K=K+1 52312 FOR J=YS TO Y2 52314 IF X2-K<1 THEN 52318 52315 IF B(I,J)=1 THEN VTAB X2-K:HTAB J:PRINT"$":B(X2-K,J)=1 52316 IF B(I,J)=0 THEN VTAB X2-K:HTAB J:PRINT" ":B(X2-K,J)=0 52318 NEXT J 52319 NEXT I 52320 RETURN 52400 FOR I=X2 TO XS 52412 FOR J=YS TO Y2 52413 IF I+2*ABS(XS-I)+1>19 THEN 52418 52414 IF B(I,J)=1 THEN VTAB I+2*ABS(XS-I)+1:HTAB J:PRINT"$":B(I+2*ABS(XS-I)+1,J)=1 52416 IF B(I,J)=0 THEN VTAB I+2*ABS(XS-I)+1:HTAB J:PRINT" ":B(I+2*ABS(XS-I)+1,J)=0 52418 NEXT J 52419 NEXT I 52420 RETURN 53100 FOR I=XS TO X2 53112 FOR J=Y2 TO YS 53113 IF J+2*ABS(YS-J)+1>79 THEN 53118 53114 IF B(I,J)=1 THEN VTAB I:HTAB J+2*ABS(YS-J)+1:PRINT"$":B(I,J+2*ABS(YS-J)+1)=1 53116 IF B(I,J)=0 THEN VTAB I:HTAB J+2*ABS(YS-J)+1:PRINT" ":B(I,J+2*ABS(YS-J)+1)=0 53118 NEXT J 53119 NEXT I 53120 RETURN 53200 REM 53202 FOR I=XS TO X2 53204 K=0 53212 FOR J=Y2 TO YS 53213 K=K+1 53214 IF Y2-K<1 THEN 53218 53215 IF B(I,J)=1 THEN VTAB I:HTAB Y2-K:PRINT"$":B(I,Y2-K)=1 53216 IF B(I,J)=0 THEN VTAB I:HTAB Y2-K:PRINT" ":B(I,Y2-K)=0 53218 NEXT J 53219 NEXT I 53220 RETURN 53300 K=0 53302 FOR I=XS TO X2 53304 K=K+1 53312 FOR J=Y2 TO YS 53314 IF XS-K<1 THEN 53318 53315 IF B(I,J)=1 THEN VTAB XS-K:HTAB J:PRINT"$":B(XS-K,J)=1 53316 IF B(I,J)=0 THEN VTAB XS-K:HTAB J:PRINT" ":B(XS-K,J)=0 53318 NEXT J 53319 NEXT I 53320 RETURN 53400 FOR I=XS TO X2 53412 FOR J=Y2 TO YS 53413 IF I+2*ABS(X2-I)+1>19 THEN 53418 53414 IF B(I,J)=1 THEN VTAB I+2*ABS(X2-I)+1:HTAB J:PRINT"$":B(I+2*ABS(X2-I)+1,J)=1 53416 IF B(I,J)=0 THEN VTAB I+2*ABS(X2-I)+1:HTAB J:PRINT" ":B(I+2*ABS(X2-I)+1,J)=0 53418 NEXT J 53419 NEXT I 53420 RETURN 54100 FOR I=XS TO X2 54113 IF Y2+1>79 THEN 54119 54114 IF B(I,Y2)=1 THEN VTAB I:HTAB Y2+1:PRINT"$":B(I,Y2+1)=1 54116 IF B(I,Y2)=0 THEN VTAB I:HTAB Y2+1:PRINT" ":B(I,Y2+1)=0 54119 NEXT I 54120 RETURN 54200 FOR I=XS TO X2 54213 IF Y2-1<1 THEN 54219 54214 IF B(I,Y2)=1 THEN VTAB I:HTAB Y2-1:PRINT"$":B(I,Y2-1)=1 54216 IF B(I,Y2)=0 THEN VTAB I:HTAB Y2-1:PRINT" ":B(I,Y2-1)=0 54219 NEXT I 54220 RETURN 54300 K=0 54302 FOR I=XS TO X2 54304 K=K+1 54313 IF XS-K<1 THEN 54319 54314 IF B(I,Y2)=1 THEN VTAB XS-K:HTAB Y2:PRINT"$":B(XS-K,Y2)=1 54316 IF B(I,Y2)=0 THEN VTAB XS-K:HTAB Y2:PRINT" ":B(XS-K,Y2)=0 54319 NEXT I 54320 RETURN 54400 FOR I=XS TO X2 54413 IF I+2*ABS(X2-I)+1>19 THEN 54419 54414 IF B(I,Y2)=1 THEN VTAB I+2*ABS(X2-I)+1:HTAB Y2:PRINT"$":B(I+2*ABS(X2-I)+1,Y2)=1 54416 IF B(I,Y2)=0 THEN VTAB I+2*ABS(X2-I)+1:HTAB Y2:PRINT" ":B(I+2*ABS(X2-I)+1,Y2)=0 54419 NEXT I 54420 RETURN 55100 FOR I=X2 TO XS 55113 IF Y2+1>79 THEN 55119 55114 IF B(I,Y2)=1 THEN VTAB I:HTAB Y2+1:PRINT"$":B(I,Y2+1)=1 55116 IF B(I,Y2)=0 THEN VTAB I:HTAB Y2+1:PRINT" ":B(I,Y2+1)=0 55119 NEXT I 55120 RETURN 55200 FOR I=X2 TO XS 55213 IF Y2-1<1 THEN 55219 55214 IF B(I,Y2)=1 THEN VTAB I:HTAB Y2-1:PRINT"$":B(I,Y2-1)=1 55216 IF B(I,Y2)=0 THEN VTAB I:HTAB Y2-1:PRINT" ":B(I,Y2-1)=0 55219 NEXT I 55220 RETURN 55300 K=0 55302 FOR I=X2 TO XS 55304 K=K+1 55313 IF X2-K<1 THEN 55319 55314 IF B(I,Y2)=1 THEN VTAB X2-K:HTAB Y2:PRINT"$":B(X2-K,Y2)=1 55316 IF B(I,Y2)=0 THEN VTAB X2-K:HTAB Y2:PRINT" ":B(X2-K,Y2)=0 55319 NEXT I 55320 RETURN 55400 FOR I=X2 TO XS 55413 IF I+2*ABS(XS-I)+1>19 THEN 55419 55414 IF B(I,Y2)=1 THEN VTAB I+2*ABS(XS-I)+1:HTAB Y2:PRINT"$":B(I+2*ABS(XS-I)+1,Y2)=1 55416 IF B(I,Y2)=0 THEN VTAB I+2*ABS(XS-I)+1:HTAB Y2:PRINT" ":B(I+2*ABS(XS-I)+1,Y2)=0 55419 NEXT I 55420 RETURN 56100 FOR I=YS TO Y2 56113 IF I+2*ABS(Y2-I)+1>79 THEN 56119 56114 IF B(X2,I)=1 THEN VTAB X2:HTAB I+2*ABS(Y2-I)+1:PRINT"$":B(X2,I+2*ABS(Y2-I)+1)=1 56116 IF B(X2,I)=0 THEN VTAB X2:HTAB I+2*ABS(Y2-I)+1:PRINT" ":B(X2,I+2*ABS(Y2-I)+1)=0 56119 NEXT I 56120 RETURN 56200 K=0 56202 FOR I=YS TO Y2 56206 K=K+1 56213 IF YS-K<1 THEN 56219 56214 IF B(X2,I)=1 THEN VTAB X2:HTAB YS-K:PRINT"$":B(X2,YS-K)=1 56216 IF B(X2,I)=0 THEN VTAB X2:HTAB YS-K:PRINT" ":B(X2,YS-K)=0 56219 NEXT I 56220 RETURN 56300 FOR I=YS TO Y2 56313 IF X2-1<1 THEN 56319 56314 IF B(X2,I)=1 THEN VTAB X2-1:HTAB I:PRINT"$":B(X2-1,I)=1 56316 IF B(X2,I)=0 THEN VTAB X2-1:HTAB I:PRINT" ":B(X2-1,I)=0 56319 NEXT I 56320 RETURN 56400 FOR I=YS TO Y2 56413 IF X2+1>19 THEN 56419 56414 IF B(X2,I)=1 THEN VTAB X2+1:HTAB I:PRINT"$":B(X2+1,I)=1 56416 IF B(X2,I)=0 THEN VTAB X2+1:HTAB I:PRINT" ":B(X2+1,I)=0 56419 NEXT I 56420 RETURN 57100 FOR I=Y2 TO YS 57113 IF I+2*ABS(YS-I)+1>79 THEN 57119 57114 IF B(X2,I)=1 THEN VTAB X2:HTAB I+2*ABS(YS-I)+1:PRINT"$":B(X2,I+2*ABS(YS-I)+1)=1 57116 IF B(X2,I)=0 THEN VTAB X2:HTAB I+2*ABS(YS-I)+1:PRINT" ":B(X2,I+2*ABS(YS-I)+1)=0 57119 NEXT I 57120 RETURN 57200 K=0 57202 FOR I=Y2 TO YS 57206 K=K+1 57213 IF Y2-K<1 THEN 57219 57214 IF B(X2,I)=1 THEN VTAB X2:HTAB Y2-K:PRINT"$":B(X2,Y2-K)=1 57216 IF B(X2,I)=0 THEN VTAB X2:HTAB Y2-K:PRINT" ":B(X2,Y2-K)=0 57219 NEXT I 57220 RETURN 57300 FOR I=Y2 TO YS 57313 IF X2-1<1 THEN 57319 57314 IF B(X2,I)=1 THEN VTAB X2-1:HTAB I:PRINT"$":B(X2-1,I)=1 57316 IF B(X2,I)=0 THEN VTAB X2-1:HTAB I:PRINT" ":B(X2-1,I)=0 57319 NEXT I 57320 RETURN 57400 FOR I=Y2 TO YS 57413 IF X2+1>19 THEN 57419 57414 IF B(X2,I)=1 THEN VTAB X2+1:HTAB I:PRINT"$":B(X2+1,I)=1 57416 IF B(X2,I)=0 THEN VTAB X2+1:HTAB I:PRINT" ":B(X2+1,I)=0 57419 NEXT I 57420 RETURN 58100 IF Y2+1>79 THEN 58120 58102 IF B(X2,Y2)=1 THEN VTAB X2:HTAB Y2+1:PRINT"$":B(X2,Y2+1)=1 58110 IF B(X2,Y2)=0 THEN VTAB X2:HTAB Y2+1:PRINT" ":B(X2,Y2+1)=0 58120 RETURN 58200 IF Y2-1<1 THEN 58220 58202 IF B(X2,Y2)=1 THEN VTAB X2:HTAB Y2-1:PRINT"$":B(X2,Y2-1)=1 58210 IF B(X2,Y2)=0 THEN VTAB X2:HTAB Y2-1:PRINT" ":B(X2,Y2-1)=0 58220 RETURN 58300 IF X2-1<1 THEN 58320 58302 IF B(X2,Y2)=1 THEN VTAB X2-1:HTAB Y2:PRINT"$":B(X2-1,Y2)=1 58310 IF B(X2,Y2)=0 THEN VTAB X2-1:HTAB Y2:PRINT" ":B(X2-1,Y2)=0 58320 RETURN 58400 IF X2+1>19 THEN 58420 58402 IF B(X2,Y2)=1 THEN VTAB X2+1:HTAB Y2:PRINT"$":B(X2+1,Y2)=1 58410 IF B(X2,Y2)=0 THEN VTAB X2+1:HTAB Y2:PRINT" ":B(X2+1,Y2)=0 58420 RETURN