Diff for /np2/i286a/i286a_ea.s between versions 1.1 and 1.3

version 1.1, 2003/12/16 04:58:00 version 1.3, 2003/12/18 13:21:32
Line 13 Line 13
   
         EXPORT  i286a_ea          EXPORT  i286a_ea
         EXPORT  i286a_lea          EXPORT  i286a_lea
           EXPORT  i286a_a
   
         AREA    .text, CODE, READONLY          AREA    .text, CODE, READONLY
   
Line 591  lea_bp_d16  mov  r4, lr Line 591  lea_bp_d16  mov  r4, lr
                                 mov             pc, r4                                  mov             pc, r4
   
   
   ; ---- calc_a
   
   i286a_a                 and             r1, r0, #(&18 << 3)
                                   and             r2, r0, #7
                                   add             r3, pc, r1 lsr #1
                                   add             pc, r3, r2 lsl #2
   
                                   b               a_bx_si
                                   b               a_bx_di
                                   b               a_bp_si
                                   b               a_bp_di
                                   b               a_si
                                   b               a_di
                                   b               a_d16
                                   b               a_bx
   
                                   b               a_bx_si_d8
                                   b               a_bx_di_d8
                                   b               a_bp_si_d8
                                   b               a_bp_di_d8
                                   b               a_si_d8
                                   b               a_di_d8
                                   b               a_bp_d8
                                   b               a_bx_d8
   
                                   b               a_bx_si_d16
                                   b               a_bx_di_d16
                                   b               a_bp_si_d16
                                   b               a_bp_di_d16
                                   b               a_si_d16
                                   b               a_di_d16
                                   b               a_bp_d16
                                   b               a_bx_d16
   
   a_bx_si                 ldrh    r0, [r9, #CPU_BX]
                                   ldrh    r1, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r2, r0, r1
                                   bic             r0, r2, #&10000
                                   mov             pc, lr
   
   a_bx_si_d8              mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldrh    r2, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r1, r2, r1
                                   add             r8, r8, #(1 << 16)
                                   add             r2, r0, r1
                                   bic             r0, r2, #(3 << 16)
                                   mov             pc, r4
   
   a_bx_si_d16             mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldrh    r2, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r3, r0, r1
                                   add             r1, r3, r2
                                   add             r8, r8, #(2 << 16)
                                   bic             r0, r1, #(3 << 16)
                                   mov             pc, r4
   
   a_bx_di                 ldrh    r0, [r9, #CPU_BX]
                                   ldrh    r1, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, lr
   
   a_bx_di_d8              mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldrh    r2, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r1, r2, r1
                                   add             r8, r8, #(1 << 16)
                                   add             r2, r0, r1
                                   bic             r0, r2, #(3 << 16)
                                   mov             pc, r4
   
   a_bx_di_d16             mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldrh    r2, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r3, r0, r1
                                   add             r1, r3, r2
                                   add             r8, r8, #(2 << 16)
                                   bic             r0, r1, #(3 << 16)
                                   mov             pc, r4
   
   a_bp_si                 ldrh    r0, [r9, #CPU_BP]
                                   ldrh    r1, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   add             r2, r0, r1
                                   bic             r0, r2, #&10000
                                   mov             pc, lr
   
   a_bp_si_d8              mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BP]
                                   ldrh    r2, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r1, r2, r1
                                   add             r8, r8, #(1 << 16)
                                   add             r2, r0, r1
                                   bic             r0, r2, #(3 << 16)
                                   mov             pc, r4
   
   a_bp_si_d16             mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BP]
                                   ldrh    r2, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   add             r3, r0, r1
                                   add             r1, r3, r2
                                   add             r8, r8, #(2 << 16)
                                   bic             r0, r1, #(3 << 16)
                                   mov             pc, r4
   
   a_bp_di                 ldrh    r0, [r9, #CPU_BP]
                                   ldrh    r1, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, lr
   
   a_bp_di_d8              mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BP]
                                   ldrh    r2, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r1, r2, r1
                                   add             r8, r8, #(1 << 16)
                                   add             r2, r0, r1
                                   bic             r0, r2, #(3 << 16)
                                   mov             pc, r4
   
   a_bp_di_d16             mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BP]
                                   ldrh    r2, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   add             r3, r0, r1
                                   add             r1, r3, r2
                                   add             r8, r8, #(2 << 16)
                                   bic             r0, r1, #(3 << 16)
                                   mov             pc, r4
   
   a_si                    ldrh    r0, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   mov             pc, lr
   
   a_si_d8                 mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r2, r0, r1
                                   add             r8, r8, #(1 << 16)
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_si_d16                mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_SI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r8, r8, #(2 << 16)
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_di                    ldrh    r0, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   mov             pc, lr
   
   a_di_d8                 mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r2, r0, r1
                                   add             r8, r8, #(1 << 16)
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_di_d16                mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_DI]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r8, r8, #(2 << 16)
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_bx                    ldrh    r0, [r9, #CPU_BX]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   mov             pc, lr
   
   a_bx_d8                 mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r2, r0, r1
                                   add             r8, r8, #(1 << 16)
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_bx_d16                mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BX]
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r8, r8, #(2 << 16)
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_d16                   mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldr             r6, [r9, #CPU_DS_FIX]
                                   add             r8, r8, #(2 << 16)
                                   mov             pc, r4
   
   a_bp_d8                 mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread
                                   ldrh    r1, [r9, #CPU_BP]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   tst             r0, #&80
                                   orrne   r0, r0, #&ff00
                                   add             r2, r0, r1
                                   add             r8, r8, #(1 << 16)
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   a_bp_d16                mov             r4, lr
                                   ldr             r0, [r9, #CPU_CS_BASE]
                                   ldr             r6, [r9, #CPU_SS_FIX]
                                   add             r0, r0, r8 lsr #16
                                   bl              i286_memoryread_w
                                   ldrh    r1, [r9, #CPU_BP]
                                   add             r8, r8, #(2 << 16)
                                   add             r2, r1, r0
                                   bic             r0, r2, #(1 << 16)
                                   mov             pc, r4
   
   
   
 ; ---- test  ; ---- test
Line 598  lea_bp_d16  mov  r4, lr Line 888  lea_bp_d16  mov  r4, lr
         IMPORT  i286core          IMPORT  i286core
         EXPORT  i286a_ea_test          EXPORT  i286a_ea_test
         EXPORT  i286a_lea_test          EXPORT  i286a_lea_test
           EXPORT  i286a_a_test
   
 i286a_ea_test   stmdb   sp!, {r4, r8, r9, lr}  i286a_ea_test   stmdb   sp!, {r4, r8, r9, lr}
                                 ldr             r9, iet_i286core                                  ldr             r9, iet_i286core
Line 619  i286a_lea_test stmdb sp!, {r4, r8, r9, l Line 910  i286a_lea_test stmdb sp!, {r4, r8, r9, l
                                 ldmia   sp!, {r4, r8, r9, pc}                                  ldmia   sp!, {r4, r8, r9, pc}
 ilt_i286core    dcd             i286core - CPU_REG  ilt_i286core    dcd             i286core - CPU_REG
   
   i286a_a_test    stmdb   sp!, {r4, r5, r6, r8, r9, lr}
                                   ldr             r9, iat_i286core
                                   ldrh    r8, [r9, #CPU_IP]
                                   mov             r8, r8 lsl #16
                                   mov             r5, r1
                                   bl              i286a_a
                                   str             r6, [r5]
                                   mov             r8, r8 lsr #16
                                   strh    r8, [r9, #CPU_IP]
                                   ldmia   sp!, {r4, r5, r6, r8, r9, pc}
   iat_i286core    dcd             i286core - CPU_REG
   
         END          END
   

Removed from v.1.1  
changed lines
  Added in v.1.3


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