10 REM COPYRIGHT 1994 - COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 20 DATA 0,0,0,0,0,0,0,0,0,0,24,0,0,24,0,0,24,0,0,60,0,0,255,0,1,153,128 30 DATA 3,24,192,63,255,252 40 DATA 0,0,0,0,24,0,0,60,0,0,126,0,0,219,0,0,24,0,0,24,0,0,24,0,48,0,12 50 DATA 96,0,6,255,0,255 60 DATA 32,0,0,16,0,0,12,0,0,14,0,0,7,32,0,1,32,0,0,144,0,0,240,0,0,248,96 70 DATA 0,254,240,0,255,240,0,255,224,1,239,192,3,252,192,3,254,0,0,126,0 80 DATA 0,62,0,0,60,0,0,120,0,0,112,0,0,32,0 90 DATA 0,0,64,0,0,238,0,1,254,0,1,254,0,3,252,0,7,248,0,31,240,0,127,224 100 DATA 0,255,240,1,255,144,7,255,0,31,252,0,63,248,0,127,248,0,255,240,0 110 DATA 255,224,0,255,192,0,7,128,0,0,0,0,24,0,0,16,0,0 120 DATA 1,522,1,1,1,2,0,0,0,0 130 DATA 3,527,2,1,2,2,3,1,3,2 140 DATA 1,537,4,1,4,2,0,0,0,0 150 DATA 2,2575,2,3,3,3,0,0,0,0 160 DATA 1,3594,1,4,1,5,0,0,0,0 170 DATA 0,3599,2,4,0,0,0,0,0,0 180 DATA 0,3604,3,4,0,0,0,0,0,0 190 DATA 1,3609,4,4,4,5,0,0,0,0 200 DATA 0,4623,2,5,0,0,0,0,0,0 210 DATA 0,4628,3,5,0,0,0,0,0,0 220 DATA 0,-1,-1,-1,-1,0,-1,1,2,2,3,-1,-1,1,2,2,3,-1,-1,0,4,4,0,-1 230 DATA -1,5,6,7,8,-1,-1,5,9,10,8,-1,0,-1,-1,-1,-1,0 300 REM ---===*** SETUP ***===--- 310 FOR X=0 TO 1 320 FOR Y=0 TO 32:READ Z:POKE 832+X*64+Y,Z:NEXT Y 330 FOR Y=11 TO 20:FOR Z=0 TO 2:POKE 832+X*64+Y*3+Z,PEEK(892+X*64-Y*3+Z) 340 NEXT Z:NEXT Y:NEXT X 350 FOR X=0 TO 1:FOR Y=0 TO 62:READ Z:POKE 16256+X*64+Y,Z:NEXT:NEXT 360 ST$="[207][183][183][183][208][157][157][157][157][157]" 370 SM$="[165] [167][157][157][157][157][157]" 380 SB$="[204][175][175][175][186][157][157][157][157][157]" 390 LT$="[207][183][183][183][183][183][183][183][183][208][157][157][157][157][157][157][157][157][157][157]" 400 LM$="[165] [167][157][157][157][157][157][157][157][157][157][157]" 410 LB$="[204][175][175][175][175][175][175][175][175][186][157][157][157][157][157][157][157][157][157][157]" 420 DIM P$(3),PD(10,4,1),BD(5,6) 430 P$(0)="[150]"+ST$+SM$+SM$+SB$ 440 P$(1)="[158]"+ST$+SM$+SM$+SM$+SM$+SM$+SM$+SB$ 450 P$(2)="[154]"+LT$+LM$+LM$+LB$ 460 P$(3)="[156]"+LT$+LM$+LM$+LM$+LM$+LM$+LM$+LB$ 470 FOR X=1 TO 10:FOR Y=0 TO 4:FOR Z=0 TO 1:READ PD(X,Y,Z):NEXT Z:NEXT Y:NEXT X 480 FOR Y=0 TO 6:FOR X=0 TO 5:READ BD(X,Y):NEXT X:NEXT Y:M=0 490 POKE 53280,0:POKE 53281,0:PRINT"[147]"TAB(7)"[152] " 500 PRINTTAB(7)" WANAKA " 510 FOR X=1 TO 20:PRINTTAB(7)" "SPC(20)" ":NEXT X 520 PRINTTAB(7)" " 530 PRINTTAB(7)" " 540 PRINTTAB(7)"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][146][159]"M 550 FOR P=1 TO 10:GOSUB 3000:NEXT P 560 POKE 53269,7:POKE 53271,0:POKE 53276,0:POKE 53277,0:POKE 53287,6 570 POKE 53288,0:POKE 53289,0:POKE 53250,179:POKE 53251,106:POKE 53252,163 580 POKE 53253,227:POKE 2041,254:POKE 2042,255 590 POKE 2040,13:POKE 53248,111:POKE 53249,72:SX=1:SY=1 600 REM ---===*** MAIN LOOP ***===--- 610 J=31-PEEK(56320) AND 31:IF J=0 THEN 610 620 IF J AND 16 THEN 700 630 IF J AND 1 THEN SY=(SY-1)-(SY=1) 640 IF J AND 2 THEN SY=(SY+1)+(SY=5) 650 IF J AND 4 THEN SX=(SX-1)-(SX=1) 660 IF J AND 8 THEN SX=(SX+1)+(SX=4) 670 POKE 53248,71+40*SX:POKE 53249,40+32*SY 680 FOR X=1 TO 60:NEXT X 690 GOTO 610 700 REM ---===*** SELECTED ***===--- 710 IF BD(SX,SY)=0 THEN 600 720 POKE 53287,1:POKE2040,14 730 J=31-PEEK(56320) AND 31:IF J=16 THEN 730 740 IF(J AND 16)=0 THEN POKE 53287,6:POKE 2040,13:GOTO 600 750 IF J AND 1 THEN 1000 760 IF J AND 2 THEN 1500 770 IF J AND 4 THEN 2000 780 IF J AND 8 THEN 2500 790 GOTO 730 1000 REM ---===*** MOVE UP ***===--- 1010 P=BD(SX,SY):F=0:POKE 53269,6 1020 FOR X=1 TO 4:IF PD(P,X,0)=0 THEN 1040 1030 C=BD(PD(P,X,0),PD(P,X,1)-1):IF C<>0 AND C<>P THEN F=1 1040 NEXT X:IF F THEN POKE 53269,7:GOTO 700 1050 GOSUB 3500:PD(P,0,1)=PD(P,0,1)-1024:GOSUB 3000:GOSUB 4000 1060 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=0:NEXT X 1070 FOR X=1 TO 4:IF PD(P,X,1) THEN PD(P,X,1)=PD(P,X,1)-1 1080 NEXT X 1090 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=P:NEXT X 1100 IF F THEN 4500 1110 SY=SY-1:POKE 53287,6:POKE 2040,13 1120 POKE 53248,71+40*SX:POKE 53249,40+32*SY:POKE 53269,7:GOTO 600 1500 REM ---===*** MOVE DOWN ***===--- 1510 P=BD(SX,SY):F=0:POKE 53269,6 1520 FOR X=1 TO 4:IF PD(P,X,0)=0 THEN 1540 1530 C=BD(PD(P,X,0),PD(P,X,1)+1):IF C<>0 AND C<>P THEN F=1 1540 NEXT X:IF F THEN POKE 53269,7:GOTO 700 1550 GOSUB 3500:PD(P,0,1)=PD(P,0,1)+1024:GOSUB 3000:GOSUB 4000 1560 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=0:NEXT X 1570 FOR X=1 TO 4:IF PD(P,X,1) THEN PD(P,X,1)=PD(P,X,1)+1 1580 NEXT X 1590 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=P:NEXT X 1600 IF F THEN 4500 1610 SY=SY+1:POKE 53287,6:POKE 2040,13 1620 POKE 53248,71+40*SX:POKE 53249,40+32*SY:POKE 53269,7:GOTO 600 2000 REM ---===*** MOVE LEFT ***===--- 2010 P=BD(SX,SY):F=0:POKE 53269,6 2020 FOR X=1 TO 4:IF PD(P,X,0)=0 THEN 2040 2030 C=BD(PD(P,X,0)-1,PD(P,X,1)):IF C<>0 AND C<>P THEN F=1 2040 NEXT X:IF F THEN POKE 53269,7:GOTO 700 2050 GOSUB 3500:PD(P,0,1)=PD(P,0,1)-5:GOSUB 3000:GOSUB 4000 2060 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=0:NEXT X 2070 FOR X=1 TO 4:IF PD(P,X,0) THEN PD(P,X,0)=PD(P,X,0)-1 2080 NEXT X 2090 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=P:NEXT X 2100 IF F THEN 4500 2110 SX=SX-1:POKE 53287,6:POKE 2040,13 2120 POKE 53248,71+40*SX:POKE 53249,40+32*SY:POKE 53269,7:GOTO 600 2500 REM ---===*** MOVE RIGHT ***===--- 2510 P=BD(SX,SY):F=0:POKE 53269,6 2520 FOR X=1 TO 4:IF PD(P,X,0)=0 THEN 2540 2530 C=BD(PD(P,X,0)+1,PD(P,X,1)):IF C<>0 AND C<>P THEN F=1 2540 NEXT X:IF F THEN POKE 53269,7:GOTO 700 2550 GOSUB 3500:PD(P,0,1)=PD(P,0,1)+5:GOSUB 3000:GOSUB 4000 2560 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=0:NEXT X 2570 FOR X=1 TO 4:IF PD(P,X,0) THEN PD(P,X,0)=PD(P,X,0)+1 2580 NEXT X 2590 FOR X=1 TO 4:BD(PD(P,X,0),PD(P,X,1))=P:NEXT X 2600 IF F THEN 4500 2610 SX=SX+1:POKE 53287,6:POKE 2040,13 2620 POKE 53248,71+40*SX:POKE 53249,40+32*SY:POKE 53269,7:GOTO 600 3000 REM ---===*** DRAW ***===--- 3010 POKE 53250,59+8*(PD(2,0,1) AND 255):POKE 53251,90+8*INT(PD(2,0,1)/256) 3020 POKE 781,PD(P,0,1)/256:POKE 782,PD(P,0,1) AND 255:POKE 783,0:SYS 65520 3030 PRINT P$(PD(P,0,0)):POKE 53269,6:RETURN 3500 REM ---===*** ERASE ***===--- 3510 Z=PD(P,0,0) 3520 IF Z=0 THEN Z$=" [157][157][157][157][157]":R=4 3530 IF Z=1 THEN Z$=" [157][157][157][157][157]":R=8 3540 IF Z=2 THEN Z$=" [157][157][157][157][157][157][157][157][157][157]":R=4 3550 IF Z=3 THEN Z$=" [157][157][157][157][157][157][157][157][157][157]":R=8 3560 POKE 781,PD(P,0,1)/256:POKE 782,PD(P,0,1) AND 255:POKE 783,0:SYS 65520 3570 FOR X=1 TO R:PRINT Z$;:NEXT X 3580 IF P=2 THEN POKE 53269,4 3590 RETURN 4000 REM ---===*** CHECK ***===--- 4010 F=0:IF PD(2,0,1)=3599 THEN F=1 4020 M=M+1:PRINT"[159]"M 4030 RETURN 4500 REM ---===*** FINISHED ***===--- 4510 PRINT "";TAB(12);"[152]CONGRADULATIONS!" 4520 PRINT TAB(8)"YOU COMPLETED THE PUZLE" 4530 PRINT"[159] IN "TAB(34)"PRESS" 4540 PRINT " "M;TAB(35)"ANY" 4550 PRINT" MOVES"TAB(35)"KEY" 4560 POKE 198,0:WAIT 198,1:POKE 198,0 4570 PRINT"[147]";:POKE 53269,0:END