FOR I=0 TO 63 SPRITE I,0,0,0 SPRITE.A I,(3,,,,1) NEXT I CC=0 AA=0 XX=0 YY=0 XPIECE=0 YPIECE=0 CPIECE=0 BG 1 BG COPY 0,0,20,16 TO 0,0 REM WAS8BIT TOUCHSCREEN RESTART: TRACK 0,2 CLS 0 BG 0 REM PAWNS FOR X=2 TO 16 STEP 2 CALL PUTIT(X,2,32,1) CALL PUTIT(X,12,32,2) NEXT X REM ROOKS CALL PUTIT(2,0,34,1) CALL PUTIT(16,0,34,1) CALL PUTIT(2,14,34,2) CALL PUTIT(16,14,34,2) REM KNIGHTS CALL PUTIT(4,0,36,1) CALL PUTIT(14,0,36,1) CALL PUTIT(4,14,36,2) CALL PUTIT(14,14,36,2) REM BISHOPS CALL PUTIT(6,0,38,1) CALL PUTIT(12,0,38,1) CALL PUTIT(6,14,38,2) CALL PUTIT(12,14,38,2) REM KING/QUEEN CALL PUTIT(8,0,42,1) CALL PUTIT(10,0,40,1) CALL PUTIT(8,14,40,2) CALL PUTIT(10,14,42,2) PAWN=32 ROOK=34 KNIGHT=36 BISHOP=38 KING=40 QUEEN=42 BLUE=1 GREEN=2 TURN=GREEN WAIT 60*5 STOP DO IF TOUCH THEN TX=(TOUCH.X\16)*2 TY=(TOUCH.Y\16)*2 IF TX=0 AND TY=0 THEN GOTO RESTART BG 0 SPRITE 0,TX*8,TY*8,46 IF SPRITE HIT(0) AND HIT>1 THEN CHIT=SPRITE.C(HIT) IF CHIT=8 THEN PLAY 0,90,2 SOUND 0 IF CHIT=10 THEN PLAY 0,80,5 SOUND 1 IF CHIT=8 OR CHIT=10 THEN CALL PUTIT(TX,TY,CPIECE,TURN) CALL PUTIT(XPIECE,YPIECE,0,0) ADD TURN,1,1 TO 2 IF TURN=1 THEN CALL PUTIT(18,0,12,4) CALL PUTIT(18,14,14,4) ELSE CALL PUTIT(18,0,14,4) CALL PUTIT(18,14,12,4) END IF END IF WAIT VBL END IF SPRITE 0,,,0 TOUCHED=CELL.C(TX,TY) A=CELL.A(TX,TY) CALL NEWSPR IF A=TURN THEN SPRITE 1,TX*8,TY*8,6 XPIECE=TX YPIECE=TY ISPR=2 IF TOUCHED=PAWN THEN CPIECE=PAWN INC ISPR CALL TGET(TX,TY-2,CC,AA,XX,YY) IF CC=0 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE I=2 INC ISPR CALL TGET(TX,TY+2,CC,AA,XX,YY) IF CC=0 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE I=2 INC ISPR CALL TGET(TX-2,TY,CC,AA,XX,YY) IF CC=0 AND XX>1 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE I=2 INC ISPR CALL TGET(TX+2,TY,CC,AA,XX,YY) IF CC=0 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE I=2 INC ISPR CALL TGET(TX-2,TY+2,CC,AA,XX,YY) IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 ELSE I=2 INC ISPR CALL TGET(TX+2,TY-2,CC,AA,XX,YY) IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 ELSE I=2 INC ISPR CALL TGET(TX-2,TY-2,CC,AA,XX,YY) IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 ELSE I=2 INC ISPR CALL TGET(TX+2,TY+2,CC,AA,XX,YY) IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 ELSE I=2 ELSE IF TOUCHED=KNIGHT THEN CPIECE=KNIGHT INC ISPR CALL TGET(TX+2,TY-4,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX-2,TY-4,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX+2,TY+4,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX-2,TY+4,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX-4,TY+2,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX-4,TY-2,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX+4,TY+2,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 INC ISPR CALL TGET(TX+4,TY-2,CC,AA,XX,YY) IF CC=0 AND XX>1 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 THEN SPRITE ISPR,XX*8,YY*8,10 ELSE IF TOUCHED=ROOK THEN CPIECE=ROOK II=8 GOSUB ORTHOGONAL ELSE IF TOUCHED=BISHOP THEN CPIECE=BISHOP II=8 GOSUB DIAGONAL ELSE IF TOUCHED=QUEEN THEN CPIECE=QUEEN II=8 GOSUB ORTHOGONAL GOSUB DIAGONAL ELSE IF TOUCHED=KING THEN CPIECE=KING II=2 GOSUB ORTHOGONAL GOSUB DIAGONAL END IF END IF END IF WAIT VBL LOOP ORTHOGONAL: FOR I=1 TO II INC ISPR CALL TGET(TX,TY-2*I,CC,AA,XX,YY) IF CC=0 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX,TY+2*I,CC,AA,XX,YY) IF CC=0 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX-2*I,TY,CC,AA,XX,YY) IF CC=0 AND XX>1 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX+2*I,TY,CC,AA,XX,YY) IF CC=0 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I RETURN DIAGONAL: FOR I=1 TO II INC ISPR CALL TGET(TX-2*I,TY-2*I,CC,AA,XX,YY) IF CC=0 AND XX>1 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX-2*I,TY+2*I,CC,AA,XX,YY) IF CC=0 AND XX>1 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX+2*I,TY-2*I,CC,AA,XX,YY) IF CC=0 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I FOR I=1 TO II INC ISPR CALL TGET(TX+2*I,TY+2*I,CC,AA,XX,YY) IF CC=0 AND XX<18 THEN SPRITE ISPR,XX*8,YY*8,8 ELSE IF AA<>TURN AND AA<>0 AND AA<4 THEN SPRITE ISPR,XX*8,YY*8,10 I=II ELSE I=II END IF NEXT I RETURN SUB PUTIT(X,Y,C,A) ATTR A CELL X,Y,C CELL X+1,Y,C+1 CELL X,Y+1,C+16 CELL X+1,Y+1,C+17 END SUB SUB NEWSPR FOR I=1 TO 63 SPRITE I,0,0,0 NEXT I END SUB SUB TGET(X,Y,C,A,XX,YY) C=CELL.C(X,Y) A=CELL.A(X,Y) XX=X YY=Y END SUB #1:MAIN PALETTES 003F2A15000F0B03002C181400383000 002A350C003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 007F7F7F7F7F7F7FFF80808080808080 00FFFFFFFFFFFFFFFF01010101010101 0000000000000000FF80808080808080 0001010101010101FF01010101010101 0F1C3060C0C08080F0E0C08000000000 F0380C06030301010F07030100000000 00000000030408080000000000000000 00000000C02010100000000000000000 0000000000000000804020100C0E0600 00000000000000000102040830706000 030F1F3F736DEFE90001070F132D2F69 C0F0F8FCCEB6B7B70080E0F0C8B4B4B6 030E18306040C0800001070F1F3F3F7F C070180C060203010080E0F0F8FCFCFE 00000000000000000000000000000000 00000000000000000000000000000000 7F7F7F7F7F7F7F7F80808080808080FF FFFFFFFFFFFFFFFF01010101010101FF 000000000000007F80808080808080FF 01010101010101FF01010101010101FF 8080C0C060301C0F0000000080C0E0F0 01010303060C38F0000000000103070F 08080403000000000000000000000000 101020C0000000000000000000000000 000000000000000000060E0C10204080 00000000000000000060703008040201 EDF37F783F1F0F036D333F180F070000 B7CFFE1EFCF8F0C0B6CCFC18F0E00000 80C0406030180E037F3F3F1F0F070100 010302060C1870C0FEFCFCF8F0E08000 000000030408101000030F1C3B376F6F 000000C02010080800C0F038FCFCFEFE 000000000D0D0E0800030F1F32367777 00000000B0B0D01000C0F0F84CDCFEFE 000000010202020200030F1E3D3D7D7D 000000008080808000C0F0F8FCFCFEFE 000000010102020400030F1E3E3D7D7B 000000808040402000C0F0F8FCFCFEFE 000000000005070E00030F1F3F3A7977 0000000000A0E07000C0F0F8FC5C9EEE 000000010B021B3D00030F1E353D665B 00000080D040D8BC00C0F078ACBC66DA 030F1F3F7F7ECDD40000000000000000 C0F0F8FCFCFE5DD50000000000000000 FF80BFBFB0B7B7B6007F7F606F6F6C6D FF01FDFD0DEDED6D00FEFE06F6F636B6 10100804030000006F6F3F3F1F0F0300 08081020C0000000FEFEFCFCF8F0C000 09090F00000000007676373F1F0F0300 9090F000000000007EFEFCFCF8F0C000 020C0203000000007D733D3D1F0F0300 8060808000000000FEFEFCFCF8F0C000 04080F00000000007B77373F1F0F0300 2010F00000000000FEFEFCFCF8F0C000 080E07010000000077793E3F1F0F0300 1070E08000000000EE9E7CFCF8F0C000 243D1B0A030100005B663D351E0F0300 24BCD850C0800000DA66BCAC78F0C000 D5D67F7F3F1F0F030000000000000000 D56BFEFEFCF8F0C00000000000000000 B6B7B7B0BFBF80FF6D6C6F6F607F7F00 6DEDED0DFDFD01FFB636F6F606FEFE00 #3:MAIN BG 000014102C002D000200030004000500 02000300040005000200030004000500 02000300040005000E040F043C003D00 12001300140015001200130014001500 12001300140015001200130014001500 1E041F04000000000400050002000300 04000500020003000400050002000300 04000500020003000000000000000000 14001500120013001400150012001300 14001500120013001400150012001300 00040004000000000200030004000500 02000300040005000200030004000500 02000300040005000000000000000000 12001300140015001200130014001500 12001300140015001200130014001500 00000000000000000400050002000300 04000500020003000400050002000300 04000500020003000000000000000000 14001500120013001400150012001300 14001500120013001400150012001300 00000000000000000200030004000500 02000300040005000200030004000500 02000300040005000000000000000000 12001300140015001200130014001500 12001300140015001200130014001500 00000000000000000400050002000300 04000500020003000400050002000300 04000500020003000004000000000000 14001500120013001400150012001300 14001500120013001400150012001300 00040000000000000200030004000500 02000300040005000200030004000500 02000300040005000004000400000000 12001300140015001200130014001500 12001300140015001200130014001500 00040004000000000400050002000300 04000500020003000400050002000300 04000500020003000C040D0400000000 14001500120013001400150012001300 14001500120013001400150012001300 1C041D04 #15:MAIN SOUND 38003000000000000800847710F60A00 0800019B000090002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 40400040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 382F00000000000000FF0000382F0000 0000312F00000000382F00FF0000382F 00000000000000000000000000000000 0000000000003D2F0000000000000000 0000000000000000382F000000000000 00000000000000312F00000000000000 000000000000000000000000FF000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000