10 HOME 20 PRINT CHR$(4);"PR#3" 22 HOME 23 DIM B(20,80) 24 DIM C(1600) 26 X1=10:Y1=42:X9=10:Y9=40:V8=10:V9=38:BB=0:LL=0:O1=0:C6=0:G1=0:MA=0:I9=1:CC=0 27 FOR I=1 TO 8:M(I)=I:NEXT I 30 ONERR GOTO 31 31 INVERSE:VTAB 1:HTAB 30:PRINT"MOUSETRAP TOOL":VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 1:INPUT"INPUT A NUMBER BETWEEN 1 TO 999 : ";RDS:NORMAL 32 IF RDS<1 OR RDS>999 THEN 31 33 ONERR GOTO 34 34 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 35 IF G$<>" " THEN 34 36 NORMAL:D2=1:GOSUB 15800 39 NORMAL:HOME:ONERR GOTO 22200 44 VTAB 10:HTAB 40:PRINT " " 45 VTAB 10:HTAB 40:PRINT "M" 50 INVERSE:VTAB 10:HTAB 42:PRINT "$":NORMAL 52 VTAB 20:HTAB 4:PRINT"B - BUILD":VTAB 20:HTAB 15:PRINT"R - RUN":VTAB 20:HTAB 25:PRINT"S - SAVE MAZE":VTAB 20:HTAB 66:PRINT"DOLLAR : 0" 54 VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 21:HTAB 25:PRINT"L - LOAD MAZE":VTAB 21:HTAB 42:PRINT"X - CATALOG":VTAB 21:HTAB 55:PRINT" ":VTAB 21:HTAB 66:PRINT" STEP : 0" 56 VTAB 22:HTAB 6:PRINT"CONTROL":VTAB 22:HTAB 15:PRINT"Q - QUIT":VTAB 22:HTAB 25:PRINT"C - CLEAR SCN":VTAB 22:HTAB 42:PRINT" ":VTAB 22:HTAB 66:PRINT"RESTEP : 0" 58 INVERSE:VTAB 23:HTAB 1:PRINT" ":NORMAL 59 GOSUB 1200 60 NO=0:R1=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 IF MA=1 THEN NORMAL:VTAB 23:HTAB 45:PRINT"SET" 65 IF MA=0 THEN NORMAL:VTAB 23:HTAB 45:PRINT"RND" 66 VTAB X9:HTAB Y9:PRINT"M":INVERSE:VTAB X1:HTAB Y1:PRINT"$":VTAB 23:HTAB 1:PRINT"COMMAND : ":VTAB 23:HTAB 15:PRINT T$:PX=127:PY=127:VTAB 23:HTAB 11:GET A$:GOSUB 60000:VTAB 23:HTAB 11:PRINT A$:NORMAL 72 IF A$="Q" THEN 9000 73 IF A$="B" THEN 52000 160 IF A$="R" THEN 6000 170 IF A$="S" THEN 15000 180 IF A$="L" THEN 15100 182 IF A$="C" THEN 15500 184 IF A$="X" THEN 15800 186 IF A$="E" AND C6>0 THEN 6300 192 IF A$=CHR$(15) THEN 30000 194 IF A$=CHR$(9) THEN 55000 196 IF A$=CHR$(1) THEN MA=0:NORMAL:VTAB 23:HTAB 45:PRINT"RND" 197 IF A$=CHR$(20) THEN 34000 198 IF A$=CHR$(19) THEN 54000 199 IF A$=CHR$(18) THEN 41000 200 GOTO 60 300 X4=X9:Y4=Y9:I1=1:S1=0:H2=0:RU=1:XO=X9:YO=Y9:BT=BB 301 VTAB 20:HTAB 44:PRINT" ":VTAB 21:HTAB 74:PRINT" 0":VTAB 22:HTAB 74:PRINT" 0":INVERSE:VTAB 23:HTAB 66:PRINT" ":NORMAL 302 INVERSE:VTAB 23:HTAB 1:PRINT" RUNNING ":NORMAL 307 GOSUB 26000 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 311 IF B(X9,Y9)=3 THEN B(X9,Y9)=0:VTAB X9:HTAB Y9:PRINT"M":TS=TS-1:GOSUB 29550 312 IF B(V8,V9)=1 AND G1>0 THEN B(V8,V9)=0:VTAB V8:HTAB V9:PRINT"T":BB=BB-1:GOSUB 1200 313 IF B(V8,V9)=3 AND G1>0 THEN B(V8,V9)=0:VTAB V8:HTAB V9:PRINT"T":TS=TS-1:GOSUB 29550 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 44:PRINT"NO EXIT":NORMAL:GOTO 60 315 VTAB X4:HTAB Y4:PRINT"M" 320 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1+1:GOSUB 53000:PY=PY+1:PX=PX+1 321 IF PDL(0)PY AND PDL(1)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1-1:GOSUB 53000:PY=PY-1:PX=PX+1 324 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1+1:GOSUB 53000:PY=PY+1:PX=PX 325 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1:GOSUB 53000:PY=PY:PX=PX+1 328 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1+1:GOSUB 53300:PY=PY+1:PX=PX+1 329 IF PDL(0) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1-1:GOSUB 53300:PY=PY-1:PX=PX-1 330 IF PDL(0)>PY AND PDL(1) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1+1:GOSUB 53300:PY=PY+1:PX=PX-1 331 IF PDL(0)PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1-1:GOSUB 53300:PY=PY-1:PX=PX+1 332 IF PDL(0)>PY AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1+1:GOSUB 53300:PY=PY+1:PX=PX 333 IF PDL(0) 127 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1-1:GOSUB 53300:PY=PY-1:PX=PX 334 IF PDL(1) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1:GOSUB 53300:PY=PY:PX=PX-1 335 IF PDL(1)>PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1:GOSUB 53300:PY=PY:PX=PX+1 336 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1+1:GOSUB 53400:PY=PY+1:PX=PX+1 337 IF PDL(0) 127 THEN X2=X1-1:Y2=Y1-1:GOSUB 53400:PY=PY-1:PX=PX-1 338 IF PDL(0)>PY AND PDL(1) 127 THEN X2=X1-1:Y2=Y1+1:GOSUB 53400:PY=PY+1:PX=PX-1 339 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1-1:GOSUB 53400:PY=PY-1:PX=PX+1 340 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1:Y2=Y1+1:GOSUB 53400:PY=PY+1:PX=PX 341 IF PDL(0) 127 THEN X2=X1:Y2=Y1-1:GOSUB 53400:PY=PY-1:PX=PX 342 IF PDL(1) 127 THEN X2=X1-1:Y2=Y1:GOSUB 53400:PY=PY:PX=PX-1 343 IF PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1:GOSUB 53400:PY=PY:PX=PX+1 385 X5=X4:Y5=Y4 386 FOR I8=1 TO 8 388 IF M(I8)=4 AND (B(X4+1,Y4-1)=0 OR B(X4+1,Y4-1)=3) THEN XX=X4+1:YY=Y4-1:Q=5:F1=1:GOTO 530 389 IF M(I8)=3 AND (B(X4+1,Y4)=0 OR B(X4+1,Y4)=3) THEN XX=X4+1:YY=Y4:Q=4:F1=2:GOTO 530 390 IF M(I8)=2 AND (B(X4+1,Y4+1)=0 OR B(X4+1,Y4+1)=3) THEN XX=X4+1:YY=Y4+1:Q=6:F1=3:GOTO 530 391 IF M(I8)=1 AND (B(X4,Y4+1)=0 OR B(X4,Y4+1)=3) THEN XX=X4:YY=Y4+1:Q=3:F1=4:GOTO 530 392 IF M(I8)=8 AND (B(X4-1,Y4+1)=0 OR B(X4-1,Y4+1)=3) THEN XX=X4-1:YY=Y4+1:Q=7:F1=5:GOTO 530 393 IF M(I8)=7 AND (B(X4-1,Y4)=0 OR B(X4-1,Y4)=3) THEN XX=X4-1:YY=Y4:Q=2:F1=6:GOTO 530 394 IF M(I8)=6 AND (B(X4-1,Y4-1)=0 OR B(X4-1,Y4-1)=3) THEN XX=X4-1:YY=Y4-1:Q=8:F1=7:GOTO 530 395 IF M(I8)=5 AND (B(X4,Y4-1)=0 OR B(X4,Y4-1)=3) THEN XX=X4:YY=Y4-1:Q=1:F1=8:GOTO 530 398 NEXT I8 400 I1=I1-1:IF I1<1 THEN I1=1 410 A7=C(I1):C(I1)=9999: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 389,390,391,392,393,394,395,400 540 C(I1)=Q:I1=I1+1 550 VTAB X4:HTAB Y4:PRINT" " 552 IF B(XX,YY)=3 THEN 556 554 B(XX,YY)=2 556 IF G1>0 AND XX=V8 AND YY=V9 THEN VTAB X5:HTAB Y5:PRINT" ":GOSUB 27000:S1=0:H2=0:X9=XO:Y9=YO:GOTO 650 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:X9=XO:Y9=YO:GOTO 650 570 X4=XX:Y4=YY:VTAB X4:HTAB Y4:PRINT"M":VTAB X5:HTAB Y5:PRINT" " 572 IF B(X5,Y5)=3 THEN VTAB X5:HTAB Y5:PRINT"$":B(X5,Y5)=1:GOSUB 29500:GOSUB 29800:GOSUB 26042:CI=1:GOSUB 6000:X9=X4:Y9=Y4:R1=0:I1=1 575 IF XX=X9 AND YY=Y9 THEN R1=R1+1:GOSUB 28000 577 IF R1>8 THEN R1=0:NO=1:INVERSE:VTAB 20:HTAB 44:PRINT"NO EXIT":NORMAL:X9=XO:Y9=YO: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 612 IF S1>9999 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 AND B(I,J)<>3) THEN B(I,J)=0 690 NEXT J 700 NEXT I 705 INVERSE:VTAB 23:HTAB 15:PRINT" ":NORMAL 710 GOTO 60 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 IF H2>9999 THEN N2=N2-1 930 VTAB N1:HTAB N2: PRINT H2 940 RETURN 950 IF X2<1 THEN X2=1 952 IF X2>19 THEN X2=19 954 IF Y2<1 THEN Y2=1 956 IF Y2>79 THEN Y2=79 960 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 OR B(X1,Y1)=3 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 IF BB<100000 AND BB>9999 THEN NN1=74 1250 VTAB 20:HTAB 74:PRINT" " 1260 VTAB 20:HTAB NN1:PRINT BB 1270 RETURN 6000 IF MA=1 AND CI=1 THEN CI=0:RETURN 6001 IF MA=1 THEN 300 6002 T$="":VTAB 21:HTAB 15:PRINT"E - ECHO" 6005 C6=C6+1 6030 INVERSE:VTAB 23:HTAB 1:PRINT" WAITING ":NORMAL 6040 FOR I=1 TO RDS 6050 SF=INT(RND(999)*8+1):SG=INT(RND(999)*8+1) 6060 TG=M(SF):M(SF)=M(SG):M(SG)=TG 6070 NEXT I 6080 FOR I=1 TO 8 6090 S(I)=M(I) 6095 NEXT I 6100 GOSUB 46100 6110 IF CI=1 THEN CI=0:RETURN 6298 GOTO 300 6300 IF MA=1 THEN 300 6301 T$="" 6302 FOR I=1 TO 8 6310 M(I)=S(I) 6320 NEXT I 6322 GOSUB 46100 6330 GOTO 300 7000 IF X1=V8 AND Y1=V9 THEN B(X1,Y1)=0:NORMAL:VTAB X1:HTAB Y1:PRINT"T" 7010 RETURN 9000 HOME:PRINT CHR$(4);"CATALOG"+",D1,S6":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 REM 15012 PRINT CHR$(4);"OPEN";F$ 15020 PRINT CHR$(4);"WRITE";F$ 15030 FOR I=1 TO 19 15040 FOR J=1 TO 79 15042 IF B(I,J)=3 THEN PRINT 0:GOTO 15060 15050 PRINT B(I,J) 15060 NEXT J 15070 NEXT I 15080 PRINT CHR$(4);"CLOSE";F$ 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 REM 15110 REM 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 REM 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 IF M(5)=0 THEN FOR I=1 TO 8:M(I)=I:NEXT I:T$="R DR D DL L UL U UR " 15187 REM 15188 REM GOSUB 55000 15189 REM 15193 IF G1>0 THEN INVERSE:VTAB 23:HTAB 50:PRINT"TARGET MODE ":NORMAL 15194 IF G1=0 THEN RN=1:GOSUB 41000 15196 NORMAL:VTAB 20:HTAB 44:PRINT" " 15197 IF MA=1 THEN C6=0:NORMAL:VTAB 21:HTAB 15:PRINT" " 15198 IF MA=0 THEN C6=C6+1:FOR I=1 TO 8:S(I)=M(I):NEXT I:VTAB 21:HTAB 15:PRINT"E - ECHO" 15199 LL=1:RU=0:GOSUB 1200:GOTO 15820 15200 BB=0:VTAB 20:HTAB 74:PRINT" ":VTAB 21:HTAB 74:PRINT" 0":VTAB 22:HTAB 74: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"$" 15222 IF B(I,J)=3 THEN INVERSE:VTAB I:HTAB J:PRINT"T":NORMAL 15224 IF B(I,J)=0 THEN VTAB I:HTAB J:PRINT" " 15230 NEXT J 15240 NEXT I 15242 GOSUB 29500 15250 RETURN 15500 NORMAL:VTAB 20:HTAB 44: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 15548 BB=0 15549 VTAB 20:HTAB 74:PRINT" 0":VTAB 21:HTAB 74:PRINT" 0":VTAB 22:HTAB 74:PRINT" 0" 15550 FOR I=0 TO 1600:C(I)=0:NEXT I 15560 GOTO 60 15800 HOME 15802 PRINT CHR$(4);"CATALOG"+",D2,S6" 15810 PRINT:PRINT"":NORMAL:GET CT$:PRINT CT$ 15820 HOME:BB=0:TS=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 15852 IF B(I,J)=3 THEN INVERSE:VTAB I:HTAB J:PRINT"T":NORMAL:TS=TS+1 15860 NEXT J 15870 NEXT I 15871 IF D2=1 THEN D2=0:RETURN 15872 GOSUB 29550 15880 IF TA=1 THEN RETURN 15990 GOTO 52 22200 INVERSE:VTAB 23:HTAB 50:PRINT"ERROR OCCURED":NORMAL:FOR I=1 TO 50000:NEXT I:GOTO 60 26000 NORMAL 26002 FOR I=1 TO 19 26010 FOR J=1 TO 79 26020 IF (B(I,J)<>1 AND B(I,J)<>3) THEN VTAB I:HTAB J:PRINT" " 26030 NEXT J 26040 NEXT I 26042 FOR I=0 TO 1600:C(I)=0:NEXT I 26050 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 28000 IF R1>8 THEN RETURN 28010 INVERSE:VTAB 23:HTAB 66:PRINT"ROOT PASS : ";R1:NORMAL 28020 RETURN 29000 IF (X1=X9 AND Y1=Y9) OR (G1>0 AND X1=V8 AND Y1=V9) THEN 29040 29010 IF B(X1,Y1)=1 THEN NORMAL:VTAB X1:HTAB Y1:PRINT"$" 29020 IF B(X1,Y1)=0 OR B(X1,Y1)=2 THEN NORMAL:VTAB X1:HTAB Y1:PRINT" " 29022 IF B(X1,Y1)=3 AND TA=0 THEN INVERSE:VTAB X1:HTAB Y1:PRINT"T":NORMAL 29030 REM IF (X2=X9 AND Y2=Y9) OR (G1>0 AND X2=V8 AND Y2=V9) THEN 29050 29040 INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL 29050 RETURN 29500 TS=0:BB=0 29502 FOR I=1 TO 19 29510 FOR J=1 TO 79 29520 IF B(I,J)=3 THEN TS=TS+1 29522 IF B(I,J)=1 THEN BB=BB+1 29530 NEXT J 29540 NEXT I 29550 INVERSE:VTAB 20:HTAB 53:PRINT"TRAP":NORMAL:VTAB 20:HTAB 58:PRINT" ":VTAB 20:HTAB 58:PRINT TS 29556 GOSUB 1200 29560 RETURN 29800 FOR I=1 TO 19 29810 FOR J=1 TO 79 29820 IF B(I,J)=2 THEN B(I,J)=0 29830 NEXT J 29840 NEXT I 29860 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 1:PRINT"COMMAND : CHANGE ORIGINAL POSITION ":NORMAL 30010 INVERSE:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":NORMAL 30020 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X9=X8+1:Y9=Y8+1:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9:PY=PY+1:PX=PX+1 30030 IF PDL(0)PY AND PDL(1)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X9=X8+1:Y9=Y8-1:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9:PY=PY-1:PX=PX+1 30060 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X9=X8:Y9=Y8+1:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9:PY=PY+1:PX=PX 30070 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X9=X8+1:Y9=Y8:GOSUB 32000:GOSUB 31000:X8=X9:Y8=Y9:PY=PY:PX=PX+1 30082 IF PEEK (49249) > 127 AND PEEK (49250) < 128 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" " 31011 IF B(X8,Y8)=3 THEN INVERSE:VTAB X8:HTAB Y8:PRINT"T":NORMAL 31012 IF X8=V8 AND Y8=V9 AND G1>0 THEN NORMAL:VTAB V8:HTAB V9:PRINT"T" 31014 IF X8=X1 AND Y8=Y1 THEN INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL 31020 NORMAL:VTAB X9:HTAB Y9:PRINT"M" 31050 RETURN 32000 IF X9<1 THEN X9=1 32010 IF X9>19 THEN X9=19 32020 IF Y9<1 THEN Y9=1 32030 IF Y9>79 THEN Y9=79 32040 RETURN 34000 G1=G1+1 34002 G8=10:G9=38 34003 IF G1>1 OR LL=1 THEN G8=V8:G9=V9:NORMAL:VTAB G8:HTAB G9:PRINT"T":GOTO 34007 34004 NORMAL:VTAB G8:HTAB G9:PRINT"T" 34007 INVERSE:VTAB 23:HTAB 1:PRINT"COMMAND : CHANGE TARGET POSITION ":NORMAL 34010 INVERSE:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":NORMAL 34020 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN V8=G8+1:V9=G9+1:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9:PY=PY+1:PX=PX+1 34030 IF PDL(0)PY AND PDL(1)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN V8=G8+1:V9=G9-1:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9:PY=PY-1:PX=PX+1 34060 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN V8=G8:V9=G9+1:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9:PY=PY+1:PX=PX 34070 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN V8=G8+1:V9=G9:GOSUB 37000:GOSUB 35000:G8=V8:G9=V9:PY=PY:PX=PX+1 34082 IF PEEK (49249) > 127 AND PEEK (49250) < 128 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" " 35011 IF B(G8,G9)=3 THEN INVERSE:VTAB G8:HTAB G9:PRINT"T":NORMAL 35012 IF G8=X9 AND G9=Y9 THEN NORMAL:VTAB X9:HTAB Y9:PRINT"M" 35014 IF G8=X1 AND G9=Y1 THEN INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL 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 B(X9,Y9)=3 THEN INVERSE:VTAB 23:HTAB 50:PRINT"STAND ON THE TRAP ":GOTO 30010 36002 IF V8=10 AND V9=38 THEN 36010 36004 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:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":GOTO 60 37000 IF V8<1 THEN V8=1 37010 IF V8>19 THEN V8=19 37020 IF V9<1 THEN V9=1 37030 IF V9>79 THEN V9=79 37040 RETURN 38000 IF B(V8,V9)=1 THEN INVERSE:VTAB 23:HTAB 50:PRINT"STAND ON THE DOLLAR SIGN":GOTO 34010 38001 IF B(V8,V9)=3 THEN INVERSE:VTAB 23:HTAB 50:PRINT"STAND ON THE TRAP ":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:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":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 IF RN=1 THEN 41006 41001 IF B(V8,V9)=1 THEN B(V8,V9)=0:BB=BB-1:GOSUB 1200 41002 NORMAL:VTAB V8:HTAB V9:PRINT" ":G1=0:V8=10:V9=38 41006 INVERSE:VTAB 23:HTAB 50:PRINT"COMMON MODE ":NORMAL 41008 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 41060 IF RN=1 THEN RN=0:RETURN 41090 GOTO 64 46100 FOR I=1 TO 8 46102 IF M(I)=1 THEN P$(I)="R " 46104 NEXT I 46110 FOR I=1 TO 8 46112 IF M(I)=2 THEN P$(I)="DR " 46114 NEXT I 46120 FOR I=1 TO 8 46122 IF M(I)=3 THEN P$(I)="D " 46124 NEXT I 46130 FOR I=1 TO 8 46132 IF M(I)=4 THEN P$(I)="DL " 46134 NEXT I 46140 FOR I=1 TO 8 46142 IF M(I)=5 THEN P$(I)="L " 46144 NEXT I 46150 FOR I=1 TO 8 46152 IF M(I)=6 THEN P$(I)="UL " 46154 NEXT I 46160 FOR I=1 TO 8 46162 IF M(I)=7 THEN P$(I)="U " 46164 NEXT I 46170 FOR I=1 TO 8 46172 IF M(I)=8 THEN P$(I)="UR " 46174 NEXT I 46200 FOR I=1 TO 8 46202 T$=T$+P$(I)+" " 46206 NEXT I 46300 RETURN 52000 INVERSE:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":NORMAL 52002 IF V8=10 AND V9=38 AND G1=0 THEN 52004 52003 IF G1>0 THEN NORMAL:VTAB V8:HTAB V9:PRINT"T" 52004 VTAB X9:HTAB Y9:PRINT"M":INVERSE:VTAB X1:HTAB Y1:PRINT"$":NORMAL 52006 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1+1:GOSUB 53000:PY=PY+1:PX=PX+1 52007 IF PDL(0)PY AND PDL(1)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1-1:GOSUB 53000:PY=PY-1:PX=PX+1 52010 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1+1:GOSUB 53000:PY=PY+1:PX=PX 52012 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1:GOSUB 53000:PY=PY:PX=PX+1 52021 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1+1:GOSUB 53100:PY=PY+1:PX=PX+1 52022 IF PDL(0) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1-1:GOSUB 53100:PY=PY-1:PX=PX-1 52024 IF PDL(0)>PY AND PDL(1) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1+1:GOSUB 53100:PY=PY+1:PX=PX-1 52026 IF PDL(0)PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1-1:GOSUB 53100:PY=PY-1:PX=PX+1 52030 IF PDL(0)>PY AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1+1:GOSUB 53100:PY=PY+1:PX=PX 52032 IF PDL(0) 127 AND PEEK (49250) < 128 THEN X2=X1:Y2=Y1-1:GOSUB 53100:PY=PY-1:PX=PX 52034 IF PDL(1) 127 AND PEEK (49250) < 128 THEN X2=X1-1:Y2=Y1:GOSUB 53100:PY=PY:PX=PX-1 52036 IF PDL(1)>PX AND PEEK (49249) > 127 AND PEEK (49250) < 128 THEN X2=X1+1:Y2=Y1:GOSUB 53100:PY=PY:PX=PX+1 52041 IF PDL(0)>PY AND PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1+1:GOSUB 53200:PY=PY+1:PX=PX+1 52042 IF PDL(0) 127 THEN X2=X1-1:Y2=Y1-1:GOSUB 53200:PY=PY-1:PX=PX-1 52044 IF PDL(0)>PY AND PDL(1) 127 THEN X2=X1-1:Y2=Y1+1:GOSUB 53200:PY=PY+1:PX=PX-1 52046 IF PDL(0)PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1-1:GOSUB 53200:PY=PY-1:PX=PX+1 52050 IF PDL(0)>PY AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1:Y2=Y1+1:GOSUB 53200:PY=PY+1:PX=PX 52052 IF PDL(0) 127 THEN X2=X1:Y2=Y1-1:GOSUB 53200:PY=PY-1:PX=PX 52054 IF PDL(1) 127 THEN X2=X1-1:Y2=Y1:GOSUB 53200:PY=PY:PX=PX-1 52056 IF PDL(1)>PX AND PEEK (49249) < 128 AND PEEK (49250) > 127 THEN X2=X1+1:Y2=Y1:GOSUB 53200:PY=PY:PX=PX+1 52990 IF PEEK (49249) > 127 AND PEEK (49250) > 127 THEN NORMAL:VTAB 21:HTAB 5:PRINT"PADDLE":VTAB 22:HTAB 6:PRINT"CONTROL":GOTO 60 52998 GOTO 52000 53000 GOSUB 950:GOSUB 29000:X1=X2:Y1=Y2 53010 RETURN 53100 GOSUB 950:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT"$":GOSUB 1100:B(X1,Y1)=1:GOSUB 29500:X1=X2:Y1=Y2 53110 RETURN 53200 GOSUB 950:INVERSE:VTAB X2:HTAB Y2:PRINT"$":NORMAL:VTAB X1:HTAB Y1:PRINT" ":GOSUB 1150:B(X1,Y1)=0:GOSUB 29500:X1=X2:Y1=Y2 53210 RETURN 53300 GOSUB 950:GOSUB 29000:B(X1,Y1)=3:INVERSE:VTAB X1:HTAB Y1:PRINT"T":GOSUB 7000:NORMAL:GOSUB 29500:X1=X2:Y1=Y2 53310 RETURN 53400 GOSUB 950:GOSUB 29000:B(X1,Y1)=0:VTAB X1:HTAB Y1:PRINT" ":GOSUB 7000:GOSUB 29500:X1=X2:Y1=Y2 53410 RETURN 54000 INVERSE:VTAB 23:HTAB 1:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 54005 INVERSE:VTAB 23:HTAB 50:PRINT"SAVING":NORMAL 54007 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 54009 IF LEN(F$) > 24 THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 54000 54010 PRINT CHR$(4);"OPEN";F$+".TRAP" 54020 PRINT CHR$(4);"WRITE";F$+".TRAP" 54030 FOR I=1 TO 19 54040 FOR J=1 TO 79 54050 PRINT B(I,J) 54060 NEXT J 54070 NEXT I 54080 PRINT CHR$(4);"CLOSE";F$+".TRAP" 54100 PRINT CHR$(4);"OPEN";F$+".TRAP"+".INDEX" 54120 PRINT CHR$(4);"WRITE";F$+".TRAP"+".INDEX" 54150 PRINT I9 54180 PRINT CHR$(4);"CLOSE";F$+".TRAP"+".INDEX" 54190 GOTO 60 55000 INVERSE:VTAB 23:HTAB 12:PRINT" ":VTAB 23:HTAB 1:INPUT"FILENAME : ";F$:NORMAL 55005 INVERSE:VTAB 23:HTAB 50:PRINT"LOADING":NORMAL 55006 IF F$=CHR$(43) THEN INVERSE:VTAB 23:HTAB 12:PRINT" ":NORMAL:GOTO 60 55020 PRINT CHR$(4);"READ";F$+".TRAP" 55030 FOR I=1 TO 19 55040 FOR J=1 TO 79 55042 IF B(I,J)=3 THEN B(I,J)=0 55050 INPUT B(0,0) 55052 IF B(0,0)=3 THEN B(I,J)=3 55060 NEXT J 55070 NEXT I 55080 PRINT CHR$(4);"CLOSE";F$+".TRAP" 55100 REM 55120 PRINT CHR$(4);"READ";F$+".TRAP"+".INDEX" 55150 INPUT I9 55180 PRINT CHR$(4);"CLOSE";F$+".TRAP"+".INDEX" 55190 GOTO 15193 59000 RQ=RDS 59006 FOR L=1 TO RQ 59010 TE=RND(RQ) 59020 NEXT L 59040 RQ=TE 59060 X1=INT(RND(RQ)*19+1):Y1=INT(RND(RQ)*79+1) 59090 RETURN 60000 IF A$=CHR$(10) OR A$=CHR$(13) OR A$=CHR$(22) OR A$=CHR$(12) OR A$=CHR$(11) OR A$=CHR$(17) OR A$=CHR$(23) OR A$=CHR$(21) OR A$=CHR$(27) THEN A$=" " 60002 RETURN