home *** CD-ROM | disk | FTP | other *** search
- / list pieces controlling a square
-
- .globl _attack
-
- .globl _dir, _board
- .globl _attacv
-
- none = 12345
- uleft = 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;
-
- _attack:
- mov 2(sp),r0
- asl r0
- mov $_attacv,r4
-
- jsr r5,patt
- u2r1
- -15.*2
- 2; -2
- jsr r5,patt
- u1r2
- -6.*2
- 2; -2
- jsr r5,patt
- d2r1
- 17.*2
- 2; -2
- jsr r5,patt
- d2l1
- 15.*2
- 2; -2
- jsr r5,patt
- d1l2
- 6.*2
- 2; -2
- jsr r5,patt
- u1l2
- -10.*2
- 2; -2
- jsr r5,patt
- u2l1
- -17.*2
- 2; -2
-
- jsr r5,satt
- uleft; -9.*2
- 1
- 3; -3; 5; -5
- jsr r5,satt
- uright; -7.*2
- 1
- 3; -3; 5; -5
- jsr r5,satt
- dleft; 7.*2
- -1
- 3; -3; 5; -5
- jsr r5,satt
- dright; 9.*2
- -1
- 3; -3; 5; -5
- jsr r5,satt
- up; -8.*2
- none
- 4; -4; 5; -5
- jsr r5,satt
- left; -1.*2
- none
- 4; -4; 5; -5
- jsr r5,satt
- right; 1.*2
- none
- 4; -4; 5; -5
- jsr r5,satt
- down; 8.*2
- none
- 4; -4; 5; -5
- clr (r4)+
- rts pc
-
- patt:
- bit (r5)+,_dir(r0)
- bne 1f
- mov r0,r1
- add (r5)+,r1
- jsr pc,look
- jsr pc,look
- rts r5
- 1:
- add $6,r5
- rts r5
-
- satt:
- mov r5,-(sp)
- bit (r5)+,_dir(r0)
- bne 1f
- mov r0,r1
- add (r5)+,r1
- jsr pc,look / pawn
- mov r0,r1
- 2:
- mov (sp),r5
- bit (r5)+,_dir(r1)
- bne 1f
- add (r5)+,r1
- tst _board(r1)
- beq 2b
- tst (r5)+
- mov r4,-(sp)
- jsr pc,look
- jsr pc,look
- jsr pc,look
- jsr pc,look
- cmp (sp)+,r4
- bne 2b
- 1:
- mov (sp)+,r5
- add $14.,r5
- rts r5
-
- look:
- cmp (r5)+,_board(r1)
- bne 1f
- mov -2(r5),(r4)+
- 1:
- rts pc
-