Diff for /np2/i286a/i286aop.inc between versions 1.2 and 1.13

version 1.2, 2003/12/16 09:26:50 version 1.13, 2005/03/19 21:02:05
Line 1 Line 1
   
   
         MACRO          MACRO
 $label  OP_EA_R8        $alu, $regclk, $memclk  $label  OP_EA_R8        $alu, $regclk, $memclk
 $label          EAREG8  r12  $label          EAREG8  r12
                         ldrb    r6, [r12, #CPU_REG]                          ldrb    r6, [r12, #CPU_REG]
                         cmp             r0, #&c0                          cmp             r0, #&c0
                         bcc             $label.1                          bcc             $label.1
                         CPUWORK $regclk  
                         R8SRC   r0, r5                          R8SRC   r0, r5
                           CPUWORK $regclk
                         ldrb    r4, [r5, #CPU_REG]                          ldrb    r4, [r5, #CPU_REG]
                         $alu    r4, r6                          $alu    r4, r6
                         strb    r1, [r5, #CPU_REG]                          strb    r1, [r5, #CPU_REG]
Line 21  $label.1 CPUWORK $memclk Line 20  $label.1 CPUWORK $memclk
                         strb    r1, [r9, r0]                          strb    r1, [r9, r0]
                         mov             pc, r11                          mov             pc, r11
 $label.2        mov             r5, r0  $label.2        mov             r5, r0
                         bl              i286_memoryread                          bl              i286a_memoryread
                         $alu    r0, r6                          $alu    r0, r6
                         mov             r0, r5                          mov             r0, r5
                         mov             lr, r11                          mov             lr, r11
                         b               i286_memorywrite                          b               i286a_memorywrite
         MEND          MEND
   
         MACRO          MACRO
Line 35  $label  EAREG16 r12 Line 34  $label  EAREG16 r12
                         cmp             r0, #&c0                          cmp             r0, #&c0
                         bcc             $label.1                          bcc             $label.1
                         CPUWORK $regclk                          CPUWORK $regclk
                         R8SRC   r0, r5                          R16SRC  r0, r5
                         ldrh    r4, [r5, #CPU_REG]                          ldrh    r4, [r5, #CPU_REG]
                         $alu    r4, r6                          $alu    r4, r6
                         strh    r1, [r5, #CPU_REG]                          strh    r1, [r5, #CPU_REG]
                         mov             pc, r11                          mov             pc, r11
 $label.1        CPUWORK $memclk  $label.1        CPUWORK $memclk
                         bl              i286a_ea                          bl              i286a_ea
                         tst             r0, #1                          ACCWORD r0, $label.2
                         bne             $label.2  
                         cmp             r0, #I286_MEMWRITEMAX  
                         bcs             $label.2  
                         ldrh    r4, [r9, r0]                          ldrh    r4, [r9, r0]
                         $alu    r4, r6                          $alu    r4, r6
                         strh    r1, [r9, r0]                          strh    r1, [r9, r0]
                         mov             pc, r11                          mov             pc, r11
 $label.2        mov             r5, r0  $label.2        mov             r5, r0
                         bl              i286_memoryread_w                          bl              i286a_memoryread_w
                         $alu    r0, r6                          $alu    r0, r6
                         mov             r0, r5                          mov             r0, r5
                         mov             lr, r11                          mov             lr, r11
                         b               i286_memorywrite_w                          b               i286a_memorywrite_w
         MEND          MEND
   
         MACRO          MACRO
 $label  OP_R8_EA        $alu, $regclk, $memclk  $label  OP_R8_EA        $alu, $regclk, $memclk
 $label          REG8EA  r5, $regclk, $memclk  $label          REG8EA  r6, $regclk, $memclk
                         ldrb    r2, [r5, #CPU_REG]                          ldrb    r4, [r6, #CPU_REG]
                         $alu    r2, r0                          $alu    r4, r0
                         strb    r1, [r5, #CPU_REG]                          strb    r1, [r6, #CPU_REG]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  OP_R16_EA       $alu, $regclk, $memclk  $label  OP_R16_EA       $alu, $regclk, $memclk
 $label          REG16EA r5, $regclk, $memclk  $label          REG16EA r6, $regclk, $memclk
                         ldrh    r2, [r5, #CPU_REG]                          ldrh    r4, [r6, #CPU_REG]
                         $alu    r2, r0                          $alu    r4, r0
                         strh    r1, [r5, #CPU_REG]                          strh    r1, [r6, #CPU_REG]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  OP_AL_D8        $alu, $clk  $label  OP_AL_D8        $alu, $clk
 $label          CPUWORK $clk  $label          CPUWORK $clk
                         GETPC8                          GETPCF8
                         ldrb    r2, [r9, #CPU_AL]                          ldrb    r4, [r9, #CPU_AL]
                         $alu    r2, r0                          $alu    r4, r0
                         strb    r1, [r9, #CPU_AL]                          strb    r1, [r9, #CPU_AL]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
Line 90  $label  CPUWORK $clk Line 86  $label  CPUWORK $clk
 $label  OP_AX_D16       $alu, $clk  $label  OP_AX_D16       $alu, $clk
 $label          CPUWORK $clk  $label          CPUWORK $clk
                         GETPC16                          GETPC16
                         ldrh    r2, [r9, #CPU_AX]                          ldrh    r4, [r9, #CPU_AX]
                         $alu    r2, r0                          $alu    r4, r0
                         strh    r1, [r9, #CPU_AX]                          strh    r1, [r9, #CPU_AX]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
Line 115  $label.1 CPUWORK $memclk Line 111  $label.1 CPUWORK $memclk
                         ldrb    r4, [r9, r0]                          ldrb    r4, [r9, r0]
                         $alu    r4, r6                          $alu    r4, r6
                         mov             pc, r11                          mov             pc, r11
 $label.2        bl              i286_memoryread  $label.2        bl              i286a_memoryread
                         $alu    r0, r6                          $alu    r0, r6
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
Line 127  $label  EAREG16 r12 Line 123  $label  EAREG16 r12
                         cmp             r0, #&c0                          cmp             r0, #&c0
                         bcc             $label.1                          bcc             $label.1
                         CPUWORK $regclk                          CPUWORK $regclk
                         R8SRC   r0, r5                          R16SRC  r0, r5
                         ldrh    r4, [r5, #CPU_REG]                          ldrh    r4, [r5, #CPU_REG]
                         $alu    r4, r6                          $alu    r4, r6
                         mov             pc, r11                          mov             pc, r11
 $label.1        CPUWORK $memclk  $label.1        CPUWORK $memclk
                         bl              i286a_ea                          bl              i286a_ea
                         tst             r0, #1                          ACCWORD r0, $label.2
                         bne             $label.2  
                         cmp             r0, #I286_MEMWRITEMAX  
                         bcs             $label.2  
                         ldrh    r4, [r9, r0]                          ldrh    r4, [r9, r0]
                         $alu    r4, r6                          $alu    r4, r6
                         mov             pc, r11                          mov             pc, r11
 $label.2        bl              i286_memoryread_w  $label.2        bl              i286a_memoryread_w
                         $alu    r0, r6                          $alu    r0, r6
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  S_R8_EA         $alu, $regclk, $memclk  $label  S_R8_EA         $alu, $regclk, $memclk
 $label          REG8EA  r5, $regclk, $memclk  $label          REG8EA  r6, $regclk, $memclk
                         ldrb    r2, [r5, #CPU_REG]                          ldrb    r4, [r6, #CPU_REG]
                         $alu    r2, r0                          $alu    r4, r0
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  S_R16_EA        $alu, $regclk, $memclk  $label  S_R16_EA        $alu, $regclk, $memclk
 $label          REG16EA r5, $regclk, $memclk  $label          REG16EA r6, $regclk, $memclk
                         ldrh    r2, [r5, #CPU_REG]                          ldrh    r4, [r6, #CPU_REG]
                         $alu    r2, r0                          $alu    r4, r0
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
Line 165  $label  REG16EA r5, $regclk, $memclk Line 158  $label  REG16EA r5, $regclk, $memclk
 $label  S_AL_D8         $alu, $clk  $label  S_AL_D8         $alu, $clk
 $label          CPUWORK $clk  $label          CPUWORK $clk
                         GETPC8                          GETPC8
                         ldrb    r2, [r9, #CPU_AL]                          ldrb    r4, [r9, #CPU_AL]
                         $alu    r2, r0                          $alu    r4, r0
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
Line 174  $label  CPUWORK $clk Line 167  $label  CPUWORK $clk
 $label  S_AX_D16        $alu, $clk  $label  S_AX_D16        $alu, $clk
 $label          CPUWORK $clk  $label          CPUWORK $clk
                         GETPC16                          GETPC16
                         ldrh    r2, [r9, #CPU_AX]                          ldrh    r4, [r9, #CPU_AX]
                         $alu    r2, r0                          $alu    r4, r0
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
   
         MACRO          MACRO
   $label  OP_EA8          $alu, $regclk, $memclk
   $label          cmp             r0, #&c0
                           bcc             $label.1
                           CPUWORK $regclk
                           R8SRC   r0, r5
                           ldrb    r4, [r5, #CPU_REG]
                           $alu    r4
                           strb    r1, [r5, #CPU_REG]
                           mov             pc, r11
   $label.1        CPUWORK $memclk
                           bl              i286a_ea
                           cmp             r0, #I286_MEMWRITEMAX
                           bcs             $label.2
                           ldrb    r4, [r9, r0]
                           $alu    r4
                           strb    r1, [r9, r0]
                           mov             pc, r11
   $label.2        mov             r5, r0
                           bl              i286a_memoryread
                           $alu    r0
                           mov             r0, r5
                           mov             lr, r11
                           b               i286a_memorywrite
           MEND
   
           MACRO
   $label  OP_EA16         $alu, $regclk, $memclk
   $label          cmp             r0, #&c0
                           bcc             $label.1
                           CPUWORK $regclk
                           R16SRC  r0, r5
                           ldrh    r4, [r5, #CPU_REG]
                           $alu    r4
                           strh    r1, [r5, #CPU_REG]
                           mov             pc, r11
   $label.1        CPUWORK $memclk
                           bl              i286a_ea
                           ACCWORD r0, $label.2
                           ldrh    r4, [r9, r0]
                           $alu    r4
                           strh    r1, [r9, r0]
                           mov             pc, r11
   $label.2        mov             r5, r0
                           bl              i286a_memoryread_w
                           $alu    r0
                           mov             r0, r5
                           mov             lr, r11
                           b               i286a_memorywrite_w
           MEND
   
   
           MACRO
 $label  OP_INC16        $r, $clk  $label  OP_INC16        $r, $clk
 $label          CPUWORK $clk  $label          CPUWORK $clk
                         ldrh    r2, [r9, $r]                          ldrh    r2, [r9, $r]
Line 200  $label  CPUWORK $clk Line 245  $label  CPUWORK $clk
   
         MACRO          MACRO
 $label  XCHG_AX         $r, $clk  $label  XCHG_AX         $r, $clk
 $label          CPUWORK $clk  $label          ldrh    r0, [r9, #CPU_AX]
                         ldrh    r0, [r9, #CPU_AX]  
                         ldrh    r1, [r9, $r]                          ldrh    r1, [r9, $r]
                           CPUWORK $clk
                         strh    r0, [r9, $r]                          strh    r0, [r9, $r]
                         strh    r1, [r9, #CPU_AX]                          strh    r1, [r9, #CPU_AX]
                         mov             pc, r11                          mov             pc, r11
Line 211  $label  CPUWORK $clk Line 256  $label  CPUWORK $clk
   
         MACRO          MACRO
 $label  MOVIMM8         $r, $clk  $label  MOVIMM8         $r, $clk
 $label          CPUWORK $clk  $label          GETPCF8
                         GETPC8                          CPUWORK $clk
                         strb    r0, [r9, $r]                          strb    r0, [r9, $r]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  MOVIMM16        $r, $clk  $label  MOVIMM16        $r, $clk
 $label          CPUWORK $clk  $label          GETPCF16
                         GETPC16                          CPUWORK $clk
                         strh    r0, [r9, $r]                          strh    r0, [r9, $r]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
Line 228  $label  CPUWORK $clk Line 273  $label  CPUWORK $clk
   
         MACRO          MACRO
 $label  SP_PUSH         $clk  $label  SP_PUSH         $clk
 $label          CPUWORK $clk  $label          ldrh    r1, [r9, #CPU_SP]
                         ldrh    r1, [r9, #CPU_SP]  
                         ldr             r2, [r9, #CPU_SS_BASE]                          ldr             r2, [r9, #CPU_SS_BASE]
                           CPUWORK $clk
                         sub             r0, r1, #2                          sub             r0, r1, #2
                         mov             r3, r0 lsl #16                          mov             r3, r0 lsl #16
                         strh    r0, [r9, #CPU_SP]                          strh    r0, [r9, #CPU_SP]
                         add             r0, r2, r3 lsr #16                          add             r0, r2, r3 lsr #16
                         mov             lr, r11                          mov             lr, r11
                         b               i286_memorywrite_w                          b               i286a_memorywrite_w
         MEND          MEND
   
         MACRO          MACRO
Line 245  $label  CPUWORK $clk Line 290  $label  CPUWORK $clk
                         ldrh    r0, [r9, #CPU_SP]                          ldrh    r0, [r9, #CPU_SP]
                         ldr             r1, [r9, #CPU_SS_BASE]                          ldr             r1, [r9, #CPU_SS_BASE]
                         add             r0, r1, r0                          add             r0, r1, r0
                         bl              i286_memoryread_w                          bl              i286a_memoryread_w
                         strh    r0, [r9, #CPU_SP]                          strh    r0, [r9, #CPU_SP]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  SEGPOP          $s, $b, $clk  $label  SEGPOP          $s, $b, $clk
 $label          POP             $clk  $label          ldrh    r6, [r9, #CPU_MSW]
                         mov             r1, r0 lsl #4                          POP             $clk
                         strh    r0, [r9, $s]                          strh    r0, [r9, $s]
                         str             r1, [r9, $b]                          tst             r6, #MSW_PE
                           moveq   r0, r0 lsl #4
                           blne    i286a_selector
                           str             r0, [r9, $b]
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND
   
         MACRO          MACRO
 $label  SEGPOPFIX       $s, $b, $f, $clk  $label  SEGPOPFIX       $s, $b, $f, $clk
 $label          POP             $clk  $label          ldrh    r6, [r9, #CPU_MSW]
                         mov             r1, r0 lsl #4                          POP             $clk
                         strh    r0, [r9, $s]                          strh    r0, [r9, $s]
                         str             r1, [r9, $b]                          tst             r6, #MSW_PE
                         str             r1, [r9, $f]                          moveq   r0, r0 lsl #4
                         mov             pc, r11                          blne    i286a_selector
                           str             r0, [r9, $b]
                           str             r0, [r9, $f]
         MEND          MEND
   
   
         MACRO          MACRO
 $label  JMPS            $jmpclk  $label  JMPS            $jmpclk
 $label          CPUWORK $jmpclk  $label          CPUWORK $jmpclk
                         ldr             r0, [r9, #CPU_CS_BASE]                  ;;      ldr             r5, [r9, #CPU_CS_BASE]
                         add             r0, r0, r8 lsr #16                          add             r0, r5, r8 lsr #16
                         bl              i286_memoryread                          GETR0
                         mov             r1, r0, lsl #24                          mov             r1, r0 lsl #24
                         add             r8, r8, #(1 << 16)                          add             r8, r8, #(1 << 16)
                         mov             r0, r1, asr #8                          mov             r0, r1 asr #8
                         add             r8, r0, r8                          add             r8, r0, r8
                         mov             pc, r11                          mov             pc, r11
         MEND          MEND

Removed from v.1.2  
changed lines
  Added in v.1.13


RetroPC.NET-CVS <cvs@retropc.net>