         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.section	".text"
		.Ltext0:
				.align 4
				.proc	020
		RELEASECHAIN.6213:
		.LFB186:
		.LVL572:
				sethi	%hi(68608), %g1
				xor	%g1, -496, %g1
				save	%sp, %g1, %sp
		.LVL573:
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
				sethi	%hi(65536), %i5
				xor	%i5, -272, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				stx	%g1, [%i5+1776]
    2       %CONSTINTEGER BIT = X'80000000'
				mov	%i1, %o1
				call	_imp_initialise, 0
				 mov	%i0, %o0
		.LVL574:
    3       %CONSTINTEGER MAX SCORE = +50000
    4       !!
    5       %EXTERNALROUTINESPEC PROMPT(%STRING (255) S)
    6
    7
    8       %CONSTINTEGER PLYWIDTH = 5
    9       %RECORDFORMAT SQF(%INTEGER P, ATT, DEF, ATTP)
   10       { %RECORDFORMAT ROWF(%RECORD %ARRAY R(1:8)(SQF))
   11       %RECORDFORMAT ROWF(%RECORD (SQF) %ARRAY R(1:8))
   12
   13       %OWN %RECORD(ROWF)%ARRAY BRD(1:8)
   14       %OWN %RECORD(ROWF)%ARRAY BRDOLD(1:8)
   15       %INTEGERARRAY VAL(-6:6)
   16
   17        !! PIECE = BRD(Y)_R(X)_P
   18
   19       %RECORDFORMAT LISTF(%RECORD(LISTF)%NAME L, %INTEGER SCORE %or %integer HOLD, %C
   20         %BYTEINTEGER FR, TO, %INTEGER SPEC, CHK)
   21             !! SCORE - CONTAINS SCORE FOR THE MOVE
   22             !! SPEC  - CONTAINS FLAGS FOR QUEENING, CASTLING
   23             !! CHK   - OPPOSING KING IS IN CHECK
   24
   25       !!%RECORDFORMAT QHF(%RECORD(LISTF)%NAME L,%INTEGER HOLD)
   26       {%RECORDSPEC QHF_L(LISTF)
   27       !!
   28       %RECORDFORMAT PTF(%INTEGERNAME P)
   29       %RECORD(PTF)%ARRAY PT(1:64)
   30       !!
   31       %CONSTINTEGER KING = 6;           ! NB: AND -6
   32       %CONSTINTEGER QUEEN = 5;          !    AND -5
   33       %CONSTINTEGER ROOK = 4;                !     AND -4
   34       %CONSTINTEGER PAWN = 1;           !    AND -1
   35       !!
   36
   37       %RECORD(LISTF)%NAME FREELIST
   38       %RECORD(LISTF{QHF}) MOVE
   39       %RECORD(LISTF)%ARRAY LISTA(0:4000)
   40       %RECORD (SQF) %NAME SQ
   41       !!
   42       %OWNINTEGERARRAY PINX(1:32) = 0(32)
   43       %OWNINTEGERARRAY PINY(1:32) = 0(32)
   44       %INTEGERARRAY PINDX, PINPY(1:32)
   45          %OWNINTEGER PIN PT, PX, PY
   46       !!
   47       %RECORDFORMAT SQIF(%RECORD(SQF)%NAME SQ)
   48       {%RECORDSPEC SQIF_SQ(SQF)
   49       %RECORD(SQIF)%ARRAY SQI(1:64)
   50       %CONSTINTEGERARRAY BIT VAL(1:6)=256,64,32,8,2,1
				mov	256, %g1
				st	%g1, [%i5+1416]
				mov	64, %i3
				st	%i3, [%i5+1420]
				mov	32, %g1
				st	%g1, [%i5+1424]
				mov	8, %i2
				st	%i2, [%i5+1428]
				mov	2, %i4
				st	%i4, [%i5+1432]
				mov	1, %i1
		.LVL575:
				st	%i1, [%i5+1436]
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				mov	256, %o2
				sethi	%hi(.LC0), %o1
				or	%o1, %lo(.LC0), %o1
				call	memcpy, 0
				 add	%i5, 1160, %o0
		.LVL576:
   53          0, 0, 0, 0, 0, 0, 0, 0,
   54          0, 0, 0, 0, 0, 5, 0, 0,
   55          3, 3, 3, 20, 20, 3, 3, 3,
   56          4, 6, 6, 50, 50, 6, 6, 4,
   57          8, 9, 30, 55, 55, 30, 9, 8,
   58          10, 10, 35, 60, 60, 35, 10, 10,
   59          100(8),
   60          500(8)
   61       !!
   62       %CONSTBYTEINTEGERARRAY POSX(1:12) = %C
				stb	%i4, [%i5+1760]
				mov	3, %g1
				stb	%g1, [%i5+1761]
				mov	6, %g1
				stb	%g1, [%i5+1762]
				mov	7, %g1
				stb	%g1, [%i5+1763]
				mov	58, %g1
				stb	%g1, [%i5+1764]
				mov	59, %g1
				stb	%g1, [%i5+1765]
				mov	62, %g1
				stb	%g1, [%i5+1766]
				mov	63, %g1
				stb	%g1, [%i5+1767]
				stb	%i1, [%i5+1768]
				stb	%i2, [%i5+1769]
				mov	57, %g1
				stb	%g1, [%i5+1770]
				stb	%i3, [%i5+1771]
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				mov	-2, %g1
				st	%g1, [%i5+1112]
				mov	-3, %g2
				st	%g2, [%i5+1116]
				st	%g2, [%i5+1120]
				st	%g1, [%i5+1124]
				st	%i4, [%i5+1128]
				mov	3, %g1
				st	%g1, [%i5+1132]
				st	%g1, [%i5+1136]
				st	%i4, [%i5+1140]
				mov	-4, %g1
				st	%g1, [%i5+1144]
				st	%g1, [%i5+1148]
				mov	4, %g1
				st	%g1, [%i5+1152]
				st	%g1, [%i5+1156]
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				mov	-7, %g1
				st	%g1, [%i5+1064]
				st	%g1, [%i5+1068]
				st	%g1, [%i5+1072]
				st	%g1, [%i5+1076]
				mov	7, %g1
				st	%g1, [%i5+1080]
				st	%g1, [%i5+1084]
				st	%g1, [%i5+1088]
				st	%g1, [%i5+1092]
				mov	-10, %g1
				st	%g1, [%i5+1096]
				st	%g1, [%i5+1100]
				mov	10, %g1
				st	%g1, [%i5+1104]
				st	%g1, [%i5+1108]
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				sethi	%hi(-24576), %g1
				or	%g1, 576, %g1
				st	%g1, [%i5+1748]
				st	%g0, [%i5+1752]
				sethi	%hi(23552), %g1
				or	%g1, 448, %g1
				st	%g1, [%i5+1756]
		.LVL577:
				sethi	%hi(63488), %g1
				xor	%g1, -536, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				add	%g1, 16, %g1
				add	%fp, 2039, %g2
		.LVL578:
		.LBB657:
   70       !!
   71       %OWNBYTEINTEGERARRAY KMOVE(-1:1) = 0(3)
   72       %OWNINTEGERARRAY KCAS(-1:1) = 0(3)
   73       !!
   74       %RECORD (LISTF)LM
   75       %RECORD (LISTF{QHF})MMOVE
   76       !!
   77
   78
   79       %INTEGER I, X, Y, PLAY
   80       %OWNLONGREAL TIME, TIME2, TIMTT = 15
   81       %OWNINTEGER NO = 1, SCOREA, XDEPTH, PDEPTH, MON, JUST ONE PLY
   82       %OWNINTEGER CHK, LAST CHK, PIN REMOVE
   83       !!
   84       %EXTERNALLONGREALFNSPEC CPU TIME
   85       !!
   86       %INTEGERFNSPEC N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
   87       %INTEGERFNSPEC SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
   88          %INTEGER WIDTH, WHICH)
   89       %INTEGERFNSPEC SCORE(%INTEGER WHICH, %RECORD (LISTF)%NAME L)
   90       %INTEGERFNSPEC MOVES(%INTEGER WHICH, SCRQ)
   91       %INTEGERFNSPEC ONEPLY(%INTEGER WHICH, WIDTH)
   92       %INTEGERFNSPEC CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
   93       %ROUTINESPEC RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
   94       %ROUTINESPEC BURP(%RECORD (LISTF{QHF}) %NAME X, %INTEGER W)
   95       %ROUTINESPEC TELL(%RECORD (LISTF)%NAME MOVE, %INTEGER WHICH)
   96       %ROUTINESPEC PRINT BOARD
   97       %ROUTINESPEC PRINTMOVE(%RECORD (LISTF)%NAME LIST)
   98       %INTEGERFNSPEC CHECK YOUR MOVE(%RECORD (LISTF)%NAME LIST)
   99       %ROUTINESPEC YOUR MOVE
  100
  101       !****  INITIALISATION ETC
  102
  103       %CYCLE I = 0, 1, 4000-1
  104          LISTA(I)_L == LISTA(I+1)
				stx	%g1, [%g1-16]
		.LDL21:
		.L452:
				add	%g1, 16, %g1
  105       %REPEAT
  106       FREELIST == LISTA(0)
				sethi	%hi(65536), %i5
				xor	%i5, -272, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				sethi	%hi(63488), %g1
				xor	%g1, -536, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				stx	%g1, [%i5+1056]
		.LVL579:
		.LBB658:
		.LBB659:
				sethi	%hi(_imp_InStream), %g1
				mov	1, %g2
				st	%g2, [%g1+%lo(_imp_InStream)]
				sethi	%hi(_imp_infile), %g1
				ldx	[%g1+%lo(_imp_infile)+296], %g2
				sethi	%hi(_imp_InFile), %g1
				stx	%g2, [%g1+%lo(_imp_InFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5656), %o0
				call	check_instream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5656), %o0
		.LVL580:
				add	%i5, 1696, %i4
				add	%i5, 1748, %i5
		.LVL581:
		.L403:
		.LBE659:
		.LBE658:
  107       !!
  108       SELECTINPUT(1)
				cmp	%g1, %g2
				bne,a,pt %xcc, .L452
				 stx	%g1, [%g1-16]
		.L402:
		.LBE657:
  109       %CYCLE I = -6, 1, 6
  110          READ(VAL(I))
				call	_imp_readint, 0
				 mov	%i4, %o0
		.LVL582:
		.LDL22:
				add	%i4, 4, %i4
  111       %REPEAT
  112       READ(PDEPTH)
				cmp	%i4, %i5
				bne,pt	%xcc, .L403
				 sethi	%hi(PDEPTH.6135), %o0
		.L404:
				call	_imp_readint, 0
				 or	%o0, %lo(PDEPTH.6135), %o0
		.LVL583:
  113       READ(MON);  READ(PLAY)
				sethi	%hi(MON.6136), %o0
				call	_imp_readint, 0
				 or	%o0, %lo(MON.6136), %o0
		.LVL584:
  114       I = 1
				sethi	%hi(68608), %o0
				xor	%o0, -60, %o0
				add	%fp, 2047, %g1
				call	_imp_readint, 0
				 add	%g1, %o0, %o0
		.LVL585:
				sethi	%hi(BRD.6073), %i4
				or	%i4, %lo(BRD.6073), %i4
				mov	0, %i5
				mov	%i4, %i3
		.LVL587:
		.L405:
  115       %CYCLE Y = 1,1,8
  116          %CYCLE X = 1,1,8
  117             SQ == BRD(Y)_R(X)
  118             READ(SQ_P)
				call	_imp_readint, 0
				 mov	%i3, %o0
		.LVL588:
				cmp	%i5, 64
				bne,pt	%icc, .L407
				 add	%i4, 128, %i4
		.L406:
		.LVL592:
		.LBB660:
		.LBB661:
				sethi	%hi(_imp_InStream), %g1
				st	%g0, [%g1+%lo(_imp_InStream)]
				sethi	%hi(_imp_infile), %g1
				ldx	[%g1+%lo(_imp_infile)+8], %g2
		.LVL593:
				sethi	%hi(_imp_InFile), %g1
				stx	%g2, [%g1+%lo(_imp_InFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5656), %o0
				call	check_instream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5656), %o0
		.LVL594:
		.LBE661:
		.LBE660:
  119             SQI(I)_SQ == SQ
				sethi	%hi(65536), %i2
				xor	%i2, -272, %i2
		.LVL586:
		.L407:
				add	%i5, 8, %i1
				sra	%i5, 0, %g1
				add	%g1, 68, %g2
				sllx	%g2, 3, %g2
				add	%fp, 2047, %g3
				add	%g3, %g2, %g2
				stx	%i3, [%g2+%i2]
				cmp	%i5, %i1
				bne,pt	%icc, .L405
				 add	%i3, 16, %i3
		.LDL24:
		.LDL25:
		.LVL591:
  120             PT(I)_P == SQ_P; I = I+1
				add	%g1, 4, %g1
				sllx	%g1, 3, %g1
				add	%g3, %g1, %g1
				stx	%i3, [%g1+%i2]
		.LDL23:
		.LVL589:
				add	%i5, 1, %i5
		.LVL590:
  121          %REPEAT
  122       %REPEAT
  123       SELECT INPUT(0)
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
  125       LM_SCORE = 0;  LM_CHK = 0
				sethi	%hi(68608), %i5
		.LVL595:
				xor	%i5, -32, %g1
				add	%fp, 2047, %g2
				st	%g0, [%g2+%g1]
				sethi	%hi(65536), %g2
				xor	%g2, -272, %g1
				add	%fp, 2047, %g3
				add	%g3, %g1, %g1
				st	%g0, [%g1+8]
  126       MMOVE_L == LM
				st	%g0, [%g1+12]
				stx	%g1, [%g1+16]
		.LBB662:
  127       PRINTSTRING("Version 2.5
				xor	%g2, -528, %g2
				add	%g3, %g2, %i4
				mov	256, %o2
				sethi	%hi(.LC5), %o1
				or	%o1, %lo(.LC5), %o1
				call	memcpy, 0
				 mov	%i4, %o0
		.LVL596:
				xor	%i5, -16, %i1
				add	%fp, 2047, %g1
				add	%g1, %i1, %i1
				mov	256, %o2
				mov	%i4, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL597:
				sethi	%hi(67584), %i3
		.LVL598:
				xor	%i3, -272, %i2
				add	%fp, 2047, %g1
				add	%g1, %i2, %i2
				mov	256, %o2
				mov	%i1, %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL599:
		.LBE662:
		.LBB663:
		.LBB664:
				xor	%i5, -320, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL600:
				call	_imp_printstring, 0
				 mov	%i5, %o0
		.LVL601:
		.LBE664:
		.LBE663:
		.LBB665:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				mov	256, %o2
				sethi	%hi(.LC6), %o1
				or	%o1, %lo(.LC6), %o1
				call	memcpy, 0
				 mov	%i4, %o0
		.LVL602:
				xor	%i3, -784, %i2
				add	%fp, 2047, %g1
				add	%g1, %i2, %i2
				mov	256, %o2
				mov	%i4, %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL603:
		.LBE665:
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL604:
				call	PROMPT, 0
				 mov	%i5, %o0
		.LVL605:
  132       READ(PDEPTH); SKIPSYMBOL
				sethi	%hi(PDEPTH.6135), %o0
				call	_imp_readint, 0
				 or	%o0, %lo(PDEPTH.6135), %o0
		.LVL606:
		.LBB666:
		.LBB667:
				call	_imp_skipsymbol, 0
				 xor	%i3, -528, %i3
		.LVL607:
		.LBE667:
		.LBE666:
		.LBB668:
  133       PROMPT("Move?")
				mov	256, %o2
				sethi	%hi(.LC7), %o1
				or	%o1, %lo(.LC7), %o1
				call	memcpy, 0
				 mov	%i4, %o0
		.LVL608:
				add	%fp, 2047, %g1
				add	%g1, %i3, %i3
				mov	256, %o2
				mov	%i4, %o1
				call	memcpy, 0
				 mov	%i3, %o0
		.LVL609:
		.LBE668:
				mov	256, %o2
				mov	%i3, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL610:
				call	PROMPT, 0
				 mov	%i5, %o0
		.LVL611:
  134       PRINTBOARD
				call	PRINTBOARD.6171, 0
				 sethi	%hi(65536), %l3
		.LVL612:
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				call	CPUTIME, 0
				 xor	%l3, -272, %i0
		.LVL613:
				sethi	%hi(TIME2.6130), %g1
				std	%f0, [%g1+%lo(TIME2.6130)]
		.LBB669:
		.LBB670:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				sethi	%hi(68608), %g1
				xor	%g1, -60, %g1
				add	%fp, 2047, %g2
				lduw	[%g2+%g1], %g1
				cmp	%g1, 1
				be,pn	%icc, .L448
				 sethi	%hi(JUSTONEPLY.6137), %i4
		.L410:
		.LBB761:
		.LBB749:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				sethi	%hi(68608), %i5
				xor	%i5, -32, %i5
				add	%g2, %i5, %i4
				mov	%i0, %g5
				mov	%i4, %o2
				mov	0, %o1
				call	NPLY.6146, 0
				 mov	-1, %o0
		.LVL614:
				add	%fp, 2047, %g1
				stx	%o0, [%g1+%i5]
  144             TELL(MOVE_L, -1)
				call	TELL.6169, 0
				 mov	-1, %o1
		.LVL615:
  145             I =CHANGE BOARD(MOVE)
				call	CHANGEBOARD.6161, 0
				 mov	%i4, %o0
		.LVL616:
  146          %FINISHELSESTART
				ba,pt	%xcc, .L411
				 nop
		.L449:
		.LBB751:
		.LBB743:
  147             YOURMOVE
  148             BURP(MMOVE, -1)
				add	%i0, 16, %l7
		.LBB750:
		.LBB742:
		.LBB672:
				sethi	%hi(.LC10), %l2
				or	%l2, %lo(.LC10), %l2
		.LBE672:
		.LBE742:
		.LBE750:
				ba,pt	%xcc, .L409
				 add	%g1, %i2, %i2
		.L448:
				mov	-1, %o1
				call	BURP.6166, 0
				 mov	%l7, %o0
		.LVL676:
		.L411:
  149          %FINISH
  150          TIME = CPUTIME
				call	CPUTIME, 0
				 sethi	%hi(_imp_OutStream), %i1
		.LVL677:
				sethi	%hi(TIME.6129), %g1
				std	%f0, [%g1+%lo(TIME.6129)]
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				mov	%i0, %g5
				ldx	[%i0+16], %o2
				mov	0, %o1
				call	NPLY.6146, 0
				 mov	1, %o0
		.LVL678:
				sethi	%hi(68608), %g1
				xor	%g1, -32, %g1
				add	%fp, 2047, %g2
				stx	%o0, [%g2+%g1]
  152          BURP(MOVE, +1)
				mov	1, %o1
				call	BURP.6166, 0
				 add	%g2, %g1, %o0
		.LVL679:
  153          PRINTBOARD
				call	PRINTBOARD.6171, 0
				 sethi	%hi(_imp_OutFile), %i4
		.LVL680:
		.LBB757:
		.LBB758:
				mov	2, %g1
				st	%g1, [%i1+%lo(_imp_OutStream)]
				sethi	%hi(_imp_outfile), %i3
				ldx	[%i3+%lo(_imp_outfile)+584], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %i5
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL681:
		.LBE758:
		.LBE757:
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
  155          NO = NO+1
				call	PRINTBOARD.6171, 0
				 nop
		.LVL682:
		.LBB759:
		.LBB760:
				st	%g0, [%i1+%lo(_imp_OutStream)]
				ldx	[%i3+%lo(_imp_outfile)+8], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL683:
		.LBE760:
		.LBE759:
				sethi	%hi(NO.6132), %g2
				lduw	[%g2+%lo(NO.6132)], %g1
				add	%g1, 1, %g1
				st	%g1, [%g2+%lo(NO.6132)]
		.L409:
  156       %REPEAT
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
				.register	%g2, #scratch
		.LVL0:
				mov	%o0, %g2
		.LVL1:
		.L4:
		.L2:
  160          {%RECORDSPEC L(LISTF)
  161          %RECORD(LISTF)%NAME L2
  162          L2 == L
  163          %WHILE ADDR(L_L) # 0 %CYCLE
  164             L == L_L;                   ! GO TO BOTTOM OF CHAIN
				ldx	[%g2], %g1
				brnz,a,pt %g1, .L4
				 mov	%g1, %g2
		.L3:
  165          %REPEAT
  166          L_L == FREELIST
				ldx	[%g5+1056], %g1
				stx	%g1, [%g2]
  167          FREELIST == RECORD(ADDR(L2))
  168       %END
  169       !!
				jmp	%o7+8
				 stx	%o0, [%g5+1056]
		.LFE186:
				.align 4
				.proc	04
		CHANGEBOARD.6161:
		.LFB196:
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
		.LVL503:
				save	%sp, -3216, %sp
		.LVL504:
				mov	%g5, %l2
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
  171          %INTEGER I, XWHICH, J, SWIDTH, CI, FLAG
  172          %RECORD(LISTF{QHF})%NAME BPT
  173         %RECORD(LISTF{QHF})%ARRAY B(1:40)
  174         %RECORD(LISTF)%NAME LIST, LISTX
  175
  176          %CONSTINTEGERARRAY XWIDTH(0:10) = 8, 8, 3(9)
				mov	8, %g1
				st	%g1, [%fp-437]
				st	%g1, [%fp-433]
				mov	3, %g1
				st	%g1, [%fp-429]
				st	%g1, [%fp-425]
				st	%g1, [%fp-421]
				st	%g1, [%fp-417]
				st	%g1, [%fp-413]
				st	%g1, [%fp-409]
				st	%g1, [%fp-405]
				st	%g1, [%fp-401]
				st	%g1, [%fp-397]
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				sethi	%hi(XDEPTH.6134), %g1
				st	%i1, [%g1+%lo(XDEPTH.6134)]
  179          DEPTH = DEPTH+1
				add	%i1, 1, %i1
				sra	%i1, 0, %l0
		.LVL505:
  180          SWIDTH = XWIDTH(DEPTH)
				sllx	%l0, 2, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				lduw	[%g1-2484], %l1
		.LVL506:
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
				sethi	%hi(PDEPTH.6135), %g1
				lduw	[%g1+%lo(PDEPTH.6135)], %g1
  182          LAST CHK = CHAIN_CHK
				cmp	%g1, %i1
				move	%icc, 1, %l1
		.LVL507:
		.L360:
				lduw	[%i2+12], %g2
				sethi	%hi(LASTCHK.6139), %g1
				st	%g2, [%g1+%lo(LASTCHK.6139)]
		.LVL508:
		.LBB528:
		.LBB529:
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
				mov	%o0, %i3
		.LVL512:
  184          I = 1
				mov	1, %i1
		.LVL513:
		.LBB530:
		.LBB531:
				sra	%g1, 0, %g1
				stx	%g1, [%fp-969]
		.LBE531:
		.LBE530:
		.LBB533:
  185          B(1)_L == RECORD(0)
  186          FLAG = 0
				mov	0, %l3
  187          %WHILE ADDR(LIST)#0 %CYCLE
  188             BPT == B(I)
				cmp	%o0, 0
				be,pn	%icc, .L361
				 stx	%g0, [%fp+1399]
				brz,pn	%i3, .L363
				 add	%i4, 16, %i4
  189             BPT_L == LIST
				stx	%i3, [%i4]
		.LVL516:
  190             LIST == LIST_L
  191             %IF MON#0 %START
				sethi	%hi(MON.6136), %g1
				lduw	[%g1+%lo(MON.6136)], %g1
				cmp	%g1, 0
				bne,pn	%icc, .L386
				 ldx	[%i3], %i3
		.L364:
  192                SELECT OUTPUT(2)
  193                SPACES(DEPTH*3)
				add	%i1, %i1, %g1
				add	%g1, %i1, %g1
				add	%fp, 1399, %i4
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				mov	1, %o1
				call	_imp_writeint, 0
				 mov	%l0, %o0
		.LVL529:
		.LBB545:
		.LBB546:
				call	_imp_spaces, 0
				 mov	2, %o0
		.LVL530:
		.LBE546:
		.LBE545:
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				sethi	%hi(LASTCHK.6139), %g1
				lduw	[%g1+%lo(LASTCHK.6139)], %g1
				cmp	%g1, 0
				bne,pn	%icc, .L388
				 mov	256, %o2
		.L365:
		.LBB547:
		.LBB548:
				call	_imp_newline, 0
				 add	%i1, 1, %i5
		.LVL532:
		.LBE548:
		.LBE547:
		.LBB549:
		.LBB550:
				sethi	%hi(_imp_OutStream), %g1
				st	%g0, [%g1+%lo(_imp_OutStream)]
				sethi	%hi(_imp_outfile), %g1
				ldx	[%g1+%lo(_imp_outfile)+8], %g2
				sethi	%hi(_imp_OutFile), %g1
				stx	%g2, [%g1+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %o0
				call	check_outstream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL533:
		.LBE550:
		.LBE549:
  196                NEWLINE
				sethi	%hi(.LC27), %g1
				or	%g1, %lo(.LC27), %g1
				stx	%g1, [%fp-985]
		.LBE533:
				call	PRINTMOVE.6173, 0
				 ldx	[%i4], %o0
		.LVL531:
				ldx	[%fp-985], %o1
				call	memcpy, 0
				 add	%fp, 631, %o0
		.LVL535:
				mov	256, %o2
				add	%fp, 631, %o1
				call	memcpy, 0
				 add	%fp, -393, %o0
		.LVL536:
				mov	256, %o2
				add	%fp, -393, %o1
				call	memcpy, 0
				 add	%fp, 887, %o0
		.LVL537:
		.LBE551:
		.LBB552:
		.LBB553:
				mov	256, %o2
				add	%fp, 887, %o1
				call	memcpy, 0
				 add	%fp, -705, %o0
		.LVL538:
				call	_imp_printstring, 0
				 add	%fp, -705, %o0
		.LVL539:
				ba,pt	%xcc, .L365
				 nop
		.LVL540:
		.L387:
		.LBE553:
		.LBE552:
  197                SELECT OUTPUT(0)
  198             %FINISH
  199             I = I+1
				mov	%i5, %i1
		.LVL515:
		.L362:
				mov	%i4, %l4
				add	%i1, 1, %i5
		.LVL517:
  200             ! %EXIT %IF LIST == NULL;     ! ONLY ONE MOVE ALLOWED
  201 !            %EXIT %IF ADDR(LIST) = 0 %AND I = 2;   ! SEE ABOVE
  202             XWHICH = WHICH!!X'FFFFFFFE'
				xor	%i0, -2, %o0
  203             %IF DEPTH < PDEPTH %START
				sethi	%hi(PDEPTH.6135), %g1
		.L393:
				lduw	[%g1+%lo(PDEPTH.6135)], %g1
				cmp	%g1, %l0
				bg,pn	%icc, .L387
				 nop
		.L366:
		.L368:
				ba,pt	%xcc, .L393
				 sethi	%hi(PDEPTH.6135), %g1
		.LVL534:
		.L388:
		.LBB551:
  204
  205                CI = CHANGE BOARD(BPT)
				call	CHANGEBOARD.6161, 0
				 mov	%l4, %o0
		.LVL541:
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				mov	%l2, %g5
				ldx	[%l4], %o2
				mov	%l0, %o1
				call	NPLY.6146, 0
				 sra	%o0, 0, %o0
		.LVL542:
				mov	%o0, %l5
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				lduw	[%i2+12], %g2
				sethi	%hi(LASTCHK.6139), %g1
				st	%g2, [%g1+%lo(LASTCHK.6139)]
  208                RESTORE BOARD(BPT)
				call	RESTOREBOARD.6163, 0
				 mov	%l4, %o0
		.LVL543:
  209                %UNLESS ADDR(LISTX)=0 %START
				brnz,pn	%l5, .L389
				 ldx	[%fp-993], %g2
		.L367:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				ldx	[%l4], %g1
				lduw	[%l5+8], %g2
				st	%g2, [%g1+8]
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				mov	%l2, %g5
				call	RELEASECHAIN.6213, 0
				 mov	%l5, %o0
		.LVL544:
  212                %FINISHELSESTART
				ba,pt	%xcc, .L368
				 add	%l3, 1, %l3
		.L370:
		.L372:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				add	%i0, 1, %g1
				sra	%g1, 0, %g1
				add	%g1, 436, %g1
				sllx	%g1, 2, %g1
				add	%l2, %g1, %g1
				stx	%g1, [%fp-993]
		.LBB534:
				ldx	[%l4], %g1
				lduw	[%g2+4], %g2
				ba,pt	%xcc, .L368
				 st	%g2, [%g1+8]
		.L389:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				cmp	%l1, %i5
				bge,pt	%icc, .L369
				 xor	%i5, 2, %g1
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
				cmp	%g0, %l3
				subx	%g0, -1, %g1
  219             %IF MON # 0 %START
				cmp	%g0, %g1
				addx	%g0, 0, %g2
				andcc	%g2, %g1, %g0
				be,pn	%icc, .L372
				 sethi	%hi(MON.6136), %g1
		.L371:
				lduw	[%g1+%lo(MON.6136)], %g1
				cmp	%g1, 0
				be,pt	%icc, .L369
				 sethi	%hi(_imp_OutStream), %l7
		.LVL518:
		.LBB535:
		.LBB536:
				mov	2, %g1
				st	%g1, [%l7+%lo(_imp_OutStream)]
				sethi	%hi(_imp_OutFile), %l5
				sethi	%hi(_imp_outfile), %l6
				ldx	[%l6+%lo(_imp_outfile)+584], %g1
				stx	%g1, [%l5+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %l4
				call	check_outstream, 0
				 or	%l4, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL519:
		.LBE536:
		.LBE535:
		.LBB537:
  220                SELECT OUTPUT(2)
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				sethi	%hi(.LC28), %g1
				or	%g1, %lo(.LC28), %g1
		.LBE534:
				ba,pt	%xcc, .L362
				 stx	%g1, [%fp-977]
		.LVL514:
		.L369:
				mov	256, %o2
				ldx	[%fp-977], %o1
				call	memcpy, 0
				 add	%fp, 631, %o0
		.LVL520:
				mov	256, %o2
				add	%fp, 631, %o1
				call	memcpy, 0
				 add	%fp, -137, %o0
		.LVL521:
				mov	256, %o2
				add	%fp, -137, %o1
				call	memcpy, 0
				 add	%fp, 1143, %o0
		.LVL522:
		.LBE537:
		.LBB538:
		.LBB539:
				mov	256, %o2
				add	%fp, 1143, %o1
				call	memcpy, 0
				 add	%fp, -705, %o0
		.LVL523:
				call	_imp_printstring, 0
				 add	%fp, -705, %o0
		.LVL524:
		.LBE539:
		.LBE538:
		.LBB540:
		.LBB541:
				st	%g0, [%l7+%lo(_imp_OutStream)]
				ldx	[%l6+%lo(_imp_outfile)+8], %g1
				stx	%g1, [%l5+%lo(_imp_OutFile)]
				call	check_outstream, 0
				 or	%l4, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL525:
				ba,pt	%xcc, .L369
				 nop
		.LVL526:
		.L386:
		.LBE541:
		.LBE540:
		.LBB542:
		.LBB543:
				sethi	%hi(_imp_OutStream), %g1
				mov	2, %g2
				st	%g2, [%g1+%lo(_imp_OutStream)]
				sethi	%hi(_imp_outfile), %g1
				ldx	[%g1+%lo(_imp_outfile)+584], %g2
				sethi	%hi(_imp_OutFile), %g1
				stx	%g2, [%g1+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %o0
				call	check_outstream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL527:
		.LBE543:
		.LBE542:
		.LBB544:
		.LBB532:
				call	_imp_spaces, 0
				 ldx	[%fp-969], %o0
		.LVL528:
		.LBE532:
		.LBE544:
  222 ")
  223                SELECT OUTPUT(0)
  224             %FINISH
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				brz,pn	%i3, .L363
				 mov	%l2, %g5
  229          LIST == RECORD(0)
				call	RELEASECHAIN.6213, 0
				 mov	%i3, %o0
		.LVL545:
		.L363:
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				cmp	%i5, 1
				be,pn	%icc, .L361
				 mov	0, %g1
		.L373:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				cmp	%i5, 2
				be,pn	%icc, .L361
				 lduw	[%fp+1403], %g1
		.L374:
		.LVL546:
		.LBB554:
  232          %CYCLE J = 1, 1, I-1
  233             B(J)_L_L == LIST
				ldx	[%g2], %g3
				stx	%o0, [%g3]
				add	%g2, 16, %g2
		.LVL549:
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				addcc	%i1, -1, %g0
				bneg,pn	%icc, .L390
				 cmp	%i1, 0
		.LVL547:
		.L394:
				sethi	%hi(_imp_current_file), %g1
				ldx	[%g1+%lo(_imp_current_file)], %o1
				brz,pn	%o1, .L376
				 mov	256, %o2
				call	_imp_c2istr, 0
				 add	%fp, 375, %o0
		.LVL554:
				sethi	%hi(_imp_current_line), %g1
		.L395:
				lduw	[%g1+%lo(_imp_current_line)], %i4
				cmp	%i4, 0
				move	%icc, 234, %i4
				sethi	%hi(.LC33), %o1
				or	%o1, %lo(.LC33), %o1
				call	_imp_c2istr, 0
				 add	%fp, 631, %o0
		.LVL555:
				mov	256, %o2
				add	%fp, 375, %o1
				call	memcpy, 0
				 add	%fp, -705, %o0
		.LVL556:
				mov	256, %o2
				add	%fp, 631, %o1
				call	memcpy, 0
				 add	%fp, -961, %o0
		.LVL557:
				mov	0, %o5
				mov	1, %o4
				mov	5, %o3
				add	%fp, -961, %o2
				sra	%i4, 0, %o1
				call	_signal_event, 0
				 add	%fp, -705, %o0
		.LVL558:
		.LBE556:
				sethi	%hi(.LC4), %o1
				or	%o1, %lo(.LC4), %o1
				call	memcpy, 0
				 add	%fp, 631, %o0
		.LVL559:
				mov	256, %o2
				add	%fp, 631, %o1
				call	memcpy, 0
				 add	%fp, 119, %o0
		.LVL560:
		.LBE555:
				mov	256, %o2
				add	%fp, 119, %o1
				call	memcpy, 0
				 add	%fp, 375, %o0
		.LVL561:
		.LBE557:
				ba,pt	%xcc, .L395
				 sethi	%hi(_imp_current_line), %g1
		.LVL562:
		.L391:
  235          %REPEAT
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				mov	%l2, %g5
				mov	%i0, %o2
				call	SORTANDPRUNE.6150, 0
				 mov	1, %o1
		.LVL551:
				mov	%o0, %g1
		.LVL552:
		.L361:
  237                                         ! GET THE 'BEST' RESULT
				be,pn	%icc, .L379
				 mov	0, %o0
				add	%fp, 1399, %g2
				add	%i5, -2, %g1
				srl	%g1, 0, %g1
				sllx	%g1, 4, %g1
				add	%fp, 1415, %g3
				add	%g1, %g3, %g1
		.LVL548:
		.L380:
				cmp	%g2, %g1
				bne,pt	%xcc, .L380
				 ldx	[%g2-16], %o0
		.LVL550:
		.L379:
		.LBE554:
				ba,pt	%xcc, .L394
				 cmp	%i1, 0
		.L376:
		.LBB557:
		.LBB555:
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				sra	%g1, 0, %i0
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L391
				 nop
				return	%i7+8
				 nop
		.LVL553:
		.L390:
		.LBB556:
				call	__stack_chk_fail, 0
				 nop
		.LVL563:
				nop
		.LFE187:
				.align 4
				.proc	020
		BURP.6166:
		.LFB198:
  241
  242
  243       %INTEGERFN ONE PLY(%INTEGER WHICH, WIDTH)
  244          %RECORD(LISTF)%NAME LIST
  245
  246
  247          !! BRDOLD = BRD;                  ! HOLD IT (TO ERASE ATT&DEF
  248          LIST == RECORD(MOVES(WHICH, 0))
				mov	0, %o1
				call	MOVES.6156, 0
				 mov	%i0, %o0
		.LVL509:
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				mov	%l2, %g5
				mov	%i0, %o2
				call	SORTANDPRUNE.6150, 0
				 sra	%l1, 0, %o1
		.LVL510:
				mov	%o0, %g1
		.LVL511:
		.LBE529:
		.LBE528:
  250          %RESULT = ADDR(LIST)
  251       %END
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
		.LVL112:
				save	%sp, -1104, %sp
		.LVL113:
				mov	%g5, %i5
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
				mov	124, %o2
				sethi	%hi(.LC24), %o1
				or	%o1, %lo(.LC24), %o1
				call	memcpy, 0
				 add	%fp, 1403, %o0
		.LVL114:
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
				mov	256, %g1
				st	%g1, [%fp+1379]
				mov	64, %g1
				st	%g1, [%fp+1383]
				mov	32, %g1
				st	%g1, [%fp+1387]
				mov	8, %g1
				st	%g1, [%fp+1391]
				mov	2, %g1
				st	%g1, [%fp+1395]
				mov	1, %g1
				st	%g1, [%fp+1399]
		.LVL115:
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
				sra	%i0, 0, %i0
		.LVL116:
				add	%i0, 424, %i0
		.LVL117:
				sllx	%i0, 2, %i0
		.LVL118:
  261          %IF SIDE1<0 %START
				cmp	%i1, 0
				bl,pn	%icc, .L74
				 add	%i0, 6, %i0
		.L67:
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
				mov	256, %o2
				sethi	%hi(.LC25), %o1
				or	%o1, %lo(.LC25), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL120:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL121:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL122:
		.LBE313:
		.LBB314:
		.LBB315:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1119, %o0
		.LVL123:
				call	_imp_printstring, 0
				 add	%fp, 1119, %o0
		.LVL124:
		.LBE315:
		.LBE314:
  263 ")
  264             %RESULT = 0
				ba,pt	%xcc, .L68
				 mov	0, %i0
		.L75:
		.L69:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
				brnz,pn	%i2, .L75
				 lduw	[%i5+%i0], %i0
		.L72:
		.L68:
  267          NEW=SIDE1>>5
				srl	%i1, 5, %g1
		.LVL125:
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
				cmp	%g1, 0
				be,a,pt	%icc, .L70
				 add	%i1, -1, %g1
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
				add	%g1, -1, %g1
		.LVL126:
				sra	%g1, 0, %g1
				sllx	%g1, 2, %g1
		.LVL127:
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				lduw	[%g1-644], %o0
		.LVL128:
		.L71:
				add	%o0, -1, %g1
				sra	%g1, 0, %g1
				sllx	%g1, 2, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				lduw	[%g1-668], %o2
				sub	%i1, %o2, %o2
				mov	%i5, %g5
				sra	%o2, 0, %o2
				mov	%i2, %o1
				call	EXVAL.6268, 0
				 sra	%o0, 0, %o0
		.LVL129:
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
  271       %END
				sra	%i0, 0, %i0
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L76
				 nop
				return	%i7+8
				 nop
		.LVL119:
		.L74:
		.LBB313:
				call	__stack_chk_fail, 0
				 nop
		.LVL133:
				nop
		.LFE189:
				.section	".rodata"
		.LC16:
				.byte	36
				.asciz	"  !---!---!---!---!---!---!---!---!\n"
				.skip	218
				.section	".text"
				.align 4
				.proc	020
		LINE.6639:
		.LFB201:
  272       !!
				ba,pt	%xcc, .L68
				 movge	%icc, %g1, %i0
		.LVL130:
		.L70:
				sra	%g1, 0, %g1
				sllx	%g1, 2, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				lduw	[%g1-644], %o0
		.LVL131:
				ba,pt	%xcc, .L71
				 add	%o0, 3, %o0
		.LVL132:
		.L76:
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
				sub	%i0, %o0, %g1
				cmp	%o0, 0
  274          %INTEGER I, K, BV
  275          %RECORD(SQF)%NAME SQ
  276          !! THIS ROUTINE REMOVES THE 'ATTACKS' AND 'DEFENSES' OF ALL THE
  277          !! PINNED PIECES.
  278          !! THEY ARE NOT DELETED IF THE PINNED PIECE IS ATTACKING THE
  279          !! PINNING PIECE
  280          !!
  281          %RETURN %IF PIN PT=0
				lduw	[%g1+%lo(PINPT.6105)], %i2
				cmp	%i2, 0
				be,pn	%icc, .L309
				 addcc	%i2, -1, %g0
		.L301:
		.LVL446:
		.LBB484:
  282          %CYCLE I = 1, 1, PIN PT
  283             PX = PINX(I); PY = PINY(I)
				sethi	%hi(PX.6106), %l2
				sethi	%hi(PINX.6101), %l0
				or	%l0, %lo(PINX.6101), %l0
				lduw	[%l0+%i4], %g1
				st	%g1, [%l2+%lo(PX.6106)]
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				bneg,pn	%icc, .L328
				 lduw	[%fp+719], %l3
		.LVL447:
				add	%i5, 1440, %i3
		.L336:
				add	%i2, -1, %i2
		.LVL448:
				srl	%i2, 0, %i2
				add	%i2, 1, %i2
		.LVL449:
				sllx	%i2, 2, %i2
		.LVL450:
				mov	0, %i4
				sethi	%hi(PY.6107), %l1
				sethi	%hi(PINY.6102), %i0
		.LVL451:
				or	%i0, %lo(PINY.6102), %i0
				sethi	%hi(_imp_current_file), %g1
				ldx	[%g1+%lo(_imp_current_file)], %o1
				brz,pn	%o1, .L303
				 mov	256, %o2
				call	_imp_c2istr, 0
				 add	%fp, 1783, %o0
		.LVL468:
				sethi	%hi(_imp_current_line), %g1
		.L337:
				lduw	[%g1+%lo(_imp_current_line)], %i3
				cmp	%i3, 0
				move	%icc, 284, %i3
				sethi	%hi(.LC30), %o1
				or	%o1, %lo(.LC30), %o1
				call	_imp_c2istr, 0
				 add	%fp, 1271, %o0
		.LVL469:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 399, %o0
		.LVL470:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 143, %o0
		.LVL471:
				mov	0, %o5
				mov	1, %o4
				mov	5, %o3
				add	%fp, 143, %o2
				sra	%i3, 0, %o1
				call	_signal_event, 0
				 add	%fp, 399, %o0
		.LVL472:
				ba,pt	%xcc, .L336
				 add	%i5, 1440, %i3
		.LVL473:
		.L303:
		.LBB485:
				sethi	%hi(.LC4), %o1
				or	%o1, %lo(.LC4), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL474:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL475:
		.LBE485:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL476:
		.LBE486:
		.LBE488:
		.LBE492:
				ba,pt	%xcc, .L337
				 sethi	%hi(_imp_current_line), %g1
		.LVL477:
		.L307:
				add	%i4, 4, %i4
		.L348:
		.LBB493:
		.LBB489:
		.LBB487:
				lduw	[%i0+%i4], %g1
				st	%g1, [%l1+%lo(PY.6107)]
				lduw	[%i3+128], %g1
				add	%g1, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 68, %g1
				sllx	%g1, 3, %g1
				ldx	[%i5+%g1], %i1
		.LVL479:
  285             BV = BIT VAL(PINPY(I))
				lduw	[%i3], %g1
				add	%g1, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 352, %g1
				sllx	%g1, 2, %g1
				add	%i5, %g1, %g1
  286             %IF SQ_ATT&BV#0 %START
				lduw	[%g1+8], %g1
				cmp	%g0, %g1
				subx	%g0, -1, %g1
				lduw	[%i1+4], %g2
				andcc	%g2, %g1, %g0
				be,a,pt	%icc, .L348
				 add	%i4, 4, %i4
		.L308:
  287                !! NO PIN
				cmp	%i2, %i4
				be,pn	%xcc, .L309
				 add	%i3, 4, %i3
		.LVL478:
		.L306:
  288             %FINISHELSESTART
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
  290                K = MOVES(WHICH, 3)
				sra	%l3, 0, %l3
		.LVL452:
		.LBE484:
		.LBE483:
		.LBE482:
				mov	%i5, %g5
				mov	3, %o1
				call	MOVES.6156, 0
				 mov	%l3, %o0
		.LVL480:
  291                SCOREA = SCOREA+SQ_P*5
				ba,pt	%xcc, .L306
				 sethi	%hi(SCOREA.6133), %l4
		.LVL453:
		.L286:
				lduw	[%i1], %g2
				sll	%g2, 2, %g1
				add	%g1, %g2, %g1
				lduw	[%l4+%lo(SCOREA.6133)], %g2
				add	%g1, %g2, %g1
		.LBE487:
		.LBE489:
		.LBE493:
				ba,pt	%xcc, .L307
				 st	%g1, [%l4+%lo(SCOREA.6133)]
		.L300:
		.LVL481:
		.L309:
  292             %FINISH
  293          %REPEAT
  294       %END
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
		.LVL491:
				save	%sp, -208, %sp
		.LVL492:
				mov	%g5, %i4
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				mov	25, %g1
				st	%g1, [%fp+2027]
				st	%g0, [%fp+2031]
				mov	-25, %g1
				st	%g1, [%fp+2035]
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				sethi	%hi(JUSTONEPLY.6137), %g1
				lduw	[%g1+%lo(JUSTONEPLY.6137)], %g2
				cmp	%g2, 1
				be,pn	%icc, .L350
				 mov	0, %g1
		.L351:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				sethi	%hi(JUSTONEPLY.6137), %i3
				mov	1, %g1
				st	%g1, [%i3+%lo(JUSTONEPLY.6137)]
  302          WW = WHICH!!X'FFFFFFFE'
				sethi	%hi(MON.6136), %i5
				lduw	[%i5+%lo(MON.6136)], %i2
		.LVL493:
				xor	%i0, -2, %i0
		.LVL494:
  303          LIST2 == RECORD(MOVES(WW, 0))
				st	%g1, [%i5+%lo(MON.6136)]
				mov	0, %o1
				call	MOVES.6156, 0
				 sra	%i0, 0, %o0
		.LVL495:
  304          JUST ONE PLY = 0; MON = XMON
				st	%g0, [%i3+%lo(JUSTONEPLY.6137)]
  305          %IF ADDR(LIST2) = 0 %START
				brnz,pn	%o0, .L352
				 st	%i2, [%i5+%lo(MON.6136)]
  306             %RESULT = -NOLEGMOVE(WW)//2
				add	%i0, 1, %g5
				sra	%g5, 0, %g5
				add	%g5, 436, %g5
				sllx	%g5, 2, %g5
				add	%i4, %g5, %g5
				lduw	[%g5+4], %i0
		.LVL496:
				srl	%i0, 31, %g1
				add	%g1, %i0, %g1
				sra	%g1, 1, %g1
				sub	%g0, %g1, %g1
		.LVL497:
		.L350:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				mov	%i4, %g5
				sra	%i0, 0, %o2
				call	SORTANDPRUNE.6150, 0
				 mov	1, %o1
		.LVL499:
  309             X = LIST2_SCORE
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				brnz,pn	%o0, .L357
				 lduw	[%o0+8], %i5
		.L353:
  312          %RESULT = X+WWW(WW)
				add	%i0, 1, %g1
		.L358:
				sra	%g1, 0, %g1
				sllx	%g1, 2, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				lduw	[%g1-20], %g1
				ba,pt	%xcc, .L350
				 add	%i5, %g1, %g1
		.L357:
				call	RELEASECHAIN.6213, 0
				 mov	%i4, %g5
		.LVL500:
				ba,pt	%xcc, .L358
				 add	%i0, 1, %g1
		.LVL501:
		.L356:
  313       %END
				sra	%g1, 0, %i0
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L356
				 nop
				return	%i7+8
				 nop
		.LVL498:
		.L352:
				call	__stack_chk_fail, 0
				 nop
		.LVL502:
				nop
		.LFE191:
				.section	.rodata.str1.8
				.align 8
		.LC33:
				.asciz	"Illegal cycle J = 1, 1, I - 1"
				.section	".rodata"
		.LC27:
				.byte	7
				.asciz	" FORCED"
				.skip	247
		.LC28:
				.byte	28
				.asciz	"FORCED TO INCREASE PLYWIDTH\n"
				.skip	226
				.section	".text"
				.align 4
				.proc	04
		NPLY.6146:
		.LFB187:
  314       !!
  315       %INTEGER %FN SCORE(%INTEGER WHICH, %RECORD(LISTF)%NAME L)
  316          {%RECORDSPEC L(LISTF)
  317          %INTEGER SCOREB, X, Y, I, P, Q, QQ, PAWNB, WHX, W2
  318          %INTEGER GAIN, SQU, LOSS, NPH, NPH2, BAD, SCOREC
  319          %RECORD(LISTF{QHF}) HOLD
  320          %RECORD(LISTF)%NAME LIST2
  321          %RECORD(SQF)%NAME SQ
  322          !!
  323          !! BRD = BRDOLD;                  ! CLEAR ATT & DEF
  324          PIN PT = 0
				sethi	%hi(PINPT.6105), %g1
		.LVL268:
				st	%g0, [%g1+%lo(PINPT.6105)]
		.LVL269:
				add	%i1, 544, %g1
				add	%i1, 1056, %g3
		.LVL270:
		.L135:
  325          %CYCLE I = 1, 1, 64
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				ldx	[%g1], %g2
				st	%g0, [%g2+4]
  327          %REPEAT
				ldx	[%g1], %g2
		.LDL8:
				add	%g1, 8, %g1
  328          WHX = WHICH&BIT;               ! GET TYPE
				cmp	%g1, %g3
				bne,pt	%xcc, .L135
				 st	%g0, [%g2+8]
		.L136:
		.LVL271:
  329          L_CHK = 0;                     ! CLEAR FLAG
				st	%g0, [%l7+12]
  330          HOLD_L == L;                   ! MAP TO MOVE
				stx	%l7, [%fp+999]
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				call	CHANGEBOARD.6161, 0
				 add	%fp, 999, %o0
		.LVL272:
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				mov	%l3, %i3
  333          P = MOVES(WHICH, 1)
				sethi	%hi(SCOREA.6133), %g1
				st	%g0, [%g1+%lo(SCOREA.6133)]
		.LVL273:
				mov	%i1, %g5
				mov	1, %o1
				lduw	[%fp+711], %i5
		.LVL274:
				call	MOVES.6156, 0
				 sra	%i5, 0, %o0
		.LVL275:
  334          SQU = 0
				mov	%l3, %i0
  335          BAD = 0; NPH = 0; NPH2 = 0
				mov	%l3, %l6
  336          %CYCLE Y = 1, 1, 8
				st	%l3, [%fp+723]
  337             %CYCLE X = 1, 1, 8
				st	%l3, [%fp+715]
				mov	%l3, %l5
  338                SQU = SQU+1
				lduw	[%fp+719], %i2
				mov	9, %g2
				sub	%g2, %l5, %l7
				add	%g1, 1, %i0
		.LVL307:
  339                SQ == SQI(SQU)_SQ
				cmp	%l5, 8
				be,a,pn	%icc, .L225
				 ldx	[%fp+703], %l7
		.LVL285:
		.L139:
				sra	%g1, 0, %g1
				add	%g1, 68, %g1
				sllx	%g1, 3, %g1
				ldx	[%i1+%g1], %g2
		.LVL308:
  340                Q = SQ_P
				add	%l5, 1, %l5
		.LVL286:
				mov	%i0, %g1
				cmp	%i2, 8
				be,pn	%icc, .L227
				 mov	%i0, %g1
		.LVL306:
		.L137:
				lduw	[%g2], %i5
		.LVL309:
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				cmp	%i5, 0
				be,pt	%icc, .L140
				 add	%i2, 1, %i2
  342                   %IF Q < 0 %START
				bl,pn	%icc, .L228
				 mov	%i5, %l2
		.L141:
		.L144:
		.LVL310:
  343                      QQ = -Q; W2 = -1
				sub	%g0, %i5, %l2
		.LVL288:
  344                   %FINISHELSESTART
				mov	-1, %l3
		.LBE437:
		.LBE451:
				mov	%l3, %l0
  345                      QQ = Q; W2 = 1
  346                   %FINISH
				mov	%i5, %l0
		.L143:
		.LVL291:
		.L145:
  347
  348                   !!
  349                   P = 0
  350                   %IF QQ = 1 %START;    ! PAWN
				cmp	%l2, 1
				bne,pt	%icc, .L142
				 lduw	[%fp+731], %g1
		.LBE438:
		.LBE452:
				cmp	%i5, 1
				be,pn	%icc, .L229
				 mov	1, %l0
		.LVL311:
		.L142:
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				ba,pt	%xcc, .L234
				 sll	%g1, 3, %g1
		.LVL289:
		.L229:
				mov	%l7, %g1
		.LVL290:
		.LBB453:
		.LBB439:
				sll	%g1, 3, %g1
		.LVL292:
		.L234:
				add	%g1, %i2, %g1
				add	%g1, -9, %g1
				sra	%g1, 0, %g1
				add	%g1, 288, %g1
				sllx	%g1, 2, %g1
				add	%i1, %g1, %g1
				lduw	[%g1+8], %i4
		.LVL293:
  354                   %FINISH
  355                   !!
				ba,pt	%xcc, .L137
				 st	%l5, [%fp+731]
		.LVL287:
		.L228:
		.LBB452:
		.LBB438:
  356                   %IF Q&BIT = WHX %START
				xnor	%g0, %i5, %l4
				srl	%l4, 31, %l4
				st	%l3, [%fp+727]
				stx	%l7, [%fp+703]
				st	%l3, [%fp+719]
		.LBE427:
		.LBE426:
				ba,pt	%xcc, .L139
				 stx	%l0, [%fp+695]
		.LVL276:
		.L222:
		.LDL9:
				andcc	%l4, %i5, %l2
		.LVL294:
				bne,pt	%icc, .L146
				 mulx	%i5, %i4, %i4
				mov	1, %l2
		.L147:
		.LVL295:
		.L150:
				andcc	%l4, %i5, %i4
				bne,a,pt %icc, .L207
				 lduw	[%fp+727], %i4
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				cmp	%l2, 6
				bne,a,pn %icc, .L238
				 lduw	[%g2+4], %o1
  361                         %IF SQ_ATT # 0 %START
				lduw	[%g2+4], %i4
				cmp	%i4, 0
				be,a,pt	%icc, .L239
				 add	%i4, %i3, %i3
				ldx	[%fp+703], %l7
				ldx	[%fp+695], %l0
  362                            RESTORE BOARD(HOLD)
				call	RESTOREBOARD.6163, 0
				 add	%fp, 999, %o0
		.LVL312:
  363                            %RESULT = MAX SCORE
				sethi	%hi(-50176), %l3
		.LBE439:
		.LBE453:
				ba,pt	%xcc, .L149
				 or	%l3, 176, %l3
		.LVL313:
		.L226:
		.LBB454:
		.LBB440:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				lduw	[%g2+4], %o1
		.L238:
				cmp	%o1, 0
				ble,pn	%icc, .L159
				 mov	%i1, %g5
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				ldsw	[%g2+8], %o2
				sra	%o1, 0, %o1
				call	EXVAL.6268, 0
				 sra	%l2, 0, %o0
		.LVL296:
  369                         %IF GAIN > 0 %START
				cmp	%o0, 0
				ble,pn	%icc, .L159
				 add	%i4, %o0, %o0
		.LVL297:
  370                            GAIN = GAIN+P
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				sethi	%hi(SCOREA.6133), %l1
				mulx	%o0, %l0, %g1
				sra	%g1, 0, %g1
				sdivx	%g1, 10, %g1
				lduw	[%l1+%lo(SCOREA.6133)], %g2
				sub	%g2, %g1, %g1
				st	%g1, [%l1+%lo(SCOREA.6133)]
				cmp	%l6, %o0
		.LVL298:
				ba,pt	%xcc, .L159
				 movl	%icc, %o0, %l6
		.LVL299:
		.L207:
		.L146:
  372                            %IF GAIN > BAD %THEN BAD = GAIN
  373                                         ! PROBLEMS WITH POSITIONAL VALUE
  374                        %FINISH
  375                      %FINISH
  376                      !!
  377                                         ! PIECE EFFECTIVELY LOST
  378                   %FINISHELSESTART
  379                                         !*
  380                                         !* OPP PIECE (SEE WHICH) ON X,Y
  381                                         !*
  382                      %IF SQ_ATT # 0 %START
				lduw	[%g2+4], %o1
				cmp	%o1, 0
				bne,pn	%icc, .L226
				 mov	%i1, %g5
		.L148:
		.L155:
		.L156:
		.L157:
		.L158:
		.LVL300:
		.L159:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				ldsw	[%g2+8], %o2
				sra	%o1, 0, %o1
				call	EXVAL.6268, 0
				 sra	%l2, 0, %o0
		.LVL314:
  384                         %IF GAIN > 0 %START
				cmp	%o0, 0
				ble,pn	%icc, .L154
				 lduw	[%fp+723], %g1
  385                         %IF GAIN >NPH %START
				cmp	%o0, %g1
				bg,a,pt	%icc, .L208
				 st	%g1, [%fp+715]
		.L152:
				lduw	[%fp+715], %g1
				cmp	%g1, %o0
				movl	%icc, %o0, %g1
		.LVL315:
				ba,pt	%xcc, .L154
				 st	%g1, [%fp+715]
		.LVL316:
		.L208:
  386                            NPH2 = NPH; NPH = GAIN
  387                         %FINISHELSESTART
				st	%o0, [%fp+723]
		.LVL317:
		.L151:
		.L153:
		.L154:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				cmp	%l2, 6
				bne,a,pt %icc, .L239
				 add	%i4, %i3, %i3
  392                             L_CHK = Q
				ldx	[%fp+703], %g1
		.LBE440:
		.LBE454:
				ba,pt	%xcc, .L159
				 st	%i5, [%g1+12]
		.LVL318:
		.L225:
				lduw	[%fp+719], %l3
		.L138:
		.LVL319:
		.LBB455:
		.LBB441:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				add	%i4, %i3, %i3
		.LVL301:
		.L239:
				add	%i5, 6, %i5
		.LVL302:
				sra	%i5, 0, %i5
				add	%i5, 424, %i5
		.LVL303:
				sllx	%i5, 2, %i5
		.LVL304:
				lduw	[%i1+%i5], %g1
				add	%i3, %g1, %i3
		.LVL305:
		.L140:
  397                %FINISH
  398             %REPEAT
  399          %REPEAT
  400          LOSS = 0
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				cmp	%l6, 0
				ble,pn	%icc, .L160
				 ldx	[%fp+695], %l0
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
				cmp	%l6, 300
				mov	0, %g1
		.LVL320:
				movg	%icc, 1, %g1
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
				lduw	[%fp+723], %g3
				cmp	%g3, 400
				mov	0, %g2
				movg	%icc, 1, %g2
				andcc	%g2, %g1, %g0
				bne,pn	%icc, .L161
				 cmp	%g3, 400
		.L162:
  404             NPH = NPH//3
				ldsw	[%fp+723], %g1
		.L240:
				sdivx	%g1, 3, %g1
				st	%g1, [%fp+723]
		.LVL322:
  405             LOSS = BAD
				ble,pt	%icc, .L240
				 ldsw	[%fp+723], %g1
		.L161:
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				cmp	%g1, %l6
				ble,pt	%icc, .L167
				 sub	%l6, %g1, %i5
  407               LOSS = LOSS-NPH
				cmp	%l6, 499
				ble,pn	%icc, .L230
				 mov	%i1, %g5
		.LVL321:
		.L163:
				ldsw	[%fp+715], %i5
		.LVL323:
		.LBE441:
		.LBE455:
				ba,pt	%xcc, .L167
				 sdivx	%i5, 3, %i5
		.LVL324:
		.L230:
		.LBB456:
		.LBB442:
  408          %FINISHELSESTART
				call	TRYANOTHERPLY.6300, 0
				 ldsw	[%fp+711], %o0
		.LVL325:
		.LBE442:
		.LBE456:
				ba,pt	%xcc, .L163
				 mov	%o0, %l3
		.L164:
		.LVL326:
		.L160:
		.LBB457:
		.LBB443:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
  410             LOSS = LOSS-NPH//6
				lduw	[%fp+715], %g2
				sub	%g0, %g2, %g1
		.LVL327:
				cmp	%g2, 0
				movne	%icc, %g1, %g2
		.L166:
		.LVL328:
				ldsw	[%fp+723], %g1
				sdivx	%g1, 6, %g1
				sub	%g2, %g1, %i5
		.LVL329:
		.L165:
		.L167:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				sethi	%hi(KCAS.6122), %g1
				lduw	[%g1+%lo(KCAS.6122)], %i4
				add	%i3, %i4, %i4
				lduw	[%g1+%lo(KCAS.6122)+8], %g1
				add	%i4, %g1, %i4
		.LVL330:
				add	%i1, 1064, %g2
				add	%i1, 1760, %g3
				ba,pt	%xcc, .L168
				 add	%i1, 1112, %g5
		.LVL331:
		.L170:
				add	%g2, 4, %g2
		.LVL332:
		.L241:
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				ldub	[%g3], %g1
				add	%g1, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 4, %g1
				sllx	%g1, 3, %g1
				ldx	[%i1+%g1], %g1
				lduw	[%g2+48], %g4
				lduw	[%g1], %g1
				cmp	%g4, %g1
				be,a,pn	%icc, .L241
				 add	%g2, 4, %g2
  415          %REPEAT
				lduw	[%g2], %g1
		.LVL334:
		.LBE443:
		.LBE457:
				ba,pt	%xcc, .L170
				 add	%i4, %g1, %i4
		.LVL335:
		.L169:
		.LBB458:
		.LBB444:
  416                %IF L_CHK # 0 %START
				cmp	%g5, %g2
				be,pn	%xcc, .L169
				 add	%g3, 1, %g3
		.L168:
		.LVL333:
				lduw	[%l7+12], %g1
				cmp	%g0, %g1
				subx	%g0, -1, %g2
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				cmp	%g0, %l3
				addx	%g0, 0, %g1
				orcc	%g2, %g1, %g0
				be,pn	%icc, .L231
				 mov	%i1, %g5
		.L171:
		.LVL336:
		.L172:
  418                %FINISH
				call	TRYANOTHERPLY.6300, 0
				 ldsw	[%fp+711], %o0
		.LVL372:
		.LBE445:
		.LBE470:
				ba,pt	%xcc, .L172
				 mov	%o0, %l3
		.LVL373:
		.L232:
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				call	RESTOREBOARD.6163, 0
				 add	%fp, 999, %o0
		.LVL337:
		.LBB428:
		.LBB429:
				sethi	%hi(_imp_OutStream), %i0
		.LVL338:
				mov	2, %g1
				st	%g1, [%i0+%lo(_imp_OutStream)]
				sethi	%hi(_imp_OutFile), %i2
		.LVL339:
				sethi	%hi(_imp_outfile), %i1
				ldx	[%i1+%lo(_imp_outfile)+584], %g1
				stx	%g1, [%i2+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %i3
				call	check_outstream, 0
				 or	%i3, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL340:
		.LBE429:
		.LBE428:
		.LBB430:
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
  422             PRINTSTRING("SCORE:")
				mov	256, %o2
				sethi	%hi(.LC23), %o1
				or	%o1, %lo(.LC23), %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL341:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL342:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL343:
		.LBE430:
		.LBB431:
		.LBB432:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 735, %o0
		.LVL344:
				call	_imp_printstring, 0
				 add	%fp, 735, %o0
		.LVL345:
		.LBE432:
		.LBE431:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				mov	1, %o1
				sethi	%hi(SCOREA.6133), %g1
				call	_imp_writeint, 0
				 ldsw	[%g1+%lo(SCOREA.6133)], %o0
		.LVL346:
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				mov	1, %o1
				call	_imp_writeint, 0
				 sra	%i4, 0, %o0
		.LVL347:
				mov	1, %o1
				call	_imp_writeint, 0
				 sra	%l6, 0, %o0
		.LVL349:
  425             WRITE(LOSS, 1); NEWLINE
				mov	1, %o1
				call	_imp_writeint, 0
				 sra	%l3, 0, %o0
		.LVL348:
				mov	1, %o1
				call	_imp_writeint, 0
				 ldsw	[%fp+723], %o0
		.LVL350:
				mov	1, %o1
				call	_imp_writeint, 0
				 sra	%i5, 0, %o0
		.LVL352:
		.LBB433:
		.LBB434:
				call	_imp_newline, 0
				 nop
		.LVL353:
		.LBE434:
		.LBE433:
		.LBB435:
		.LBB436:
				st	%g0, [%i0+%lo(_imp_OutStream)]
				ldx	[%i1+%lo(_imp_outfile)+8], %g1
				stx	%g1, [%i2+%lo(_imp_OutFile)]
				call	check_outstream, 0
				 or	%i3, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL354:
		.LDL12:
		.LBE436:
		.LBE435:
  426             SELECT OUTPUT(0)
				mov	1, %o1
				call	_imp_writeint, 0
				 ldsw	[%fp+715], %o0
		.LVL351:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				cmp	%l3, 0
				bne,pn	%icc, .L149
				 sethi	%hi(SCOREA.6133), %g1
		.L173:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				lduw	[%g1+%lo(SCOREA.6133)], %l3
		.LVL355:
				add	%i4, %l3, %i4
		.LVL356:
				lduw	[%fp+711], %g1
				mulx	%g1, %i5, %i5
		.LVL357:
				sub	%i4, %i5, %l3
		.LVL358:
		.L149:
		.LBE444:
		.LBE458:
  430       %END
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				save	%sp, -2112, %sp
				mov	%g5, %i5
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
				add	%fp, 2047, %g1
				stx	%g1, [%fp+751]
				st	%i0, [%fp+719]
				st	%i1, [%fp+747]
				stx	%g5, [%fp+679]
  433          %INTEGER X, Y, Q, QQ, WHICHX, A, B, K, I, TYPE, W2, DIAG
  434          %INTEGER SPEC, PIN FLAG, PIN PIECE, POX, POY, SQU, IMODK
  435          %RECORD(ROWF)%NAME ROW
  436          %RECORD(LISTF)%NAME LIST
  437          %OWNINTEGERARRAY KCASCH( -1:1) = 1, 0, 8
  438          %SWITCH MOVE(1:6)
  439          !!
  440          %INTEGER %FN DOM(%INTEGER X0, Y0)
		.LVL245:
				save	%sp, -1536, %sp
		.LVL246:
				mov	%g5, %l0
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
		.LVL247:
		.LBB418:
  441             %RECORD(SQF)%NAME SQ
  442             %INTEGER I, J, K
  443             %RECORD(LISTF)%NAME LIST2
  444             %RECORD(LISTF)%NAME N
  445             !!
  446             !*
  447             !* SCRQ =  0  STANDARD ENTRY FOR ONE PLY
  448             !*        +1  ENTRY FROM SCORE
  449             !*        +2
  450             !*        +3  PINNED PIECE ENTRY
  451             !*
  452             %UNLESS 1 <= X0 <=8 %AND 1 <=Y0<=8 %THEN %RESULT = 0
  453             SQ == BRD(Y0)_R(X0)
				add	%i1, -1, %g4
				add	%i0, -1, %i5
		.LVL250:
  454            K = SQ_P
				sra	%i5, 0, %g2
				sra	%g4, 0, %g1
		.LVL251:
				sllx	%g1, 3, %g1
		.LVL252:
				add	%g1, %g2, %g1
				sllx	%g1, 4, %g1
				sethi	%hi(BRD.6073), %g2
				or	%g2, %lo(BRD.6073), %g2
				lduw	[%g2+%g1], %l3
		.LVL253:
  455             %IF SCRQ <= 0 %START
				lduw	[%g5+84], %g1
				cmp	%g1, 0
				ble,pn	%icc, .L219
				 cmp	%l3, 0
		.L127:
		.LVL254:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				bne,pn	%icc, .L199
				 mov	0, %g3
		.L128:
  457                 %RESULT = 0
				add	%i0, -1, %g1
				cmp	%g1, 7
				mov	0, %g1
				movgu	%icc, 1, %g1
		.LBE418:
		.LBB419:
  458                %IF QQ=PAWN %START
				lduw	[%g5+80], %g1
				cmp	%g1, 1
				be,a,pn	%icc, .L222
				 lduw	[%g5+76], %g1
		.L129:
		.L130:
		.L131:
		.L132:
  459                   %IF (TYPE=0 %AND K#0) %OR %C
  460                      (TYPE=1 %AND K=0) %THEN %RESULT = 0
  461                     %IF Y0=1 %OR Y0=8 %THEN SPEC=5*Q; ! QUEEN
  462                %FINISH
				mov	0, %g2
				movrlez	%i1, 1, %g2
				or	%g1, %g2, %g1
				xor	%g1, 1, %g1
				cmp	%g1, 1
				bne,a,pt %icc, .L237
				 st	%g0, [%l0+68]
  463                SPEC = 0
				st	%g0, [%l0+68]
		.L237:
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				cmp	%i1, 8
				mov	0, %g2
				movle	%icc, 1, %g2
				andcc	%g1, %g2, %g0
				bne,pn	%icc, .L217
				 mov	0, %g3
		.L125:
		.LVL248:
		.L199:
		.LBE419:
				ldx	[%l0+16], %g1
				ldx	[%g1+1056], %l7
		.LVL263:
  465                %IF ADDR(FREE LIST) = 0 %START
				ldx	[%l7], %g2
				stx	%g2, [%g1+1056]
				ldx	[%l0+16], %g1
				ldx	[%g1+1056], %g1
				brz,pn	%g1, .L223
				 sll	%i0, 4, %i0
		.L133:
				ba,pt	%xcc, .L199
				 mov	%l3, %g3
		.LVL277:
		.L223:
		.LBB446:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				mov	256, %o2
				sethi	%hi(.LC21), %o1
				or	%o1, %lo(.LC21), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL278:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL279:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL280:
		.LBE446:
		.LBB447:
		.LBB448:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 735, %o0
		.LVL281:
				call	_imp_printstring, 0
				 add	%fp, 735, %o0
		.LVL282:
		.LBE448:
		.LBE447:
		.LBB449:
		.LBB450:
				call	exit, 0
				 mov	0, %o0
		.LVL283:
		.L224:
		.LBE450:
		.LBE449:
  467 ")
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				lduw	[%l0+64], %g1
				sll	%g1, 4, %g1
				lduw	[%l0+60], %g2
				add	%g1, %g2, %g1
				stb	%g1, [%l7+4]
		.LVL264:
  471                N_TO = X0<<4+Y0
				add	%i0, %i1, %i1
		.LVL265:
				stb	%i1, [%l7+5]
  472                N_SPEC = SPEC
				lduw	[%l0+68], %g2
				st	%g2, [%l7+8]
		.LBB425:
  473                %IF 6 <= TYPE <= 7 %START
  474                   N_SPEC = TYPE
  475                   N_TO = N_FR
				ba,pt	%xcc, .L134
				 stb	%g1, [%l7+5]
		.LVL284:
		.L227:
		.LDL10:
		.LDL11:
		.LBB451:
		.LBB437:
  476                %FINISH
				lduw	[%l0+76], %g2
		.LVL266:
  477                N_SCORE = SCORE(WHICH, N)
				lduw	[%l0+56], %g1
				st	%g1, [%fp+711]
				ldx	[%l0+16], %i1
		.LVL267:
		.LBB426:
		.LBB427:
				st	%l3, [%l7+8]
  478                !!
				add	%g2, -6, %g3
				cmp	%g3, 1
				bleu,a,pn %icc, .L224
				 st	%g2, [%l7+8]
		.L134:
		.LBE425:
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				lduw	[%l0+76], %g1
				cmp	%g1, 6
				be,pn	%icc, .L232
				 cmp	%g1, 7
		.L174:
		.L178:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ldx	[%l0+8], %g1
				lduw	[%g1+84], %g1
				cmp	%g1, 0
				be,a,pt	%icc, .L242
				 lduw	[%l7+8], %g2
  481                %FINISH
				sethi	%hi(-50176), %g1
				or	%g1, 176, %g1
				st	%g1, [%l7+8]
  482                %IF TYPE = 7 %START;     ! DITTO
				be,a,pn	%icc, .L233
				 ldx	[%l0+8], %g1
		.L175:
		.L179:
				lduw	[%l0+76], %g1
				cmp	%g1, 7
				bne,a,pt %icc, .L243
				 ldx	[%l0+16], %g1
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ldx	[%l0+8], %g1
				lduw	[%g1+52], %g1
				cmp	%g1, 0
				be,a,pt	%icc, .L243
				 ldx	[%l0+16], %g1
				lduw	[%g1+52], %g1
				cmp	%g1, 0
				be,a,pt	%icc, .L242
				 lduw	[%l7+8], %g2
  484                %FINISH
				ba,pt	%xcc, .L235
				 sethi	%hi(-50176), %g1
		.L233:
				sethi	%hi(-50176), %g1
		.L235:
				or	%g1, 176, %g1
				st	%g1, [%l7+8]
		.L176:
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				lduw	[%l7+8], %g2
		.L242:
				sethi	%hi(-50176), %g1
				or	%g1, 176, %g1
				cmp	%g2, %g1
				be,pn	%icc, .L176
				 sethi	%hi(_imp_OutStream), %i2
		.L180:
		.LVL359:
		.LBB459:
		.LBB460:
				mov	2, %g1
				st	%g1, [%i2+%lo(_imp_OutStream)]
				sethi	%hi(_imp_OutFile), %i4
				sethi	%hi(_imp_outfile), %i3
				ldx	[%i3+%lo(_imp_outfile)+584], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %i5
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL360:
		.LBE460:
		.LBE459:
		.LBB461:
		.LBB462:
				call	_imp_spaces, 0
				 mov	20, %o0
		.LVL361:
		.LBE462:
		.LBE461:
  488                   N_L == FREE LIST;     ! RE-LINK IT
				ldx	[%l0+16], %g1
		.L243:
				ldx	[%g1+1056], %g1
				stx	%g1, [%l7]
  489                   FREE LIST == RECORD(ADDR(N))
				ldx	[%l0+16], %g1
				stx	%l7, [%g1+1056]
		.LDL14:
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				ba,pt	%xcc, .L199
				 mov	1, %g3
		.LVL374:
		.L220:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				mov	5, %o1
				sethi	%hi(XDEPTH.6134), %g1
				call	_imp_writeint, 0
				 ldsw	[%g1+%lo(XDEPTH.6134)], %o0
		.LVL362:
		.LBB463:
  499                   PRINTSTRING("---")
				mov	256, %o2
				sethi	%hi(.LC22), %o1
				or	%o1, %lo(.LC22), %o1
				call	memcpy, 0
				 add	%fp, 1271, %o0
		.LVL363:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 1015, %o0
		.LVL364:
				mov	256, %o2
				add	%fp, 1015, %o1
				call	memcpy, 0
				 add	%fp, 1271, %o0
		.LVL365:
		.LBE463:
		.LBB464:
		.LBB465:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 735, %o0
		.LVL366:
				call	_imp_printstring, 0
				 add	%fp, 735, %o0
		.LVL367:
		.LBE465:
		.LBE464:
  500                   PRINTMOVE(N)
				call	PRINTMOVE.6173, 0
				 mov	%l7, %o0
		.LVL368:
		.LBB466:
		.LBB467:
				call	_imp_newline, 0
				 nop
		.LVL369:
		.LBE467:
		.LBE466:
		.LBB468:
		.LBB469:
				st	%g0, [%i2+%lo(_imp_OutStream)]
				ldx	[%i3+%lo(_imp_outfile)+8], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL370:
		.LDL13:
		.LBE469:
		.LBE468:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				ldx	[%l0], %g1
				stx	%g1, [%l7]
  506                %IF K=0 %THEN J=1 %ELSE J=0
				stx	%l7, [%l0]
				ba,pt	%xcc, .L199
				 mov	1, %g3
		.LVL371:
		.L231:
		.LBB470:
		.LBB445:
  507             %FINISHELSESTART
  508                J = 2
  509                %IF K # 0 %START
				be,pt	%icc, .L210
				 mov	2, %g3
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				lduw	[%g5+80], %g5
				cmp	%g5, 1
				be,pn	%icc, .L220
				 sra	%l3, 31, %g2
		.L182:
		.LVL255:
		.LBB420:
		.LBB421:
				xor	%g2, %l3, %l3
		.LVL256:
				sub	%l3, %g2, %l3
		.LVL257:
		.LBE421:
		.LBE420:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				xor	%g3, 1, %g3
		.L185:
		.L187:
		.L188:
		.L189:
		.LVL260:
		.L190:
				lduw	[%l0+76], %g3
				cmp	%g3, 0
				be,pn	%icc, .L199
				 xor	%g2, %l3, %l3
		.LVL375:
		.LBB471:
		.LBB422:
				sub	%l3, %g2, %l3
		.LVL376:
		.LBE422:
		.LBE471:
				xor	%l3, 4, %l3
				cmp	%g0, %l3
				addx	%g0, 0, %g2
				cmp	%g0, %g3
				addx	%g0, 0, %g3
				or	%g2, %g3, %g2
				xor	%g2, 1, %g2
				mov	1, %g3
				cmp	%i4, 0
  512                   IMODK = IMOD(K)
				ba,pt	%xcc, .L184
				 st	%l3, [%l0+52]
		.L221:
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				cmp	%g5, 5
				be,pn	%icc, .L221
				 st	%l3, [%l0+52]
		.L186:
		.L184:
		.LVL258:
		.LBB423:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				lduw	[%l0+48], %g3
				xor	%g3, 1, %i4
				cmp	%g0, %i4
				subx	%g0, -1, %i4
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
				xor	%l3, 3, %g2
				cmp	%g0, %g2
				subx	%g0, -1, %g2
				andcc	%g2, %i4, %i4
  517                         %FINISHELSESTART
				ba,pt	%xcc, .L190
				 move	%icc, %g2, %g3
		.LVL377:
		.L191:
  518                            %IF IMODK=5 %START
				xor	%l3, 5, %l3
				cmp	%g0, %l3
				addx	%g0, 0, %i0
		.LVL259:
		.LBB424:
  519                               %IF 3<=QQ<=4 %THEN J=1
  520                            %FINISH
  521                         %FINISH
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
				add	%g5, -3, %g2
				cmp	%g2, 1
				mov	0, %g3
				movgu	%icc, 1, %g3
		.LBE423:
  523                      %IF SCRQ # 3 %START
				cmp	%g1, 3
				be,a,pn	%icc, .L191
				 sra	%i5, 0, %i5
  524                        %IF PINFLAG = 0 %THEN %C
				or	%g3, %i0, %g3
		.LBE424:
				lduw	[%l0+44], %g1
				cmp	%g1, 0
				bne,pt	%icc, .L236
				 sethi	%hi(SCOREA.6133), %g2
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
				sra	%i5, 0, %i5
				sra	%g4, 0, %g2
				sllx	%g2, 3, %g2
				add	%g2, %i5, %g2
				sllx	%g2, 4, %g2
				sethi	%hi(BRD.6073), %g1
				or	%g1, %lo(BRD.6073), %g1
				add	%g1, %g2, %g2
				ldx	[%l0+16], %g4
		.LVL261:
				add	%g5, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 352, %g1
				sllx	%g1, 2, %g1
				add	%g4, %g1, %g1
				lduw	[%g1+8], %g1
				lduw	[%g2+8], %g4
				add	%g1, %g4, %g1
				ba,pt	%xcc, .L198
				 st	%g1, [%g2+8]
		.LVL262:
		.L219:
  526                     %FINISHELSESTART
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				sra	%g4, 0, %g2
				sllx	%g2, 3, %g2
				add	%g2, %i5, %g2
				sllx	%g2, 4, %g2
				sethi	%hi(BRD.6073), %g1
				or	%g1, %lo(BRD.6073), %g1
				add	%g1, %g2, %g2
				ldx	[%l0+16], %g4
		.LVL378:
				add	%g5, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 352, %g1
				sllx	%g1, 2, %g1
				add	%g4, %g1, %g4
				lduw	[%g2+8], %g1
				lduw	[%g4+8], %g4
				sub	%g1, %g4, %g1
				st	%g1, [%g2+8]
		.LVL379:
		.L210:
		.L181:
		.L192:
		.L193:
		.L194:
		.L195:
		.L196:
		.L197:
		.L198:
  528                     %FINISH
  529                   %FINISHELSESTART
  530                      %IF SCRQ = 3 %START
  531                                         ! PIECE QQ IS ATTACKING K
  532                         %IF PIN REMOVE >= IMODK %THEN %C
  533                           SQ_ATT = SQ_ATT-BIT VAL(QQ)
  534                      %FINISHELSESTART
  535                         %IF PINFLAG=0 %START
  536                            SQ_ATT = SQ_ATT+BIT VAL(QQ)
  537                            PINFLAG=1; J=3
  538                            PINPIECE=IMODK; POX=X0; POY=Y0
  539                         %FINISHELSESTART
  540                            %IF IMODK>3 %AND IMODK>PIN PIECE %START
  541                               %IF PIN PT#0 %START
  542
  543                                  %CYCLE I = 1,1,PIN PT
  544                                     %IF PINX(I)=POX %AND PINY(I)=POY %C
  545                                        %THEN ->NO PIN
  546                                  %REPEAT
  547                               %FINISH
  548                               PIN PT = PIN PT+1
  549                               PINX(PINPT) = POX
  550                               PINY(PINPT) = POY
  551                               PINDX(PINPT) = SQU
  552                               PINPY(PINPT) = PIN PIECE
  553 NO PIN:
  554                            %FINISH
  555                         %FINISH
  556                      %FINISH
  557                   %FINISH
  558                %FINISH
  559                SCOREA = SCOREA+W2
				sethi	%hi(SCOREA.6133), %g2
		.L236:
				lduw	[%g2+%lo(SCOREA.6133)], %g1
				lduw	[%l0+24], %g4
				add	%g1, %g4, %g1
				ba,pt	%xcc, .L199
				 st	%g1, [%g2+%lo(SCOREA.6133)]
		.LVL380:
		.L218:
  560             %FINISH
  561             %RESULT = J
  562          %END
				sra	%g3, 0, %i0
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L218
				 nop
				return	%i7+8
				 nop
		.LVL249:
		.L217:
		.L126:
				call	__stack_chk_fail, 0
				 nop
		.LVL381:
				nop
		.LFE194:
				.section	.rodata.str1.8
				.align 8
		.LC30:
				.asciz	"Illegal cycle I = 1, 1, PINPT"
				.align 8
		.LC31:
				.asciz	"->MOVE(%d) out of bounds at %s line %d"
				.align 8
		.LC32:
				.asciz	"test-new/chess9.imp"
				.section	".text"
				.align 4
				.proc	04
		MOVES.6156:
		.LFB193:
?LIST2 unused
  563          !!
  564          DIAG = 0
				st	%g0, [%fp+711]
		.LVL382:
  565          LIST == RECORD(0)
  566          WHICHX = WHICH&BIT
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				cmp	%i1, 3
				be,pn	%icc, .L323
				 stx	%g0, [%fp+663]
		.L245:
  569             X = PX; Y = PY
				sethi	%hi(PX.6106), %g1
				lduw	[%g1+%lo(PX.6106)], %g2
				st	%g2, [%fp+727]
  570             SQU = (Y-1)*8+X
				sethi	%hi(PY.6107), %g1
				lduw	[%g1+%lo(PY.6107)], %g1
				st	%g1, [%fp+723]
				add	%g1, -1, %g1
				sll	%g1, 3, %g1
				add	%g1, %g2, %g1
				st	%g1, [%fp+691]
		.L246:
  571             -> PIN ENTRY
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				st	%g0, [%fp+691]
  576          %CYCLE Y = 1,1, 8
  577
  578             %CYCLE X = 1, 1, 8
  579                TYPE = -1
				mov	0, %g1
		.L247:
				mov	-1, %g1
				st	%g1, [%fp+739]
				lduw	[%fp+723], %g1
				cmp	%g1, 8
				bne,pn	%icc, .L247
				 cmp	%g2, 0
		.L250:
  580                SQU = SQU+1
				add	%g1, 1, %g1
				st	%g1, [%fp+723]
				lduw	[%fp+691], %g1
				add	%g1, 1, %g1
				ba,pt	%xcc, .L246
				 st	%g1, [%fp+691]
		.L323:
  581 PIN ENTRY:
				mov	0, %g1
				cmp	%g1, 8
				bne,pn	%icc, .L344
				 add	%g1, 1, %g1
		.L248:
		.L249:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				add	%g1, 1, %g1
		.L344:
				st	%g1, [%fp+727]
				lduw	[%fp+691], %g1
				add	%g1, -1, %g1
				sra	%g1, 0, %g1
				add	%g1, 4, %g1
				sllx	%g1, 3, %g1
				ldx	[%i5+%g1], %g1
				lduw	[%g1], %g1
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				cmp	%g1, 0
				be,pt	%icc, .L298
				 st	%g1, [%fp+735]
  584                  SCRQ > 0) %START
				srl	%i0, 31, %g2
				andcc	%g2, %g1, %g0
				bne,pt	%icc, .L340
				 cmp	%g1, 0
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				lduw	[%fp+747], %g2
				cmp	%g2, 0
				ble,pn	%icc, .L333
				 cmp	%g1, 0
		.L255:
		.L340:
				bl,a,pn	%icc, .L324
				 sub	%g0, %g1, %g1
		.L256:
  586                     QQ = Q %AND W2 = +1
				st	%g1, [%fp+743]
  587                   -> MOVE(QQ)
				lduw	[%fp+743], %i4
		.LVL384:
		.LDL15:
				mov	-1, %g1
  588
				ba,pt	%xcc, .L257
				 st	%g1, [%fp+687]
		.LVL388:
		.L260:
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				st	%g1, [%fp+743]
				st	%g0, [%fp+739]
  591                   PIN FLAG = 0
				mov	1, %g1
				st	%g1, [%fp+687]
		.L257:
		.LVL383:
				st	%g0, [%fp+707]
  592                   K = DOM(X, Y-W2)
				lduw	[%fp+723], %o1
				lduw	[%fp+687], %g1
				sub	%o1, %g1, %o1
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 ldsw	[%fp+727], %o0
		.LVL389:
  593                   PIN FLAG = 0
				st	%g0, [%fp+707]
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				lduw	[%fp+723], %g1
				xor	%g1, 2, %g2
				cmp	%g0, %g2
				addx	%g0, 0, %g2
  595                   TYPE = 1
				xor	%g1, 7, %g2
				cmp	%g0, %g2
				addx	%g0, 0, %g3
				andcc	%g3, %g2, %g0
				bne,pn	%icc, .L261
				 cmp	%o0, 0
		.L262:
				mov	1, %g1
		.L334:
				st	%g1, [%fp+739]
				ba,pt	%xcc, .L334
				 mov	1, %g1
		.L263:
		.LVL396:
  596                   PIN FLAG = 0
				st	%g0, [%fp+707]
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				bne,pn	%icc, .L325
				 lduw	[%fp+687], %o1
		.LVL390:
		.L261:
				lduw	[%fp+723], %o1
				lduw	[%fp+687], %g1
				sub	%o1, %g1, %o1
				lduw	[%fp+727], %o0
				add	%o0, -1, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL391:
  598                   ->OUT
				st	%g0, [%fp+707]
				ba,pt	%xcc, .L333
				 lduw	[%fp+747], %g2
		.LVL393:
		.L325:
				sub	%g1, %o1, %g1
				sub	%g1, %o1, %o1
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
		.LVL394:
				call	DOM.6414, 0
				 ldsw	[%fp+727], %o0
		.LVL395:
  599                   !!
				lduw	[%fp+723], %o1
				lduw	[%fp+687], %g1
				sub	%o1, %g1, %o1
				lduw	[%fp+727], %o0
				add	%o0, 1, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL392:
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
  602                      %CYCLE B = -1, 2, 1
				ba,pt	%xcc, .L265
				 mov	-6, %i3
		.LVL397:
		.L326:
		.LDL16:
		.LDL17:
  603                            PIN FLAG = 0
				mov	-3, %i4
		.LVL400:
				st	%g0, [%fp+707]
  604                            K = DOM(X+A, Y+B)
				be,pn	%icc, .L333
				 lduw	[%fp+747], %g2
		.LVL398:
		.L265:
				lduw	[%fp+723], %o1
				add	%i4, %o1, %o1
				lduw	[%fp+727], %o0
				add	%i3, %o0, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL402:
				ba,pt	%xcc, .L326
				 cmp	%i3, 2
		.LVL404:
		.L267:
		.L268:
  605                             PIN FLAG = 0
				add	%i3, 4, %i3
		.LVL399:
				st	%g0, [%fp+707]
				cmp	%i4, 1
				bne,a,pt %icc, .L341
				 add	%i4, 2, %i4
  606                            K = DOM(X+B, Y+A)
				add	%i4, 2, %i4
		.LVL401:
		.L341:
				lduw	[%fp+723], %o1
				add	%i3, %o1, %o1
				lduw	[%fp+727], %o0
				add	%i4, %o0, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL403:
		.LDL18:
  607                      %REPEAT
  608                   %REPEAT
  609                   -> OUT
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				mov	1, %g1
				st	%g1, [%fp+711]
		.LVL405:
  614                   I = 0;  PIN FLAG = 0
				mov	0, %i3
		.LVL406:
		.L269:
  615                   %CYCLE
				st	%g0, [%fp+707]
  616                      I = I-1
				add	%i3, -1, %i3
		.LVL407:
  617                      K = DOM(X+I, Y+I)
				lduw	[%fp+723], %o1
				add	%i3, %o1, %o1
				lduw	[%fp+727], %o0
				add	%i3, %o0, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL408:
  618                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L269
				 mov	%o0, %i4
		.L270:
		.LVL409:
  619                   I = 0;  PIN FLAG = 0
  620                   %CYCLE
				st	%g0, [%fp+707]
		.LVL410:
		.L271:
  621                      I = I-1
				add	%i4, -1, %i4
		.LVL411:
  622                      K = DOM(X-I, Y+I)
				lduw	[%fp+723], %o1
				add	%i4, %o1, %o1
				lduw	[%fp+727], %o0
		.LVL412:
				sub	%o0, %i4, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL413:
  623                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L271
				 mov	%o0, %i3
		.L272:
		.LVL414:
  624                   I = 0;  PIN FLAG = 0
  625                   %CYCLE
				st	%g0, [%fp+707]
		.LVL415:
		.L273:
  626                      I = I-1
				add	%i3, -1, %i3
		.LVL416:
  627                      K = DOM(X+I, Y-I)
				lduw	[%fp+723], %o1
				sub	%o1, %i3, %o1
				lduw	[%fp+727], %o0
		.LVL417:
				add	%i3, %o0, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL418:
  628                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L273
				 mov	%o0, %i4
		.L274:
		.LVL419:
  629                   I = 0;  PIN FLAG = 0
  630                   %CYCLE
				st	%g0, [%fp+707]
		.LVL420:
		.L275:
  631                      I = I-1
				add	%i4, -1, %i4
		.LVL421:
		.L342:
  632                      K = DOM(X-I, Y-I)
				lduw	[%fp+723], %o1
				sub	%o1, %i4, %o1
				lduw	[%fp+727], %o0
		.LVL422:
				sub	%o0, %i4, %o0
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL423:
  633                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,a,pt %icc, .L342
				 add	%i4, -1, %i4
		.L276:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				lduw	[%fp+743], %g1
				cmp	%g1, 5
				bne,pt	%icc, .L333
				 lduw	[%fp+747], %g2
		.L277:
		.LVL424:
		.L278:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				st	%g0, [%fp+711]
		.LVL425:
  638                   K = 1;  I = 0;  PIN FLAG = 0
  639                   %CYCLE
				mov	0, %i3
		.LVL426:
		.L279:
  640                      I = I-1
				st	%g0, [%fp+707]
				add	%i3, -1, %i3
		.LVL427:
  641                      K = DOM(X, Y+I)
				lduw	[%fp+723], %o1
				add	%i3, %o1, %o1
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 ldsw	[%fp+727], %o0
		.LVL428:
  642                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L279
				 mov	%o0, %i4
		.L280:
		.LVL429:
  643                   I = 0;  PIN FLAG = 0
  644                   %CYCLE
				st	%g0, [%fp+707]
		.LVL430:
		.L281:
  645                      I = I+1
				add	%i4, 1, %i4
		.LVL431:
  646                      K = DOM(X+I, Y)
				lduw	[%fp+727], %o0
		.LVL432:
				add	%i4, %o0, %o0
				add	%fp, 663, %g5
				ldsw	[%fp+723], %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL433:
  647                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L281
				 mov	%o0, %i3
		.L282:
		.LVL434:
  648                   I = 0;  PIN FLAG = 0
  649                   %CYCLE
				st	%g0, [%fp+707]
		.LVL435:
		.L283:
  650                      I = I+1
				add	%i3, 1, %i3
		.LVL436:
  651                      K = DOM(X, Y+I)
				lduw	[%fp+723], %o1
				add	%i3, %o1, %o1
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
		.LVL437:
				call	DOM.6414, 0
				 ldsw	[%fp+727], %o0
		.LVL438:
  652                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,pt	%icc, .L283
				 mov	%o0, %i4
		.L284:
		.LVL439:
  653                   I = 0;  PIN FLAG = 0
  654                   %CYCLE
				st	%g0, [%fp+707]
		.LVL440:
		.L285:
  655                      I = I-1
				add	%i4, -1, %i4
		.LVL441:
		.L343:
  656                      K = DOM(X+I, Y)
				lduw	[%fp+727], %o0
		.LVL442:
				add	%i4, %o0, %o0
				add	%fp, 663, %g5
				ldsw	[%fp+723], %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL443:
  657                   %REPEAT %UNTIL K = 0
				cmp	%o0, 0
				bne,a,pt %icc, .L343
				 add	%i4, -1, %i4
		.L254:
		.L294:
		.L295:
		.L296:
		.L297:
		.LVL444:
		.L298:
  658                   -> OUT
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				lduw	[%fp+723], %g1
				add	%g1, -1, %g1
				sra	%g1, 0, %g1
				sllx	%g1, 7, %g1
				sethi	%hi(BRD.6073), %g2
				or	%g2, %lo(BRD.6073), %g2
				add	%g1, %g2, %g1
				stx	%g1, [%fp+671]
		.LVL454:
  664                   %CYCLE A = -1, 1, 1
  665                      %CYCLE B = -1, 1, 1
				ba,pt	%xcc, .L289
				 mov	-2, %i3
		.LVL455:
		.L330:
		.LDL19:
		.LDL20:
  666                         %IF A#0 %OR B#0 %START
				mov	-2, %i4
		.LVL458:
		.L287:
  667                           PIN FLAG = 0
				be,pn	%icc, .L329
				 sethi	%hi(LASTCHK.6139), %g1
		.LVL456:
		.L289:
				orcc	%i3, %i4, %g0
				be,pn	%icc, .L287
				 add	%fp, 663, %g5
		.L291:
				st	%g0, [%fp+707]
				ba,pt	%xcc, .L330
				 cmp	%i3, 1
		.L329:
		.L288:
  668                           K = DOM(X+A, Y+B)
				add	%i3, 1, %i3
		.LVL457:
				lduw	[%fp+723], %o1
				add	%i4, %o1, %o1
				lduw	[%fp+727], %o0
				add	%i3, %o0, %o0
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 sra	%o0, 0, %o0
		.LVL460:
				cmp	%i4, 1
				bne,a,pt %icc, .L345
				 add	%i4, 1, %i4
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
				add	%i4, 1, %i4
		.LVL459:
		.L345:
  670                         %FINISH
  671                      %REPEAT
  672                   %REPEAT
  673                   %IF LAST CHK # Q %AND %C
				lduw	[%g1+%lo(LASTCHK.6139)], %g2
				lduw	[%fp+735], %g1
				cmp	%g2, %g1
				be,pn	%icc, .L298
				 lduw	[%fp+687], %g4
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
				add	%g4, 1, %g3
				sra	%g3, 0, %g1
				sllx	%g1, 2, %g1
				sethi	%hi(KCASCH.6401), %g2
				or	%g2, %lo(KCASCH.6401), %g2
				lduw	[%g2+%g1], %o1
				lduw	[%fp+723], %g1
				cmp	%o1, %g1
				bne,pt	%icc, .L333
				 lduw	[%fp+747], %g2
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
				sra	%g3, 0, %g3
				sethi	%hi(KMOVE.6121), %g1
				or	%g1, %lo(KMOVE.6121), %g1
				ldub	[%g1+%g3], %g1
				cmp	%g1, 0
				bne,pt	%icc, .L346
				 cmp	%g2, 3
		.LBB490:
  676                      %IF ROW_R(6)_P = 0 = ROW_R(7)_P %AND %C
  677                        ROW_R(8)_P = ROOK*W2 %START
  678                         TYPE = 6; K = DOM(7, Y); ! DO CASTLE
				st	%g1, [%fp+739]
  679                      %FINISH
				ldx	[%fp+671], %g1
		.LVL461:
				lduw	[%g1+80], %g2
				cmp	%g2, 0
				bne,a,pt %icc, .L347
				 lduw	[%g1+48], %g2
				add	%fp, 663, %g5
				sra	%o1, 0, %o1
				call	DOM.6414, 0
				 mov	7, %o0
		.LVL465:
  680                      %IF ROW_R(4)_P = 0 =ROW_R(3)_P %AND %C
  681                        ROW_R(2)_P = 0 %AND ROW_R(1)_P = ROOK*W2 %C
				lduw	[%g1+96], %g2
				cmp	%g2, 0
				bne,a,pt %icc, .L347
				 lduw	[%g1+48], %g2
		.LBE490:
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				sll	%g4, 2, %g4
				lduw	[%g1+112], %g1
				cmp	%g1, %g4
				be,pn	%icc, .L331
				 mov	6, %g1
		.L293:
		.LBB491:
				ldx	[%fp+671], %g1
		.LVL462:
		.L335:
				lduw	[%g1+48], %g2
		.L347:
				cmp	%g2, 0
				bne,pt	%icc, .L333
				 lduw	[%fp+747], %g2
				mov	7, %g1
				st	%g1, [%fp+739]
				ba,pt	%xcc, .L335
				 ldx	[%fp+671], %g1
		.LVL466:
		.L327:
  684                      %FINISH
				add	%fp, 663, %g5
				ldsw	[%fp+723], %o1
				call	DOM.6414, 0
				 mov	3, %o0
		.LVL463:
  685                   %FINISH
				lduw	[%g1+32], %g2
				cmp	%g2, 0
				bne,pt	%icc, .L333
				 lduw	[%fp+747], %g2
		.LBE491:
  686                   !!
  687 OUT:
				lduw	[%g1+16], %g2
				cmp	%g2, 0
				bne,pt	%icc, .L333
				 lduw	[%fp+747], %g2
  688                %FINISH
				lduw	[%fp+687], %g2
				sll	%g2, 2, %g2
				lduw	[%g1], %g1
				cmp	%g1, %g2
				bne,a,pt %icc, .L333
				 lduw	[%fp+747], %g2
  689                %RESULT = 0 %IF SCRQ = 3
				lduw	[%fp+747], %g2
		.L333:
				cmp	%g2, 3
		.L346:
				be,pn	%icc, .L327
				 lduw	[%fp+727], %g1
		.L252:
		.L253:
				ba,pt	%xcc, .L333
				 lduw	[%fp+747], %g2
		.LVL464:
		.L331:
  690             %REPEAT
				ba,pt	%xcc, .L299
				 mov	0, %i0
		.LVL467:
		.L328:
		.LBB492:
		.LBB488:
		.LBB486:
  691          %REPEAT
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				ble,pn	%icc, .L309
				 sethi	%hi(PINPT.6105), %g1
		.LVL445:
		.LBB482:
		.LBB483:
  693                                         ! ONLY ON SCORE ENTRY
  694
  695          %RESULT = ADDR(LIST)
				lduw	[%fp+667], %i0
		.L299:
  696       %END
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
				.register	%g7, #ignore
		.LVL69:
				save	%sp, -1488, %sp
		.LVL70:
				mov	%g5, %i3
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
				add	%i4, -1, %g1
				cmp	%g1, 5
				bgu,pt	%icc, .L258
				 sethi	%hi(_imp_current_file), %g1
				ldx	[%g1+%lo(_imp_current_file)], %o1
				brz,pn	%o1, .L310
				 mov	256, %o2
				call	_imp_c2istr, 0
				 add	%fp, 1015, %o0
		.LVL483:
				sethi	%hi(_imp_current_line), %g1
		.L339:
				lduw	[%g1+%lo(_imp_current_line)], %i3
				cmp	%i3, 0
				move	%icc, 698, %i3
				mov	256, %o2
				add	%fp, 1015, %o1
				call	memcpy, 0
				 add	%fp, 143, %o0
		.LVL484:
				sra	%i4, 0, %o4
				mov	587, %g1
				stx	%g1, [%sp+2239]
				sethi	%hi(.LC32), %g1
				or	%g1, %lo(.LC32), %g1
				stx	%g1, [%sp+2231]
				stx	%o4, [%sp+2223]
				sethi	%hi(.LC31), %o5
				or	%o5, %lo(.LC31), %o5
				mov	3, %o3
				mov	6, %o2
				sra	%i3, 0, %o1
				call	_signal_eventf, 0
				 add	%fp, 143, %o0
		.LVL485:
				sethi	%hi(.LC4), %o1
				or	%o1, %lo(.LC4), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL486:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 759, %o0
		.LVL487:
		.LBE494:
				mov	256, %o2
				add	%fp, 759, %o1
				call	memcpy, 0
				 add	%fp, 1015, %o0
		.LVL488:
				ba,pt	%xcc, .L339
				 sethi	%hi(_imp_current_line), %g1
		.LVL489:
		.L332:
  699          %INTEGER WIDTH, WHICH)
				add	%i4, -1, %i4
		.LVL385:
		.L338:
				sra	%i4, 0, %i4
				sllx	%i4, 3, %i4
		.LVL386:
				sethi	%hi(MOVE.6405), %g1
				or	%g1, %lo(MOVE.6405), %g1
				ldx	[%g1+%i4], %g1
				jmp	%g1
				 nop
		.LVL387:
		.L324:
				ba,pt	%xcc, .L338
				 add	%i4, -1, %i4
		.L310:
		.LBB494:
  700
				sra	%i0, 0, %i0
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L332
				 nop
				return	%i7+8
				 nop
		.LVL482:
		.L258:
				call	__stack_chk_fail, 0
				 nop
		.LVL490:
				nop
		.LFE193:
				.align 4
				.proc	04
		TRYANOTHERPLY.6300:
		.LFB191:
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
				sethi	%hi(24576), %g1
				or	%g1, 424, %g1
				st	%g1, [%fp+1259]
				st	%g0, [%fp+1263]
				sethi	%hi(-25600), %g1
				or	%g1, 600, %g1
				st	%g1, [%fp+1267]
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
				brz,pn	%i0, .L30
				 mov	0, %i5
		.L31:
		.LVL71:
		.LBB308:
  708
  709          RES == RECORD(0)
  710          %CYCLE I = 1, 1, WIDTH
  711             M1 == RECORD(0)
				ba,pt	%xcc, .L44
				 mov	0, %g5
		.LVL96:
		.L38:
  712             M2 == M1; LN == M1
				addcc	%i1, -1, %g0
				bneg,pn	%icc, .L59
				 sethi	%hi(_imp_current_file), %g1
		.L32:
		.LVL72:
				ldx	[%g1+%lo(_imp_current_file)], %o1
				brz,pn	%o1, .L33
				 mov	256, %o2
				call	_imp_c2istr, 0
				 add	%fp, 1527, %o0
		.LVL76:
				sethi	%hi(_imp_current_line), %g1
		.L63:
				lduw	[%g1+%lo(_imp_current_line)], %i5
				cmp	%i5, 0
				move	%icc, 712, %i5
				sethi	%hi(.LC29), %o1
				or	%o1, %lo(.LC29), %o1
				call	_imp_c2istr, 0
				 add	%fp, 1783, %o0
		.LVL77:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 991, %o0
		.LVL78:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 735, %o0
		.LVL79:
				mov	0, %o5
				mov	1, %o4
				mov	5, %o3
				add	%fp, 735, %o2
				sra	%i5, 0, %o1
				call	_signal_event, 0
				 add	%fp, 991, %o0
		.LVL80:
				ba,pt	%xcc, .L32
				 nop
		.L33:
		.LBB309:
				sethi	%hi(.LC4), %o1
				or	%o1, %lo(.LC4), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL81:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1271, %o0
		.LVL82:
		.LBE309:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL83:
		.LBE310:
				ba,pt	%xcc, .L63
				 sethi	%hi(_imp_current_line), %g1
		.LVL84:
		.L55:
				mov	0, %i5
		.LBE311:
				ba,pt	%xcc, .L46
				 mov	0, %i5
		.LVL110:
		.L62:
  713             MAX = MAXA(WHICH)
				sra	%g1, 0, %g1
				sllx	%g1, 2, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
		.LVL74:
				mov	0, %o7
		.LBE308:
				mov	0, %g3
  714
  715             L == LIST
				brz,pn	%i1, .L53
				 add	%i2, 1, %g1
		.LVL73:
				cmp	%i4, %i1
				be,pn	%icc, .L38
				 add	%i4, 1, %i4
		.LVL94:
				ba,pt	%xcc, .L36
				 mov	0, %i5
		.LVL101:
		.L57:
  716             %%EXIT  %IF ADDR(L) = 0
				mov	1, %i4
				brz,pn	%i0, .L39
				 mov	%i5, %o7
		.LVL95:
		.L37:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
				ba,pt	%xcc, .L37
				 lduw	[%g1-788], %o5
		.LVL75:
		.L59:
		.LBB310:
				brz,pn	%g2, .L60
				 mov	%g1, %g3
				cmp	%i2, 0
				bl,a,pn	%icc, .L61
				 lduw	[%g1+8], %g2
		.L41:
				brz,pn	%i0, .L40
				 mov	%i0, %g1
				mov	%o5, %g4
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
				cmp	%g2, %g4
				bge,a,pt %icc, .L65
				 ldx	[%g1], %g2
		.L42:
		.LVL86:
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
				ble,a,pn %icc, .L65
				 ldx	[%g1], %g2
  723                %FINISH
				lduw	[%g1+8], %g2
				cmp	%g2, %g4
				ble,a,pt %icc, .L65
				 ldx	[%g1], %g2
  724                !!
				lduw	[%g1+8], %g4
		.LVL87:
		.L64:
				mov	%g1, %i5
				mov	%g3, %g5
		.LVL88:
		.L43:
				ba,pt	%xcc, .L64
				 lduw	[%g1+8], %g4
		.LVL91:
		.L60:
		.L45:
  725                LN == L;  L == L_L
  726             %REPEAT
				ldx	[%g1], %g2
		.LDL1:
		.LDL2:
		.LVL89:
		.L65:
				mov	%g2, %g1
		.LVL90:
		.L44:
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
				ba,pt	%xcc, .L46
				 mov	%g1, %i0
		.LVL85:
		.L61:
		.LBB311:
				ldx	[%i5], %g1
		.LVL92:
				mov	0, %g1
				ldx	[%g1], %i0
		.LVL108:
  730             M2_L == RES
				stx	%o7, [%g1]
		.LVL109:
		.LBE312:
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
				brz,pn	%g5, .L55
				 stx	%o7, [%i5]
		.L47:
  733               M1_L == L
  734          %REPEAT
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
				stx	%g1, [%g5]
		.LVL93:
		.L46:
				brz,pn	%i0, .L39
				 nop
		.LVL97:
		.L36:
  737          L == RECORD (0)
				mov	%i3, %g5
				call	RELEASECHAIN.6213, 0
				 mov	%i0, %o0
		.LVL98:
		.L39:
  738          %WHILE ADDR(RES) # 0 %CYCLE
  739             M1 == RES_L;                ! NEXT LINK
				brnz,pt	%i5, .L49
				 mov	0, %g2
		.LVL99:
				ldx	[%i5], %g1
		.LVL103:
				brnz,pt	%g1, .L57
				 mov	%i5, %g2
		.L48:
		.LVL105:
		.L30:
  740             RES_L == L;                 ! LINK TO NEXT
				stx	%g2, [%i5]
		.LVL104:
  741             L == RES
  742             RES == M1
				mov	%g1, %i5
		.LVL102:
		.L49:
  743          %REPEAT
  744          %RESULT = ADDR(L)
				ba,pt	%xcc, .L30
				 mov	0, %i5
		.LVL100:
		.L53:
  745       %END
				sra	%i5, 0, %i0
		.LVL106:
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L62
				 nop
				return	%i7+8
				 nop
		.LVL107:
		.L40:
		.LBB312:
				call	__stack_chk_fail, 0
				 nop
		.LVL111:
				nop
		.LFE195:
				.section	".rodata"
				.align 4
		.LC24:
				.long	3
				.long	2
				.long	2
				.long	2
				.long	2
				.long	2
				.long	2
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
		.LC25:
				.byte	40
				.asciz	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\n"
				.skip	214
				.section	".text"
				.align 4
				.proc	04
		EXVAL.6268:
		.LFB189:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
				.register	%g3, #scratch
		.LVL2:
  748
  749          %RECORD(SQF)%NAME SQ
  750          %RECORD(ROWF)%NAME ROW
  751          %RECORD(LISTF)%NAME LIST
  752          %INTEGER FROM, TO, X, Y, X0, Y0, KING, CAS, ROOK
  753          LIST == B_L
				ldx	[%o0], %o5
		.LVL3:
  754          FROM = LIST_FR;  TO = LIST_TO
				ldub	[%o5+4], %g3
		.LVL4:
  755          X = FROM>>4;  X0 = TO>>4
				ldub	[%o5+5], %g2
		.LVL5:
				and	%g3, 0xff, %g5
		.LVL6:
				srl	%g5, 4, %g5
		.LVL7:
  756          Y = FROM&15; Y0 = TO&15
				and	%g2, 0xff, %g2
		.LVL8:
				srl	%g2, 4, %g2
		.LVL9:
				add	%g2, -1, %g2
		.LVL10:
  757          SQ == BRD(Y0)_R(X0)
				and	%g2, 15, %g1
				add	%g1, -1, %g1
  758          B_HOLD = SQ_P
				sra	%g2, 0, %o4
				sra	%g1, 0, %g4
		.LVL11:
				sllx	%g4, 3, %g4
		.LVL12:
				add	%g4, %o4, %g4
				sllx	%g4, 4, %g4
				sethi	%hi(BRD.6073), %o4
				or	%o4, %lo(BRD.6073), %o4
				lduw	[%o4+%g4], %g4
				st	%g4, [%o0]
		.LVL13:
  759          %IF LIST_SPEC # 0 %START
				lduw	[%o5+8], %g4
				cmp	%g4, 0
				be,pt	%icc, .L6
				 and	%g3, 15, %g3
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cmp	%g4, 5
				ble,a,pt %icc, .L7
				 sra	%g2, 0, %o5
  761                %IF SQ_P<0 %START
				sra	%g2, 0, %g3
		.LVL14:
				sra	%g1, 0, %g5
		.LVL15:
				sllx	%g5, 3, %g5
		.LVL16:
				add	%g5, %g3, %g3
				sllx	%g3, 4, %g3
				lduw	[%o4+%g3], %g3
				cmp	%g3, 0
				bl,pn	%icc, .L14
				 sethi	%hi(KCAS.6122), %g3
		.L8:
		.LVL17:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
				mov	1, %g3
		.LVL24:
  763                %FINISHELSESTART
				ba,pt	%xcc, .L9
				 mov	-6, %o0
		.LVL25:
		.L15:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
				mov	8, %g3
				mov	-4, %g5
  765                %FINISH
				mov	6, %o0
		.LVL18:
		.L9:
				cmp	%g4, 6
				be,pn	%icc, .L15
				 add	%g3, -1, %g3
		.L10:
				mov	-30, %g5
				st	%g5, [%g3+%lo(KCAS.6122)]
  766                ROW == BRD(CAS)
				mov	4, %g5
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				mov	30, %g5
				st	%g5, [%g3+%lo(KCAS.6122)+8]
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
				sra	%g3, 0, %g3
				sllx	%g3, 7, %g3
		.LVL26:
				sethi	%hi(BRD.6073), %g4
				or	%g4, %lo(BRD.6073), %g4
				add	%g4, %g3, %g3
				st	%o0, [%g3+96]
  769                   ROW_R(8)_P = 0
				st	%g5, [%g3+80]
  770                %FINISHELSESTART
				ba,pt	%xcc, .L11
				 st	%g0, [%g3+112]
		.LVL27:
		.L7:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
				sethi	%hi(BRD.6073), %g4
				or	%g4, %lo(BRD.6073), %g4
				sra	%g3, 0, %g3
				sllx	%g3, 7, %g3
		.LVL19:
				add	%g4, %g3, %o5
		.LVL20:
				st	%o0, [%o5+32]
  772                   ROW_R(1)_P = 0
				st	%g5, [%o5+48]
				st	%g0, [%g4+%g3]
		.L11:
  773                %FINISH
  774                SQ_P = 0
				sra	%g2, 0, %g3
				sra	%g1, 0, %g1
				sllx	%g1, 3, %g2
		.LVL21:
				add	%g2, %g3, %g2
				sllx	%g2, 4, %g2
				sethi	%hi(BRD.6073), %g1
		.LVL22:
				or	%g1, %lo(BRD.6073), %g1
  775                %RESULT = KING
				ba,pt	%xcc, .L12
				 st	%g0, [%g1+%g2]
		.LVL23:
		.L14:
  776             %FINISH
  777             SQ_P = LIST_SPEC
				sra	%g1, 0, %o4
				sllx	%o4, 3, %o4
				add	%o4, %o5, %o5
				sllx	%o5, 4, %o5
				sethi	%hi(BRD.6073), %o4
				or	%o4, %lo(BRD.6073), %o4
  778          %FINISHELSESTART
				ba,pt	%xcc, .L13
				 st	%g4, [%o4+%o5]
		.LVL28:
		.L6:
  779             SQ_P = BRD(Y)_R(X)_P
				sethi	%hi(BRD.6073), %o4
				or	%o4, %lo(BRD.6073), %o4
				add	%g5, -1, %g4
				sra	%g4, 0, %o5
		.LVL29:
				add	%g3, -1, %g4
				sra	%g4, 0, %g4
				sllx	%g4, 3, %g4
				add	%g4, %o5, %g4
				sllx	%g4, 4, %g4
				lduw	[%o4+%g4], %o3
				sra	%g2, 0, %g4
				sra	%g1, 0, %o5
				sllx	%o5, 3, %o5
				add	%o5, %g4, %g4
				sllx	%g4, 4, %g4
				st	%o3, [%o4+%g4]
		.L13:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
				sethi	%hi(BRD.6073), %g4
				or	%g4, %lo(BRD.6073), %g4
				add	%g5, -1, %g5
		.LVL30:
				sra	%g5, 0, %g5
				add	%g3, -1, %g3
		.LVL31:
				sra	%g3, 0, %g3
				sllx	%g3, 3, %g3
		.LVL32:
				add	%g3, %g5, %g3
				sllx	%g3, 4, %g3
				st	%g0, [%g4+%g3]
  782          %RESULT = SQ_P
				sra	%g2, 0, %g3
				sra	%g1, 0, %g2
		.LVL33:
				sllx	%g2, 3, %g2
				add	%g2, %g3, %g2
				sllx	%g2, 4, %g2
				lduw	[%g4+%g2], %o0
		.LVL34:
		.L12:
  783       %END
				jmp	%o7+8
				 sra	%o0, 0, %o0
		.LFE196:
				.align 4
				.proc	020
		RESTOREBOARD.6163:
		.LFB197:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL35:
  786          %RECORD(SQF)%NAME SQ
  787          %RECORD(ROWF)%NAME ROW
  788          %RECORD(LISTF)%NAME LIST
  789          %INTEGER FROM, TO, X, Y, X0, Y0, KING, CAS, ROOK
  790          LIST == B_L
				ldx	[%o0], %g5
		.LVL36:
  791          FROM = LIST_FR;  TO = LIST_TO
				ldub	[%g5+4], %g1
		.LVL37:
  792          X = FROM>>4;  X0 = TO>>4
				ldub	[%g5+5], %g3
		.LVL38:
				and	%g1, 0xff, %g2
		.LVL39:
				srl	%g2, 4, %o4
		.LVL40:
  793          Y = FROM&15; Y0 = TO&15
				and	%g1, 15, %g1
		.LVL41:
				and	%g3, 0xff, %g3
		.LVL44:
				srl	%g3, 4, %g3
		.LVL45:
  794          SQ == BRD(Y0)_R(X0)
				and	%g3, 15, %g4
		.LVL42:
				add	%g4, -1, %g2
		.LVL43:
  795          %IF LIST_SPEC # 0 %START
				lduw	[%g5+8], %g5
		.LVL46:
				cmp	%g5, 0
				be,pt	%icc, .L25
				 add	%g3, -1, %o5
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cmp	%g5, 5
				ble,pt	%icc, .L18
				 cmp	%g4, 8
  797                %IF Y0 = 1 %START
				cmp	%g4, 1
				be,pn	%icc, .L26
				 sethi	%hi(KCAS.6122), %g1
		.L19:
		.LVL47:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
  799                %FINISHELSESTART
				ba,pt	%xcc, .L20
				 mov	-6, %o4
		.LVL56:
		.L27:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
				mov	8, %g4
		.LVL49:
				mov	-4, %g3
		.LVL55:
  801                %FINISH
				mov	6, %o4
		.LVL50:
		.L20:
				cmp	%g5, 6
				be,pn	%icc, .L27
				 add	%g4, -1, %g4
		.L21:
				st	%g0, [%g1+%lo(KCAS.6122)]
  802                ROW == BRD(CAS)
				mov	4, %g3
		.LVL48:
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				st	%g0, [%g1+%lo(KCAS.6122)+8]
  804                   ROW_R(8)_P = ROOK
				sra	%g4, 0, %g4
				sllx	%g4, 7, %g4
		.LVL57:
				sethi	%hi(BRD.6073), %g1
				or	%g1, %lo(BRD.6073), %g1
				add	%g1, %g4, %g4
				st	%g3, [%g4+112]
		.LVL58:
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
				st	%g0, [%g4+96]
  806                %FINISHELSESTART
				ba,pt	%xcc, .L22
				 st	%g0, [%g4+80]
		.LVL59:
		.L18:
  807                   ROW_R(1)_P = ROOK
				sethi	%hi(BRD.6073), %g1
				or	%g1, %lo(BRD.6073), %g1
				sra	%g4, 0, %g4
				sllx	%g4, 7, %g4
		.LVL51:
				st	%g3, [%g1+%g4]
		.LVL52:
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
				add	%g1, %g4, %g4
				st	%g0, [%g4+32]
  809                %FINISH
				st	%g0, [%g4+48]
		.L22:
  810                SQ_P = KING
				sra	%o5, 0, %g3
		.LVL53:
				sra	%g2, 0, %g2
				sllx	%g2, 3, %g5
				add	%g5, %g3, %g5
				sllx	%g5, 4, %g5
				sethi	%hi(BRD.6073), %g1
				or	%g1, %lo(BRD.6073), %g1
  811                %RETURN
				jmp	%o7+8
				 st	%o4, [%g1+%g5]
		.LVL54:
		.L26:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
				be,pn	%icc, .L28
				 sra	%o5, 0, %g3
		.L24:
		.LVL60:
  814          %FINISH
				add	%g3, 56, %g3
				sllx	%g3, 4, %g3
				sethi	%hi(BRD.6073), %g4
		.LVL67:
				or	%g4, %lo(BRD.6073), %g4
				mov	-1, %g5
		.LVL68:
  815          BRD(Y)_R(X)_P = SQ_P
				sethi	%hi(BRD.6073), %g4
				or	%g4, %lo(BRD.6073), %g4
				sra	%o5, 0, %g5
				sra	%g2, 0, %g2
				sllx	%g2, 3, %g2
		.LVL63:
				add	%g2, %g5, %g2
				sllx	%g2, 4, %g2
				lduw	[%g4+%g2], %g5
				add	%o4, -1, %g3
				sra	%g3, 0, %g3
				add	%g1, -1, %g1
		.LVL64:
				sra	%g1, 0, %g1
				sllx	%g1, 3, %g1
		.LVL65:
				add	%g1, %g3, %g1
				sllx	%g1, 4, %g1
				st	%g5, [%g4+%g1]
				ba,pt	%xcc, .L25
				 st	%g5, [%g4+%g3]
		.LFE197:
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align 8
		.LC29:
				.asciz	"Illegal cycle I = 1, 1, WIDTH"
				.section	".rodata"
		.LC4:
				.byte	19
				.asciz	"test-new/chess9.imp"
				.skip	235
				.section	".text"
				.align 4
				.proc	04
		SORTANDPRUNE.6150:
		.LFB195:
  816          SQ_P = B_HOLD
				lduw	[%o0], %g1
  817       %END
				sra	%g2, 0, %g4
		.LVL61:
				sllx	%g4, 3, %g4
				add	%g4, %g3, %g3
				sllx	%g3, 4, %g3
				sethi	%hi(BRD.6073), %g4
				or	%g4, %lo(BRD.6073), %g4
				mov	1, %g5
				st	%g5, [%g4+%g3]
		.LVL62:
		.L17:
		.L25:
  818       !!
				jmp	%o7+8
				 st	%g1, [%g4+%g2]
		.LVL66:
		.L28:
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
		.LVL564:
				save	%sp, -176, %sp
		.LVL565:
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				mov	%i1, %o1
				call	TELL.6169, 0
				 ldx	[%i0], %o0
		.LVL566:
		.LBB558:
		.LBB559:
				sethi	%hi(_imp_OutStream), %i2
				mov	2, %g1
				st	%g1, [%i2+%lo(_imp_OutStream)]
				sethi	%hi(_imp_OutFile), %i4
				sethi	%hi(_imp_outfile), %i3
				ldx	[%i3+%lo(_imp_outfile)+584], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %i5
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL567:
		.LBE559:
		.LBE558:
		.LBB560:
		.LBB561:
				call	_imp_printsymbol, 0
				 mov	42, %o0
		.LVL568:
		.LBE561:
		.LBE560:
  824          SELECT OUTPUT(2)
  825          PRINTSYMBOL('*'); TELL(X_L, W)
  826          SELECT OUTPUT(0)
				mov	%i1, %o1
				call	TELL.6169, 0
				 ldx	[%i0], %o0
		.LVL569:
		.LBB562:
		.LBB563:
				st	%g0, [%i2+%lo(_imp_OutStream)]
				ldx	[%i3+%lo(_imp_outfile)+8], %g1
				stx	%g1, [%i4+%lo(_imp_OutFile)]
				call	check_outstream, 0
				 or	%i5, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL570:
		.LBE563:
		.LBE562:
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				call	CHANGEBOARD.6161, 0
				 mov	%i0, %o0
		.LVL571:
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				add	%i1, %i1, %g1
				add	%g1, %i1, %g1
				add	%g1, %g1, %g1
				cmp	%g1, %o0
				be,pn	%icc, .L398
				 add	%i1, 1, %i1
		.L397:
  830       %END
				sra	%i1, 0, %i1
				sethi	%hi(KMOVE.6121), %g1
				or	%g1, %lo(KMOVE.6121), %g1
				mov	1, %g2
				stb	%g2, [%g1+%i1]
				return	%i7+8
				 nop
		.LFE198:
				.section	".rodata"
				.align 4
		.LC0:
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	5
				.long	0
				.long	0
				.long	3
				.long	3
				.long	3
				.long	20
				.long	20
				.long	3
				.long	3
				.long	3
				.long	4
				.long	6
				.long	6
				.long	50
				.long	50
				.long	6
				.long	6
				.long	4
				.long	8
				.long	9
				.long	30
				.long	55
				.long	55
				.long	30
				.long	9
				.long	8
				.long	10
				.long	10
				.long	35
				.long	60
				.long	60
				.long	35
				.long	10
				.long	10
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
		.LC5:
				.byte	92
				.asciz	"Version 2.5\nHOW DIFFICULT A GAME DO YOU WANT?\n      2 = NORMAL STRENGTH, 3 = MORE DIFFIC
				.skip	162
		.LC6:
				.byte	4
				.asciz	"2-4?"
				.skip	250
		.LC7:
				.byte	5
				.asciz	"Move?"
				.skip	249
		.LC10:
				.byte	33
				.asciz	"INVALID MOVE - MY FORMAT IS D2D4\n"
				.skip	221
		.LC8:
				.byte	4
				.asciz	"MON?"
				.skip	250
		.LC9:
				.byte	8
				.asciz	"NEW PLY?"
				.skip	246
				.section	".text"
				.align 4
				.global main
				.proc	04
		main:
		.LFB185:
  831       !!
				return	%i7+8
				 nop
		.L398:
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
		.LVL190:
				save	%sp, -1472, %sp
		.LVL191:
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
  833
  834          %IF ADDR(MOVE) = 0 %START
				brz,pn	%i0, .L113
				 mov	1, %o1
		.L107:
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				cmp	%i1, 0
				bl,pn	%icc, .L115
				 mov	256, %o2
		.L108:
		.LBB359:
  836 ")          %ELSE %C
				sethi	%hi(.LC17), %o1
				or	%o1, %lo(.LC17), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL215:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1015, %o0
		.LVL216:
				mov	256, %o2
				add	%fp, 1015, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL217:
		.LBE364:
		.LBB365:
		.LBB366:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 751, %o0
		.LVL218:
				call	_imp_printstring, 0
				 add	%fp, 751, %o0
		.LVL219:
				ba,pt	%xcc, .L109
				 nop
		.L110:
		.LVL220:
		.LBE366:
		.LBE365:
		.LBB367:
		.LBB368:
				call	_imp_spaces, 0
				 mov	4, %o0
		.LVL221:
		.LBE368:
		.LBE367:
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
				sethi	%hi(.LC18), %o1
				or	%o1, %lo(.LC18), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL209:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1271, %o0
		.LVL210:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL211:
		.LBE359:
		.LBB360:
		.LBB361:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 751, %o0
		.LVL212:
				call	_imp_printstring, 0
				 add	%fp, 751, %o0
		.LVL213:
		.L109:
		.LBE361:
		.LBE360:
		.LBB362:
		.LBB363:
				call	exit, 0
				 mov	0, %o0
		.LVL214:
		.L115:
		.LBE363:
		.LBE362:
		.LBB364:
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				sethi	%hi(NO.6132), %g1
				call	_imp_writeint, 0
				 ldsw	[%g1+%lo(NO.6132)], %o0
		.LVL192:
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				cmp	%i1, 0
				ble,pn	%icc, .L110
				 nop
		.LVL193:
		.LBB348:
		.LBB349:
				call	_imp_spaces, 0
				 mov	25, %o0
		.LVL194:
		.LBE349:
		.LBE348:
  844          PRINTMOVE(MOVE)
				call	PRINTMOVE.6173, 0
				 mov	%i0, %o0
		.LVL195:
		.LBB350:
				call	PRINTMOVE.6173, 0
				 mov	%i0, %o0
		.LVL222:
		.LBB369:
  845          PRINTSTRING("(")
				mov	256, %o2
				sethi	%hi(.LC19), %o1
				or	%o1, %lo(.LC19), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL196:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1015, %o0
		.LVL197:
				mov	256, %o2
				add	%fp, 1015, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL198:
		.LBE350:
		.LBB351:
		.LBB352:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 751, %o0
		.LVL199:
				call	_imp_printstring, 0
				 add	%fp, 751, %o0
		.LVL200:
		.LBE352:
		.LBE351:
				mov	256, %o2
				sethi	%hi(.LC19), %o1
				or	%o1, %lo(.LC19), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL223:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1015, %o0
		.LVL224:
				mov	256, %o2
				add	%fp, 1015, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL225:
		.LBE369:
		.LBB370:
		.LBB353:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 751, %o0
		.LVL226:
				call	_imp_printstring, 0
				 add	%fp, 751, %o0
		.LVL227:
		.LDL7:
		.LBE353:
		.LBE370:
  846          %IF WHICH > 0 %START
  847             TIMTT = CPUTIME-TIME
				call	CPUTIME, 0
				 nop
		.LVL201:
				sethi	%hi(TIME.6129), %g1
				ldd	[%g1+%lo(TIME.6129)], %f8
		.LBB354:
		.LBB355:
				mov	2, %o2
				mov	1, %o1
		.LVL202:
				call	_imp_print, 0
				 fsubd	%f0, %f8, %f0
		.LVL203:
		.L111:
		.LBE355:
		.LBE354:
		.LBB356:
  848            PRINT(TIMTT, 1, 2)
  849          %FINISHELSESTART
  850             PRINT(CPUTIME-TIME2, 1, 2)
				call	CPUTIME, 0
				 nop
		.LVL228:
				sethi	%hi(TIME2.6130), %g1
				ldd	[%g1+%lo(TIME2.6130)], %f8
		.LBB371:
		.LBB372:
				mov	2, %o2
				mov	1, %o1
		.LVL229:
				call	_imp_print, 0
				 fsubd	%f0, %f8, %f0
		.LVL230:
		.LBE372:
		.LBE371:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				mov	256, %o2
		.L116:
				sethi	%hi(.LC20), %o1
				or	%o1, %lo(.LC20), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL204:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1271, %o0
		.LVL205:
				mov	256, %o2
				add	%fp, 1271, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL206:
		.LBE356:
		.LBB357:
		.LBB358:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 751, %o0
		.LVL207:
				call	_imp_printstring, 0
				 add	%fp, 751, %o0
		.LVL208:
		.LBE358:
		.LBE357:
				ba,pt	%xcc, .L116
				 mov	256, %o2
		.LVL231:
		.L114:
  853 ")
  854       %END
  855       !!
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L114
				 nop
				return	%i7+8
				 nop
		.L113:
				call	__stack_chk_fail, 0
				 nop
		.LVL232:
				nop
		.LFE199:
				.align 4
				.proc	04
		READM.6697:
		.LFB207:
  856       %ROUTINE PRINTBOARD
				save	%sp, -2064, %sp
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				stb	%g0, [%fp+1975]
				mov	1, %g1
				stb	%g1, [%fp+1976]
				stb	%g0, [%fp+1977]
				stb	%g1, [%fp+1978]
				stb	%g0, [%fp+1979]
				stb	%g1, [%fp+1980]
				stb	%g0, [%fp+1981]
				stb	%g1, [%fp+1982]
				stb	%g1, [%fp+1983]
				stb	%g0, [%fp+1984]
				stb	%g1, [%fp+1985]
				stb	%g0, [%fp+1986]
				stb	%g1, [%fp+1987]
				stb	%g0, [%fp+1988]
				stb	%g1, [%fp+1989]
				stb	%g0, [%fp+1990]
				stb	%g0, [%fp+1991]
				stb	%g1, [%fp+1992]
				stb	%g0, [%fp+1993]
				stb	%g1, [%fp+1994]
				stb	%g0, [%fp+1995]
				stb	%g1, [%fp+1996]
				stb	%g0, [%fp+1997]
				stb	%g1, [%fp+1998]
				stb	%g1, [%fp+1999]
				stb	%g0, [%fp+2000]
				stb	%g1, [%fp+2001]
				stb	%g0, [%fp+2002]
				stb	%g1, [%fp+2003]
				stb	%g0, [%fp+2004]
				stb	%g1, [%fp+2005]
				stb	%g0, [%fp+2006]
				stb	%g0, [%fp+2007]
				stb	%g1, [%fp+2008]
				stb	%g0, [%fp+2009]
				stb	%g1, [%fp+2010]
				stb	%g0, [%fp+2011]
				stb	%g1, [%fp+2012]
				stb	%g0, [%fp+2013]
				stb	%g1, [%fp+2014]
				stb	%g1, [%fp+2015]
				stb	%g0, [%fp+2016]
				stb	%g1, [%fp+2017]
				stb	%g0, [%fp+2018]
				stb	%g1, [%fp+2019]
				stb	%g0, [%fp+2020]
				stb	%g1, [%fp+2021]
				stb	%g0, [%fp+2022]
				stb	%g0, [%fp+2023]
				stb	%g1, [%fp+2024]
				stb	%g0, [%fp+2025]
				stb	%g1, [%fp+2026]
				stb	%g0, [%fp+2027]
				stb	%g1, [%fp+2028]
				stb	%g0, [%fp+2029]
				stb	%g1, [%fp+2030]
				stb	%g1, [%fp+2031]
				stb	%g0, [%fp+2032]
				stb	%g1, [%fp+2033]
				stb	%g0, [%fp+2034]
				stb	%g1, [%fp+2035]
				stb	%g0, [%fp+2036]
				stb	%g1, [%fp+2037]
				stb	%g0, [%fp+2038]
  858             0, 1, 0, 1, 0, 1, 0, 1,
  859             1, 0, 1, 0, 1, 0, 1, 0,
  860             0, 1, 0, 1, 0, 1, 0, 1,
  861             1, 0, 1, 0, 1, 0, 1, 0,
  862             0, 1, 0, 1, 0, 1, 0, 1,
  863             1, 0, 1, 0, 1, 0, 1, 0,
  864             0, 1, 0, 1, 0, 1, 0, 1,
  865             1, 0, 1, 0, 1, 0, 1, 0
  866          !!
  867          %ROUTINE LINE
				save	%sp, -960, %sp
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
		.LBB316:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
				mov	256, %o2
				sethi	%hi(.LC16), %o1
				or	%o1, %lo(.LC16), %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL134:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1527, %o0
		.LVL135:
				mov	256, %o2
				add	%fp, 1527, %o1
				call	memcpy, 0
				 add	%fp, 1783, %o0
		.LVL136:
		.LBE316:
		.LBB317:
		.LBB318:
				mov	256, %o2
				add	%fp, 1783, %o1
				call	memcpy, 0
				 add	%fp, 1263, %o0
		.LVL137:
				call	_imp_printstring, 0
				 add	%fp, 1263, %o0
		.LVL138:
		.LBE318:
		.LBE317:
  869 ")
  870          %END
  871          !!
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L79
				 nop
				return	%i7+8
				 nop
		.L79:
				call	__stack_chk_fail, 0
				 nop
		.LVL139:
				nop
		.LFE201:
				.align 4
				.proc	020
		BURP.6673:
		.LFB203:
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				mov	107, %g1
				stb	%g1, [%fp+1959]
				mov	113, %g1
				stb	%g1, [%fp+1960]
				mov	114, %g1
				stb	%g1, [%fp+1961]
				mov	98, %g1
				stb	%g1, [%fp+1962]
				mov	110, %g1
				stb	%g1, [%fp+1963]
				mov	112, %g1
				stb	%g1, [%fp+1964]
				mov	32, %g1
				stb	%g1, [%fp+1965]
				mov	80, %g1
				stb	%g1, [%fp+1966]
				mov	78, %g1
				stb	%g1, [%fp+1967]
				mov	66, %g1
				stb	%g1, [%fp+1968]
				mov	82, %g1
				stb	%g1, [%fp+1969]
				mov	81, %g1
				stb	%g1, [%fp+1970]
				mov	75, %g1
				stb	%g1, [%fp+1971]
		.LVL153:
				sethi	%hi(BRD.6073+896), %i0
				or	%i0, %lo(BRD.6073+896), %i0
				mov	0, %i5
  873            'k', 'q', 'r', 'b', 'n', 'p',
  874            ' ', 'P', 'N', 'B', 'R', 'Q', 'K'
  875          %INTEGER X,Y, I, P, Q
  876          %RECORD(ROWF)%NAME ROW
  877          !!
  878          Q = 1
  879          %CYCLE Y = 8, -1, 1
  880             ROW == BRD(Y)
				mov	9, %l0
		.LBB327:
  881             LINE
				call	LINE.6639, 0
				 add	%l0, -1, %l0
		.LVL180:
  882             WRITE(Y, 1)
				cmp	%i5, 64
				be,pn	%icc, .L103
				 add	%i0, -128, %i0
		.LVL179:
		.L94:
				mov	1, %o1
				call	_imp_writeint, 0
				 sra	%l0, 0, %o0
		.LVL181:
				add	%i5, 8, %i2
				ba,pt	%xcc, .L92
				 mov	%i0, %i4
		.LVL182:
		.L103:
		.L95:
  883             %CYCLE X = 1, 1, 8
  884                PRINTSTRING("! ")
				sethi	%hi(.LC13), %i1
				or	%i1, %lo(.LC13), %i1
		.LBE327:
		.LBB328:
				mov	256, %o2
				mov	%i1, %o1
				call	memcpy, 0
				 add	%fp, 1703, %o0
		.LVL162:
				mov	256, %o2
				add	%fp, 1703, %o1
				call	memcpy, 0
				 add	%fp, 423, %o0
		.LVL163:
				mov	256, %o2
				add	%fp, 423, %o1
				call	memcpy, 0
				 add	%fp, 1191, %o0
		.LVL164:
		.LBE333:
		.LBB334:
		.LBB335:
				mov	256, %o2
				add	%fp, 1191, %o1
				call	memcpy, 0
				 add	%fp, 159, %o0
		.LVL165:
				call	_imp_printstring, 0
				 add	%fp, 159, %o0
		.LVL166:
		.LBE335:
		.LBE334:
  885                P = ROW_R(X)_P
				lduw	[%i4], %i3
		.LVL167:
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				cmp	%i5, %i2
				be,pn	%icc, .L100
				 add	%i4, 16, %i4
		.LVL161:
		.L92:
		.LBB333:
				cmp	%i3, 0
				bne,pn	%icc, .L101
				 sra	%i5, 0, %g1
		.L86:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				add	%i3, 6, %g1
		.LVL155:
				sra	%g1, 0, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
		.LVL156:
		.LBB329:
		.LBB330:
				call	_imp_printsymbol, 0
				 ldsb	[%g1-88], %o0
		.LVL157:
		.LDL3:
		.LDL4:
		.LBE330:
		.LBE329:
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
				ldub	[%g1-72], %g1
				cmp	%g1, 1
				be,pn	%icc, .L102
				 nop
		.L89:
		.LVL168:
		.LBB336:
		.LBB337:
				call	_imp_printsymbol, 0
				 mov	32, %o0
		.LVL169:
		.L87:
		.LBE337:
		.LBE336:
		.LBB338:
		.LBB339:
				call	_imp_printsymbol, 0
				 mov	32, %o0
		.LVL170:
				ba,pt	%xcc, .L105
				 add	%i5, 1, %i5
		.LVL171:
		.L102:
		.LBE339:
		.LBE338:
		.LBB340:
		.LBB341:
				call	_imp_printsymbol, 0
				 mov	42, %o0
		.LVL172:
				ba,pt	%xcc, .L87
				 nop
		.LVL173:
		.L100:
		.L93:
		.LBE341:
		.LBE340:
		.LBB342:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				cmp	%i3, 0
				ble,pn	%icc, .L87
				 nop
		.LVL158:
		.LBB331:
		.LBB332:
				call	_imp_printsymbol, 0
				 mov	43, %o0
		.LVL159:
		.L91:
		.LDL5:
				add	%i5, 1, %i5
		.LVL160:
		.L105:
		.LBE332:
		.LBE331:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
  893             %REPEAT
  894             PRINTSTRING("!
				sethi	%hi(.LC14), %l1
		.LBE328:
				ba,pt	%xcc, .L94
				 or	%l1, %lo(.LC14), %l1
		.LVL154:
		.L101:
				mov	256, %o2
				mov	%l1, %o1
				call	memcpy, 0
				 add	%fp, 1703, %o0
		.LVL174:
				mov	256, %o2
				add	%fp, 1703, %o1
				call	memcpy, 0
				 add	%fp, 679, %o0
		.LVL175:
				mov	256, %o2
				add	%fp, 679, %o1
				call	memcpy, 0
				 add	%fp, 1447, %o0
		.LVL176:
		.LBE342:
		.LBB343:
		.LBB344:
				mov	256, %o2
				add	%fp, 1447, %o1
				call	memcpy, 0
				 add	%fp, 159, %o0
		.LVL177:
				call	_imp_printstring, 0
				 add	%fp, 159, %o0
		.LVL178:
		.LDL6:
		.LBE344:
		.LBE343:
  895 ")
  896          %REPEAT
  897          LINE
				call	LINE.6639, 0
				 nop
		.LVL183:
		.LBB345:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				mov	256, %o2
				sethi	%hi(.LC15), %o1
				or	%o1, %lo(.LC15), %o1
				call	memcpy, 0
				 add	%fp, 1703, %o0
		.LVL184:
				mov	256, %o2
				add	%fp, 1703, %o1
				call	memcpy, 0
				 add	%fp, 935, %o0
		.LVL185:
				mov	256, %o2
				add	%fp, 935, %o1
				call	memcpy, 0
				 add	%fp, 1703, %o0
		.LVL186:
		.LBE345:
		.LBB346:
		.LBB347:
				mov	256, %o2
				add	%fp, 1703, %o1
				call	memcpy, 0
				 add	%fp, 159, %o0
		.LVL187:
				call	_imp_printstring, 0
				 add	%fp, 159, %o0
		.LVL188:
		.LBE347:
		.LBE346:
  899 ")
  900       %END
?I unused
  901       !!
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L104
				 nop
				return	%i7+8
				 nop
		.L104:
				call	__stack_chk_fail, 0
				 nop
		.LVL189:
				nop
		.LFE200:
				.section	".rodata"
		.LC19:
				.byte	1
				.asciz	"("
				.skip	253
		.LC20:
				.byte	7
				.asciz	" Secs)\n"
				.skip	247
		.LC18:
				.byte	8
				.asciz	"YOU WIN\n"
				.skip	246
		.LC17:
				.byte	6
				.asciz	"I Win\n"
				.skip	248
				.section	".text"
				.align 4
				.proc	020
		TELL.6169:
		.LFB199:
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
		.LVL146:
				save	%sp, -176, %sp
		.LVL147:
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
		.LVL140:
				save	%sp, -176, %sp
		.LVL141:
  906             PRINTSYMBOL((X>>4)+'A'-1)
				srl	%i0, 4, %o0
				add	%o0, 64, %o0
		.LBB319:
		.LBB320:
				sllx	%o0, 56, %o0
				call	_imp_printsymbol, 0
				 srax	%o0, 56, %o0
		.LVL142:
		.LBE320:
		.LBE319:
  907             PRINTSYMBOL(X&15+'0')
				and	%i0, 15, %i0
		.LVL143:
		.LBB321:
		.LBB322:
				call	_imp_printsymbol, 0
				 add	%i0, 48, %o0
		.LVL144:
		.LBE322:
		.LBE321:
		.LBB323:
		.LBB324:
				call	_imp_space, 0
				 nop
		.LVL145:
		.LBE324:
		.LBE323:
  908             SPACE
  909          %END
  910          !!
				return	%i7+8
				 nop
		.LFE203:
				.align 4
				.proc	020
		PRINTMOVE.6173:
		.LFB202:
  911          BURP(LIST_FR); BURP(LIST_TO)
				call	BURP.6673, 0
				 ldub	[%i0+4], %o0
		.LVL148:
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				call	BURP.6673, 0
				 ldub	[%i0+5], %o0
		.LVL149:
				lduw	[%i0+12], %g1
				cmp	%g1, 0
				bne,pn	%icc, .L83
				 nop
		.L82:
  913          WRITE(LIST_SCORE, 5)
				mov	5, %o1
		.L84:
				call	_imp_writeint, 0
				 ldsw	[%i0+8], %o0
		.LVL150:
				ba,pt	%xcc, .L84
				 mov	5, %o1
		.LFE202:
				.section	".rodata"
		.LC13:
				.byte	2
				.asciz	"! "
				.skip	252
		.LC14:
				.byte	2
				.asciz	"!\n"
				.skip	252
		.LC15:
				.byte	34
				.asciz	"    A   B   C   D   E   F   G   H\n"
				.skip	220
				.section	".text"
				.align 4
				.proc	020
		PRINTBOARD.6171:
		.LFB200:
  914       %END
?K unused
?J unused
?I unused
  915       !!
				return	%i7+8
				 nop
		.L83:
		.LVL151:
		.LBB325:
		.LBB326:
				call	_imp_printsymbol, 0
				 mov	43, %o0
		.LVL152:
		.LBE326:
		.LBE325:
  916       %INTEGER %FN CHECK YOUR MOVE(%RECORD(LISTF)%NAME LIST)
  917          %RECORD(LISTF)%NAME L2, MM
  918          %INTEGER I
  919          MM == MMOVE_L
  920          L2 == LIST
  921          %WHILE ADDR(LIST) # 0 %CYCLE
  922             %IF LIST_FR = MM_FR %AND LIST_TO = MM_TO %C
				cmp	%l4, 0
				be,pn	%icc, .L429
				 stx	%i0, [%i0+16]
				ldub	[%i0+4], %g3
		.LBE714:
		.LBE713:
		.LBE744:
		.LBE752:
				brz,pn	%g1, .L453
				 mov	256, %o2
		.L433:
				ldub	[%g1+4], %g2
				cmp	%g2, %g3
				bne,a,pt %icc, .L454
				 ldx	[%g1], %g1
  923                %START
				mov	%l5, %g1
				ba,pt	%xcc, .L433
				 ldub	[%i0+5], %g4
		.LVL664:
		.L441:
		.L423:
		.LBB753:
		.LBB745:
		.LBB716:
		.LBB717:
				call	_imp_readsymbol, 0
				 add	%g1, %i5, %o0
		.LVL665:
		.LBE717:
		.LBE716:
				ldub	[%g1+5], %g2
				cmp	%g2, %g4
				bne,a,pt %icc, .L432
				 ldx	[%g1], %g1
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				lduw	[%g1+8], %g2
				st	%g2, [%i0+8]
  925                   %RESULT = 1
				lduw	[%g1+12], %g1
		.LVL673:
		.LDL27:
		.LBE715:
		.LBE730:
		.LBB731:
		.LBB732:
				call	_imp_skipsymbol, 0
				 st	%g1, [%i0+12]
		.LVL674:
		.LBE732:
		.LBE731:
  926             %FINISH
  927             LIST == LIST_L
  928          %REPEAT
  929          %RESULT = 0
  930       %END
?I unused
  931       !!
  932       %INTEGERFN PRINT MOVES(%RECORD(LISTF)%NAME LIST)
  933          %RECORD(LISTF)%NAME L
  934          SELECT OUTPUT(2)
  935          LIST == RECORD(SORT AND PRUNE(LIST, 100, -1))
				mov	%i0, %g5
				mov	-1, %o2
				mov	100, %o1
				call	SORTANDPRUNE.6150, 0
				 mov	%i5, %o0
		.LVL687:
				mov	%o0, %l6
				mov	%o0, %l4
		.LVL688:
				mov	%o0, %l5
		.LVL689:
  936          L == LIST
				mov	%o0, %i5
		.L413:
		.LVL690:
		.L439:
		.L414:
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				call	PRINTMOVE.6173, 0
				 mov	%i5, %o0
		.LVL691:
		.LBB737:
		.LBB738:
				call	_imp_newline, 0
				 nop
		.LVL692:
		.LBE738:
		.LBE737:
  939             L == L_L
				ldx	[%i5], %i5
		.LVL693:
  940             %EXIT %IF ADDR(L) = 0
				brnz,pt	%i5, .L439
				 sethi	%hi(_imp_OutStream), %g1
		.L415:
		.LVL694:
		.LBB739:
		.LBB740:
				st	%g0, [%g1+%lo(_imp_OutStream)]
				sethi	%hi(_imp_outfile), %g1
				ldx	[%g1+%lo(_imp_outfile)+8], %g2
				sethi	%hi(_imp_OutFile), %g1
				stx	%g2, [%g1+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %o0
				call	check_outstream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL695:
				sethi	%hi(67584), %l0
				xor	%l0, -16, %l0
				add	%fp, 2047, %g1
				add	%g1, %l0, %l0
		.LBE740:
		.LBE739:
		.LBE734:
		.LBE733:
		.LBB741:
		.LBB696:
				sethi	%hi(68608), %i3
				xor	%i3, -320, %i1
		.LBE696:
		.LBE741:
		.LBE749:
		.LBE761:
				ba,pt	%xcc, .L416
				 add	%g1, %i1, %i1
		.LFE185:
				.section	".rodata"
				.align 8
		__PRETTY_FUNCTION__.5660:
				.asciz	"_imp_SELECTOUTPUT"
				.align 8
		MOVE.6405:
				.xword	.L260
				.xword	.L263
				.xword	.L267
				.xword	.L278
				.xword	.L268
				.xword	.L286
				.align 4
		KCASCH.6401:
				.long	1
				.long	0
				.long	8
				.align 8
		__PRETTY_FUNCTION__.5656:
				.asciz	"_imp_SELECTINPUT"
				.align 4
		PINX.6101:
				.skip	128
				.align 4
		PINY.6102:
				.skip	128
				.common	PINPT.6105,4,4
				.common	PX.6106,4,4
				.common	PY.6107,4,4
				.common	KMOVE.6121,3,8
				.common	KCAS.6122,12,4
				.common	SCOREA.6133,4,4
				.common	XDEPTH.6134,4,4
				.common	JUSTONEPLY.6137,4,4
				.common	LASTCHK.6139,4,4
				.section	".data"
				.align 4
		NO.6132:
				.long	1
				.common	TIME.6129,8,8
				.common	TIME2.6130,8,8
				.common	BRD.6073,1024,4
				.common	MON.6136,4,4
				.common	PDEPTH.6135,4,4
				.section	".text"
		.Letext0:
  941          %REPEAT
  942          SELECT OUTPUT(0)
  943          %RESULT = ADDR(LIST)
  944       %END
  945
  946       %ROUTINE YOUR MOVE
  947          %INTEGER %FN READM(%INTEGERNAME X, Y)
		.LVL233:
				save	%sp, -192, %sp
		.LVL234:
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
		.L118:
		.LBB373:
		.LBB374:
				call	_imp_nextsymbol, 0
				 nop
		.LVL235:
		.LBE374:
		.LBE373:
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  950             READSYMBOL(I)
				cmp	%o0, 10
				bne,pn	%icc, .L119
				 nop
		.LBB375:
		.LBB376:
				call	_imp_skipsymbol, 0
				 nop
		.LVL236:
				ba,pt	%xcc, .L118
				 nop
		.L119:
		.LVL237:
		.LBE376:
		.LBE375:
		.LBB377:
		.LBB378:
				call	_imp_readsymbol, 0
				 add	%fp, 2031, %o0
		.LVL238:
		.L120:
		.LBE378:
		.LBE377:
		.LBB379:
		.LBB380:
				call	_imp_nextsymbol, 0
				 nop
		.LVL239:
		.LBE380:
		.LBE379:
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  952             READSYMBOL(J)
				cmp	%o0, 10
				bne,pn	%icc, .L121
				 nop
		.LBB381:
		.LBB382:
				call	_imp_skipsymbol, 0
				 nop
		.LVL240:
				ba,pt	%xcc, .L120
				 nop
		.L121:
		.LVL241:
		.LBE382:
		.LBE381:
		.LBB383:
		.LBB384:
				call	_imp_readsymbol, 0
				 add	%fp, 2035, %o0
		.LVL242:
		.LBE384:
		.LBE383:
  953             X = I-'A'+1;  Y = J-'0'
				lduw	[%fp+2031], %g1
				add	%g1, -64, %g1
				st	%g1, [%i0]
  954             %RESULT = 0
				lduw	[%fp+2035], %g1
				add	%g1, -48, %g1
				st	%g1, [%i1]
  955          %END
				mov	0, %i0
		.LVL243:
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L123
				 nop
				return	%i7+8
				 nop
		.L123:
				call	__stack_chk_fail, 0
				 nop
		.LVL244:
				nop
		.LFE207:
				.section	".rodata"
		.LC21:
				.byte	21
				.asciz	"OUT OF FREE CELLS!!!\n"
				.skip	233
		.LC23:
				.byte	6
				.asciz	"SCORE:"
				.skip	248
		.LC22:
				.byte	3
				.asciz	"---"
				.skip	251
				.section	".text"
				.align 4
				.proc	04
		DOM.6414:
		.LFB194:
  956
  957          %INTEGER I, X, Y, X0, Y0, K
  958          %RECORD(LISTF)%NAME LIST
  959          !!
  960          JUST ONE PLY = 1;              ! DONT ALLOW LOOK AHEAD (NO POINT)
				mov	1, %g1
				st	%g1, [%i4+%lo(JUSTONEPLY.6137)]
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				add	%fp, 2047, %g1
				add	%g1, %i0, %i0
		.LBB671:
				mov	%i0, %g5
				mov	0, %o1
				call	MOVES.6156, 0
				 mov	-1, %o0
		.LVL684:
				mov	%o0, %i5
  962          JUST ONE PLY = 0
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				brz,pn	%o0, .L449
				 st	%g0, [%i4+%lo(JUSTONEPLY.6137)]
		.L412:
		.LVL685:
		.LBB733:
		.LBB734:
		.LBB735:
		.LBB736:
				sethi	%hi(_imp_OutStream), %g1
		.L450:
				mov	2, %g2
				st	%g2, [%g1+%lo(_imp_OutStream)]
				sethi	%hi(_imp_outfile), %g1
				ldx	[%g1+%lo(_imp_outfile)+584], %g2
				sethi	%hi(_imp_OutFile), %g1
				stx	%g2, [%g1+%lo(_imp_OutFile)]
				sethi	%hi(__PRETTY_FUNCTION__.5660), %o0
				call	check_outstream, 0
				 or	%o0, %lo(__PRETTY_FUNCTION__.5660), %o0
		.LVL686:
		.LBE736:
		.LBE735:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				mov	-1, %o1
				call	TELL.6169, 0
				 mov	0, %o0
		.LVL617:
		.LBE743:
		.LBE751:
				ba,pt	%xcc, .L450
				 sethi	%hi(_imp_OutStream), %g1
		.L442:
		.LBB752:
		.LBB744:
		.LBB673:
		.LBB674:
				call	_imp_skipsymbol, 0
				 xor	%l3, -528, %i5
		.LVL618:
		.LBE674:
		.LBE673:
		.LBB675:
  965 AGAIN:
  966          LM_SPEC = 0
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				cmp	%o0, 77
				be,pn	%icc, .L442
				 nop
		.L417:
		.LBB701:
		.LBB702:
				call	_imp_nextsymbol, 0
				 nop
		.LVL652:
		.LBE702:
		.LBE701:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				mov	256, %o2
				sethi	%hi(.LC8), %o1
				or	%o1, %lo(.LC8), %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL619:
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL620:
		.LBE675:
				mov	256, %o2
				mov	%i5, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL621:
				call	PROMPT, 0
				 mov	%i1, %o0
		.LVL622:
  970             PROMPT("Move?")
				sethi	%hi(MON.6136), %o0
				call	_imp_readint, 0
				 or	%o0, %lo(MON.6136), %o0
		.LVL623:
		.LBB676:
		.LBB677:
				call	_imp_skipsymbol, 0
				 xor	%l3, -784, %i5
		.LVL624:
		.LBE677:
		.LBE676:
		.LBB678:
				mov	256, %o2
				sethi	%hi(.LC7), %o1
				or	%o1, %lo(.LC7), %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL625:
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL626:
		.LBE678:
				mov	256, %o2
				mov	%i5, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL627:
				call	PROMPT, 0
				 mov	%i1, %o0
		.LVL628:
				ba,pt	%xcc, .L416
				 nop
		.L443:
		.LBB679:
		.LBB680:
				call	_imp_skipsymbol, 0
				 nop
		.LVL629:
		.LBE680:
		.LBE679:
		.LBB681:
		.LBB682:
				call	_imp_skipsymbol, 0
				 nop
		.LVL630:
				ba,pt	%xcc, .L419
				 nop
		.L444:
		.LBE682:
		.LBE681:
		.LBB683:
  971             ->AGAIN
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				cmp	%o0, 88
				be,pn	%icc, .L443
				 nop
		.L419:
		.LBB703:
		.LBB704:
				call	_imp_nextsymbol, 0
				 nop
		.LVL653:
		.LBE704:
		.LBE703:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				cmp	%o0, 80
				be,pn	%icc, .L444
				 mov	256, %o2
		.L420:
		.LBB705:
		.LBB706:
				call	_imp_nextsymbol, 0
				 nop
		.LVL654:
		.LBE706:
		.LBE705:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				sethi	%hi(.LC9), %o1
				or	%o1, %lo(.LC9), %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL631:
				xor	%l1, -16, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL632:
		.LBE683:
				mov	256, %o2
				mov	%i5, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL633:
				call	PROMPT, 0
				 mov	%i1, %o0
		.LVL634:
		.LBB684:
		.LBB685:
				call	_imp_skipsymbol, 0
				 xor	%l1, -272, %i5
		.LVL635:
		.LBE685:
		.LBE684:
  978             READ(PDEPTH); SKIPSYMBOL
				sethi	%hi(PDEPTH.6135), %o0
				call	_imp_readint, 0
				 or	%o0, %lo(PDEPTH.6135), %o0
		.LVL636:
		.LBB686:
		.LBB687:
				call	_imp_skipsymbol, 0
				 nop
		.LVL637:
		.LBE687:
		.LBE686:
		.LBB688:
  979             PROMPT("Move?")
				mov	256, %o2
				sethi	%hi(.LC7), %o1
				or	%o1, %lo(.LC7), %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL638:
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL639:
		.LBE688:
				mov	256, %o2
				mov	%i5, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL640:
				call	PROMPT, 0
				 mov	%i1, %o0
		.LVL641:
				ba,pt	%xcc, .L416
				 nop
		.L445:
  980             -> AGAIN
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				cmp	%o0, 79
				be,pn	%icc, .L445
				 xor	%i3, -48, %o1
		.L421:
  983             X = 0
				xor	%i3, -52, %g1
				add	%fp, 2047, %g2
		.LBB689:
		.LBB690:
				call	_imp_skipsymbol, 0
				 st	%g0, [%g2+%g1]
		.LVL642:
		.LBE690:
		.LBE689:
		.LBB691:
		.LBB692:
				xor	%i3, -56, %i5
				add	%fp, 2047, %g1
				call	_imp_readsymbol, 0
				 add	%g1, %i5, %o0
		.LVL643:
		.LBE692:
		.LBE691:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				add	%fp, 2047, %g1
				lduw	[%g1+%i5], %g1
				cmp	%g1, 45
				be,pn	%icc, .L441
				 add	%fp, 2047, %g1
		.L422:
		.L429:
		.LBB693:
				mov	256, %o2
		.L453:
				mov	%l2, %o1
				call	memcpy, 0
				 mov	%i2, %o0
		.LVL644:
				xor	%l1, -528, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i5
				mov	256, %o2
				mov	%i2, %o1
				call	memcpy, 0
				 mov	%i5, %o0
		.LVL645:
				mov	256, %o2
				mov	%i5, %o1
				call	memcpy, 0
				 mov	%l0, %o0
		.LVL646:
		.LBE693:
		.LBB694:
		.LBB695:
				mov	256, %o2
				mov	%l0, %o1
				call	memcpy, 0
				 mov	%i1, %o0
		.LVL647:
				call	_imp_printstring, 0
				 mov	%i1, %o0
		.LVL648:
		.LBE695:
		.LBE694:
		.LBB697:
		.LBB698:
				xor	%i3, -56, %i5
				add	%fp, 2047, %g1
				add	%g1, %i5, %i4
		.L430:
		.L440:
		.L431:
		.LVL649:
				call	_imp_readsymbol, 0
				 mov	%i4, %o0
		.LVL650:
		.LBE698:
		.LBE697:
  986             READSYMBOL(I); -> NO %IF I#'O'
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				add	%fp, 2047, %g1
				lduw	[%g1+%i5], %g1
				cmp	%g1, 79
				bne,pt	%icc, .L453
				 mov	256, %o2
		.L424:
		.LBB718:
		.LBB719:
				call	_imp_nextsymbol, 0
				 nop
		.LVL666:
		.LBE719:
		.LBE718:
				cmp	%o0, 45
				be,pn	%icc, .L447
				 xor	%i3, -52, %g1
		.L425:
		.L451:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				mov	1, %g2
				add	%fp, 2047, %g3
		.LBB720:
		.LBB721:
				call	_imp_skipsymbol, 0
				 st	%g2, [%g3+%g1]
		.LVL667:
		.LBE721:
		.LBE720:
		.LBB722:
		.LBB723:
				call	_imp_skipsymbol, 0
				 nop
		.LVL668:
		.LBE723:
		.LBE722:
		.LBE746:
		.LBE754:
  989             %FINISH
  990             LM_SPEC = 6+X
				add	%fp, 2047, %g2
				lduw	[%g2+%g1], %g1
				add	%g1, 6, %g1
				st	%g1, [%i0+8]
				ba,pt	%xcc, .L451
				 xor	%i3, -52, %g1
		.L446:
		.LBB755:
		.LBB747:
		.LBB724:
		.LBB725:
				call	_imp_skipsymbol, 0
				 xor	%i3, -36, %i5
		.LVL669:
		.LBE725:
		.LBE724:
		.LBB726:
		.LBB727:
				add	%fp, 2047, %g1
				call	_imp_readsymbol, 0
				 add	%g1, %i5, %o0
		.LVL670:
		.LBE727:
		.LBE726:
		.LBB728:
		.LBB729:
				call	_imp_skipsymbol, 0
				 nop
		.LVL671:
		.LBE729:
		.LBE728:
  991             LM_FR = 5<<4+1
				mov	81, %g1
				stb	%g1, [%i0+4]
		.LBE745:
		.LBE753:
  992             LM_TO = 5<<4+1
				ba,pt	%xcc, .L426
				 stb	%g1, [%i0+5]
		.L447:
		.LBB754:
		.LBB746:
  993          %FINISHELSESTART
  994             I = READM(X, Y);  I=READM(X0, Y0)
				xor	%i3, -52, %o0
				add	%fp, 2047, %g1
				add	%g1, %o1, %o1
				call	READM.6697, 0
				 add	%g1, %o0, %o0
		.LVL655:
				xor	%i3, -56, %i5
				add	%fp, 2047, %g1
				st	%o0, [%g1+%i5]
  995             %IF NEXTSYMBOL='(' %START
				xor	%i3, -40, %o1
				xor	%i3, -44, %o0
				add	%g1, %o1, %o1
				call	READM.6697, 0
				 add	%g1, %o0, %o0
		.LVL656:
				add	%fp, 2047, %g1
		.LBB707:
		.LBB708:
				call	_imp_nextsymbol, 0
				 st	%o0, [%g1+%i5]
		.LVL657:
		.LBE708:
		.LBE707:
				cmp	%o0, 40
				be,pn	%icc, .L446
				 nop
		.L427:
		.LBB709:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				add	%fp, 2047, %g1
				lduw	[%g1+%i5], %g2
				mov	48, %g1
				sub	%g1, %g2, %g1
		.LBE747:
		.LBE755:
				ba,pt	%xcc, .L427
				 st	%g1, [%i0+8]
		.LVL672:
		.L432:
		.LDL26:
		.L454:
		.LBB756:
		.LBB748:
		.LBB730:
		.LBB715:
  998             %FINISH
  999
 1000             %UNLESS 0<X<9 %AND 0<X0<9 %AND %C
 1001                     0<Y<9 %AND 0<Y0<9 %START
 1002 NO:            PRINTSTRING("INVALID MOVE - MY FORMAT IS D2D4
 1003 ")
				sethi	%hi(66560), %l1
				xor	%l1, -784, %i2
		.LBE671:
		.LBE670:
		.LBE669:
				xor	%i3, -52, %g1
				add	%fp, 2047, %g2
				lduw	[%g2+%g1], %g1
		.LVL658:
 1004                %CYCLE
 1005                   READSYMBOL(I)
				add	%g1, -1, %g2
				cmp	%g2, 7
				bgu,pn	%icc, .L429
				 xor	%i3, -44, %g2
		.LBE709:
		.LBB710:
 1006                   %EXIT %IF I=NL
				add	%fp, 2047, %g1
				lduw	[%g1+%i5], %g1
				cmp	%g1, 10
				bne,pt	%icc, .L440
				 nop
		.L416:
		.LBB699:
		.LBB700:
				call	_imp_nextsymbol, 0
				 st	%g0, [%i0+8]
		.LVL651:
		.LBE700:
		.LBE699:
 1007                %REPEAT
 1008                ->AGAIN
 1009             %FINISH
 1010
				add	%fp, 2047, %g3
				lduw	[%g3+%g2], %g2
		.LVL659:
 1011             !!
 1012             LM_FR = X<<4+Y
				add	%g2, -1, %g3
				cmp	%g3, 7
				bgu,pn	%icc, .L429
				 xor	%i3, -48, %g3
		.LBE710:
		.LBB711:
				add	%g1, %g3, %g1
				stb	%g1, [%i0+4]
 1013             LM_TO = X0<<4+Y0
				sll	%g2, 4, %g1
				add	%g1, %g4, %g1
				stb	%g1, [%i0+5]
		.LVL663:
		.L426:
		.LBB713:
		.LBB714:
 1014          %FINISH
 1015          MMOVE_L == LM
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
 1017          SKIPSYMBOL
				add	%fp, 2047, %g4
				lduw	[%g4+%g3], %g3
		.LVL660:
 1018          RELEASE CHAIN(LIST)
				mov	%i0, %g5
				call	RELEASECHAIN.6213, 0
				 mov	%l6, %o0
		.LVL675:
		.LBE748:
		.LBE756:
 1019       %END
				add	%g3, -1, %g4
				cmp	%g4, 7
				bgu,pn	%icc, .L429
				 xor	%i3, -40, %g4
		.LBE711:
		.LBB712:
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
				add	%fp, 2047, %g5
				lduw	[%g5+%g4], %g4
		.LVL661:
				add	%g4, -1, %g5
				cmp	%g5, 7
				bgu,pn	%icc, .L429
				 sll	%g1, 4, %g1
		.L428:
		.LVL662:
		.LBE712:
