1: .globl  _wmove, _wremove
   2: .globl  _board, _pval, _amp, _flag, _eppos, _value, _wkpos
   3: .globl  _game
   4: 
   5: _wmove:
   6:         mov     _amp,r4
   7:         movb    2(sp),r3                / to
   8:         movb    3(sp),r2                / from
   9:         mov     _value,(r4)+
  10:         mov     _flag,(r4)+
  11:         mov     _eppos,(r4)+
  12:         mov     r2,(r4)+
  13:         mov     r3,(r4)+
  14:         asl     r2                      / from as a word index
  15:         asl     r3                      / to as word index
  16:         mov     _board(r3),r0
  17:         mov     r0,(r4)+
  18:         beq     1f
  19:         asl     r0
  20:         sub     _pval+12.(r0),_value
  21: 1:
  22:         mov     _board(r2),r0
  23:         mov     r0,_board(r3)
  24:         clr     _board(r2)
  25:         mov     $-1,_eppos
  26:         asl     r0
  27:         bge     error
  28:         jmp     *0f(r0)         / type of man
  29:         kmove
  30:         qmove
  31:         rmove
  32:         bmove
  33:         nmove
  34:         pmove
  35: 0:
  36: error:
  37:         3
  38: 
  39: 
  40: pmove:
  41:         sub     r3,r2
  42:         bge     1f
  43:         neg     r2
  44: 1:
  45:         cmp     r2,$2*1                 / ep capture
  46:         bne     1f
  47:         clr     _board(r3)
  48:         mov     $-1,_board-16.(r3)
  49:         mov     $4,(r4)+
  50:         mov     r4,_amp
  51:         rts     pc
  52: 1:
  53:         cmp     r2,$2*16.               / double move
  54:         bne     1f
  55:         movb    3(sp),r2
  56:         sub     $8,r2
  57:         mov     r2,_eppos
  58:         br      move
  59: 1:
  60:         cmp     r3,$24.*2
  61:         bge     move
  62:         sub     $25.,_value
  63:         cmp     r3,$16.*2
  64:         bge     move
  65:         sub     $50.,_value
  66:         cmp     r3,$8.*2                / queen promotion
  67:         bge     move
  68:         sub     $625.,_value
  69:         mov     $-5,_board(r3)
  70:         mov     $5,(r4)+
  71:         mov     r4,_amp
  72:         rts     pc
  73: 
  74: rmove:
  75:         cmp     r2,$2*63.
  76:         bne     1f
  77:         bic     $1,_flag
  78:         br      move
  79: 1:
  80:         cmp     r2,$2*56.
  81:         bne     move
  82:         bic     $2,_flag
  83:         br      move
  84: 
  85: kmove:
  86:         asr     r3
  87:         mov     r3,_wkpos
  88:         bic     $3,_flag
  89:         cmp     r2,$2*60.
  90:         bne     2f
  91:         cmp     r3,$62.                 / kingside castle
  92:         bne     1f
  93:         dec     _value
  94:         mov     $-4,_board+[2*61.]
  95:         clr     _board+[2*63.]
  96:         mov     $2,(r4)+
  97:         mov     r4,_amp
  98:         rts     pc
  99: 1:
 100:         cmp     r3,$58.                 / queenside castle
 101:         bne     2f
 102:         dec     _value
 103:         mov     $-4,_board+[2*59.]
 104:         clr     _board+[2*56.]
 105:         mov     $3,(r4)+
 106:         mov     r4,_amp
 107:         rts     pc
 108: 2:                                      / king move
 109:         tst     _game
 110:         bne     1f
 111:         add     $2,_value
 112: 1:
 113:         clr     (r4)+
 114:         mov     r4,_amp
 115:         rts     pc
 116: 
 117: qmove:
 118:         tst     _game
 119:         bne     move
 120:         inc     _value
 121:         br      move
 122: 
 123: nmove:
 124: bmove:
 125: move:
 126:         mov     $1,(r4)+
 127:         mov     r4,_amp
 128:         rts     pc
 129: 
 130: _wremove:
 131:         mov     _amp,r4
 132:         mov     -(r4),r0
 133:         mov     -(r4),r1
 134:         mov     -(r4),r3
 135:         mov     -(r4),r2
 136:         mov     -(r4),_eppos
 137:         mov     -(r4),_flag
 138:         mov     -(r4),_value
 139:         mov     r4,_amp
 140:         asl     r2
 141:         asl     r3
 142:         mov     _board(r3),_board(r2)
 143:         mov     r1,_board(r3)
 144:         asl     r0
 145:         jmp     *0f(r0)
 146: 0:
 147:         movek
 148:         movex
 149:         moveo
 150:         moveoo
 151:         movep
 152:         moveq
 153: 
 154: movek:
 155:         asr     r2
 156:         mov     r2,_wkpos
 157: 
 158: movex:
 159:         rts     pc
 160: 
 161: moveo:
 162:         mov     $-4,_board+[2*63.]
 163:         clr     _board+[2*61.]
 164:         mov     $60.,_wkpos
 165:         rts     pc
 166: 
 167: moveoo:
 168:         mov     $-4,_board+[2*56.]
 169:         clr     _board+[2*59.]
 170:         mov     $60.,_wkpos;
 171:         rts     pc
 172: 
 173: movep:
 174:         mov     $-1,_board(r2)
 175:         clr     _board-[2*8.](r3)
 176:         rts     pc
 177: 
 178: moveq:
 179:         mov     $-1,_board(r2)
 180:         rts     pc

Defined functions

bmove defined in line 124; used 1 times
  • in line 32
error defined in line 36; used 1 times
  • in line 27
kmove defined in line 85; used 1 times
  • in line 29
move defined in line 125; used 9 times
movek defined in line 154; used 1 times
moveo defined in line 161; used 1 times
moveoo defined in line 167; used 1 times
movep defined in line 173; used 1 times
moveq defined in line 178; used 1 times
movex defined in line 158; used 1 times
nmove defined in line 123; used 1 times
  • in line 33
pmove defined in line 40; used 1 times
  • in line 34
qmove defined in line 117; used 1 times
  • in line 30
rmove defined in line 74; used 1 times
  • in line 31
Last modified: 1979-05-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2834
Valid CSS Valid XHTML 1.0 Strict