📄 att.s
字号:
/ does white/black attack position?.globl _battack.globl _wattack.globl _dir, _boarduleft = 04040;uright = 04004;dleft = 00440;dright = 00404;left = 00040;right = 00004;up = 04000;down = 00400;u2r1 = 06004;u1r2 = 04006;d1r2 = 00406;d2r1 = 00604;d2l1 = 00640;d1l2 = 00460;u1l2 = 04060;u2l1 = 06040;_battack: mov 2(sp),r0 asl r0 mov _dir(r0),r1 mov $2,r2 bit $u2r1,r1 bne 1f cmp _board+[-15.*2](r0),r2 beq 2f1: bit $u1r2,r1 bne 1f cmp _board+[-6.*2](r0),r2 beq 2f1: bit $d1r2,r1 bne 1f cmp _board+[+10.*2](r0),r2 beq 2f1: bit $d2r1,r1 bne 1f cmp _board+[+17.*2](r0),r2 beq 2f1: bit $d2l1,r1 bne 1f cmp _board+[+15.*2](r0),r2 beq 2f1: bit $d1l2,r1 bne 1f cmp _board+[+6.*2](r0),r2 beq 2f1: bit $u1l2,r1 bne 1f cmp _board+[-10.*2](r0),r2 beq 2f1: bit $u2l1,r1 bne 1f cmp _board+[-17.*2](r0),r2 beq 2f1: jsr r5,badiag; uleft; -9.*2 jsr r5,badiag; uright; -7.*2 jsr r5,badiag; dleft; 7.*2 jsr r5,badiag; dright; 9.*2 jsr r5,barank; up; -8.*2 jsr r5,barank; left; -1.*2 jsr r5,barank; right; 1.*2 jsr r5,barank; down; 8.*2 bit $uleft,_dir(r0) bne 1f cmp _board-18.(r0),$1 / pawn? beq 2f1: bit $uright,_dir(r0) bne 1f cmp _board-14.(r0),$1 bne 1f2: clr r0 rts pc1: mov $1,r0 rts pcbadiag: mov r0,r1 mov (r5)+,r2 mov (r5)+,r3 bit r2,_dir(r1) bne 1f add r3,r1 mov _board(r1),r4 beq 2f cmp r4,$3 beq 9f cmp r4,$5 beq 9f cmp r4,$6 beq 9f1: rts r52: bit r2,_dir(r1) bne 2f add r3,r1 mov _board(r1),r4 beq 2b cmp r4,$3 beq 9f cmp r4,$5 beq 9f2: rts r5barank: mov r0,r1 mov (r5)+,r2 mov (r5)+,r3 bit r2,_dir(r1) bne 1f add r3,r1 mov _board(r1),r4 beq 2f cmp r4,$4 beq 9f cmp r4,$5 beq 9f cmp r4,$6 beq 9f1: rts r52: bit r2,_dir(r1) bne 2f add r3,r1 mov _board(r1),r4 beq 2b cmp r4,$4 beq 9f cmp r4,$5 beq 9f2: rts r59: mov (sp)+,r5 clr r0 rts pc_wattack: mov 2(sp),r0 asl r0 mov _dir(r0),r1 mov $-2,r2 bit $u2r1,r1 bne 1f cmp _board+[-15.*2](r0),r2 beq 2f1: bit $u1r2,r1 bne 1f cmp _board+[-6.*2](r0),r2 beq 2f1: bit $d1r2,r1 bne 1f cmp _board+[+10.*2](r0),r2 beq 2f1: bit $d2r1,r1 bne 1f cmp _board+[+17.*2](r0),r2 beq 2f1: bit $d2l1,r1 bne 1f cmp _board+[+15.*2](r0),r2 beq 2f1: bit $d1l2,r1 bne 1f cmp _board+[+6.*2](r0),r2 beq 2f1: bit $u1l2,r1 bne 1f cmp _board+[-10.*2](r0),r2 beq 2f1: bit $u2l1,r1 bne 1f cmp _board+[-17.*2](r0),r2 beq 2f1: jsr r5,wadiag; uleft; -9.*2 jsr r5,wadiag; uright; -7.*2 jsr r5,wadiag; dleft; 7.*2 jsr r5,wadiag; dright; 9.*2 jsr r5,warank; up; -8.*2 jsr r5,warank; left; -1.*2 jsr r5,warank; right; 1.*2 jsr r5,warank; down; 8.*2 bit $dleft,_dir(r0) bne 1f cmp _board+14.(r0),$-1 / pawn? beq 2f1: bit $dright,_dir(r0) bne 1f cmp _board+18.(r0),$-1 bne 1f2: clr r0 rts pc1: mov $1,r0 rts pcwadiag: mov r0,r1 mov (r5)+,r2 mov (r5)+,r3 bit r2,_dir(r1) bne 1f add r3,r1 mov _board(r1),r4 beq 2f cmp r4,$-3 beq 9f cmp r4,$-5 beq 9f cmp r4,$-6 beq 9f1: rts r52: bit r2,_dir(r1) bne 2f add r3,r1 mov _board(r1),r4 beq 2b cmp r4,$-3 beq 9f cmp r4,$-5 beq 9f2: rts r5warank: mov r0,r1 mov (r5)+,r2 mov (r5)+,r3 bit r2,_dir(r1) bne 1f add r3,r1 mov _board(r1),r4 beq 2f cmp r4,$-4 beq 9f cmp r4,$-5 beq 9f cmp r4,$-6 beq 9f1: rts r52: bit r2,_dir(r1) bne 2f add r3,r1 mov _board(r1),r4 beq 2b cmp r4,$-4 beq 9f cmp r4,$-5 beq 9f2: rts r59: mov (sp)+,r5 clr r0 rts pc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -