Google
 

Trailing-Edge - PDP-10 Archives - walsh_goodStuff_1600 - more-games/checkr.exe
There are no other files named checkr.exe in the archive.
?p	` ?xG",:yKb)(<vU(`OhJQF:zkq)?G
?{rE@@B8	tvSggIN\ 
" QRRTxS@,GB`8`gg2@IJNi98`ggQ02@aKb]8\YCI4yQp6`yUV2@=2@\`KbM88\yCI4yTG`TGMs E(	HEE2@]4K.m{Tb@hHV(Y]0H$	$$	|0V(Y{BC2@c3gg[wb@hHXHkc1b@{	hHXHkCX`mH=2@"a96GF2@52@|2@C	2<2hHZh}jDZh}a 2{||GWK,^7T,^7k[(	z
2@$@aQI4F2@"N8<2hH]k(]b6NfO"O"	]bKa*H$NA2@C5gnH1~b@{	hHZh}C1Jh_(!iOe -2@aj['{xKQN6N>:8 _8"ag2@AG[ t
Ke2@8
Y&tJRVJVaH382@<:Su
tGHk	n2@fgVL%+#eb8dG[$89KeNo	nx	cHCbhHc(AJV2@^32@^32@bLrLrFg2@0G[$:(Ke2@KgV%+eGB`ed8JI2@pM2@pMKbHwLrLrFg2@PG[$HwKenx	hgN2@C(2@C(aLhLj
hNihuC'2@9$2@9.['{xLjLrLd Nl9,82@C52@C5gnH1
hNlC12@M7['YhLn`M5ghqY(hn`D&MM2@}['<hLt@K|gl=T(ht@KJc$@)#..FO<<-2;aeEtm,f@8INXG,GB`@- "9Y@0A MgwiS?([>p+R~@ttggGB`HJZh}]c1^HGB`ggGB`tO!0I?b*b@hqBKjHk	xO2rPg

	
m<H1g6q02X'@ENHb	EKdI,I
M2_(6gR]`Go.8Pg#H$	6$	P*g6$*,_`$%@! haS<!OyfOSYSINxqI<TN(Pp hxC2<XOPP HM7N(yPg6$L@-iH vs hS<!rRpK;SYSPRINTxI<TRShp 
D%hC2<XRpT0# HM7R   2gRdXEQ;0NDgR_XEQ;0(g6@'HBg6$X8`@'8I$8O)I$80[>tw X	b+ "XXB( (QB( "XXB* @|! X |* 	b@@7O@!>|*>-4X@@O@!(Lu-4X!(i;-4X!(>9-4X!({-4X
&X ,X&	`
?CAN'T FIND HIGH SEGMENT ?x @|! X |* @@ "	bO@!>|*>6@+ /2B+7@,~
&X! ,X&
&X$ ,X&
&X&,~
%WARNING -- HIGH SEGMENT "" NOW FOUND ON :
@@7@,~)@. 
"+X&`	 R(5,LMOV,MOVX);
7120.		IF (PNT = 1) THEN PUT SKIP LIST ('MACHINE MOVES FROM',X,Y);
7140.		IF (JMP = 0) THEN DO;
7160.		S(LBRD,X+A,Y+B) = S(LBRD,X,Y);
7180.		S(LBRD,X,Y) = 0;
7200.		X=X+A; Y=Y+B;
7220.		END; ELSE DO;
7240.		S(LBRD,X+A+A,Y+B+B) = S(LBRD,X,Y);
7260.		S(LBRD,X,Y) = 0;
7280.		S(LBRD,X+A,Y+B) = 0;
7300.		X=X+A+A; Y=Y+B+B;
7320.		END;
7340.		IF (PNT = 1) THEN PUT LIST ('TO',X,Y);
7360.		CALL PROMOT(LBRD,X,Y);
7380.		IF (JMP = 0) THEN RETURN;
7400.		;
7420.		/* WORRY ABOUT MULTIPLE JUMPS */;
7440.		;
7460.	NXTJMP:	CALL ISJMP(LBRD,X,Y,A,B,JMP);
7480.		IF (JMP = 0) THEN RETURN;
75gRdu0$gR(MON;Pg6$XGl`-8p@j P;g6$HF\@-hZPr8P?g6$rP?
}	p>GPzg
42-H2pxgRH /* THIS CHECKER PROGRAM WAS DERIVED FROM ONE */;H	g6$P	Q 2M'
HLg6$	Xn`2HICH HAD BEEN CONVERTED FROM BASIC.  */;p	PgRP`/* ANY ERRORS IN THIS VERSION ARE THE */;H	g6$`	0`2M'p	$gR
/* RESPONSIBILITY OF JOHN SAUTER OF THE */;H	(g6$	;
20M'`	/gR0 /* ADVANCED SYSTEMS GROUP.  */;H	4g6$P	B 2(M'0	:gR(
@;H	>g6$x

@2!M'p	AgR!-76  */;0
gR!P;H	g6$p	%@2PM'`
gR,p DCL TT FILE, STR CHAR(100) VAR;P'g6$%/k@-%p@g P)g
42AH-P:gR
l`ASKTO:	PUT LIST('TO');Pvg6$ -p vs P/gRPb`
DO I = 1 TO RX(1)-1;P_g6$Y`gP-\p@VK PgRB8AIF (MOVX = 0) THEN DO;h	TS<!-P
mATT0
}gRP@;;H	Fg6$p
2!PM'H	Mg6$`
g2,pM'h<gR%H@DCL LOG FILE OUTPUT PRINT ENV(VFORM);h
S<!
R& 
2NLOGx
I<T#$`
&mh
C2<X#h%(
* X
%g6$"@w21h(aO5v;Gx
+I5R#
'
9%Hp0 F(
@h
1C25V& '`
> HH
8M7#
2O  x	}I<Th)@
L
Yh
CC2<X(H*
P h
KS<!	~/0
{R[STRx
QI<T*(,
`
h
XC2<X+,P
e `
_g6$X
, w2%H'{*J=&!`o^Nqbx
fI5Rh
D.H
t,pp0F(
{0=h
lC25V-P/
y Hx
sI5R*(
Y0(,p(!F(
2h
zC25V/02_`0H
(X
?gR1h`
DEFAULTh(RANGE(*))FIXED;Xg6$1&`w24h$-RP;^8G:A# THIS PROGRAM WILL PLAY CHECKERS.  THE COMPUTER IS X,`g6$2@,$25H@CHAP8X%g6$~$2?` 	a-@CAb +gR?` #?'AND YOU ARE O.  THE COMPUTER WILL GO FIRST.  SQUARES ARE'; PUT SKIP;
5HM7h
m
PgR:@@!?'IN THE FORM (X,Y) AND SQUARE (1,1) IS THE BOTTOM LEFT.';PUT SKIP;@G:A#t IN THE FORM (X,Y) AND SQUARE (1,1) IS THE BOTTOM LEFT.`Jg6$8
7@$2Fp@CHAPK8x
6gRH0`START:	OPEN FILE(TT) INPUT RECORD TITLE('TTY:');PKg6$oh;$ w2g8<;GhYS<!
U.STARTxeI<T<hGH
<
1G:A# AND YOU ARE O.  THE COMPUTER WILL GO FIRST.  SQUARES ARE`sg6$6 
Q$2J@CHAPt8X
S<!fRPPNTLOGx
I<TABx

$h
C2<XBC@
 h
S<!
	Vx9LPNTVALx
I<TC`E@
,h
#C2<XDHF
0@
OXSg6$
C@$2Q 	a-@CAbhlC2<X=PH
A P
;g6$;2Q@/ @
BG:A#K@TTY:@F	a-@CAbTITLE('CHECKR.LOG');PKg6$[`-k0 vs PgRxR@IF (RX(1) = 1) THEN DO;P!g6$4 ,q`-5@ZPr8PVG:A#C INVALID TARGET`
Ug6$Jh
~`	2P@ 0&8 	`'$8H
rG:A#
H CHECKR.LOG`
xg6$2P@@(aOP
ytt8H
g6$ P2`M'j`
Gg6$2Qx@'{Eth4$] X
+g6$@@w2Wp!`
	0x=Anqbx
SH8F(hx
$T08F(X
1g6$F(g2XH `7x
	 X
Kg6$I@
s@g2N8 `7x
RH 	/* DECLARATIONS */;pgR]  @DCL R(6,6,20) FIXED; /* CURRENT MOVE */;h
^X9Rxh
6V=1`>1`>!!`><p;\8HM'xHSg6$(!`2eM'He#DCL S(6,8,8) FIXED; /* CURRENT BOARDS */;h
S<!@f@49SxI<Tb@d "EhC2<Xc(dh& p!g6$aP/#w2ex
8P=1`>A`>A`><p;\8H'g6$a#2<M'x.I5Rb@n(rePF(H`g6$($2M'hS<!
DCL L FIXED; /* LEVEL */;h}S<!	`6L BXkC47d<
	X
gR%@DCL (VAL, MOVX, DEPTH) FIXED;hS<!(.Y,VALxI<TrxtX%2hC2<Xs`u * h$S<!]X<!MOVXx+I<Tu@w :h1C2<Xv(wh> 0QgR&`;xI<Tp@yHLhDC2<XxPzQ HWgRzx(/* INITIALIZE */;HRg6$z0i(2}M'hVgR}) STR='010001000000-1000001000000-100-1';p[G:A#
y 010001000000-1000001000000-100-1Xag6${@) g2h@?
8g>)'@hgRh*@DOX=1TO8;hnS<!	axy<XxrI<T~0g0g4%x:I5Rp@EXhC2<X(h& `!g6$r X%@w2!`=0Au;Gx'I5Rrx`6 `F(<h-C25Vh(: HDx5I5Ru@2@D `F(Jh;C25VH	H HRxCI5R@
 R `F(2shIC25V	(
hV HH?g6$xW&`2zxM'@gRX+`DO Y = 1 TO 8;h\S<!s	cXg<Yx`I<T
(hfC2<X
x8s ng6$PJ+`z2}@C@ 	`A Aa7 	`n"I`8"hj80tg4%x|gR)(-S(1,X,Y) = SUBSTR(STR,MOD(X-1,2)*16+2*Y-1,2);Pmg6$@Uf@-> g 0IgR+. END;hxC2<XH g6$}pu*@z2@?L@ 	`A Aa7 	`n"I`8"hj8PgR;P8 
CALL MAKMOV(MOVX,1,1,1);Pg6$PP
I`2Q@ Py Pg6$RL 2RH@S Pg
:H	`8v2RH}Prg6$->@o2UP@"2gP+g6$<@2>@2(@Py P~gR0`7
MOVX = (RX(1)*RANDOM)+1;PegR}hW@PUT SKIP LIST ('FROM');P1g6$F(@B o2H?@"LgPig6$w-^x vs PZg6$&-dh vs Psg6$Hxg`->@e PNg6$*Z	`( VK P&g6$2X19@o26@"LgP
g6$!0	[j-%pVKPig6$END;Hmg6$hy/@}2h>G0pgR0`;Hug6$`0`2  M'HxgR  2	/* INITIAL MOVE */;H|g6$X222M'@gR23 RANDOM()=0;hS<!6"+RANDOMx	I<T!(#qhC2<X"#P (
hS<!a%(9BMODx I<T$%x/<h'C2<X%&@4 h.S<!!'H<<5SUBSTRx5I<T&`(@Dh;C2<X'H)H `Cg6$X-g2+}' *J8s8
g6$Pq. }2X}>G8gR,4@RX(1)=1;`\g6$+P4@g2/x 	`78hhbH_gR/x5`	CALL LSTMVS(-1,1);heS<!
.82smLSTMVSxjI<T-0/yOhpC2<X./X}hxg6$,h5`o20`3	`-K,8x;g6$H]7g2;PhC2<X45@,M0^gR6:`;H-g6$5`;:`270M'X0gR70</*LOOPPLAYINGTHEGAMEO*/;H4g6$6XB<28(M'0:gR8(=;H>g6$7x7=2(M'shS<!kXXEE4NMAKMOVxGI<T9:hV hNC2<X9p;0[ pUg6$h8 o2x =088889	bpAgRx>@NXTMOV:	CALL GETMOV; /* GET USER'S MOVE */;x8gR@p?`CALL EVAL(-1,1,VAL,MOVX,2); /* FIND BEST MOVE */;hjS<!eh(6*xEVALxqI<T>(@hxC2<X?@P g6$=0?`o2Ap 	`-"Kg`uA`8 `8@("y'Hg6$?`2B8M'`	xg6$A	2Kh =08 `'$8Hg6$FAz2Kh?o)bhcS<!V1BsNXTMOVxI<TC`E@,lh#C2<XDHF0 @>gRhB CALL PNTBRD;XEgRHC@
@H@CALL PNTBRD; /* PRINT THE BOARD */;Hcg6$#H@28M'@gR8I`GO TO NXTMOV;0"gRQ@K;Hg6$Q(K2RHM'@gRL GETMOV:	PROC;H'g6$`L #-m`P.qbxI5RLXlT pF((68hC25VSTP H`,gRlM@DCL (I, X, Y, A, B, U, V) FIXED;H1g6$>@2@pM'x,I5RC`$W9x@0F(0h0C25VVWX 20g4% pBgRYN`/* GET A MOVE FROM THE USER AND MAKE IT */;HAg6$X(	tN`-\pM'HHgRHPTRYAGN:	RX(1)=1;hMS<!L]PYU9TRYAGNxQI<TZ(\`&hXC2<X[\Pe `	sg6$Pg- 	`78hhbxfI5RZ(Y0H@0X}0H]g6$dG 2
@M'h&S<!r	2`4IxyI<T_ ahC2<X`aH
hS<!zUx0AxhS<![ )1Bx"I<Td0f1>h(C2<XefX5 h0S<!#dX>:Ux6I<TfxhXERh=C2<Xg`i J hDS<!7f8R;VxKI<Ti@k ZYhQC2<Xj(kh^ xYg6$TpIM@w-Y
8!`#Y^iAu;Gx_I5R_ mxol XhgC25Vm HxnI5R~0yoX}l XhuC25Vn` Hx|I5R
gq8l XhhC25Vp@ Hox
I5Rahsl X hC25Vr  H'xI5Rd0)tx'l X.hC25Vt H5x&I5Rfx>vX5l	 X<h-C25Vu` HCx4I5Ri@Rx8Cl Xmh;C25Vw@ HH/gRQ CALL LSTMVS(1,1);`gRzHS`PUT SKIP LIST ('MACHINE WINS');hhg6$yh^S`$-{h 	a-@CHAPi88SgR{hUSTOP;HZg6${0fU0-|`X'0]gR|`V END;Hbg6$|0nV }-`>G@@G:A#i FROMhig6$zW@$-( 	a-@CHAPj8XmgR(X`
READ FILE (TT) INTO(STR);Xtg6$~PX`%-P@'{@*K
Rg.`Ig6$y Q o-x 	`8 	`8@"5Gh
cg6$LHR@	-}h	 	`8 " y
8DGHg6$TR@z-}ho)b0ROR BEGIN; ?'REENTER'; GO TO TRYAGN; END;Hg6$X!Z-8@IbHg6$OZk	`85gH G:A#j REENTERHYg6$sZ }	`>GmhlC25V]PH g`	gR8[ GET STRING(STR!!' ') LIST (X, Y);HrgR
X\@ON ERRORESYSTEM;XTgRh]`-P 	`8 ?L8a 8P8 `$8HEg6$d]`z-PSo)b0Mg4% pRgR
H_?'THERE IS NO "O" OCCUPYING THAT SPACE';xUG:A#o THERE IS NO "O" OCCUPYING THAT SPACE`\g6$
`i_$-S@CHAP]8@cgR` GO TO TRYAGN;-@5G:A#&  png6$hU[ -
X *J8@c>8gK@?LF@CFCG0hgRa@END;h=gRdIF (R(1,1,I) ^= X) THEN GO TO NOTMV1;Pgg6$Ml{`-M@ j POgRdh /* WE HAVE THE MOVE */;P%gRl0	@
IF (JMP = 0) THEN DO;P&GG:A##g ILLEGAL TARGET|g6$XHd	-!p> 	`8 	`8 Wh8hZY`~1`G$8hS<!RP&)gNOTMV1xI<TAf(LHyg6$(5a@}-	hS>G	ng6$xb`z-$(>@Wh@ 	`A 	`8 " !a7 	`n"I`8"hj804g4%h%C2<Xh`F P@g6$d-!p> e (G`%g6$ZZ$	`(@CHAP&8hGgR!pe IF (R(2,1,I) ^= Y) THEN GO TO NOTMV1;@IgRf@GO TO GOTMV1;h[S<! &8fEyGOTMV1x_I<T`nheC2<Xh(r @gRXg`NOTMV1:	END;HTg6$"g`}-P>>GxwI5R& HX@0X30h|C25VP! x@!gRHj GO TO TRYAGN;Tg6$XJe 	-> `8 	`8 Wh8hZY`
`G$8XgR$(iA#] THAT PIECE CANNOT MOVE`g6$"pdi$-H@CHAP8hcgR8k@GOTMV1:	/* ASK WHERE TO MOVE TO */;H	Zg6$Pk@-8pM'x.I5Rf'0;8@0Xg0h2C25V&8'x /h	dS<!`<pEoASKTO APg6$e -> e XmgR*Hn
READ FILE (TT) INTO(STR);XNg6$)pfn%-,h@'{@*K
RgxSgR,ho ON ERROR BEGIN; ?'REENTER'; GO TO ASKTO; END;P+gR5Hl S(L+1,X,Y) = S(L,X,Y);HYg6$+ ko -30@IbHeg6$oo kA305g`jg6$uo $A.X@CHAP&8Png6$zo A/( j Htg6$o  }A-0>G0Qg4% x@I<T(1	:hC2<X0 1` `@gR30p@GET STRING(STR!!' ') LIST(U,V);P
gRb8`
DO I = 1 TO RX(1)-1;pg6$2
ip@-M *J8@c>8gK@Y^F@Z0FCGHgRMq`ON ERROR SYSTEM;X
hgR5@sJMP*/;H%g6$4hSs-:8M'8+gR:8t JMP = 0;h/S<!Ah:%jJMPx3I<T6@9PM|e@OG:A# TO`Bg6$Tl`$-*H@CHAPC8h9C2<X7(:Q XLg6$6\t g-;H `7x4 8RgR;Hu@A=U-X;hXg6$;(u@g-E Y^8 ?L8
@0X0hfC25V<p>0 G'gRQ xIF ((ABS(A) = 1) & (ABS(B) = 1)) THEN GO TO VALMOV;P-abhRXp6O"P'g6$ph(0U`2@OK P?2gRvx /* VALIDATE A MOVE */;PK_g6$	<Ld{@2	LHA[ P%
g
42$H-&8P"9g6$H#"@-1AK P!g6$8!" -( VK PELg
:HGW8Embx2 WxEu0gRM@}END;hbg6$<0
v`g-Q  Z08 C8
8PlgR{`
`
S(1,X+A,Y+B) = S(1,X,Y);P$Yg6$$i;@-M$,!w P#4gRH@@@/* WE HAVE THE MOVE */;PEg6$X`@-`@tM p&gRIy IF ((ABS(A) ^= 2) ! (ABS(B) ^= 2)) THEN DO;Ag6$H(Ry 	-V0 X:8hNY`G~## sV8 `Gz8DGHHg6$\y z-V0o)bX~gRKHz@?'INVALID TARGET'; PUT SKIP;`
mg6$Jpbz@$-L(@CHAP
n8X[g6$z@$-@ 	a-@CAb@agR@{`GO TO ASKTO;H$g6$DP3}}-J(>GP$g6$%'@Q0!K htS<!4O@|9ABSxtI<TNXP8h{C2<XO@Q g6$>P'x	-I X:8hNY`'~"# sV8 	`'x8DGh	S<!u`X
VALMOVxI<TR0T!,hC2<XSTX% P g6$Ix-I tM hkgRV0~ JMP = 1; A = DIVI(A,2); B = DIVI(B,2);X+g6$UH:~ g-g  	`7x4 h2S<!e@,i^DIVI ~Pyg
42H--0xgRGX@VALMOV:	/* WE NOW HAVE A VALID MOVE.  IS IT LEGAL? */;hgRZHIF (R(1,1,I) ^= X) THEN GO TO NOTMV2;Mg6$Y`K	-^x 	`8 	`8 Wh8hZY`~1`G$8hSS<!8	Hc)`NOTMV2x[I<T[H](j hbC2<X\0]po hJgR^x IF (R(2,1,I) ^= Y) THEN GO TO NOTMV2;pg6$^	j 	-p `8 	`8 Wh8hZY`
`G$8*H<g6$@-b8M'xI5RR0aPg6$2`T`z-p@Wh@ 	`A 	`8 " !a7 	`n"I`8"hj80g4%h	igRp@IF (R(3,1,I) ^= A) THEN GO TO NOTMV2;Hg6$c -l0M'wx7I<TWf83ch+C2<Xe@g8 p2g6$y~ g-o
 X:88hW	`7x P'Qg6$'\X ${@! h
gRiH`IF (R(4,1,I) ^= B) THEN GO TO NOTMV2;Eg6$h`
_`	-k0 !`8 	`8 Wh8hZY`d1`G$8h
^gRk0IF(R(5,1,I)^= JMP) THEN'GO8TONOTMV2;Sg6$jHP	-dh0)`8	`8PWh8hZY`6A`G$8`68T0Og4%cP  .p9g6$=~ g-`
 Y
88hW	`7x# g6$d@	-iH `8 	`8 Wh8hZY`ai`G$8P"Mg6$)`"V*-*`ZPr8P"gR$ & 
READ FILE(TT) INTO(STR);P&1g6$f('I -sH$,Aw P,gg/,J:N/
:N/
PKZabh	;0KQzLdP!&g6$p!.`-hAy PAxg
:H 8B;20B!@]gRup
S(1,X,Y) = 0;x*g6$u0:
g-w(m
`78s"0G`ax@.gRw(
G^8`?L8h9g6$KY
8
G^8`C8@@gRy8@END; ELSE DO;HFg6$xxP@}-mm>GHJg6$ 0@ z-puo)bXtgR`S(1,X+A+A,Y+B+B) = S(1,X,Y);@ /gRHS(1,X,Y) = 0;0-g6$Eh/
`g-upm 	`8 ?L8a 8P8g"yG"'d8a#`8 >
P$hg6$$w<`-Nx$,!w P YG:A#
nILLEGALMOVEP!g6$0x-	!y P Cg6$@ H -	@vs H ;gR S(1,X+A,Y+B) = 0;|g6$P 
8
G`ax 0 gRX@END;H 	g6$( w@}-zu>GH 
gRp`	CALL PROMOT(1,X,Y);h S<!\	M(LjrPROMOTx I<ThH $!h C2<XP ) @ vgR~0GO TO DUNMOV;!HSg6$zH <`g-Hu! 	`8 ?L8a 8P8g"yG"'d8 X:8
G`
`d1`#`8 >
xYg6${  g-u
 `78s"0G`ax @rgR NOTMV2:	END;Hwg6$ _ }-b8>Gx GI5R[Hc
@ T@0X!30h KC25V	H  HH SgRp@?'ILLEGAL MOVE';`mg6$(!E@$-X@CHAPn8 ^gRX`IF ((JMP = 0) & (R(5,1,1) = 1)) THEN ?' - MUST JUMP';P?Zg
:H&8?ap20yH?iP!DG:A#n  - MUST JUMPp #g6$ s`o-~0
 	`8 ?L8a!Z8h *S<! 0!8DUNMOVx }I<T`@!
!yh!C2<XH! 8"gR`PUT SKIP;X!g6$($-C0 	a-@CAb@!gRC0 GO TO TRYAGN;0gR(@;H!g6$x!@-hM'x!!gRt`DUNMOV:	/* NOW WORRY ABOUT MULTIPLE JUMPS */;H g6$!T`-@M'x!-I5R`!(!:t@0X#0h!2C25V0p !.H!Sg6$!^ (-hT' dg6$
P"`	-` mP8 `' 6V8 	`'x8DGX!9gR@ 
IF (JMP = 0) THEN RETURN;`!Mg6$h!A 	-h mP8 `'$8H!@gRh! X=X+A+A; Y=Y+B+B;p!Yg6$ !e! g-X ?L8 X:8
G"'d8g>yGp!]g6$! g-1 C8 Y
8
G"Gd8g>0G`!dgRB`"@MULJMP:	CALL ISJMP(1,X,Y,A,B,JMP);h!kS<! ~2!yeMULJMPx!qI<T('(":"z"7` qg6$!`$-`@CHAP r8X#gR!P#`
IF (JMP = 0) THEN RETURN;`"g6$ x"#`	-#@ mP8 `'$8H"
g6$"#`(-#@T'H"gR#@%PUT LIST ('TO');`"g6$"x""%$-$ @CHAPC8X
g6$qP"/& %-%p@'{@*K
Rgx"!gR%p'@ONHERRORBEGIN;?'REENTER';GOTOMULJMP;'END;H"&g6$$x"3'@-(p@IbH".g6$$'@k(p5g($h!xC2<X'p"?`gR(p(`GETSTRING(STR!!'')LIST(U,V);p"@g6$((`-q *J8@c>8gK@Y^F@Z0FCGH"FgRq*ON ERROR SYSTEM;8gR*`+ RX(1)=1;`"Qg6$*("`+ g-, 	`78hhbH"UgR,,@CALL LSTMVS(1,1);`"[g6$+@"l,@o--@ 	`8 	`8@"5GX"gR-@-`
.Abx#I5R(!y3#B`@0X'!0h#C25V23P #8#QgR4(0 B=V-Y;h#g6$3p#I0 g-9 Z08 C8
8p#!gR91@IF((ABS(A)^=I2)]!(ABS(B)^=02))THENDO;P&g6$bpH-sH$,!KDP%bg6$$D?;-H@$,!wP$vg6$%c>-\8$,!wHP#xg6$?$4-@#]!K`P%\g6$$Z:-K($,!w#(g6$5#X1@	-I X:8hNY`G~##PsV8 `Gz8DGh"og6$.#"/g-4( Y^8 ?L8
:H,^8(lh2((tx%MgRC`7`/* WE NOW HAVE A VALID MOVE.  IS IT LEGAL? */;H$g6$Bh$"7`-D(M'$Ng6$Ip$59z-m$,@Wh@ 	`A 	`8 " !a7 	`n"I`8"hj80$!g4%h$+gRFX: IF (R(1,1,I) ^= X) THEN GO TO NOTMV3;$.g6$Ep#D: 	-K($, 	`8 	`8 Wh8hZY`~1`G$8h$4S<!"tt%U)`NOTMV3H7g6$G&@@-ch$,M'%LX$
g6$A0%6@g-Qx 	`7x4 P$gRD(9
DO I = 1 TO RX(1)-1;h#CgRK(;@IF (R(2,1,I) ^= Y) THEN GO TO NOTMV3;$Sg6$J@3;@	-M$, `8 	`8 Wh8hZY`
`G$8h2gRM<`IF (R(3,1,I) ^= A) THEN GO TO NOTMV3;$ag6$L(i<`	-Nx$, `8 	`8 Wh8hZY`ai`G$8hhgRNx>IF (R(4,1,I) ^= B) THEN GO TO NOTMV3;$pg6$N#:>	-\8$, !`8 	`8 Wh8hZY`d1`G$8h#9gR\8? IF (R(5,1,I) ^= JMP) THEN GO TO NOTMV3;PEgRp(;`
JMP = R(5,LMOV,MOVX);Hog6$"G'@ }&8>Gp$Hg6$%N6@g-Yh
X:88hW	`7xP-<g6$WX73Q@,^v8AUEX$CgRchA`S(1,X+A+A,Y+B+B) = S(1,X,Y);P>g6$>T %5j@!w
%NMP&Xg6$k&`O@-l!K P<jg
:H m8<qgp20J<yPA<g6$PB'@ m$xB; P@kg6$@w mx"; PA[g6$@Aa"`2A[Q @&gRe0CS(1,X,Y) = 0;&p%g6$$6@g-C`
 Y
88hW	`7x# x$<I<TGX[P%]'h%TC2<XZX\%a $~g6$Ox#5? 	-H@$, )`8 	`8 Wh8hZY`6A`G$8H&*gR^D S(1,X+A,Y+B) = 0;%jg6$]8%}D g-_X$, `78s`8 C8 Y
8
G`ax H%ogR_XE@X=X+A+A; Y=Y+B+B;p%xg6$_&E@g-`H$, ?L8 X:8
G"'d8g>yGp%|g6$&E@g-b$, C8 Y
8
G"Gd8g>0GH&gRbF`	CALL PROMOT(1,X,Y);p&
g6$a8#0F`o-6$,
 	`8 ?L8a!Z8@&gR6HGO TO MULJMP;0''gRmJ@;&fH%g6$S8&+A`g-e0$,! 	`8 ?L8a 8P8g"yG"'d8 X:8
G`
`d1`#`8 >
x%Hg6$Y%pCg-^$,
 `78s"0G`ax @#/gRr I NOTMV3:	END;X&hgRg@K`/* NOT FOUND IN MOVE LIST */;H&5g6$fh&CK`-h8M'0&;gRh8M;H&?g6$h&MM-iXM'X&BgRiXN ?'ILLEGAL TARGET'; PUT SKIP;`g6$i&SN $-j8@CHAP8X&Lg6$%0N $-V 	a-@CAb@&RgRVO@GO TO MULJMP;0%/gRlP`END;H&\g6$kP&nP`}-RH>G0&_gRm`R; 'H&g6$c0&<J@-g@M'H&cg6$lH&zR2o(M'&mgRo(S /* EVALUATE A POSITION, GOING DEEPER IF NECESSARY */;H&qg6$n('S 2p M'0&ygRp T@;H&~g6$opT@2M'h'gR@ U`EVAL:	PROC (G, L, VAL, MOVX, MAXDPTH);hS<!$=38'3Gx'
I<TqPP(("'fHg6$&iI }-D($,>Gx'I5RGX%Uu'(r @0X0h' C25VtuP 'h)gRHWDCL (RXMAX, I, J, X, Y, NMEN) FIXED;x)xgRwPX IF ((L > MAXDPTH) ! (L > 5)) THEN GO TO COUNT;x'4g6$vXAX 	${@
<8!n8dI`pA`'~$ia	h'<S<!(D	h'KTCOUNTx'CI<TxHz('R2h'JC2<Xy0zp'W0@gR{@Y@;H'Xg6${(YY@$M'p'[gRZ`/*hNOTDEEPENOUGH,LOOKATCONSEQUENCES*/;(h'.S<!(8'oU5RXMAXx'gI<T}~h'v(h'nC2<X}p0'{ h'uS<!'hx(5Jx'|I<TP0((Kh(C2<X8x( 0+"g4% (\h'C2<Xr8( h(S<!'
S<!'}(KOeNMENx(CI<TH
((R'Kh(JC2<X	0
p(W H'_g6$|*6Z`$&hM'*qx$I5RqP'
`(fB)(h(]C25Vh)x(eI5Rp@@(tB(z(hh(kC25Vx)I5R8("`) B)+(h)C25Vh )3p(Qg6$up'=Ww$wP!`'hWhP8yA`a"=Anqbx)#I5R}'o0)3H xB)Gh)*C25V8 H)Ox)2I5R h)AH xB(^h)8C25V H(fx)@I5RP(p)OH xB)qh)FC25Vx H)yx)NI5R~0vP)]H xB)ch)TC25VX H)kx)\I5R
0)kHxB)9h)bC25V8(H)Ax)jI5RH(K)yH	xB0Nh)pC25V1H@(XgR&h\RX(L) = 1;H*5gR!] 	CALL LSTMVS(G, L);h*g6$ 8*] o$"(!48 K,8@*gR"(^@RXMAX=RX(L)-1;p*
 <8 	`'"	t'y
8$80*CgR)d`END;h)~g6$x*\g$! 	`7`:88(gR.8b MOVX=1;8*rgR(@c@RETURN;H*?g6$(*Hc@($)(T'H*2g6$&8*Yd`}$40(>Gx*GgR+fIF (R(5,L,1) = 1) THEN MAXDPTH = MAXDPTH + 1;P=
gRDt@
B =`-SIGN(S(L,X,Y));x*Lg6$)P*ff	$/
:H%58;	9p20+ ;`*Xg6$*yfg$/! n8 	`y`9bh*egR/g /* LOOK DEEPER IF WE HAVE A JUMP */;+YX*<g6$'P*Db g$(@( 	`7x, H*kg6$-@+g $0 M'H*xgR0 h@	DO I = 1 TO RXMAX;*|g6$/X+h@z$u+
@Wh@ 	`A!"8[`87B8
GEZz 0+g4%@+	gR2i`DO X = 1 TO 8;+
g6$1P+Zi`z$88+@?L@ 	`A Aa7 	`n"I`8"hj80+g4%1 @+gR;(kDO Y = 1 TO 8;0+Yg4%3H*+g6$*saz$+(o)bPF]gRlX> 
IF (JMP = 0) THEN DO;(`g6$,+:l g$7(+  <8s"0G`ay`pA`'d8s"0G`ax 8++gR7(m@END; END;H+6g6$6p+?m@}$;(+ >GH+9g6$+Cm@}$2+>G%%g6$T`,.n`o$Eh+
Wh8"B`8 `8@"d'h+BgREhpCALL+EVAL(-G,L+1,R(6,L,I),J,(MAXDPTH));P=}g6$?%5p!wP+aabh<(-3	9P?Fg6$xp?L`2yHAVi P-KabhYH-zMxP,-gRG q 
IF (PNTLOG = 1) THEN DO;`+VgR@Xr@PUT FILE(LOG) LIST ('LEVEL',L);@+zG:A# LEVELh,g6$?8,r@$$B@+W@(aHAP,"Bg$ ,gRB@s`IF (R(5,L,I) = 1) THEN PUT FILE(LOG) LIST ('JUMP');,g6$A@, s`	$O8+W )`8 <8z 6V8 	`'$8@,G:A#, JUMP`,g6$,{s`$$dh+W@(aHAP,8`,gRO8uELSE PUT FILE(LOG) LIST ('MOVE');(,q8+Jg6$98,:po$G +
!48g`pA`'d8
8"}`a OJ8`+ug6$>h,sq 	$`+
 0&8 	`'$8 ,zgRdhv %PUT FILE(LOG) LIST (R(1,L,I),R(2,L,I),R(3,L,I),R(4,L,I),'VALUE',R(6,L,I));PgI$8PGogR~xG
S(LBRD,X+A,Y+B) = 0;PIgR	
HLCALL PROMOT(LBRD,X,Y);PIngR	h[CALL PROMOT(LBRD,X,Y);P2zg
:H*a83)52-`31PB
g6$B{$w&/0;GPGg/N.:N/P@^g6$@l`m.&u $$dh+W@(aHAP,w8P/-gRo8}`ELSE PUT LIST ('MOVE');P2,gR& $@
/* LIST ALL MOVES */;P25gRZh'
LSTMVS:	PROC(G,L);P?>g6$?%5qx!wGfHM,M	P<g6$@p<y@*aA8Aj; P<Jg6$I8<Q`2JA`A P=pg6$=~`%5`!w
JUMPS:	DO X = 1 TO 8;P5>g6$4H2 ,^I2j!UE P;xg6$<w*a@(=!j; PKUabh	:`+q|MxP-{gR`z
IF (PNTVAL = 1) THEN DO;P-
g6$Q82n'2-`@K- P0<g6$X0D $HA PJtgR	/(h`
DO Y=8PTOg1BY-1;P>kg6$??	`%5wp!w@w@	PUT FILE(LOG) SKIP;X-ng6$]x-|w@$$H+W@(a 	a-Ab0-sgRHx`END;H-xg6$.x`}$N0+W>G`-Pg6$Z.z	$sx+
 0x8 	`'$8H.g6$.zz$sx.o)b0.g4%1  H.
gRb0{	IF(L=1)THENDO;`.'$8H.g6$.s{z$s.o)b0.g4%a8n.q@,?G:A#,wNVALUE0.!g6$H-tv$$^@+W:@(aH@8"}`a,I));x.?g6$h.]$$kP.-@CH@8"}`a
PUT LIST ('DEPTH',DEPTH);@.dG:A#." DEPTH8/gRq`PUT SKIP;/-.8g6$g/.|@	$o8. )`8 <8z 6V8 	`'$8`-g6$P.H}` $$i.@CHAP,w8h.jg6$lX/@$$q.@CHAP.k"
g$ X.ng6$mp/`$$r. 	a-@CAb0/gRrEND;H/
g6$qX/}$c.>G0/gRs END;H/g6$rP/ }$`p.>G0/gRsx@END;H/g6$sH/(@}$0 +
>GH/gRu`	VAL = 1000; J = 0;X/#g6$t@0`g$(`P8g>Kg/i`.rg6$.{|@$$i.@CHAP,8H0gR}@		DO I = 1 TO RXMAX;/sgRx(
  IF ((VAL > R(6,L,I)) ! ((VAL = R(6,L,I)) & (J < DEPTH))) THEN DO;P/8g6$w/O
 	$@/t# <^8 1`8 <8z 6V8dI`ry`G`pA`8 Wh8hZY`'"	~G"
~#a`bH/Ag6$/]
z$@/To)b0/Ng4%~@/h/SgR{X@MOVX=I;WVAL=R(6,L,I);`J=7DEPTH; END;X/Vg6$zp/c@g$|0/T Wh8g>Vx/\g6$/w@g$~p/T
GEZz 0/kg4%X/bg6$/|@g$H/T @P8g>	~GH/vg6$0@}$yx/T>G0/{gR@
`END;H0g6$0
`}$}@/t>Gp0gRxVAL = 1000-VAL; /* CONVERT TO OUR COUNT */;h0g6$0g$``P8 <^8
hM'X/'g6$/l`g$}@ `7x'} 80gR
h RETURN;00UgRh@;H0"g6$801@$M'h0%gR`/* WE ARE DEEP ENOUGH, COUNT PIECES */;H0*g6$009`$M'000gR;H05g6$`-[$HM'p08gR[8 COUNT:	VAL = 500; /* ALL VALUES POSITIVE */;X-Zg6$0J g$	 ?!`7x H0Cg6$1 $M'x0II5RxH'K@1t[8@0B01H0g6$0& ($hT'81sgR@NMEN = 0;@1gR
(`DOI=10TO8;0]g6$h0q`z$P0j@Wh@	`A6Aa7	`n"I`8"hj800ag4%@0igRDO J = 1 TO 8;0lg6$
G^8`<^881YgR`END; END; 1OX0Zg6$00b@g$
(8`7x(D*p1gR@IF(ABS(S(L,I,J))= 1)THENNMEN=xNMEN+1;p1cgRPIF(NMEN>8)ETHEN=VAL=VAL-1((NMEN-8)*G);`1g6$`1+	$`!"8 A`'$8x1$g6$16g$`
81>gR `RETURN;H1Dg6$P1i `($T'01GgR"END;1r1g6$p1Z@	$0y <8z"	~G`a sV8 	`'$8`1Pg6$1`@g$0y!"8 	`y`IbH1g6$@1d`}$0y>GH1_g6$1%`}$
(0j>GH1Lg6$P2-"}$>G01hgR%X# ;021gR&h%`;2*h0MC25V	h 0Dh30gR"X( DCL (X, Y, A, B, U, V, OK, JMP) FIXED;h1yS<!'Dp2sOKx2I<T !p24h2C2<X x"82 2g6$(2>( w,^'`!`sCah8A`7Z0 8ZTw x2I5R~0)U$P2%"X K`3h2C25V#X H3	 2lH1lg6$X22# 2& M'H-g6$Ph26$@2&hM'H1og6$-V%`2-`M'03|gR'`)@;H2:g6$'02H)@,^)M'`2=gR)*`/* CHECK FOR A FORCED JUMP */;H2Ag6$((2P*`,^*M'02GgR*,;H2Lg6$)P2X,,^+M'@2OgR+- DO X = 1 TO 8;2Sg6$*H47- z,^K@2`@?L@ 	`A Aa7 	`n"I`8"hj802Wg4%@2_gRFp.@DO Y = 1 TO 8;046g4%,03g4%,x 45X-Ug6$2'#,^(A4pEw x2mI5R-0q/02{ZhF(EE8h2rC25V.8/x H2nx2$I5R
)c13	"X K`3h3C25V0 H37x3I5Rah6x37"X K`3>H4g6$4-/`z,^J2jo)bx,]I5RqP(^403#-` K`3h(h3C25V38 3ox3"I5Rp@(l631-` K`2(38h3(C25V5 2%h3C25V1x H3Ex36I5Rd0 8X3E"X K`3Lh3=C25V7` H3Sx3DI5Rfx.:83S"X K`3Zh3KC25V9@ H3ax3RI5Ri@<<3a"X	 K`3vh3YC25V;  H3}x3`I5R 2=x3o"X K`7;h3gC25V= Hx3nI5R6@:?X3}"X
IK`3h3uC25V>`H3#`2fgRCh/`IF (SIGN(S(L,X,Y)) = G) THEN DO;h4S<!2B49SIGNx4	I<TA C457h4C2<XBCH4 4g6$@@3/`	,^J2g <8s"0G`a!P(8!48d)a	 X2igREP1
84!P84u2bg6$,84.@z,^JH2g@C@ 	`A Aa7 	`n"I`8"hj8`4,gRO2 IF (JMP = 1) THEN GO TO JUMPS;0-AgRI3@END;H4Dg6$HP4P3@},^2p2j>G84GgRJ4`END; END;H4Kg6$IH4T4`},^Fp2g>GH4Og6$4\4`},^+2`>G04SgRK@6;H4Xg6$K4f6,^L`M'X4[gRL`7 
/* THERE ARE NO JUMPS */;H4_g6$L4m7 ,^MXM'04egRMX8@;H4ig6$M(5E8@,^XXM'@4lgRXX9`DO X = 1 TO 8; 6?`4>g6$Gp-B2 	,^I2j mP8 	`'$8@5LgRP ;DO Y = 1 TO 8;4}g6$O`5;z,^85
@C@ 	`A Aa7 	`n"I`8"hj805g4%YX`5	gRR0< IF (SIGN(S(L,X,Y)) = G) THEN DO;5
g6$QP5< 	,^x@5
 <8s"0G`a!P(8!48d)a	 H5g6$5'< z,^x@5 o)b05g4%Q  @5gRTx=@DO A = -1,1;h5"g6$T86=@z,^b`5.	@X:@ 	`-~'?='05&g4%Th4wS<!4
w857$AJUMPSx50I<TVWp5?5`h56C2<XVxX85C4qg6$N59`z,^rH5M@?L@	`A6Aa7Z	`n"I`8"hj805Dg4%@5-gR`x>`B = SIGN(G);X6gR]h@
82!Vh8p5mgRhAIF"(OK=1)THENCALLsLSTMOV(L,X,Y,A,B,0);`5vg6$^x7A	,^h5.!H8	`'$807gRhB@END;h5Og6$Z5n>`g,^]h5.!48hA!`7x#6@gRb`C`IF(ABS(S(L,X,Y))=2),THEN6DOA=-1,1;8/*hKING!*/;6X60gRhXF 
82!Vh8p6DgRjXG@IF (OK = 1) THEN CALL LSTMOV(L,X,Y,A,B,0);`6Mg6$ih6[G@	,^l@6*!H8 	`'$86Tg6$6dG@o,^l@6* <8s"0G`ai`8 Y
88
nAbH6<g6$gP6kH`},^cp6*>G06cgRm8JEND;H6gg6$m7DJ},^S@5 >G86jgRx@K END; END;7Bh5}S<!5ZAhkBLSTMOVx6sI<Tn@p 78h6yC2<Xo(ph7 7g6$6AA o,^h5. <8s"0G`ai`8 Y
88
nAb87zgRrHL@RETURN;H7g6$r7L@(,^s@T'07gRs@M`;H7g6$s7'M`,^txM'p7gRtxO/* WE HAVE A JUMP.  LIST ONLY THE JUMPS. */;H7g6$t7/O,^upM'07&gRupP ;H7+g6$u@%P ,^v8M'%g6$7LQ@z,^889@?L@ 	`A Aa7 	`n"I`8"hj8x72I5RV57083Rh@0K`08/H6og6$n7{K },^P 5
>G@88gRyHR`DO Y = 1 TO 8;7Gg6$y7]R`z,^$(7T@C@ 	`A Aa7 	`n"I`8"hj807Kg4%`7SgR{XTIF (SIGN(S(L,X,Y)) = G) THEN DO;7Vg6$zx7fT	,^07T <8s"0G`a!P(8!48d)a	 H7\g6$7rTz,^07ko)b07eg4%zH @7jgR~ U DO A = -1,1;h7mg6$}`8U z,^	87x	@X:@ 	`-~'?='07qg4%}0H7Cg6$7K },^XX5M>G@7wgR@V@B = SIGN(G);h7g6$8$V@g,^H7x!48hA!`7x# X8gRHW`
CALL CKJMP(L,X,Y,A,B,OK);h8	S<!6tL8<cn CKJMPx8I<T`8:oh8C2<Xh(8" 8g6$(8vW`o,^h7x <8s"0G`ai`8 Y
82!`@809.gRHZ END;(8th7:C25Vw8x 73082g4%p8#gRhYIF (OK = 1) THEN CALL LSTMOV(L,X,Y,A,B,1);8{gR	8[@IF (ABS(S(L,X,Y)) = 2) THEN DO A=-1,1; /* KING */;8Bg6$88T[@	,^p7k <8s"0G`a sV8 `'$8h8Jg6$8[[@z,^p8_	@X:@ 	`-~'?='H8Sg6$8f[@,^
h8_M'08Zg4%}0@8^gR
h\`B = -SIGN(G);h8ag6$
(9\`g,^8_	!48hA!`-y`d1bX8egR^
CALL^CKJMP(L,X,Y,A,B,OK);09gRx`@END;9.`8;g6$H9/Y	,^H7x!H8 	`'$8H8,g6$X8KZ },^~ 7x>G8lg6$
82!`@8p9gR_ IF (OK = 1) THEN CALL LSTMOV(L,X,Y,A,B,1);`9	g6$ 9_ 	,^x8_!H8 	`'$89g6$9_ o,^x8_ <8s"0G`ai`8 Y
88
nAbH8qg6$(9'`@},^
H8_>G09gRpa`END;H9#g6$@9ka`},^|h7k>G89&gR0cEND; END;:8ug6$8|Yo,^H7x <8s"0G`ai`8 Y
88
nAb8:!gR8dPRETURN;H97g6$9Cd*(,^0T'09:gR0e@END;H9?g6$9Je@},^-`>G09BgR(f`;H9Fg6$x9Vf`2hM'x9IgRhh/* CHECK FOR THIS MAN OR KING HAVING A JUMP */;H9Ng6$p9^h2`M'09UgR`i ;H9Zg6$0-8i 2+ M'X9]gRWj@ISJMP:	PROC (L,X,Y,A,B,JMP);0:g4%H9*g6$8:"c},^yH7T>GH;UgR@k`DCL (U, V) FIXED;X9ng6$x:k`w*a#!`7Z0=Anqbx9sI5Rfx3L :@ 8,:h9xC25V H:x:I5Ri@3Z!p:@ 8,;Oh:C25V x H;V@:gR#mDO A = -1,1;h:g6$"X:+mz*aC9h	@X:@ 	`-~'?='(:WH9jg6$9;c},^v889>GH9ggR%8n 	B = SIGN(S(L,X,Y));:&g6$$p:9n g*a'9h <8s"0G`a!P(8g>GX:*gR'o@
84!`@8`:8gR)p`IF (JMP = 1) THEN GO TO GOTJMP;`:Ag6$((-jp`	*a/P9h mP8 	`'$8h:GS<!8B:oHJGOTJMP0-igR/PrEND; ;p-7g6$9tj@#*aFH
@<~0<0Ap@Y
6Ew x:YI5R.@"z-:hW(F(?S8h:`C25V,-P H:Zx:MI<T)h.h:v=ih:nC2<X-p/0:{ H:Tg6$*P<r}*a#9h>Gh<g6$=s z*aA8=	@X:@ 	`-~'?='<x*`I5Rp@3)2;+  ,;(h;C25V1 ;x;I5R~023h;+  ,;%(1h;C25V2p ;,x;I5R
35H;,+(,,;3(2ph;$C25V4P`;:x;+I5Rah37(;:+  ,;A(4Ph;2C25V60 ;Hx;9I5Rd03>9;H+  ,9y(60h;@C25V8 :x;GI5R6@3v:h;V+  ,<(8h;NC25V9p :|gRCs IF (ABS(S(L,X,Y)) = 2) THEN DO A=-1,1; /* KING */;X< gR=(u`
84!`@8`;igR?wIF (JMP = 1) THEN GO TO GOTJMP;`;rg6$>8-Gw	*a@(= mP8 	`'$80-FgR@(x END;H;~g6$?x-x }*a0=>GH<gRSxy@GOTJMP:	RETURN;H-g6$<-y@(*aEPT'x<
I5R)h:oKP<]Sx@0,0<[;\g6$;P;s 	*aA8 <8s"0G`a sV8 `'$8*Sg6$*H;jt@g*a=(= <8s"0G`a!P(8g^8`Y
80<\gREPz`END;H<)g6$E<4z`}*a+>G0<,gRFH|;H<0g6$F<?|2GxM'h<3gRGx} /* CHECK FOR THIS JUMP BEING VALID */;H<8g6$G<G} 2HpM'0<>gRHp~@;H<Cg6$H@-$~@2JM'X<FgRTH`
@<~0<0Ap@Y
whH>EgRXDCL7(U,2V) FIXED;=@h<C25VBL;<x<PI5R8M0<kTHHF(8h<bC25VL8Mx H<Qx%4I5Rp@;	O<yJ VP<(h<pC25VN >x<xI5R~0;ah>J VP>(NH;g6$<!s *aD=M'0=g4%8=[gRR  OK = 0;X=
G^8`Y^8h=g6$=+@g%5U8 C8 Y
8
G^8`Z08H=$g6$=6@%5VhM'h=*gRVh`IF(U<1!U>8!V<1!V>8)THENGOTONOJMP;(=/g6$V-)`	%5`Y^8H	`g"gy8'"&y8'"&y8'$8>VP>?h=TC25VZP H>Fh=5S<!:NsX=iU&NOJMPx=bI<T\0^=q@Wh=hC2<X]^X=u h-(gR`IF (S(L,U,V) = 0) THEN GO TO NOJMP;=vg6$^x+R	%5p <87"&`a8d)a	 +QgRp IF (SIGN(S(L,U,V)) = SIGN(S(L,X,Y))) THEN GO TO NOJMP;@4h<~C25VOx >x>
;%cH>J VP>#(Oxh>C25VbP >*x>I5Rah;3e(>*J VP>1(bPh>"C25Vd0 >8x>)I5Rd0;Ag>8J VP=G(d0h>0C25Vf =Nx>7I5R 3hhh>FJ VP?(fh>>C25Vgp p% gRj@@U = U+A; V = V+B; /* TARGET OF THE JUMP */;h>Lg6$iP>Z@g%5k( Y^8 X:8
G^8`Y^8h>Sg6$>a@g%5l Z08 Y
8
G^8`Z08H>Yg6$>l@%5m@M'h>`gRm@	`IF (U<1!U>8!V<1!V>8) THEN GO TO NOJMP;(>dg6$lX-e	`	%5wp Y^8 	`g"gy8'"&y8'"&y8'$8h-dgRwpIF (S(L,U,V) ^= 0) THEN GO TO NOJMP;0?$gRu8`END;@>g6$``%! 	%5j@ <87"&`a!P(8 <8s"0G`a!P(8d)a	 8-gRqx
 OK = 1;X?g6$q@Z
@g%5s	`7x2@?gR(@0VP0h?C25VsXu ?H>|g6$oP?3`}%5J>G0?*gRv0;H?/g6$v?72vxM'Hg6$@p?z 2 M'0?6gR @;>ug6$nh-	%5qx <87"&`a8d1a	 X?ygR=H`CKMOVE:	PROC (L,X,Y,A,B,OK);p+kg6$@6`# mH
@<~0<0Ap@Y
owx?KI5R[5`{0?[=HhF(Ah8h?RC25Vz8{x@H?LxlI5Rp@<q}?iyH0g6$0@ g m `7x2 H@gR@U = X+A; V = Y+B;h@g6$@@@g mp ?L8 X:8
G^8`Y^8h@g6$@$@g m@ C8 Y
8
G^8`Z08h@gR@`IF(U<1!U>8!V<1!V>8)THEN'GO8TONOMOVE;(@g6$X,m`	mMOVE@|X?}g6$h@w mh!`7Z0=Anqbx@5I5Rfx=G0@C` x
@Q`xh@HC25V	 HA6x@-I<Thp@Bh@VC2<X
x
8@ch,lgR@dg6$
X%?	 mx <87"&`a8d1a	 8%>gRx OK = 1;X@sg6$@%: g m$x 	`7x2 Ash?nC25V}x A
x@}I5R
>HA
yHhAC25VP AxAI5Rah>#(AyH	0AsgRH;HA@g6$AP2M'pACgR  /* APPEND A MOVE TO THE CURRENT LIST */;HAHg6$AW  2xM'0AOgRx!@;HASg6$H%D!@2M'XAVgRX@"`LSTMOV:	PROC (L,X,Y,A,B,JMP);p%Cg6$,c"`#&=
@<~0<0Ap@Y
6EwxA`I5Rn@6zAyX@F(<c8@C^gRL0$DCLRXLFIXED;BH?vg6$~pAD`}RmyH>GhAgC25VXHAahAoS<!@.-PBG2RXLxA~I<Tx!XBT'xB&I5Rh@W&8B3W @0
8g"B`y`8y>jg0DgRCX/END;x,bI5RxB.HBtL0+t`hBlC25V-P HhBg6$"@B>% g&'h <8hh`7xA HBagR0`+@R(5,L,RXL) = JMP;xCg6$0C+@g&2@
g6$1XDL,`	&C"~8!!`g$88DKgRC.RETURN;(DxB I5R~0?o4xC' t`C.(#hCC25V4 C5xC&I5R
A6XC5t`C<(4hC-C25V5`CCxC4I5RahA88CCt`CJ(5`hC;C25V7@CQxCBI5Rd0A!:CQ t`CX(7@hCIC25V9  CxCPI5R6@;O;xC t`Bm(9 hCWC25V; Bt0DgR=0@;HCeg6$<`Ct0@2>HM'pChgR>H1`/* MAKE A MOVE, OPTIONALLY PRINTING IT */;HClg6$=XC|1`2?@M'0CsgR?@3;HCxg6$?-.32WxM'hC{gRUh4 MAKMOV:	PROC (MOVX, LMOV, LBRD, PNT);h--S<!A8D
C2<XAXDhD&hD!S<!DaD/cLBRDxD'I<TEFhD6DChD.C2<XEpG0D; hD5S<!D(bxDCbPNTxD<I<TGPWE9HrE6pCg6$D,`g&C"~8 	`y`pA`8 > `FgRQ@5@DCL (X, Y, A, B, U, V, JMP) FIXED;HFHgRKX6`	X = R(1,LMOV,MOVX);xDXg6$KDi6`g M
C.UE)Q@ 0DE/hE C25VT HESxE(I5RahC<Z8ESQ@ 0DEZ FhDBC2<XH8WXE= `E8g6$E
40#	!@=0@p<!pD=P.qbxE>I5R9OYPEMUhF(J48hEDC25VXXZHE?hE.C25VUxHEaxERI5Rd0CJ\EaQ@0DF%hEYC25V[HF-XFWG:A#.kx	MACHINE@MOVESFROMxI5Ru@)^PEuWxDE(hElC25V]XIExEtI5R@pDhF2C25Vf8 HFIxF:I5R6@CXiFIQ@ 0DE{hF@C25Vh HFGgRk=IF (PNT = 1) THEN PUT SKIP LIST ('MACHINE MOVES FROM',X,Y);`FNg6$ixF^=	 lX"t8 	`'$8xEgg6$Fe=$ lX
`9R`+&g6$4xFk> 	 wh mP8 `'$8HFdg6$GL> z 	hDo)b`DgRy@?@S(LBRD,X+A,Y+B) = S(LBRD,X,Y);PHxg6$	
PIR	B#/PJgR	+h`/* PRINT THE BOARD */;(Hx%g6$P`FX;`g k
:H8N	cX2	LHN	PI3g/KeEEPMD
`8 >
@GgRuBX=X+A; Y=Y+B;hG$g6$tPG/Bg uxD ?L8 X:8
G^8`?L8hG(g6$G:Bg w D C8 Y
8
G^8`C8@G.gRw C END; ELSE DO;HG5g6$v`G>C } m8D>GHG9g6$HC  z 	hE	o)b`EgR	hD@S(LBRD,X+A+A,Y+B+B) = S(LBRD,X,Y);0HgR	0I@END;8Fog6$nG?@g sXD""8s"0G`ay`E	`8 ?L8 X:8
G`
`d1``8P8PJ;g
:HG
8K$2	&K+PJ+g6$	%@J0b@2	&@Lg PIIgR	"HW 
S(LBRD,X+A,Y+B) = 0;P-g/GMM
HHgR~E`S(LBRD,X,Y) = 0;xGjg6$}8GwE`g ~xE	
`8 >
,Ng6$IpHGg 	PE	 `7D("yG"'d8a#`8 >
HGvgR	PH X=X+A+A; Y=Y+B+B;pGg6$	H
H g 	@E	 ?L8 X:8
G"'d8g>yGpHg6$HH g 	0E	 C8 Y
8
G"Gd8g>0GHGHg6$yH^I@} whE	>GhHgR	hJ`IF (PNT = 1) THEN PUT LIST ('TO',X,Y);IPGBg6$x0GpD@g ~E	"""8s"0G`ay`E	`8 ?L8 X:8
G"'d8a#`d1``8P8XHcgR	M 
IF (JMP = 0) THEN RETURN;`H*g6$	8H7M 	 	h mP8 `'$8HH0g6$H>M ( 	hT'0H6gR	hN@;HH:g6$	8HIN@ 		M'`H=gR		O`/* WORRY ABOUT MULTIPLE JUMPS */;HHBg6$	0HPO` 	
M'0HHgR	
Q;HHLg6$		XFvQ 	M'hHOgRn`R NXTJMP:	CALL ISJMP(LBRD,X,Y,A,B,JMP);0I.gR	 ]@END;`Hg6$	xIJ`	 	
H"t8 	`'$8p,Sg6$J@H1Lo 	
""8s"0G`ahHTS<!D=	Hr-|NXTJMPxHjI<T	Fug6$IWR o 	p""8s"0G`ai`8 Y
84!P8xHI5R	0hIC25V		P IIUpH]g6$HdJ`$ 	
H@CHAPC"yGf
`9RXIgR	pS@
IF (JMP = 0) THEN RETURN;`JgR	T`S(LBRD,X+A+A,Y+B+B) = S(LBRD,X,Y);PJEgR	)8e
DCL (I, X, Y) FIXED;PI|g6$	XJ\  	 "#/ Pg/GHEEPI#g6$	@IJT`g 	("""8s"0G`ay`E	`8 ?L8 X:8
G"'d8a#`d1``8P8HI8gR	(VS(LBRD,X,Y) = 0;xIEg6$	`JVg 	"H
`8 >
HJgR	#XX@X=X+A+A; Y=Y+B+B;J
`Ig6$	hJS@	 	 mP8 `'$8xJVgR	HY`IF (PNT = 1) THEN PUT SKIP LIST ('     TO',X,Y);`I\g6$	PIoY`	 	h"t8 	`'$8HIcG:A#Eh      TOxIig6$IvY`$ 	h
`9Rp,Xg6$KI/[o 	p
""8s"0G`a  @IugR	p\ GO TO NXTJMP;HHZg6$	8J	]@} Wx>G0JgR	!^`;HJg6$	 `J^^`2	+hM'(K	HIVg6$I9S@( 	T'G`g6$|JW g 	#X `7D("yG"'d8a#`8 >
pIQg6$	 JWX@g 	*x ?L8 X:8
G"'d8g>yG0J]gR	$xa ;HJ#g6$	$HG\a 2	&M'@J&gR{Hb@PNTBRD:	PROC;HG[g6$JFb@#GW	IPP.qbxJ/I5R3 	'@J<{H@F(18hJ3C25V	&H	( HJ08GVgR	(`c`PUT SKIP;XJAg6$	((JKc`$GW	)8 	a-@CAb`I)g6$	 JQewGW	*!`z?L
u;G`Jjg6$	,0Kf $GW	18@CHAPJk8pJg6$IdX@g 	H C8 Y
8
G"Gd8g>0GHFzg6$o0J'`2	$xM'K8gR	*f PUT LIST ('    1  2  3  4  5  6  7  8'); PUT SKIP;hJbG:A#Ij 
gR	.Pg@PUTgSKIP;XJpg6$	.Jzg@$GW	/(	a-@CAb-;g6$\Ksh`zGW	D(K@C@A`AG	a7	`- 	a-@CAb@KrgR	?k DO X = 1 TO 8;KpxJJI5R )9	3XK	)8 PzxhKC25V	2` HxKI5R~0E	58K+	)8 PzxK2hK#C25V	4@ HK9xK*I5R
E!	7K9	)8 PzxKhK1C25V	6  HK8LgR	88l@I = 2*X;`K?g6$	8L7l@gGW	FxL `~1`y`_!bxKBgR	Fxm`PUT LIST (SUBSTR('X*X . O O*',S(1,X,Y)*2+5,2));Pabhs@KVM:PKPabh	:-L6LxP%*aa0PL_gRA@{@
PROMOT:	PROC@(L,X,Y);PGg/EEHKHG:A#JkxX*XG.	O(O*0L6gR	H(oEND;L4hKg6$	0XKyj$GW	?K@CHAa47gg$EKg6$	2KCkTzGW	AL@?L@8	`AAa7	`n"I`8"hj80Kxg4%	0(@LAgR	ApPUTLISTK(Y);`Lg6$	@HLp$GW	BK@CHAa88LgR	B q@PUT SKIP;XL
`8 "
1`'d88h&a`9RHKmg6$	=hLo}GW	?L>G0L.gR	OPv@END;0L|gR	IPw`;HLIg6$	I LXw`2	KM'pLLgR	Ky/* SUBROUTINE TO PROMOTE, IF INDICATED. */;HLPg6$	JL`y2	LM'0LWgR	Lz ;HL\g6$	KP
z 2	LHM'`g6$M:{@#G
	hX@<~0<0T\8xLcI5Rh 	N LrA@XF(:a8hLiC25V	M(	Nh HLdHM9g6$MV|`zG
	fhMuo)bHLFg6$	HpLMv@}GW	&>GXN$gR	W,|`THEN S(L,X,Y) = -2;PMg/GN.N.PMg/M,N.,N.PMg/M:N.,N.PM!g/MN.N.
PM&g/MN.N.PM+g/M",N.,N.PM^g/M'N-N-
PGeg/MBHN-,N-	0Mwg4% M~Mg6$	PLx|`	G
	_ <8s"0G`a8d9a	 PM0g/MGN-N-
PMAg/MLN-N-
PMFg/MQN-:N-PMKg/M_,N-,N-Mg6$	PpMd~	G
	^Mu C8 	`'"B`~1`8 C8hbA`'68d)`bPMPg/M,N-N-MUg6$Mp~gG
	^Mu `-y`pA`8 ?L8a`8P8@McgR	^ END; ELSE DO;HMkg6$	]HMx }G
	OMu>G0Lwg4% HMog6$Nf  zG
	fhM6o)b0O!gR	mx`END; NIxG	I5Rp@B	aN		LH q N(hNC25V	` NxNI5R~0K$	bpN	LH q N(	`hNC25V	ax N%xNI5R
K2	dPN%	LH q (	axhNC25V	cX xM5gR	l`@IF ((Y = 8) & S(L,X,Y) = 1) THEN S(L,X,Y) = 2;8NngR	fhRETURN;HN2g6$	f0N>(G
	g`T'0N5gR	g` END;HN:g6$	g0NE }G
	LH>G0N=gR	hX@;HNAg6$	h(7@2FxM'@NsgS<22END OF FILE ON DSK:CK.CPLpNsN*g6$	e8O"@	G
	mxM6 C8 A`'"B`~1`8 C8hbA`'~"aa	 HM{g6$	_HN6`}G
	_M6>Gh"yG`
`8 >
xNeg6$No@gG
	mxM6"yG`
`8 >
-}I$8