Diff for /np2/i286a/i286a_ea.s between versions 1.7 and 1.9

version 1.7, 2003/12/22 07:41:15 version 1.9, 2004/01/07 06:53:47
Line 10 Line 10
         INCLUDE i286a.inc          INCLUDE i286a.inc
         IMPORT  i286a_memoryread          IMPORT  i286a_memoryread
         IMPORT  i286a_memoryread_w          IMPORT  i286a_memoryread_w
   ;;      IMPORT  ea_assert
   
           EXPORT  i286a_selector
         EXPORT  i286a_ea          EXPORT  i286a_ea
         EXPORT  i286a_lea          EXPORT  i286a_lea
         EXPORT  i286a_a          EXPORT  i286a_a
   
         AREA    .text, CODE, READONLY          AREA    .text, CODE, READONLY
   
   
   i286a_selector  stmdb   sp!, {r4 - r5, lr}
                                   tst             r0, #4
                                   moveq   r1, #(CPU_GDTR + 2)
                                   movne   r1, #(CPU_LDTRC + 2)
                                   add             r2, r1, #2
                                   ldrh    r1, [r1, r9]
                                   ldrb    r2, [r2, r9]
                                   bic             r4, r0, #7
                                   add             r4, r4, r1
                                   add             r4, r4, r2 lsl #16
                                   add             r0, r4, #2
                                   bl              i286a_memoryread_w
                                   mov             r5, r0
                                   add             r0, r4, #4
                                   bl              i286a_memoryread
                                   add             r0, r5, r0 lsl #16
                                   ldmia   sp!, {r4 - r5, pc}
   
   
 ; ---- calc_ea_dst  ; ---- calc_ea_dst
   
         MACRO          MACRO
