"r?rMФ6 X:\!612345?)=14ok=1: Jwkv=2wkh<7a(wkv-1,wkh+2)=14ok=1 Jwkv>2wkh>1a(wkv-2,wkh-1)=14ok=1  l:wb:v+l:l;d,m;x$(x);d+1,m;x$(x+1):68D:g;d,m;" ";d+1,m;" ":1;ve,h;x$(x);ve+1,h;x$(x+1):68D:ve,h;x$(x);ve+1,h;x$(x+1):v:o:l %x=1wbwkc=o:wkv=vb:wkh=hb &x=1wbbkc=o:bkv=vb:bkh=hb  s(1,1)=a(va,ha):s(1,2)=a(vb,hb):wkv=vb:wkh=hb:a(va,ha)=0:a(vb,hb)=6:150:160:ok418 3106:ok418 380|:ok418  170 La(va,ha)=s(1,1):a(vb,hb)=s(1,2):wkv=va:wkh=ha: s(1,1)=a(va,ha):s(1,2)=a(vb,hb):bkv=vb:bkh=hb:a(va,ha)=0:a(vb,hb)=6:c:110n:ok428 r+y:ok428 355c:ok428  120x La(va,ha)=s(1,1):a(vb,hb)=s(1,2):bkv=va:bkh=ha: (va-vb)=(ha-hb)435  440  (va-vb)ɽ(ha-hb)ok=t: (va-vb)=1 q(va-vb)ɼ(hb-ha)J=va+(hb-ha):n=ha+(hb-ha)hb-(hb-ha)ͼ(hb-ha):ok=ok+(1a(J,n)):J=J+(hb-ha):n: ^J=va-(hb-ha):n=ha-(ha-hb)hb+(ha-hb)ͼ(hb-ha):ok=ok+(1a(J,n)):J=J-(hb-ha):n: %vb-va0ha-hb0OK=f: ha=hbƽ(vb-va)=1 va=vbƽ(hb-ha)=1 Iha=hbn=va+(vb-va)vb-(vb-va)ͼ(vb-va):ok=ok+(1a(n,ha)):n: Bn=ha+(hb-ha)hb-(hb-ha)ͼ(hb-ha):ok=ok+(1a(va,n)):n: K((va-vb)=1ƽ(ha-hb)=2)((va-vb)=2ƽ(ha-hb)=1) ok=v: (ha-hb)>1ok=z-u: $upva-vb=1ha=hba(vb,hb) %upvb-va=1ha=hba(vb,hb) Dupva-vb=2ha=hba(vb,hb)a(va-l,ha)va=7e(hb)=w: Kupvb-va=2ha=hba(vb,hb)a(va+1,ha)va=2e(hb)=w: +uphahba(vb,hb)>7va-vb=1 ,uphahba(vb,hb)>7vb-va=1 :uphahba(vb+1,hb)=10 vb=p(hb)z+r+c: @uphahba(vb-1,hb)=10 vb=6p(hb)z+r+c: 7ok=l+(ya(vb,hb)ha=hbƽ(va-vb)<)+(eƽ(va-vb)Ⱥ): (ha-hb)>1ok=z-u: $upvb-va=1ha=hba(vb,hb) %upva-vb=1ha=hba(vb,hb) Dupvb-va=2ha=hba(vb,hb)a(va+l,ha)va=2p(hb)=w: Kupva-vb=2ha=hba(vb,hb)a(va-1,ha)va=7p(hb)=w: #uphahba(vb,hb)vb-va=1 $uphahba(vb,hb)va-vb=1 >uphahba(vb-1,hb)=1vb=6e(hb)z+r+c: :uphahba(vb+1,hb)=1vb=e(hb)z+r+c: 7ok=l+(ya(vb,hb)ha=hbƽ(va-vb)<)+(eƽ(va-vb)Ⱥ): Z(ha-hb)=2va=vb(va=1va=8)(ha=5upha=4up)490 +(va-vb)>1Ž(hb-ha)>1ok=e: 0wbƽ(vb-bkv)1ƽ(hb-bkh)1ok=c: 1wbƽ(wkv-vb)1ƽ(wkh-hb)1ok=c:  (wbwkc)(wbbkc)ok=z: Oup(wbhb>hawkr)(wbhbhabkr)(wbhbhawqr)(wbhbhabqr)ok=r: (wbbch)(wbwch)ok=u: up((wbwkr)(wbbkr))hb-ha=2a(va,ha+1)=0a(vb,hb)=07000X+wb*t:oku*w:z$="O-O ":m=m+v-l:h=h-w:x=t-l:a(va,hb+l)=o:a(va,hb-l)=w+(twb): up((wbwkr)(wbbkr))ha-hb=2a(va,ha-1)=0a(vb,hb)=07200 +wb*t:oku*w:z$="O-O ":m=m-v+l:h=h+w:x=t-l:a(va,hb-l)=o:a(va,hb+l)=w+(twb): up((wbwqr)(wbbqr))ha-hb=2a(va,ha-1)=0a(vb,hb)=0a(vb,hb-l)=07100+wb*t:oku*w:z$="O-O-O":m=m-v-l:h=h+w:x=t-l:a(va,hb-w)=o:a(va,hb+l)=w+(twb): up((wbwqr)(wbbqr))hb-ha=2a(va,ha+1)=0a(vb,hb)=0a(vb,hb+l)=07300+wb*t:oku*w:z$="O-O-O":m=m+v+l:h=h-w:x=t-l:a(va,hb+w)=o:a(va,hb-l)=w+(twb): ok=ok+(1ok): l,f;"";w,f;"";g,f;"";f-l,f;"";f,f;"";f+l,f;"": l,f;"";w,f;"";g,f;"";f-l,f;"";f,f;"";f+l,f;"": X23675{\,z-w:23676|\,z-l:e-l,o;" Algebraic > "''"DESCRIPTIVE > QR QB KB KR"'" (English)"," QN KN":23675{\,c-t-w:23676|\,z+l+g ]86:97a,32 :o,:-v,o:o,w:v,o:o, _>5:105i,16:o,:-v,o:o,w:v,o:o,:v: b23675{\,z-w:23676|\,z-l:e+l,f;"KR KB QB QR";y,e-l;"KN QN":23675{\,c-t-w:23676|\,z+l+g: g\g:g,o;"Is White to"'"play up the"'"board or"'"down?"''"Press u or d" h'up=o:o:i$=:65320(:i$="d" ji$="u"up=l: k"616" lJg,o;m$;" has ";:wbwm;" "'"chessm";("en."wml);("an."wm=l);" ": q4bm;" "'"chessm";("en."bml);("an."bm=l);" ": Yv,o;w;l;s$'" You cannot "'" have a pawn "'" on Rank 1 "'" or Rank 8. "'s$:u:  t+l,o;"En passant.":ep=l: Fv,o;w;l;s$'" The Kings "'" cannot be "'" adjacent! "'s$: =v,o;v-l;l;w;s$'" ";m$;" has "'" no King! "'s$:u: /"This position"'"is drawn."''"Try again.": =;:v,o;v-l;l;w;s$'m$;" already"'" has a King. "'s$:u: L;:v,o;w;v-l;l;s$'" ";m$;" can't "'" have any "'" more ";i$'s$:u: @#l;l,o;" Are you sure? Y N";o,:ok=o *o:i$=:65320(:i$="n";:ok=l: i$"y""751"  ;:err La(va,h)a(va,h)vbmbm=bm-l:bp=bp-(la(va,h)=t):a(va,h)=ebk=bk-l  23675{\,c+y:23676|\,z-l:v-l:o:n=lf+lw:n,31;(144+n);n+l,31;(143+n):n:23675{\,z-w:n=f+lw-w:17,14+n;(161-n);17,13 +n;(160-n):n:23675{\,c-t-w:23676|\,z+g+l:l:v:  23675{\,z-w:23676|\,z-l:v-l:o:n=wf+lw:f+w,f-w+n;(142+n);(143+n):n:23675{\,c+y:n=f+ll-l:n,31;(160-n):n:23675{\,c-t-w:23676|\,z+g+l:v:l:  x=o:#o;o,o;" King,Queen,Rook,Bishop,KNight, Pawn,";o+(lwbwm>f)+(lwbbm>f);" SPACE = blank, X to exit.":o:i$=:65320(:i$="x" !i$=" "i$="Blank":"825" "i$c-wƯi$c+y"810" %u*g *7i$="k"i$="King":x=l:(wkwb)(bkwb)"710":u*g ,i$="q"i$="Queen":x= .i$="r"i$="Rook":x=v+w 0i$="b"i$="Bishop":x=f-t 2i$="n"i$="Knight":x=v 4Ji$="p"i$="Pawn":x=t+l:(wp>vwb)(bp>vwb)i$=i$+"s. ":"715":u*g 6 i$f+lwb)(bm+l>f+lwb)i$="men! ":"715":u*g 9Q#o;o,o;" ";i$;" on file ? (a to h)"," Press DELETE to erase.", >,o:z$=:65320(:z$=t+wz$="0"u*g @z$c+g"830" Cñz$"830" H1#o;l;v-l;w;o,i$+t;z$;", rank ? (1-8)", M/o:b$=:65320(:b$=t+wb$="0""825" Pb$<"49"ůb$>"56""845" Rñb$"845" TL#o;w;l;v-l;o,i$+e;b$;". ";o,e+v;"  ";l,e+v;" ENTER " W9o:65320(:=t+wŦ="0"#o;o;o;l,y+g,:"840" Zf-w"855" \:;:h=z$-"96":ve=b$-480:uph=v+w-h:ve=v+w-ve `va=t-l-ve:i$="Blank""896" a"x=t+l(va=lva=v+l)"640":u*g d`a(va,h)#o;o,o;" Square ";z$;b$;" is already occupied.",:err=l:z+z+z:err=o:oku*g flv+l;l;wb;e-l-ve*w,f-w+(h*w);x$(x);e-ve*w,f-w+(h*w);x$(x+l):v/c,t:wm=wm+(lwb):bm=bm+(lwb):r+r+y h-x=lwba(va,h)=v-l:wk=wk+l:wkv=va:wkh=h j,x=lwba(va,h)=e:bk=bk+l:bkv=va:bkh=h lx=wba(va,h)=v nx=wba(va,h)=y px=f-twba(va,h)=g rx=f-twba(va,h)=f tx=vwba(va,h)= vx=vwba(va,h)=f-l xx=t-lwba(va,h)=w zx=t-lwba(va,h)=t+w |x=t+lwba(va,h)=l:wp=wp+l ~x=t+lwba(va,h)=t:bp=bp+l u*g Ja(va,h)#o;o,o;" Square ";z$;b$;" is already blank.",:z:u*g >a(va,h)>vbm=bm-l:bk=bk-(la(va,h)=e):bp=bp-(la(va,h)=t) @a(va,h)\:n,ç:n+l,ç:l,y+y:23658j\,o:y^ yi$="":#o;o,o;" Pawn promotion. Please choose: Queen, Rook, Bishop or KNight. "  sg/y,y o:i$=:65320( %i$="q"x=:a(vb,hb)=v+(t+wb) #i$="r"x=t-l:a(vb,hb)=w+(twb) %i$="b"x=f-t:a(vb,hb)=g+(t+lwb) $i$="n"x=v:a(vb,hb)=+(t+lwb) %i$"q"i$"r"i$"b"i$"n""910" ;:wbwp=wp-l wbbp=bp-l 3l;wb;v+l;ve,h;x$(x);ve+l,h;x$(x+l):sl/c,t  )ok=o:wbz-c:z-c+t:r+t:u+u-y:"" !wbc:c+t:r+y:355c:c+y  *z$="xx":ep=o:rep=l:wp=o:bp=o:no=l:err=o:wch=o:bch=o:fy=o:s(w,w):e(v+l):p(v+l):a(v+l,v+l):r$(v+l,g+l):x=:g,o;"Press G to"'"play a game,"''"S to set up"'"a position,"''"L toa"'"saved game."'"_"'"BREAK quits"'"the program." $o:i$=:65320(:i$="g"y*c i$="s"1040 Ki$="l"g:#o;o,o;" a saved position.",:z+z+z:ok8600!  okc*t c*t+t (r+r:"780":r+r+f:upr+r+t:"770" g:wk=o:bk=o:wm=o:bm=o "g,o;"Enter White]"'"men first." $^wb=v:m$="White":u*g:;:g:r+r+y:'"Is this"'"correct?":z+z+z:okv,o;s$'s$:1060$ .wmr:u-t:c*t 3wkz+z+u:c*t+y* Lg:"Enter Black]"'"chessmen." V[wb=o:m$="Black":u*g:;:g:r+r+y:'"Is this"'"correct?":z+z+z:okv,o;s$'s$:c*t+c+t [bmr:u-t:c*t `bkz+z+u:c*t+c+t t/wkm$="White":wb=v:z+z+u:r+r+y:c*t+y* /(wkv-bkv)lƽ(wkh-bkh)l"660":u:c*t+c+t #wm=lbm=lg:"705":v:u-t:t*c xg:upwkc=o+(la(v+l,g+l)=v-l):bkc=o+(la(l,g+l)=e):wkr=o+(la(v+l,v+l)=w):wqr=o+(la(v+l,l)=w):bkr=o+(la(l,v+l)=t+w):bqr=o+(la(l,l)=t+w) upwkc=o+(la(l,g)=v-l):bkc=o+(la(v+l,g)=e):wkr=o+(la(l,l)=w):wqr=o+(la(l,v+l)=w):bkr=o+(la(v+l,l)=t+w):bqr=o+(la(v+l,v+l)=t+w) bwc=wkc+wkr+wqr:bc=bkc+bkr+bqr:(wcl)'("O-O"wkcwkr)'("O-O-O"wkcwqr);t+l,v;v-l;o;("Black"bkcbc>l);t+w,v;("O-O "bkcbkr);t+,v;("O-O-O"bkcbqr):z:,o;s$:g @gwch=o:bch=o:"Which side is"'"to move next?"''" White"'" or"'" Black" J+wb=w:o:i$=:65320(:i$="w"wb=v Ti$="b"wb=o ^wb=wf*c+c+t r.g,o;s$'s$'s$:wb" W"'s$'s$:m$="White" | wbs$'s$'" B":m$="Black" "960":g:okw;v-l;l;g,o;s$'" That can't "'" be correct. ";v,o;" ";("Black"wb);("White"wb);" is in "'" check! "'s$:e:wb=v-wb:x=c:"960":okw;v-l;l;" ";m$;" is in "'" check too! "'s$:u:l'" Try again.":u:g:1055 Gg:x=cm$=""+("White"wb)+("Black"wb):bch=o+(lwb):wch=o+(lwb) z$="":#o;o,o;" How many moves has ";m$;" made? "'" DELETE","  ENTER ":no>lg,o;"MODIFYING A"'"POSITION:":'"If you don't"'"want to alter"'"the number of"'"moves, press"''"ENTER." &o:65320(:i$=:=f-wu*t-z F=t+wƱz$z$=z$(̱z$-l):#o;o;l;l,f+l;z$;"  ":c*e-c+t !i$<"48"ůi$>"57"1710 ;z$=z$+i$:#o;o;l;l,f+l;z$;"  ":z$z#o,o,o;" You're pulling my leg!",:t/y,-y:n=lc:n:;:no=l  nono=l Pg,o;"Don't forget"'"tothis"'"position if"'"needed again.":c+(ux=c) l rep=l:r$(v+l,g+l):x=cu*t+c "wbc:c+t:c+y:r+t:okwch=l %wbz-c:"":"":r+y:okbch=l u*t+c Fz+z:r+r:"780":r+r+f:wb=v:m$="White":upz+z+t:r+r+t:"770" xg:wk=l:bk=l:wm=f+l:bm=wm:wp=v+l:bp=wp:wc=:bc=:wkc=l:bkc=l:wkr=l:wqr=l:bkr=l:bqr=l:upwkv=l:wkh=g:bkv=v+l:bkh=g:n=lv+l:a(w,n)=l:a(v,n)=t:n:a(l,l)=w:a(l,v+l)=w:a(1,w)=:a(l,v)=:a(l,)=g:a(l,v-l)=g:a(l,g)=v-l:a(l,f-t)=v:a(v+l,l)=t+w:a(v+l,v+l)=t+w:a(v+l,w)=t+g:a(v+l,v)=t+g:a(v+l,)=f:a(v+l,v-l)=f:a(v+l,g)=e:a(v+l,g+l)=y upwkv=v+l:wkh=g+l:bkv=l:bkh=g+l:n=lv+l:a(w,n)=t:a(v,n)=l:n:a(l,l)=t+w:a(l,v+l)=t+w:a(1,w)=t+g:a(l,v)=t+g:a(l,)=f:a(l,v-l)=f:a(l,g)=y:a(l,f-t)=e:a(v+l,l)=w:a(v+l,v+l)=w:a(v+l,w)=:a(v+l,v)=:a(v+l,)=g:a(v+l,v-l)=g:a(v+l,g)=v:a(v+l,g+l)=v-l 4Twb;ٽ(wb-v+l);o+(lwb);g,o;s$'" ";m$;"] move "'s$'s$;g+w,g;"No ";no:sv/c,t ~ok=o:#o;o,o;" Enter your move: __-__ (a to h) Save,Modify,";bch+wch;"Resign,Total,Offer." 2o:z$=:65320(:z$<"a"z$>"w"2210 z$="s";:85004! z$="m";:g:1055 =z$="r";:t+w,o;l;m$'"resigns.":z+z+z:okv:u-t:c*t z$="o";:t+l,o;"Draw offered"'"by ";m$;"."''"Does ";("Black"wb);("White"wb)'"agree?":z+z+z:okf-l,o;"Draw agreed."'s$:v:u-t:c*t okt:u*t+u z$="t";:g:g,o;"White has ";wm'"chessm";("en:"wml);("an:"wm=l)'wm-wp;" piece";("s"wm-wpl)'wp;" pawn";("s"wpl);"."''"Black has ";bm'"chessm";("en:"bml);("an:"bm=l)'bm-bp;" piece";("s"bm-bpl)'bp;" pawn";("s"bpl);".":z:g:u*t+c z$c+g2210 K#o;l;o;o,e;z$;o,e+v;"1 to 8"'" DELETE ";o;o,,:ha=z$-"96" 2o:z$=:65320(:=t+wz$="0"2200 !z$<"49"ůz$>"56"2250 .va=z$:#o;o;l;o,e+l;va;o,e+v;"a to h" Wo:z$=:65320(:=t+wz$="0"#o;o,e+l;"_";o,e+v;"1 to 8":2250 z$c+g2300 4#o;l;o;o,y+l;z$;o,e+v;"1 to 8":hb=z$-"96" .Wo:z$=:65320(:=t+wz$="0"#o;o,y+l;"_";o,e+v;"a to h":2300 B!z$<"49"ůz$>"56"2350. L?vb=z$:#o;l;o;o,y+w;vb;" ",l,y+g;" ENTER " VZo:z$=:65320(:=t+wz$="0"#o;o,y+w;"_ (1 to 8)";l,e;s$:2350. [t+2390V `;:z$=(ha+96`)+(va+480)+"-"+(hb+96`)+(vb+480):#o;o,f-l;wb;"_";l,f-l;wb;l+(5wb);z$:upha=9 -ha:va=9 -va:hb=9 -hb:vb=9 -vb {d=17-va*2:m=13 +ha*2:ve=17-vb*2:h=13 +hb*2:va=9 -va:vb=9 -vb Ava=vbha=hbl:" Try moving "'" somewhere! "'s$:e:t:u*t+u Jwba(va,ha)>7l:" It is not "'" Black] move."'s$:e:t:u*t+u Uwba(va,ha)<10 a(va,ha)l:" It is not "'" White] move."'s$:e:t:u*t+u Ha(va,ha)l:" No chessman "'" at ";z$(w);". "'s$:e:t:u*t+u a(va,ha)=1a(va,ha)=10 (upwbvb-va=-l)(upwbva-vb=-l)(upwbva-vb=-l)(upwbvb-va=-l)l:" Pawns can't "'" go backward."'s$:e:t:u*t+c n(wba(vb,hb)a(vb,hb)<10 )(wba(vb,hb)>7)l:" ";m$;" can't "'" take ";m$;". "'s$:e:t:u*t+u 0ok=0:a(va,ha)=1x=t+l:455 %a(va,ha)=10 x=t+l:470 6a(va,ha)=2a(va,ha)=12 x=t-l:440 /a(va,ha)=a(va,ha)=14x=v:450 6a(va,ha)=4a(va,ha)=15x=f-t:435 Na(va,ha)=6x=l:480:okz$"O-O-O"z$"O-O "u+u+t:okok=c Oa(va,ha)=18x=l:480:okz$"O-O-O"z$"O-O "u+u+y:okok=c 5a(va,ha)=7a(va,ha)=20x=:430 ok"7800" &x=1z$="O-O-O"z$="O-O "u*y ws(1,1)=a(va,ha):s(1,2)=a(vb,hb):a(vb,hb)=a(va,ha):a(va,ha)=0:wbva=wkvvbvaz+t-c :wbokha=wkhhbhaz-c Dwbva=bkvvbvac+t Nwbokha=bk|3hhahbc S oku*y-c Xwbbchz+t-c:okz-c lwbwchc+t:okc v oku*y-c wb170:okr+t wb120x:okr+y oku*y-c 380|-(25wb) <a(va,ha)=s(1,1):a(vb,hb)=s(1,2):ok((wchwb)(bchwb))l:" ";m$;"] King "'" must escape "'" check! "'s$:e:t:u*t+u P@okl:" Man at ";z$(w);" "'" is pinned. "'s$:e:t:u*t+u wch=0:bch=0:a(vb,hb)wm=wm-(1wb):wp=wp-(1wba(vb,hb)=1):bm=bm-(1wb):bp=bp-(1wba(vb,hb)=10 ) hIa(vb,hb)epz$(̺)="x":fy=o:a(vb,hb)=wa(vb,hb)=t+w"6100"+wb*v |*a(va,ha)=1a(va,ha)=10 fy=o 1r$(rep)=z$:rep=rep+1:rep>8rep=l Pu*w:a(vb,hb)=a(va,ha):a(va,ha)=o:x=11 (vb=1vb=8)"905" x=9 r*y+wb*v $wc=wkc+wqr+wkr:bc=bkc+bqr+bkr:epve=vb*w+(wvb=)-(wvb=v-l):v+l;wb;l;ve,h;" ":a(ve/w,hb)=o:wm=wm-(lwb):wp=wp-(lwb):bm=bm-(lwb):bp=bp-(lwb):e(hb)=o:p(hb)=o:ep=o 5;:wbno=no+l:m$="White":t-l,v+l;o;v-l;l;z$ qwbm$="Black":l;l;t-w,o;no;v;(" "nov+lwkh=v-l:"":wkh=v-w:okok=y: Oa(v,v)a(v,v)>v+la(v,g+l)a(v,g+l)>v+lwkh=v-l:"":wkh=v-w:okok=y: :a(v,v-l)a(v,v-l)>v+lwkh=v:"":wkh=v-w:okok=c: 4a(v,v)a(v,v)>v+lwkh=v:"":wkh=v-w:okok=c  a(l,l)t+wok=l: Ma(w,)=la(w,g+l)=la(w,w)=a(w,v-l)=a(,)=a(,g+l)=ok=y: Ya(w,w)=la(w,g)=la(w,l)=a(w,g+l)=a(,w)=a(,g)=a(w,w)=va(w,w)=gok=c: )a(w,g)v+lwkh=g:"":wkh=v-w:okok=y: Oa(v,)a(v,)>v+la(v,g+l)a(v,g+l)>v+lwkh=g:"":wkh=v-w:okok=y: Ja(v,w)a(v,w)>v+la(v,g)a(v,g)>v+lwkh=:"":wkh=v-w:okok=c: 7a(v,)a(v,)>v+lwkh=:"":wkh=v-w:okok=c   a(v+l,l)t+wok=l: "Ia(v,w)=la(v,g)=la(v,l)=a(v,g+l)=a(v-l,w)=a(v-l,g)=ok=y: %Qa(v,l)=la(v,)=la(v,g)=a(v-l,l)=a(v-l,)=a(v,l)=va(v,l)=gok=c: *)a(v,)v+lwkh=:z-c:wkh=g:okok=y: rHa(w,w)a(w,w)>v+la(w,g)a(w,g)>v+lwkh=:"":wkh=g:okok=y: t6a(w,)a(w,)>v+lwkh=w:"":wkh=g:okok=c: v1a(w,w)a(w,w)>v+lwkh=w:z-c:wkh=g:okok=c z a(v+l,v+l)t+wok=l: La(v,g)=la(v,v-l)=la(v,)=a(v,v)=a(v-l,g)=a(v-l,v-l)=ok=y: _a(v,g+l)=la(v,v)=la(v,g)=a(v,v+l)=a(v-l,g+l)=a(v-l,v)=a(v,v)=va(v,v)=gok=c: +a(v,g+l)v+lwkh=v-w:z-c:wkh=g:okok=y: Ma(w,g)a(w,g)>v+la(w,v-l)a(w,v-l)>v+lwkh=v-w:"":wkh=g:okok=y: Ma(w,g+l)a(w,g+l)>v+la(w,v)a(w,v)>v+lwkh=v-l:"":wkh=g:okok=c: 7a(w,v-l)a(w,v-l)>v+lwkh=v-l:z-c:wkh=g:okok=c  xUok>ul:" ";("King"ok=z);("Rook"ok=r);" has "'" been moved. "'s$:e:t:u*t+u Jok=ul:" King cannot "'" castle when "'" in check. "'s$:e:t:u*t+u :ok=cl:" King would "'" be in check."'s$:e:t:u*t+u Jok=yl:" Intermediate"'" square is "'" attacked. "'s$:e:t:u*t+u wok=el:" Kings move "'" one square "'" at a time..."'s$:e:t:l:" except when "'" castling. "'s$:u:t:u*t+u <ok=z-ul:" Pawns can't "'" go sideways."'s$:e:t:u*t+u cok=y+ll:" Pawns    "'" capture  "'" diagona[y. "'s$:e:c:t:u*t+u @ok=tx=f-tl:" Bishops move"'" diagona[y. "'s$:e:t:u*t+u ok=e+ll:" Pawns move "'" one square "'" at a time..."'s$:e:t:l:" 2 on their "'" first move "'" (optional). "'s$:z:t:u*t+u Tok=fx=9 l:" Rooks move "'" up,down or "'" sideways. "'s$:e:t:u*t+u "Jok>vl:" Queens move "'" as Bishops "'" or as Rooks."'s$:e:t:u*t+u ,ok=vx=vv-l;l;t+l,o;"     "'" Knight      "'"   N  "'" moves:      "'"     ":e:u:t:u*t+u 6:ok>ll:" Only Knights"'" may #jump$. "'s$:e:t:u*t+u ?$l:" I[egal move."'s$:e:t:u*t+u @s=l:i="405":o:l:v:l::u-t:u+y:z+c:l:z$="EDPART 2":y:v:l:g:o:j=v:z$="IBBOARD PLAY":l:j:y:j:o:v:'''" COXSOFT 1987":z:r Jg,o;"This program"'"a[ows you to"'"use your 48K"'"Spectrum as a"'"chessboard...":u:z$="GOan #intelligent$":l:v+l:v+w:y:z$="ISchessboard.":y:o:v:l:c:t-l,o;'"You may set"'"up positions"'"for analysis"'"or play a"'"game against"'"a friend.":u:z:u-t:r:"The program"'"does not play"'"chess,so it"'"can't analyse"'"a position"'"for you.":z:'"Its purpose"'"is to act as"'"an umpire and"'"to block any"'"i[egal move.":u:v T"Helpful error"'"messages,e.g.":"660":'"are provided.":z:"There are 31"'"such messages.":v:"If you don't"'"understand"'"fu[y how"'"chessmen are"'"moved,":z$="I@experiment.":l:v-w:y:o:v:z:'"Make sure you"'"understand"'"castling and"'"en passant.":u:v:"The program"'"uses":z$="F@algebraic":l:y:z$="H@notation":y:o:"throughout.":"780":c:t+w,o;"x = capture.":z:r h"To move a man,"'"enter the"'"start and end"'"locations,e.g."'"e2-e4.":z:'"To castle,"'"move your"'"King to the"'"appropriate"'"square,e.g."'"e1-g1.":u:v r"Abbreviations"'"for English"'"file names"'"wi[ be shown"'"to help you"'"play through"'"any game"'"recorded in":v-w:l:z$="L@descriptive":y:z$="N@notation.":y:o:r:r+r:v:"BOARD PLAY"'"wi[ not te["'"you when"'"checkmate or"'"stalemate"'"occurs.":z:'"It wi[ simply"'"block a[ your"'"attempts to"'"move.":u:v:"If you are in"'"check and you"'"cannot move,"'"that is"'"checkmate!":u:'"If you are"'"not in check"'"and cannot"'"move,that is"'"stalemate"'"(a draw).":u:v |"A sequential"'"repetition of"'"moves forces"'"the program"'"to recognize"'"a drawn game.":r:'"It wi[ stop a"'"game if the"'"fifty-move"'"rule comes"'"into effect.":z:v:"You may agree"'"a draw at any"'"time: press O"'"(offer draw).":z:'"The Modify"'"option a[ows"'"you to #take"'"back$ a move.":u:w'" No cheating!":t/y,-y-y:c:v "Fo[owing"'"BOARD PLAY on"'"the cassette"'"are six chess"'"positions,"'"complete with"'"descriptive"'"text.":z:'"L loads them"'"(not yet).":v c*t !4wx=o:i$=s$:#o;o,o;" Note tape count,start recorder and press ENTER. DELETE aborts.":64377y,o:e^ !>,o:=t+wů=z-u-w65320(:;:u*t+c !C#t+65320(:8510>! !H; !Rmn=(23641Y\+256*23642Z\)-(23627K\+256*23628L\):nt*cz$="":i$="":8530R! !\3#o;g;l;v;o,o,"  SAVING ",:64200 !f[;:64377y,o:#o;o,o;" Rewind tape to"," and press ENTER when ready.", !k&o:65320(:t+8555k! !pT;:#o;ڧ;l;v;o,o,"  VERIFYING ",:64276:;:64377y8590! !z^#o;o,o;" VERIFICATION FAILED"," Try again? Y N",:t/y,-y-y !$o:65320(:="n"8599! !="y"8550f! ! 8575! ![#o;o,o;"   ",," ENTER   VERIFIED OK",:v/c,t !&o:65320(:t+8595! ! ;:u*t+c !i$=s$:x=o:e^ !mn=(23641Y\+256*23642Z\)-(23627K\+256*23628L\):nt*cz$="":i$="":8610! !2#o;w;l;o,o,"  LOADING ",:64301- !7;:g:r+r:r+r+(tup):"770"+(tup):xc-t:u*t+c !v-l;l;g,o;s$'" Loading "'" text for "'" LEARN CHESS "'" position "'s$'s$'s$;t,g;"No ";x;".":#o;v-l;l;o,o,"  LOADING ",:l:y,o;:" ONE":y+l,o;s$;s$:v:;:g:xç !M16384@255:u-t:u+y:"350":r+r:r+r+(tup):"770"+(tup) #'u*t+c olt(#(#kkkkstwgvt feycdur,zqgp7\S C   hkkkqkqpdmZxMwhiteBXIx"" M 5 6/2/87)u:#M3`3`__3_\MФM2ФG3 p-bv>< 82~ !2X!BX>2V>!V>2V*wɤ         >!V7V:Vʇ>!V7V:Vʛ-  CCICC4>*wɯ*w>V>2y>*w7V>>2>"2==2>:<2>"  x 00ll$HllH$ll$H7e0h(0Jz000 $~$~`` @~ `` 0`@f<0000000 0~~   b```b>fbhxjbbhxh`>b`off<ff~ff<< ll8dhxlf```bbv~VVFdt\LD<f<ff|``||ff|lf>fp<f|<b<bb44bjj<4b4,Fb4<8pf@ ^#>$H 22x00~f~`|ffffff?ff>F<`|fff8< l8`lhxl8<|TTfffff>v``<`f4,ff<0`~L2~(>|F `a``?||~<'  a`9`30`` ||>??&&b1c30`| |?|>?& y< ?|~?& > ~<f? 0`0~~f 0`0??``f c #01?` f c c03???|s ~??~s? ?~?x?f33 0p3 p?f3 0P<1 0?39> 8 g PU~<<<~ U_U_U_U}UWWUuUUUUU?}]U߳}?fb`ffff ?`@ ٻ 06cg ? @s f<><0b|`  f ?߻8`?I|vffvF|04| < $?7w  0/~W #``ff`>T4f00f$? 7687#``f>`fT0`ff`2`f$?ٳ}6c 9UUW _H#\:s,o:s+l,o:23757\,"":p+w+z-u,w:c*t-c:   COXSOFT 1987  w:v-l:l:t+l,o;s$: Ln=18:e(n)=e(n)-(1e(n)):p(n)=p(n)-(1p(n)):n: /g,o;s$'s$'s$'s$'s$'s$'s$'s$'s$'s$'s$:,o: z:r: (l:v:o:t+l,o;s$'s$'s$'s$'s$:,o:  f-t:v+w  st/y,-y-y u: +ve=z$(l)-"@":h=z$(w)-"@":z$=z$() {n=1̱z$:65366V,z$(n):65280:ve,h;"";ve+1,h;"":h=h+1:n:p,z+1:64161: Uc/y;o,o;s$;l,o;s$:f:c Zn=18:j=18:a(n,j)x=0+(11 a(n,j)=1)+(11 a(n,j)=10 )+(9 a(n,j)=2)+(9 a(n,j)=12 )+(7a(n,j)=3)+(7a(n,j)=14)+(5a(n,j)=4)+(5a(n,j)=15)+(3a(n,j)=7)+(3a(n,j)=20)+(1a(n,j)=6)+(1a(n,j)=18):8;1;0+(7a(n,j)<10 );n*2-1,13 +j*2;x$(x);n*2,13 +j*2;x$(x+1) _j:n: c/"V.5. Safe game SAVE]"'" Ian Cox 6/2/87": dbkv<8n=bkv+18:ok=ok+(100doka(n,bkh)a(n,bkh)7a(n,bkh)2)+(1a(n,bkh)=7a(n,bkh)=2):n:okcok=o ibkv>1n=bkv-11-1:ok=ok+(100doka(n,bkh)a(n,bkh)7a(n,bkh)2)+(1a(n,bkh)=7a(n,bkh)=2):n:okcok=o k nbkh<8n=bkh+18:ok=ok+(100doka(bkv,n)a(bkv,n)7a(bkv,n)2)+(1a(bkv,n)=7a(bkv,n)=2):n:okcok=o sbkh>1n=bkh-11-1:ok=ok+(100doka(bkv,n)a(bkv,n)7a(bkv,n)2)+(1a(bkv,n)=7a(bkv,n)=2):n:okcok=o u x$bkv=8bkh=8125} y<j=bkv+1:n=bkh+18:j>8123{ zqok=ok+(100doka(j,n)a(j,n)7a(j,n)4)+(1a(j,n)=7a(j,n)=4):j=j+1 {n:okcok=o }$bkv=1bkh=1130 ~>j=bkv-1:n=bkh-11-1:j128 qok=ok+(100doka(j,n)a(j,n)7a(j,n)4)+(1a(j,n)=7a(j,n)=4):j=j-1 n:okcok=o $bkv=8bkh=1135 Ej=bkv+1:n=bkh-11-1:j=9 133 qok=ok+(100doka(j,n)a(j,n)7a(j,n)4)+(1a(j,n)=7a(j,n)=4):j=j+1 n:okcok=o bkv=1bkh=8 5j=bkv-1:n=bkh+18:j138 qok=ok+(100doka(j,n)a(j,n)7a(j,n)4)+(1a(j,n)=7a(j,n)=4):j=j-1 n:okcok=o  wkv<8n=wkv+18:ok=ok+(100doka(n,wkh)a(n,wkh)20a(n,wkh)12 )+(1a(n,wkh)=20a(n,wkh)=12 ):n:okcok=o wkv>1n=wkv-11-1:ok=ok+(100doka(n,wkh)a(n,wkh)20a(n,wkh)12 )+(1a(n,wkh)=20a(n,wkh)=12 ):n:okcok=o  wkh<8n=wkh+18:ok=ok+(100doka(wkv,n)a(wkv,n)20a(wkv,n)12 )+(1a(wkv,n)=20a(wkv,n)=12 ):n:okcok=o wkh>1n=wkh-11-1:ok=ok+(100doka(wkv,n)a(wkv,n)20a(wkv,n)12 )+(1a(wkv,n)=20a(wkv,n)=12 ):n:okcok=o  $wkv=8wkh=8175 <j=wkv+1:n=wkh+18:j>8173 uok=ok+(100doka(j,n)a(j,n)20a(j,n)15)+(1a(j,n)=20a(j,n)=15):j=j+1 n:okcok=o $wkv=1wkh=1180 >j=wkv-1:n=wkh-11-1:j178 uok=ok+(100doka(j,n)a(j,n)20a(j,n)15)+(1a(j,n)=20a(j,n)=15):j=j-1 n:okcok=o $wkv=8wkh=1185 Ej=wkv+1:n=wkh-11-1:j>8183 uok=ok+(100doka(j,n)a(j,n)20a(j,n)15)+(1a(j,n)=20a(j,n)=15):j=j+1 n:okcok=o wkv=1wkh=8 5j=wkv-1:n=wkh+18:j188 uok=ok+(100doka(j,n)a(j,n)20a(j,n)15)+(1a(j,n)=20a(j,n)=15):j=j-1 n:okcok=o  g:64353a:v: e:v,o;s$'s$'s$'s$'s$'s$: so:v-l;"w","'":v-l;o,"":v-l;"",o:v-l:v-l;o,-"":v-l;-"",o:v:o;e,f-l;"": 7#o;o,o;"  "'" ENTER " f#l;o,f-l;" Sound is "+("on. "s)+("off."s);" ";l,f-l;" R runs again. "  sv/c,t %o:i$=:65320(:i$=y-v;: )i$="s"s=o+(ls):p-y*w-v,r/t:t:z+t i$="r"c*c-u*t  i$="c" "z+y ,Cn=gf:v-l;o;l;n,o;c$;" ":n:n=gf:n,o;s$+" ":n:,o: 6&(upwkv2)(upwkv7) 8=upwkh>1a(wkv-1,wkh-1)=10 ok=l: :=upwkh<8a(wkv-1,wkh+1)=10 ok=l: <>upwkh>1a(wkv+1,wkh-1)=10 ok=l: >>upwkh<8a(wkv+1,wkh+1)=10 ok=l: ? @&(upbkv2)(upbkv7) B=upbkh>1a(bkv-1,bkh-1)=1ok=l: D=upbkh<8a(bkv-1,bkh+1)=1ok=l: F<upbkh>1a(bkv+1,bkh-1)=1ok=l: H<upbkh<8a(bkv+1,bkh+1)=1ok=l: I ^Xz$="@ALEARN CHESS":p,*y:l:y:v-l:q,"":l;o;-q,o:o,-f:l;o;q,o:o,f::v: cbkv>2bkh=2a(bkv-2,bkh-1)=3a(bkv-2,bkh+1)=3a(bkv-1,bkh+2)=3ok=1: dbkv>2bkh=7a(bkv-1,bkh-2)=3a(bkv-2,bkh-1)=3a(bkv-2,bkh+1)=3ok=1: ebkv<7bkh=2a(bkv+1,bkh+2)=3a(bkv+2,bkh-l)=3a(bkv+2,bkh+1)=3ok=1: fbkv<7bkh=7a(bkv+1,bkh-2)=3a(bkv+2,bkh-1)=3a(bkv+2,bkh+1)=3ok=1: hnbkv>2bkh>2a(bkv-1,bkh-2)=3a(bkv-2,bkh-1)=3ok=1: inbkv>2bkh<7a(bkv-1,bkh+2)=3a(bkv-2,bkh+1)=3ok=1: jnbkv<7bkh>2a(bkv+1,bkh-2)=3a(bkv+2,bkh-1)=3ok=1: knbkv<7bkh<7a(bkv+1,bkh+2)=3a(bkv+2,bkh+1)=3ok=1: mbkv=2bkh>2a(bkv+1,bkh-2)=3a(bkv-1,bkh-2)=3a(bkv+2,bkh-1)=3ok=1: nbkv=7bkh>2a(bkv+1,bkh-2)=3a(bkv-1,bkh-2)=3a(bkv-2,bkh-1)=3ok=1: obkv=2bkh<7a(bkv+1,bkh+2)=3a(bkv-1,bkh+2)=3a(bkv+2,bkh+1)=3ok=1: pbkv=7bkh<7a(bkv+1,bkh+2)=3a(bkv-1,bkh+2)=3a(bkv-2,bkh+1)=3ok=1: rnbkv=1bkh>2a(bkv+1,bkh-2)=3a(bkv+2,bkh-1)=3ok=1: snbkv=1bkh<7a(bkv+1,bkh+2)=3a(bkv+2,bkh+1)=3ok=1: tnbkv=8bkh>2a(bkv-1,bkh-2)=3a(bkv-2,bkh-1)=3ok=1: unbkv=8bkh<7a(bkv-1,bkh+2)=3a(bkv-2,bkh+1)=3ok=1: wnbkv>2bkh=1a(bkv-1,bkh+2)=3a(bkv-2,bkh+1)=3ok=1: xnbkv<7bkh=1a(bkv+1,bkh+2)=3a(bkv+2,bkh+1)=3ok=1: ynbkv>2bkh=8a(bkv-1,bkh-2)=3a(bkv-2,bkh-1)=3ok=1: znbkv<7bkh=8a(bkv+1,bkh-2)=3a(bkv+2,bkh-1)=3ok=1: { |pwkv>2wkh>2a(wkv-1,wkh-2)=14a(wkv-2,wkh-1)=14ok=1: ~pwkv>2wkh<7a(wkv-1,wkh+2)=14a(wkv-2,wkh+1)=14ok=1: pwkv<7wkh>2a(wkv+1,wkh-2)=14a(wkv+2,wkh-1)=14ok=1: pwkv<7wkh<7a(wkv+1,wkh+2)=14a(wkv+2,wkh+1)=14ok=1: Lwkv=7wkh>2a(wkv+1,wkh-2)=14ok=1: Lwkv=7wkh<7a(wkv+1,wkh+2)=14ok=1: Lwkv=2wkh>2a(wkv-1,wkh-2