?? bgen.s
字號:
/ generate moves.globl _bgen.globl _pval, _board, _dir.globl _flag, _lmp, _bkpos.globl _eppos.globl _valueuleft = 04040uright = 04004dleft = 00440dright = 00404left = 00040right = 00004up = 04000down = 00400u2r1 = 06004u1r2 = 04006d1r2 = 00406d2r1 = 00604d2l1 = 00640d1l2 = 00460u1l2 = 04060u2l1 = 06040rank2 = 00200rank7 = 02000_bgen: mov $_dir+126.,r4 mov $_board+126.,r3 mov _lmp,r2 mov $63.,r10: mov (r3),r0 ble 1f asl r0 jmp *2f-2(r0)2: pawn knight bishop rook queen kingpawn: bit $dleft,(r4) bne 2f tst 2*7.(r3) bge 3f jsr r5,btry; 0; 7.*23: mov r1,r0 add $7,r0 cmp r0,_eppos bne 2f jsr r5,btry; 0; -1*22: bit $dright,(r4) bne 2f tst 9.*2(r3) bge 3f jsr r5,btry; 0; 2*9.3: mov r1,r0 add $9,r0 cmp r0,_eppos bne 2f jsr r5,btry; 0; 2*12: tst 2*8.(r3) bne 1f jsr r5,btry; 0; 2*8. bit $rank7,(r4) beq 1f tst 2*16.(r3) bne 1f jsr r5,btry; 0; 16.*2 br 1fknight: jsr r5,btry; u2r1; -15.*2 jsr r5,btry; u1r2; -6.*2 jsr r5,btry; d1r2; 10.*2 jsr r5,btry; d2r1; 17.*2 jsr r5,btry; d2l1; 15.*2 jsr r5,btry; d1l2; 6.*2 jsr r5,btry; u1l2; -10.*2 jsr r5,btry; u2l1; -17.*2 br 1f1: cmp -(r4),-(r3) dec r1 bpl 0b mov r2,_lmp rts pcbishop: jsr r5,bslide; uleft; -9.*2 jsr r5,bslide; uright; -7.*2 jsr r5,bslide; dleft; 7.*2 jsr r5,bslide; dright; 9.*2 br 1brook: jsr r5,bslide; up; -8.*2 jsr r5,bslide; down; 8.*2 jsr r5,bslide; left; -1.*2. jsr r5,bslide; right; 1.*2 br 1bqueen: jsr r5,bslide; uleft; -9.*2 jsr r5,bslide; uright; -7.*2 jsr r5,bslide; dleft; 7.*2 jsr r5,bslide; dright; 9.*2 jsr r5,bslide; up; -8.*2 jsr r5,bslide; left; -1.*2 jsr r5,bslide; right; 1.*2 jsr r5,bslide; down; 8.*2 br 1bking: jsr r5,btry; uleft; -9.*2 jsr r5,btry; uright; -7.*2 jsr r5,btry; dleft; 7.*2 jsr r5,btry; dright; 9.*2 jsr r5,btry; up; -8.*2 jsr r5,btry; left; -1.*2 jsr r5,btry; right; 1.*2 jsr r5,btry; down; 8.*2 br 1bbtry: bit (r5)+,(r4) bne 1f mov r3,r0 add (r5),r0 mov (r0),r0 bgt 1f asl r0 mov _pval+12.(r0),(r2) sub _value,(r2)+ mov (r5)+,r0 asr r0 add r1,r0 movb r0,(r2)+ movb r1,(r2)+ rts r51: tst (r5)+ rts r5bslide: mov r4,-(sp) mov r3,-(sp)1: bit (r5)+,(r4) bne 1f add (r5),r3 add (r5),r4 mov (r3),r0 bgt 1f blt 2f clr (r2) sub _value,(r2)+ mov r3,r0 sub $_board,r0 asr r0 movb r0,(r2)+ movb r1,(r2)+ tst -(r5) br 1b2: asl r0 mov _pval+12.(r0),(r2) sub _value,(r2)+ mov r3,r0 sub $_board,r0 asr r0 movb r0,(r2)+ movb r1,(r2)+1: tst (r5)+ mov (sp)+,r3 mov (sp)+,r4 rts r5
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -