10 REM ******************************** 20 REM * >> SCHACHMEISTER << * 30 REM * * 40 REM * THOMAS BEHREND * 50 REM * IN DER WANNE 16 7900 ULM * 60 REM * (8.1984) * 70 REM ******************************** 80 REM 90 REM -- ALLE REM-ZEILEN KOENNEN -- 100 REM -- WEGGELASSEN WERDEN -- 110 REM 120 REM -- NEUE ZEICHEN -- 130 REM 140 POKE53281,6:POKE53280,1:PRINT"[147]"CHR$(5) 150 DATA120,169,51,133,1,169,0,133,95,133,90,133,88,169,208,133,96,169,240,133 160 DATA89,169,224,133,91,32,191,163,169,55,133,1,88,96 170 REM -- MC-PROGRAMM -- 180 J=4097:FORI=832TO865:READA:J=J-A:POKEI,A:NEXT 190 IFJ<>0THENPRINT"DATA-FEHLER IN ZEILE 15-20":STOP 200 SYS832:POKE850,160:SYS832:POKE56576,PEEK(56576)AND252:POKE53272,8 210 POKE648,192:PRINT""TAB(5)"> SCHACHMEISTER <" 220 PRINT""TAB(5)"BITTE EINEN MOMENT WARTEN..." 230 AD=57344:FORI=64TO91:B=AD+I*8:FORJ=0TO7:READC:POKEB+J,C:NEXT:NEXT 240 FORI=192TO219:B=AD+I*8:FORJ=0TO7:READC:POKEB+J,C:NEXT:NEXT 250 I=175:B=AD+I*8:FORJ=0TO7:READC:POKEB+J,C:NEXT 260 POKE56,130 270 REM 280 REM -- DATA FUER SCHACHFIGUREN -- 290 REM 300 DATA0,0,60,60,255,255,60,60 310 DATA0,0,0,0,0,0,0,0 320 DATA0,0,0,0,60,255,255,255 330 DATA255,255,60,60,60,60,60,60 340 DATA0,0,3,3,15,10,0,0 350 DATA60,255,255,255,255,170,0,0 360 DATA0,0,192,192,240,160,0,0 370 DATA0,0,3,3,3,3,3,3 380 DATA0,0,60,60,60,255,255,255 390 DATA0,0,192,192,192,192,192,192 400 DATA3,0,0,0,0,0,0,0 410 DATA255,60,60,60,60,60,60,60 420 DATA255,255,255,255,255,255,255,255 430 DATA192,0,0,0,0,0,0,0 440 DATA0,0,60,60,240,195,255,255 450 DATA255,255,255,255,255,170,0,0 460 DATA0,0,0,0,192,192,0,0 470 DATA0,0,0,0,0,3,3,15 480 DATA0,48,48,63,255,207,207,255 490 DATA0,0,0,0,192,192,192,192 500 DATA63,63,63,60,0,0,0,3 510 DATA255,207,15,63,63,255,255,255 520 DATA192,192,0,0,0,0,0,192 530 DATA3,3,3,3,15,10,0,0 540 DATA192,240,240,240,240,160,0,0 550 DATA0,0,12,15,3,3,3,3 560 DATA0,0,48,240,192,192,192,192 570 DATA0,0,0,0,3,3,0,0 580 DATA85,85,125,125,255,255,125,125 590 DATA85,85,85,85,85,85,85,85 600 DATA85,85,85,85,125,255,255,255 610 DATA255,255,125,125,125,125,125,125 620 DATA85,85,87,87,95,90,85,85 630 DATA125,255,255,255,255,170,85,85 640 DATA85,85,213,213,245,165,85,85 650 DATA85,85,87,87,87,87,87,87 660 DATA85,85,125,125,125,255,255,255 670 DATA85,85,213,213,213,213,213,213 680 DATA87,85,85,85,85,85,85,85 690 DATA255,125,125,125,125,125,125,125 700 DATA255,255,255,255,255,255,255,255 710 DATA213,85,85,85,85,85,85,85 720 DATA85,85,125,125,245,215,255,255 730 DATA255,255,255,255,255,170,85,85 740 DATA85,85,85,85,213,213,85,85 750 DATA85,85,85,85,85,87,87,95 760 DATA85,117,117,127,255,223,223,255 770 DATA85,85,85,85,213,213,213,213 780 DATA127,127,127,125,85,85,85,87 790 DATA255,223,95,127,127,255,255,255 800 DATA213,213,85,85,85,85,85,213 810 DATA87,87,87,87,95,90,85,85 820 DATA213,245,245,245,245,165,85,85 830 DATA85,85,93,95,87,87,87,87 840 DATA85,85,117,245,213,213,213,213 850 DATA85,85,85,85,87,87,85,85 860 DATA126,189,215,231,231,215,189,126 870 REM 880 REM -- VARIABLEN UND FELDER -- 890 REM 895 DIMA$(12) 900 B$(1)="ABAACADEF":REM BAUER 910 B$(2)="GHIJLMDOF":REM TURM 920 B$(3)="ANAAKADEF":REM LAEUFER 930 B$(4)="QRSTUVWOX":REM PFERD 940 B$(5)="YHZACADEF":REM DAME 950 B$(6)="[@PJCMDEF":REM KOENIG 960 FORI=1TO6:FORJ=0TO2:FORK=1TO3 970 A$=MID$(B$(I),J*3+K,1):A$(I)=A$(I)+CHR$(ASC(A$)+128):NEXT 980 A$(I)=A$(I)+"[157][157][157]":NEXT:NEXT 990 DIMB(8,8) 1000 FORI=7TO1STEP-2:FORJ=1TO7STEP2:B(I,J)=1:NEXT:NEXT 1010 FORI=8TO2STEP-2:FORJ=2TO8STEP2:B(I,J)=1:NEXT:NEXT 1020 DIMA(8,8) 1030 GOSUB2760 1040 Z1$="[159]  " 1050 : 1060 REM 1070 REM -- MULTICOLOR-MODUS -- 1080 REM -- EINSCHALTEN -- 1090 REM 1100 POKE53281,6:POKE53282,7:POKE53283,5 1110 POKE53270,PEEK(53270)OR16 1120 REM 1130 REM -- LISTE DER PARTIEN -- 1140 REM -- AUFSTELLEN -- 1150 REM 1160 DATA-1 1170 RESTORE:DA=0 1180 DA=DA+1:READA:IFA=-1THEN1200 1190 GOTO1180 1200 DIMP(20),P$(20),P1$(20),JA$(20):P=0:D=0 1210 P=P+1:READP$(P),P1$(P),JA$(P):D=D+3 1220 READA$:D=D+1:IFA$="E"ORA$="X"THEN1240 1230 GOTO1220 1240 IFA$="X"THEN1290 1250 P(P)=D:GOTO1210 1260 REM 1270 REM -- AUSWAHLMENUE -- 1280 REM 1290 RESTORE:FORI=1TODA:READA:NEXT 1300 PRINTCHR$(5)"[147] - AUSWAHL -" 1310 PRINT:PRINT 1320 FORI=1TOP:PRINTI;TAB(5)P$(I)TAB(16)P1$(I),JA$(I):NEXT 1330 POKE198,0:INPUT"";W:IFW<1ORW>PTHEN1330 1340 PRINT"[147]":IFW=1THEN1390 1350 FORI=1TOP(W-1):READA$:NEXT 1360 REM 1370 REM -- SPIELBRETT -- 1380 REM 1390 FORI=1TO24:PRINTCHR$(159)TAB(0)" "TAB(25)Z1$:NEXT 1400 PRINTCHR$(5)""; 1410 FORY=8TO1STEP-1:X=1:GOSUB2840:PRINT"[157][157]"Y:X=8:GOSUB2840 1420 PRINT""Y:NEXT 1430 FORY=8TO1STEP-1:FORX=1TO8 1440 GOSUB2470 1450 NEXT:NEXT 1460 PRINT"" 1470 REM 1480 REM -- ANFANGSSTELLUNG -- 1490 REM 1500 FORY=7TO8:FORX=1TO8 1510 GOSUB2530:NEXT:NEXT 1520 FORY=1TO2:FORX=1TO8:GOSUB2530:NEXT:NEXT 1530 PRINTCHR$(159)"":PRINTTAB(27)" SPIELER 1 " 1540 PRINTTAB(27)" [146]" 1550 PRINTTAB(27)"[145] " 1560 POKE214,18:PRINT:PRINTTAB(27)CHR$(30)" SPIELER 2 " 1570 PRINTTAB(27)" [146]" 1580 PRINTTAB(27)"[145] " 1590 POKE214,5:PRINT:PRINTTAB(27)CHR$(5)"ZUG:[146] 1" 1600 POKE214,7:PRINT:PRINTTAB(28)CHR$(158)" [146]" 1610 POKE214,9:PRINT:PRINTTAB(27)CHR$(5)" " 1620 PRINTTAB(27)" " 1630 PRINTTAB(27)"[145] " 1640 READA$:A$=LEFT$(A$,9):POKE214,20:PRINT:PRINTTAB(28)""A$ 1650 READA$:A$=LEFT$(A$,9):POKE214,2:PRINT:PRINTTAB(28)""A$ 1660 READA$:POKE214,15:PRINT:PRINTTAB(28)A$ 1670 ZU=1:Z1=-1:AW=0 1680 REM 1690 REM ************************ 1700 REM * -- HAUPTPROGRAMM -- * 1710 REM ************************ 1720 REM 1730 PRINT"":Z1=Z1+1:IFZ1=2THENZ1=0:ZU=ZU+1:POKE214,5:PRINT:PRINTTAB(32)CHR$(5)ZU 1740 READA$:IFLEN(A$)<>4THEN1950 1750 REM 1760 REM -- NORMALER ZUG -- 1770 REM 1780 B$=LEFT$(A$,2):GOSUB2620:X=X2:Y=Y2 1790 B2$=B$ 1800 B$=RIGHT$(A$,2):GOSUB2620 1810 O$="-":IFA(X2,Y2)<>0THENO$="/" 1820 A$=B2$+O$+B$ 1830 POKE214,7:PRINT:PRINTTAB(29)CHR$(5)""A$ 1840 FORI=1TO4:GOSUB2530:GOSUB2470:NEXT 1850 A1=A(X,Y):A(X,Y)=0:A(X2,Y2)=A1 1860 X=X2:Y=Y2:FORI=1TO4:GOSUB2470:GOSUB2530:NEXT 1865 IFAW=4THENGOSUB2304:AW=1 1870 IFAW=3THENAW=0:RETURN 1880 IFAW=2THEN2890:REM-MATT ODER REMIS- 1890 GOSUB2660 1900 IFAW=1THENAW=0:POKE214,11:PRINT:PRINTTAB(27)" " 1910 GOTO1730 1920 REM 1930 REM -- BESONDERE SITUATIONEN -- 1940 REM 1950 IFA$="E"THEN2890 1960 IFA$="SA"THEN2100 1970 IFA$="WA"THEN2120 1980 IFA$="KR"THEN2190 1990 IFA$="LR"THEN2250 2000 PRINTCHR$(5) 2010 B$=RIGHT$(A$,1):A$=LEFT$(A$,4) 2020 IFB$="S"THENAW=1:POKE214,11:PRINT:PRINTTAB(27)"SCHACH !":GOTO1780 2030 IFB$="M"THENAW=2:POKE214,11:PRINT:PRINTTAB(27)" MATT !":GOTO1780 2040 IFB$="R"THENAW=2:POKE214,11:PRINT:PRINTTAB(27)" REMIS !":GOTO1780 2041 IFB$="P"THENAW=2:POKE214,11:PRINT:PRINTTAB(27)" PATT !":GOTO1780 2042 IFB$="W"THENAW=2:POKE214,9:PRINT:PRINTTAB(27)"DRITTE MAL" 2043 IFB$="W"THENPRINTTAB(27)"GLEICHE",TAB(67)"STELLUNG !":GOTO1780 2044 IFB$="Z"THENAW=2:POKE214,9:PRINT:PRINTTAB(27)" 50 ZUEGE" 2045 IFB$="Z"THENPRINTTAB(27)" OHNE",TAB(67)" BAUER !":GOTO1780 2046 IFB$="V"THENAW=4:POKE214,11:PRINT:PRINTTAB(27)"EN-PASSANT":GOTO1780 2050 IFB$="D"ORB$="T"ORB$="H"ORB$="L"THENF$=B$:GOTO2340 2060 PRINT"[147]DATAFEHLER !!!":STOP 2070 REM 2080 REM -- AUFGEBEN -- 2090 REM 2100 A$="SCHWARZ" 2110 GOTO2130 2120 A$="WEISS" 2130 POKE214,9:PRINT:PRINTTAB(29)A$ 2140 PRINTTAB(27)"GIBT AUF !" 2150 GOTO2890 2160 REM 2170 REM -- KURZE ROCHADE -- 2180 REM 2190 Y=1:T=0:IFZ1=1THENY=8:T=6 2200 A(5,Y)=0:A(8,Y)=0:A(6,Y)=8-T:A(7,Y)=12-T:X=5:GOSUB2470:X=8:GOSUB2470 2210 X=6:GOSUB2530:X=7:GOSUB2530:GOTO2280 2220 REM 2230 REM -- LANGE ROCHADE -- 2240 REM 2250 Y=1:T=0:IFZ1=1THENY=8:T=6 2260 A(1,Y)=0:A(5,Y)=0:A(3,Y)=12-T:A(4,Y)=8-T 2270 X=1:GOSUB2470:X=5:GOSUB2470:X=3:GOSUB2530:X=4:GOSUB2530 2280 POKE214,11:PRINT:PRINTTAB(29)CHR$(5)"ROCHADE" 2290 GOSUB2660 2300 POKE214,11:PRINT:PRINTTAB(29)" ":GOTO1730 2301 REM 2302 REM -- EN-PASSANT -- 2303 REM 2304 IFA1=7THENY=Y-1 2305 IFA1=1THENY=Y+1 2306 A(X,Y)=0:GOSUB2470:RETURN 2310 REM 2320 REM -- TAUSCH AUF DER GRUNDLINIE -- 2330 REM 2340 AW=3:GOSUB1780 2350 IF(Y2=8)AND(F$="D")THENA(X2,8)=11 2351 IF(Y2=1)AND(F$="D")THENA(X2,1)=5 2352 IF(Y2=8)AND(F$="T")THENA(X2,8)=8 2353 IF(Y2=1)AND(F$="T")THENA(X2,1)=2 2354 IF(Y2=8)AND(F$="H")THENA(X2,8)=10 2355 IF(Y2=1)AND(F$="H")THENA(X2,1)=4 2356 IF(Y2=8)AND(F$="L")THENA(X2,8)=9 2357 IF(Y2=1)AND(F$="L")THENA(X2,1)=3 2370 X=X2:Y=Y2:GOSUB2530 2380 POKE214,10:PRINT:PRINTTAB(28)CHR$(5); 2381 IFF$="D"THENPRINT"DAME-" 2382 IFF$="T"THENPRINT"TURM-" 2383 IFF$="H"THENPRINT"SPRINGER-" 2384 IFF$="L"THENPRINT"LAEUFER-" 2390 PRINTTAB(28)"TAUSCH" 2400 GOSUB2660:POKE214,010:PRINT:PRINTTAB(28)" ":GOTO1730 2410 PRINTTAB(28)" ":GOTO1730 2420 REM ****** UNTERPROGRAMME ****** 2430 REM 2440 REM -- EINZELNE FELDER -- 2450 REM -- DRUCKEN -- 2460 REM 2470 IFB(X,Y)=1THEN2490 2480 GOSUB2840:POKE646,15:PRINT"[193][193][193][157][157][157][193][193][193][157][157][157][193][193][193]":RETURN 2490 GOSUB2840:PRINT" [157][157][157] [157][157][157] ":RETURN 2500 REM 2510 REM -- FIGUR DRUCKEN -- 2520 REM 2530 F=A(X,Y) 2540 GOSUB2840 2550 POKE646,9:IFF>6ANDB(X,Y)=0THEN:PRINT""A$(F-6)"[145]":RETURN 2560 IFF>6ANDB(X,Y)=1THEN:PRINT"[146]"A$(F-6)"[145]":RETURN 2570 POKE646,8:IFB(X,Y)=1THENPRINT"[146]"A$(F)"[145]":RETURN 2580 PRINT""A$(F)"[145]":RETURN 2590 REM 2600 REM -- UMRECHNEN -- 2610 REM 2620 B1$=LEFT$(B$,1):X2=ASC(B1$)-64:Y2=VAL(RIGHT$(B$,1)):RETURN 2630 REM 2640 REM -- ZEITSCHLAUFE -- 2650 REM 2660 POKE198,0:FORT=1TO250:IFPEEK(197)<>64THEN2680 2670 NEXT:RETURN 2680 IFPEEK(197)=3THEN2700 2690 RETURN 2700 IFPEEK(197)<>64THEN2700 2710 IFPEEK(197)=64THEN2710 2720 RETURN 2730 REM 2740 REM -- GRUNDSTELLUNG -- 2750 REM 2760 A(1,1)=8:A(2,1)=10:A(3,1)=9:A(4,1)=11:A(5,1)=12:A(6,1)=9 2770 A(7,1)=10:A(8,1)=8 2780 FORI=1TO8:A(I,8)=A(I,1)-6:NEXT 2790 FORX=1TO8:A(X,2)=7:A(X,7)=1:NEXT 2800 RETURN 2810 REM 2820 REM -- BILDSCHIRMPOSITION -- 2830 REM 2840 IFY=8THENPRINT""TAB((X-1)*3+1);:RETURN 2850 X1=(X-1)*3+1:Y1=(8-Y)*3-1:POKE214,Y1:PRINT:PRINTTAB(X1);:RETURN 2860 REM 2870 REM -- SPIELENDE --- 2880 REM 2890 POKE198,0:FORI=1TO10000:IFPEEK(197)=64THENNEXT 2900 FORI=1TO8:FORJ=1TO8:A(I,J)=0:NEXT:NEXT 2910 GOSUB2760:GOTO1290 10000 REM 10010 REM ----- DATA FUER DIE ------ 10020 REM ----- PARTIEN ------ 10030 REM 10040 REM ** DEMO-PARTIE 1 ** 10050 DATASIFF,KASHDAN,1948 10060 DATAD2D4,G8F6,C2C4,E7E6,B1C3,F8B4,D1C2,D7D5,A2A3,B4E7,C4D5,E6D5,C1F4,C7C6 10070 DATAH2H3,KR,E2E3,F8E8,F1D3,B8D7,G1F3,D7F8,F3E5,E7D6,KR,F8E6,F4H2,G7G6 10080 DATAE5F3,E6G7,H2D6,D8D6,F1C1,C8F5,F3D2,E8E7,B2B4,A8E8,A1B1,F5H3,G2H3,E7E3 10090 DATAD3F1,G7F5,F2E3,D6G3S,F1G2,G3E3S,G1H1,F5G3S,H1H2,E3F4,D2F3,E8E2,C3E2 10100 DATAG3E2S,H2H1,F6H5,C2D2,H5G3S,H1H2,G3F1S,H2H1,F4H2S,F3H2,F1G3M 10110 DATAE 10120 REM ** DEMO-PARTIE 2 ** 10130 DATAGELLER,EUWE,1953 10140 DATAD2D4,G8F6,C2C4,E7E6,B1C3,F8B4,E2E3,C7C5,A2A3,B4C3,B2C3,B7B6,F1D3,C8B7 10150 DATAF2F3,B8C6,G1E2,KR,KR,C6A5,E3E4,F6E8,E2G3,C5D4,C3D4,A8C8,F3F4,A5C4 10160 DATAF4F5,F7F6,F1F4,B6B5,F4H4,D8B6,E4E5,C4E5,F5E6,E5D3,D1D3,B6E6,D3H7S 10170 DATAG8F7,C1H6,F8H8,H7H8,C8C2,A1C1,C2G2S,G1F1,E6B3,F1E1,B3F3,WA 10180 DATAE 10190 REM ** DEMO-PARTIE 3 ** 10200 DATAROSSETTO,STAHLBERG,1947 10210 DATAE2E4,E7E6,D2D4,D7D5,B1C3,G8F6,C1G5,F8E7,E4E5,F6D7,H2H4,C7C5,C3B5,F7F6 10220 DATAF1D3,A7A6,D1H5S,E8F8,H1H3,A6B5,G5H6,D8A5S,H6D2,A5C7,H3G3,C5D4,G1F3 10230 DATAD7E5,G3G7,H7H6,D3H7,F8G7,H5H6S,G7F7,H6H5S,F7G7R 10240 DATAX