         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.machinemode zarch
				.machine "zEC12"
		.text
		.Ltext0:
				.align	8
		RELEASECHAIN.6846:
		.LFB186:
		.LVL582:
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-69096(%r15)
				aghi	%r14,-8
				std	%f8,0(%r14)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				lay	%r4,69080(%r15)
				mvc	0(8,%r4),40(%r1)
				lay	%r1,69256(%r15)
				stg	%r1,5056(%r15)
    2       %CONSTINTEGER BIT = X'80000000'
				brasl	%r14,_imp_initialise@PLT
		.LVL583:
    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
				larl	%r1,.LC0
				lay	%r2,4696(%r15)
				mvc	0(24,%r2),0(%r1)
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				larl	%r1,.LC1
				lay	%r2,4440(%r15)
				mvc	0(256,%r2),0(%r1)
   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
				mviy	5040(%r15),2
				mviy	5041(%r15),3
				mviy	5042(%r15),6
				mviy	5043(%r15),7
				mviy	5044(%r15),58
				mviy	5045(%r15),59
				mviy	5046(%r15),62
				mviy	5047(%r15),63
				mviy	5048(%r15),1
				mviy	5049(%r15),8
				mviy	5050(%r15),57
				mviy	5051(%r15),64
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				larl	%r1,.LC3
				lay	%r2,4392(%r15)
				mvc	0(48,%r2),0(%r1)
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				larl	%r1,.LC4
				lay	%r2,4344(%r15)
				mvc	0(48,%r2),0(%r1)
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				lay	%r1,5028(%r15)
				mvhi	0(%r1),-24000
				lay	%r1,5032(%r15)
				mvhi	0(%r1),0
				lay	%r1,5036(%r15)
				mvhi	0(%r1),24000
		.LVL584:
				aghik	%r1,%r15,5080
				lghi	%r2,4000
		.LVL585:
		.L412:
		.LBB641:
   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)
				stg	%r1,-16(%r1)
		.LDL21:
				aghi	%r1,16
  105       %REPEAT
  106       FREELIST == LISTA(0)
				aghik	%r1,%r15,5064
				stg	%r1,4336(%r15)
		.LVL586:
		.LBB642:
		.LBB643:
				lgrl	%r1,_imp_InStream@GOTENT
				mvhi	0(%r1),1
				lgrl	%r1,_imp_InFile@GOTENT
				lgrl	%r2,_imp_infile@GOTENT
				lg	%r2,296(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6289
				brasl	%r14,check_instream@PLT
		.LVL587:
				aghik	%r10,%r15,4976
				lghi	%r11,13
		.LVL588:
		.L414:
		.LBE643:
		.LBE642:
  107       !!
  108       SELECTINPUT(1)
				brctg	%r2,.L412
		.L413:
		.LBE641:
  109       %CYCLE I = -6, 1, 6
  110          READ(VAL(I))
				lgr	%r2,%r10
				brasl	%r14,_imp_readint@PLT
		.LVL589:
		.LDL22:
				aghi	%r10,4
  111       %REPEAT
  112       READ(PDEPTH)
				brctg	%r11,.L414
		.L415:
				larl	%r2,PDEPTH.6768
				brasl	%r14,_imp_readint@PLT
		.LVL590:
  113       READ(MON);  READ(PLAY)
				larl	%r2,MON.6769
				brasl	%r14,_imp_readint@PLT
		.LVL591:
  114       I = 1
				aghik	%r2,%r15,420
				brasl	%r14,_imp_readint@PLT
		.LVL592:
				larl	%r9,BRD.6706
				lhi	%r10,0
		.LVL593:
		.L418:
				lgr	%r11,%r9
				lhi	%r8,8
		.LVL594:
		.L416:
  115       %CYCLE Y = 1,1,8
  116          %CYCLE X = 1,1,8
  117             SQ == BRD(Y)_R(X)
  118             READ(SQ_P)
				lgr	%r2,%r11
				brasl	%r14,_imp_readint@PLT
		.LVL595:
				cijlh	%r10,64,.L418
		.L417:
		.LVL600:
		.LBB644:
		.LBB645:
				lgrl	%r1,_imp_InStream@GOTENT
				mvhi	0(%r1),0
				lgrl	%r1,_imp_InFile@GOTENT
				lgrl	%r2,_imp_infile@GOTENT
		.LVL601:
				lg	%r2,8(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6289
				brasl	%r14,check_instream@PLT
		.LVL602:
		.LBE645:
		.LBE644:
  119             SQI(I)_SQ == SQ
				lgfr	%r1,%r10
				aghik	%r2,%r1,68
				sllg	%r2,%r2,3
				stg	%r11,3280(%r2,%r15)
				brct	%r8,.L416
		.LDL24:
		.LDL25:
		.LVL599:
				aghi	%r9,128
  120             PT(I)_P == SQ_P; I = I+1
				aghi	%r1,4
				sllg	%r1,%r1,3
				stg	%r11,3280(%r1,%r15)
		.LDL23:
		.LVL596:
				aghi	%r11,16
		.LVL597:
				ahi	%r10,1
		.LVL598:
  121          %REPEAT
  122       %REPEAT
  123       SELECT INPUT(0)
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
  125       LM_SCORE = 0;  LM_CHK = 0
				mvhi	448(%r15),0
				mvhi	3288(%r15),0
  126       MMOVE_L == LM
				mvhi	3292(%r15),0
				aghik	%r1,%r15,3280
				stg	%r1,3296(%r15)
		.LBB646:
  127       PRINTSTRING("Version 2.5
				larl	%r1,.LC7
				mvc	3024(256,%r15),0(%r1)
				mvc	464(256,%r15),3024(%r15)
				mvc	1232(256,%r15),464(%r15)
		.LBE646:
		.LBB647:
		.LBB648:
				mvc	160(256,%r15),1232(%r15)
				aghik	%r11,%r15,160
		.LVL603:
				lgr	%r2,%r11
				brasl	%r14,_imp_printstring@PLT
		.LVL604:
		.LBE648:
		.LBE647:
		.LBB649:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				larl	%r1,.LC8
				mvc	3024(256,%r15),0(%r1)
				mvc	720(256,%r15),3024(%r15)
		.LBE649:
				mvc	160(256,%r15),720(%r15)
				lgr	%r2,%r11
				brasl	%r14,PROMPT@PLT
		.LVL605:
  132       READ(PDEPTH); SKIPSYMBOL
				larl	%r2,PDEPTH.6768
				brasl	%r14,_imp_readint@PLT
		.LVL606:
		.LBB650:
		.LBB651:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL607:
		.LBE651:
		.LBE650:
		.LBB652:
  133       PROMPT("Move?")
				larl	%r1,.LC9
				mvc	3024(256,%r15),0(%r1)
				mvc	976(256,%r15),3024(%r15)
		.LBE652:
				mvc	160(256,%r15),976(%r15)
				lgr	%r2,%r11
				brasl	%r14,PROMPT@PLT
		.LVL608:
  134       PRINTBOARD
				brasl	%r14,PRINTBOARD.6804
		.LVL609:
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				brasl	%r14,CPUTIME@PLT
		.LVL610:
				larl	%r1,TIME2.6763
				std	%f0,0(%r1)
		.LBB653:
		.LBB654:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				l	%r1,420(%r15)
				chi	%r1,1
				je	.L462
		.L421:
		.LBB733:
		.LBB727:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				aghik	%r9,%r15,448
				lgr	%r0,%r6
				lgr	%r4,%r9
				lghi	%r3,0
				lghi	%r2,-1
				brasl	%r14,NPLY.6779
		.LVL612:
				stg	%r2,448(%r15)
  144             TELL(MOVE_L, -1)
				lghi	%r3,-1
				brasl	%r14,TELL.6802
		.LVL613:
  145             I =CHANGE BOARD(MOVE)
				lgr	%r2,%r9
				brasl	%r14,CHANGEBOARD.6794
		.LVL614:
  146          %FINISHELSESTART
				j	.L422
		.L463:
		.LBB728:
		.LBB726:
  147             YOURMOVE
  148             BURP(MMOVE, -1)
				lghi	%r3,-1
				la	%r2,3296(%r15)
				brasl	%r14,BURP.6799
		.LVL662:
		.L422:
  149          %FINISH
  150          TIME = CPUTIME
				brasl	%r14,CPUTIME@PLT
		.LVL663:
				larl	%r1,TIME.6762
				std	%f0,0(%r1)
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				lgr	%r0,%r6
				lg	%r4,3296(%r15)
				lghi	%r3,0
				lghi	%r2,1
				brasl	%r14,NPLY.6779
		.LVL664:
				stg	%r2,448(%r15)
  152          BURP(MOVE, +1)
				lghi	%r3,1
				la	%r2,448(%r15)
				brasl	%r14,BURP.6799
		.LVL665:
  153          PRINTBOARD
				brasl	%r14,PRINTBOARD.6804
		.LVL666:
		.LBB729:
		.LBB730:
				lgrl	%r13,_imp_OutStream@GOTENT
				mvhi	0(%r13),2
				lgrl	%r9,_imp_OutFile@GOTENT
				lgrl	%r8,_imp_outfile@GOTENT
				lg	%r1,584(%r8)
				stg	%r1,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL667:
		.LBE730:
		.LBE729:
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
  155          NO = NO+1
				brasl	%r14,PRINTBOARD.6804
		.LVL668:
		.LBB731:
		.LBB732:
				mvhi	0(%r13),0
				lg	%r1,8(%r8)
				stg	%r1,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL669:
		.LBE732:
		.LBE731:
				lrl	%r1,NO.6765
				ahi	%r1,1
				strl	%r1,NO.6765
		.L420:
  156       %REPEAT
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
		.LVL0:
				lgr	%r4,%r0
		.LVL1:
				lgr	%r1,%r2
				j	.L2
		.LVL2:
		.L4:
  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
				lgr	%r1,%r3
		.LVL3:
		.L2:
				ltg	%r3,0(%r1)
				jne	.L4
		.L3:
  165          %REPEAT
  166          L_L == FREELIST
				lg	%r3,1056(%r4)
				stg	%r3,0(%r1)
  167          FREELIST == RECORD(ADDR(L2))
				stg	%r2,1056(%r4)
  168       %END
  169       !!
				br	%r14
		.LFE186:
				.align	8
		CHANGEBOARD.6794:
		.LFB196:
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
		.LVL508:
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-3240(%r15)
				aghi	%r14,-32
				std	%f8,0(%r14)
				std	%f10,8(%r14)
				std	%f12,16(%r14)
				std	%f14,24(%r14)
				lgr	%r9,%r2
				stg	%r2,192(%r15)
				stg	%r4,184(%r15)
				ldgr	%f8,%r0
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	3200(8,%r15),40(%r1)
  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)
				larl	%r1,.LC30
				mvc	724(44,%r15),0(%r1)
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				strl	%r3,XDEPTH.6767
  179          DEPTH = DEPTH+1
				ahik	%r10,%r3,1
				lgfr	%r3,%r10
		.LVL509:
				stg	%r3,168(%r15)
		.LVL510:
  180          SWIDTH = XWIDTH(DEPTH)
				sllg	%r1,%r3,2
		.LVL511:
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
  182          LAST CHK = CHAIN_CHK
				larl	%r3,PDEPTH.6768
				c	%r10,0(%r3)
				lhi	%r6,1
				la	%r1,724(%r1,%r15)
		.LVL512:
				locne	%r6,0(%r1)
		.L366:
		.LVL513:
				l	%r1,12(%r4)
				strl	%r1,LASTCHK.6772
		.LVL514:
		.LBB516:
		.LBB517:
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
  184          I = 1
  185          B(1)_L == RECORD(0)
				mvghi	2560(%r15),0
		.LVL518:
  186          FLAG = 0
				mvhi	176(%r15),0
  187          %WHILE ADDR(LIST)#0 %CYCLE
  188             BPT == B(I)
				cije	%r2,0,.L367
				lgr	%r11,%r2
				cgije	%r11,0,.L369
		.LVL522:
		.L368:
				sllg	%r7,%r10,4
  189             BPT_L == LIST
				aghik	%r8,%r15,2560
				stg	%r11,-32(%r7,%r8)
  190             LIST == LIST_L
				lg	%r11,0(%r11)
		.LVL523:
  191             %IF MON#0 %START
				larl	%r1,MON.6769
				lt	%r1,0(%r1)
				jne	.L399
		.L370:
  192                SELECT OUTPUT(2)
  193                SPACES(DEPTH*3)
				sllk	%r3,%r10,1
				ark	%r1,%r3,%r10
				st	%r1,180(%r15)
				lghi	%r10,2
		.LVL519:
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				lghi	%r3,1
				lg	%r2,168(%r15)
				brasl	%r14,_imp_writeint@PLT
		.LVL533:
		.LBB529:
		.LBB530:
				lghi	%r2,2
				brasl	%r14,_imp_spaces@PLT
		.LVL534:
		.LBE530:
		.LBE529:
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				larl	%r1,LASTCHK.6772
				lt	%r1,0(%r1)
				jne	.L401
		.L371:
		.LBB531:
		.LBB532:
				brasl	%r14,_imp_newline@PLT
		.LVL536:
		.LBE532:
		.LBE531:
		.LBB533:
		.LBB534:
				lgrl	%r1,_imp_OutStream@GOTENT
				mvhi	0(%r1),0
				lgrl	%r1,_imp_OutFile@GOTENT
				lgrl	%r2,_imp_outfile@GOTENT
				lg	%r2,8(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL537:
				j	.L370
		.LVL538:
		.L401:
		.LBE534:
		.LBE533:
		.LBB535:
  196                NEWLINE
				lg	%r2,-32(%r7,%r8)
				brasl	%r14,PRINTMOVE.6806
		.LVL535:
				larl	%r1,.LC31
				mvc	1792(256,%r15),0(%r1)
				mvc	768(256,%r15),1792(%r15)
				mvc	2048(256,%r15),768(%r15)
		.LBE535:
		.LBB536:
		.LBB537:
				mvc	464(256,%r15),2048(%r15)
				aghik	%r2,%r15,464
				brasl	%r14,_imp_printstring@PLT
		.LVL539:
				j	.L371
		.LVL540:
		.L400:
				la	%r1,2528(%r7,%r15)
				ldgr	%f14,%r1
		.LBE537:
		.LBE536:
  197                SELECT OUTPUT(0)
  198             %FINISH
  199             I = I+1
				lr	%r9,%r10
		.LVL524:
  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'
				lr	%r1,%r9
				xilf	%r1,4294967294
  203             %IF DEPTH < PDEPTH %START
				lrl	%r1,PDEPTH.6768
				c	%r1,172(%r15)
				jh	.L400
		.L372:
		.LVL525:
		.L374:
  204
  205                CI = CHANGE BOARD(BPT)
				lgr	%r2,%r1
				brasl	%r14,CHANGEBOARD.6794
		.LVL541:
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				lgfr	%r1,%r1
				ldgr	%f12,%r1
				lgdr	%r0,%f8
				lg	%r4,-32(%r7,%r8)
				lg	%r3,168(%r15)
				lgdr	%r2,%f12
				brasl	%r14,NPLY.6779
		.LVL542:
				lgr	%r13,%r2
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				lg	%r1,184(%r15)
				l	%r1,12(%r1)
				strl	%r1,LASTCHK.6772
  208                RESTORE BOARD(BPT)
				lgdr	%r2,%f14
				brasl	%r14,RESTOREBOARD.6796
		.LVL543:
  209                %UNLESS ADDR(LISTX)=0 %START
				cgijlh	%r13,0,.L402
		.L373:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				lg	%r1,-32(%r7,%r8)
				l	%r2,8(%r13)
				st	%r2,8(%r1)
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				lgdr	%r0,%f8
				lgr	%r2,%r13
				brasl	%r14,RELEASECHAIN.6846
		.LVL544:
  212                %FINISHELSESTART
				asi	176(%r15),1
		.LVL545:
				j	.L374
		.L376:
		.LVL546:
		.L379:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				lr	%r1,%r9
				ahi	%r1,1
				lgfr	%r1,%r1
				aghi	%r1,436
				ldgr	%f10,%r1
				j	.L368
		.LVL520:
		.L391:
				lg	%r1,-32(%r7,%r8)
				lgdr	%r2,%f10
				sllg	%r2,%r2,2
				lgdr	%r3,%f8
				l	%r2,4(%r2,%r3)
				st	%r2,8(%r1)
				j	.L374
		.L402:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				crjhe	%r6,%r9,.L375
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
				l	%r1,176(%r15)
				cijlh	%r1,0,.L379
  219             %IF MON # 0 %START
				cije	%r9,2,.L377
		.L378:
				larl	%r1,MON.6769
				lt	%r1,0(%r1)
				je	.L391
		.LVL526:
		.LBB518:
		.LBB519:
				lgrl	%r13,_imp_OutStream@GOTENT
				mvhi	0(%r13),2
				lgrl	%r7,_imp_OutFile@GOTENT
				lgrl	%r1,_imp_outfile@GOTENT
				stg	%r1,200(%r15)
				lg	%r2,584(%r1)
				stg	%r2,0(%r7)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL527:
		.LBE519:
		.LBE518:
		.LBB520:
  220                SELECT OUTPUT(2)
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				larl	%r1,.LC32
				mvc	1792(256,%r15),0(%r1)
				mvc	1024(256,%r15),1792(%r15)
				mvc	2304(256,%r15),1024(%r15)
		.LBE520:
		.LBB521:
		.LBB522:
				mvc	464(256,%r15),2304(%r15)
				aghik	%r2,%r15,464
				brasl	%r14,_imp_printstring@PLT
		.LVL528:
		.LBE522:
		.LBE521:
		.LBB523:
		.LBB524:
				mvhi	0(%r13),0
				lg	%r1,200(%r15)
				lg	%r1,8(%r1)
				stg	%r1,0(%r7)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL529:
				j	.L375
		.LVL530:
		.L399:
		.LBE524:
		.LBE523:
		.LBB525:
		.LBB526:
				lgrl	%r1,_imp_OutStream@GOTENT
				mvhi	0(%r1),2
				lgrl	%r1,_imp_OutFile@GOTENT
				lgrl	%r2,_imp_outfile@GOTENT
				lg	%r2,584(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL531:
		.LBE526:
		.LBE525:
		.LBB527:
		.LBB528:
				lgf	%r2,180(%r15)
				brasl	%r14,_imp_spaces@PLT
		.LVL532:
		.LBE528:
		.LBE527:
  222 ")
  223                SELECT OUTPUT(0)
  224             %FINISH
				st	%r1,176(%r15)
		.LVL521:
		.L375:
				aghi	%r10,1
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				cgije	%r11,0,.L369
		.LVL547:
		.L389:
				cgijlh	%r11,0,.L389
		.LVL569:
		.L388:
  229          LIST == RECORD(0)
				lgdr	%r0,%f8
				lgr	%r2,%r11
				brasl	%r14,RELEASECHAIN.6846
		.LVL548:
		.L369:
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				cije	%r9,1,.L392
		.L380:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				cije	%r9,2,.L388
		.L381:
		.LVL549:
		.LBB538:
		.LBB539:
				lhi	%r1,0
				j	.L367
		.LVL568:
		.L377:
  232          %CYCLE J = 1, 1, I-1
				l	%r1,2564(%r15)
				j	.L367
		.LVL570:
		.L404:
  233             B(J)_L_L == LIST
				lg	%r3,0(%r1)
				stg	%r2,0(%r3)
				aghi	%r1,16
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				ahik	%r1,%r9,-2
		.LVL550:
		.LBE539:
				cijl	%r1,0,.L403
		.LVL551:
		.L382:
				lg	%r2,-16(%r1)
		.LVL555:
				lgrl	%r1,_imp_current_file@GOTENT
		.LVL560:
				ltg	%r3,0(%r1)
				je	.L383
				la	%r2,1536(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL561:
		.L384:
				lgrl	%r1,_imp_current_line@GOTENT
				lt	%r11,0(%r1)
				ltr	%r11,%r11
				lhi	%r1,234
				locrne	%r1,%r11
				lr	%r11,%r1
				larl	%r3,.LC40
				la	%r2,1792(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL562:
				mvc	464(256,%r15),1536(%r15)
				mvc	208(256,%r15),1792(%r15)
				mvghi	160(%r15),0
				lghi	%r6,1
		.LVL563:
				lghi	%r5,5
				la	%r4,208(%r15)
				lgfr	%r3,%r11
				la	%r2,464(%r15)
				brasl	%r14,_signal_event@PLT
		.LVL564:
				j	.L382
		.LVL565:
		.L383:
		.LBB540:
				larl	%r1,.LC6
				mvc	1792(256,%r15),0(%r1)
				mvc	1280(256,%r15),1792(%r15)
		.LBE540:
				mvc	1536(256,%r15),1280(%r15)
				j	.L384
		.LVL566:
		.L394:
  235          %REPEAT
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				lgdr	%r0,%f8
				lg	%r4,192(%r15)
				lghi	%r3,1
				brasl	%r14,SORTANDPRUNE.6783
		.LVL557:
				lr	%r1,%r2
		.LVL558:
		.L367:
  237                                         ! GET THE 'BEST' RESULT
				cije	%r9,1,.L394
				aghik	%r1,%r15,2560
				ahi	%r9,-2
		.LVL552:
				risbgn	%r9,%r9,28,128+59,4
		.LVL553:
				la	%r4,2576(%r9,%r15)
				lghi	%r2,0
		.LVL554:
		.L387:
				cgrjlh	%r1,%r4,.L387
		.LVL556:
		.L386:
		.LBE538:
				lghi	%r2,0
				j	.L386
		.LVL567:
		.L392:
		.LBE541:
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				lgfr	%r2,%r1
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	3200(8,%r15),40(%r1)
				jne	.L404
				ld	%f8,3208(%r15)
				ld	%f10,3216(%r15)
				ld	%f12,3224(%r15)
				ld	%f14,3232(%r15)
				lg	%r4,3352(%r15)
				lmg	%r6,%r15,3288(%r15)
				br	%r4
		.LVL559:
		.L403:
		.LBB541:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL571:
		.LFE187:
				.align	8
		BURP.6799:
		.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))
				lghi	%r3,0
				brasl	%r14,MOVES.6789
		.LVL515:
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				lgdr	%r0,%f8
				lgr	%r4,%r9
				lgfr	%r3,%r6
				brasl	%r14,SORTANDPRUNE.6783
		.LVL516:
				lr	%r1,%r2
		.LVL517:
		.LBE517:
		.LBE516:
  250          %RESULT = ADDR(LIST)
  251       %END
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
		.LVL123:
				stmg	%r11,%r15,88(%r15)
				lay	%r15,-1088(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1080(8,%r15),40(%r1)
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
				larl	%r1,.LC28
				mvc	444(124,%r15),0(%r1)
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
				larl	%r1,.LC0
				mvc	420(24,%r15),0(%r1)
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
				ahi	%r2,6
		.LVL124:
				lgfr	%r2,%r2
		.LVL125:
				aghi	%r2,424
		.LVL126:
				sllg	%r2,%r2,2
		.LVL127:
				lgr	%r1,%r0
				l	%r11,0(%r2,%r1)
  261          %IF SIDE1<0 %START
				cijl	%r3,0,.L82
		.L74:
				lgr	%r5,%r4
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
				larl	%r1,.LC29
				mvc	824(256,%r15),0(%r1)
				mvc	568(256,%r15),824(%r15)
				mvc	824(256,%r15),568(%r15)
		.LBE313:
		.LBB314:
		.LBB315:
				mvc	160(256,%r15),824(%r15)
				aghik	%r2,%r15,160
		.LVL130:
				brasl	%r14,_imp_printstring@PLT
		.LVL131:
		.LBE315:
		.LBE314:
  263 ")
  264             %RESULT = 0
				lhi	%r11,0
				j	.L75
		.LVL132:
		.L83:
		.L76:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
				cgijlh	%r4,0,.L83
		.LVL128:
		.L75:
  267          NEW=SIDE1>>5
				srlk	%r1,%r3,5
		.LVL133:
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
				cije	%r1,0,.L77
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
				ahi	%r1,-1
		.LVL134:
				lgfr	%r1,%r1
				sllg	%r1,%r1,2
		.LVL135:
				l	%r2,444(%r1,%r15)
		.LVL136:
		.L78:
				ahik	%r1,%r2,-1
				lgfr	%r1,%r1
				sllg	%r1,%r1,2
				lr	%r4,%r3
		.LVL137:
				s	%r4,420(%r1,%r15)
				lgfr	%r4,%r4
				lgr	%r3,%r5
		.LVL138:
				lgfr	%r2,%r2
				brasl	%r14,EXVAL.6901
		.LVL139:
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
				cijl	%r2,0,.L75
		.L79:
  271       %END
				lgfr	%r2,%r11
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	1080(8,%r15),40(%r1)
				jne	.L84
				lg	%r4,1200(%r15)
				lmg	%r11,%r15,1176(%r15)
				br	%r4
		.LVL129:
		.L82:
		.LBB313:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL144:
		.LFE189:
				.section	.rodata
				.align	2
		.LC18:
				.byte	36
				.string	"  !---!---!---!---!---!---!---!---!\n"
				.zero	218
		.text
				.align	8
		LINE.7272:
		.LFB201:
  272       !!
				ahik	%r1,%r3,-1
		.LVL141:
				lgfr	%r1,%r1
				sllg	%r1,%r1,2
				l	%r1,444(%r1,%r15)
				ahik	%r2,%r1,3
		.LVL142:
				j	.L78
		.LVL143:
		.L84:
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
				sr	%r11,%r2
				j	.L75
		.LVL140:
		.L77:
  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
				larl	%r1,PINPT.6738
				lt	%r10,0(%r1)
		.LVL455:
				je	.L327
		.L319:
		.LBE471:
		.LBE470:
  282          %CYCLE I = 1, 1, PIN PT
  283             PX = PINX(I); PY = PINY(I)
				larl	%r7,PINX.6734
				l	%r1,0(%r10,%r7)
				strl	%r1,PX.6739
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				ahik	%r1,%r10,-1
		.LVL457:
		.LBE473:
				cijl	%r1,0,.L347
		.LVL458:
		.L320:
				ahik	%r6,%r10,-1
				lghi	%r10,0
		.LVL459:
				larl	%r8,PINY.6735
				lgrl	%r1,_imp_current_file@GOTENT
		.LVL476:
				ltg	%r3,0(%r1)
				je	.L321
				la	%r2,1824(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL477:
		.L322:
				lgrl	%r1,_imp_current_line@GOTENT
				lt	%r8,0(%r1)
				ltr	%r8,%r8
				lhi	%r1,284
				locrne	%r1,%r8
				lr	%r8,%r1
				larl	%r3,.LC37
				la	%r2,1312(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL478:
				mvc	448(256,%r15),1824(%r15)
				mvc	192(256,%r15),1312(%r15)
				mvghi	160(%r15),0
				lghi	%r6,1
				lghi	%r5,5
				la	%r4,192(%r15)
				lgfr	%r3,%r8
				la	%r2,448(%r15)
				brasl	%r14,_signal_event@PLT
		.LVL479:
				j	.L320
		.L321:
		.LBB474:
				larl	%r1,.LC6
				mvc	1824(256,%r15),0(%r1)
				mvc	1568(256,%r15),1824(%r15)
		.LBE474:
				mvc	1824(256,%r15),1568(%r15)
				j	.L322
		.LVL480:
		.L325:
				aghi	%r10,4
				l	%r1,0(%r10,%r8)
				strl	%r1,PY.6740
				l	%r1,1568(%r10,%r11)
				ahi	%r1,-1
				lgfr	%r1,%r1
				aghi	%r1,68
				sllg	%r1,%r1,3
				lg	%r9,0(%r1,%r11)
		.LVL482:
  285             BV = BIT VAL(PINPY(I))
				l	%r1,1440(%r10,%r11)
				ahi	%r1,-1
				lgfr	%r1,%r1
				aghi	%r1,354
				sllg	%r1,%r1,2
  286             %IF SQ_ATT&BV#0 %START
				l	%r1,0(%r1,%r11)
				lpr	%r1,%r1
				ahi	%r1,-1
				srl	%r1,31
				l	%r2,4(%r9)
				nr	%r1,%r2
				je	.L325
		.L326:
  287                !! NO PIN
				brctg	%r6,.L324
				j	.L327
		.LVL481:
		.L324:
  288             %FINISHELSESTART
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
  290                K = MOVES(WHICH, 3)
				lgfr	%r1,%r9
				ldgr	%f8,%r1
				llgfr	%r6,%r6
				aghi	%r6,1
		.LVL460:
				j	.L324
		.LVL461:
		.L304:
		.LBE472:
		.LBE476:
		.LBE478:
				lgr	%r0,%r11
				lghi	%r3,3
				lgdr	%r2,%f8
				brasl	%r14,MOVES.6789
		.LVL483:
  291                SCOREA = SCOREA+SQ_P*5
				l	%r2,0(%r9)
				sllk	%r1,%r2,2
				ar	%r1,%r2
				larl	%r2,SCOREA.6766
				a	%r1,0(%r2)
				strl	%r1,SCOREA.6766
				j	.L325
		.L318:
		.LVL484:
		.L327:
		.LBE475:
		.LBE477:
		.LBE481:
  292             %FINISH
  293          %REPEAT
  294       %END
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
		.LVL490:
				stmg	%r9,%r15,72(%r15)
				lay	%r15,-184(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	176(8,%r15),40(%r1)
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				mvhi	164(%r15),25
				mvhi	168(%r15),0
				mvhi	172(%r15),-25
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				lrl	%r1,JUSTONEPLY.6770
				chi	%r1,1
				je	.L360
				lgr	%r9,%r0
		.L356:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				larl	%r1,JUSTONEPLY.6770
				mvhi	0(%r1),1
				lhi	%r2,0
		.LVL506:
		.L355:
  302          WW = WHICH!!X'FFFFFFFE'
				lrl	%r10,MON.6769
		.LVL491:
				lr	%r11,%r2
				xilf	%r11,4294967294
		.LVL492:
  303          LIST2 == RECORD(MOVES(WW, 0))
				larl	%r1,MON.6769
				mvhi	0(%r1),1
				lghi	%r3,0
				lgfr	%r2,%r11
		.LVL493:
				brasl	%r14,MOVES.6789
		.LVL494:
  304          JUST ONE PLY = 0; MON = XMON
				larl	%r1,JUSTONEPLY.6770
				mvhi	0(%r1),0
  305          %IF ADDR(LIST2) = 0 %START
				strl	%r10,MON.6769
				cgijlh	%r2,0,.L357
  306             %RESULT = -NOLEGMOVE(WW)//2
				ahi	%r11,1
		.LVL495:
				lgfr	%r11,%r11
				aghi	%r11,436
		.LVL496:
				sllg	%r11,%r11,2
		.LVL497:
				l	%r1,4(%r11,%r9)
				srlk	%r2,%r1,31
				ar	%r2,%r1
				sra	%r2,1
				lcr	%r2,%r2
				j	.L355
		.LVL498:
		.L357:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				lgr	%r0,%r9
				lgfr	%r4,%r11
				lghi	%r3,1
				brasl	%r14,SORTANDPRUNE.6783
		.LVL499:
  309             X = LIST2_SCORE
				l	%r10,8(%r2)
		.LVL500:
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				cgijlh	%r2,0,.L362
		.L358:
  312          %RESULT = X+WWW(WW)
				ahi	%r11,1
		.LVL501:
				lgfr	%r11,%r11
				sllg	%r11,%r11,2
		.LVL502:
				lr	%r2,%r10
				a	%r2,164(%r11,%r15)
				j	.L355
		.LVL503:
		.L362:
				lgr	%r0,%r9
				brasl	%r14,RELEASECHAIN.6846
		.LVL504:
				j	.L358
		.LVL505:
		.L360:
  313       %END
				lgfr	%r2,%r2
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	176(8,%r15),40(%r1)
				jne	.L363
				lg	%r5,296(%r15)
				lmg	%r9,%r15,256(%r15)
				br	%r5
		.L363:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL507:
		.LFE191:
				.section	.rodata.str1.2
				.align	2
		.LC40:
				.string	"Illegal cycle J = 1, 1, I - 1"
				.section	.rodata
				.align	4
		.LC30:
				.long	8
				.long	8
				.long	3
				.long	3
				.long	3
				.long	3
				.long	3
				.long	3
				.long	3
				.long	3
				.long	3
				.align	2
		.LC32:
				.byte	28
				.string	"FORCED TO INCREASE PLYWIDTH\n"
				.zero	226
				.align	2
		.LC31:
				.byte	7
				.string	" FORCED"
				.zero	247
		.text
				.align	8
		NPLY.6779:
		.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
				larl	%r1,PINPT.6738
		.LVL260:
				mvhi	0(%r1),0
		.LVL261:
				aghik	%r1,%r7,544
				ldgr	%f10,%r7
				lghi	%r2,64
		.LVL262:
		.L153:
  325          %CYCLE I = 1, 1, 64
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				lg	%r3,0(%r1)
				mvhi	4(%r3),0
  327          %REPEAT
				lg	%r3,0(%r1)
				mvhi	8(%r3),0
		.LDL8:
				aghi	%r1,8
  328          WHX = WHICH&BIT;               ! GET TYPE
				brctg	%r2,.L153
		.L154:
		.LVL263:
  329          L_CHK = 0;                     ! CLEAR FLAG
				lg	%r1,200(%r15)
				mvhi	12(%r1),0
  330          HOLD_L == L;                   ! MAP TO MOVE
				stg	%r1,480(%r15)
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				aghik	%r2,%r15,480
				brasl	%r14,CHANGEBOARD.6794
		.LVL264:
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				st	%r2,168(%r15)
  333          P = MOVES(WHICH, 1)
				larl	%r1,SCOREA.6766
				mvhi	0(%r1),0
		.LVL265:
				lgr	%r0,%r7
				lghi	%r3,1
				l	%r11,220(%r15)
				lgfr	%r2,%r11
				brasl	%r14,MOVES.6789
		.LVL266:
  334          SQU = 0
				l	%r2,172(%r15)
				lr	%r8,%r2
  335          BAD = 0; NPH = 0; NPH2 = 0
				st	%r2,208(%r15)
  336          %CYCLE Y = 1, 1, 8
				st	%r2,212(%r15)
  337             %CYCLE X = 1, 1, 8
				st	%r2,216(%r15)
				st	%r2,184(%r15)
  338                SQU = SQU+1
				l	%r2,172(%r15)
				lr	%r6,%r2
				lr	%r1,%r8
				ahik	%r8,%r1,1
		.LVL298:
  339                SQ == SQI(SQU)_SQ
				l	%r1,192(%r15)
		.LVL273:
				lr	%r2,%r1
				ahi	%r2,-1
				st	%r2,192(%r15)
				je	.L246
		.LVL274:
		.L157:
				lgfr	%r1,%r1
				aghi	%r1,68
				sllg	%r1,%r1,3
				lg	%r1,0(%r1,%r7)
		.LVL299:
  340                Q = SQ_P
				asi	184(%r15),1
		.LVL275:
				lr	%r1,%r8
				brct	%r10,.L155
		.LVL295:
				j	.L249
		.LVL296:
		.L155:
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				ahi	%r6,1
		.LVL297:
				lt	%r11,0(%r1)
				je	.L158
  342                   %IF Q < 0 %START
				cijl	%r11,0,.L250
		.L159:
		.L162:
		.LVL300:
  343                      QQ = -Q; W2 = -1
				lcr	%r2,%r11
				st	%r2,164(%r15)
		.LVL277:
  344                   %FINISHELSESTART
				mvhi	176(%r15),-1
				j	.L160
		.L247:
				mvhi	176(%r15),-1
				j	.L163
		.LVL279:
		.L251:
				l	%r2,196(%r15)
		.LVL280:
  345                      QQ = Q; W2 = 1
				st	%r11,164(%r15)
  346                   %FINISH
				st	%r11,176(%r15)
		.L161:
		.LVL281:
		.L163:
				mvhi	176(%r15),1
		.LVL301:
		.L160:
  347
  348                   !!
  349                   P = 0
  350                   %IF QQ = 1 %START;    ! PAWN
				cije	%r2,1,.L247
				cije	%r11,1,.L251
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				sll	%r2,3
		.LVL282:
				ar	%r2,%r6
				ahi	%r2,-9
				lgfr	%r2,%r2
				aghi	%r2,290
				sllg	%r2,%r2,2
				lr	%r9,%r11
				ms	%r9,0(%r2,%r7)
		.LVL283:
  354                   %FINISH
  355                   !!
				l	%r2,184(%r15)
		.LVL278:
  356                   %IF Q&BIT = WHX %START
				lr	%r1,%r11
				xilf	%r1,4294967295
				srl	%r1,31
				st	%r1,180(%r15)
				lhi	%r1,8
				sr	%r1,%r2
				st	%r1,192(%r15)
				ldgr	%f12,%r6
				j	.L157
		.LVL267:
		.L244:
		.LDL9:
		.LBE427:
		.LBE426:
				st	%r2,188(%r15)
				lhi	%r2,9
				s	%r2,184(%r15)
				st	%r2,196(%r15)
				lhi	%r10,8
				sr	%r10,%r6
				j	.L155
		.LVL276:
		.L250:
				l	%r2,180(%r15)
				nr	%r2,%r11
				st	%r2,164(%r15)
				jne	.L164
				mvhi	164(%r15),1
		.L165:
		.LVL284:
		.L168:
				l	%r9,188(%r15)
		.LVL289:
		.L164:
				l	%r2,180(%r15)
				nrk	%r9,%r2,%r11
				jne	.L226
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				l	%r2,164(%r15)
				cijlh	%r2,6,.L168
  361                         %IF SQ_ATT # 0 %START
				lt	%r9,4(%r1)
				je	.L177
				lgdr	%r6,%f12
		.LVL302:
  362                            RESTORE BOARD(HOLD)
				aghik	%r2,%r15,480
				brasl	%r14,RESTOREBOARD.6796
		.LVL303:
  363                            %RESULT = MAX SCORE
				iilf	%r1,4294917296
				st	%r1,172(%r15)
		.LVL304:
				j	.L167
		.LVL305:
		.L248:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				lt	%r3,4(%r1)
				jle	.L177
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				lgr	%r0,%r7
				lgf	%r4,8(%r1)
				lgfr	%r3,%r3
				lgf	%r2,164(%r15)
				brasl	%r14,EXVAL.6901
		.LVL285:
  369                         %IF GAIN > 0 %START
				cijle	%r2,0,.L177
  370                            GAIN = GAIN+P
				ar	%r2,%r9
		.LVL286:
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				lg	%r3,.L259-.L258(%r13)
				ldgr	%f8,%r3
				l	%r1,176(%r15)
				msr	%r1,%r2
				lgfr	%r1,%r1
				lgdr	%r5,%f8
				mlgr	%r4,%r1
				srag	%r1,%r1,63
				lg	%r3,.L259-.L258(%r13)
				ngrk	%r3,%r1,%r3
				sgr	%r4,%r3
				srag	%r4,%r4,2
				lrl	%r3,SCOREA.6766
				srk	%r4,%r3,%r4
				ark	%r1,%r4,%r1
				strl	%r1,SCOREA.6766
				l	%r1,208(%r15)
				cr	%r1,%r2
				stocnhe	%r2,208(%r15)
		.LVL287:
				j	.L177
		.LVL288:
		.L226:
  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
				lt	%r3,4(%r1)
				jne	.L248
		.L166:
		.L173:
		.L174:
		.L175:
		.L176:
		.LVL290:
		.L177:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				lgr	%r0,%r7
				lgf	%r4,8(%r1)
				lgfr	%r3,%r3
				lgf	%r2,164(%r15)
				brasl	%r14,EXVAL.6901
		.LVL306:
  384                         %IF GAIN > 0 %START
				cijle	%r2,0,.L172
  385                         %IF GAIN >NPH %START
				l	%r1,212(%r15)
				crjl	%r1,%r2,.L227
		.L170:
				l	%r1,216(%r15)
				cr	%r1,%r2
				stocnhe	%r2,216(%r15)
		.LVL307:
				j	.L172
		.LVL308:
		.L227:
				l	%r1,212(%r15)
				st	%r1,216(%r15)
		.LVL309:
  386                            NPH2 = NPH; NPH = GAIN
  387                         %FINISHELSESTART
				st	%r2,212(%r15)
		.LVL310:
		.L169:
		.L171:
		.L172:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				l	%r1,164(%r15)
				cijlh	%r1,6,.L177
  392                             L_CHK = Q
				lg	%r1,200(%r15)
				st	%r11,12(%r1)
				j	.L177
		.LVL311:
		.L246:
				lgdr	%r6,%f12
		.LVL312:
		.L156:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				a	%r9,168(%r15)
				ahi	%r11,6
		.LVL291:
				lgfr	%r11,%r11
				aghi	%r11,424
		.LVL292:
				sllg	%r11,%r11,2
		.LVL293:
				a	%r9,0(%r11,%r7)
				st	%r9,168(%r15)
		.LVL294:
		.L158:
  397                %FINISH
  398             %REPEAT
  399          %REPEAT
  400          LOSS = 0
				l	%r10,216(%r15)
				j	.L184
		.LVL328:
		.L188:
				aghi	%r2,4
				aghi	%r3,1
		.LVL329:
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				l	%r1,208(%r15)
				cijle	%r1,0,.L178
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
				lhi	%r2,300
				crjle	%r1,%r2,.L179
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
				l	%r1,212(%r15)
				lhi	%r2,400
				crjh	%r1,%r2,.L180
				j	.L181
		.L179:
  404             NPH = NPH//3
				lgf	%r10,212(%r15)
				la	%r1,.L260-.L258(%r13)
				lg	%r2,0(%r1)
				lgr	%r5,%r2
				mlgr	%r4,%r10
				lgr	%r2,%r4
				srag	%r10,%r10,63
				lg	%r1,.L260-.L258(%r13)
				ngrk	%r1,%r10,%r1
				sgr	%r2,%r1
				sgr	%r2,%r10
				st	%r2,212(%r15)
		.LVL314:
  405             LOSS = BAD
				l	%r1,212(%r15)
				lhi	%r2,400
				crjle	%r1,%r2,.L181
		.L180:
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				l	%r1,208(%r15)
				crjhe	%r1,%r2,.L182
  407               LOSS = LOSS-NPH
				l	%r1,208(%r15)
				lhi	%r2,499
				crjle	%r1,%r2,.L252
		.LVL313:
		.L181:
				lgf	%r1,216(%r15)
				la	%r2,.L260-.L258(%r13)
		.LVL315:
				lg	%r10,0(%r2)
				lgr	%r3,%r10
				mlgr	%r2,%r1
				lgr	%r10,%r2
				srag	%r1,%r1,63
				lg	%r2,.L260-.L258(%r13)
				ngrk	%r2,%r1,%r2
				sgr	%r10,%r2
				sr	%r10,%r1
		.LVL316:
				j	.L185
		.LVL317:
		.L252:
  408          %FINISHELSESTART
				lgr	%r0,%r7
				lgf	%r2,220(%r15)
				brasl	%r14,TRYANOTHERPLY.6933
		.LVL318:
				st	%r2,172(%r15)
		.LVL319:
				j	.L181
		.LVL320:
		.L182:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
				l	%r1,216(%r15)
				cije	%r1,0,.L228
  410             LOSS = LOSS-NPH//6
				l	%r1,208(%r15)
		.LVL321:
				srk	%r10,%r1,%r2
		.LVL322:
				j	.L185
		.LVL323:
		.L178:
				lcr	%r10,%r1
		.LVL324:
		.L184:
				lgf	%r1,212(%r15)
				la	%r2,.L261-.L258(%r13)
				lg	%r2,0(%r2)
				lgr	%r5,%r2
				mlgr	%r4,%r1
				lgr	%r2,%r4
				srag	%r1,%r1,63
				lg	%r4,.L261-.L258(%r13)
				ngrk	%r4,%r1,%r4
				sgr	%r2,%r4
				sgr	%r2,%r1
				sr	%r10,%r2
		.LVL325:
		.L183:
		.L185:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				lrl	%r11,KCAS.6755
				a	%r11,168(%r15)
				larl	%r1,KCAS.6755+8
				a	%r11,0(%r1)
		.LVL326:
				aghik	%r2,%r7,1064
				aghik	%r3,%r7,1760
				lgdr	%r4,%f10
				aghi	%r4,1112
				j	.L186
		.LVL327:
		.L228:
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				llc	%r1,0(%r3)
				ahi	%r1,-1
				lgfr	%r1,%r1
				aghi	%r1,4
				sllg	%r1,%r1,3
				lg	%r1,0(%r1,%r7)
				clc	48(4,%r2),0(%r1)
				je	.L188
  415          %REPEAT
				a	%r11,0(%r2)
		.LVL331:
				j	.L188
		.LVL332:
		.L187:
  416                %IF L_CHK # 0 %START
				cgrje	%r4,%r2,.L187
		.L186:
		.LVL330:
				lg	%r1,200(%r15)
				lt	%r1,12(%r1)
				je	.L190
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				l	%r1,172(%r15)
				cije	%r1,0,.L253
		.L189:
		.LVL333:
		.L190:
  418                %FINISH
				lgr	%r0,%r7
				lgf	%r2,220(%r15)
				brasl	%r14,TRYANOTHERPLY.6933
		.LVL359:
				st	%r2,172(%r15)
		.LVL360:
				j	.L190
		.LVL361:
		.L254:
		.LBE438:
		.LBE456:
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				aghik	%r2,%r15,480
				brasl	%r14,RESTOREBOARD.6796
		.LVL334:
		.LBB428:
		.LBB429:
				lgrl	%r7,_imp_OutStream@GOTENT
				mvhi	0(%r7),2
				lgrl	%r9,_imp_OutFile@GOTENT
				lgrl	%r8,_imp_outfile@GOTENT
		.LVL335:
				lg	%r1,584(%r8)
				stg	%r1,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL336:
		.LBE429:
		.LBE428:
		.LBB430:
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
  422             PRINTSTRING("SCORE:")
				larl	%r1,.LC26
				mvc	1008(256,%r15),0(%r1)
				mvc	1264(256,%r15),1008(%r15)
				mvc	1008(256,%r15),1264(%r15)
		.LBE430:
		.LBB431:
		.LBB432:
				mvc	224(256,%r15),1008(%r15)
				aghik	%r2,%r15,224
				brasl	%r14,_imp_printstring@PLT
		.LVL337:
		.LBE432:
		.LBE431:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				lghi	%r3,1
				lgfrl	%r2,SCOREA.6766
				brasl	%r14,_imp_writeint@PLT
		.LVL338:
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				lghi	%r3,1
				lgfr	%r2,%r11
				brasl	%r14,_imp_writeint@PLT
		.LVL339:
				lghi	%r3,1
				lgf	%r2,208(%r15)
				brasl	%r14,_imp_writeint@PLT
		.LVL341:
  425             WRITE(LOSS, 1); NEWLINE
				lghi	%r3,1
				lgf	%r2,172(%r15)
				brasl	%r14,_imp_writeint@PLT
		.LVL340:
				lghi	%r3,1
				lgf	%r2,212(%r15)
				brasl	%r14,_imp_writeint@PLT
		.LVL342:
				lghi	%r3,1
				lgfr	%r2,%r10
				brasl	%r14,_imp_writeint@PLT
		.LVL344:
		.LBB433:
		.LBB434:
				brasl	%r14,_imp_newline@PLT
		.LVL345:
		.LBE434:
		.LBE433:
		.LBB435:
		.LBB436:
				mvhi	0(%r7),0
				lg	%r2,8(%r8)
				stg	%r2,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL346:
		.LDL12:
		.LBE436:
		.LBE435:
  426             SELECT OUTPUT(0)
				lghi	%r3,1
				lgf	%r2,216(%r15)
				brasl	%r14,_imp_writeint@PLT
		.LVL343:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				l	%r1,172(%r15)
				cijlh	%r1,0,.L167
		.L191:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				larl	%r1,SCOREA.6766
				a	%r11,0(%r1)
		.LVL347:
				ms	%r10,220(%r15)
		.LVL348:
				srk	%r1,%r11,%r10
				st	%r1,172(%r15)
		.LVL349:
		.L167:
		.LBE437:
		.LBE444:
  430       %END
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-2096(%r15)
				aghi	%r14,-8
				std	%f8,0(%r14)
				lgr	%r10,%r2
				lgr	%r11,%r0
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	2080(8,%r15),40(%r1)
				la	%r1,2256(%r15)
				stg	%r1,792(%r15)
				st	%r2,760(%r15)
				st	%r3,788(%r15)
				stg	%r0,720(%r15)
  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)
		.LVL233:
				stmg	%r6,%r15,48(%r15)
				larl	%r13,.L258
				lgr	%r14,%r15
				lay	%r15,-1552(%r15)
				aghi	%r14,-24
				std	%f8,0(%r14)
				std	%f10,8(%r14)
				std	%f12,16(%r14)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1520(8,%r15),40(%r1)
		.LVL234:
		.LBB420:
  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)
				lr	%r4,%r1
				ahik	%r5,%r2,-1
		.LVL236:
  454            K = SQ_P
				lgfr	%r1,%r1
		.LVL237:
				sllg	%r1,%r1,3
		.LVL238:
				agfr	%r1,%r5
				sllg	%r1,%r1,4
				larl	%r11,BRD.6706
				l	%r1,0(%r1,%r11)
				st	%r1,172(%r15)
		.LVL239:
  455             %IF SCRQ <= 0 %START
				ahik	%r1,%r2,-1
				clijh	%r1,7,.L220
				lgr	%r6,%r0
		.LVL235:
		.LBE420:
		.LBB421:
				lt	%r0,84(%r6)
				jle	.L240
		.L145:
		.LVL240:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				cijlh	%r1,0,.L222
		.L146:
  457                 %RESULT = 0
  458                %IF QQ=PAWN %START
				l	%r1,80(%r6)
		.LVL249:
				chi	%r1,1
				je	.L244
		.L147:
		.L148:
		.L149:
		.L150:
				lhi	%r2,0
		.LVL382:
				j	.L217
		.LVL383:
		.L257:
  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
				ahik	%r1,%r3,-1
				clijh	%r1,7,.L221
		.L144:
		.LBE421:
				l	%r1,76(%r6)
				chi	%r1,1
				jne	.L150
  463                SPEC = 0
				mvhi	68(%r6),0
		.LVL250:
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				lg	%r1,16(%r6)
				lg	%r4,1056(%r1)
		.LVL251:
				stg	%r4,200(%r15)
		.LVL252:
  465                %IF ADDR(FREE LIST) = 0 %START
				lg	%r4,0(%r4)
		.LVL253:
				stg	%r4,1056(%r1)
		.LVL254:
				lg	%r1,16(%r6)
				ltg	%r1,1056(%r1)
				je	.L245
		.L151:
				l	%r2,172(%r15)
		.LVL268:
				j	.L217
		.LVL269:
		.L245:
		.LBB439:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				larl	%r1,.LC24
				mvc	1264(256,%r15),0(%r1)
				mvc	1008(256,%r15),1264(%r15)
				mvc	1264(256,%r15),1008(%r15)
		.LBE439:
		.LBB440:
		.LBB441:
				mvc	224(256,%r15),1264(%r15)
				aghik	%r2,%r15,224
		.LVL270:
				brasl	%r14,_imp_printstring@PLT
		.LVL271:
		.LBE441:
		.LBE440:
		.LBB442:
		.LBB443:
				lghi	%r2,0
				brasl	%r14,exit@PLT
		.LVL272:
		.L249:
		.LDL10:
		.LDL11:
		.LBE443:
		.LBE442:
		.LBB444:
		.LBB437:
  467 ")
				lhi	%r2,0
		.LVL378:
		.L143:
		.L217:
				lhi	%r2,0
		.LVL380:
				j	.L217
		.LVL381:
		.L222:
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				l	%r4,64(%r6)
				sll	%r4,4
				a	%r4,60(%r6)
				lg	%r5,200(%r15)
		.LVL255:
				stc	%r4,4(%r5)
  471                N_TO = X0<<4+Y0
				sllk	%r1,%r2,4
				ar	%r1,%r3
				stc	%r1,5(%r5)
  472                N_SPEC = SPEC
				l	%r1,68(%r6)
				st	%r1,8(%r5)
		.LBB425:
  473                %IF 6 <= TYPE <= 7 %START
  474                   N_SPEC = TYPE
				st	%r1,8(%r5)
  475                   N_TO = N_FR
				stc	%r4,5(%r5)
		.L152:
  476                %FINISH
				l	%r1,76(%r6)
		.LVL256:
				ahik	%r2,%r1,-6
		.LVL257:
				clijh	%r2,1,.L152
		.LBE425:
  477                N_SCORE = SCORE(WHICH, N)
				l	%r1,56(%r6)
		.LVL258:
				st	%r1,220(%r15)
				lg	%r7,16(%r6)
		.LVL259:
		.LBB426:
		.LBB427:
				lg	%r1,200(%r15)
				l	%r2,172(%r15)
				st	%r2,8(%r1)
  478                !!
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				l	%r1,76(%r6)
				cije	%r1,6,.L254
		.L192:
		.L196:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				lg	%r1,8(%r6)
				lt	%r1,84(%r1)
				je	.L197
  481                %FINISH
				lg	%r1,200(%r15)
				iilf	%r2,4294917296
				st	%r2,8(%r1)
  482                %IF TYPE = 7 %START;     ! DITTO
				cije	%r1,7,.L255
		.L193:
		.L197:
				l	%r1,76(%r6)
				chi	%r1,7
				jne	.L194
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				lg	%r1,8(%r6)
				lt	%r1,52(%r1)
				je	.L194
				j	.L218
		.L255:
				lg	%r1,8(%r6)
				lt	%r1,52(%r1)
				je	.L197
		.L218:
  484                %FINISH
				lg	%r1,200(%r15)
				iilf	%r2,4294917296
				st	%r2,8(%r1)
		.L194:
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				lg	%r1,200(%r15)
				l	%r1,8(%r1)
				cfi	%r1,-50000
				je	.L194
		.L198:
		.LVL350:
		.LBB445:
		.LBB446:
				lgrl	%r9,_imp_OutStream@GOTENT
				mvhi	0(%r9),2
				lgrl	%r11,_imp_OutFile@GOTENT
				lgrl	%r10,_imp_outfile@GOTENT
				lg	%r1,584(%r10)
				stg	%r1,0(%r11)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL351:
		.LBE446:
		.LBE445:
		.LBB447:
		.LBB448:
				lghi	%r2,20
				brasl	%r14,_imp_spaces@PLT
		.LVL352:
		.LBE448:
		.LBE447:
  488                   N_L == FREE LIST;     ! RE-LINK IT
				lg	%r1,16(%r6)
				lg	%r2,200(%r15)
				lg	%r1,1056(%r1)
				stg	%r1,0(%r2)
  489                   FREE LIST == RECORD(ADDR(N))
				lg	%r1,16(%r6)
				stg	%r2,1056(%r1)
		.LDL14:
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				lhi	%r2,1
				j	.L217
		.LVL362:
		.L241:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				lghi	%r3,5
				lgfrl	%r2,XDEPTH.6767
				brasl	%r14,_imp_writeint@PLT
		.LVL353:
		.LBB449:
  499                   PRINTSTRING("---")
				larl	%r1,.LC25
				mvc	752(256,%r15),0(%r1)
				mvc	496(256,%r15),752(%r15)
				mvc	752(256,%r15),496(%r15)
		.LBE449:
		.LBB450:
		.LBB451:
				mvc	224(256,%r15),752(%r15)
				aghik	%r2,%r15,224
				brasl	%r14,_imp_printstring@PLT
		.LVL354:
		.LBE451:
		.LBE450:
  500                   PRINTMOVE(N)
				lg	%r8,200(%r15)
				lgr	%r2,%r8
				brasl	%r14,PRINTMOVE.6806
		.LVL355:
		.LBB452:
		.LBB453:
				brasl	%r14,_imp_newline@PLT
		.LVL356:
		.LBE453:
		.LBE452:
		.LBB454:
		.LBB455:
				mvhi	0(%r9),0
				lg	%r1,8(%r10)
				stg	%r1,0(%r11)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL357:
		.LDL13:
		.LBE455:
		.LBE454:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				lg	%r2,0(%r6)
				stg	%r2,0(%r8)
  506                %IF K=0 %THEN J=1 %ELSE J=0
				stg	%r8,0(%r6)
  507             %FINISHELSESTART
				lhi	%r2,1
				j	.L217
		.LVL358:
		.L253:
		.LBB456:
		.LBB438:
  508                J = 2
				lhi	%r2,2
		.LVL376:
		.L199:
		.L210:
		.L211:
		.L212:
		.L213:
		.L214:
		.L215:
		.L216:
  509                %IF K # 0 %START
				l	%r1,172(%r15)
				cije	%r1,0,.L229
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				l	%r3,80(%r6)
		.LVL241:
				cije	%r3,1,.L241
		.L200:
		.LVL242:
		.LBB422:
		.LBB423:
				l	%r1,172(%r15)
				lpr	%r1,%r1
		.LVL243:
		.LBE423:
		.LBE422:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				lhi	%r2,0
		.LVL245:
		.L204:
		.L205:
		.L206:
		.L207:
		.L208:
				lt	%r2,76(%r6)
		.LVL363:
				je	.L217
		.LVL364:
		.LBB457:
		.LBB424:
				l	%r1,172(%r15)
		.LVL365:
				lpr	%r1,%r1
		.LBE424:
		.LBE457:
				lhi	%r2,0
				j	.L208
		.LVL367:
		.L242:
				srl	%r2,31
				srl	%r2,31
				lhi	%r2,0
		.LVL370:
				slbr	%r2,%r2
				lcr	%r2,%r2
		.LBB459:
				j	.L208
		.LVL371:
		.L230:
		.LBE459:
				lhi	%r2,0
				j	.L208
		.LVL372:
		.L209:
  512                   IMODK = IMOD(K)
				st	%r1,52(%r6)
		.LVL244:
				st	%r1,52(%r6)
		.LVL366:
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				cije	%r3,5,.L242
		.L202:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				l	%r2,48(%r6)
		.LVL368:
				cije	%r2,1,.L256
		.L203:
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
				xilf	%r1,3
				lpr	%r2,%r1
				ahi	%r2,-1
  517                         %FINISHELSESTART
  518                            %IF IMODK=5 %START
				cije	%r1,5,.L243
				cijlh	%r2,0,.L230
  519                               %IF 3<=QQ<=4 %THEN J=1
				xilf	%r1,4
				lpr	%r2,%r1
				ahi	%r2,-1
  520                            %FINISH
				j	.L208
		.LVL369:
		.L243:
		.LBB458:
  521                         %FINISH
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
				j	.L208
		.L256:
				ahik	%r1,%r3,-3
				clfi	%r1,1
		.LBE458:
  523                      %IF SCRQ # 3 %START
				cije	%r0,3,.L209
  524                        %IF PINFLAG = 0 %THEN %C
				lt	%r1,44(%r6)
				jne	.L216
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
				larl	%r0,BRD.6706
				lgfr	%r4,%r4
				sllg	%r1,%r4,3
				agfr	%r1,%r5
				sllg	%r1,%r1,4
				lg	%r5,16(%r6)
		.LVL246:
				ahi	%r3,-1
				lgfr	%r3,%r3
				aghi	%r3,354
				sllg	%r3,%r3,2
				lgr	%r4,%r0
		.LVL247:
				l	%r0,8(%r1,%r4)
				a	%r0,0(%r3,%r5)
				st	%r0,8(%r1,%r4)
				j	.L216
		.LVL248:
		.L240:
  526                     %FINISHELSESTART
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				larl	%r11,BRD.6706
				lgfr	%r4,%r4
				sllg	%r1,%r4,3
				agfr	%r1,%r5
				sllg	%r1,%r1,4
				lg	%r5,16(%r6)
		.LVL373:
				ahi	%r3,-1
				lgfr	%r3,%r3
				aghi	%r3,354
				sllg	%r3,%r3,2
				l	%r4,8(%r1,%r11)
		.LVL374:
				s	%r4,0(%r3,%r5)
				st	%r4,8(%r1,%r11)
				j	.L216
		.LVL375:
		.L229:
  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
				lrl	%r1,SCOREA.6766
				a	%r1,24(%r6)
				strl	%r1,SCOREA.6766
				j	.L217
		.LVL377:
		.L220:
  560             %FINISH
  561             %RESULT = J
  562          %END
				lgfr	%r2,%r2
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	1520(8,%r15),40(%r1)
				jne	.L257
				ld	%f8,1528(%r15)
				ld	%f10,1536(%r15)
				ld	%f12,1544(%r15)
				lg	%r4,1664(%r15)
				lmg	%r6,%r15,1600(%r15)
				br	%r4
		.LVL379:
		.L221:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL384:
				.section	.rodata
				.align	8
		.L258:
		.L261:
				.quad	3074457345618258603
		.L260:
				.quad	6148914691236517206
		.L259:
				.quad	7378697629483820647
				.align	2
		.text
		.LFE194:
				.section	.rodata.str1.2
				.align	2
		.LC37:
				.string	"Illegal cycle I = 1, 1, PINPT"
				.align	2
		.LC38:
				.string	"test-new/chess9.imp"
				.align	2
		.LC39:
				.string	"->MOVE(%d) out of bounds at %s line %d"
		.text
				.align	8
		MOVES.6789:
		.LFB193:
?LIST2 unused
  563          !!
  564          DIAG = 0
				mvhi	752(%r15),0
  565          LIST == RECORD(0)
				mvghi	704(%r15),0
		.LVL385:
  566          WHICHX = WHICH&BIT
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				cije	%r3,3,.L343
		.L263:
  569             X = PX; Y = PY
				lrl	%r1,PX.6739
				st	%r1,768(%r15)
  570             SQU = (Y-1)*8+X
				lrl	%r1,PY.6740
				st	%r1,764(%r15)
				ahi	%r1,-1
				sll	%r1,3
				larl	%r2,PX.6739
				a	%r1,0(%r2)
				st	%r1,732(%r15)
		.L264:
  571             -> PIN ENTRY
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				mvhi	732(%r15),0
  576          %CYCLE Y = 1,1, 8
  577
  578             %CYCLE X = 1, 1, 8
  579                TYPE = -1
				lhi	%r2,0
		.L265:
				mvhi	780(%r15),-1
				l	%r2,764(%r15)
				cijlh	%r2,8,.L265
		.L268:
  580                SQU = SQU+1
				ahik	%r1,%r2,1
				st	%r1,764(%r15)
				asi	732(%r15),1
				j	.L264
		.L343:
  581 PIN ENTRY:
				lhi	%r2,0
		.L269:
				l	%r2,768(%r15)
				cijlh	%r2,8,.L269
		.L266:
		.L267:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				ahik	%r1,%r2,1
				st	%r1,768(%r15)
				l	%r1,732(%r15)
				ahi	%r1,-1
				lgfr	%r1,%r1
				aghi	%r1,4
				sllg	%r1,%r1,3
				lg	%r1,0(%r1,%r11)
				l	%r1,0(%r1)
				st	%r1,776(%r15)
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				cije	%r1,0,.L316
  584                  SCRQ > 0) %START
				srlk	%r2,%r10,31
				nr	%r2,%r1
				jne	.L273
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				lt	%r2,788(%r15)
				jle	.L316
		.L273:
				cijl	%r1,0,.L344
		.L274:
  586                     QQ = Q %AND W2 = +1
				lcr	%r1,%r1
				st	%r1,784(%r15)
  587                   -> MOVE(QQ)
				l	%r9,784(%r15)
		.LVL387:
		.LDL15:
				mvhi	728(%r15),-1
  588
				j	.L275
		.LVL391:
		.L278:
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				st	%r1,784(%r15)
				mvhi	780(%r15),0
  591                   PIN FLAG = 0
				mvhi	728(%r15),1
		.L275:
		.LVL386:
				mvhi	748(%r15),0
  592                   K = DOM(X, Y-W2)
				l	%r3,764(%r15)
				s	%r3,728(%r15)
				aghik	%r0,%r15,704
				lgfr	%r3,%r3
				lgf	%r2,768(%r15)
				brasl	%r14,DOM.7047
		.LVL392:
  593                   PIN FLAG = 0
				mvhi	748(%r15),0
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				l	%r1,764(%r15)
				cije	%r1,2,.L279
  595                   TYPE = 1
				cije	%r1,7,.L279
		.LVL393:
		.L280:
				mvhi	780(%r15),1
  596                   PIN FLAG = 0
				mvhi	748(%r15),0
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				l	%r3,764(%r15)
				s	%r3,728(%r15)
				l	%r1,768(%r15)
				ahik	%r2,%r1,-1
				aghik	%r9,%r15,704
				lgr	%r0,%r9
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL394:
				cije	%r2,0,.L280
  598                   ->OUT
				mvhi	748(%r15),0
				j	.L316
		.LVL396:
		.L279:
				l	%r3,728(%r15)
				sr	%r1,%r3
				srk	%r3,%r1,%r3
				aghik	%r0,%r15,704
				lgfr	%r3,%r3
				lgf	%r2,768(%r15)
		.LVL397:
				brasl	%r14,DOM.7047
		.LVL398:
				j	.L280
		.L281:
		.LVL399:
  599                   !!
				l	%r3,764(%r15)
				s	%r3,728(%r15)
				l	%r1,768(%r15)
				ahik	%r2,%r1,1
				lgr	%r0,%r9
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL395:
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
  602                      %CYCLE B = -1, 2, 1
				lhi	%r8,-6
  603                            PIN FLAG = 0
				lhi	%r9,-3
		.LVL403:
		.L282:
				mvhi	748(%r15),0
  604                            K = DOM(X+A, Y+B)
				aghik	%r7,%r15,704
				j	.L283
		.LVL400:
		.L345:
		.LDL16:
		.LDL17:
				cije	%r8,2,.L316
		.LVL401:
		.L283:
				lr	%r3,%r9
				a	%r3,764(%r15)
				lr	%r2,%r8
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL405:
  605                             PIN FLAG = 0
				ahi	%r8,4
		.LVL402:
				mvhi	748(%r15),0
				cijlh	%r9,1,.L282
				j	.L345
		.LVL407:
		.L285:
		.L286:
  606                            K = DOM(X+B, Y+A)
				ahi	%r9,2
		.LVL404:
				lr	%r3,%r8
				a	%r3,764(%r15)
				lr	%r2,%r9
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL406:
		.LDL18:
  607                      %REPEAT
  608                   %REPEAT
  609                   -> OUT
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				mvhi	752(%r15),1
		.LVL408:
  614                   I = 0;  PIN FLAG = 0
				lhi	%r8,0
  615                   %CYCLE
				mvhi	748(%r15),0
  616                      I = I-1
				ahi	%r8,-1
		.LVL410:
  617                      K = DOM(X+I, Y+I)
				aghik	%r7,%r15,704
		.LVL409:
		.L287:
				lr	%r3,%r8
				a	%r3,764(%r15)
				lr	%r2,%r8
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL411:
				lr	%r9,%r2
		.LVL412:
  618                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L287
		.L288:
		.LVL413:
  619                   I = 0;  PIN FLAG = 0
  620                   %CYCLE
				mvhi	748(%r15),0
  621                      I = I-1
				ahi	%r9,-1
		.LVL415:
  622                      K = DOM(X-I, Y+I)
				aghik	%r7,%r15,704
		.LVL414:
		.L289:
				lr	%r3,%r9
				a	%r3,764(%r15)
				l	%r2,768(%r15)
		.LVL416:
				sr	%r2,%r9
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL417:
				lr	%r8,%r2
		.LVL418:
  623                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L289
		.L290:
		.LVL419:
  624                   I = 0;  PIN FLAG = 0
  625                   %CYCLE
				mvhi	748(%r15),0
  626                      I = I-1
				ahi	%r8,-1
		.LVL421:
  627                      K = DOM(X+I, Y-I)
				aghik	%r7,%r15,704
		.LVL420:
		.L291:
				l	%r3,764(%r15)
				sr	%r3,%r8
				lr	%r2,%r8
		.LVL422:
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL423:
				lr	%r9,%r2
		.LVL424:
  628                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L291
		.L292:
		.LVL425:
  629                   I = 0;  PIN FLAG = 0
  630                   %CYCLE
				mvhi	748(%r15),0
  631                      I = I-1
				ahi	%r9,-1
		.LVL427:
  632                      K = DOM(X-I, Y-I)
				aghik	%r8,%r15,704
		.LVL426:
		.L293:
				l	%r3,764(%r15)
				sr	%r3,%r9
				l	%r2,768(%r15)
		.LVL428:
				sr	%r2,%r9
				lgr	%r0,%r8
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL429:
  633                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L293
		.L294:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				l	%r1,784(%r15)
				chi	%r1,5
				jne	.L316
		.L295:
		.LVL430:
		.L296:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				mvhi	752(%r15),0
		.LVL431:
  638                   K = 1;  I = 0;  PIN FLAG = 0
  639                   %CYCLE
				lhi	%r8,0
  640                      I = I-1
				mvhi	748(%r15),0
				ahi	%r8,-1
		.LVL433:
  641                      K = DOM(X, Y+I)
				aghik	%r7,%r15,704
		.LVL432:
		.L297:
				lr	%r3,%r8
				a	%r3,764(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgf	%r2,768(%r15)
				brasl	%r14,DOM.7047
		.LVL434:
				lr	%r9,%r2
		.LVL435:
  642                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L297
		.L298:
		.LVL436:
  643                   I = 0;  PIN FLAG = 0
  644                   %CYCLE
				mvhi	748(%r15),0
  645                      I = I+1
				ahi	%r9,1
		.LVL438:
  646                      K = DOM(X+I, Y)
				aghik	%r7,%r15,704
		.LVL437:
		.L299:
				lr	%r2,%r9
		.LVL439:
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgf	%r3,764(%r15)
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL440:
				lr	%r8,%r2
		.LVL441:
  647                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L299
		.L300:
		.LVL442:
  648                   I = 0;  PIN FLAG = 0
  649                   %CYCLE
				mvhi	748(%r15),0
  650                      I = I+1
				ahi	%r8,1
		.LVL444:
  651                      K = DOM(X, Y+I)
				aghik	%r7,%r15,704
		.LVL443:
		.L301:
				lr	%r3,%r8
				a	%r3,764(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgf	%r2,768(%r15)
		.LVL445:
				brasl	%r14,DOM.7047
		.LVL446:
				lr	%r9,%r2
		.LVL447:
  652                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L301
		.L302:
		.LVL448:
  653                   I = 0;  PIN FLAG = 0
  654                   %CYCLE
				mvhi	748(%r15),0
  655                      I = I-1
				ahi	%r9,-1
		.LVL450:
  656                      K = DOM(X+I, Y)
				aghik	%r8,%r15,704
		.LVL449:
		.L303:
				lr	%r2,%r9
		.LVL451:
				a	%r2,768(%r15)
				lgr	%r0,%r8
				lgf	%r3,764(%r15)
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL452:
  657                   %REPEAT %UNTIL K = 0
				cijlh	%r2,0,.L303
		.L272:
		.L312:
		.L313:
		.L314:
		.L315:
		.LVL453:
		.L316:
  658                   -> OUT
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				l	%r1,764(%r15)
				ahi	%r1,-1
				lgfr	%r1,%r1
				sllg	%r1,%r1,7
				larl	%r2,BRD.6706
				agr	%r1,%r2
				stg	%r1,712(%r15)
		.LVL462:
  664                   %CYCLE A = -1, 1, 1
  665                      %CYCLE B = -1, 1, 1
				lhi	%r8,-2
  666                         %IF A#0 %OR B#0 %START
				lhi	%r9,-2
		.LVL466:
		.L305:
				cije	%r8,0,.L349
		.L308:
  667                           PIN FLAG = 0
				cije	%r8,1,.L348
		.LVL464:
		.L307:
				mvhi	748(%r15),0
				cijlh	%r9,0,.L308
  668                           K = DOM(X+A, Y+B)
				aghik	%r7,%r15,704
				j	.L307
		.LVL463:
		.L350:
		.LDL19:
		.LDL20:
				ahi	%r8,1
		.LVL465:
				lr	%r3,%r9
				a	%r3,764(%r15)
				lr	%r2,%r8
				a	%r2,768(%r15)
				lgr	%r0,%r7
				lgfr	%r3,%r3
				lgfr	%r2,%r2
				brasl	%r14,DOM.7047
		.LVL468:
				cijlh	%r9,1,.L305
				j	.L350
		.L349:
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
				ahi	%r9,1
		.LVL467:
  670                         %FINISH
				j	.L305
		.L348:
		.L306:
  671                      %REPEAT
  672                   %REPEAT
  673                   %IF LAST CHK # Q %AND %C
				larl	%r1,LASTCHK.6772
				clc	0(4,%r1),776(%r15)
				je	.L316
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
				l	%r4,728(%r15)
				ahik	%r2,%r4,1
				lgfr	%r1,%r2
				sllg	%r1,%r1,2
				larl	%r3,KCASCH.7034
				l	%r3,0(%r1,%r3)
				c	%r3,764(%r15)
				jne	.L316
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
				lgfr	%r2,%r2
				larl	%r1,KMOVE.6754
				la	%r1,0(%r2,%r1)
				cli	0(%r1),0
				jne	.L316
		.LBB479:
  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
				mvhi	780(%r15),6
  679                      %FINISH
				lg	%r1,712(%r15)
		.LVL469:
				lt	%r2,80(%r1)
				jne	.L311
				aghik	%r0,%r15,704
				lgfr	%r3,%r3
				lghi	%r2,7
				brasl	%r14,DOM.7047
		.LVL473:
				j	.L311
		.LVL474:
		.L346:
  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
				lt	%r2,96(%r1)
				jne	.L311
		.LBE479:
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				sll	%r4,2
				c	%r4,112(%r1)
				je	.L351
		.L311:
		.LBB480:
				lg	%r1,712(%r15)
		.LVL470:
				lt	%r2,48(%r1)
				jne	.L316
				mvhi	780(%r15),7
  684                      %FINISH
				aghik	%r0,%r15,704
				lgf	%r3,764(%r15)
				lghi	%r2,3
				brasl	%r14,DOM.7047
		.LVL471:
				j	.L316
		.LVL472:
		.L351:
  685                   %FINISH
				lt	%r2,32(%r1)
				jne	.L316
		.LBE480:
  686                   !!
  687 OUT:
				lt	%r2,16(%r1)
				jne	.L316
  688                %FINISH
				l	%r2,728(%r15)
				sll	%r2,2
				c	%r2,0(%r1)
				jne	.L316
  689                %RESULT = 0 %IF SCRQ = 3
				l	%r1,788(%r15)
				cije	%r1,3,.L346
		.L270:
		.L271:
  690             %REPEAT
				lhi	%r2,0
				j	.L317
		.LVL475:
		.L347:
		.LBB481:
		.LBB477:
		.LBB475:
  691          %REPEAT
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				cijle	%r1,0,.L327
		.LVL454:
		.LBB470:
		.LBB471:
  693                                         ! ONLY ON SCORE ENTRY
				l	%r9,760(%r15)
		.LVL456:
		.LBB478:
		.LBB476:
		.LBB472:
		.LBB473:
  694
  695          %RESULT = ADDR(LIST)
				l	%r2,708(%r15)
		.L317:
  696       %END
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
		.LVL79:
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-1480(%r15)
				aghi	%r14,-8
				std	%f8,0(%r14)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1464(8,%r15),40(%r1)
				ahik	%r1,%r9,-1
				clijh	%r1,5,.L276
		.L277:
				lgrl	%r1,_imp_current_file@GOTENT
				ltg	%r3,0(%r1)
				je	.L328
				la	%r2,1056(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL486:
		.L329:
				lgrl	%r1,_imp_current_line@GOTENT
				lt	%r3,0(%r1)
				ltr	%r3,%r3
				lhi	%r1,698
				locrne	%r1,%r3
				lr	%r3,%r1
				mvc	192(256,%r15),1056(%r15)
				lgfr	%r6,%r9
				mvghi	184(%r15),587
				larl	%r1,.LC38
				stg	%r1,176(%r15)
				stg	%r6,168(%r15)
				larl	%r1,.LC39
				stg	%r1,160(%r15)
				lghi	%r5,3
				lghi	%r4,6
				lgfr	%r3,%r3
				la	%r2,192(%r15)
				brasl	%r14,_signal_eventf@PLT
		.LVL487:
				j	.L277
		.L328:
		.LBB482:
				larl	%r1,.LC6
				mvc	1824(256,%r15),0(%r1)
				mvc	800(256,%r15),1824(%r15)
		.LBE482:
				mvc	1056(256,%r15),800(%r15)
				j	.L329
		.LVL488:
		.L352:
  699          %INTEGER WIDTH, WHICH)
				larl	%r1,MOVE.7038
				ahi	%r9,-1
		.LVL388:
				lgfr	%r9,%r9
				sllg	%r9,%r9,3
		.LVL389:
				lg	%r1,0(%r9,%r1)
				br	%r1
		.LVL390:
		.L344:
  700
				lgfr	%r2,%r2
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	2080(8,%r15),40(%r1)
				jne	.L352
				ld	%f8,2088(%r15)
				lg	%r4,2208(%r15)
				lmg	%r6,%r15,2144(%r15)
				br	%r4
		.LVL485:
		.L276:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL489:
		.LFE193:
				.align	8
		TRYANOTHERPLY.6933:
		.LFB191:
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
				mvhi	684(%r15),25000
				mvhi	688(%r15),0
				mvhi	692(%r15),-25000
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
				cgije	%r2,0,.L56
				lgr	%r11,%r3
				lgr	%r10,%r4
				ldgr	%f8,%r0
				lgr	%r9,%r2
		.L36:
		.LVL80:
		.LBB308:
		.LBB309:
  708
				lhi	%r11,0
				j	.L35
		.LVL118:
		.L45:
		.LBB312:
  709          RES == RECORD(0)
  710          %CYCLE I = 1, 1, WIDTH
  711             M1 == RECORD(0)
				lgr	%r5,%r0
				j	.L49
		.LVL106:
		.L70:
		.L43:
		.LBE308:
  712             M2 == M1; LN == M1
				ahik	%r1,%r3,-1
		.LVL81:
		.LBE309:
				cijl	%r1,0,.L67
		.LVL82:
		.L37:
				lghi	%r0,0
				lgrl	%r1,_imp_current_file@GOTENT
		.LVL86:
				ltg	%r3,0(%r1)
		.LVL87:
				je	.L38
				la	%r2,952(%r15)
		.LVL88:
				brasl	%r14,_imp_c2istr@PLT
		.LVL89:
		.L39:
				lgrl	%r1,_imp_current_line@GOTENT
				lt	%r8,0(%r1)
				ltr	%r8,%r8
				lhi	%r1,712
				locrne	%r1,%r8
				lr	%r8,%r1
				larl	%r3,.LC33
				la	%r2,1208(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL90:
				mvc	424(256,%r15),952(%r15)
				mvc	168(256,%r15),1208(%r15)
				mvghi	160(%r15),0
				lghi	%r6,1
				lghi	%r5,5
				la	%r4,168(%r15)
				lgfr	%r3,%r8
				la	%r2,424(%r15)
				brasl	%r14,_signal_event@PLT
		.LVL91:
				j	.L37
		.LVL92:
		.L38:
		.LBB310:
				larl	%r1,.LC6
				mvc	1208(256,%r15),0(%r1)
				mvc	696(256,%r15),1208(%r15)
		.LBE310:
				mvc	952(256,%r15),696(%r15)
				j	.L39
		.LVL93:
		.L60:
				lgr	%r11,%r0
				lgr	%r11,%r0
				j	.L51
		.LVL121:
		.L71:
		.LBE312:
  713             MAX = MAXA(WHICH)
				ahik	%r1,%r10,1
				lgfr	%r1,%r1
				sllg	%r1,%r1,2
		.LVL84:
				lghi	%r8,0
				lgr	%r2,%r0
  714
  715             L == LIST
				cgije	%r11,0,.L58
		.LVL83:
				brct	%r3,.L63
				j	.L70
		.L63:
		.LVL104:
				lgr	%r8,%r11
				lghi	%r11,0
				j	.L41
		.LVL110:
		.L62:
		.LBE311:
  716             %%EXIT  %IF ADDR(L) = 0
				cgije	%r9,0,.L44
		.LVL105:
		.L42:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
				l	%r7,684(%r1,%r15)
				lr	%r3,%r11
				j	.L42
		.LVL85:
		.L67:
				ltg	%r1,0(%r1)
		.LVL99:
				je	.L68
		.LVL100:
		.L49:
				cijl	%r10,0,.L69
		.L46:
				cgije	%r9,0,.L45
				lgr	%r1,%r9
				lr	%r4,%r7
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
				c	%r4,8(%r1)
				jle	.L48
		.L47:
		.LVL96:
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
				cijle	%r10,0,.L48
  723                %FINISH
				c	%r4,8(%r1)
				jhe	.L48
  724                !!
				l	%r4,8(%r1)
		.LVL97:
				lgr	%r11,%r1
				lgr	%r5,%r2
		.LVL98:
		.L48:
		.LDL1:
		.LDL2:
				lgr	%r2,%r1
				j	.L47
		.L68:
		.L50:
  725                LN == L;  L == L_L
  726             %REPEAT
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
				lgr	%r9,%r1
		.LVL94:
				j	.L51
		.LVL95:
		.L69:
				lg	%r1,0(%r11)
		.LVL101:
				lg	%r9,0
		.LVL119:
  730             M2_L == RES
				stg	%r8,0(%r11)
		.LVL102:
				stg	%r8,0
		.LVL120:
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
				cgije	%r5,0,.L60
		.L52:
  733               M1_L == L
  734          %REPEAT
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
				stg	%r1,0(%r5)
		.LVL103:
		.L51:
				cgije	%r9,0,.L44
		.LVL107:
		.L41:
  737          L == RECORD (0)
				lgdr	%r0,%f8
				lgr	%r2,%r9
				brasl	%r14,RELEASECHAIN.6846
		.LVL108:
		.L44:
  738          %WHILE ADDR(RES) # 0 %CYCLE
  739             M1 == RES_L;                ! NEXT LINK
				cgije	%r11,0,.L61
				lghi	%r2,0
				j	.L54
		.LVL109:
		.L58:
		.LBB311:
				lg	%r1,0(%r11)
		.LVL112:
				cgijlh	%r1,0,.L62
		.LVL114:
		.L35:
				lghi	%r11,0
		.LVL116:
		.L53:
  740             RES_L == L;                 ! LINK TO NEXT
				stg	%r2,0(%r11)
		.LVL113:
				lgr	%r2,%r11
  741             L == RES
  742             RES == M1
				lgr	%r11,%r1
		.LVL111:
		.L54:
  743          %REPEAT
  744          %RESULT = ADDR(L)
				j	.L35
		.LVL117:
		.L56:
  745       %END
				lgfr	%r2,%r11
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	1464(8,%r15),40(%r1)
				jne	.L71
				ld	%f8,1472(%r15)
				lg	%r4,1592(%r15)
				lmg	%r6,%r15,1528(%r15)
				br	%r4
		.LVL115:
		.L61:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL122:
		.LFE195:
				.section	.rodata
				.align	4
		.LC28:
				.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
				.align	4
		.LC0:
				.long	256
				.long	64
				.long	32
				.long	8
				.long	2
				.long	1
				.align	2
		.LC29:
				.byte	40
				.string	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\n"
				.zero	214
		.text
				.align	8
		EXVAL.6901:
		.LFB189:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL4:
				ldgr	%f2,%r10
				ldgr	%f0,%r11
  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
				lg	%r11,0(%r2)
		.LVL5:
  754          FROM = LIST_FR;  TO = LIST_TO
				llgc	%r3,4(%r11)
		.LVL6:
  755          X = FROM>>4;  X0 = TO>>4
				llgc	%r4,5(%r11)
		.LVL7:
				risbgn	%r0,%r3,64-32,128+63,28+32
		.LVL8:
  756          Y = FROM&15; Y0 = TO&15
				nilf	%r3,15
		.LVL9:
				risbgn	%r4,%r4,64-32,128+63,28+32
		.LVL10:
				ahi	%r4,-1
		.LVL11:
  757          SQ == BRD(Y0)_R(X0)
				risbg	%r1,%r4,60,128+63,0
				ahi	%r1,-1
  758          B_HOLD = SQ_P
				lgfr	%r5,%r1
		.LVL12:
				sllg	%r5,%r5,3
		.LVL13:
				agfr	%r5,%r4
				sllg	%r5,%r5,4
				larl	%r10,BRD.6706
				l	%r5,0(%r5,%r10)
				st	%r5,0(%r2)
		.LVL14:
  759          %IF LIST_SPEC # 0 %START
				lt	%r5,8(%r11)
				je	.L7
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cijle	%r5,5,.L8
  761                %IF SQ_P<0 %START
				lgfr	%r2,%r1
		.LVL15:
				sllg	%r2,%r2,3
		.LVL16:
				agfr	%r2,%r4
				sllg	%r2,%r2,4
				lt	%r2,0(%r2,%r10)
				jl	.L16
		.L9:
		.LVL17:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
				lhi	%r3,1
		.LVL28:
  763                %FINISHELSESTART
				lhi	%r2,-6
				j	.L10
		.LVL29:
		.L17:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
				lhi	%r3,8
		.LVL19:
				lhi	%r0,-4
		.LVL27:
  765                %FINISH
				lhi	%r2,6
		.LVL20:
		.L10:
				larl	%r2,KCAS.6755
				mvhi	0(%r2),-30
  766                ROW == BRD(CAS)
				lhi	%r0,4
		.LVL18:
				ahi	%r3,-1
		.LVL21:
				cije	%r5,6,.L17
		.L11:
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				larl	%r2,KCAS.6755+8
				mvhi	0(%r2),30
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
				larl	%r5,BRD.6706
				lgfr	%r3,%r3
				sllg	%r3,%r3,7
		.LVL30:
				st	%r2,96(%r3,%r5)
  769                   ROW_R(8)_P = 0
				st	%r0,80(%r3,%r5)
				la	%r3,112(%r3,%r5)
				mvhi	0(%r3),0
  770                %FINISHELSESTART
				j	.L12
		.LVL31:
		.L8:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
				larl	%r5,BRD.6706
				lgfr	%r3,%r3
				sllg	%r3,%r3,7
		.LVL22:
				st	%r2,32(%r3,%r5)
  772                   ROW_R(1)_P = 0
				st	%r0,48(%r3,%r5)
				la	%r3,0(%r3,%r5)
		.LVL23:
				mvhi	0(%r3),0
		.LVL24:
		.L12:
  773                %FINISH
  774                SQ_P = 0
				lgfr	%r1,%r1
				sllg	%r1,%r1,3
		.LVL25:
				agfr	%r1,%r4
				sllg	%r1,%r1,4
				larl	%r3,BRD.6706
				la	%r1,0(%r1,%r3)
				mvhi	0(%r1),0
  775                %RESULT = KING
				j	.L13
		.LVL26:
		.L16:
  776             %FINISH
  777             SQ_P = LIST_SPEC
				lgfr	%r2,%r1
		.LVL32:
				sllg	%r2,%r2,3
				agfr	%r2,%r4
				sllg	%r2,%r2,4
				larl	%r11,BRD.6706
		.LVL33:
				st	%r5,0(%r2,%r11)
  778          %FINISHELSESTART
				j	.L14
		.LVL34:
		.L7:
  779             SQ_P = BRD(Y)_R(X)_P
				larl	%r11,BRD.6706
		.LVL35:
				ahik	%r5,%r0,-1
				ahik	%r2,%r3,-1
		.LVL36:
				lgfr	%r2,%r2
				sllg	%r2,%r2,3
				agfr	%r2,%r5
				sllg	%r2,%r2,4
				lgfr	%r5,%r1
				sllg	%r5,%r5,3
				agfr	%r5,%r4
				sllg	%r5,%r5,4
				l	%r2,0(%r2,%r11)
				st	%r2,0(%r5,%r11)
		.L14:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
				larl	%r2,BRD.6706
				ahi	%r0,-1
		.LVL37:
				ahi	%r3,-1
		.LVL38:
				lgfr	%r3,%r3
				sllg	%r3,%r3,3
		.LVL39:
				agfr	%r3,%r0
				sllg	%r3,%r3,4
				la	%r3,0(%r3,%r2)
				mvhi	0(%r3),0
  782          %RESULT = SQ_P
				lgfr	%r1,%r1
				sllg	%r1,%r1,3
		.LVL40:
				agfr	%r1,%r4
				sllg	%r1,%r1,4
				l	%r2,0(%r1,%r2)
		.LVL41:
		.L13:
  783       %END
				lgfr	%r2,%r2
				lgdr	%r10,%f2
				lgdr	%r11,%f0
				br	%r14
		.LFE196:
				.align	8
		RESTOREBOARD.6796:
		.LFB197:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL42:
				ldgr	%f0,%r11
  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
				lg	%r4,0(%r2)
		.LVL43:
  791          FROM = LIST_FR;  TO = LIST_TO
				llgc	%r1,4(%r4)
		.LVL44:
  792          X = FROM>>4;  X0 = TO>>4
				llgc	%r5,5(%r4)
		.LVL45:
				risbgn	%r0,%r1,64-32,128+63,28+32
		.LVL46:
  793          Y = FROM&15; Y0 = TO&15
				nilf	%r1,15
		.LVL47:
				risbgn	%r5,%r5,64-32,128+63,28+32
		.LVL49:
				ahi	%r5,-1
		.LVL50:
  794          SQ == BRD(Y0)_R(X0)
				risbg	%r11,%r5,60,128+63,0
		.LVL48:
				ahik	%r3,%r11,-1
  795          %IF LIST_SPEC # 0 %START
				lt	%r4,8(%r4)
		.LVL51:
				je	.L28
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cijle	%r4,5,.L21
  797                %IF Y0 = 1 %START
				cije	%r11,1,.L30
		.L22:
		.LVL52:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
  799                %FINISHELSESTART
				lhi	%r2,-6
		.LVL64:
				j	.L23
		.LVL65:
		.L31:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
				lhi	%r11,8
		.LVL55:
				lhi	%r0,-4
		.LVL63:
  801                %FINISH
				lhi	%r2,6
		.LVL56:
		.L23:
				larl	%r1,KCAS.6755
		.LVL62:
				mvhi	0(%r1),0
  802                ROW == BRD(CAS)
				lhi	%r0,4
		.LVL54:
				ahi	%r11,-1
		.LVL57:
				cije	%r4,6,.L31
		.L24:
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				larl	%r1,KCAS.6755+8
		.LVL53:
				mvhi	0(%r1),0
  804                   ROW_R(8)_P = ROOK
				larl	%r1,BRD.6706
				lgfr	%r11,%r11
				sllg	%r11,%r11,7
		.LVL66:
				st	%r0,112(%r11,%r1)
		.LVL67:
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
				la	%r4,96(%r11,%r1)
				mvhi	0(%r4),0
  806                %FINISHELSESTART
				la	%r1,80(%r11,%r1)
				mvhi	0(%r1),0
				j	.L25
		.LVL68:
		.L21:
  807                   ROW_R(1)_P = ROOK
				larl	%r1,BRD.6706
				lgfr	%r11,%r11
				sllg	%r11,%r11,7
		.LVL58:
				st	%r0,0(%r11,%r1)
		.LVL59:
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
				la	%r4,32(%r11,%r1)
				mvhi	0(%r4),0
  809                %FINISH
				la	%r1,48(%r11,%r1)
				mvhi	0(%r1),0
		.L25:
  810                SQ_P = KING
				lgfr	%r3,%r3
				sllg	%r1,%r3,3
				agfr	%r1,%r5
				sllg	%r1,%r1,4
				larl	%r3,BRD.6706
		.LVL60:
				st	%r2,0(%r1,%r3)
  811                %RETURN
				j	.L19
		.LVL61:
		.L30:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
				cije	%r11,8,.L32
		.L27:
  814          %FINISH
				lgfr	%r4,%r5
				aghi	%r4,56
				sllg	%r4,%r4,4
				larl	%r11,BRD.6706
		.LVL77:
				la	%r4,0(%r4,%r11)
				mvhi	0(%r4),-1
		.LVL78:
  815          BRD(Y)_R(X)_P = SQ_P
				larl	%r4,BRD.6706
				lgfr	%r3,%r3
				sllg	%r3,%r3,3
		.LVL71:
				agfr	%r3,%r5
				sllg	%r3,%r3,4
				ahi	%r0,-1
		.LVL72:
				ahi	%r1,-1
		.LVL73:
				lgfr	%r1,%r1
				sllg	%r1,%r1,3
		.LVL74:
				agfr	%r1,%r0
				sllg	%r1,%r1,4
				l	%r5,0(%r3,%r4)
				st	%r5,0(%r1,%r4)
				j	.L28
		.LFE197:
				.section	.rodata.str1.2,"aMS",@progbits,1
				.align	2
		.LC33:
				.string	"Illegal cycle I = 1, 1, WIDTH"
				.section	.rodata
				.align	2
		.LC6:
				.byte	19
				.string	"test-new/chess9.imp"
				.zero	235
		.text
				.align	8
		SORTANDPRUNE.6783:
		.LFB195:
  816          SQ_P = B_HOLD
				l	%r1,0(%r2)
				st	%r1,0(%r3,%r4)
		.LVL75:
		.L19:
  817       %END
				lgfr	%r4,%r3
				sllg	%r4,%r4,3
				agfr	%r4,%r5
				sllg	%r4,%r4,4
				larl	%r11,BRD.6706
		.LVL69:
				la	%r4,0(%r4,%r11)
				mvhi	0(%r4),1
		.LVL70:
		.L20:
		.L28:
  818       !!
				lgdr	%r11,%f0
				br	%r14
		.LVL76:
		.L32:
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
		.LVL572:
				stmg	%r7,%r15,56(%r15)
				lay	%r15,-160(%r15)
				lgr	%r10,%r2
				lgr	%r11,%r3
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				lg	%r2,0(%r2)
		.LVL573:
				brasl	%r14,TELL.6802
		.LVL574:
		.LBB542:
		.LBB543:
				lgrl	%r7,_imp_OutStream@GOTENT
				mvhi	0(%r7),2
				lgrl	%r9,_imp_OutFile@GOTENT
				lgrl	%r8,_imp_outfile@GOTENT
				lg	%r1,584(%r8)
				stg	%r1,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL575:
		.LBE543:
		.LBE542:
		.LBB544:
		.LBB545:
				lghi	%r2,42
				brasl	%r14,_imp_printsymbol@PLT
		.LVL576:
		.LBE545:
		.LBE544:
  824          SELECT OUTPUT(2)
  825          PRINTSYMBOL('*'); TELL(X_L, W)
  826          SELECT OUTPUT(0)
				lgr	%r3,%r11
				lg	%r2,0(%r10)
				brasl	%r14,TELL.6802
		.LVL577:
		.LBB546:
		.LBB547:
				mvhi	0(%r7),0
				lg	%r1,8(%r8)
				stg	%r1,0(%r9)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL578:
		.LBE547:
		.LBE546:
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				lgr	%r2,%r10
				brasl	%r14,CHANGEBOARD.6794
		.LVL579:
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				sllk	%r1,%r11,1
				ar	%r1,%r11
				sll	%r1,1
				crje	%r1,%r2,.L409
		.L407:
		.L406:
  830       %END
				ahi	%r11,1
				lgfr	%r11,%r11
				larl	%r1,KMOVE.6754
				la	%r1,0(%r11,%r1)
				mvi	0(%r1),1
				j	.L406
		.LFE198:
				.section	.rodata
				.align	4
		.LC1:
				.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
				.align	4
		.LC3:
				.long	-2
				.long	-3
				.long	-3
				.long	-2
				.long	2
				.long	3
				.long	3
				.long	2
				.long	-4
				.long	-4
				.long	4
				.long	4
				.align	4
		.LC4:
				.long	-7
				.long	-7
				.long	-7
				.long	-7
				.long	7
				.long	7
				.long	7
				.long	7
				.long	-10
				.long	-10
				.long	10
				.long	10
				.align	2
		.LC7:
				.byte	92
				.string	"Version 2.5\nHOW DIFFICULT A GAME DO YOU WANT?\n      2 = NORMAL STRENGTH, 3 = MORE DIFFI
				.zero	162
				.align	2
		.LC8:
				.byte	4
				.string	"2-4?"
				.zero	250
				.align	2
		.LC9:
				.byte	5
				.string	"Move?"
				.zero	249
				.align	2
		.LC10:
				.byte	4
				.string	"MON?"
				.zero	250
				.align	2
		.LC11:
				.byte	8
				.string	"NEW PLY?"
				.zero	246
				.align	2
		.LC12:
				.byte	33
				.string	"INVALID MOVE - MY FORMAT IS D2D4\n"
				.zero	221
		.text
				.align	8
		.globl main
		main:
		.LFB185:
  831       !!
				lg	%r4,272(%r15)
				lmg	%r7,%r15,216(%r15)
		.LVL580:
				br	%r4
		.LVL581:
		.L409:
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
		.LVL188:
				stmg	%r10,%r15,80(%r15)
				lay	%r15,-1448(%r15)
				lgr	%r11,%r3
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1440(8,%r15),40(%r1)
  833
  834          %IF ADDR(MOVE) = 0 %START
				cgije	%r2,0,.L129
		.L122:
				lgr	%r10,%r2
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				cijl	%r3,0,.L131
		.L123:
		.LBB361:
  836 ")          %ELSE %C
				larl	%r1,.LC19
				mvc	1184(256,%r15),0(%r1)
				mvc	416(256,%r15),1184(%r15)
				mvc	928(256,%r15),416(%r15)
		.LBE366:
		.LBB367:
		.LBB368:
				mvc	160(256,%r15),928(%r15)
				aghik	%r2,%r15,160
		.LVL206:
				brasl	%r14,_imp_printstring@PLT
		.LVL207:
				j	.L124
		.LVL208:
		.L125:
		.LBE368:
		.LBE367:
		.LBB369:
		.LBB370:
				lghi	%r2,4
				brasl	%r14,_imp_spaces@PLT
		.LVL209:
		.LBE370:
		.LBE369:
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
				larl	%r1,.LC20
				mvc	1184(256,%r15),0(%r1)
				mvc	672(256,%r15),1184(%r15)
				mvc	1184(256,%r15),672(%r15)
		.LBE361:
		.LBB362:
		.LBB363:
				mvc	160(256,%r15),1184(%r15)
				aghik	%r2,%r15,160
		.LVL203:
				brasl	%r14,_imp_printstring@PLT
		.LVL204:
		.L124:
		.LBE363:
		.LBE362:
		.LBB364:
		.LBB365:
				lghi	%r2,0
				brasl	%r14,exit@PLT
		.LVL205:
		.L131:
		.LBE365:
		.LBE364:
		.LBB366:
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				lghi	%r3,1
		.LVL189:
				lgfrl	%r2,NO.6765
		.LVL190:
				brasl	%r14,_imp_writeint@PLT
		.LVL191:
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				cijle	%r11,0,.L125
		.LVL192:
		.LBB350:
		.LBB351:
				lghi	%r2,25
				brasl	%r14,_imp_spaces@PLT
		.LVL193:
		.LBE351:
		.LBE350:
  844          PRINTMOVE(MOVE)
				lgr	%r2,%r10
				brasl	%r14,PRINTMOVE.6806
		.LVL194:
		.LBB352:
				lgr	%r2,%r10
				brasl	%r14,PRINTMOVE.6806
		.LVL210:
		.LBB371:
  845          PRINTSTRING("(")
				larl	%r1,.LC21
				mvc	1184(256,%r15),0(%r1)
				mvc	416(256,%r15),1184(%r15)
				mvc	928(256,%r15),416(%r15)
		.LBE352:
		.LBB353:
		.LBB354:
				mvc	160(256,%r15),928(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL195:
		.LBE354:
		.LBE353:
				larl	%r1,.LC21
				mvc	1184(256,%r15),0(%r1)
				mvc	416(256,%r15),1184(%r15)
				mvc	928(256,%r15),416(%r15)
		.LBE371:
		.LBB372:
		.LBB355:
				mvc	160(256,%r15),928(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL211:
		.LDL7:
		.LBE355:
		.LBE372:
  846          %IF WHICH > 0 %START
  847             TIMTT = CPUTIME-TIME
				brasl	%r14,CPUTIME@PLT
		.LVL196:
		.LBB356:
		.LBB357:
				lghi	%r3,2
				lghi	%r2,1
				larl	%r1,TIME.6762
		.LVL197:
				sdb	%f0,0(%r1)
		.LVL198:
				brasl	%r14,_imp_print@PLT
		.LVL199:
		.L126:
		.LBE357:
		.LBE356:
		.LBB358:
  848            PRINT(TIMTT, 1, 2)
  849          %FINISHELSESTART
  850             PRINT(CPUTIME-TIME2, 1, 2)
				brasl	%r14,CPUTIME@PLT
		.LVL212:
		.LBB373:
		.LBB374:
				lghi	%r3,2
				lghi	%r2,1
				larl	%r1,TIME2.6763
		.LVL213:
				sdb	%f0,0(%r1)
		.LVL214:
				brasl	%r14,_imp_print@PLT
		.LVL215:
				j	.L126
		.LVL216:
		.L130:
		.LBE374:
		.LBE373:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				larl	%r1,.LC22
				mvc	1184(256,%r15),0(%r1)
				mvc	672(256,%r15),1184(%r15)
				mvc	1184(256,%r15),672(%r15)
		.LBE358:
		.LBB359:
		.LBB360:
				mvc	160(256,%r15),1184(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL200:
		.LBE360:
		.LBE359:
  853 ")
  854       %END
  855       !!
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	1440(8,%r15),40(%r1)
				jne	.L130
				lg	%r4,1560(%r15)
				lmg	%r10,%r15,1528(%r15)
		.LVL201:
				br	%r4
		.LVL202:
		.L129:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL217:
		.LFE199:
				.align	8
		READM.7330:
		.LFB207:
  856       %ROUTINE PRINTBOARD
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-2056(%r15)
				aghi	%r14,-16
				std	%f8,0(%r14)
				std	%f10,8(%r14)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	2032(8,%r15),40(%r1)
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				larl	%r1,.LC13
				mvc	1968(64,%r15),0(%r1)
  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
				stmg	%r14,%r15,112(%r15)
				lay	%r15,-936(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	928(8,%r15),40(%r1)
		.LBB316:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
				larl	%r1,.LC18
				mvc	672(256,%r15),0(%r1)
				mvc	416(256,%r15),672(%r15)
				mvc	672(256,%r15),416(%r15)
		.LBE316:
		.LBB317:
		.LBB318:
				mvc	160(256,%r15),672(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL145:
		.LBE318:
		.LBE317:
  869 ")
  870          %END
  871          !!
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	928(8,%r15),40(%r1)
				jne	.L89
				lg	%r4,1048(%r15)
				lmg	%r14,%r15,1048(%r15)
				br	%r4
		.L89:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL146:
		.LFE201:
				.align	8
		BURP.7306:
		.LFB203:
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				mvi	1955(%r15),107
				mvi	1956(%r15),113
				mvi	1957(%r15),114
				mvi	1958(%r15),98
				mvi	1959(%r15),110
				mvi	1960(%r15),112
				mvi	1961(%r15),32
				mvi	1962(%r15),80
				mvi	1963(%r15),78
				mvi	1964(%r15),66
				mvi	1965(%r15),82
				mvi	1966(%r15),81
				mvi	1967(%r15),75
		.LVL162:
				larl	%r1,BRD.6706+896
				ldgr	%f10,%r1
				lhi	%r9,0
  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)
				lhi	%r6,9
		.LBB327:
  881             LINE
				brasl	%r14,LINE.7272
		.LVL180:
  882             WRITE(Y, 1)
				cije	%r9,64,.L118
		.LVL178:
		.L108:
				lghi	%r3,1
				lgfr	%r2,%r6
				brasl	%r14,_imp_writeint@PLT
		.LVL181:
				lgdr	%r11,%f10
				lhi	%r10,8
				j	.L106
		.LVL182:
		.L118:
		.L109:
  883             %CYCLE X = 1, 1, 8
				ahi	%r6,-1
		.LVL179:
  884                PRINTSTRING("! ")
				larl	%r7,.LC15
		.LBE327:
		.LBB328:
		.LBB329:
				aghik	%r1,%r15,160
				ldgr	%f8,%r1
		.LBE329:
		.LBE328:
		.LBB331:
				mvc	1699(256,%r15),0(%r7)
				mvc	419(256,%r15),1699(%r15)
				mvc	1187(256,%r15),419(%r15)
		.LBE336:
		.LBB337:
		.LBB330:
				mvc	160(256,%r15),1187(%r15)
				lgdr	%r2,%f8
				brasl	%r14,_imp_printstring@PLT
		.LVL170:
		.LBE330:
		.LBE337:
  885                P = ROW_R(X)_P
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				brct	%r10,.L106
				lt	%r8,0(%r11)
				jne	.L116
		.L100:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				ahik	%r1,%r8,6
		.LVL164:
				lgfr	%r1,%r1
		.LBB332:
		.LBB333:
				llgc	%r2,1955(%r1,%r15)
				brasl	%r14,_imp_printsymbol@PLT
		.LVL165:
		.LDL3:
		.LDL4:
		.LBE333:
		.LBE332:
				la	%r1,2040(%r15)
				agfr	%r1,%r9
				cliy	-72(%r1),1
				je	.L117
		.L103:
		.LVL171:
		.LBB338:
		.LBB339:
				lghi	%r2,32
				brasl	%r14,_imp_printsymbol@PLT
		.LVL172:
		.L101:
		.LBE339:
		.LBE338:
		.LBB340:
		.LBB341:
				lghi	%r2,32
				brasl	%r14,_imp_printsymbol@PLT
		.LVL173:
				j	.L105
		.LVL174:
		.L117:
		.LBE341:
		.LBE340:
		.LBB342:
		.LBB343:
				lghi	%r2,42
				brasl	%r14,_imp_printsymbol@PLT
		.LVL175:
				j	.L101
		.LVL176:
		.L115:
		.L107:
		.LBE343:
		.LBE342:
		.LBB344:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				cijle	%r8,0,.L101
		.LVL166:
		.LBB334:
		.LBB335:
				lghi	%r2,43
				brasl	%r14,_imp_printsymbol@PLT
		.LVL167:
		.L105:
		.LDL5:
				aghi	%r11,16
				ahi	%r9,1
		.LVL168:
		.LBE335:
		.LBE334:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
  893             %REPEAT
  894             PRINTSTRING("!
				larl	%r13,.LC16
				j	.L108
		.LVL163:
		.L116:
		.LBE331:
				mvc	1699(256,%r15),0(%r13)
				mvc	675(256,%r15),1699(%r15)
				mvc	1443(256,%r15),675(%r15)
		.LBE344:
		.LBB345:
		.LBB346:
				mvc	160(256,%r15),1443(%r15)
				lgdr	%r2,%f8
				brasl	%r14,_imp_printstring@PLT
		.LVL177:
		.LDL6:
				lgdr	%r1,%f10
				aghi	%r1,-128
				ldgr	%f10,%r1
		.LBE346:
		.LBE345:
  895 ")
  896          %REPEAT
				j	.L115
		.LVL169:
		.L106:
		.LBB336:
  897          LINE
				brasl	%r14,LINE.7272
		.LVL183:
		.LBB347:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				larl	%r1,.LC17
				mvc	1699(256,%r15),0(%r1)
				mvc	931(256,%r15),1699(%r15)
				mvc	1699(256,%r15),931(%r15)
		.LBE347:
		.LBB348:
		.LBB349:
				mvc	160(256,%r15),1699(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL184:
		.LBE349:
		.LBE348:
  899 ")
  900       %END
?I unused
  901       !!
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	2032(8,%r15),40(%r1)
				jne	.L119
				ld	%f8,2040(%r15)
				ld	%f10,2048(%r15)
				lg	%r4,2168(%r15)
				lmg	%r6,%r15,2104(%r15)
		.LVL185:
				br	%r4
		.LVL186:
		.L119:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL187:
		.LFE200:
				.section	.rodata
				.align	2
		.LC21:
				.byte	1
				.string	"("
				.zero	253
				.align	2
		.LC22:
				.byte	7
				.string	" Secs)\n"
				.zero	247
				.align	2
		.LC20:
				.byte	8
				.string	"YOU WIN\n"
				.zero	246
				.align	2
		.LC19:
				.byte	6
				.string	"I Win\n"
				.zero	248
		.text
				.align	8
		TELL.6802:
		.LFB199:
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
		.LVL154:
				stmg	%r11,%r15,88(%r15)
				lay	%r15,-160(%r15)
				lgr	%r11,%r2
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
		.LVL147:
				stmg	%r11,%r15,88(%r15)
				lay	%r15,-160(%r15)
				lgr	%r11,%r2
		.LVL148:
  906             PRINTSYMBOL((X>>4)+'A'-1)
				srl	%r2,4
		.LVL149:
				ahi	%r2,64
		.LBB319:
		.LBB320:
				llgcr	%r2,%r2
				brasl	%r14,_imp_printsymbol@PLT
		.LVL150:
		.LBE320:
		.LBE319:
  907             PRINTSYMBOL(X&15+'0')
				risbg	%r11,%r11,60,128+63,0
		.LVL151:
		.LBB321:
		.LBB322:
				la	%r2,48(%r11)
				brasl	%r14,_imp_printsymbol@PLT
		.LVL152:
		.LBE322:
		.LBE321:
		.LBB323:
		.LBB324:
				brasl	%r14,_imp_space@PLT
		.LVL153:
		.LBE324:
		.LBE323:
  908             SPACE
  909          %END
  910          !!
				lg	%r4,272(%r15)
				lmg	%r11,%r15,248(%r15)
				br	%r4
		.LFE203:
				.align	8
		PRINTMOVE.6806:
		.LFB202:
  911          BURP(LIST_FR); BURP(LIST_TO)
				llgc	%r2,4(%r2)
		.LVL155:
				brasl	%r14,BURP.7306
		.LVL156:
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				llgc	%r2,5(%r11)
				brasl	%r14,BURP.7306
		.LVL157:
				lt	%r1,12(%r11)
				jne	.L97
		.L95:
  913          WRITE(LIST_SCORE, 5)
				lghi	%r3,5
				lgf	%r2,8(%r11)
				brasl	%r14,_imp_writeint@PLT
		.LVL158:
  914       %END
?K unused
?J unused
?I unused
  915       !!
				lg	%r4,272(%r15)
				lmg	%r11,%r15,248(%r15)
		.LVL159:
				br	%r4
		.LVL160:
		.L97:
		.LBB325:
		.LBB326:
				lghi	%r2,43
				brasl	%r14,_imp_printsymbol@PLT
		.LVL161:
				j	.L95
		.LBE326:
		.LBE325:
		.LFE202:
				.section	.rodata
				.align	2
		.LC13:
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.align	2
		.LC15:
				.byte	2
				.string	"! "
				.zero	252
				.align	2
		.LC16:
				.byte	2
				.string	"!\n"
				.zero	252
				.align	2
		.LC17:
				.byte	34
				.string	"    A   B   C   D   E   F   G   H\n"
				.zero	220
		.text
				.align	8
		PRINTBOARD.6804:
		.LFB200:
  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
				cije	%r9,0,.L440
				llc	%r3,3284(%r15)
				ltg	%r1,0(%r1)
		.LVL656:
				je	.L440
		.LVL657:
		.L444:
				llc	%r2,4(%r1)
				crjlh	%r2,%r3,.L443
  923                %START
				lgdr	%r1,%f8
				llc	%r4,3285(%r15)
				j	.L444
		.LVL646:
		.L455:
		.L434:
		.LBE699:
		.LBE698:
		.LBB701:
		.LBB702:
				lgr	%r2,%r11
				brasl	%r14,_imp_readsymbol@PLT
		.LVL647:
		.LBE702:
		.LBE701:
				llc	%r2,5(%r1)
				crjlh	%r2,%r4,.L443
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				l	%r2,8(%r1)
				st	%r2,3288(%r15)
  925                   %RESULT = 1
				l	%r1,12(%r1)
		.LVL658:
				st	%r1,3292(%r15)
		.LDL27:
		.LVL659:
		.LBE700:
		.LBE715:
		.LBB716:
		.LBB717:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL660:
		.LBE717:
		.LBE716:
  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))
				lgr	%r0,%r6
				lghi	%r4,-1
				lghi	%r3,100
				lgr	%r2,%r9
				brasl	%r14,SORTANDPRUNE.6783
		.LVL673:
				lgr	%r13,%r2
				lr	%r9,%r2
		.LVL674:
				ldgr	%f8,%r2
		.LVL675:
  936          L == LIST
				lgr	%r8,%r2
		.L424:
		.LVL676:
		.L451:
		.L425:
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				lgr	%r2,%r8
				brasl	%r14,PRINTMOVE.6806
		.LVL677:
		.LBB722:
		.LBB723:
				brasl	%r14,_imp_newline@PLT
		.LVL678:
		.LBE723:
		.LBE722:
  939             L == L_L
  940             %EXIT %IF ADDR(L) = 0
				ltg	%r8,0(%r8)
		.LVL679:
				jne	.L451
		.L426:
		.LVL680:
		.LBB724:
		.LBB725:
				lgrl	%r1,_imp_OutStream@GOTENT
				mvhi	0(%r1),0
				lgrl	%r1,_imp_OutFile@GOTENT
				lgrl	%r2,_imp_outfile@GOTENT
				lg	%r2,8(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL681:
				j	.L427
		.LBE725:
		.LBE724:
		.LBE719:
		.LBE718:
		.LBE727:
		.LBE733:
		.LFE185:
				.section	.rodata
				.align	2
		__PRETTY_FUNCTION__.6293:
				.string	"_imp_SELECTOUTPUT"
				.section	.data.rel.ro.local,"aw",@progbits
				.align	8
		MOVE.7038:
				.quad	.L278
				.quad	.L281
				.quad	.L285
				.quad	.L296
				.quad	.L286
				.quad	.L304
				.section	.rodata
				.align	4
		KCASCH.7034:
				.long	1
				.long	0
				.long	8
				.align	2
		__PRETTY_FUNCTION__.6289:
				.string	"_imp_SELECTINPUT"
				.align	4
		PINX.6734:
				.zero	128
				.align	4
		PINY.6735:
				.zero	128
				.comm	PINPT.6738,4,4
				.comm	PX.6739,4,4
				.comm	PY.6740,4,4
				.comm	KMOVE.6754,3,2
				.comm	KCAS.6755,12,4
				.comm	SCOREA.6766,4,4
				.comm	XDEPTH.6767,4,4
				.comm	JUSTONEPLY.6770,4,4
				.comm	LASTCHK.6772,4,4
		.data
				.align	4
		NO.6765:
				.long	1
				.comm	TIME.6762,8,8
				.comm	TIME2.6763,8,8
				.comm	BRD.6706,1024,4
				.comm	MON.6769,4,4
				.comm	PDEPTH.6768,4,4
		.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)
		.LVL218:
				stmg	%r10,%r15,80(%r15)
				lay	%r15,-176(%r15)
				lgr	%r10,%r2
				lgr	%r11,%r3
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	168(8,%r15),40(%r1)
		.LVL219:
		.L134:
		.LBB375:
		.LBB376:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL220:
		.LBE376:
		.LBE375:
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  950             READSYMBOL(I)
				cijlh	%r2,10,.L135
		.LBB377:
		.LBB378:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL221:
				j	.L134
		.L135:
		.LVL222:
		.LBE378:
		.LBE377:
		.LBB379:
		.LBB380:
				aghik	%r2,%r15,160
		.LVL223:
				brasl	%r14,_imp_readsymbol@PLT
		.LVL224:
		.L136:
		.LBE380:
		.LBE379:
		.LBB381:
		.LBB382:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL225:
		.LBE382:
		.LBE381:
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  952             READSYMBOL(J)
				cijlh	%r2,10,.L137
		.LBB383:
		.LBB384:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL226:
				j	.L136
		.L137:
		.LVL227:
		.LBE384:
		.LBE383:
		.LBB385:
		.LBB386:
				aghik	%r2,%r15,164
		.LVL228:
				brasl	%r14,_imp_readsymbol@PLT
		.LVL229:
		.LBE386:
		.LBE385:
  953             X = I-'A'+1;  Y = J-'0'
				l	%r1,160(%r15)
				ahi	%r1,-64
				st	%r1,0(%r10)
  954             %RESULT = 0
				l	%r1,164(%r15)
				ahi	%r1,-48
				st	%r1,0(%r11)
  955          %END
				lghi	%r2,0
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	168(8,%r15),40(%r1)
				jne	.L140
				lg	%r4,288(%r15)
				lmg	%r10,%r15,256(%r15)
		.LVL230:
				br	%r4
		.LVL231:
		.L140:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL232:
		.LFE207:
				.section	.rodata
				.align	2
		.LC24:
				.byte	21
				.string	"OUT OF FREE CELLS!!!\n"
				.zero	233
				.align	2
		.LC26:
				.byte	6
				.string	"SCORE:"
				.zero	248
				.align	2
		.LC25:
				.byte	3
				.string	"---"
				.zero	251
		.text
				.align	8
		DOM.7047:
		.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)
				larl	%r1,JUSTONEPLY.6770
				mvhi	0(%r1),1
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				aghik	%r6,%r15,3280
				lgr	%r0,%r6
				lghi	%r3,0
				lghi	%r2,-1
				brasl	%r14,MOVES.6789
		.LVL670:
  962          JUST ONE PLY = 0
				larl	%r1,JUSTONEPLY.6770
				mvhi	0(%r1),0
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				lgr	%r9,%r2
				cgije	%r2,0,.L463
		.L423:
		.LVL671:
		.LBB718:
		.LBB719:
		.LBB720:
		.LBB721:
				lgrl	%r1,_imp_OutStream@GOTENT
				mvhi	0(%r1),2
				lgrl	%r1,_imp_OutFile@GOTENT
				lgrl	%r2,_imp_outfile@GOTENT
				lg	%r2,584(%r2)
				stg	%r2,0(%r1)
				larl	%r2,__PRETTY_FUNCTION__.6293
				brasl	%r14,check_outstream@PLT
		.LVL672:
		.LBE721:
		.LBE720:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				lghi	%r3,-1
				brasl	%r14,TELL.6802
		.LVL615:
				j	.L423
		.L456:
		.LBB661:
		.LBB662:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL616:
		.LBE662:
		.LBE661:
		.LBB663:
  965 AGAIN:
  966          LM_SPEC = 0
				mvhi	3288(%r15),0
		.LBB684:
		.LBB685:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL632:
		.LBE685:
		.LBE684:
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				cije	%r2,77,.L456
		.L428:
		.LBB686:
		.LBB687:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL633:
		.LBE687:
		.LBE686:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				larl	%r1,.LC10
				mvc	1744(256,%r15),0(%r1)
				mvc	3024(256,%r15),1744(%r15)
		.LBE663:
				mvc	160(256,%r15),3024(%r15)
				lgr	%r2,%r10
				brasl	%r14,PROMPT@PLT
		.LVL617:
  970             PROMPT("Move?")
				larl	%r2,MON.6769
				brasl	%r14,_imp_readint@PLT
		.LVL618:
		.LBB664:
		.LBB665:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL619:
		.LBE665:
		.LBE664:
		.LBB666:
				larl	%r1,.LC9
				mvc	1744(256,%r15),0(%r1)
				mvc	2768(256,%r15),1744(%r15)
		.LBE666:
				mvc	160(256,%r15),2768(%r15)
				lgr	%r2,%r10
				brasl	%r14,PROMPT@PLT
		.LVL620:
				j	.L427
		.L457:
		.LBB667:
		.LBB668:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL621:
		.LBE668:
		.LBE667:
		.LBB669:
		.LBB670:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL622:
				j	.L430
		.L458:
		.LBE670:
		.LBE669:
		.LBB671:
  971             ->AGAIN
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				cije	%r2,88,.L457
		.L430:
		.LBB688:
		.LBB689:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL634:
		.LBE689:
		.LBE688:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				cije	%r2,80,.L458
		.L431:
		.LBB690:
		.LBB691:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL635:
		.LBE691:
		.LBE690:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				larl	%r1,.LC11
				mvc	1744(256,%r15),0(%r1)
				mvc	2512(256,%r15),1744(%r15)
		.LBE671:
				mvc	160(256,%r15),2512(%r15)
				lgr	%r2,%r10
				brasl	%r14,PROMPT@PLT
		.LVL623:
		.LBB672:
		.LBB673:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL624:
		.LBE673:
		.LBE672:
  978             READ(PDEPTH); SKIPSYMBOL
				larl	%r2,PDEPTH.6768
				brasl	%r14,_imp_readint@PLT
		.LVL625:
		.LBB674:
		.LBB675:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL626:
		.LBE675:
		.LBE674:
		.LBB676:
  979             PROMPT("Move?")
				larl	%r1,.LC9
				mvc	1744(256,%r15),0(%r1)
				mvc	2256(256,%r15),1744(%r15)
		.LBE676:
				mvc	160(256,%r15),2256(%r15)
				lgr	%r2,%r10
				brasl	%r14,PROMPT@PLT
		.LVL627:
				j	.L427
		.L459:
  980             -> AGAIN
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				cije	%r2,79,.L459
		.L432:
  983             X = 0
				mvhi	428(%r15),0
		.LBB677:
		.LBB678:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL628:
		.LBE678:
		.LBE677:
		.LBB679:
		.LBB680:
				lgr	%r2,%r11
				brasl	%r14,_imp_readsymbol@PLT
		.LVL629:
		.LBE680:
		.LBE679:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				l	%r1,424(%r15)
				chi	%r1,45
				je	.L455
		.L433:
		.L440:
		.LBB681:
  986             READSYMBOL(I); -> NO %IF I#'O'
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				l	%r1,424(%r15)
				chi	%r1,79
				jne	.L440
		.L435:
		.LBB703:
		.LBB704:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL648:
		.LBE704:
		.LBE703:
				cije	%r2,45,.L461
		.L436:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				mvhi	428(%r15),1
		.LBB705:
		.LBB706:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL649:
		.LBE706:
		.LBE705:
		.LBB707:
		.LBB708:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL650:
				j	.L436
		.L460:
		.LBE708:
		.LBE707:
		.LBB709:
		.LBB710:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL651:
		.LBE710:
		.LBE709:
		.LBB711:
		.LBB712:
				aghik	%r2,%r15,444
		.LVL652:
				brasl	%r14,_imp_readsymbol@PLT
		.LVL653:
		.LBE712:
		.LBE711:
		.LBB713:
		.LBB714:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL654:
		.LBE714:
		.LBE713:
  989             %FINISH
  990             LM_SPEC = 6+X
				l	%r1,428(%r15)
				ahi	%r1,6
				st	%r1,3288(%r15)
  991             LM_FR = 5<<4+1
				mvi	3284(%r15),81
  992             LM_TO = 5<<4+1
				mvi	3285(%r15),81
				j	.L437
		.L461:
  993          %FINISHELSESTART
  994             I = READM(X, Y);  I=READM(X0, Y0)
				aghik	%r7,%r15,432
		.LBB655:
		.LBB656:
				la	%r10,160(%r15)
		.LVL611:
		.LBE656:
		.LBE655:
		.LBB658:
		.LBB659:
				la	%r11,424(%r15)
				j	.L420
		.L462:
		.LBE659:
		.LBE658:
		.LBE654:
		.LBE653:
				lgr	%r3,%r7
				la	%r2,428(%r15)
				brasl	%r14,READM.7330
		.LVL636:
				st	%r2,424(%r15)
  995             %IF NEXTSYMBOL='(' %START
				la	%r3,440(%r15)
				la	%r2,436(%r15)
				brasl	%r14,READM.7330
		.LVL637:
				st	%r2,424(%r15)
		.LBB692:
		.LBB693:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL638:
		.LBE693:
		.LBE692:
				cije	%r2,40,.L460
		.L438:
		.LBB694:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				lhi	%r1,48
				s	%r1,444(%r15)
				st	%r1,3288(%r15)
				j	.L438
		.LVL655:
		.L443:
		.LDL26:
		.LBB715:
		.LBB700:
  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 ")
				larl	%r1,.LC12
				mvc	1744(256,%r15),0(%r1)
				mvc	2000(256,%r15),1744(%r15)
				mvc	1488(256,%r15),2000(%r15)
		.LBE681:
		.LBB682:
		.LBB657:
				mvc	160(256,%r15),1488(%r15)
				lgr	%r2,%r10
				brasl	%r14,_imp_printstring@PLT
		.LVL630:
		.L441:
		.L452:
		.L442:
		.LBE657:
		.LBE682:
		.LBB683:
		.LBB660:
				lgr	%r2,%r11
				brasl	%r14,_imp_readsymbol@PLT
		.LVL631:
		.LBE660:
		.LBE683:
				l	%r1,428(%r15)
		.LVL639:
				ahik	%r2,%r1,-1
				clijh	%r2,7,.L440
		.LBE694:
		.LBB695:
 1004                %CYCLE
 1005                   READSYMBOL(I)
 1006                   %EXIT %IF I=NL
				l	%r1,424(%r15)
				chi	%r1,10
				jne	.L452
		.L427:
 1007                %REPEAT
 1008                ->AGAIN
 1009             %FINISH
 1010
				l	%r2,436(%r15)
		.LVL640:
				ahik	%r3,%r2,-1
				clijh	%r3,7,.L440
		.LBE695:
		.LBB696:
 1011             !!
 1012             LM_FR = X<<4+Y
				sll	%r1,4
		.LVL643:
				ar	%r1,%r3
				stc	%r1,3284(%r15)
 1013             LM_TO = X0<<4+Y0
				sllk	%r1,%r2,4
				ar	%r1,%r4
				stc	%r1,3285(%r15)
		.LVL644:
		.L437:
 1014          %FINISH
 1015          MMOVE_L == LM
				stg	%r6,3296(%r15)
		.LVL645:
		.LBB698:
		.LBB699:
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
 1017          SKIPSYMBOL
				l	%r3,432(%r15)
		.LVL641:
				ahik	%r4,%r3,-1
				clijh	%r4,7,.L440
		.LBE696:
		.LBB697:
 1018          RELEASE CHAIN(LIST)
				lgr	%r0,%r6
				lgr	%r2,%r13
				brasl	%r14,RELEASECHAIN.6846
		.LVL661:
		.LBE726:
		.LBE728:
 1019       %END
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
				l	%r4,440(%r15)
		.LVL642:
				ahik	%r5,%r4,-1
				clijh	%r5,7,.L440
		.L439:
		.LBE697:
