         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				NO_APP
		.Ltext0:
				.align	2
		RELEASECHAIN.6143:
		.LFB186:
				.loc 1 1 0
				.cfi_startproc
			.LVL650:
		 		link.l %fp,#-60140
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #16188,-(%sp)
				.cfi_offset 2, -60188
				.cfi_offset 3, -60184
				.cfi_offset 4, -60180
				.cfi_offset 5, -60176
				.cfi_offset 6, -60172
				.cfi_offset 7, -60168
				.cfi_offset 10, -60164
				.cfi_offset 11, -60160
				.cfi_offset 12, -60156
				.cfi_offset 13, -60152
				.loc 1 1 0
		 		lea (8,%fp),%a0
			.LVL651:
		 		move.l %a0,-56036(%fp)
				.loc 1 1 0
		 		move.l %d3,%a3
			.LVL669:
			.L360:
    2       %CONSTINTEGER BIT = X'80000000'
				.loc 1 2 0
		 		move.l 12(%fp),-(%sp)
		 		move.l 8(%fp),-(%sp)
		 		jsr _imp_initialise
			.LVL652:
    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
				.loc 1 50 0
		 		move.l #256,-56652(%fp)
		 		moveq #64,%d0
		 		move.l %d0,-56648(%fp)
		 		moveq #32,%d1
		 		move.l %d1,-56644(%fp)
		 		moveq #8,%d4
		 		move.l %d4,-56640(%fp)
		 		moveq #2,%d0
		 		move.l %d0,-56636(%fp)
		 		moveq #1,%d1
		 		move.l %d1,-56632(%fp)
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				.loc 1 52 0
		 		pea 256.w
		 		pea .LC0
		 		pea -56908(%fp)
		 		jsr memcpy
			.LVL653:
   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
				.loc 1 62 0
		 		move.b #2,-56048(%fp)
		 		move.b #3,-56047(%fp)
		 		move.b #6,-56046(%fp)
		 		move.b #7,-56045(%fp)
		 		move.b #58,-56044(%fp)
		 		move.b #59,-56043(%fp)
		 		move.b #62,-56042(%fp)
		 		move.b #63,-56041(%fp)
		 		move.b #1,-56040(%fp)
		 		move.b #8,-56039(%fp)
		 		move.b #57,-56038(%fp)
		 		move.b #64,-56037(%fp)
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				.loc 1 64 0
		 		moveq #-2,%d4
		 		move.l %d4,-56956(%fp)
		 		moveq #-3,%d0
		 		move.l %d0,-56952(%fp)
		 		move.l %d0,-56948(%fp)
		 		move.l %d4,-56944(%fp)
		 		moveq #2,%d1
		 		move.l %d1,-56940(%fp)
		 		moveq #3,%d4
		 		move.l %d4,-56936(%fp)
		 		move.l %d4,-56932(%fp)
		 		move.l %d1,-56928(%fp)
		 		moveq #-4,%d0
		 		move.l %d0,-56924(%fp)
		 		move.l %d0,-56920(%fp)
		 		moveq #4,%d1
		 		move.l %d1,-56916(%fp)
		 		move.l %d1,-56912(%fp)
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				.loc 1 66 0
		 		moveq #-7,%d4
		 		move.l %d4,-57260(%fp)
		 		move.l %d4,-57256(%fp)
		 		move.l %d4,-57252(%fp)
		 		move.l %d4,-57248(%fp)
		 		moveq #7,%d0
		 		move.l %d0,-57244(%fp)
		 		move.l %d0,-57240(%fp)
		 		move.l %d0,-57236(%fp)
		 		move.l %d0,-57232(%fp)
		 		moveq #-10,%d1
		 		move.l %d1,-57228(%fp)
		 		move.l %d1,-57224(%fp)
		 		moveq #10,%d4
		 		move.l %d4,-57220(%fp)
		 		move.l %d4,-57216(%fp)
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				.loc 1 69 0
		 		move.l #-24000,-56064(%fp)
		 		clr.l -56060(%fp)
		 		move.l #24000,-56056(%fp)
			.LVL654:
		 		move.l #-56028,%a0
		 		add.l %fp,%a0
		 		lea (-28,%fp),%a2
		 		lea (20,%sp),%sp
			.LVL655:
			.L356:
		 		lea (14,%a0),%a1
			.LBB652:
   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)
				.loc 1 104 0
		 		move.l %a1,(%a0)
			.LDL21:
		 		move.l %a1,%a0
  105       %REPEAT
  106       FREELIST == LISTA(0)
				.loc 1 106 0
		 		move.l #-56028,%a0
		 		add.l %fp,%a0
		 		move.l %a0,-56052(%fp)
			.LVL656:
			.LBB653:
			.LBB654:
				.loc 2 628 0
		 		moveq #1,%d0
		 		move.l %d0,_imp_InStream
		 		move.l _imp_infile+280,_imp_InFile
		 		pea __PRETTY_FUNCTION__.5586
		 		jsr check_instream
			.LVL657:
		 		move.l %fp,%d2
			.LVL658:
		 		add.l #-56116,%d2
			.LVL659:
		 		move.l %fp,%d3
			.LVL660:
		 		add.l #-56064,%d3
			.LVL661:
		 		addq.l #4,%sp
			.LBE654:
			.LBE653:
  107       !!
  108       SELECTINPUT(1)
				.loc 1 108 0
		 		cmp.l %a1,%a2
		 		jne .L356
			.L357:
			.LBE652:
  109       %CYCLE I = -6, 1, 6
  110          READ(VAL(I))
				.loc 1 110 0
		 		lea _imp_readint,%a2
			.LVL662:
			.L358:
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL663:
			.LDL22:
		 		addq.l #4,%d2
  111       %REPEAT
  112       READ(PDEPTH)
				.loc 1 112 0
		 		addq.l #4,%sp
		 		cmp.l %d2,%d3
		 		jne .L358
			.L359:
				.loc 1 112 0 discriminator 6
		 		pea PDEPTH.6065
		 		lea _imp_readint,%a2
		 		jsr (%a2)
			.LVL664:
  113       READ(MON);  READ(PLAY)
				.loc 1 113 0 discriminator 6
		 		pea MON.6066
		 		jsr (%a2)
			.LVL665:
  114       I = 1
				.loc 1 114 0 discriminator 6
		 		pea -56032(%fp)
		 		jsr (%a2)
			.LVL666:
		 		move.l #BRD.6003,%d3
			.LVL667:
		 		move.l #-57212,%a2
		 		add.l %fp,%a2
		 		move.l #-56956,%d2
		 		add.l %fp,%d2
		 		lea (12,%sp),%sp
  115       %CYCLE Y = 1,1,8
  116          %CYCLE X = 1,1,8
  117             SQ == BRD(Y)_R(X)
  118             READ(SQ_P)
				.loc 1 118 0 discriminator 6
		 		lea _imp_readint,%a4
			.LVL668:
			.L362:
		 		lea (32,%a2),%a5
				.loc 1 118 0
		 		move.l %a3,-(%sp)
		 		jsr (%a4)
			.LVL670:
				.loc 1 118 0
		 		cmp.l %a2,%d2
		 		jne .L362
			.L361:
			.LVL672:
			.LBB655:
			.LBB656:
				.loc 2 628 0
		 		clr.l _imp_InStream
		 		move.l _imp_infile+4,_imp_InFile
		 		pea __PRETTY_FUNCTION__.5586
			.LVL673:
		 		jsr check_instream
			.LVL674:
			.LBE656:
			.LBE655:
  119             SQI(I)_SQ == SQ
				.loc 1 119 0
		 		move.l %a3,712(%a2)
				.loc 1 119 0
		 		addq.l #4,%sp
		 		cmp.l %a2,%a5
		 		jne .L360
			.LDL24:
			.LDL25:
		 		add.l #128,%d3
  120             PT(I)_P == SQ_P; I = I+1
				.loc 1 120 0
		 		move.l %a3,(%a2)+
			.LDL23:
		 		lea (16,%a3),%a3
			.LVL671:
  121          %REPEAT
  122       %REPEAT
  123       SELECT INPUT(0)
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
  125       LM_SCORE = 0;  LM_CHK = 0
				.loc 1 125 0
		 		clr.l -14(%fp)
				.loc 1 125 0
		 		clr.l -57284(%fp)
  126       MMOVE_L == LM
				.loc 1 126 0
		 		clr.l -57278(%fp)
				.loc 1 126 0
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		move.l %a0,-57274(%fp)
			.LBB657:
  127       PRINTSTRING("Version 2.5
				.loc 1 127 0
		 		move.l %fp,%d3
			.LVL675:
		 		add.l #-57544,%d3
			.LVL676:
		 		move.l #256,%d2
		 		move.l %d2,-(%sp)
		 		pea .LC2
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL677:
		 		move.l %fp,%d5
			.LVL678:
		 		add.l #-60104,%d5
			.LVL679:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d5,-(%sp)
		 		jsr (%a2)
			.LVL680:
		 		move.l %fp,%d4
			.LVL681:
		 		add.l #-59336,%d4
			.LVL682:
		 		move.l %d2,-(%sp)
		 		move.l %d5,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL683:
			.LBE657:
			.LBB658:
			.LBB659:
				.loc 2 589 0
		 		lea (-216,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL684:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL685:
			.LBE659:
			.LBE658:
			.LBB660:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				.loc 1 131 0
		 		add.l %d2,%sp
		 		move.l %d2,-(%sp)
		 		pea .LC3
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL686:
		 		add.l #-512,%d4
			.LVL687:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL688:
			.LBE660:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL689:
		 		lea (12,%sp),%sp
		 		lea PROMPT,%a3
			.LVL690:
		 		jsr (%a3)
			.LVL691:
  132       READ(PDEPTH); SKIPSYMBOL
				.loc 1 132 0
		 		lea (280,%sp),%sp
		 		pea PDEPTH.6065
		 		jsr _imp_readint
			.LVL692:
			.LBB661:
			.LBB662:
				.loc 2 585 0
		 		jsr _imp_skipsymbol
			.LVL693:
			.LBE662:
			.LBE661:
			.LBB663:
  133       PROMPT("Move?")
				.loc 1 133 0
		 		move.l %d2,-(%sp)
		 		pea .LC4
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL694:
		 		add.l #256,%d4
			.LVL695:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL696:
			.LBE663:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL697:
		 		lea (12,%sp),%sp
		 		jsr (%a3)
			.LVL698:
  134       PRINTBOARD
				.loc 1 134 0
		 		lea (284,%sp),%sp
		 		jsr PRINTBOARD.6101
			.LVL699:
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				.loc 1 140 0
		 		jsr CPUTIME
			.LVL700:
		 		fmove.d %fp0,TIME2.6060
			.LBB664:
			.LBB665:
			.LBB666:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				.loc 1 142 0
		 		moveq #1,%d0
		 		cmp.l -56032(%fp),%d0
		 		jeq .L402
			.L365:
			.LBB747:
			.LBB741:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				.loc 1 143 0
		 		lea (-14,%fp),%a2
		 		move.l %a2,-(%sp)
		 		clr.l -(%sp)
		 		pea -1.w
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		jsr NPLY.6076
			.LVL702:
		 		move.l %d0,-14(%fp)
  144             TELL(MOVE_L, -1)
				.loc 1 144 0
		 		pea -1.w
		 		move.l %d0,-(%sp)
		 		jsr TELL.6099
			.LVL703:
  145             I =CHANGE BOARD(MOVE)
				.loc 1 145 0
		 		move.l %a2,-(%sp)
		 		jsr CHANGEBOARD.6091
			.LVL704:
  146          %FINISHELSESTART
				.loc 1 146 0
		 		lea (24,%sp),%sp
		 		jra .L366
			.L403:
			.LBB742:
			.LBB740:
  147             YOURMOVE
  148             BURP(MMOVE, -1)
				.loc 1 148 0
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		lea (14,%a0),%a0
		 		move.l %a0,-60140(%fp)
		 		jra .L364
			.LVL701:
			.L402:
				.loc 1 148 0
		 		pea -1.w
		 		move.l -60140(%fp),-(%sp)
		 		jsr BURP.6096
			.LVL770:
		 		lea (12,%sp),%sp
			.LVL771:
			.L366:
  149          %FINISH
  150          TIME = CPUTIME
				.loc 1 150 0
		 		jsr CPUTIME
			.LVL772:
		 		fmove.d %fp0,TIME.6059
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				.loc 1 151 0
		 		move.l -57274(%fp),-(%sp)
		 		clr.l -(%sp)
		 		pea 1.w
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		jsr NPLY.6076
			.LVL773:
		 		move.l %d0,-14(%fp)
  152          BURP(MOVE, +1)
				.loc 1 152 0
		 		pea 1.w
		 		pea -14(%fp)
		 		jsr BURP.6096
			.LVL774:
  153          PRINTBOARD
				.loc 1 153 0
		 		lea PRINTBOARD.6101,%a3
		 		jsr (%a3)
			.LVL775:
			.LBB743:
			.LBB744:
				.loc 2 629 0
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		lea check_outstream,%a2
		 		jsr (%a2)
			.LVL776:
			.LBE744:
			.LBE743:
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
  155          NO = NO+1
				.loc 1 155 0
		 		jsr (%a3)
			.LVL777:
			.LBB745:
			.LBB746:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr (%a2)
			.LVL778:
			.LBE746:
			.LBE745:
				.loc 1 155 0
		 		addq.l #1,NO.6062
  156       %REPEAT
				.loc 1 156 0
		 		lea (28,%sp),%sp
			.L364:
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
		.LVL0:
		 		link.w %fp,#0
		 		move.l 8(%fp),%d1
		.LVL1:
		 		move.l %d1,%a1
		 		jra .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
		 		move.l %d0,%a1
		.LVL3:
		.L2:
		 		move.l (%a1),%d0
		 		jne .L4
		.L3:
  165          %REPEAT
  166          L_L == FREELIST
		 		move.l 1236(%a0),(%a1)
  167          FREELIST == RECORD(ADDR(L2))
		 		move.l %d1,1236(%a0)
  168       %END
  169       !!
		 		unlk %fp
		 		rts
		.LFE186:
				.align	2
		CHANGEBOARD.6091:
		.LFB196:
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
				.loc 1 170 0
				.cfi_startproc
			.LVL566:
		 		link.w %fp,#-2404
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #16188,-(%sp)
				.cfi_offset 2, -2452
				.cfi_offset 3, -2448
				.cfi_offset 4, -2444
				.cfi_offset 5, -2440
				.cfi_offset 6, -2436
				.cfi_offset 7, -2432
				.cfi_offset 10, -2428
				.cfi_offset 11, -2424
				.cfi_offset 12, -2420
				.cfi_offset 13, -2416
		 		move.l 12(%fp),%d3
		 		move.l %a0,%d5
  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)
				.loc 1 176 0
		 		moveq #8,%d0
		 		move.l %d0,-604(%fp)
		 		move.l %d0,-600(%fp)
		 		moveq #3,%d0
		 		move.l %d0,-596(%fp)
		 		move.l %d0,-592(%fp)
		 		move.l %d0,-588(%fp)
		 		move.l %d0,-584(%fp)
		 		move.l %d0,-580(%fp)
		 		move.l %d0,-576(%fp)
		 		move.l %d0,-572(%fp)
		 		move.l %d0,-568(%fp)
		 		move.l %d0,-564(%fp)
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				.loc 1 178 0
		 		move.l %d3,XDEPTH.6064
  179          DEPTH = DEPTH+1
				.loc 1 179 0
		 		addq.l #1,%d3
			.LVL567:
  180          SWIDTH = XWIDTH(DEPTH)
				.loc 1 180 0
		 		move.l -604(%fp,%d3.l*4),%d4
			.LVL568:
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
				.loc 1 181 0
		 		cmp.l PDEPTH.6065,%d3
		 		jeq .L346
			.LVL569:
			.L317:
  182          LAST CHK = CHAIN_CHK
				.loc 1 182 0 discriminator 1
		 		move.l 16(%fp),%a0
		 		move.l 10(%a0),LASTCHK.6069
			.LVL570:
			.LBB524:
			.LBB525:
				.loc 1 182 0
		 		moveq #1,%d4
			.LVL577:
		 		jra .L317
			.LVL578:
			.L341:
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
  184          I = 1
				.loc 1 184 0
		 		moveq #1,%d2
			.LBB528:
  185          B(1)_L == RECORD(0)
				.loc 1 185 0 discriminator 1
		 		clr.l -560(%fp)
			.LVL574:
  186          FLAG = 0
				.loc 1 186 0
		 		clr.l %d6
  187          %WHILE ADDR(LIST)#0 %CYCLE
  188             BPT == B(I)
				.loc 1 188 0 discriminator 1
		 		lea (20,%sp),%sp
		 		tst.l %d0
		 		jeq .L316
				.loc 1 188 0
		 		tst.l %a3
		 		jeq .L320
			.LVL580:
			.L319:
		 		move.l %a2,%a5
  189             BPT_L == LIST
				.loc 1 189 0 discriminator 1
		 		move.l %a3,(%a2)
  190             LIST == LIST_L
				.loc 1 190 0 discriminator 1
		 		move.l (%a3),%a3
			.LVL581:
  191             %IF MON#0 %START
				.loc 1 191 0 discriminator 1
		 		tst.l MON.6066
		 		jne .L347
			.L321:
  192                SELECT OUTPUT(2)
  193                SPACES(DEPTH*3)
				.loc 1 193 0
		 		move.l %d3,%d0
			.LVL575:
		 		add.l %d0,%d0
		 		add.l %d3,%d0
		 		move.l %d0,-2400(%fp)
		 		lea (-560,%fp),%a2
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				.loc 1 194 0
		 		pea 1.w
		 		move.l %d3,-(%sp)
		 		jsr _imp_writeint
			.LVL594:
			.LBB540:
			.LBB541:
				.loc 2 659 0
		 		pea 2.w
		 		move.l %d7,%a1
		 		jsr (%a1)
			.LVL595:
			.LBE541:
			.LBE540:
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				.loc 1 195 0
		 		lea (24,%sp),%sp
		 		tst.l LASTCHK.6069
		 		jne .L349
			.L322:
			.LBB542:
			.LBB543:
				.loc 2 661 0 discriminator 1
		 		jsr _imp_newline
			.LVL597:
			.LBE543:
			.LBE542:
			.LBB544:
			.LBB545:
				.loc 2 629 0 discriminator 1
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL598:
		 		addq.l #4,%sp
		 		jra .L321
			.LVL599:
			.L349:
			.LBE545:
			.LBE544:
			.LBB546:
  196                NEWLINE
				.loc 1 196 0
		 		lea (-1372,%fp),%a4
			.LBE528:
				.loc 1 196 0
		 		move.l (%a2),-(%sp)
		 		jsr PRINTMOVE.6103
			.LVL596:
				.loc 1 196 0
		 		move.l #256,%d7
		 		move.l %d7,-(%sp)
		 		pea .LC22
		 		move.l %a4,-(%sp)
		 		jsr memcpy
			.LVL600:
		 		move.l %d7,-(%sp)
		 		move.l %a4,-(%sp)
		 		pea -2396(%fp)
		 		jsr memcpy
			.LVL601:
		 		move.l %d7,-(%sp)
		 		pea -2396(%fp)
		 		pea -1116(%fp)
		 		jsr memcpy
			.LVL602:
			.LBE546:
			.LBB547:
			.LBB548:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d7,-(%sp)
		 		pea -1116(%fp)
		 		move.l %d0,-(%sp)
		 		jsr memcpy
			.LVL603:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL604:
		 		add.l %d7,%sp
		 		jra .L322
			.LVL605:
			.L348:
			.LBE548:
			.LBE547:
  197                SELECT OUTPUT(0)
  198             %FINISH
  199             I = I+1
				.loc 1 199 0
		 		addq.l #1,%d2
			.LVL582:
  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'
  203             %IF DEPTH < PDEPTH %START
				.loc 1 203 0
		 		cmp.l PDEPTH.6065,%d3
		 		jlt .L348
			.L323:
			.L325:
  204
  205                CI = CHANGE BOARD(BPT)
				.loc 1 205 0
		 		move.l %a5,-(%sp)
		 		jsr CHANGEBOARD.6091
			.LVL606:
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				.loc 1 206 0
		 		move.l (%a5),-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l 8(%fp),%d0
		 		eor.l #-2,%d0
		 		move.l %d0,-(%sp)
		 		move.l %d5,%a0
		 		jsr NPLY.6076
			.LVL607:
		 		move.l %d0,%d7
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				.loc 1 207 0
		 		move.l 16(%fp),%a0
		 		move.l 10(%a0),LASTCHK.6069
  208                RESTORE BOARD(BPT)
				.loc 1 208 0
		 		move.l %a5,-(%sp)
		 		jsr RESTOREBOARD.6093
			.LVL608:
  209                %UNLESS ADDR(LISTX)=0 %START
				.loc 1 209 0
		 		lea (20,%sp),%sp
		 		tst.l %d7
		 		jne .L350
			.L324:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				.loc 1 210 0
		 		move.l (%a5),%a0
		 		move.l %d7,%a1
		 		move.l 4(%a1),4(%a0)
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				.loc 1 211 0
		 		move.l %d7,-(%sp)
		 		move.l %d5,%a0
		 		jsr RELEASECHAIN.6143
			.LVL609:
  212                %FINISHELSESTART
				.loc 1 212 0
		 		addq.l #1,%d6
			.LVL610:
				.loc 1 212 0
		 		addq.l #4,%sp
		 		jra .L325
			.L327:
			.L330:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				.loc 1 213 0
		 		move.l 8(%fp),%d0
		 		add.l #307,%d0
		 		move.l %d0,-2404(%fp)
		 		jra .L319
			.LVL576:
			.L346:
				.loc 1 213 0
		 		move.l (%a5),%a0
		 		move.l -2404(%fp),%d0
		 		move.l %d5,%a1
		 		move.l (%a1,%d0.l*4),4(%a0)
		 		jra .L325
			.L350:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				.loc 1 217 0
		 		cmp.l %d4,%d2
		 		jle .L326
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
				.loc 1 218 0
		 		tst.l %d6
		 		jne .L330
  219             %IF MON # 0 %START
				.loc 1 219 0
		 		moveq #2,%d0
		 		cmp.l %d2,%d0
		 		jeq .L328
			.L329:
				.loc 1 219 0 discriminator 1
		 		move.l MON.6066,%d0
		 		jeq .L341
			.LVL583:
			.LBB529:
			.LBB530:
				.loc 2 629 0
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL584:
			.LBE530:
			.LBE529:
			.LBB531:
  220                SELECT OUTPUT(2)
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				.loc 1 221 0
		 		move.l #256,%d7
		 		move.l %d7,-(%sp)
		 		pea .LC23
		 		move.l %a4,-(%sp)
		 		lea memcpy,%a5
		 		jsr (%a5)
			.LVL585:
		 		move.l %d7,-(%sp)
		 		move.l %a4,-(%sp)
		 		pea -2140(%fp)
		 		jsr (%a5)
			.LVL586:
		 		move.l %d7,-(%sp)
		 		pea -2140(%fp)
		 		pea -860(%fp)
		 		jsr (%a5)
			.LVL587:
			.LBE531:
			.LBB532:
			.LBB533:
				.loc 2 589 0
		 		lea (-216,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d7,-(%sp)
		 		pea -860(%fp)
		 		move.l %d0,-(%sp)
		 		jsr (%a5)
			.LVL588:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL589:
			.LBE533:
			.LBE532:
			.LBB534:
			.LBB535:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		add.l %d7,%sp
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL590:
		 		addq.l #4,%sp
		 		jra .L326
			.LVL591:
			.L347:
			.LBE535:
			.LBE534:
			.LBB536:
			.LBB537:
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL592:
			.LBE537:
			.LBE536:
			.LBB538:
			.LBB539:
				.loc 2 659 0
		 		move.l -2400(%fp),-(%sp)
		 		move.l #_imp_spaces,%d7
		 		move.l %d7,%a0
		 		jsr (%a0)
			.LVL593:
			.LBE539:
			.LBE538:
  222 ")
  223                SELECT OUTPUT(0)
  224             %FINISH
				.loc 1 224 0
		 		move.l %d0,%d6
			.LVL579:
			.L326:
		 		lea (14,%a2),%a2
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				.loc 1 228 0
		 		tst.l %a3
		 		jeq .L320
			.LVL611:
			.L340:
				.loc 1 228 0
		 		tst.l %a3
		 		jne .L340
			.LVL642:
			.L339:
  229          LIST == RECORD(0)
				.loc 1 229 0
		 		move.l %a3,-(%sp)
		 		move.l %d5,%a0
		 		jsr RELEASECHAIN.6143
			.LVL612:
		 		addq.l #4,%sp
			.L320:
			.LVL613:
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				.loc 1 230 0 discriminator 1
		 		moveq #1,%d0
		 		cmp.l %d2,%d0
		 		jeq .L342
			.L331:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				.loc 1 231 0
		 		moveq #2,%d0
		 		cmp.l %d2,%d0
		 		jeq .L339
			.L332:
			.LVL614:
			.LBB549:
			.LBB550:
				.loc 1 231 0
		 		clr.l %d0
		 		jra .L316
			.LVL641:
			.L328:
  232          %CYCLE J = 1, 1, I-1
				.loc 1 232 0
		 		move.l -560(%fp),%d0
		 		jra .L316
				.cfi_endproc
			.LFE187:
				.align	2
			BURP.6096:
			.LFB198:
  233             B(J)_L_L == LIST
				.loc 1 233 0
		 		move.l (%a0),%a1
		 		move.l %d0,(%a1)
		 		lea (14,%a0),%a0
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				.loc 1 234 0
		 		move.l %d2,%d0
		 		subq.l #2,%d0
			.LVL615:
			.LBE550:
		 		jmi .L351
			.LVL616:
			.L333:
				.loc 1 234 0
		 		move.l -14(%a0),%d0
			.LVL618:
				.loc 1 234 0 discriminator 1
		 		pea .LC28
		 		lea (-1628,%fp),%a1
		 		jsr _imp_c2istr
			.LVL623:
		 		move.l _imp_current_line,%d3
			.LVL624:
		 		addq.l #4,%sp
		 		jne .L334
				.loc 1 234 0 is_stmt 0
		 		moveq #21,%d3
		 		not.b %d3
			.L334:
				.loc 1 234 0 discriminator 5
		 		move.l _imp_current_file,%d0
		 		jeq .L335
				.loc 1 234 0 discriminator 6
		 		move.l %d0,-(%sp)
		 		lea (-1372,%fp),%a1
		 		jsr _imp_c2istr
			.LVL625:
		 		addq.l #4,%sp
			.LVL626:
			.L336:
				.loc 1 234 0 discriminator 9
		 		clr.l -(%sp)
		 		pea 1.w
		 		pea 5.w
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea -1628(%fp)
		 		move.l %d0,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL627:
		 		lea (12,%sp),%sp
		 		move.l %d3,-(%sp)
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		pea -1372(%fp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL628:
		 		lea (12,%sp),%sp
		 		jsr _signal_event
			.LVL629:
		 		lea (528,%sp),%sp
		 		jra .L333
			.LVL630:
			.L335:
			.LBB551:
				.loc 1 234 0 discriminator 7
		 		move.l %fp,%d4
			.LVL631:
		 		add.l #-1372,%d4
			.LVL632:
		 		move.l #256,%d6
			.LVL633:
		 		move.l %d6,-(%sp)
		 		pea .LC1
		 		move.l %d4,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL634:
		 		move.l %fp,%d7
			.LVL635:
		 		add.l #-1884,%d7
			.LVL636:
		 		move.l %d6,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d7,-(%sp)
		 		jsr (%a2)
			.LVL637:
			.LBE551:
		 		move.l %d6,-(%sp)
		 		move.l %d7,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL638:
		 		lea (36,%sp),%sp
		 		jra .L336
			.LVL639:
			.L344:
  235          %REPEAT
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				.loc 1 236 0
		 		move.l 8(%fp),-(%sp)
		 		pea 1.w
		 		move.l %d0,-(%sp)
		 		move.l %d5,%a0
		 		jsr SORTANDPRUNE.6080
			.LVL620:
		 		lea (12,%sp),%sp
			.LVL621:
			.L316:
  237                                         ! GET THE 'BEST' RESULT
				.loc 1 237 0
		 		moveq #1,%d0
		 		cmp.l %d2,%d0
		 		jeq .L344
		 		lea (-560,%fp),%a0
		 		move.l %d2,%d0
		 		lsl.l #3,%d0
		 		sub.l %d2,%d0
		 		add.l %d0,%d0
		 		lea -14(%a0,%d0.l),%a2
		 		clr.l %d0
			.LVL617:
			.L338:
				.loc 1 237 0
		 		cmp.l %a0,%a2
		 		jne .L338
			.LVL619:
			.L337:
			.LBE549:
				.loc 1 237 0 is_stmt 1
		 		clr.l %d0
		 		jra .L337
			.LVL640:
			.L342:
			.LBE552:
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				.loc 1 240 0
		 		movem.l -2444(%fp),#15612
		 		unlk %fp
		 		rts
			.LVL622:
			.L351:
			.LBB552:
  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))
				.loc 1 248 0 discriminator 1
		 		clr.l -(%sp)
		 		move.l 8(%fp),-(%sp)
		 		move.l %d5,%a0
		 		jsr MOVES.6086
			.LVL571:
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				.loc 1 249 0 discriminator 1
		 		move.l 8(%fp),-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d0,-(%sp)
		 		move.l %d5,%a0
		 		jsr SORTANDPRUNE.6080
			.LVL572:
			.LBE525:
			.LBE524:
			.LBB526:
			.LBB527:
				.loc 2 507 0 discriminator 1
		 		move.l %d0,%a3
			.LVL573:
			.LBE527:
			.LBE526:
  250          %RESULT = ADDR(LIST)
  251       %END
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
		.LVL117:
		 		link.w %fp,#-660
		 		movem.l #14368,-(%sp)
		 		move.l 12(%fp),%d2
		 		move.l %a0,%a2
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
		 		pea 124.w
		 		pea .LC20
		 		pea -124(%fp)
		 		jsr memcpy
		.LVL118:
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
		 		move.l #256,-148(%fp)
		 		moveq #64,%d0
		 		move.l %d0,-144(%fp)
		 		moveq #32,%d0
		 		move.l %d0,-140(%fp)
		 		moveq #8,%d0
		 		move.l %d0,-136(%fp)
		 		moveq #2,%d0
		 		move.l %d0,-132(%fp)
		 		moveq #1,%d0
		 		move.l %d0,-128(%fp)
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
		 		move.l 8(%fp),%d0
		 		addq.l #6,%d0
		.LVL119:
		 		move.l 1172(%a2,%d0.l*4),%d3
  261          %IF SIDE1<0 %START
		 		lea (12,%sp),%sp
		 		tst.l %d2
		 		jlt .L67
		.L61:
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
		 		move.l %fp,%d2
		.LVL122:
		 		add.l #-404,%d2
		.LVL123:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		.LVL124:
		 		pea .LC21
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL125:
		 		move.l %fp,%d4
		.LVL126:
		 		add.l #-660,%d4
		.LVL127:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
		.LVL128:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
		.LVL129:
		.LBE313:
		.LBB314:
		.LBB315:
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
		.LVL130:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
		.LVL131:
		.LBE315:
		.LBE314:
  263 ")
  264             %RESULT = 0
		 		add.l %d3,%sp
		 		clr.l %d3
		 		jra .L60
		.LVL132:
		.L68:
		.L63:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
		 		tst.l 16(%fp)
		 		jne .L68
		.LVL120:
		.L60:
  267          NEW=SIDE1>>5
		 		move.l %d2,%d0
		.LVL133:
		 		lsr.l #5,%d0
		.LVL134:
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
		 		jeq .L64
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
		 		move.l -128(%fp,%d0.l*4),%d0
		.LVL135:
		.L65:
		 		sub.l -152(%fp,%d0.l*4),%d2
		 		move.l %d2,-(%sp)
		.LVL136:
		 		move.l 16(%fp),-(%sp)
		 		move.l %d0,-(%sp)
		 		move.l %a2,%a0
		 		jsr EXVAL.6198
		.LVL137:
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
		 		lea (12,%sp),%sp
		 		tst.l %d0
		 		jlt .L60
		.L66:
  271       %END
		 		move.l %d3,%d0
		 		movem.l -676(%fp),#1052
		 		unlk %fp
		 		rts
		.LVL121:
		.L67:
		.LBB313:
  272       !!
		 		move.l -128(%fp,%d2.l*4),%d0
		.LVL139:
		 		addq.l #3,%d0
		.LVL140:
		 		jra .L65
		.LFE189:
				.section	.rodata
		.LC12:
		 		.byte	36
		 		.string	"  !---!---!---!---!---!---!---!---!\n"
		 		.zero	218
				.align	2
		LINE.6569:
		.LFB201:
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
		 		sub.l %d0,%d3
		 		jra .L60
		.LVL138:
		.L64:
  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
				.loc 1 281 0
		 		move.l PINPT.6035,%d2
		 		jeq .L286
			.L278:
			.LBE481:
			.LBE480:
  282          %CYCLE I = 1, 1, PIN PT
  283             PX = PINX(I); PY = PINY(I)
				.loc 1 283 0
		 		move.l (%a3)+,PX.6036
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				.loc 1 284 0
		 		move.l %d2,%d0
		 		subq.l #1,%d0
			.LVL511:
			.LBE483:
		 		jmi .L303
			.LVL512:
			.L279:
		 		lea PINX.6031,%a3
		 		move.l #PINY.6032,%d4
		 		move.l %a2,%d3
		 		add.l #660,%d3
		 		lea (1044,%a2),%a5
		 		lsl.l #2,%d2
			.LVL513:
		 		add.l %a3,%d2
				.loc 1 284 0
		 		pea .LC25
		 		lea (-256,%fp),%a1
		 		jsr _imp_c2istr
			.LVL531:
		 		move.l _imp_current_line,%d3
		 		addq.l #4,%sp
		 		jne .L280
		 		move.l #284,%d3
			.L280:
		 		move.l _imp_current_file,%d0
		 		jeq .L281
		 		move.l %d0,-(%sp)
		 		lea (-512,%fp),%a1
		 		jsr _imp_c2istr
			.LVL532:
		 		addq.l #4,%sp
			.LVL533:
			.L282:
		 		clr.l -(%sp)
		 		pea 1.w
		 		pea 5.w
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea -256(%fp)
		 		move.l %d0,-(%sp)
		 		lea memcpy,%a3
		 		jsr (%a3)
			.LVL534:
		 		lea (12,%sp),%sp
		 		move.l %d3,-(%sp)
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		pea -512(%fp)
		 		move.l %d0,-(%sp)
		 		jsr (%a3)
			.LVL535:
		 		lea (12,%sp),%sp
		 		jsr _signal_event
			.LVL536:
		 		lea (528,%sp),%sp
		 		jra .L279
			.LVL537:
			.L281:
			.LBB484:
		 		move.l %fp,%d4
			.LVL538:
		 		add.l #-512,%d4
			.LVL539:
		 		move.l #256,%d5
		 		move.l %d5,-(%sp)
		 		pea .LC1
		 		move.l %d4,-(%sp)
		 		lea memcpy,%a3
		 		jsr (%a3)
			.LVL540:
		 		lea (-768,%fp),%a4
		 		move.l %d5,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %a4,-(%sp)
		 		jsr (%a3)
			.LVL541:
			.LBE484:
		 		move.l %d5,-(%sp)
		 		move.l %a4,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a3)
			.LVL542:
		 		lea (36,%sp),%sp
		 		jra .L282
			.LVL543:
			.L284:
				.loc 1 284 0
		 		move.l %d4,%a0
		 		move.l (%a0)+,PY.6037
		 		move.l %a0,%d4
				.loc 1 284 0
		 		move.l (%a5)+,%d0
		 		add.l #196,%d0
		 		move.l (%a2,%d0.l*4),%a4
			.LVL545:
  285             BV = BIT VAL(PINPY(I))
				.loc 1 285 0
		 		move.l %d3,%a1
		 		move.l (%a1)+,%d0
		 		add.l #158,%d0
		 		move.l %a1,%d3
			.LVL546:
  286             %IF SQ_ATT&BV#0 %START
				.loc 1 286 0
		 		tst.l (%a2,%d0.l*4)
		 		seq %d0
		 		extb.l %d0
		 		neg.l %d0
		 		and.l 4(%a4),%d0
		 		jeq .L284
			.L285:
  287                !! NO PIN
				.loc 1 287 0
		 		cmp.l %a3,%d2
		 		jeq .L286
			.LVL544:
			.L283:
  288             %FINISHELSESTART
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
  290                K = MOVES(WHICH, 3)
				.loc 1 290 0
		 		move.l #MOVES.6086,%d5
		 		jra .L283
			.LVL514:
			.L263:
			.LBE482:
			.LBE486:
			.LBE488:
				.loc 1 290 0
		 		pea 3.w
			.LVL547:
		 		move.l %d6,-(%sp)
		 		move.l %a2,%a0
		 		move.l %d5,%a1
		 		jsr (%a1)
			.LVL548:
  291                SCOREA = SCOREA+SQ_P*5
				.loc 1 291 0
		 		move.l (%a4),%d1
		 		move.l %d1,%d0
		 		lsl.l #2,%d0
		 		add.l %d1,%d0
		 		add.l %d0,SCOREA.6063
		 		addq.l #8,%sp
		 		jra .L284
			.L277:
			.LVL549:
			.L286:
			.LBE485:
			.LBE487:
			.LBE491:
  292             %FINISH
  293          %REPEAT
  294       %END
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
				.loc 1 296 0 is_stmt 1
				.cfi_startproc
			.LVL558:
		 		link.w %fp,#-12
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #12320,-(%sp)
				.cfi_offset 2, -32
				.cfi_offset 3, -28
				.cfi_offset 10, -24
		 		move.l %a0,%a2
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				.loc 1 299 0
		 		moveq #25,%d0
		 		move.l %d0,-12(%fp)
		 		clr.l -8(%fp)
		 		moveq #-25,%d0
		 		move.l %d0,-4(%fp)
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				.loc 1 300 0
		 		moveq #1,%d0
		 		cmp.l JUSTONEPLY.6067,%d0
		 		jeq .L313
			.L310:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				.loc 1 301 0
		 		move.l %d0,JUSTONEPLY.6067
				.loc 1 301 0
		 		clr.l %d0
			.L308:
  302          WW = WHICH!!X'FFFFFFFE'
				.loc 1 302 0
		 		move.l MON.6066,%d2
			.LVL559:
				.loc 1 302 0
		 		move.l 8(%fp),%d3
		 		eor.l #-2,%d3
			.LVL560:
  303          LIST2 == RECORD(MOVES(WW, 0))
				.loc 1 303 0
		 		move.l %d0,MON.6066
				.loc 1 303 0
		 		clr.l -(%sp)
		 		move.l %d3,-(%sp)
		 		jsr MOVES.6086
			.LVL561:
  304          JUST ONE PLY = 0; MON = XMON
				.loc 1 304 0
		 		clr.l JUSTONEPLY.6067
  305          %IF ADDR(LIST2) = 0 %START
				.loc 1 305 0
		 		move.l %d2,MON.6066
				.loc 1 305 0
		 		addq.l #8,%sp
		 		tst.l %d0
		 		jne .L311
  306             %RESULT = -NOLEGMOVE(WW)//2
				.loc 1 306 0
		 		move.l 1228(%a2,%d3.l*4),%d0
		 		jpl .L315
		 		addq.l #1,%d0
			.L315:
		 		asr.l #1,%d0
		 		neg.l %d0
		 		jra .L308
			.L311:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				.loc 1 308 0
		 		move.l %d3,-(%sp)
		 		pea 1.w
		 		move.l %d0,-(%sp)
		 		move.l %a2,%a0
		 		jsr SORTANDPRUNE.6080
			.LVL562:
  309             X = LIST2_SCORE
				.loc 1 309 0
		 		move.l %d0,%a0
		 		move.l 4(%a0),%d2
			.LVL563:
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				.loc 1 311 0
		 		lea (12,%sp),%sp
		 		tst.l %d0
		 		jne .L314
			.L312:
  312          %RESULT = X+WWW(WW)
				.loc 1 312 0 discriminator 1
		 		move.l %d2,%d0
		 		add.l -8(%fp,%d3.l*4),%d0
		 		jra .L308
			.L314:
				.loc 1 312 0
		 		move.l %d0,-(%sp)
		 		move.l %a2,%a0
		 		jsr RELEASECHAIN.6143
			.LVL564:
		 		addq.l #4,%sp
		 		jra .L312
			.LVL565:
			.L313:
  313       %END
				.loc 1 313 0
		 		movem.l -24(%fp),#1036
		 		unlk %fp
		 		rts
				.cfi_endproc
			.LFE191:
				.section	.rodata.str1.1
			.LC28:
		 		.string	"Illegal cycle J = 1, 1, I - 1"
				.section	.rodata
			.LC23:
		 		.byte	28
		 		.string	"FORCED TO INCREASE PLYWIDTH\n"
		 		.zero	226
			.LC22:
		 		.byte	7
		 		.string	" FORCED"
		 		.zero	247
				.text
				.align	2
			NPLY.6076:
			.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
				.loc 1 324 0
		 		clr.l PINPT.6035
			.LVL302:
		 		lea (788,%a5),%a0
		 		move.l %a5,%d0
			.LVL303:
		 		add.l #1044,%d0
			.LVL304:
			.L116:
  325          %CYCLE I = 1, 1, 64
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				.loc 1 326 0
		 		move.l (%a0),%a1
		 		clr.l 4(%a1)
  327          %REPEAT
				.loc 1 327 0
		 		move.l (%a0)+,%a1
		 		clr.l 8(%a1)
			.LDL8:
  328          WHX = WHICH&BIT;               ! GET TYPE
				.loc 1 328 0
		 		cmp.l %a0,%d0
		 		jne .L116
			.L117:
			.LVL305:
  329          L_CHK = 0;                     ! CLEAR FLAG
				.loc 1 329 0
		 		move.l -1044(%fp),%a1
		 		clr.l 10(%a1)
  330          HOLD_L == L;                   ! MAP TO MOVE
				.loc 1 330 0
		 		move.l %a1,-768(%fp)
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				.loc 1 331 0
		 		pea -768(%fp)
		 		jsr CHANGEBOARD.6091
			.LVL306:
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				.loc 1 332 0
		 		move.l %d5,%d7
  333          P = MOVES(WHICH, 1)
				.loc 1 333 0
		 		clr.l SCOREA.6063
			.LVL307:
				.loc 1 333 0
		 		pea 1.w
		 		move.l -1068(%fp),-(%sp)
		 		move.l %a5,%a0
		 		jsr MOVES.6086
			.LVL308:
		 		lea (12,%sp),%sp
  334          SQU = 0
				.loc 1 334 0
		 		move.l -1036(%fp),%d5
  335          BAD = 0; NPH = 0; NPH2 = 0
				.loc 1 335 0
		 		move.l %d5,-1056(%fp)
  336          %CYCLE Y = 1, 1, 8
				.loc 1 336 0
		 		move.l %d5,-1052(%fp)
  337             %CYCLE X = 1, 1, 8
				.loc 1 337 0
		 		move.l %d5,-1064(%fp)
				.loc 1 337 0
		 		move.l %d5,-1032(%fp)
  338                SQU = SQU+1
				.loc 1 338 0
		 		move.l -1036(%fp),%a2
  339                SQ == SQI(SQU)_SQ
				.loc 1 339 0
		 		cmp.l -1032(%fp),%d3
		 		jeq .L209
			.LVL321:
			.L120:
				.loc 1 339 0
		 		move.l (%a3)+,%a0
			.LVL344:
  340                Q = SQ_P
				.loc 1 340 0
		 		addq.l #1,-1032(%fp)
			.LVL322:
		 		move.l %d5,-1028(%fp)
		 		add.l #197,%d5
			.LVL323:
		 		lsl.l #2,%d5
		 		lea (%a5,%d5.l),%a3
				.loc 1 340 0
		 		moveq #8,%d3
		 		cmp.l %a2,%d3
		 		jeq .L212
			.LVL341:
			.L118:
				.loc 1 340 0
		 		move.l (%a0),%d2
			.LVL345:
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				.loc 1 341 0
		 		addq.l #1,%a2
			.LVL342:
		 		move.l -1028(%fp),%d5
		 		add.l %a2,%d5
			.LVL343:
				.loc 1 341 0
		 		jeq .L121
  342                   %IF Q < 0 %START
				.loc 1 342 0
		 		jlt .L213
			.L122:
			.L125:
			.LVL346:
  343                      QQ = -Q; W2 = -1
				.loc 1 343 0
		 		move.l %d2,%d4
		 		neg.l %d4
			.LVL325:
  344                   %FINISHELSESTART
				.loc 1 344 0
		 		moveq #-1,%d6
		 		jra .L123
			.L210:
				.loc 1 344 0
		 		moveq #-1,%d6
		 		jra .L126
			.LVL326:
			.L214:
		 		move.l -1048(%fp),%d0
			.LVL327:
  345                      QQ = Q; W2 = 1
				.loc 1 345 0
		 		move.l %d2,%d4
  346                   %FINISH
				.loc 1 346 0
		 		move.l %d2,%d6
			.L124:
			.LVL328:
			.L126:
				.loc 1 346 0
		 		move.l %a4,%d6
			.LVL347:
			.L123:
  347
  348                   !!
  349                   P = 0
  350                   %IF QQ = 1 %START;    ! PAWN
				.loc 1 350 0
		 		moveq #1,%d0
		 		cmp.l %d4,%d0
		 		jeq .L210
				.loc 1 350 0
		 		moveq #1,%d1
		 		cmp.l %d2,%d1
		 		jeq .L214
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				.loc 1 353 0
		 		lsl.l #3,%d0
			.LVL329:
		 		lea 86(%a2,%d0.l),%a1
		 		move.l %d2,%d3
		 		muls.l (%a5,%a1.l*4),%d3
			.LVL330:
  354                   %FINISH
  355                   !!
				.loc 1 355 0
		 		move.l -1032(%fp),%d0
  356                   %IF Q&BIT = WHX %START
				.loc 1 356 0
		 		move.l -1068(%fp),%d0
		 		not.l %d0
		 		add.l %d0,%d0
		 		subx.l %d0,%d0
		 		neg.l %d0
		 		move.l %d0,-1040(%fp)
		 		move.l %d5,-1060(%fp)
		 		move.l %a4,-1072(%fp)
		 		jra .L120
			.LVL309:
			.L207:
			.LDL9:
			.LBE438:
			.LBE437:
				.loc 1 356 0
		 		move.w #1,%a4
		 		moveq #9,%d2
		 		sub.l -1032(%fp),%d2
		 		move.l %d2,-1048(%fp)
		 		jra .L118
			.LVL324:
			.L213:
				.loc 1 356 0
		 		move.l -1040(%fp),%d4
		 		and.l %d2,%d4
		 		jne .L127
		 		move.l %a4,%d4
			.L128:
			.LVL331:
			.L131:
				.loc 1 356 0
		 		move.l -1060(%fp),%d3
			.LVL337:
			.L127:
				.loc 1 356 0
		 		move.l -1040(%fp),%d3
		 		and.l %d2,%d3
		 		jne .L192
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				.loc 1 360 0
		 		moveq #6,%d0
		 		cmp.l %d4,%d0
		 		jne .L131
  361                         %IF SQ_ATT # 0 %START
				.loc 1 361 0
		 		move.l 4(%a0),%d3
		 		jeq .L142
		 		move.l -1072(%fp),%a4
  362                            RESTORE BOARD(HOLD)
				.loc 1 362 0
		 		pea -768(%fp)
		 		jsr RESTOREBOARD.6093
			.LVL348:
		 		addq.l #4,%sp
  363                            %RESULT = MAX SCORE
				.loc 1 363 0
		 		move.l #-50000,-1036(%fp)
			.LVL349:
		 		jra .L130
			.LVL350:
			.L211:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				.loc 1 367 0
		 		move.l 4(%a0),%d0
		 		jle .L142
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				.loc 1 368 0
		 		move.l 8(%a0),-(%sp)
		 		move.l %d0,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %a5,%a0
			.LVL332:
		 		jsr EXVAL.6198
			.LVL333:
  369                         %IF GAIN > 0 %START
				.loc 1 369 0
		 		lea (12,%sp),%sp
		 		tst.l %d0
		 		jle .L142
  370                            GAIN = GAIN+P
				.loc 1 370 0
		 		add.l %d3,%d0
			.LVL334:
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				.loc 1 371 0
		 		muls.l %d0,%d6
		 		move.l %d6,%d4
		 		muls.l #1717986919,%d1:%d4
		 		asr.l #2,%d1
		 		add.l %d6,%d6
		 		subx.l %d6,%d6
		 		sub.l %d1,%d6
		 		add.l %d6,SCOREA.6063
		 		cmp.l -1056(%fp),%d0
		 		jle .L142
		 		move.l %d0,-1056(%fp)
			.LVL335:
		 		jra .L142
			.LVL336:
			.L192:
  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
				.loc 1 382 0
		 		move.l 4(%a0),%d0
		 		jne .L211
			.L129:
			.L138:
			.L139:
			.L140:
			.L141:
			.LVL338:
			.L142:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				.loc 1 383 0
		 		move.l 8(%a0),-(%sp)
		 		move.l %d0,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %a5,%a0
			.LVL351:
		 		jsr EXVAL.6198
			.LVL352:
  384                         %IF GAIN > 0 %START
				.loc 1 384 0
		 		lea (12,%sp),%sp
		 		tst.l %d0
		 		jle .L137
  385                         %IF GAIN >NPH %START
				.loc 1 385 0
		 		cmp.l -1052(%fp),%d0
		 		jgt .L193
			.L134:
		 		cmp.l -1064(%fp),%d0
		 		jle .L137
		 		move.l %d0,-1064(%fp)
			.LVL353:
		 		jra .L137
			.LVL354:
			.L193:
		 		move.l -1052(%fp),-1064(%fp)
			.LVL355:
  386                            NPH2 = NPH; NPH = GAIN
  387                         %FINISHELSESTART
				.loc 1 387 0
		 		move.l %d0,-1052(%fp)
			.LVL356:
			.L133:
			.L136:
			.L137:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				.loc 1 391 0
		 		moveq #6,%d1
		 		cmp.l %d4,%d1
		 		jne .L142
  392                             L_CHK = Q
				.loc 1 392 0
		 		move.l -1044(%fp),%a0
		 		move.l %d2,10(%a0)
		 		jra .L142
			.LVL357:
			.L209:
		 		move.l -1072(%fp),%a4
			.L119:
			.LVL358:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				.loc 1 396 0
		 		add.l %d3,%d7
			.LVL339:
		 		add.l 1196(%a5,%d2.l*4),%d7
			.LVL340:
			.L121:
  397                %FINISH
  398             %REPEAT
  399          %REPEAT
  400          LOSS = 0
				.loc 1 400 0
		 		move.l -1064(%fp),%d0
		 		jra .L149
			.LVL377:
			.L153:
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				.loc 1 401 0
		 		tst.l -1056(%fp)
		 		jle .L143
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
				.loc 1 402 0
		 		cmp.l #300,-1056(%fp)
		 		jle .L144
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
				.loc 1 403 0
		 		cmp.l #400,-1052(%fp)
		 		jgt .L145
		 		jra .L146
			.L144:
  404             NPH = NPH//3
				.loc 1 404 0
		 		move.l -1052(%fp),%d0
		 		muls.l #1431655766,%d1:%d0
		 		move.l -1052(%fp),%d0
		 		add.l %d0,%d0
		 		subx.l %d0,%d0
		 		sub.l %d0,%d1
		 		move.l %d1,-1052(%fp)
			.LVL360:
  405             LOSS = BAD
				.loc 1 405 0
		 		cmp.l #400,-1052(%fp)
		 		jle .L146
			.L145:
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				.loc 1 406 0
		 		move.l -1056(%fp),%d2
			.LVL361:
		 		cmp.l %d2,%d1
		 		jle .L147
  407               LOSS = LOSS-NPH
				.loc 1 407 0
		 		cmp.l #499,-1056(%fp)
		 		jle .L215
			.LVL359:
			.L146:
				.loc 1 407 0
		 		move.l -1064(%fp),%d0
		 		muls.l #1431655766,%d5:%d0
			.LVL362:
		 		move.l -1064(%fp),%d0
		 		add.l %d0,%d0
		 		subx.l %d0,%d0
		 		sub.l %d0,%d5
			.LVL363:
		 		jra .L150
			.LVL364:
			.L215:
  408          %FINISHELSESTART
				.loc 1 408 0
		 		move.l -1068(%fp),-(%sp)
		 		move.l %a5,%a0
		 		jsr TRYANOTHERPLY.6230
			.LVL365:
		 		move.l %d0,-1036(%fp)
			.LVL366:
		 		addq.l #4,%sp
		 		jra .L146
			.LVL367:
			.L147:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
				.loc 1 409 0
		 		tst.l -1064(%fp)
		 		jeq .L194
  410             LOSS = LOSS-NPH//6
				.loc 1 410 0
		 		move.l -1056(%fp),%d5
			.LVL368:
		 		sub.l -1052(%fp),%d5
			.LVL369:
		 		jra .L150
			.LVL370:
			.L143:
				.loc 1 410 0
		 		move.l -1064(%fp),%d0
		 		neg.l %d0
			.LVL371:
			.L149:
				.loc 1 410 0
		 		move.l -1052(%fp),%d2
			.LVL372:
		 		muls.l #715827883,%d1:%d2
		 		move.l -1052(%fp),%d5
			.LVL373:
		 		add.l %d5,%d5
		 		subx.l %d5,%d5
		 		sub.l %d1,%d5
		 		add.l %d0,%d5
			.LVL374:
			.L148:
			.L150:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				.loc 1 412 0
		 		move.l %d7,%d2
		 		add.l KCAS.6052,%d2
		 		add.l KCAS.6052+8,%d2
			.LVL375:
		 		lea (1240,%a5),%a0
		 		lea (332,%a5),%a1
		 		move.l %a5,%d0
		 		add.l #1252,%d0
		 		jra .L151
			.LVL376:
			.L194:
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				.loc 1 414 0
		 		clr.l %d1
		 		move.b (%a0)+,%d1
			.LVL379:
		 		move.l 72(%a5,%d1.l*4),%a2
		 		move.l (%a1)+,%d3
		 		cmp.l (%a2),%d3
		 		jeq .L153
  415          %REPEAT
				.loc 1 415 0
		 		add.l -308(%a1),%d2
			.LVL380:
		 		jra .L153
			.L152:
  416                %IF L_CHK # 0 %START
				.loc 1 416 0
		 		cmp.l %a0,%d0
		 		jeq .L152
			.LVL378:
			.L151:
				.loc 1 416 0
		 		move.l -1044(%fp),%a0
			.LVL381:
		 		tst.l 10(%a0)
		 		jeq .L155
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				.loc 1 417 0
		 		tst.l -1036(%fp)
		 		jeq .L216
			.L154:
			.L155:
  418                %FINISH
				.loc 1 418 0
		 		move.l -1068(%fp),-(%sp)
		 		move.l %a5,%a0
		 		jsr TRYANOTHERPLY.6230
			.LVL422:
		 		move.l %d0,-1036(%fp)
			.LVL423:
		 		addq.l #4,%sp
		 		jra .L155
			.LVL424:
			.L217:
			.LBE449:
			.LBE467:
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				.loc 1 419 0
		 		pea -768(%fp)
		 		jsr RESTOREBOARD.6093
			.LVL382:
			.LBB439:
			.LBB440:
				.loc 2 629 0
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		lea check_outstream,%a3
		 		jsr (%a3)
			.LVL383:
			.LBE440:
			.LBE439:
			.LBB441:
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
  422             PRINTSTRING("SCORE:")
				.loc 1 422 0
		 		move.l %fp,%d3
			.LVL384:
		 		add.l #-512,%d3
			.LVL385:
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea .LC19
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL386:
		 		move.l %fp,%d6
			.LVL387:
		 		add.l #-256,%d6
			.LVL388:
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d6,-(%sp)
		 		jsr (%a2)
			.LVL389:
		 		lea (32,%sp),%sp
		 		move.l %d4,-(%sp)
		 		move.l %d6,-(%sp)
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL390:
			.LBE441:
			.LBB442:
			.LBB443:
				.loc 2 589 0
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL391:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL392:
			.LBE443:
			.LBE442:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				.loc 1 423 0
		 		lea (268,%sp),%sp
		 		pea 1.w
		 		move.l SCOREA.6063,-(%sp)
		 		lea _imp_writeint,%a2
		 		jsr (%a2)
			.LVL393:
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				.loc 1 424 0
		 		pea 1.w
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL394:
				.loc 1 424 0
		 		pea 1.w
		 		move.l -1056(%fp),-(%sp)
		 		jsr (%a2)
			.LVL396:
  425             WRITE(LOSS, 1); NEWLINE
				.loc 1 425 0
		 		pea 1.w
		 		move.l -1036(%fp),-(%sp)
		 		jsr (%a2)
			.LVL395:
				.loc 1 425 0
		 		lea (32,%sp),%sp
		 		pea 1.w
		 		move.l -1052(%fp),-(%sp)
		 		jsr (%a2)
			.LVL397:
				.loc 1 425 0
		 		pea 1.w
		 		move.l %d5,-(%sp)
		 		jsr (%a2)
			.LVL399:
			.LBB444:
			.LBB445:
				.loc 2 661 0
		 		jsr _imp_newline
			.LVL400:
			.LBE445:
			.LBE444:
			.LBB446:
			.LBB447:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr (%a3)
			.LVL401:
			.LDL12:
			.LBE447:
			.LBE446:
  426             SELECT OUTPUT(0)
				.loc 1 426 0
		 		pea 1.w
		 		move.l -1064(%fp),-(%sp)
		 		jsr (%a2)
			.LVL398:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				.loc 1 428 0
		 		lea (28,%sp),%sp
		 		tst.l -1036(%fp)
		 		jne .L130
			.L156:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				.loc 1 429 0
		 		add.l SCOREA.6063,%d2
			.LVL402:
		 		muls.l -1068(%fp),%d5
			.LVL403:
		 		sub.l %d5,%d2
		 		move.l %d2,-1036(%fp)
			.LVL404:
			.L130:
			.LBE448:
			.LBE455:
  430       %END
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				.loc 1 432 0
				.cfi_startproc
		 		link.w %fp,#-1360
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #15932,-(%sp)
				.cfi_offset 2, -1404
				.cfi_offset 3, -1400
				.cfi_offset 4, -1396
				.cfi_offset 5, -1392
				.cfi_offset 6, -1388
				.cfi_offset 10, -1384
				.cfi_offset 11, -1380
				.cfi_offset 12, -1376
				.cfi_offset 13, -1372
		 		move.l 8(%fp),%d4
		 		move.l 12(%fp),%d0
		 		move.l %a0,%a2
				.loc 1 432 0
		 		lea (8,%fp),%a0
		 		move.l %a0,-1284(%fp)
		 		move.l %d4,-1320(%fp)
		 		move.l %d0,-1288(%fp)
		 		move.l %a2,-1308(%fp)
  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)
				.loc 1 440 0
				.cfi_startproc
			.LVL282:
		 		link.w %fp,#-1072
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #16188,-(%sp)
				.cfi_offset 2, -1120
				.cfi_offset 3, -1116
				.cfi_offset 4, -1112
				.cfi_offset 5, -1108
				.cfi_offset 6, -1104
				.cfi_offset 7, -1100
				.cfi_offset 10, -1096
				.cfi_offset 11, -1092
				.cfi_offset 12, -1088
				.cfi_offset 13, -1084
		 		move.l %a0,%a4
			.LVL283:
			.LBB429:
  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)
				.loc 1 453 0
		 		move.l %d0,%d1
		 		move.l 8(%fp),%a1
		 		subq.l #1,%a1
			.LVL285:
  454            K = SQ_P
				.loc 1 454 0
		 		lsl.l #3,%d0
			.LVL286:
		 		add.l %a1,%d0
		 		lsl.l #4,%d0
		 		move.l BRD.6003(%d0.l),-1036(%fp)
			.LVL287:
  455             %IF SCRQ <= 0 %START
				.loc 1 455 0
		 		move.l 8(%fp),%d0
		 		subq.l #1,%d0
		 		moveq #7,%d1
		 		cmp.l %d0,%d1
		 		jcs .L186
			.LVL284:
			.LBE429:
			.LBB430:
				.loc 1 455 0
		 		move.l 72(%a0),%a0
		 		tst.l %a0
		 		jle .L202
			.L108:
			.LVL288:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				.loc 1 456 0
		 		tst.l -1036(%fp)
		 		jne .L188
			.L109:
  457                 %RESULT = 0
  458                %IF QQ=PAWN %START
				.loc 1 458 0
		 		moveq #1,%d2
		 		cmp.l 68(%a4),%d2
		 		jeq .L207
			.L110:
			.L111:
			.L112:
			.L113:
				.loc 1 458 0
		 		clr.l %d0
		 		jra .L105
			.LVL441:
			.L219:
			.LBB471:
			.LBB435:
				.loc 2 544 0
		 		neg.l %d0
		 		jra .L184
			.LBE435:
			.LBE471:
				.cfi_endproc
			.LFE194:
				.section	.rodata.str1.1
			.LC25:
		 		.string	"Illegal cycle I = 1, 1, PINPT"
			.LC26:
		 		.string	"test-new/chess9.imp"
			.LC27:
		 		.string	"->MOVE(%d) out of bounds at %s line %d"
				.text
				.align	2
			MOVES.6086:
			.LFB193:
  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
				.loc 1 462 0
		 		move.l 12(%fp),%d0
		 		subq.l #1,%d0
		 		cmp.l %d0,%d1
		 		jcs .L187
			.L107:
			.LBE430:
				.loc 1 462 0
		 		cmp.l 64(%a4),%d2
		 		jne .L113
  463                SPEC = 0
				.loc 1 463 0
		 		clr.l 56(%a4)
			.LVL295:
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				.loc 1 464 0
		 		move.l 52(%a4),%a0
		 		move.l 1236(%a0),-1044(%fp)
			.LVL296:
  465                %IF ADDR(FREE LIST) = 0 %START
				.loc 1 465 0
		 		move.l -1044(%fp),%a1
			.LVL297:
		 		move.l (%a1),1236(%a0)
			.LVL298:
				.loc 1 465 0
		 		move.l 52(%a4),%a0
		 		tst.l 1236(%a0)
		 		jeq .L208
			.L114:
				.loc 1 465 0
		 		move.l -1036(%fp),%d0
			.L106:
			.L183:
		 		jra .L105
			.LVL310:
			.L208:
			.LBB450:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				.loc 1 466 0
		 		move.l %fp,%d2
			.LVL311:
		 		add.l #-256,%d2
			.LVL312:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC17
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL313:
		 		move.l %fp,%d4
			.LVL314:
		 		add.l #-512,%d4
			.LVL315:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL316:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL317:
			.LBE450:
			.LBB451:
			.LBB452:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL318:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL319:
			.LBE452:
			.LBE451:
			.LBB453:
			.LBB454:
				.loc 2 862 0
		 		add.l %d3,%sp
		 		clr.l -(%sp)
		 		jsr exit
			.LVL320:
			.L212:
			.LDL10:
			.LDL11:
			.LBE454:
			.LBE453:
			.LBB455:
			.LBB448:
  467 ")
				.loc 1 467 0
		 		clr.l %d0
			.L105:
				.loc 1 467 0
		 		clr.l %d0
		 		jra .L105
			.LVL440:
			.L188:
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				.loc 1 470 0
		 		move.l 48(%a4),%d1
			.LVL299:
		 		lsl.b #4,%d1
		 		add.b 47(%a4),%d1
		 		move.l -1044(%fp),%a0
		 		move.b %d1,4(%a0)
  471                N_TO = X0<<4+Y0
				.loc 1 471 0
		 		move.b 11(%fp),%d0
		 		lsl.b #4,%d0
		 		add.b 15(%fp),%d0
		 		move.b %d0,5(%a0)
  472                N_SPEC = SPEC
				.loc 1 472 0
		 		move.l 56(%a4),6(%a0)
			.LBB436:
  473                %IF 6 <= TYPE <= 7 %START
  474                   N_SPEC = TYPE
				.loc 1 474 0
		 		move.l -1044(%fp),%a0
		 		move.l %d0,6(%a0)
  475                   N_TO = N_FR
				.loc 1 475 0
		 		move.b %d1,5(%a0)
			.L115:
  476                %FINISH
				.loc 1 476 0
		 		move.l 64(%a4),%d0
			.LVL300:
		 		move.l %d0,%a0
		 		subq.l #6,%a0
		 		moveq #1,%d2
		 		cmp.l %a0,%d2
		 		jcs .L115
			.LBE436:
  477                N_SCORE = SCORE(WHICH, N)
				.loc 1 477 0
		 		move.l 40(%a4),-1068(%fp)
		 		move.l 52(%a4),%a5
			.LVL301:
			.LBB437:
			.LBB438:
				.loc 1 477 0
		 		move.l -1044(%fp),%a0
		 		move.l -1036(%fp),4(%a0)
  478                !!
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				.loc 1 479 0
		 		move.l 64(%a4),%d0
		 		moveq #6,%d1
		 		cmp.l %d0,%d1
		 		jeq .L217
			.L157:
			.L161:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				.loc 1 480 0
		 		move.l 36(%a4),%a0
		 		tst.l 84(%a0)
		 		jeq .L162
  481                %FINISH
				.loc 1 481 0
		 		move.l -1044(%fp),%a0
		 		move.l #-50000,4(%a0)
  482                %IF TYPE = 7 %START;     ! DITTO
				.loc 1 482 0
		 		moveq #7,%d1
		 		cmp.l %d0,%d1
		 		jeq .L218
			.L158:
			.L162:
				.loc 1 482 0
		 		moveq #7,%d0
		 		cmp.l 64(%a4),%d0
		 		jne .L159
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				.loc 1 483 0
		 		move.l 36(%a4),%a0
		 		tst.l 52(%a0)
		 		jeq .L159
		 		jra .L185
			.L218:
		 		move.l 36(%a4),%a0
		 		tst.l 52(%a0)
		 		jeq .L162
			.L185:
  484                %FINISH
				.loc 1 484 0
		 		move.l -1044(%fp),%a0
		 		move.l #-50000,4(%a0)
			.L159:
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				.loc 1 487 0
		 		move.l -1044(%fp),%a1
		 		cmp.l #-50000,4(%a1)
		 		jeq .L159
			.L163:
			.LVL405:
			.LBB456:
			.LBB457:
				.loc 2 629 0
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		lea check_outstream,%a3
		 		jsr (%a3)
			.LVL406:
			.LBE457:
			.LBE456:
			.LBB458:
			.LBB459:
				.loc 2 659 0
		 		pea 20.w
		 		jsr _imp_spaces
			.LVL407:
			.LBE459:
			.LBE458:
  488                   N_L == FREE LIST;     ! RE-LINK IT
				.loc 1 488 0
		 		move.l 52(%a4),%a0
		 		move.l -1044(%fp),%a1
		 		move.l 1236(%a0),(%a1)
  489                   FREE LIST == RECORD(ADDR(N))
				.loc 1 489 0
		 		move.l 52(%a4),%a0
		 		move.l %a1,1236(%a0)
			.LDL14:
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				.loc 1 491 0
		 		moveq #1,%d0
		 		jra .L105
			.LVL425:
			.L203:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				.loc 1 498 0
		 		pea 5.w
		 		move.l XDEPTH.6064,-(%sp)
		 		jsr _imp_writeint
			.LVL408:
			.LBB460:
  499                   PRINTSTRING("---")
				.loc 1 499 0
		 		move.l %fp,%d2
			.LVL409:
		 		add.l #-768,%d2
			.LVL410:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC18
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL411:
		 		move.l %fp,%d4
			.LVL412:
		 		add.l #-1024,%d4
			.LVL413:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL414:
		 		lea (40,%sp),%sp
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL415:
			.LBE460:
			.LBB461:
			.LBB462:
				.loc 2 589 0
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL416:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL417:
			.LBE462:
			.LBE461:
  500                   PRINTMOVE(N)
				.loc 1 500 0
		 		lea (268,%sp),%sp
		 		move.l -1044(%fp),-(%sp)
		 		jsr PRINTMOVE.6103
			.LVL418:
			.LBB463:
			.LBB464:
				.loc 2 661 0
		 		jsr _imp_newline
			.LVL419:
			.LBE464:
			.LBE463:
			.LBB465:
			.LBB466:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr (%a3)
			.LVL420:
			.LDL13:
			.LBE466:
			.LBE465:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				.loc 1 505 0
		 		move.l -1044(%fp),%a0
		 		move.l 32(%a4),(%a0)
  506                %IF K=0 %THEN J=1 %ELSE J=0
				.loc 1 506 0
		 		move.l %a0,32(%a4)
		 		addq.l #8,%sp
  507             %FINISHELSESTART
				.loc 1 507 0
		 		moveq #1,%d0
		 		jra .L105
			.LVL421:
			.L216:
			.LBB467:
			.LBB449:
  508                J = 2
				.loc 1 508 0
		 		moveq #2,%d0
			.L164:
			.L176:
			.L177:
			.L178:
			.L179:
			.L180:
			.L181:
			.LVL436:
			.L182:
  509                %IF K # 0 %START
				.loc 1 509 0
		 		tst.l -1036(%fp)
		 		jeq .L195
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				.loc 1 510 0
		 		move.l 68(%a4),%d2
		 		moveq #1,%d0
		 		cmp.l %d2,%d0
		 		jeq .L203
			.L165:
			.LVL289:
			.LBB431:
			.LBB432:
				.loc 2 544 0 discriminator 1
		 		move.l -1036(%fp),%d0
		 		jlt .L204
			.L167:
		 		move.l %d0,%d3
			.LVL290:
			.LBE432:
			.LBE431:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				.loc 1 511 0
		 		clr.l %d0
			.L170:
			.L171:
			.L172:
			.L173:
			.L174:
			.LVL292:
				.loc 1 511 0
		 		move.l 64(%a4),%d0
		 		jeq .L105
			.LVL426:
			.LBB468:
			.LBB433:
				.loc 2 544 0
		 		move.l -1036(%fp),%d0
		 		jlt .L219
			.L184:
			.LBE433:
			.LBE468:
				.loc 1 511 0
		 		clr.l %d0
		 		jra .L174
			.LVL428:
			.L204:
			.LBB469:
			.LBB434:
				.loc 2 544 0 discriminator 1
		 		neg.l %d0
			.LVL429:
		 		jra .L167
			.LVL430:
			.L205:
			.LBE434:
			.LBE469:
				.loc 1 511 0
		 		clr.l %d0
		 		jra .L174
			.LVL433:
			.L175:
  512                   IMODK = IMOD(K)
				.loc 1 512 0 discriminator 1
		 		move.l %d0,28(%a4)
			.LVL291:
				.loc 1 512 0
		 		move.l %d0,28(%a4)
			.LVL427:
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				.loc 1 514 0 discriminator 1
		 		moveq #5,%d4
		 		cmp.l %d2,%d4
		 		jeq .L205
			.L168:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				.loc 1 515 0
		 		move.l 24(%a4),%d0
		 		moveq #1,%d4
		 		cmp.l %d0,%d4
		 		jeq .L220
			.L169:
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
				.loc 1 516 0
		 		moveq #3,%d0
		 		cmp.l %d3,%d0
		 		seq %d0
		 		extb.l %d0
		 		neg.l %d0
  517                         %FINISHELSESTART
  518                            %IF IMODK=5 %START
				.loc 1 518 0
		 		moveq #5,%d0
		 		cmp.l %d3,%d0
		 		jeq .L206
				.loc 1 518 0
		 		tst.l %d0
		 		jne .L196
  519                               %IF 3<=QQ<=4 %THEN J=1
				.loc 1 519 0
		 		moveq #4,%d4
		 		cmp.l %d3,%d4
		 		seq %d0
		 		extb.l %d0
		 		neg.l %d0
  520                            %FINISH
				.loc 1 520 0
		 		jra .L174
			.L206:
			.LVL431:
			.LBB470:
  521                         %FINISH
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
				.loc 1 522 0
		 		jra .L174
			.L220:
				.loc 1 522 0
		 		move.l %d2,%d0
		 		subq.l #3,%d0
		 		moveq #1,%d3
		 		cmp.l %d0,%d3
		 		scc %d0
		 		extb.l %d0
		 		neg.l %d0
		 		jra .L174
			.LVL432:
			.L196:
			.LBE470:
  523                      %IF SCRQ # 3 %START
				.loc 1 523 0
		 		moveq #3,%d4
		 		cmp.l %a0,%d4
		 		jeq .L175
  524                        %IF PINFLAG = 0 %THEN %C
				.loc 1 524 0
		 		tst.l 20(%a4)
		 		jne .L182
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
				.loc 1 525 0
		 		lsl.l #3,%d1
			.LVL293:
		 		add.l %a1,%d1
		 		lsl.l #4,%d1
		 		move.l 52(%a4),%a0
		 		add.l #158,%d2
		 		move.l (%a0,%d2.l*4),%d2
		 		add.l %d2,BRD.6003+8(%d1.l)
		 		jra .L182
			.LVL294:
			.L202:
  526                     %FINISHELSESTART
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				.loc 1 527 0
		 		lsl.l #3,%d1
			.LVL434:
		 		add.l %a1,%d1
		 		lsl.l #4,%d1
		 		move.l 52(%a4),%a0
		 		add.l #158,%d2
		 		move.l (%a0,%d2.l*4),%d2
		 		sub.l %d2,BRD.6003+8(%d1.l)
		 		jra .L182
			.LVL435:
			.L195:
  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
				.loc 1 559 0
		 		move.l (%a4),%d1
		 		add.l %d1,SCOREA.6063
		 		jra .L105
			.LVL437:
			.L186:
  560             %FINISH
  561             %RESULT = J
  562          %END
				.loc 1 562 0
		 		movem.l -1112(%fp),#15612
		 		unlk %fp
			.LVL438:
		 		rts
			.LVL439:
			.L187:
?LIST2 unused
  563          !!
  564          DIAG = 0
				.loc 1 564 0
		 		clr.l -1336(%fp)
  565          LIST == RECORD(0)
				.loc 1 565 0
		 		clr.l -1328(%fp)
			.LVL442:
  566          WHICHX = WHICH&BIT
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				.loc 1 568 0
		 		moveq #3,%d1
		 		cmp.l %d0,%d1
		 		jeq .L299
			.L222:
  569             X = PX; Y = PY
				.loc 1 569 0
		 		move.l PX.6036,%d1
		 		move.l %d1,-1312(%fp)
  570             SQU = (Y-1)*8+X
				.loc 1 570 0
		 		move.l PY.6037,%d0
		 		move.l %d0,-1316(%fp)
				.loc 1 570 0
		 		subq.l #1,%d0
		 		lsl.l #3,%d0
		 		add.l %d1,%d0
		 		move.l %d0,-1356(%fp)
			.L223:
  571             -> PIN ENTRY
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				.loc 1 575 0
		 		clr.l -1356(%fp)
  576          %CYCLE Y = 1,1, 8
  577
  578             %CYCLE X = 1, 1, 8
  579                TYPE = -1
				.loc 1 579 0
		 		clr.l %d1
			.L224:
				.loc 1 579 0
		 		moveq #-1,%d0
		 		move.l %d0,-1296(%fp)
				.loc 1 579 0
		 		move.l -1316(%fp),%d1
		 		moveq #8,%d2
		 		cmp.l %d1,%d2
		 		jne .L224
			.L227:
  580                SQU = SQU+1
				.loc 1 580 0 discriminator 1
		 		addq.l #1,%d1
		 		move.l %d1,-1316(%fp)
				.loc 1 580 0
		 		addq.l #1,-1356(%fp)
		 		jra .L223
			.L299:
  581 PIN ENTRY:
				.loc 1 581 0 discriminator 1
		 		clr.l %d1
			.L228:
				.loc 1 581 0
		 		move.l -1312(%fp),%d1
		 		moveq #8,%d2
		 		cmp.l %d1,%d2
		 		jne .L228
			.L225:
			.L226:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				.loc 1 582 0
		 		addq.l #1,%d1
		 		move.l %d1,-1312(%fp)
				.loc 1 582 0
		 		moveq #18,%d0
		 		add.l -1356(%fp),%d0
		 		move.l (%a2,%d0.l*4),%a0
		 		move.l (%a0),%d0
		 		move.l %d0,-1300(%fp)
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				.loc 1 583 0
		 		jeq .L275
  584                  SCRQ > 0) %START
				.loc 1 584 0
		 		move.l %d4,%d1
		 		add.l %d1,%d1
		 		subx.l %d1,%d1
		 		neg.l %d1
		 		and.l %d0,%d1
		 		jne .L232
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				.loc 1 585 0
		 		tst.l -1288(%fp)
		 		jle .L275
			.L232:
				.loc 1 585 0 discriminator 1
		 		tst.l %d0
		 		jlt .L300
			.L233:
  586                     QQ = Q %AND W2 = +1
				.loc 1 586 0
		 		neg.l %d0
		 		move.l %d0,-1292(%fp)
  587                   -> MOVE(QQ)
				.loc 1 587 0 discriminator 1
		 		move.l -1292(%fp),%d2
			.LVL444:
			.LDL15:
				.loc 1 587 0
		 		moveq #-1,%d1
		 		move.l %d1,-1360(%fp)
  588
				.loc 1 588 0
		 		jra .L234
			.LVL446:
			.L237:
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				.loc 1 590 0
		 		move.l %d0,-1292(%fp)
				.loc 1 590 0
		 		clr.l -1296(%fp)
  591                   PIN FLAG = 0
				.loc 1 591 0
		 		moveq #1,%d2
		 		move.l %d2,-1360(%fp)
			.L234:
			.LVL443:
				.loc 1 591 0
		 		clr.l -1340(%fp)
  592                   K = DOM(X, Y-W2)
				.loc 1 592 0
		 		move.l -1316(%fp),%d2
			.LVL447:
		 		sub.l -1360(%fp),%d2
		 		move.l %d2,-(%sp)
		 		move.l -1312(%fp),-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr DOM.6344
			.LVL448:
  593                   PIN FLAG = 0
				.loc 1 593 0
		 		clr.l -1340(%fp)
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				.loc 1 594 0
		 		move.l -1316(%fp),%d1
		 		addq.l #8,%sp
		 		moveq #2,%d2
		 		cmp.l %d1,%d2
		 		jeq .L238
  595                   TYPE = 1
				.loc 1 595 0
		 		moveq #7,%d2
		 		cmp.l %d1,%d2
		 		jeq .L238
			.LVL449:
			.L239:
				.loc 1 595 0 discriminator 1
		 		moveq #1,%d0
		 		move.l %d0,-1296(%fp)
  596                   PIN FLAG = 0
				.loc 1 596 0 discriminator 1
		 		clr.l -1340(%fp)
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				.loc 1 597 0 discriminator 1
		 		move.l -1316(%fp),%d1
		 		sub.l -1360(%fp),%d1
		 		move.l %d1,-(%sp)
		 		move.l -1312(%fp),%d2
		 		subq.l #1,%d2
		 		move.l %d2,-(%sp)
		 		lea DOM.6344,%a3
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL450:
				.loc 1 597 0
		 		tst.l %d0
		 		jeq .L239
  598                   ->OUT
				.loc 1 598 0 discriminator 1
		 		clr.l -1340(%fp)
				.loc 1 598 0 discriminator 1
		 		lea (16,%sp),%sp
		 		jra .L275
			.LVL452:
			.L238:
				.loc 1 598 0
		 		move.l -1360(%fp),%d0
			.LVL453:
		 		sub.l %d0,%d1
		 		sub.l %d0,%d1
		 		move.l %d1,-(%sp)
		 		move.l -1312(%fp),-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr DOM.6344
			.LVL454:
		 		addq.l #8,%sp
		 		jra .L239
			.LVL455:
			.L240:
  599                   !!
				.loc 1 599 0 discriminator 1
		 		move.l -1316(%fp),%d0
		 		sub.l -1360(%fp),%d0
		 		move.l %d0,-(%sp)
		 		move.l -1312(%fp),%d1
		 		addq.l #1,%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL451:
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
  602                      %CYCLE B = -1, 2, 1
				.loc 1 602 0
		 		moveq #-6,%d3
  603                            PIN FLAG = 0
				.loc 1 603 0
		 		moveq #-3,%d2
			.LVL460:
			.L241:
				.loc 1 603 0
		 		clr.l -1340(%fp)
  604                            K = DOM(X+A, Y+B)
				.loc 1 604 0
		 		lea DOM.6344,%a3
		 		jra .L242
			.LVL456:
			.L301:
			.LDL16:
			.LDL17:
				.loc 1 604 0
		 		moveq #2,%d2
			.LVL457:
		 		cmp.l %d3,%d2
		 		jeq .L275
			.LVL458:
			.L242:
				.loc 1 604 0
		 		move.l %d2,%d0
		 		add.l -1316(%fp),%d0
		 		move.l %d0,-(%sp)
		 		move.l %d3,%d1
		 		add.l -1312(%fp),%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL462:
  605                             PIN FLAG = 0
				.loc 1 605 0
		 		addq.l #4,%d3
			.LVL459:
				.loc 1 605 0
		 		clr.l -1340(%fp)
				.loc 1 605 0
		 		lea (16,%sp),%sp
		 		moveq #1,%d0
		 		cmp.l %d2,%d0
		 		jne .L241
		 		jra .L301
			.LVL464:
			.L244:
			.L245:
  606                            K = DOM(X+B, Y+A)
				.loc 1 606 0
		 		addq.l #2,%d2
			.LVL461:
				.loc 1 606 0
		 		move.l %d3,%d0
		 		add.l -1316(%fp),%d0
		 		move.l %d0,-(%sp)
		 		move.l %d2,%d1
		 		add.l -1312(%fp),%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL463:
			.LDL18:
  607                      %REPEAT
  608                   %REPEAT
  609                   -> OUT
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				.loc 1 613 0
		 		moveq #1,%d1
		 		move.l %d1,-1336(%fp)
			.LVL465:
  614                   I = 0;  PIN FLAG = 0
				.loc 1 614 0
		 		clr.l %d3
  615                   %CYCLE
				.loc 1 615 0
		 		clr.l -1340(%fp)
  616                      I = I-1
				.loc 1 616 0
		 		subq.l #1,%d3
			.LVL467:
  617                      K = DOM(X+I, Y+I)
				.loc 1 617 0
		 		lea DOM.6344,%a3
			.LVL466:
			.L246:
				.loc 1 617 0
		 		move.l %d3,%d2
		 		add.l -1316(%fp),%d2
		 		move.l %d2,-(%sp)
		 		move.l %d3,%d0
		 		add.l -1312(%fp),%d0
		 		move.l %d0,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL468:
		 		move.l %d0,%d2
			.LVL469:
  618                   %REPEAT %UNTIL K = 0
				.loc 1 618 0
		 		addq.l #8,%sp
		 		jne .L246
			.L247:
			.LVL470:
  619                   I = 0;  PIN FLAG = 0
  620                   %CYCLE
				.loc 1 620 0
		 		clr.l -1340(%fp)
  621                      I = I-1
				.loc 1 621 0
		 		subq.l #1,%d2
			.LVL472:
  622                      K = DOM(X-I, Y+I)
				.loc 1 622 0
		 		lea DOM.6344,%a3
			.LVL471:
			.L248:
				.loc 1 622 0
		 		move.l %d2,%d1
		 		add.l -1316(%fp),%d1
		 		move.l %d1,-(%sp)
		 		move.l -1312(%fp),%d0
			.LVL473:
		 		sub.l %d2,%d0
		 		move.l %d0,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL474:
		 		move.l %d0,%d3
			.LVL475:
  623                   %REPEAT %UNTIL K = 0
				.loc 1 623 0
		 		addq.l #8,%sp
		 		jne .L248
			.L249:
			.LVL476:
  624                   I = 0;  PIN FLAG = 0
  625                   %CYCLE
				.loc 1 625 0
		 		clr.l -1340(%fp)
  626                      I = I-1
				.loc 1 626 0
		 		subq.l #1,%d3
			.LVL478:
  627                      K = DOM(X+I, Y-I)
				.loc 1 627 0
		 		lea DOM.6344,%a3
			.LVL477:
			.L250:
				.loc 1 627 0
		 		move.l -1316(%fp),%d1
		 		sub.l %d3,%d1
		 		move.l %d1,-(%sp)
		 		move.l %d3,%d2
		 		add.l -1312(%fp),%d2
		 		move.l %d2,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL479:
		 		move.l %d0,%d2
			.LVL480:
  628                   %REPEAT %UNTIL K = 0
				.loc 1 628 0
		 		addq.l #8,%sp
		 		jne .L250
			.L251:
			.LVL481:
  629                   I = 0;  PIN FLAG = 0
  630                   %CYCLE
				.loc 1 630 0
		 		clr.l -1340(%fp)
  631                      I = I-1
				.loc 1 631 0
		 		subq.l #1,%d2
			.LVL483:
  632                      K = DOM(X-I, Y-I)
				.loc 1 632 0
		 		lea DOM.6344,%a3
			.LVL482:
			.L252:
				.loc 1 632 0
		 		move.l -1316(%fp),%d0
			.LVL484:
		 		sub.l %d2,%d0
		 		move.l %d0,-(%sp)
		 		move.l -1312(%fp),%d1
		 		sub.l %d2,%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL485:
  633                   %REPEAT %UNTIL K = 0
				.loc 1 633 0
		 		addq.l #8,%sp
		 		tst.l %d0
		 		jne .L252
			.L253:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				.loc 1 634 0
		 		moveq #5,%d2
			.LVL486:
		 		cmp.l -1292(%fp),%d2
		 		jne .L275
			.L254:
			.LVL487:
			.L255:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				.loc 1 637 0
		 		clr.l -1336(%fp)
			.LVL488:
  638                   K = 1;  I = 0;  PIN FLAG = 0
  639                   %CYCLE
				.loc 1 639 0
		 		clr.l %d3
  640                      I = I-1
				.loc 1 640 0
		 		clr.l -1340(%fp)
				.loc 1 640 0 discriminator 1
		 		subq.l #1,%d3
			.LVL490:
  641                      K = DOM(X, Y+I)
				.loc 1 641 0
		 		lea DOM.6344,%a3
			.LVL489:
			.L256:
				.loc 1 641 0 discriminator 1
		 		move.l %d3,%d0
		 		add.l -1316(%fp),%d0
		 		move.l %d0,-(%sp)
		 		move.l -1312(%fp),-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL491:
		 		move.l %d0,%d2
			.LVL492:
  642                   %REPEAT %UNTIL K = 0
				.loc 1 642 0 discriminator 1
		 		addq.l #8,%sp
		 		jne .L256
			.L257:
			.LVL493:
  643                   I = 0;  PIN FLAG = 0
  644                   %CYCLE
				.loc 1 644 0
		 		clr.l -1340(%fp)
  645                      I = I+1
				.loc 1 645 0
		 		addq.l #1,%d2
			.LVL495:
  646                      K = DOM(X+I, Y)
				.loc 1 646 0
		 		lea DOM.6344,%a3
			.LVL494:
			.L258:
				.loc 1 646 0
		 		move.l -1316(%fp),-(%sp)
		 		move.l %d2,%d1
		 		add.l -1312(%fp),%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL496:
		 		move.l %d0,%d3
			.LVL497:
  647                   %REPEAT %UNTIL K = 0
				.loc 1 647 0
		 		addq.l #8,%sp
		 		jne .L258
			.L259:
			.LVL498:
  648                   I = 0;  PIN FLAG = 0
  649                   %CYCLE
				.loc 1 649 0
		 		clr.l -1340(%fp)
  650                      I = I+1
				.loc 1 650 0
		 		addq.l #1,%d3
			.LVL500:
  651                      K = DOM(X, Y+I)
				.loc 1 651 0
		 		lea DOM.6344,%a3
			.LVL499:
			.L260:
				.loc 1 651 0
		 		move.l %d3,%d2
		 		add.l -1316(%fp),%d2
		 		move.l %d2,-(%sp)
		 		move.l -1312(%fp),-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL501:
		 		move.l %d0,%d2
			.LVL502:
  652                   %REPEAT %UNTIL K = 0
				.loc 1 652 0
		 		addq.l #8,%sp
		 		jne .L260
			.L261:
			.LVL503:
  653                   I = 0;  PIN FLAG = 0
  654                   %CYCLE
				.loc 1 654 0
		 		clr.l -1340(%fp)
  655                      I = I-1
				.loc 1 655 0
		 		subq.l #1,%d2
			.LVL505:
  656                      K = DOM(X+I, Y)
				.loc 1 656 0
		 		lea DOM.6344,%a3
			.LVL504:
			.L262:
				.loc 1 656 0
		 		move.l -1316(%fp),-(%sp)
		 		move.l %d2,%d0
			.LVL506:
		 		add.l -1312(%fp),%d0
		 		move.l %d0,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL507:
  657                   %REPEAT %UNTIL K = 0
				.loc 1 657 0
		 		addq.l #8,%sp
		 		tst.l %d0
		 		jne .L262
			.L231:
			.L271:
			.L272:
			.L273:
			.L274:
			.LVL508:
			.L275:
  658                   -> OUT
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				.loc 1 663 0
		 		move.l -1316(%fp),%d0
		 		subq.l #1,%d0
		 		lsl.l #7,%d0
		 		add.l #BRD.6003,%d0
		 		move.l %d0,-1324(%fp)
			.LVL515:
  664                   %CYCLE A = -1, 1, 1
  665                      %CYCLE B = -1, 1, 1
				.loc 1 665 0
		 		moveq #-2,%d3
  666                         %IF A#0 %OR B#0 %START
				.loc 1 666 0
		 		moveq #-2,%d2
			.LVL519:
			.L264:
				.loc 1 666 0
		 		tst.l %d3
		 		jeq .L305
			.L267:
  667                           PIN FLAG = 0
				.loc 1 667 0
		 		moveq #1,%d1
		 		cmp.l %d3,%d1
		 		jeq .L304
			.LVL517:
			.L266:
				.loc 1 667 0 discriminator 1
		 		clr.l -1340(%fp)
				.loc 1 667 0
		 		tst.l %d2
		 		jne .L267
  668                           K = DOM(X+A, Y+B)
				.loc 1 668 0
		 		lea DOM.6344,%a3
		 		jra .L266
			.LVL516:
			.L306:
			.LDL19:
			.LDL20:
				.loc 1 668 0
		 		addq.l #1,%d3
			.LVL518:
				.loc 1 668 0 discriminator 1
		 		move.l %d2,%d0
		 		add.l -1316(%fp),%d0
		 		move.l %d0,-(%sp)
		 		move.l %d3,%d1
		 		add.l -1312(%fp),%d1
		 		move.l %d1,-(%sp)
		 		lea (-1360,%fp),%a0
		 		jsr (%a3)
			.LVL521:
				.loc 1 668 0 discriminator 1
		 		addq.l #8,%sp
		 		moveq #1,%d0
		 		cmp.l %d2,%d0
		 		jne .L264
		 		jra .L306
			.L305:
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
				.loc 1 669 0
		 		addq.l #1,%d2
			.LVL520:
  670                         %FINISH
				.loc 1 670 0
		 		jra .L264
			.L304:
			.L265:
  671                      %REPEAT
  672                   %REPEAT
  673                   %IF LAST CHK # Q %AND %C
				.loc 1 673 0
		 		move.l LASTCHK.6069,%d1
		 		cmp.l -1300(%fp),%d1
		 		jeq .L275
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
				.loc 1 674 0
		 		move.l -1360(%fp),%d1
		 		move.l %d1,%d0
		 		addq.l #1,%d0
		 		move.l KCASCH.6331(%d0.l*4),%a0
		 		cmp.l -1316(%fp),%a0
		 		jne .L275
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
				.loc 1 675 0
		 		tst.b KMOVE.6051(%d0.l)
		 		jne .L275
			.LBB489:
  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
				.loc 1 678 0
		 		moveq #6,%d2
			.LVL527:
		 		move.l %d2,-1296(%fp)
  679                      %FINISH
				.loc 1 679 0
		 		move.l -1324(%fp),%a1
			.LVL522:
		 		tst.l 80(%a1)
		 		jne .L270
				.loc 1 679 0
		 		move.l %a0,-(%sp)
		 		pea 7.w
		 		lea (-1360,%fp),%a0
		 		jsr DOM.6344
			.LVL528:
		 		addq.l #8,%sp
		 		jra .L270
			.LVL529:
			.L302:
  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
				.loc 1 681 0
		 		tst.l 96(%a1)
		 		jne .L270
			.LBE489:
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				.loc 1 683 0
		 		lsl.l #2,%d1
		 		cmp.l 112(%a1),%d1
		 		jeq .L307
			.LVL523:
			.L270:
			.LBB490:
				.loc 1 683 0 discriminator 1
		 		move.l -1324(%fp),%a0
			.LVL524:
		 		tst.l 48(%a0)
		 		jne .L275
				.loc 1 683 0
		 		moveq #7,%d0
		 		move.l %d0,-1296(%fp)
  684                      %FINISH
				.loc 1 684 0
		 		move.l -1316(%fp),-(%sp)
		 		pea 3.w
		 		lea (-1360,%fp),%a0
		 		jsr DOM.6344
			.LVL525:
		 		addq.l #8,%sp
		 		jra .L275
			.LVL526:
			.L307:
  685                   %FINISH
				.loc 1 685 0
		 		tst.l 32(%a0)
		 		jne .L275
			.LBE490:
  686                   !!
  687 OUT:
				.loc 1 687 0
		 		tst.l 16(%a0)
		 		jne .L275
  688                %FINISH
				.loc 1 688 0
		 		move.l -1360(%fp),%d0
		 		lsl.l #2,%d0
		 		cmp.l (%a0),%d0
		 		jne .L275
  689                %RESULT = 0 %IF SCRQ = 3
				.loc 1 689 0
		 		move.l -1288(%fp),%d0
		 		moveq #3,%d1
		 		cmp.l %d0,%d1
		 		jeq .L302
			.L229:
			.L230:
  690             %REPEAT
				.loc 1 690 0
		 		clr.l %d0
		 		jra .L221
			.LVL530:
			.L303:
			.LBB491:
			.LBB487:
			.LBB485:
  691          %REPEAT
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				.loc 1 692 0
		 		tst.l %d0
		 		jle .L286
			.LVL509:
			.LBB480:
			.LBB481:
  693                                         ! ONLY ON SCORE ENTRY
				.loc 1 693 0
		 		move.l -1320(%fp),%d6
			.LVL510:
			.LBB488:
			.LBB486:
			.LBB482:
			.LBB483:
  694
  695          %RESULT = ADDR(LIST)
				.loc 1 695 0
		 		move.l -1328(%fp),%d0
			.L221:
  696       %END
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
		.LVL69:
		 		link.w %fp,#-780
		 		movem.l #16184,-(%sp)
		 		move.l 8(%fp),%d3
		 		move.l 12(%fp),%d4
		 		move.l 16(%fp),%d2
		 		move.l %a0,%d5
				.loc 1 698 0 discriminator 1
		 		move.l %d2,%d0
		 		subq.l #1,%d0
		 		moveq #5,%d1
		 		cmp.l %d0,%d1
		 		jcs .L235
			.L236:
		 		lea MOVE.6335,%a0
		 		move.l -4(%a0,%d2.l*4),%a0
		 		jmp (%a0)
			.LVL445:
			.L300:
				.loc 1 698 0 discriminator 1
		 		move.l _imp_current_line,%d3
		 		jne .L287
				.loc 1 698 0 is_stmt 0
		 		move.l #698,%d3
			.L287:
				.loc 1 698 0 discriminator 5
		 		move.l _imp_current_file,%d0
		 		jeq .L288
				.loc 1 698 0 discriminator 6
		 		move.l %d0,-(%sp)
		 		lea (-1024,%fp),%a1
		 		jsr _imp_c2istr
			.LVL552:
		 		addq.l #4,%sp
			.L289:
				.loc 1 698 0 discriminator 9
		 		pea 587.w
		 		pea .LC26
		 		move.l %d2,-(%sp)
		 		pea .LC27
		 		move.l %d2,-(%sp)
		 		pea 3.w
		 		pea 6.w
		 		move.l %d3,-(%sp)
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		pea 256.w
		 		pea -1024(%fp)
		 		move.l %d0,-(%sp)
		 		jsr memcpy
			.LVL553:
		 		lea (12,%sp),%sp
		 		jsr _signal_eventf
			.LVL554:
		 		lea (288,%sp),%sp
		 		jra .L236
			.L288:
			.LBB492:
				.loc 1 698 0 discriminator 7
		 		lea (-256,%fp),%a4
		 		move.l #256,%d5
		 		move.l %d5,-(%sp)
		 		pea .LC1
		 		move.l %a4,-(%sp)
		 		lea memcpy,%a3
		 		jsr (%a3)
			.LVL555:
		 		move.l %fp,%d6
		 		add.l #-1280,%d6
		 		move.l %d5,-(%sp)
		 		move.l %a4,-(%sp)
		 		move.l %d6,-(%sp)
		 		jsr (%a3)
			.LVL556:
			.LBE492:
		 		move.l %d5,-(%sp)
		 		move.l %d6,-(%sp)
		 		pea -1024(%fp)
		 		jsr (%a3)
			.LVL557:
		 		lea (36,%sp),%sp
		 		jra .L289
				.cfi_endproc
			.LFE193:
				.align	2
			TRYANOTHERPLY.6230:
			.LFB191:
  699          %INTEGER WIDTH, WHICH)
  700
				.loc 1 700 0
		 		movem.l -1396(%fp),#15484
		 		unlk %fp
			.LVL550:
		 		rts
			.LVL551:
			.L235:
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
		 		move.l #25000,-12(%fp)
		 		clr.l -8(%fp)
		 		move.l #-25000,-4(%fp)
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
		 		tst.l %d3
		 		jeq .L50
		.L31:
		.LVL70:
		.LBB308:
		.LBB309:
  708
		 		clr.l %d0
		 		jra .L29
		.LVL114:
		.L40:
		.LBB312:
  709          RES == RECORD(0)
  710          %CYCLE I = 1, 1, WIDTH
  711             M1 == RECORD(0)
		 		sub.l %a3,%a3
		 		jra .L44
		.LVL100:
		.L38:
		.LBE308:
  712             M2 == M1; LN == M1
		 		move.l %d4,%d0
		 		subq.l #1,%d0
		.LVL71:
		.LBE309:
		 		jmi .L57
		.LVL72:
		.L32:
		 		pea .LC24
		 		lea (-524,%fp),%a1
		 		jsr _imp_c2istr
		.LVL75:
		 		move.l _imp_current_line,%d6
		 		addq.l #4,%sp
		 		jne .L33
		 		move.l #712,%d6
		.L33:
		 		move.l _imp_current_file,%d0
		 		jeq .L34
		 		move.l %d0,-(%sp)
		 		lea (-268,%fp),%a1
		 		jsr _imp_c2istr
		.LVL76:
		 		addq.l #4,%sp
		.L35:
		 		clr.l -(%sp)
		 		pea 1.w
		 		pea 5.w
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l #256,%d7
		 		move.l %d7,-(%sp)
		 		pea -524(%fp)
		 		move.l %d0,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL77:
		 		lea (12,%sp),%sp
		 		move.l %d6,-(%sp)
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d7,-(%sp)
		 		pea -268(%fp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
		.LVL78:
		 		lea (12,%sp),%sp
		 		jsr _signal_event
		.LVL79:
		 		lea (528,%sp),%sp
		 		jra .L32
		.L34:
		.LBB310:
		 		move.l %fp,%d7
		.LVL80:
		 		add.l #-268,%d7
		.LVL81:
		 		move.w #256,%a3
		 		move.l %a3,-(%sp)
		 		pea .LC1
		 		move.l %d7,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL82:
		 		lea (-780,%fp),%a4
		 		move.l %a3,-(%sp)
		 		move.l %d7,-(%sp)
		 		move.l %a4,-(%sp)
		 		jsr (%a2)
		.LVL83:
		.LBE310:
		 		move.l %a3,-(%sp)
		 		move.l %a4,-(%sp)
		 		move.l %d7,-(%sp)
		 		jsr (%a2)
		.LVL84:
		 		lea (36,%sp),%sp
		 		jra .L35
		.LVL85:
		.L54:
		 		sub.l %a2,%a2
		 		sub.l %a2,%a2
		 		jra .L46
		.LBE312:
		.LFE195:
				.section	.rodata
				.align	2
		.LC20:
		 		.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
		.LC21:
		 		.byte	40
		 		.string	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\n"
		 		.zero	214
				.align	2
		EXVAL.6198:
		.LFB189:
  713             MAX = MAXA(WHICH)
		 		clr.l %d7
		 		clr.l %d0
  714
  715             L == LIST
		 		tst.l %d4
		 		jeq .L52
		.LVL73:
		 		cmp.l %d4,%d6
		 		jeq .L38
		 		sub.l %a2,%a2
		 		jra .L36
		.LVL105:
		.L56:
		.LBE311:
  716             %%EXIT  %IF ADDR(L) = 0
		 		moveq #1,%d6
		 		addq.l #1,%d6
		.LVL98:
		 		move.l %a2,%d7
		 		tst.l %d3
		 		jeq .L39
		.LVL99:
		.L37:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
		 		move.l -8(%fp,%d2.l*4),%a4
		 		jra .L37
		.LVL74:
		.L57:
		 		tst.l %d1
		 		jeq .L58
		.LVL92:
		 		tst.l %d2
		 		jlt .L59
		.L41:
		 		tst.l %d3
		 		jeq .L40
		 		move.l %d3,%a0
		 		move.l %a4,%a1
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
		 		cmp.l 4(%a0),%a1
		 		jle .L43
		.L42:
		.LVL88:
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
		 		jle .L43
  723                %FINISH
		 		cmp.l 4(%a0),%a1
		 		jge .L43
  724                !!
		 		move.l 4(%a0),%a1
		.LVL89:
		 		move.l %a0,%a2
		 		move.l %d0,%a3
		.LVL90:
		.L43:
		 		jra .L42
		.LVL94:
		.L58:
		.L45:
  725                LN == L;  L == L_L
  726             %REPEAT
		 		move.l (%a0),%d1
		.LDL1:
		.LDL2:
		.LVL91:
		 		move.l %a0,%d0
		 		move.l %d1,%a0
		.LVL93:
		.L44:
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
		 		move.l %d0,%d3
		.LVL86:
		 		jra .L46
		.LVL87:
		.L59:
		 		move.l (%a2),%d0
		.LVL95:
		 		sub.l %a0,%a0
		 		move.l (%a0),%d3
		.LVL115:
  730             M2_L == RES
		 		move.l %d7,(%a2)
		.LVL96:
		 		move.l %d7,(%a0)
		.LVL116:
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
		 		tst.l %a3
		 		jeq .L54
		.L47:
  733               M1_L == L
  734          %REPEAT
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
		 		move.l %d0,(%a3)
		.LVL97:
		.L46:
		 		tst.l %d3
		 		jeq .L39
		.LVL101:
		.L36:
  737          L == RECORD (0)
		 		move.l %d3,-(%sp)
		 		move.l %d5,%a0
		 		jsr RELEASECHAIN.6143
		.LVL102:
		 		addq.l #4,%sp
		.L39:
		.LVL103:
  738          %WHILE ADDR(RES) # 0 %CYCLE
  739             M1 == RES_L;                ! NEXT LINK
		 		tst.l %a2
		 		jeq .L55
		 		clr.l %d1
		 		jra .L49
		.LVL104:
		.L52:
		.LBB311:
		 		move.l (%a2),%d0
		.LVL107:
		 		tst.l %d0
		 		jne .L56
		.LVL109:
		.L48:
		 		sub.l %a2,%a2
		.LVL112:
		 		jra .L48
		.LVL113:
		.L50:
  740             RES_L == L;                 ! LINK TO NEXT
		 		move.l %d1,(%a2)
		.LVL108:
		 		move.l %a2,%d1
  741             L == RES
  742             RES == M1
		 		move.l %d0,%a2
		.LVL106:
		.L49:
  743          %REPEAT
  744          %RESULT = ADDR(L)
		 		move.l %a2,%d0
		.LVL110:
		.L29:
  745       %END
		 		movem.l -816(%fp),#7420
		 		unlk %fp
		 		rts
		.LVL111:
		.L55:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL4:
		 		link.w %fp,#0
		 		movem.l #14368,-(%sp)
		 		move.l 8(%fp),%a2
  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
		 		move.l (%a2),%a1
		.LVL5:
  754          FROM = LIST_FR;  TO = LIST_TO
		 		move.b 4(%a1),%d0
		.LVL6:
  755          X = FROM>>4;  X0 = TO>>4
		 		move.b 5(%a1),%d2
		.LVL7:
		 		bfextu %d0{#24:#4},%d3
		.LVL8:
  756          Y = FROM&15; Y0 = TO&15
		 		moveq #15,%d1
		 		and.l %d1,%d0
		.LVL9:
		 		bfextu %d2{#24:#4},%d2
		.LVL10:
		 		move.l %d2,%a0
		 		subq.l #1,%a0
		.LVL11:
  757          SQ == BRD(Y0)_R(X0)
		 		and.l %d2,%d1
		 		subq.l #1,%d1
  758          B_HOLD = SQ_P
		 		move.l %d1,%d2
		 		lsl.l #3,%d2
		 		add.l %a0,%d2
		 		lsl.l #4,%d2
		 		move.l BRD.6003(%d2.l),(%a2)
		.LVL12:
  759          %IF LIST_SPEC # 0 %START
		 		move.l 6(%a1),%a1
		.LVL13:
		 		tst.l %a1
		 		jeq .L6
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
		 		moveq #5,%d2
		 		cmp.l %a1,%d2
		 		jge .L7
  761                %IF SQ_P<0 %START
		 		move.l %d1,%d0
		.LVL14:
		 		lsl.l #3,%d0
		 		add.l %a0,%d0
		 		lsl.l #4,%d0
		 		tst.l BRD.6003(%d0.l)
		 		jlt .L14
		.L8:
		.LVL15:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
		 		moveq #1,%d2
  763                %FINISHELSESTART
		 		moveq #-6,%d0
		 		jra .L9
		.LVL25:
		.L15:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
		 		moveq #8,%d2
		 		moveq #-4,%d3
		.LVL24:
  765                %FINISH
		 		moveq #6,%d0
		.LVL17:
		.L9:
		 		moveq #-30,%d4
		 		move.l %d4,KCAS.6052
  766                ROW == BRD(CAS)
		 		moveq #4,%d3
		.LVL16:
		 		subq.l #1,%d2
		.LVL18:
		 		moveq #6,%d4
		 		cmp.l %a1,%d4
		 		jeq .L15
		.L10:
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
		 		moveq #30,%d0
		 		move.l %d0,KCAS.6052+8
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
		 		lsl.l #7,%d2
		.LVL26:
		 		move.l %d2,%a1
		 		add.l #BRD.6003,%a1
		 		move.l %d0,96(%a1)
  769                   ROW_R(8)_P = 0
		 		move.l %d3,80(%a1)
		 		clr.l 112(%a1)
  770                %FINISHELSESTART
		 		jra .L11
		.LVL27:
		.L7:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
		 		lea BRD.6003,%a1
		 		lsl.l #7,%d2
		.LVL19:
		 		lea (%a1,%d2.l),%a2
		.LVL20:
		 		move.l %d0,32(%a2)
  772                   ROW_R(1)_P = 0
		 		move.l %d3,48(%a2)
		 		clr.l (%a1,%d2.l)
		.LVL21:
		.L11:
  773                %FINISH
  774                SQ_P = 0
		 		lsl.l #3,%d1
		.LVL22:
		 		add.l %a0,%d1
		 		lsl.l #4,%d1
		 		clr.l BRD.6003(%d1.l)
  775                %RESULT = KING
		 		jra .L5
		.LVL23:
		.L14:
  776             %FINISH
  777             SQ_P = LIST_SPEC
		 		move.l %d1,%d2
		 		lsl.l #3,%d2
		 		add.l %a0,%d2
		 		lsl.l #4,%d2
		 		move.l %a1,BRD.6003(%d2.l)
  778          %FINISHELSESTART
		 		jra .L13
		.L6:
  779             SQ_P = BRD(Y)_R(X)_P
		 		move.l %d0,%d2
		 		subq.l #1,%d2
		 		lsl.l #3,%d2
		 		move.l %d3,%a1
		 		lea -1(%a1,%d2.l),%a1
		 		move.l %a1,%d4
		 		lsl.l #4,%d4
		 		move.l %d1,%d2
		 		lsl.l #3,%d2
		 		add.l %a0,%d2
		 		lsl.l #4,%d2
		 		move.l BRD.6003(%d4.l),BRD.6003(%d2.l)
		.L13:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
		 		lea BRD.6003,%a1
		 		subq.l #1,%d0
		.LVL28:
		 		lsl.l #3,%d0
		.LVL29:
		 		move.l %d3,%a2
		 		lea -1(%a2,%d0.l),%a2
		 		move.l %a2,%d0
		 		lsl.l #4,%d0
		 		clr.l (%a1,%d0.l)
  782          %RESULT = SQ_P
		 		lsl.l #3,%d1
		.LVL30:
		 		add.l %a0,%d1
		 		lsl.l #4,%d1
		 		move.l (%a1,%d1.l),%d0
		.LVL31:
		.L5:
  783       %END
		 		movem.l (%sp)+,#1052
		 		unlk %fp
		 		rts
		.LFE196:
				.align	2
		RESTOREBOARD.6093:
		.LFB197:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL32:
		 		link.w %fp,#0
		 		movem.l #15392,-(%sp)
		 		move.l 8(%fp),%a1
  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
		 		move.l (%a1),%a0
		.LVL33:
  791          FROM = LIST_FR;  TO = LIST_TO
		 		move.b 4(%a0),%d1
		.LVL34:
  792          X = FROM>>4;  X0 = TO>>4
		 		move.b 5(%a0),%d2
		.LVL35:
		 		bfextu %d1{#24:#4},%d4
		.LVL36:
  793          Y = FROM&15; Y0 = TO&15
		 		moveq #15,%d0
		 		and.l %d0,%d1
		.LVL37:
		 		bfextu %d2{#24:#4},%d2
		.LVL39:
		 		subq.l #1,%d2
		.LVL40:
  794          SQ == BRD(Y0)_R(X0)
		 		moveq #15,%d3
		 		and.l %d2,%d3
		.LVL38:
		 		move.l %d3,%d0
		 		subq.l #1,%d0
  795          %IF LIST_SPEC # 0 %START
		 		move.l 6(%a0),%a0
		.LVL41:
		 		tst.l %a0
		 		jeq .L25
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
		 		moveq #5,%d5
		 		cmp.l %a0,%d5
		 		jge .L18
  797                %IF Y0 = 1 %START
		 		moveq #1,%d1
		.LVL42:
		 		cmp.l %d3,%d1
		 		jeq .L26
		.L19:
		.LVL43:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
  799                %FINISHELSESTART
		 		moveq #-6,%d1
		 		jra .L20
		.LVL56:
		.L27:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
		 		moveq #8,%d3
		.LVL45:
		 		move.w #-4,%a1
		.LVL55:
  801                %FINISH
		 		moveq #6,%d1
		.LVL46:
		.L20:
		 		clr.l KCAS.6052
  802                ROW == BRD(CAS)
		 		move.w #4,%a1
		.LVL44:
		 		subq.l #1,%d3
		.LVL47:
		 		moveq #6,%d4
		.LVL48:
		 		cmp.l %a0,%d4
		 		jeq .L27
		.L21:
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
		 		clr.l KCAS.6052+8
  804                   ROW_R(8)_P = ROOK
		 		lsl.l #7,%d3
		.LVL57:
		 		move.l %d3,%a0
		 		add.l #BRD.6003,%a0
		 		move.l %a1,112(%a0)
		.LVL58:
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
		 		clr.l 96(%a0)
  806                %FINISHELSESTART
		 		clr.l 80(%a0)
		 		jra .L22
		.LVL59:
		.L18:
  807                   ROW_R(1)_P = ROOK
		 		lea BRD.6003,%a0
		 		lsl.l #7,%d3
		.LVL49:
		 		move.l %a1,(%a0,%d3.l)
		.LVL50:
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
		 		add.l %d3,%a0
		.LVL51:
		 		clr.l 32(%a0)
  809                %FINISH
		 		clr.l 48(%a0)
		.LVL52:
		.L22:
  810                SQ_P = KING
		 		lsl.l #3,%d0
		.LVL53:
		 		add.l %d0,%d2
		 		lsl.l #4,%d2
		 		move.l %d1,BRD.6003(%d2.l)
  811                %RETURN
		 		jra .L16
		.LVL54:
		.L26:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
		 		moveq #8,%d5
		 		cmp.l %d3,%d5
		 		jeq .L28
		.L24:
  814          %FINISH
		 		move.l %d2,%d3
		.LVL67:
		 		lsl.l #4,%d3
		 		moveq #-1,%d5
		 		move.l %d5,BRD.6003+896(%d3.l)
		.LVL68:
  815          BRD(Y)_R(X)_P = SQ_P
		 		lea BRD.6003,%a0
		 		lsl.l #3,%d0
		.LVL62:
		 		add.l %d2,%d0
		 		lsl.l #4,%d0
		 		subq.l #1,%d1
		.LVL63:
		 		lsl.l #3,%d1
		.LVL64:
		 		move.l %d4,%a2
		 		lea -1(%a2,%d1.l),%a2
		 		move.l %a2,%d1
		 		lsl.l #4,%d1
		 		move.l (%a0,%d0.l),(%a0,%d1.l)
		 		jra .L25
		.LFE197:
				.section	.rodata.str1.1,"aMS",@progbits,1
		.LC24:
		 		.string	"Illegal cycle I = 1, 1, WIDTH"
				.section	.rodata
		.LC1:
		 		.byte	19
		 		.string	"test-new/chess9.imp"
		 		.zero	235
				.align	2
		SORTANDPRUNE.6080:
		.LFB195:
  816          SQ_P = B_HOLD
		 		move.l (%a1),(%a0,%d0.l)
		.LVL65:
		.L16:
  817       %END
		 		move.l %d0,%d3
		.LVL60:
		 		lsl.l #3,%d3
		 		add.l %d2,%d3
		 		lsl.l #4,%d3
		 		moveq #1,%d5
		 		move.l %d5,BRD.6003(%d3.l)
		.LVL61:
		.L17:
		.L25:
  818       !!
		 		movem.l (%sp)+,#1084
		 		unlk %fp
		 		rts
		.LVL66:
		.L28:
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
				.loc 1 820 0
				.cfi_startproc
			.LVL643:
		 		link.w %fp,#0
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #8248,-(%sp)
				.cfi_offset 2, -24
				.cfi_offset 10, -20
				.cfi_offset 11, -16
				.cfi_offset 12, -12
		 		move.l 8(%fp),%a2
		 		move.l 12(%fp),%d2
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				.loc 1 823 0
		 		move.l %d2,-(%sp)
		 		move.l (%a2),-(%sp)
		 		lea TELL.6099,%a4
		 		jsr (%a4)
			.LVL644:
			.LBB553:
			.LBB554:
				.loc 2 629 0
		 		moveq #2,%d0
		 		move.l %d0,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		lea check_outstream,%a3
		 		jsr (%a3)
			.LVL645:
			.LBE554:
			.LBE553:
			.LBB555:
			.LBB556:
				.loc 2 586 0
		 		pea 42.w
		 		jsr _imp_printsymbol
			.LVL646:
			.LBE556:
			.LBE555:
  824          SELECT OUTPUT(2)
  825          PRINTSYMBOL('*'); TELL(X_L, W)
  826          SELECT OUTPUT(0)
				.loc 1 826 0
		 		move.l %d2,-(%sp)
		 		move.l (%a2),-(%sp)
		 		jsr (%a4)
			.LVL647:
			.LBB557:
			.LBB558:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr (%a3)
			.LVL648:
			.LBE558:
			.LBE557:
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				.loc 1 828 0
		 		move.l %a2,-(%sp)
		 		jsr CHANGEBOARD.6091
			.LVL649:
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				.loc 1 829 0
		 		move.l %d2,%d1
		 		add.l %d1,%d1
		 		add.l %d2,%d1
		 		add.l %d1,%d1
		 		lea (32,%sp),%sp
		 		cmp.l %d1,%d0
		 		jeq .L354
			.L353:
			.L352:
  830       %END
				.loc 1 830 0
		 		move.b #1,KMOVE.6051+1(%d2.l)
				.loc 1 830 0
		 		jra .L352
				.cfi_endproc
			.LFE198:
				.section	.rodata
				.align	2
			.LC0:
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	0
		 		.long	5
		 		.long	0
		 		.long	0
		 		.long	3
		 		.long	3
		 		.long	3
		 		.long	20
		 		.long	20
		 		.long	3
		 		.long	3
		 		.long	3
		 		.long	4
		 		.long	6
		 		.long	6
		 		.long	50
		 		.long	50
		 		.long	6
		 		.long	6
		 		.long	4
		 		.long	8
		 		.long	9
		 		.long	30
		 		.long	55
		 		.long	55
		 		.long	30
		 		.long	9
		 		.long	8
		 		.long	10
		 		.long	10
		 		.long	35
		 		.long	60
		 		.long	60
		 		.long	35
		 		.long	10
		 		.long	10
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	100
		 		.long	500
		 		.long	500
		 		.long	500
		 		.long	500
		 		.long	500
		 		.long	500
		 		.long	500
		 		.long	500
			.LC2:
		 		.byte	92
		 		.string	"Version 2.5\nHOW DIFFICULT A GAME DO YOU WANT?\n      2 = NORMAL STRENGTH, 3 = MORE DIFFI
		 		.zero	162
			.LC3:
		 		.byte	4
		 		.string	"2-4?"
		 		.zero	250
			.LC4:
		 		.byte	5
		 		.string	"Move?"
		 		.zero	249
			.LC5:
		 		.byte	4
		 		.string	"MON?"
		 		.zero	250
			.LC6:
		 		.byte	8
		 		.string	"NEW PLY?"
		 		.zero	246
			.LC7:
		 		.byte	33
		 		.string	"INVALID MOVE - MY FORMAT IS D2D4\n"
		 		.zero	221
				.text
				.align	2
				.globl	main
			main:
			.LFB185:
  831       !!
				.loc 1 831 0
		 		movem.l -16(%fp),#7172
		 		unlk %fp
		 		rts
			.L354:
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
				.loc 1 832 0
				.cfi_startproc
			.LVL206:
		 		link.w %fp,#-1024
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #14368,-(%sp)
				.cfi_offset 2, -1048
				.cfi_offset 3, -1044
				.cfi_offset 4, -1040
				.cfi_offset 10, -1036
		 		move.l 8(%fp),%d2
  833
  834          %IF ADDR(MOVE) = 0 %START
				.loc 1 834 0
		 		jeq .L98
			.L93:
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				.loc 1 835 0
		 		tst.l 12(%fp)
		 		jlt .L99
			.L94:
			.LBB362:
  836 ")          %ELSE %C
				.loc 1 836 0
		 		move.l %fp,%d3
			.LVL247:
		 		add.l #-256,%d3
			.LVL248:
		 		move.l #256,%d2
		 		move.l %d2,-(%sp)
		 		pea .LC13
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL249:
		 		move.l %fp,%d4
			.LVL250:
		 		add.l #-1024,%d4
			.LVL251:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL252:
		 		add.l #-256,%d3
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL253:
			.LBE367:
			.LBB368:
			.LBB369:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL254:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL255:
		 		add.l %d2,%sp
		 		jra .L95
			.LVL256:
			.L96:
			.LBE369:
			.LBE368:
			.LBB370:
			.LBB371:
				.loc 2 659 0
		 		pea 4.w
		 		jsr _imp_spaces
			.LVL257:
			.LBE371:
			.LBE370:
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
				.loc 1 839 0
		 		move.l %fp,%d2
			.LVL236:
		 		add.l #-256,%d2
			.LVL237:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC14
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL238:
		 		move.l %fp,%d4
			.LVL239:
		 		add.l #-768,%d4
			.LVL240:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL241:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL242:
			.LBE362:
			.LBB363:
			.LBB364:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL243:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL244:
		 		add.l %d3,%sp
			.LVL245:
			.L95:
			.LBE364:
			.LBE363:
			.LBB365:
			.LBB366:
				.loc 2 862 0 discriminator 1
		 		clr.l -(%sp)
		 		jsr exit
			.LVL246:
			.L99:
			.LBE366:
			.LBE365:
			.LBB367:
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				.loc 1 842 0 discriminator 2
		 		pea 1.w
		 		move.l NO.6062,-(%sp)
		 		jsr _imp_writeint
			.LVL207:
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				.loc 1 843 0 discriminator 2
		 		addq.l #8,%sp
		 		tst.l 12(%fp)
		 		jle .L96
			.LVL208:
			.LBB351:
			.LBB352:
				.loc 2 659 0
		 		pea 25.w
		 		jsr _imp_spaces
			.LVL209:
			.LBE352:
			.LBE351:
  844          PRINTMOVE(MOVE)
				.loc 1 844 0
		 		move.l %d2,-(%sp)
		 		jsr PRINTMOVE.6103
			.LVL210:
			.LBB353:
				.loc 1 844 0
		 		move.l %d2,-(%sp)
		 		jsr PRINTMOVE.6103
			.LVL258:
			.LBB372:
  845          PRINTSTRING("(")
				.loc 1 845 0
		 		move.l %fp,%d3
			.LVL211:
		 		add.l #-256,%d3
			.LVL212:
		 		move.l #256,%d2
		 		move.l %d2,-(%sp)
		 		pea .LC15
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL213:
		 		move.l %fp,%d4
			.LVL214:
		 		add.l #-1024,%d4
			.LVL215:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL216:
		 		add.l #-256,%d3
		 		lea (32,%sp),%sp
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL217:
			.LBE353:
			.LBB354:
			.LBB355:
				.loc 2 589 0
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL218:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL219:
			.LBE355:
			.LBE354:
				.loc 1 845 0
		 		move.l %fp,%d3
			.LVL259:
		 		add.l #-256,%d3
			.LVL260:
		 		move.l #256,%d2
		 		move.l %d2,-(%sp)
		 		pea .LC15
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL261:
		 		move.l %fp,%d4
			.LVL262:
		 		add.l #-1024,%d4
			.LVL263:
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL264:
		 		add.l #-256,%d3
		 		lea (32,%sp),%sp
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL265:
			.LBE372:
			.LBB373:
			.LBB356:
				.loc 2 589 0
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL266:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL267:
			.LDL7:
			.LBE356:
			.LBE373:
  846          %IF WHICH > 0 %START
  847             TIMTT = CPUTIME-TIME
				.loc 1 847 0
		 		lea (268,%sp),%sp
		 		jsr CPUTIME
			.LVL220:
			.LBB357:
			.LBB358:
				.loc 2 663 0
		 		pea 2.w
		 		pea 1.w
		 		fsub.d TIME.6059,%fp0
			.LVL221:
		 		fmove.d %fp0,-(%sp)
		 		jsr _imp_print
			.LVL222:
		 		lea (16,%sp),%sp
			.LVL223:
			.L97:
			.LBE358:
			.LBE357:
			.LBB359:
  848            PRINT(TIMTT, 1, 2)
  849          %FINISHELSESTART
  850             PRINT(CPUTIME-TIME2, 1, 2)
				.loc 1 850 0
		 		lea (268,%sp),%sp
		 		jsr CPUTIME
			.LVL268:
			.LBB374:
			.LBB375:
				.loc 2 663 0
		 		pea 2.w
		 		pea 1.w
		 		fsub.d TIME2.6060,%fp0
			.LVL269:
		 		fmove.d %fp0,-(%sp)
		 		jsr _imp_print
			.LVL270:
		 		lea (16,%sp),%sp
		 		jra .L97
			.LBE375:
			.LBE374:
				.cfi_endproc
			.LFE199:
				.align	2
			READM.6627:
			.LFB207:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				.loc 1 852 0
		 		move.l %fp,%d2
			.LVL224:
		 		add.l #-256,%d2
			.LVL225:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC16
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL226:
		 		move.l %fp,%d4
			.LVL227:
		 		add.l #-768,%d4
			.LVL228:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL229:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL230:
			.LBE359:
			.LBB360:
			.LBB361:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL231:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL232:
			.LBE361:
			.LBE360:
  853 ")
  854       %END
				.loc 1 854 0
		 		add.l %d3,%sp
  855       !!
				.loc 1 855 0
		 		movem.l -1040(%fp),#1052
			.LVL233:
		 		unlk %fp
			.LVL234:
		 		rts
			.LVL235:
			.L98:
  856       %ROUTINE PRINTBOARD
				.loc 1 856 0
				.cfi_startproc
		 		link.w %fp,#-1628
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		movem.l #16188,-(%sp)
				.cfi_offset 2, -1676
				.cfi_offset 3, -1672
				.cfi_offset 4, -1668
				.cfi_offset 5, -1664
				.cfi_offset 6, -1660
				.cfi_offset 7, -1656
				.cfi_offset 10, -1652
				.cfi_offset 11, -1648
				.cfi_offset 12, -1644
				.cfi_offset 13, -1640
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				.loc 1 857 0
		 		lea (-64,%fp),%a3
		 		pea 64.w
		 		pea .LC8
		 		move.l %a3,-(%sp)
		 		jsr memcpy
			.LVL158:
  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
		 		link.w %fp,#-512
		 		movem.l #14368,-(%sp)
		.LBB316:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
		 		move.l %fp,%d2
		 		add.l #-256,%d2
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC12
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL141:
		 		move.l %fp,%d4
		 		add.l #-512,%d4
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
		.LVL142:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
		.LVL143:
		.LBE316:
		.LBB317:
		.LBB318:
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
		.LVL144:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
		.LVL145:
		.LBE318:
		.LBE317:
  869 ")
  870          %END
		 		add.l %d3,%sp
  871          !!
		 		movem.l -528(%fp),#1052
		 		unlk %fp
		 		rts
		.LFE201:
				.align	2
		BURP.6603:
		.LFB203:
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				.loc 1 872 0
		 		move.b #107,-77(%fp)
		 		move.b #113,-76(%fp)
		 		move.b #114,-75(%fp)
		 		move.b #98,-74(%fp)
		 		move.b #110,-73(%fp)
		 		move.b #112,-72(%fp)
		 		move.b #32,-71(%fp)
		 		move.b #80,-70(%fp)
		 		move.b #78,-69(%fp)
		 		move.b #66,-68(%fp)
		 		move.b #82,-67(%fp)
		 		move.b #81,-66(%fp)
		 		move.b #75,-65(%fp)
			.LVL159:
		 		move.l #BRD.6003+896,-1628(%fp)
		 		lea (12,%sp),%sp
		 		moveq #8,%d0
		 		move.l %d0,-1624(%fp)
			.LBB327:
  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)
  881             LINE
				.loc 1 881 0 discriminator 1
		 		jsr LINE.6569
			.LVL191:
  882             WRITE(Y, 1)
				.loc 1 882 0
		 		lea (256,%sp),%sp
		 		tst.l -1624(%fp)
		 		jeq .L91
			.LVL190:
			.L83:
				.loc 1 882 0 discriminator 1
		 		pea 1.w
		 		move.l -1624(%fp),-(%sp)
		 		jsr _imp_writeint
			.LVL192:
		 		lea (8,%a3),%a0
		 		move.l %a0,-1620(%fp)
		 		addq.l #8,%sp
		 		move.l -1628(%fp),%a4
			.LBB347:
  883             %CYCLE X = 1, 1, 8
  884                PRINTSTRING("! ")
				.loc 1 884 0
		 		move.l %fp,%d4
		 		add.l #-333,%d4
		 		lea memcpy,%a2
		 		move.l %fp,%d6
		 		add.l #-1613,%d6
		 		move.l %fp,%d5
		 		add.l #-845,%d5
			.LBE327:
			.LBB328:
			.LBB329:
				.loc 2 589 0
		 		lea _imp_printstring,%a5
			.LBE329:
			.LBE328:
			.LBB331:
				.loc 1 884 0
		 		move.l #256,%d2
		 		jra .L83
			.LVL160:
			.L89:
			.LBE331:
			.LBB332:
			.LBB333:
				.loc 2 586 0
		 		move.b -71(%fp,%d3.l),%d0
		 		extb.l %d0
		 		move.l %d0,-(%sp)
		 		jsr _imp_printsymbol
			.LVL161:
			.LDL3:
			.LDL4:
			.LBE333:
			.LBE332:
				.loc 1 884 0 discriminator 1
		 		move.l %d2,-(%sp)
		 		move.l %d7,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL167:
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d6,-(%sp)
		 		jsr (%a2)
			.LVL168:
		 		move.l %d2,-(%sp)
		 		move.l %d6,-(%sp)
		 		move.l %d5,-(%sp)
		 		jsr (%a2)
			.LVL169:
			.LBE336:
			.LBB337:
			.LBB330:
				.loc 2 589 0 discriminator 1
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d5,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL170:
		 		lea (12,%sp),%sp
		 		jsr (%a5)
			.LVL171:
			.LBE330:
			.LBE337:
				.loc 1 884 0 discriminator 1
		 		move.l #.LC9,%d7
		 		jra .L81
			.LVL193:
			.L91:
			.L84:
			.LBE347:
  885                P = ROW_R(X)_P
				.loc 1 885 0 discriminator 1
		 		move.l (%a4),%d3
			.LVL172:
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				.loc 1 886 0
		 		cmp.l -1620(%fp),%a3
		 		jeq .L88
			.LVL166:
			.L81:
			.LBB336:
				.loc 1 886 0 discriminator 1
		 		lea (256,%sp),%sp
		 		jne .L89
			.L75:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				.loc 1 887 0
		 		cmp.b #1,(%a3)
		 		jeq .L90
			.L78:
			.LVL173:
			.LBB338:
			.LBB339:
				.loc 2 586 0
		 		pea 32.w
		 		jsr _imp_printsymbol
			.LVL174:
		 		addq.l #4,%sp
			.LVL175:
			.L76:
			.LBE339:
			.LBE338:
			.LBB340:
			.LBB341:
		 		pea 32.w
		 		jsr _imp_printsymbol
			.LVL176:
		 		addq.l #4,%sp
		 		jra .L80
			.LVL177:
			.L90:
			.LBE341:
			.LBE340:
			.LBB342:
			.LBB343:
		 		pea 42.w
		 		jsr _imp_printsymbol
			.LVL178:
		 		addq.l #4,%sp
		 		jra .L76
			.LVL179:
			.L88:
			.L82:
			.LBE343:
			.LBE342:
			.LBB344:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				.loc 1 890 0
		 		addq.l #4,%sp
		 		tst.l %d3
		 		jle .L76
			.LVL162:
			.LBB334:
			.LBB335:
				.loc 2 586 0
		 		pea 43.w
		 		jsr _imp_printsymbol
			.LVL163:
		 		addq.l #4,%sp
			.LVL164:
			.L80:
			.LDL5:
		 		lea (16,%a4),%a4
		 		addq.l #1,%a3
			.LVL165:
			.LBE335:
			.LBE334:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
  893             %REPEAT
  894             PRINTSTRING("!
				.loc 1 894 0
		 		move.l %d2,-(%sp)
		 		pea .LC10
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL180:
		 		move.l %fp,%d7
			.LVL181:
		 		add.l #-1357,%d7
			.LVL182:
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d7,-(%sp)
		 		jsr (%a2)
			.LVL183:
		 		move.l %fp,%d3
			.LVL184:
		 		add.l #-589,%d3
			.LVL185:
		 		move.l %d2,-(%sp)
		 		move.l %d7,-(%sp)
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL186:
			.LBE344:
			.LBB345:
			.LBB346:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d2,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL187:
		 		lea (12,%sp),%sp
		 		jsr (%a5)
			.LVL188:
			.LDL6:
		 		subq.l #1,-1624(%fp)
			.LVL189:
		 		moveq #-128,%d0
		 		add.l %d0,-1628(%fp)
			.LBE346:
			.LBE345:
  895 ")
  896          %REPEAT
  897          LINE
				.loc 1 897 0
		 		jsr LINE.6569
			.LVL194:
			.LBB348:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				.loc 1 898 0
		 		move.l %fp,%d2
			.LVL195:
		 		add.l #-333,%d2
			.LVL196:
		 		move.l #256,%d3
			.LVL197:
		 		move.l %d3,-(%sp)
		 		pea .LC11
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL198:
		 		move.l %fp,%d4
			.LVL199:
		 		add.l #-1101,%d4
			.LVL200:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
			.LVL201:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL202:
			.LBE348:
			.LBB349:
			.LBB350:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL203:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL204:
			.LBE350:
			.LBE349:
  899 ")
  900       %END
?I unused
  901       !!
				.loc 1 901 0
		 		movem.l -1668(%fp),#15612
			.LVL205:
		 		unlk %fp
		 		rts
				.cfi_endproc
			.LFE200:
				.section	.rodata
			.LC15:
		 		.byte	1
		 		.string	"("
		 		.zero	253
			.LC16:
		 		.byte	7
		 		.string	" Secs)\n"
		 		.zero	247
			.LC14:
		 		.byte	8
		 		.string	"YOU WIN\n"
		 		.zero	246
			.LC13:
		 		.byte	6
		 		.string	"I Win\n"
		 		.zero	248
				.text
				.align	2
			TELL.6099:
			.LFB199:
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
				.loc 1 903 0
				.cfi_startproc
			.LVL152:
		 		link.w %fp,#0
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		move.l %a3,-(%sp)
		 		move.l %a2,-(%sp)
				.cfi_offset 11, -12
				.cfi_offset 10, -16
		 		move.l 8(%fp),%a2
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
		.LVL146:
		 		link.w %fp,#0
		 		move.l %a2,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l 8(%fp),%d2
		.LVL147:
  906             PRINTSYMBOL((X>>4)+'A'-1)
		 		move.l %d2,%d0
		 		lsr.l #4,%d0
		 		add.b #64,%d0
			.LBB319:
			.LBB320:
				.loc 2 586 0
		 		extb.l %d0
		 		move.l %d0,-(%sp)
		 		lea _imp_printsymbol,%a2
		 		jsr (%a2)
			.LVL148:
			.LBE320:
			.LBE319:
  907             PRINTSYMBOL(X&15+'0')
				.loc 1 907 0
		 		moveq #15,%d0
		 		and.l %d0,%d2
			.LVL149:
			.LBB321:
			.LBB322:
				.loc 2 586 0
		 		move.l %d2,%a0
		 		pea 48(%a0)
		 		jsr (%a2)
			.LVL150:
			.LBE322:
			.LBE321:
			.LBB323:
			.LBB324:
				.loc 2 658 0
		 		jsr _imp_space
			.LVL151:
			.LBE324:
			.LBE323:
  908             SPACE
  909          %END
				.loc 1 909 0
		 		addq.l #8,%sp
  910          !!
				.loc 1 910 0
		 		move.l -8(%fp),%d2
		 		move.l -4(%fp),%a2
		 		unlk %fp
		 		rts
				.cfi_endproc
			.LFE203:
				.align	2
			PRINTMOVE.6103:
			.LFB202:
  911          BURP(LIST_FR); BURP(LIST_TO)
				.loc 1 911 0
		 		clr.l %d0
		 		move.b 4(%a2),%d0
		 		move.l %d0,-(%sp)
		 		lea BURP.6603,%a3
		 		jsr (%a3)
			.LVL153:
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				.loc 1 912 0
		 		clr.l %d0
		 		move.b 5(%a2),%d0
		 		move.l %d0,-(%sp)
		 		jsr (%a3)
			.LVL154:
				.loc 1 912 0
		 		addq.l #8,%sp
		 		tst.l 10(%a2)
		 		jne .L73
			.L72:
  913          WRITE(LIST_SCORE, 5)
				.loc 1 913 0 discriminator 3
		 		pea 5.w
		 		move.l 4(%a2),-(%sp)
		 		jsr _imp_writeint
			.LVL155:
  914       %END
				.loc 1 914 0 discriminator 3
		 		addq.l #8,%sp
?K unused
?J unused
?I unused
  915       !!
				.loc 1 915 0 discriminator 3
		 		move.l -8(%fp),%a2
		 		move.l -4(%fp),%a3
		 		unlk %fp
		 		rts
			.L73:
			.LVL156:
			.LBB325:
			.LBB326:
				.loc 2 586 0
		 		pea 43.w
		 		jsr _imp_printsymbol
			.LVL157:
		 		addq.l #4,%sp
		 		jra .L72
			.LBE326:
			.LBE325:
				.cfi_endproc
			.LFE202:
				.section	.rodata
			.LC8:
		 		.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
			.LC10:
		 		.byte	2
		 		.string	"!\n"
		 		.zero	252
			.LC9:
		 		.byte	2
		 		.string	"! "
		 		.zero	252
			.LC11:
		 		.byte	34
		 		.string	"    A   B   C   D   E   F   G   H\n"
		 		.zero	220
				.text
				.align	2
			PRINTBOARD.6101:
			.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
				.loc 1 922 0
		 		tst.l -60132(%fp)
		 		jeq .L384
				.loc 1 922 0
		 		move.b -57284(%fp),%d0
				.loc 1 922 0
		 		tst.l %a0
		 		jeq .L384
			.L388:
				.loc 1 922 0
		 		cmp.b 4(%a0),%d0
		 		jne .L387
  923                %START
				.loc 1 923 0
		 		move.b -57283(%fp),%d1
		 		move.l -60136(%fp),%a0
			.LVL755:
		 		jra .L388
			.LVL756:
			.L395:
			.L378:
			.LBE708:
			.LBE707:
			.LBB710:
			.LBB711:
				.loc 2 581 0
		 		move.l %d2,-(%sp)
		 		jsr _imp_readsymbol
			.LVL757:
			.LBE711:
			.LBE710:
				.loc 1 923 0
		 		cmp.b 5(%a0),%d1
		 		jne .L387
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				.loc 1 924 0
		 		move.l 4(%a0),-57284(%fp)
  925                   %RESULT = 1
				.loc 1 925 0
		 		move.l 10(%a0),-57278(%fp)
			.LDL27:
			.LVL767:
			.LBE709:
			.LBE724:
			.LBB725:
			.LBB726:
				.loc 2 585 0
		 		jsr _imp_skipsymbol
			.LVL768:
			.LBE726:
			.LBE725:
  926             %FINISH
  927             LIST == LIST_L
				.loc 1 927 0
		 		move.l (%a0),%a0
			.LVL766:
			.LDL26:
  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))
				.loc 1 935 0
		 		pea -1.w
		 		pea 100.w
		 		move.l %d2,-(%sp)
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		jsr SORTANDPRUNE.6080
			.LVL782:
		 		move.l %d0,-60132(%fp)
			.LVL783:
			.LBB731:
			.LBB732:
				.loc 2 507 0
		 		move.l %d0,-60136(%fp)
			.LVL784:
		 		lea (16,%sp),%sp
			.LBE732:
			.LBE731:
  936          L == LIST
				.loc 1 936 0
		 		move.l %d0,%a2
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				.loc 1 938 0
		 		lea PRINTMOVE.6103,%a4
			.LBB733:
			.LBB734:
				.loc 2 661 0
		 		lea _imp_newline,%a3
			.L368:
			.LVL785:
			.L393:
			.L369:
			.LBE734:
			.LBE733:
				.loc 1 938 0
		 		move.l %a2,-(%sp)
		 		jsr (%a4)
			.LVL786:
			.LBB736:
			.LBB735:
				.loc 2 661 0
		 		jsr (%a3)
			.LVL787:
			.LBE735:
			.LBE736:
  939             L == L_L
				.loc 1 939 0
		 		move.l (%a2),%a2
			.LVL788:
  940             %EXIT %IF ADDR(L) = 0
				.loc 1 940 0
		 		addq.l #4,%sp
		 		tst.l %a2
		 		jne .L393
			.L370:
			.LVL789:
			.LBB737:
			.LBB738:
				.loc 2 629 0
		 		clr.l _imp_OutStream
		 		move.l _imp_outfile+4,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL790:
		 		addq.l #4,%sp
		 		move.l %fp,%d6
			.LVL791:
		 		add.l #-59080,%d6
			.LVL792:
			.LBE738:
			.LBE737:
			.LBE728:
			.LBE727:
			.LBB739:
			.LBB692:
				.loc 2 581 0
		 		move.l %fp,%d2
			.LVL793:
		 		add.l #-60128,%d2
			.LVL794:
			.LBE692:
			.LBE739:
  941          %REPEAT
  942          SELECT OUTPUT(0)
  943          %RESULT = ADDR(LIST)
  944       %END
  945
  946       %ROUTINE YOUR MOVE
  947          %INTEGER %FN READM(%INTEGERNAME X, Y)
				.loc 1 947 0
				.cfi_startproc
			.LVL271:
		 		link.w %fp,#-8
				.cfi_offset 14, -8
				.cfi_def_cfa 14, 8
		 		move.l %a3,-(%sp)
		 		move.l %a2,-(%sp)
				.cfi_offset 11, -20
				.cfi_offset 10, -24
			.LBB376:
			.LBB377:
				.loc 2 583 0
		 		lea _imp_nextsymbol,%a2
			.LBE377:
			.LBE376:
			.LBB379:
			.LBB380:
				.loc 2 585 0
		 		lea _imp_skipsymbol,%a3
			.L101:
			.LBE380:
			.LBE379:
			.LBB382:
			.LBB378:
				.loc 2 583 0
		 		jsr (%a2)
			.LVL272:
			.LBE378:
			.LBE382:
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  950             READSYMBOL(I)
				.loc 1 950 0
		 		moveq #10,%d1
		 		cmp.l %d0,%d1
		 		jne .L102
			.LBB383:
			.LBB381:
				.loc 2 585 0
		 		jsr (%a3)
			.LVL273:
		 		jra .L101
			.L102:
			.LVL274:
			.LBE381:
			.LBE383:
			.LBB384:
			.LBB385:
				.loc 2 581 0
		 		pea -4(%fp)
			.LVL275:
		 		jsr _imp_readsymbol
			.LVL276:
		 		addq.l #4,%sp
			.LBE385:
			.LBE384:
			.LBB386:
			.LBB387:
				.loc 2 583 0
		 		lea _imp_nextsymbol,%a2
			.LBE387:
			.LBE386:
			.LBB389:
			.LBB390:
				.loc 2 585 0
		 		lea _imp_skipsymbol,%a3
			.L103:
			.LBE390:
			.LBE389:
			.LBB392:
			.LBB388:
				.loc 2 583 0
		 		jsr (%a2)
			.LVL277:
			.LBE388:
			.LBE392:
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  952             READSYMBOL(J)
				.loc 1 952 0
		 		moveq #10,%d1
		 		cmp.l %d0,%d1
		 		jne .L104
			.LBB393:
			.LBB391:
				.loc 2 585 0
		 		jsr (%a3)
			.LVL278:
		 		jra .L103
			.L104:
			.LVL279:
			.LBE391:
			.LBE393:
			.LBB394:
			.LBB395:
				.loc 2 581 0
		 		pea -8(%fp)
			.LVL280:
		 		jsr _imp_readsymbol
			.LVL281:
			.LBE395:
			.LBE394:
  953             X = I-'A'+1;  Y = J-'0'
				.loc 1 953 0
		 		move.l 8(%fp),%a0
		 		moveq #-64,%d0
		 		add.l -4(%fp),%d0
		 		move.l %d0,(%a0)
  954             %RESULT = 0
				.loc 1 954 0
		 		move.l 12(%fp),%a0
		 		moveq #-48,%d1
		 		add.l -8(%fp),%d1
		 		move.l %d1,(%a0)
  955          %END
				.loc 1 955 0
		 		clr.l %d0
		 		move.l -16(%fp),%a2
		 		move.l -12(%fp),%a3
		 		unlk %fp
		 		rts
				.cfi_endproc
			.LFE207:
				.section	.rodata
			.LC17:
		 		.byte	21
		 		.string	"OUT OF FREE CELLS!!!\n"
		 		.zero	233
			.LC19:
		 		.byte	6
		 		.string	"SCORE:"
		 		.zero	248
			.LC18:
		 		.byte	3
		 		.string	"---"
		 		.zero	251
				.text
				.align	2
			DOM.6344:
			.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)
				.loc 1 960 0
		 		moveq #1,%d1
		 		move.l %d1,JUSTONEPLY.6067
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				.loc 1 961 0
		 		clr.l -(%sp)
		 		pea -1.w
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		jsr MOVES.6086
			.LVL779:
		 		move.l %d0,%d2
  962          JUST ONE PLY = 0
				.loc 1 962 0
		 		clr.l JUSTONEPLY.6067
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				.loc 1 963 0
		 		addq.l #8,%sp
		 		tst.l %d0
		 		jeq .L403
			.L367:
			.LVL780:
			.LBB727:
			.LBB728:
			.LBB729:
			.LBB730:
				.loc 2 629 0
		 		moveq #2,%d4
		 		move.l %d4,_imp_OutStream
		 		move.l _imp_outfile+556,_imp_OutFile
		 		pea __PRETTY_FUNCTION__.5590
		 		jsr check_outstream
			.LVL781:
			.LBE730:
			.LBE729:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				.loc 1 964 0
		 		pea -1.w
		 		clr.l -(%sp)
		 		jsr TELL.6099
			.LVL705:
		 		addq.l #8,%sp
		 		jra .L367
			.L396:
			.LBB667:
			.LBB668:
				.loc 2 585 0
		 		lea _imp_skipsymbol,%a5
		 		jsr (%a5)
			.LVL706:
			.LBE668:
			.LBE667:
			.LBB669:
  965 AGAIN:
  966          LM_SPEC = 0
				.loc 1 966 0
		 		clr.l -57282(%fp)
			.LBB693:
			.LBB694:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL740:
			.LBE694:
			.LBE693:
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				.loc 1 967 0
		 		moveq #77,%d1
		 		cmp.l %d0,%d1
		 		jeq .L396
			.L372:
			.LBB695:
			.LBB696:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL741:
			.LBE696:
			.LBE695:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				.loc 1 969 0
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea .LC5
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL707:
		 		move.l #-57544,%a4
		 		add.l %fp,%a4
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %a4,-(%sp)
		 		jsr (%a2)
			.LVL708:
			.LBE669:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %a4,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL709:
		 		lea (12,%sp),%sp
		 		lea PROMPT,%a4
		 		jsr (%a4)
			.LVL710:
  970             PROMPT("Move?")
				.loc 1 970 0
		 		lea (280,%sp),%sp
		 		pea MON.6066
		 		jsr _imp_readint
			.LVL711:
			.LBB670:
			.LBB671:
				.loc 2 585 0
		 		jsr (%a5)
			.LVL712:
			.LBE671:
			.LBE670:
			.LBB672:
				.loc 1 970 0
		 		move.l %d4,-(%sp)
		 		pea .LC4
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL713:
		 		move.l #-57800,%a5
		 		add.l %fp,%a5
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %a5,-(%sp)
		 		jsr (%a2)
			.LVL714:
			.LBE672:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %a5,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL715:
		 		lea (12,%sp),%sp
		 		jsr (%a4)
			.LVL716:
		 		lea (284,%sp),%sp
		 		jra .L371
			.L397:
			.LBB673:
			.LBB674:
				.loc 2 585 0
		 		lea _imp_skipsymbol,%a2
		 		jsr (%a2)
			.LVL717:
			.LBE674:
			.LBE673:
			.LBB675:
			.LBB676:
		 		jsr (%a2)
			.LVL718:
		 		jra .L374
			.L398:
			.LBE676:
			.LBE675:
			.LBB677:
  971             ->AGAIN
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				.loc 1 973 0
		 		moveq #88,%d4
		 		cmp.l %d0,%d4
		 		jeq .L397
			.L374:
			.LBB697:
			.LBB698:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL742:
			.LBE698:
			.LBE697:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				.loc 1 976 0
		 		moveq #80,%d1
		 		cmp.l %d0,%d1
		 		jeq .L398
			.L375:
			.LBB699:
			.LBB700:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL743:
			.LBE700:
			.LBE699:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				.loc 1 977 0
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea .LC6
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL719:
		 		move.l #-58056,%a4
		 		add.l %fp,%a4
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %a4,-(%sp)
		 		jsr (%a2)
			.LVL720:
			.LBE677:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %a4,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL721:
		 		lea (12,%sp),%sp
		 		lea PROMPT,%a4
		 		jsr (%a4)
			.LVL722:
			.LBB678:
			.LBB679:
				.loc 2 585 0
		 		lea (280,%sp),%sp
		 		lea _imp_skipsymbol,%a5
		 		jsr (%a5)
			.LVL723:
			.LBE679:
			.LBE678:
  978             READ(PDEPTH); SKIPSYMBOL
				.loc 1 978 0
		 		pea PDEPTH.6065
		 		jsr _imp_readint
			.LVL724:
			.LBB680:
			.LBB681:
				.loc 2 585 0
		 		jsr (%a5)
			.LVL725:
			.LBE681:
			.LBE680:
			.LBB682:
  979             PROMPT("Move?")
				.loc 1 979 0
		 		move.l %d4,-(%sp)
		 		pea .LC4
		 		move.l %d3,-(%sp)
		 		jsr (%a2)
			.LVL726:
		 		move.l #-58312,%a5
		 		add.l %fp,%a5
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %a5,-(%sp)
		 		jsr (%a2)
			.LVL727:
			.LBE682:
		 		lea (-256,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %a5,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL728:
		 		lea (12,%sp),%sp
		 		jsr (%a4)
			.LVL729:
		 		lea (284,%sp),%sp
		 		jra .L371
			.L399:
  980             -> AGAIN
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				.loc 1 982 0
		 		moveq #79,%d4
		 		cmp.l %d0,%d4
		 		jeq .L399
			.L376:
  983             X = 0
				.loc 1 983 0
		 		clr.l -60124(%fp)
			.LBB683:
			.LBB684:
				.loc 2 585 0
		 		jsr _imp_skipsymbol
			.LVL730:
			.LBE684:
			.LBE683:
			.LBB685:
			.LBB686:
				.loc 2 581 0
		 		move.l %d2,-(%sp)
		 		jsr _imp_readsymbol
			.LVL731:
			.LBE686:
			.LBE685:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				.loc 1 985 0
		 		addq.l #4,%sp
		 		moveq #45,%d0
		 		cmp.l -60128(%fp),%d0
		 		jeq .L395
			.L377:
			.L384:
			.LBB687:
				.loc 1 1003 0
		 		move.l #256,%d4
		 		move.l %d4,-(%sp)
		 		pea .LC7
		 		move.l %d3,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
			.LVL732:
		 		move.l %d4,-(%sp)
		 		move.l %d3,-(%sp)
		 		move.l %d5,-(%sp)
		 		jsr (%a2)
			.LVL733:
		 		move.l %d4,-(%sp)
		 		move.l %d5,-(%sp)
		 		move.l %d6,-(%sp)
		 		jsr (%a2)
			.LVL734:
			.LBE687:
			.LBB688:
			.LBB689:
				.loc 2 589 0
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d4,-(%sp)
		 		move.l %d6,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
			.LVL735:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
			.LVL736:
		 		add.l %d4,%sp
			.LBE689:
			.LBE688:
			.LBB690:
			.LBB691:
				.loc 2 581 0
		 		lea _imp_readsymbol,%a2
			.L385:
			.L394:
			.L386:
			.LVL737:
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
			.LVL738:
			.LBE691:
			.LBE690:
  986             READSYMBOL(I); -> NO %IF I#'O'
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				.loc 1 987 0
		 		addq.l #4,%sp
		 		cmp.l -60128(%fp),%d4
		 		jne .L384
			.L379:
			.LBB712:
			.LBB713:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL758:
			.LBE713:
			.LBE712:
				.loc 1 987 0
		 		moveq #45,%d1
		 		cmp.l %d0,%d1
		 		jeq .L401
			.L380:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				.loc 1 988 0
		 		moveq #1,%d4
		 		move.l %d4,-60124(%fp)
			.LBB714:
			.LBB715:
				.loc 2 585 0
		 		lea _imp_skipsymbol,%a2
		 		jsr (%a2)
			.LVL759:
			.LBE715:
			.LBE714:
			.LBB716:
			.LBB717:
		 		jsr (%a2)
			.LVL760:
		 		jra .L380
			.L400:
			.LBE717:
			.LBE716:
			.LBB718:
			.LBB719:
		 		lea _imp_skipsymbol,%a2
		 		jsr (%a2)
			.LVL761:
			.LBE719:
			.LBE718:
			.LBB720:
			.LBB721:
				.loc 2 581 0
		 		pea -60108(%fp)
			.LVL762:
		 		jsr _imp_readsymbol
			.LVL763:
			.LBE721:
			.LBE720:
			.LBB722:
			.LBB723:
				.loc 2 585 0
		 		jsr (%a2)
			.LVL764:
			.LBE723:
			.LBE722:
  989             %FINISH
  990             LM_SPEC = 6+X
				.loc 1 990 0
		 		move.l -60124(%fp),%d0
		 		addq.l #6,%d0
		 		move.l %d0,-57282(%fp)
  991             LM_FR = 5<<4+1
				.loc 1 991 0
		 		move.b #81,-57284(%fp)
  992             LM_TO = 5<<4+1
				.loc 1 992 0
		 		move.b #81,-57283(%fp)
		 		jra .L381
			.L401:
  993          %FINISHELSESTART
  994             I = READM(X, Y);  I=READM(X0, Y0)
				.loc 1 994 0
		 		move.l %a3,-(%sp)
		 		move.l %d7,-(%sp)
		 		lea READM.6627,%a2
		 		jsr (%a2)
			.LVL744:
		 		move.l %d0,-60128(%fp)
				.loc 1 994 0
		 		move.l #-60120,%a3
		 		add.l %fp,%a3
		 		move.l %fp,%d7
			.LVL795:
		 		add.l #-60124,%d7
			.LVL796:
		 		jra .L371
			.LBE741:
			.LBE747:
				.cfi_endproc
			.LFE185:
				.section	.rodata
			__PRETTY_FUNCTION__.5590:
		 		.string	"_imp_SELECTOUTPUT"
				.align	2
			MOVE.6335:
		 		.long	.L237
		 		.long	.L240
		 		.long	.L244
		 		.long	.L255
		 		.long	.L245
		 		.long	.L263
				.align	2
			KCASCH.6331:
		 		.long	1
		 		.long	0
		 		.long	8
			__PRETTY_FUNCTION__.5586:
		 		.string	"_imp_SELECTINPUT"
		 		.align	2
			PINX.6031:
		 		.zero	128
				.align	2
			PINY.6032:
		 		.zero	128
				.local	PINPT.6035
				.comm	PINPT.6035,4,2
				.local	PX.6036
				.comm	PX.6036,4,2
				.local	PY.6037
				.comm	PY.6037,4,2
				.local	KMOVE.6051
				.comm	KMOVE.6051,3,1
				.local	KCAS.6052
				.comm	KCAS.6052,12,2
				.local	SCOREA.6063
				.comm	SCOREA.6063,4,2
				.local	XDEPTH.6064
				.comm	XDEPTH.6064,4,2
				.local	JUSTONEPLY.6067
				.comm	JUSTONEPLY.6067,4,2
				.local	LASTCHK.6069
				.comm	LASTCHK.6069,4,2
				.data
				.align	2
			NO.6062:
		 		.long	1
				.local	TIME.6059
				.comm	TIME.6059,8,2
				.local	TIME2.6060
				.comm	TIME2.6060,8,2
				.local	BRD.6003
				.comm	BRD.6003,1024,2
				.local	MON.6066
				.comm	MON.6066,4,2
				.local	PDEPTH.6065
				.comm	PDEPTH.6065,4,2
				.text
			.Letext0:
				.file 3 "/home/gtoal/src/i2c/perms/imptypes.h"
				.file 4 "/usr/m68k-linux-gnu/include/bits/types.h"
				.file 5 "/usr/m68k-linux-gnu/include/bits/types/sig_atomic_t.h"
				.file 6 "/usr/m68k-linux-gnu/include/bits/types/__sigset_t.h"
				.file 7 "/usr/m68k-linux-gnu/include/bits/setjmp.h"
				.file 8 "/usr/m68k-linux-gnu/include/setjmp.h"
				.file 9 "/home/gtoal/src/i2c/perms/psignal.h"
				.file 10 "/home/gtoal/src/i2c/perms/externalfile.h"
				.file 11 "/home/gtoal/src/i2c/perms/internal/internal.h"
				.file 12 "/home/gtoal/src/i2c/perms/impread.h"
				.file 13 "<built-in>"
  995             %IF NEXTSYMBOL='(' %START
				.loc 1 995 0
		 		pea -60112(%fp)
		 		pea -60116(%fp)
		 		jsr (%a2)
			.LVL745:
		 		move.l %d0,-60128(%fp)
			.LBB701:
			.LBB702:
				.loc 2 583 0
		 		jsr _imp_nextsymbol
			.LVL746:
			.LBE702:
			.LBE701:
				.loc 1 995 0
		 		lea (16,%sp),%sp
		 		moveq #40,%d1
		 		cmp.l %d0,%d1
		 		jeq .L400
			.L382:
			.LBB703:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				.loc 1 997 0
		 		moveq #48,%d4
		 		sub.l -60108(%fp),%d4
		 		move.l %d4,-57282(%fp)
		 		addq.l #4,%sp
		 		jra .L382
			.LVL765:
			.L387:
			.LBB724:
			.LBB709:
  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 ")
				.loc 1 1003 0
		 		add.l #-1280,%d3
		 		add.l #1536,%d5
			.LBE666:
			.LBE665:
			.LBE664:
				.loc 1 1003 0
		 		move.l -60124(%fp),%d0
			.LVL747:
		 		move.l %d0,%d1
		 		subq.l #1,%d1
		 		moveq #7,%d4
		 		cmp.l %d1,%d4
		 		jcs .L384
			.LBE703:
			.LBB704:
 1004                %CYCLE
 1005                   READSYMBOL(I)
 1006                   %EXIT %IF I=NL
				.loc 1 1006 0
		 		addq.l #4,%sp
		 		moveq #10,%d0
		 		cmp.l -60128(%fp),%d0
		 		jne .L394
			.LVL739:
			.L371:
 1007                %REPEAT
 1008                ->AGAIN
 1009             %FINISH
 1010
				.loc 1 1010 0
		 		move.l -60116(%fp),%d1
			.LVL748:
		 		move.l %d1,%a0
		 		subq.l #1,%a0
		 		cmp.l %a0,%d4
		 		jcs .L384
			.LBE704:
			.LBB705:
 1011             !!
 1012             LM_FR = X<<4+Y
				.loc 1 1012 0
		 		lsl.b #4,%d0
			.LVL751:
		 		move.w %a2,%d4
		 		add.b %d0,%d4
		 		move.b %d4,-57284(%fp)
 1013             LM_TO = X0<<4+Y0
				.loc 1 1013 0
		 		lsl.b #4,%d1
			.LVL752:
		 		move.w %a0,%d0
		 		add.b %d1,%d0
		 		move.b %d0,-57283(%fp)
			.LVL753:
			.L381:
 1014          %FINISH
 1015          MMOVE_L == LM
				.loc 1 1015 0
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		move.l %a0,-57274(%fp)
			.LVL754:
			.LBB707:
			.LBB708:
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
 1017          SKIPSYMBOL
				.loc 1 1017 0
		 		move.l -60120(%fp),%a2
			.LVL749:
		 		lea (-1,%a2),%a0
		 		cmp.l %a0,%d4
		 		jcs .L384
			.LBE705:
			.LBB706:
 1018          RELEASE CHAIN(LIST)
				.loc 1 1018 0
		 		move.l -60132(%fp),-(%sp)
		 		move.l #-57288,%a0
		 		add.l %fp,%a0
		 		jsr RELEASECHAIN.6143
			.LVL769:
			.LBE740:
			.LBE742:
 1019       %END
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
				.loc 1 1024 0
		 		move.l -60112(%fp),%a0
			.LVL750:
		 		lea (-1,%a0),%a1
		 		cmp.l %a1,%d4
		 		jcs .L384
			.L383:
			.LBE706:
