image of READY prompt

Wang2200.org

Listing of file='CATDELUX' on disk='vmedia/games-droz01.wvd.zip'

# Sector 76, program filename = 'CATDELUX'
0001 REM  *****  'CAT & MOUSE' 9/28/81 WRITTEN BY JAMES LESNICK MD, PHILADELPH
     IA, PA.
0005 DIM F(24,38),H(10),H$(10)8,W$20,L$(10)2,N$(10)3 ,N1$(10)3
0006 DATA LOAD DC OPEN T "CATDATA"
0007 FOR I=1 TO 10
   : DATA LOAD DC N$(I),H(I)
   : NEXT I
0010 PRINT HEX(03060202020F)
   : P5=100
   : K=3
   : S=0
   : H=3
0015 K$=HEX(C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0)
0016 K1$=HEX(C8CCFFFFC8CCFFFFC8CCFFFFC8CC)
0020 REM  ----   THIS IS THE FIELD
0030 DATA 3,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,
     1,1,1,3
0031 DATA 1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
     0,0,0,1
0032 DATA 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
     0,0,0,1
0033 DATA 1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
     0,0,0,1
0034 DATA 1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,1,0,0,0,0,1,1,
     1,1,1,1
0035 DATA 1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,1,0,
     0,0,0,1
0036 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0037 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0038 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0039 DATA 1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,
     1,1,1,1
0040 DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,0
0041 DATA 2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,
     1,1,1,2
0042 DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,0
0043 DATA 1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,
     1,1,1,1
0044 DATA 1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,0,0,0,0,1,0,
     0,0,0,1
0045 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0046 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0047 DATA 1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,
     0,0,0,1
0048 DATA 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,
     0,0,0,1
0049 DATA 1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,
     1,1,1,1
0050 DATA 1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
     0,0,0,1
0051 DATA 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
     0,0,0,1
0052 DATA 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,
     0,0,0,1
0053 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
     1,1,1,3
0100 PRINT AT(0,1);BOX(24,77)
0105 PRINT AT(10,24);BOX(4,31);
0106 PRINT AT(1,4);BOX(3,7);AT(1,68);BOX(3,7);
0107 PRINT AT(0,14);BOX(1,19);BOX(0,-19);
0108 PRINT AT(1,36);BOX(3,9);
0109 PRINT AT(0,48);BOX(1,17);AT(0,48);BOX(0,-17);
0110 PRINT AT(2,14);BOX(1,19);AT(2,48);BOX(1,17);
0111 PRINT AT(12,1);BOX(1,10);AT(10,1);BOX(1,10);BOX(-3,0);AT(10,68);BOX(1,10)
     ;AT(12,68);BOX(1,10);AT(10,78);BOX(-3,0);
0112 PRINT AT(5,4);BOX(4,7);AT(5,68);BOX(4,7);
0113 PRINT AT(4,14);BOX(7,7);AT(4,58);BOX(7,7);
0114 PRINT AT(6,24);BOX(3,9);AT(6,48);BOX(3,7);
0115 PRINT AT(4,24);BOX(1,9);AT(4,48);BOX(1,7);
0116 PRINT AT(5,36);BOX(4,3);AT(5,42);BOX(4,3);
0117 PRINT AT(10,39);BOX(0,-3);
0118 PRINT AT(20,4);BOX(3,7);AT(20,68);BOX(3,7);
0119 PRINT AT(21,14);BOX(2,19);
0120 PRINT AT(21,48);BOX(2,17);
0121 PRINT AT(18,36);BOX(5,9);
0122 PRINT AT(14,4);BOX(5,7);AT(14,68);BOX(5,7);
0123 PRINT AT(12,14);BOX(8,7);AT(12,58);BOX(8,7);
0124 PRINT AT(18,24);BOX(2,9);AT(18,48);BOX(2,7);
0125 PRINT AT(15,24);BOX(2,15);AT(15,42);BOX(2,13);
0180 PRINT AT(0,16);HEX(9120912091);
0190 E1=0
   : FOR I= 1 TO 24
   : FOR J= 1 TO 38
   : READ F(I,J)
   : IF F(I,J)=1 THEN E1=E1+1
   : IF F(I,J)=3 THEN E1=E1+1
   : NEXT J
   : NEXT I
   : RESTORE
0193 PRINT AT(0,50);HEX(020402020E);STR(K1$,1,(K*4)-2);HEX(020402020F);
0195 FOR Y=0 TO 23
   : FOR X=2 TO 76 STEP 2
   : IF F(Y+1,X/2)=1 THEN PRINT AT(Y,X);HEX(C8C4);
   : IF F(Y+1,X/2)=3 THEN PRINT AT(Y,X);HEX(FFFF);
   : IF F(Y+1,X/2)=2 THEN PRINT AT(Y,X);HEX(C0C0);
   : NEXT X
   : NEXT Y
0196 PRINT AT(11,27);HEX(D7C3C0D7EBC2EBC3E0F8F0C0DDD8D5EAC3D5EAC0D5CAD3C1D7C3C
     0C0)
0197 PRINT AT(12,27);HEX(F5F0C0D7EBC0EAC0C0C2C0C0D5C0D5EAF0D5EAF0D5E0F2D4F7F0C
     0)
0198 E=0
0199 IF S>0 THEN 200
   : PRINT AT(13,30);HEX(02040B000E);
   : INPUT "INSTRUCTIONS (Y OR N)",N1$(1)
   : PRINT HEX(020400000E);HEX(06);
   : IF N1$(1)="Y" THEN 9000
0200 REM --- MAIN PROGRAM LOOP ---
0201 X=40
   : Y=14
   : A$="8"
   : F=0
0202 PRINT AT(13,30);HEX(02040B000E);"HIT 'RETURN' TO START   ";HEX(020400000E
     );
0203 KEYIN B$,204,203
   : GOTO 203
0204 IF B$<>HEX(0D) THEN 203
   : PRINT AT(13,30);K$;STR(K$,1,10);
   : PRINT AT(0,62-(4*(4-K)));STR(K$,1,4);
0205 L1,M1,N1,O1=40
   : L2,M2,N2,O2=10
   : C=0
   : C1=1
   : M=0
   : L3,M3,N3,O3=0
0225 IF A$<>"0" THEN 230
   : IF H=0 THEN 230
   : A=5
   : A$="5"
   : PRINT AT(Y,X);HEX(C0C0);
0226 X=2*INT((INT(RND(1)*100)+(100/38))/(100/38))
0227 Y=INT((INT(RND(1)*100))/(99/23))
0228 IF F(Y+1,X/2)=0 THEN 226
   : IF F(Y+1,X/2)=3 THEN 226
   : IF F(Y+1,X/2)=2 THEN 229
   : GOSUB '5 (1)
   : F(Y+1,X/2)=2
0229 PRINT AT(Y,X);HEX(020402020E);HEX(C8CC);HEX(020400000E);
   : H=H-1
   : PRINT AT(0,16+(H*2));HEX(20);
   : IF F=1 THEN 190
   : GOTO 300
0230 IF A$<>"2" THEN 240
   : A=2
   : GOTO 300
0240 IF A$<>"4" THEN 245
   : A=4
   : GOTO 300
0245 IF A$<>"5" THEN 250
   : A=5
   : GOTO 300
0250 IF A$<> "6" THEN 260
   : A=6
   : GOTO 300
0260 IF A$<> "8" THEN 300
   : A=8
0300 IF A=5 THEN 320
   : ON A/2 GOSUB 1200,1100,1000,1300
   : IF F=1 THEN 190
   : IF F=2 THEN 200
0305 KEYIN A$,310,310
0310 GOSUB 2000
   : IF F=2 THEN 200
   : GOTO 225
0320 FOR P=1 TO P5*2
   : NEXT P
   : C=C-1
   : GOTO 305
1000 FOR I=X TO 76 STEP 2
   :                REM    HORIZONTAL -->
1002 C=C-1
1005 PRINT HEX(020402020E);AT(Y,I);HEX(C8CC);HEX(020402020F);
1006 IF Y<> 11 THEN 1007
   : IF I<>74 THEN 1007
   : PRINT AT(Y,I);HEX(C0C0);AT(11,2);HEX(F7F3);
   : I=2
   : GOTO 1008
1007 IF I<76 THEN 1008
   : FOR P=1 TO P5*2
   : NEXT P
   : GOTO 1055
1008 IF F(Y+1,(I/2)+1)=0 THEN 1180
   : IF C<=0 THEN 1090
   : IF F(Y+1,(I/2)+1)=5 THEN GOSUB '15(I+2,Y)
1010 PRINT AT(Y,I);HEX(C0);HEX(020402020E);AT(Y,I+1);HEX(C0C0);
1020 FOR P=1 TO P5
   : NEXT P
1030 PRINT HEX(020402020F);AT(Y,I+1);HEX(C0);HEX(020402020E);HEX(C8CC);HEX(020
     402020F);
1035 FOR P=1 TO P5
   : NEXT P
1037 IF F(Y+1,(I/2)+1)<>3 THEN 1040
   : C=30
   : S1=100
1040 GOSUB '5(F(Y+1,(I/2)+1))
   : IF F=1 THEN RETURN
   : F(Y+1,(I/2)+1)=2
1041 X=I+2
   : GOSUB 2000
   : IF F=2 THEN RETURN
1045 KEYIN A$,1070,1050
1050 NEXT I
1055 X=76
1060 RETURN
1070 X=I+2
   : RETURN
1090 IF F(Y+1,(I/2)+1)=5 THEN 1180
   : GOTO 1010
1100 FOR I= X TO 2 STEP -2
   :             REM    HORIZONTAL <--
1102 C=C-1
1105 PRINT HEX(020402020E);AT(Y,I);HEX(CCC4);HEX(020402020F);
1106 IF Y<> 11 THEN 1107
   : IF I<>4 THEN 1107
   : PRINT AT(Y,I);HEX(C0C0);AT(11,76);HEX(F3FB);
   : I=76
   : GOTO 1108
1107 IF I>2 THEN 1108
   : FOR P=1 TO P5*2
   : NEXT P
   : GOTO 1155
1108 IF F(Y+1,(I/2)-1)=0 THEN 1180
   : IF C<=0 THEN 1190
   : IF F(Y+1,(I/2)-1)=5 THEN GOSUB '15(I-2,Y)
1110 PRINT HEX(020402020E);AT(Y,I-1);HEX(C0C0);HEX(020402020F);HEX(C0);
1120 FOR P=1 TO P5
   : NEXT P
1130 PRINT HEX(020402020E);AT(Y,I-2);HEX(CCC4);HEX(020402000F);HEX(C0);
1135 FOR P=1 TO P5
   : NEXT P
1137 IF F(Y+1,(I/2)-1)<>3 THEN 1140
   : C=30
   : S1=100
1140 GOSUB '5 (F(Y+1,(I/2)-1))
   : IF F= 1 THEN RETURN
   : F(Y+1,(I/2)-1)=2
1141 X=I-2
   : GOSUB 2000
   : IF F= 2 THEN RETURN
1145 KEYIN A$,1170,1150
1150 NEXT I
1155 X=2
1160 RETURN
1170 X=I-2
   : RETURN
1180 X=I
   : FOR P=1 TO P5*2
   : NEXT P
   : GOSUB 2000
   : RETURN
1190 IF F(Y+1,(I/2)-1)=5 THEN 1180
   : GOTO 1110
1200 FOR I=Y TO 23
   :              REM    VERTICAL DOWN
1202 C=C-1
1205 PRINT HEX(020402020E);AT(I,X);HEX(E8D4);HEX(020402020F);
1207 IF I<23 THEN 1208
   : FOR P=1 TO P5*2
   : NEXT P
   : GOTO 1255
1208 IF F(I+2,X/2)=0 THEN 1380
   : IF C<=0 THEN 1290
   : IF F(I+2,X/2)=5 THEN GOSUB '15(X,I+1)
1210 PRINT AT(I,X);HEX(C0C0);HEX(020402020E);AT(I+1,X);HEX(C0C0);
1220 FOR P=1 TO P5
   : NEXT P
1230 PRINT AT(I+1,X);HEX(E8D4);HEX(020402020F);
1235 FOR P=1 TO P5
   : NEXT P
1237 IF F(I+2,X/2)<>3 THEN 1240
   : C=30
   : S1=100
1240 GOSUB '5 (F(I+2,X/2))
   : IF F=1 THEN RETURN
   : F(I+2,X/2) = 2
1241 Y=I+1
   : GOSUB 2000
   : IF F=2 THEN RETURN
1245 KEYIN A$,1270,1250
1250 NEXT I
1255 Y=23
1260 RETURN
1270 Y=I+1
   : RETURN
1290 IF F(I+2,X/2)=5 THEN 1380
   : GOTO 1210
1300 FOR I= Y TO 0 STEP -1
   :            REM    VERTICAL UP
1302 C=C-1
1305 PRINT HEX(020402020E);AT(I,X);HEX(CAC5);HEX(020402020F);
1306 IF I>0 THEN 1308
   : FOR P=1 TO P5*2
   : NEXT P
   : GOTO 1355
1308 IF F(I,X/2)=0 THEN 1380
   : IF C<=0 THEN 1390
   : IF F(I,X/2)=5 THEN GOSUB '15(X,I-1)
1310 PRINT AT(I,X);HEX(C0C008080C);HEX(020402020E);HEX(C0C0);
1320 FOR P=1 TO P5
   : NEXT P
1330 PRINT AT(I-1,X);HEX(CAC5);HEX(020402020F);
1335 FOR P=1 TO P5
   : NEXT P
1337 IF F(I,X/2)<>3 THEN 1340
   : C=30
   : S1=100
1340 GOSUB '5 (F(I,X/2))
   : IF F=1 THEN RETURN
   : F(I,X/2)=2
1341 Y=I-1
   : GOSUB 2000
   : IF F=2 THEN RETURN
1345 KEYIN A$,1370,1350
1350 NEXT I
1355 Y=0
1360 RETURN
1370 Y=I-1
   : RETURN
1380 Y=I
   : FOR P=1 TO P5*2
   : NEXT P
   : GOSUB 2000
   : RETURN
1390 IF F(I,X/2)=5 THEN 1380
   : GOTO 1310
2000 IF C<=0 THEN 2005
   : C1=C1*(-1)
   : IF C1 =-1 THEN 2005
   : FOR P=1 TO P5*8
   : NEXT P
   : RETURN
2005 IF M=4 THEN 2040
2010 IF RND(1)>.975 THEN M=M+1
2020 IF M=0 THEN 2075
2030 ON M GOTO 2070,2060,2050,2040
2040 GOSUB '10 (O1,O2,O3)
   : IF F=2 THEN RETURN
   : O1=X2
   : O2=Y2
   : O3=B
2050 GOSUB '10 (N1,N2,N3)
   : IF F=2 THEN RETURN
   : N1=X2
   : N2=Y2
   : N3=B
2060 GOSUB '10 (M1,M2,M3)
   : IF F=2 THEN RETURN
   : M1=X2
   : M2=Y2
   : M3=B
2070 GOSUB '10 (L1,L2,L3)
   : IF F=2 THEN RETURN
   : L1=X2
   : L2=Y2
   : L3=B
2075 FOR P=1 TO P5*(8-2*M)
   : NEXT P
2090 RETURN
2100 DEFFN'0 (X1,Y1)
   :                  REM    CATS  --->
2110 IF X1 = 76 THEN RETURN
2115 IF X1<>74 THEN 2120
   : IF Y1=11 THEN 2180
2120 IF F(Y1+1,(X1/2)+1)=0 THEN RETURN
   : IF F(Y1+1,(X1/2)+1)=5 THEN RETURN
2125 IF C>0 THEN 2130
   : IF Y1<>Y THEN 2130
   : IF X1+2=X THEN 5000
2130 PRINT AT(Y1,X1);HEX(C0C0);
   : IF C>10 THEN 2132
2131 IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
2132 PRINT HEX(D9D9);
2140 FOR P = 1 TO P5*2
   : NEXT P
2150 PRINT HEX(020400000E);
2164 F(Y1+1,X1/2)=B
2165 IF B=1 THEN PRINT AT(Y1,X1);HEX(C8C4);
   : IF B=3 THEN PRINT AT(Y1,X1);HEX(FFFF);
2166 B=F(Y1+1,(X1/2)+1)
   : F(Y1+1,(X1/2)+1)=5
2170 Z=1
   : RETURN
2180 IF F(12,2)=5 THEN RETURN
2185 IF B=1 THEN PRINT AT(11,74);HEX(C8C4);
   : ELSE PRINT AT(11,74);HEX(C0C0);
2190 PRINT AT(11,4);
   : IF C>10 THEN 2196
   : IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
   : PRINT HEX(D9D9);HEX(020400000E);
2195 F(12,37)=B
   : B=F(12,2)
   : F(12,2)=5
   : X2=2
   : Z=1
   : RETURN
2196 PRINT HEX(D9D9);
   : GOTO 2195
2200 DEFFN'1 (X1,Y1)
   :                 REM    CATS  <---
2210 IF X1=2 THEN RETURN
2215 IF X1<>4 THEN 2220
   : IF Y1=11 THEN 2280
2220 IF F(Y1+1,(X1/2)-1)=0 THEN RETURN
   : IF F(Y1+1,(X1/2)-1)=5 THEN RETURN
2225 IF C>0 THEN 2230
   : IF Y1<>Y THEN 2230
   : IF X1-2 = X THEN 5000
2230 PRINT AT(Y1,X1-2);
   : IF C>10 THEN 2235
2231 IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
2235 PRINT HEX(D9D9);HEX(020400000E);HEX(C0C0);
2240 FOR P=1 TO P5*2
   : NEXT P
2264 F(Y1+1,X1/2)=B
2265 IF B=1 THEN PRINT AT(Y1,X1);HEX(C8C4);
   : IF B=3 THEN PRINT AT(Y1,X1);HEX(FFFF);
2266 B=F(Y1+1,(X1/2)-1)
   : F(Y1+1,(X1/2)-1)=5
2270 Z=1
   : RETURN
2280 IF F(12,37)=5 THEN RETURN
2285 IF B=1 THEN PRINT AT(11,4);HEX(C8C4);
   : ELSE PRINT AT(11,4);HEX(C0C0);
2290 PRINT AT(11,74);
   : IF C>10 THEN 2296
   : IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
   : PRINT HEX(D9D9);HEX(020400000E);
2295 F(12,2)=B
   : B=F(12,37)
   : F(12,37)=5
   : X2=76
   : Z=1
   : RETURN
2296 PRINT HEX(D9D9);
   : GOTO 2295
2300 DEFFN'2 (X1,Y1)
   :                REM    CATS UP
2310 IF Y1=0 THEN RETURN
2320 IF F(Y1,X1/2)= 0 THEN RETURN
   : IF F(Y1,X1/2)=5 THEN RETURN
2322 IF C>0 THEN 2325
   : IF Y1-1<>Y THEN 2325
   : IF X1=X THEN 5000
2325 F(Y1+1,X1/2)=B
2327 IF B<3 THEN 2330
   : PRINT AT(Y1,X1);HEX(FFFF);
   : GOTO 2335
2330 IF B=1 THEN PRINT AT(Y1,X1);HEX(C8C4);
   : ELSE PRINT AT(Y1,X1);HEX(C0C0);
2335 B=F(Y1,X1/2)
   : F(Y1,X1/2)=5
2340 PRINT AT(Y1-1,X1);
   : IF C>10 THEN 2345
2342 IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
2345 PRINT HEX(D9D9);HEX(020400000E);
2350 FOR P=1 TO P5*2
   : NEXT P
2370 Z=1
   : RETURN
2400 DEFFN'3 (X1,Y1)
   :              REM    CATS DOWN
2410 IF Y1=23 THEN RETURN
2420 IF F(Y1+2,X1/2) = 0 THEN RETURN
   : IF F(Y1+2,X1/2)=5 THEN RETURN
2422 IF C>0 THEN 2423
   : IF Y1+1 <> Y THEN 2423
   : IF X1=X THEN 5000
2423 F(Y1+1,X1/2)=B
2424 IF B<3 THEN 2425
   : PRINT AT(Y1,X1);HEX(FFFF);
   : GOTO 2427
2425 IF B=1 THEN PRINT AT(Y1,X1);HEX(C8C4);
   : ELSE PRINT AT(Y1,X1);HEX(C0C0);
2427 B=F(Y1+2,X1/2)
   : F(Y1+2,X1/2)=5
2430 PRINT AT(Y1+1,X1);
   : IF C>10 THEN 2435
2432 IF C>0 THEN PRINT HEX(02040B020E);
   : ELSE PRINT HEX(020402020E);
2435 PRINT HEX(D9D9);HEX(020400000E);
2440 FOR P=1 TO P5*2
   : NEXT P
2470 Z=1
   : RETURN
3000 DEFFN'10(X2,Y2,B)
   : REM ***** MOVE CATS *****
3005 Z=0
   : IF C>0 THEN 3500
3010 IF X>X2 THEN 3100
   : REM    CATS ARE CHASING
3020 IF X<X2 THEN 3200
3030 IF Y<Y2 THEN 3300
3040 GOSUB '3 (X2,Y2)
   : IF Z=0 THEN 3060
   : Y2=Y2+1
   : RETURN
3060 GOSUB '0 (X2,Y2)
   : IF Z=0 THEN 3070
   : X2=X2+2
   : RETURN
3070 GOSUB '1 (X2,Y2)
   : IF Z=0 THEN 3400
   : X2=X2-2
   : RETURN
3100 GOSUB '0 (X2,Y2)
   : IF Z=0 THEN 3110
   : X2=X2+2
   : RETURN
3110 IF Y>Y2 THEN 3120
   : GOSUB '2(X2,Y2)
   : IF Z=0 THEN 3120
   : Y2=Y2-1
   : RETURN
3120 GOSUB '3(X2,Y2)
   : IF Z=0 THEN 3130
   : Y2=Y2+1
   : RETURN
3130 GOSUB '2(X2,Y2)
   : IF Z=0 THEN 3400
   : Y2=Y2-1
   : RETURN
3200 GOSUB '1 (X2,Y2)
   : IF Z=0 THEN 3110
   : X2=X2-2
   : RETURN
3300 GOSUB '2 (X2,Y2)
   : IF Z=0 THEN 3060
   : Y2=Y2-1
   : RETURN
3400 FOR P=1 TO P5*2
   : NEXT P
   : RETURN
3500 IF Y<Y2 THEN 3600
   : REM    CATS ARE BEING CHASED
3520 IF Y>Y2 THEN 3700
3530 IF X<X2 THEN 3800
3540 GOSUB '1 (X2,Y2)
   : IF Z=0 THEN 3550
   : X2=X2-2
   : RETURN
3550 GOSUB '2 (X2,Y2)
   : IF Z=0 THEN 3560
   : Y2=Y2-1
   : RETURN
3560 GOSUB '3 (X2,Y2)
   : IF Z=0 THEN 3400
   : Y2=Y2+1
   : RETURN
3600 GOSUB '3 (X2,Y2)
   : IF Z=0 THEN 3610
   : Y2=Y2+1
   : RETURN
3610 IF X>X2 THEN 3620
   : GOSUB '0 (X2,Y2)
   : IF Z=0 THEN 3620
   : X2=X2+2
   : RETURN
3620 GOSUB '1 (X2,Y2)
   : IF Z=0 THEN 3630
   : X2=X2-2
   : RETURN
3630 GOSUB '0 (X2,Y2)
   : IF Z=0 THEN 3400
   : X2=X2+2
   : RETURN
3700 GOSUB '2 (X2,Y2)
   : IF Z=0 THEN 3610
   : Y2=Y2-1
   : RETURN
3800 GOSUB '0 (X2,Y2)
   : IF Z=0 THEN 3550
   : X2=X2+2
   : RETURN
4000 REM  ****  SCORING ROUTINE  ****
4010 DEFFN'5 (Z)
4020 IF Z=1 THEN S=S+10
4030 IF Z=3 THEN S=S+50
4040 IF Z=2 THEN 4100
   : E=E+1
4100 PRINT AT(0,25);HEX(020402000E);S;HEX(020400000E);
4110 IF E=E1 THEN GOSUB 5200
4200 RETURN
4500 DEFFN'15(X1,Y1)
4505 S=S+S1
4510 PRINT HEX(020402000E);AT(Y1,X1-1);S1;HEX(07);AT(0,25);S;HEX(020400000E);
4520 FOR P=1 TO 3000
   : NEXT P
   : S1=S1*2