Line 29  $label  ldrh r1, [r9, $r] Line 51  $label  ldrh r1, [r9, $r]
   
         MACRO          MACRO
 $label  EAR1D8  $r, $b  $label  EAR1D8  $r, $b
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label  ;;      ldr             r0, [r9, #CPU_CS_BASE]
                           add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread                          bl              i286a_memoryread
                         ldrh    r1, [r9, $r]                          ldrh    r1, [r9, $r]
                         ldr             r2, [r9, $b]                          ldr             r2, [r9, $b]
Line 45  $label  ldr  r0, [r9, #CPU_CS_BASE] Line 67  $label  ldr  r0, [r9, #CPU_CS_BASE]
   
         MACRO          MACRO
 $label  EAR1D16 $r, $b  $label  EAR1D16 $r, $b
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label  ;;      ldr             r0, [r9, #CPU_CS_BASE]
                           add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread_w                          bl              i286a_memoryread_w
                         ldrh    r1, [r9, $r]                          ldrh    r1, [r9, $r]
                         ldr             r2, [r9, $b]                          ldr             r2, [r9, $b]
Line 71  $label  ldrh r1, [r9, $r1] Line 93  $label  ldrh r1, [r9, $r1]
   
         MACRO          MACRO
 $label  EAR2D8  $r1, $r2, $b  $label  EAR2D8  $r1, $r2, $b
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label  ;;      ldr             r0, [r9, #CPU_CS_BASE]
                           add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread                          bl              i286a_memoryread
                         ldrh    r1, [r9, $r1]                          ldrh    r1, [r9, $r1]
                         ldrh    r2, [r9, $r2]                          ldrh    r2, [r9, $r2]
Line 89  $label  ldr  r0, [r9, #CPU_CS_BASE] Line 111  $label  ldr  r0, [r9, #CPU_CS_BASE]
   
         MACRO          MACRO
 $label  EAR2D16 $r1, $r2, $b  $label  EAR2D16 $r1, $r2, $b
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label  ;;      ldr             r0, [r9, #CPU_CS_BASE]
                           add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread_w                          bl              i286a_memoryread_w
                         ldrh    r1, [r9, $r1]                          ldrh    r1, [r9, $r1]
                         ldrh    r2, [r9, $r2]                          ldrh    r2, [r9, $r2]
Line 104  $label  ldr  r0, [r9, #CPU_CS_BASE] Line 126  $label  ldr  r0, [r9, #CPU_CS_BASE]
                         mov             pc, r4                          mov             pc, r4
         MEND          MEND
   
 i286a_ea                and             r1, r0, #(&18 << 3)  i286a_ea
           if 0
                                   ldr             r1, [r9, #CPU_CS_BASE]
                                   cmp             r1, r5
                                   beq             ea_r
                                   str             r0, [sp, #-4]!
                                   mov             r4, lr
                                   add             r0, r1, r8 lsr #16
                                   bl              ea_assert
                                   ldr             r0, [sp], #4
                                   mov             lr, r4
   ea_r
           endif
                                   and             r1, r0, #(&18 << 3)
                                 and             r2, r0, #7                                  and             r2, r0, #7
                                 add             r3, pc, r1 lsr #1                                  add             r3, pc, r1 lsr #1
                                 add             pc, r3, r2 lsl #2                                  add             pc, r3, r2 lsl #2
Line 160  ea_bx_d16  EAR1D16 #CPU_BX, #CPU_DS_FIX Line 195  ea_bx_d16  EAR1D16 #CPU_BX, #CPU_DS_FIX
 ea_bp_d8                EAR1D8  #CPU_BP, #CPU_SS_FIX  ea_bp_d8                EAR1D8  #CPU_BP, #CPU_SS_FIX
 ea_bp_d16               EAR1D16 #CPU_BP, #CPU_SS_FIX  ea_bp_d16               EAR1D16 #CPU_BP, #CPU_SS_FIX
   
 ea_d16                  mov             r4, lr  ea_d16          ;;      ldr             r0, [r9, #CPU_CS_BASE]
                                 ldr             r0, [r9, #CPU_CS_BASE]                                  add             r0, r5, r8 lsr #16
                                 add             r0, r0, r8 lsr #16                                  mov             r4, lr
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 ldr             r1, [r9, #CPU_DS_FIX]                                  ldr             r1, [r9, #CPU_DS_FIX]
                                 add             r8, r8, #(2 << 16)                                  add             r8, r8, #(2 << 16)
Line 180  $label  ldrh r0, [r9, $r] Line 215  $label  ldrh r0, [r9, $r]
   
         MACRO          MACRO
 $label  LER1D8  $r  $label  LER1D8  $r
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label          add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread                          bl              i286a_memoryread
                         ldrh    r1, [r9, $r]                          ldrh    r1, [r9, $r]
                         add             r8, r8, #(1 << 16)                          add             r8, r8, #(1 << 16)
Line 195  $label  ldr  r0, [r9, #CPU_CS_BASE] Line 229  $label  ldr  r0, [r9, #CPU_CS_BASE]
   
         MACRO          MACRO
 $label  LER1D16 $r  $label  LER1D16 $r
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label          add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread_w                          bl              i286a_memoryread_w
                         ldrh    r1, [r9, $r]                          ldrh    r1, [r9, $r]
                         add             r8, r8, #(2 << 16)                          add             r8, r8, #(2 << 16)
Line 217  $label  ldrh r1, [r9, $r1] Line 250  $label  ldrh r1, [r9, $r1]
   
         MACRO          MACRO
 $label  LER2D8  $r1, $r2  $label  LER2D8  $r1, $r2
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label          add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread                          bl              i286a_memoryread
                         ldrh    r1, [r9, $r1]                          ldrh    r1, [r9, $r1]
                         ldrh    r2, [r9, $r2]                          ldrh    r2, [r9, $r2]
Line 234  $label  ldr  r0, [r9, #CPU_CS_BASE] Line 266  $label  ldr  r0, [r9, #CPU_CS_BASE]
   
         MACRO          MACRO
 $label  LER2D16 $r1, $r2  $label  LER2D16 $r1, $r2
 $label          ldr             r0, [r9, #CPU_CS_BASE]  $label          add             r0, r5, r8 lsr #16
                         mov             r4, lr                          mov             r4, lr
                         add             r0, r0, r8 lsr #16  
                         bl              i286a_memoryread_w                          bl              i286a_memoryread_w
                         ldrh    r1, [r9, $r1]                          ldrh    r1, [r9, $r1]
                         ldrh    r2, [r9, $r2]                          ldrh    r2, [r9, $r2]
Line 303  lea_bx_d16  LER1D16 #CPU_BX Line 334  lea_bx_d16  LER1D16 #CPU_BX
 lea_bp_d8               LER1D8  #CPU_BP  lea_bp_d8               LER1D8  #CPU_BP
 lea_bp_d16              LER1D16 #CPU_BP  lea_bp_d16              LER1D16 #CPU_BP
   
 lea_d16                 ldr             r0, [r9, #CPU_CS_BASE]  lea_d16                 add             r0, r5, r8 lsr #16
                                 add             r0, r0, r8 lsr #16  
                                 add             r8, r8, #(2 << 16)                                  add             r8, r8, #(2 << 16)
                                 b               i286a_memoryread_w                                  b               i286a_memoryread_w
   

Removed from v.1.7  
changed lines
  Added in v.1.9


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