Diff for /np2/i286a/i286a_i.s between versions 1.5 and 1.8

version 1.5, 2003/12/19 00:25:49 version 1.8, 2003/12/21 23:27:08
Line 2 Line 2
         INCLUDE         i286a.inc          INCLUDE         i286a.inc
   
         IMPORT          i286core          IMPORT          i286core
         IMPORT          _szpcflag8          IMPORT          i286a_memoryread
         IMPORT          i286_memorywrite_w          IMPORT          i286a_memorywrite_w
         EXPORT          i286a_localint          EXPORT          i286a_localint
         EXPORT          i286a_trapint          EXPORT          i286a_trapint
         IMPORT          i286a_trapintr          IMPORT          i286a_trapintr
           EXPORT          i286c_interrupt
         EXPORT          i286a_interrupt          EXPORT          i286a_interrupt
   
         AREA    .text, CODE, READONLY          AREA    .text, CODE, READONLY
Line 19  i286a_localint ldrh r4, [r9, #CPU_SP] Line 20  i286a_localint ldrh r4, [r9, #CPU_SP]
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8                                  mov             r1, r8
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 ldrh    r1, [r9, #CPU_CS]                                  ldrh    r1, [r9, #CPU_CS]
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8 lsr #16                                  mov             r1, r8 lsr #16
                                 mov             r4, r4 lsr #16                                  mov             r4, r4 lsr #16
                                 sub             r8, r8, r1 lsl #16                                  sub             r8, r8, r1 lsl #16
                                 add             r0, r4, r5                                  add             r0, r4, r5
                                 strh    r4, [r9, #CPU_SP]                                  strh    r4, [r9, #CPU_SP]
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 mov             r0, #0                                  mov             r0, #0
                                 ldr             r1, [r9, r6 lsl #2]                                  ldr             r1, [r9, r6 lsl #2]
                                 strb    r0, [r9, #CPU_TRAP]                                  strb    r0, [r9, #CPU_TRAP]
Line 49  i286a_trapint ldrh r4, [r9, #CPU_SP] Line 50  i286a_trapint ldrh r4, [r9, #CPU_SP]
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8                                  mov             r1, r8
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 ldrh    r1, [r9, #CPU_CS]                                  ldrh    r1, [r9, #CPU_CS]
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8 lsr #16                                  mov             r1, r8 lsr #16
                                 mov             r4, r4 lsr #16                                  mov             r4, r4 lsr #16
                                 sub             r8, r8, r1 lsl #16                                  sub             r8, r8, r1 lsl #16
                                 add             r0, r4, r5                                  add             r0, r4, r5
                                 strh    r4, [r9, #CPU_SP]                                  strh    r4, [r9, #CPU_SP]
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 mov             r0, #0                                  mov             r0, #0
                                 ldr             r1, [r9, #4]                                  ldr             r1, [r9, #4]
                                 strb    r0, [r9, #CPU_TRAP]                                  strb    r0, [r9, #CPU_TRAP]
Line 72  i286a_trapint ldrh r4, [r9, #CPU_SP] Line 73  i286a_trapint ldrh r4, [r9, #CPU_SP]
                                 str             r2, [r9, #CPU_CS_BASE]                                  str             r2, [r9, #CPU_CS_BASE]
                                 b               i286a_trapintr                                  b               i286a_trapintr
   
   i286c_interrupt
   i286a_interrupt ldr             r1, iai_r9
 i286a_interrupt stmdb   sp!, {r4 - r10, lr}                                  stmdb   sp!, {r4 - r9, lr}
                                 ldr             r9, iai_r9                                  mov             r9, r1
                                 ldr             r10, iai_r10                    ; °ì±þ  
                                 mov             r6, r0                                  mov             r6, r0
                                 CPULD                                  CPULD
                                   ldr             r5, [r9, #CPU_CS_BASE]
                                 ldrh    r4, [r9, #CPU_SP]                                  ldrh    r4, [r9, #CPU_SP]
                                 ldr             r5, [r9, #CPU_SS_BASE]  
                                 CPUWORK #20                                  CPUWORK #20
                                   add             r0, r5, r8 lsr #16
                                   ldr             r5, [r9, #CPU_SS_BASE]
                                   bl              i286a_memoryread
                                 mov             r4, r4 lsl #16                                  mov             r4, r4 lsl #16
                                   cmp             r0, #&f4
                                   addeq   r8, r8, #(1 << 16)
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8                                  mov             r1, r8
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 ldrh    r1, [r9, #CPU_CS]                                  ldrh    r1, [r9, #CPU_CS]
                                 add             r0, r5, r4 lsr #16                                  add             r0, r5, r4 lsr #16
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 sub             r4, r4, #(2 << 16)                                  sub             r4, r4, #(2 << 16)
                                 mov             r1, r8 lsr #16                                  mov             r1, r8 lsr #16
                                 mov             r4, r4 lsr #16                                  mov             r4, r4 lsr #16
                                 sub             r8, r8, r1 lsl #16                                  sub             r8, r8, r1 lsl #16
                                 add             r0, r4, r5                                  add             r0, r4, r5
                                 strh    r4, [r9, #CPU_SP]                                  strh    r4, [r9, #CPU_SP]
                                 bl              i286_memorywrite_w                                  bl              i286a_memorywrite_w
                                 mov             r0, #0                                  mov             r0, #0
                                 ldr             r1, [r9, r6 lsl #2]                                  ldr             r1, [r9, r6 lsl #2]
                                 strb    r0, [r9, #CPU_TRAP]                                  strb    r0, [r9, #CPU_TRAP]
Line 107  i286a_interrupt stmdb sp!, {r4 - r10, lr Line 112  i286a_interrupt stmdb sp!, {r4 - r10, lr
                                 mov             r2, r0 lsl #4                                  mov             r2, r0 lsl #4
                                 strh    r0, [r9, #CPU_CS]                                  strh    r0, [r9, #CPU_CS]
                                 str             r2, [r9, #CPU_CS_BASE]                                  str             r2, [r9, #CPU_CS_BASE]
                                 CPUSVC                                  CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r9, pc}
 iai_r9                  dcd             i286core - CPU_REG  iai_r9                  dcd             i286core + CPU_SIZE
 iai_r10                 dcd             _szpcflag8  
   
         END          END
   

Removed from v.1.5  
changed lines
  Added in v.1.8


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