4525 PRINT AT(Y1,X1-1);HEX(C0C0C0C0);
4530 F(Y1+1,X1/2)=2
4600 IF L1<>X1 THEN 4700
   : IF L2<>Y1 THEN 4700
   : E2=L3
4610 L1=M1
   : L2=M2
   : L3=M3
4620 M1=N1
   : M2=N2
   : M3=N3
4630 N1=O1
   : N2=O2
   : N3=O3
4640 ON M GOTO 4650,4660,4670,4680
4650 L1=40
   : L2=10
   : M=0
   : IF E2=1 THEN GOSUB 4800
   : L3=0
   : RETURN
4660 M1=40
   : M2=10
   : M=1
   : IF E2=1 THEN GOSUB 4800
   : M3=0
   : RETURN
4670 N1=40
   : N2=10
   : M=2
   : IF E2=1 THEN GOSUB 4800
   : N3=0
   : RETURN
4680 O1=40
   : O2=10
   : M=3
   : IF E2=1 THEN GOSUB 4800
   : O3=0
   : RETURN
4700 IF M1<>X1 THEN 4710
   : IF M2<>Y1 THEN 4710
   : E2=M3
   : GOTO 4620
4710 IF N1<>X1 THEN 4720
   : IF N2<>Y1 THEN 4720
   : E2=N3
   : GOTO 4630
4720 E2=O3
   : GOTO 4640
4800 E=E+1
   : IF E=E1 THEN GOSUB 5200
   : RETURN
5000 REM *** MOUSE CAPTURED ***
5010 PRINT HEX(07);
5020 K=K-1
5040 PRINT AT(Y,X);HEX(C0C0);
5050 ON M GOTO 5090,5080,5070,5060
5060 IF O3=1 THEN PRINT AT(O2,O1);HEX(C8C4);
   : IF O3=2 THEN PRINT AT(O2,O1);HEX(C0C0);
   : IF O3=3 THEN PRINT AT(O2,O1);HEX(FFFF);
   : F(O2+1,O1/2)=O3
5070 IF N3=1 THEN PRINT AT(N2,N1);HEX(C8C4);
   : IF N3=2 THEN PRINT AT(N2,N1);HEX(C0C0);
   : IF N3=3 THEN PRINT AT(N2,N1);HEX(FFFF);
   : F(N2+1,N1/2)=N3
5080 IF M3=1 THEN PRINT AT(M2,M1);HEX(C8C4);
   : IF M3=2 THEN PRINT AT(M2,M1);HEX(C0C0);
   : IF M3=3 THEN PRINT AT(M2,M1);HEX(FFFF);
   : F(M2+1,M1/2)=M3
5090 IF L3=1 THEN PRINT AT(L2,L1);HEX(C8C4);
   : IF L3=2 THEN PRINT AT(L2,L1);HEX(C0C0);
   : IF L3=3 THEN PRINT AT(L2,L1);HEX(FFFF);
   : F(L2+1,L1/2)=L3
5100 IF K=0 THEN 5110
   : F=2
   : Z=1
   : RETURN
5110 PRINT AT(0,52);HEX(02040B000E);"GAME OVER";AT(22,0);
5111 IF S<=H(1) THEN 5125
   : H(1)=S
5112 PRINT AT(10,25);HEX(02040B000E); "        CONGRATULATIONS !        ";HEX(
     020400000E);
5113 PRINT AT(11,25);"   YOU HAVE QUALIFIED FOR THE    ";
5114 PRINT AT(12,25);"    CAT & MOUSE HALL OF FAME     ";
5115 PRINT HEX(0202000F);AT(13,30);
   : N$(1)="   "
   : LINPUT "ENTER YOUR INITIALS",-N$(1)
5116 MAT MOVE H() TO H$()
   : MAT SORT H$() TO W$,L$()
   : MAT MOVE H$(),L$(1) TO H()
5117 MAT MOVE N$(),L$(1) TO N1$()
   : MAT MOVE N1$() TO N$()
5118 DBACKSPACE BEG
   : FOR I=1 TO 10
   : DATA SAVE DC N$(I),H(I)
   : NEXT I
5121 PRINT HEX(03);AT(2,25);HEX(02040B000E);"THE CAT & MOUSE HALL OF FAME";HEX
     (020400000E);
