10 POKE56,48:POKE55,0:CLR 20 DV=PEEK(186):IFDV<8THENDV=8 30 : 40 PRINT"[147]":POKE53280,0:POKE53281,10:POKE646,0:POKE53272,31 50 : 60 REM GAMEBOARD SCREEN 70 : 80 PRINT"[147] [176][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][174] 90 [153]" (null)1LISTINT ABSSTOPWAIT(null)2PRINT#INT ABSSTOPWAIT(null)3LISTINT ABSSTOPWAIT(null) 100 FORI=1TO5:PRINT" [221][155][181] [182][144][146][221][152][181] [182][144][146][221][155][181] [182][144][146][221]":NEXT 110 PRINT" [171][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][179] 120 [153]" (null)4PRINT#INT ABSSTOPWAIT(null)5LISTINT ABSSTOPWAIT(null)6PRINT#INT ABSSTOPWAIT(null) 130 FORI=1TO5:PRINT" [221][152][181] [182][144][146][221][155][181] [182][144][146][221][152][181] [182][144][146][221]":NEXT 140 PRINT" [171][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][179] 150 [153]" (null)7LISTINT ABSSTOPWAIT(null)8PRINT#INT ABSSTOPWAIT(null)9LISTINT ABSSTOPWAIT(null) 160 FORI=1TO5:PRINT" [221][155][181] [182][144][146][221][152][181] [182][144][146][221][155][181] [182][144][146][221]":NEXT 170 PRINT" [173][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][189] 172 [151]214,17:[153] 174 [153]"STOP (null)RESSCMDCMDCMDCMDCMD(null) TOCMDCMDCMDCMDQUIT 180 : 190 REM SET SPRITES 200 : 210 V=53248:POKE2040,192:POKE2041,193:POKE2042,194:POKE2043,195:POKE2044,195 220 POKE2045,196:POKE2046,196:POKE2047,196:POKEV+29,255:POKEV+23,255 230 POKEV,232:POKEV+1,62:POKEV+2,232:POKEV+3,118:POKEV+4,232:POKEV+5,174 240 POKEV+6,160:POKEV+7,174:POKEV+8,160:POKEV+9,118:POKEV+10,160:POKEV+11,62 250 POKEV+12,88:POKEV+13,62:POKEV+14,88:POKEV+15,118:POKEV+16,0 260 FORI=39TO45STEP2:POKEV+I,1:POKEV+I+1,0:NEXT:POKEV+21,255 270 : 280 REM SET VARIABLES 290 : 300 Z=0:F=0:T=0:NN=PEEK(1020):IFNN<1ORNN>2THENNN=1 310 Y=62:FORJ=0TO2:X=88:FORI=1TO3:X(3*J+I)=X:Y(3*J+I)=Y:X=X+72:NEXT:Y=Y+56:NEXT 320 S(0)=3:S(1)=6:S(2)=9:S(3)=8:S(4)=5:S(5)=4:S(6)=1:S(7)=2 330 G(1)=6:G(2)=7:G(3)=0:G(4)=5:G(5)=4:G(6)=1:G(7)=9:G(8)=3:G(9)=2 340 : 350 REM SET PERMITTED MOVES 360 : 370 DIMF(25),T(25),QF(20),QT(20),RF(12),RT(12),KF(12),KT(12) 380 A$="576586985975876836539569":FORI=1TO12:B$=MID$(A$,2*I-1,2) 390 L$=LEFT$(B$,1):R$=RIGHT$(B$,1):F(I)=VAL(L$):T(I)=VAL(R$):NEXT 400 A$="86785785685635638698597587":FORI=1TO13:B$=MID$(A$,2*I-1,2) 410 L$=LEFT$(B$,1):R$=RIGHT$(B$,1):F(I+12)=VAL(L$):T(I+12)=VAL(R$):NEXT 420 A$="365658697889":FORI=1TO11STEP2:B$=MID$(A$,I,2):R=VAL(B$) 430 RF(I)=INT(R/10):RT(I)=R-10*RF(I):RF(I+1)=RT(I):RT(I+1)=RF(I) 440 QF(I)=RF(I):QT(I)=RT(I):QF(I+1)=RF(I+1):QT(I+1)=RT(I+1) 450 KF(I)=RF(I):KT(I)=RT(I):KF(I+1)=RF(I+1):KT(I+1)=RT(I+1):NEXT 460 A$="35575968":FORI=1TO7STEP2:B$=MID$(A$,I,2):R=VAL(B$) 470 BF(I)=INT(R/10):BT(I)=R-10*BF(I):BF(I+1)=BT(I):BT(I+1)=BF(I) 480 QF(I+12)=BF(I):QT(I+12)=BT(I):QF(I+13)=BF(I+1):QT(I+13)=BT(I+1):NEXT 490 : 500 REM SET LETTERS IN SPRITES 510 : 520 FORI=12288TO12544STEP64:FORJ=31TO46STEP3:READK:POKEI+J,K:NEXTJ,I 530 : 540 REM INPUT MOVE 550 : 560 Z=Z+1:Z1=INT(Z/10):Z2=Z-10*Z1:P=1916:GOSUB1180:PRINT"[144][205]OVE [206]UMBER:  " 570 POKE1931,Z2+48:IFZ1<>0THENPOKE1930,Z1+48 580 DD=300:GOSUB1250:IFNN=2THEN1080 590 P=1944:GOSUB1180:PRINT" "; 600 P=1951:GOSUB1180:PRINT"[144][205]OVE [198]ROM: [157][157]";:POKE198,0:POKE204,0:POKE207,0 610 GETF$:IFF$=""THEN610 612 IFF$="Q"THENPOKE204,1:GOTO1000 620 PRINT""F$:POKE204,1:F=ASC(F$)-48:IFF<3ORF>9THEN680 630 P=1967:GOSUB1180:PRINT"[144][205]OVE [212]O: [157][157]";:POKE198,0:POKE204,0:POKE207,0 640 GETT$:IFT$=""ORT$=CHR$(13)THEN640 650 PRINT""T$:POKE204,1:T=ASC(T$)-48:IFT<3ORT=4ORT>9THEN680 660 IFG(T)<>9ORG(F)=9THEN680 670 ON(G(F)+1)GOTO920,800,740,860,860:GOTO580 680 P=1990:GOSUB1180:PRINT"[144][211]ORRY, [206]O [211]UCH [205]OVE [208]OSSIBLE!"; 690 DD=1000:GOSUB1250 700 P=1990:GOSUB1180:PRINT" ";:GOTO580 710 : 720 REM ROOK CHECK AND MOVE 730 : 740 FL=0:FORI=1TO12:IFRF(I)=FANDRT(I)=TTHENFL=1 750 NEXT:IFFL=1THEN1290 760 P=1991:GOSUB1180:PRINT"[206]O [211]UCH [210]OOK [205]OVE [208]OSSIBLE!";:GOTO690 770 : 780 REM QUEEN CHECK AND MOVE 790 : 800 FL=0:FORI=1TO20:IFQF(I)=FANDQT(I)=TTHENFL=1 810 NEXT:IFFL=1THEN1290 820 P=1991:GOSUB1180:PRINT"[206]O [211]UCH [209]UEEN [205]OVE [208]OSSIBLE!";:GOTO690 830 : 840 REM BISHOP CHECK AND MOVE 850 : 860 FL=0:FORI=1TO8:IFBF(I)=FANDBT(I)=TTHENFL=1 870 NEXT:IFFL=1THEN1290 880 P=1990:GOSUB1180:PRINT"[206]O [211]UCH [194]ISHOP [205]OVE [208]OSSIBLE!";:GOTO690 890 : 900 REM KING CHECK AND MOVE 910 : 920 IFT=5THEN950 930 FL=0:FORI=1TO12:IFKF(I)=FANDKT(I)=TTHENFL=1 940 NEXT:IFFL=1THEN960 950 P=1991:GOSUB1180:PRINT"[206]O [211]UCH [203]ING [205]OVE [208]OSSIBLE!";:GOTO690 960 IFT<>7THEN1290 970 KC=1:GOSUB1290:KC=0 980 P=1904:GOSUB1180:PRINT"[195]ONGRATULATIONS! [217]OU HAVE SUCCESSFULLY"; 990 PRINT"MOVED THE KING TO THE LOWER LEFT CORNER."; 1000 POKE214,23:PRINT:PRINT"[144] (1[144]) [193]LONE (2[144]) [196]EMO (3[144]) [194]ACK TO [209][213][193][210][212][207] " 1010 POKE198,0 1020 GETF$:IFF$<"1"ORF$>"3"THEN1020 1022 POKEV+21,0:IFF$="3"THEN4000 1030 NN=ASC(F$)-48 1040 POKE1020,NN:RUN 1050 : 1060 REM COMPUTER DEMONSTRATION 1070 : 1080 Z=1:P=1951:GOSUB1180:PRINT"[144][205]OVE [198]ROM: [205]OVE [212]O:":DD=300:GOSUB1250 1090 FORI=1TO25:DD=1000:GOSUB1250 1100 Z1=INT(Z/10):Z2=Z-10*Z1:POKE1931,Z2+48:IFZ1<>0THENPOKE1930,Z1+48 1110 F=F(I):T=T(I):POKE1962,F+48:POKE1976,T+48:DD=300:GOSUB1250:GOSUB1290 1120 DD=3000:GOSUB1250:Z=Z+1:NEXT:DD=2000:GOSUB1250:P=1904:GOSUB1180 1130 PRINT"[212]HIS DEMONSTRATION ILLUSTRATES [196]UDENEY'S"; 1140 PRINT"SOLUTION TO THE [195]ORNER THE [203]ING PUZZLE. ";:GOTO1000 1150 : 1160 REM CURSOR POSITIONING SUBROUTINE 1170 : 1180 PRINT"";:P=P-1024:PY=INT(P/40):PX=P-40*PY 1190 IFPY<>0THENFORPP=1TOPY:PRINT"";:NEXT 1200 IFPX<>0THENFORPP=1TOPX:PRINT"";:NEXT 1210 P=P+1024:RETURN 1220 : 1230 REM DELAY LOOP SUBROUTINE 1240 : 1250 FORQ=1TODD:NEXT:RETURN 1260 : 1270 REM SPRITE MOVEMENT SUBROUTINE 1280 : 1290 S=SGN(X(T)-X(F)):SS=(Y(T)-Y(F))/72:LL=SS:IFS=0THEN1340 1300 FORL=X(F)TOX(T)STEPS:POKEV+2*G(F),L:POKEV+2*G(F)+1,Y(F)+LL:LL=LL+SS:NEXT 1310 G(T)=G(F):G(F)=9:IFNN=1ANDKC=1THENRETURN 1320 IFNN=1THEN560 1330 RETURN 1340 S=SGN(Y(T)-Y(F)):FORL=Y(F)TOY(T)STEPS:POKEV+2*G(F)+1,L:NEXT:GOTO1310 1350 : 1360 REM SPRITE LETTERS 1370 DATA 90,86,78,86,90,255,102,90,90,86,106,253,70,90,70,86,90,255,70,90,70,90 1380 DATA 70,255,70,90,70,94,94,255 3997 : 3998 :REM BACK TO QUARTO 3999 : 4000 PRINT"[147]":POKE53281,0 4010 POKE214,12:PRINT:PRINTTAB(8)"[159][204]OADING [195][200][197][211][211] [209][213][193][210][212][207]" 4020 PRINT"[144] LOAD"CHR$(34)"B.CHESS QUARTO"CHR$(34)","DV 4030 PRINT" RUN" 4040 POKE631,13:POKE632,13:POKE198,2:END 10000 D=PEEK(186):N$="KING.MAIN":OPEN15,D,15,"S0:"+N$:CLOSE15:SAVEN$,D:END