5122 FOR I=10 TO 1 STEP -1
   : PRINT AT(14-I,33);N$(I);"     ";H(I);
   : NEXT I
5125 PRINT AT(13,25);HEX(06);HEX(02040B000E);"HIT 'SF'0 AND PLAY AGAIN";HEX(02
     040B000E);
5130 KEYIN A$,,5140
   : GOTO 5130
5140 IF VAL(A$)=0 THEN 6
   : IF VAL(A$)=31 THEN LOAD T "START"
   : GOTO 5130
5200 K=K+1
   : P5=P5-3
   : F=1
   : IF K<=4 THEN 5210
   : K=4
   : PRINT AT(13,32);HEX(02040B000E);"BONUS 5000 pts";HEX(020400000E);
   : S=S+5000
   : PRINT AT(0,25);S;
   : RETURN
5210 PRINT AT(13,34);HEX(02040B000E);"BONUS MOUSE";HEX(020400000E);
5220 RETURN
9000 PRINT HEX(03);HEX(02040B000E);
9005 PRINT AT(0,27);" THE CAT & MOUSE GAME ";
9010 PRINT AT(2,9);"THE MICE ARE LOOSE IN THE HOUSE AND EATING UP EVERYTHING."
9020 PRINT AT(3,17);"THE CATS HAVE BEEN LET OUT TO CHASE THEM.";HEX(020400000E
     );
9030 PRINT AT(5,20);BOX(2,5);AT(8,20);BOX(2,5);AT(11,20);BOX(2,5);
9040 PRINT AT(8,12);BOX(2,5);AT(8,27);BOX(2,6);
9050 PRINT AT(5,22);"8";AT(6,22);"UP";AT(8,22);"5";AT(9,21);"STOP";AT(11,22);"
     2";AT(12,21);"DOWN";AT(8,14);"4";AT(9,13);"LEFT";AT(8,30);"6";AT(9,28);"R
     IGHT"
9055 PRINT AT(14,12);BOX(2,13);AT(14,18);"0";AT(15,13);"ESCAPE HOLE";
9056 PRINT HEX(02040B000E);AT(14,37);"A MOUSE CAN EAT A HOLE IN A WALL TO ESCA
     PE,";AT(15,37);"BUT THERE'S NO TELLING WHERE HE COMES UP !";HEX(020400000
     E);
9060 PRINT HEX(0202020F);AT(7,40);HEX(C8C4);"  =  CRUMB  10 Pts.";
9070 PRINT AT(9,40);HEX(FFFF);"  =  SUPER CHEESE  50 Pts.";
9080 PRINT AT(11,37);HEX(02040B000E);"WHEN A MOUSE EATS THE 'SUPER CHEESE', HE
     ";AT(12,36);"AQUIRES THE STRENGTH TO CHASE AND EAT CATS."
9100 PRINT HEX(020400000E);HEX(06);AT(18,40);HEX(D9D9);AT(18,50);HEX(D9D9);AT(
     18,60);HEX(D9D9);AT(18,70);HEX(D9D9);
9105 S=100
   : PRINT AT(18,0);"MOUSE -->";AT(17,39);"CATS";HEX(020402020E);
9110 FOR I=10 TO 70 STEP 2
   : IF I=38 THEN 9200
   : IF I=48 THEN 9200
   : IF I=58 THEN 9200
   : IF I=68 THEN 9200
9120 PRINT AT(18,I);HEX(FFFFC8CC);
   : FOR P=1 TO 1500
   : NEXT P
   : NEXT I
   : GOTO 9300
9200 PRINT HEX(020400000E);AT(19,I);HEX(07);S;"Pts";HEX(020402020E);
   : FOR P=1 TO 2500
   : NEXT P
   : S=S*2
   : GOTO 9120
9300 PRINT AT(21,22);" THE CURRENT HIGH SCORE IS ";H(10); AT(23,11);HEX(02040B
     000E);"BEGIN WITH 3 MICE AND 3 HOLES.     HIT 'RETURN' TO START";HEX(0204
     00000E);
9310 KEYIN A$,9320,9310
   : GOTO 9310
9320 IF A$<>HEX(0D)THEN GOTO 9320
   : GOTO 10