Diff for /np2/i286a/i286a_mn.s between versions 1.10 and 1.13

version 1.10, 2003/12/19 00:25:49 version 1.13, 2003/12/19 12:29:04
Line 6 Line 6
         INCLUDE         i286aio.inc          INCLUDE         i286aio.inc
   
         IMPORT          i286core          IMPORT          i286core
         IMPORT          _szpcflag8          IMPORT          iflags
         IMPORT          i286a_localint          IMPORT          i286a_localint
         IMPORT          i286a_trapint          IMPORT          i286a_trapint
         EXPORT          i286a_trapintr          EXPORT          i286a_trapintr
Line 931  popf   POP  #5 Line 931  popf   POP  #5
                                 strb    r2, [r9, #CPU_TRAP]                                  strb    r2, [r9, #CPU_TRAP]
                                 bne             popf_withirq                                  bne             popf_withirq
                                 ldr             r0, popf_pic                                  ldr             r0, popf_pic
                                 tst             r8, #I_FLAG                                  NOINTREXIT
                                 moveq   pc, r11  
                                 PICEXISTINTR  
                                 moveq   pc, r11  
 popf_withirq    I286IRQCHECKTERM  popf_withirq    I286IRQCHECKTERM
 popf_pic                dcd             pic  popf_pic                dcd             pic
   
Line 1395  iret   bl  extirq_pop Line 1392  iret   bl  extirq_pop
                                 strb    r2, [r9, #CPU_TRAP]                                  strb    r2, [r9, #CPU_TRAP]
                                 bne             iret_withirq                                  bne             iret_withirq
                                 ldr             r0, iret_pic                                  ldr             r0, iret_pic
                                 tst             r8, #I_FLAG                                  NOINTREXIT
                                 moveq   pc, r11  
                                 PICEXISTINTR  
                                 moveq   pc, r11  
 iret_withirq    I286IRQCHECKTERM  iret_withirq    I286IRQCHECKTERM
 iret_pic                dcd             pic  iret_pic                dcd             pic
   
   
 aam                             CPUWORK #16  aam                             CPUWORK #16
                                 GETPC8                                  GETPC8
                                 movs    r0, r0, lsl #7                                  movs    r0, r0 lsl #7
                                 beq             aamzero                                  beq             aamzero
                                 ldrb    r1, [r9, #CPU_AL]                                  ldrb    r1, [r9, #CPU_AL]
                                 mov             r2, #&80                                  mov             r2, #&80
Line 1413  aam    CPUWORK #16 Line 1407  aam    CPUWORK #16
 aamlp                   cmp             r1, r0  aamlp                   cmp             r1, r0
                                 subcs   r1, r1, r0                                  subcs   r1, r1, r0
                                 orrcs   r3, r2, r3                                  orrcs   r3, r2, r3
                                   mov             r0, r0 lsr #1
                                 movs    r2, r2 lsr #1                                  movs    r2, r2 lsr #1
                                 bne             aamlp                                  bne             aamlp
                                 ldrb    r2, [r10, r1]                                  ldrb    r2, [r10, r1]
Line 1657  sti_set   orr  r8, r8, #I_FLAG Line 1652  sti_set   orr  r8, r8, #I_FLAG
                                 ldr             r0, sti_pic                                  ldr             r0, sti_pic
                                 strneb  r1, [r9, #CPU_TRAP]                                  strneb  r1, [r9, #CPU_TRAP]
                                 bne             sti_withirq                                  bne             sti_withirq
                                 PICEXISTINTR                                  PICEXISTINTR    sti_noirq
                                 bne             sti_withirq                                  bne             sti_withirq
 sti_noirq               NEXT_OPCODE  sti_noirq               NEXT_OPCODE
 sti_pic                 dcd             pic  sti_pic                 dcd             pic
Line 1679  i286a_step  stmdb sp!, {r4 - r11, lr} Line 1674  i286a_step  stmdb sp!, {r4 - r11, lr}
                                 ldr             r10, ias_r10                                  ldr             r10, ias_r10
                                 ;                                  ;
                                 ldr             r5, [r9, #CPU_CS_BASE]                                  ldr             r5, [r9, #CPU_CS_BASE]
                 ;               ldr             r7, [r9, #CPU_REMAINCLOCK]                                  CPULD
                                 ldr             r8, [r9, #CPU_FLAG]  
   
                                 adr             r4, optbl1                                  adr             r4, optbl1
                                 add             r0, r5, r8 lsr #16                                  add             r0, r5, r8 lsr #16
Line 1690  i286a_step  stmdb sp!, {r4 - r11, lr} Line 1684  i286a_step  stmdb sp!, {r4 - r11, lr}
                                 mov             r11, pc                                  mov             r11, pc
                                 mov             pc, r1                                  mov             pc, r1
   
                                 str             r8, [r9, #CPU_FLAG]                                  bl              dmap_i286
                                   CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
   
   
Line 1698  i286a   stmdb sp!, {r4 - r11, lr} Line 1693  i286a   stmdb sp!, {r4 - r11, lr}
                                 ldr             r9, ias_r9                                  ldr             r9, ias_r9
                                 ldr             r2, ias_r1                                  ldr             r2, ias_r1
                                 ldr             r10, ias_r10                                  ldr             r10, ias_r10
                                 ldr             r8, [r9, #CPU_FLAG]                                  CPULD
                                 ldr             r5, [r9, #CPU_CS_BASE]                                  ldr             r5, [r9, #CPU_CS_BASE]
                                 ldr             r1, [r2, #DMAC_WORKING]                                  ldr             r1, [r2, #DMAC_WORKING]
                                 and             r0, r8, #(I_FLAG + T_FLAG)                                  and             r0, r8, #(I_FLAG + T_FLAG)
Line 1718  i286a_lp  add  r0, r5, r8 lsr #16 Line 1713  i286a_lp  add  r0, r5, r8 lsr #16
                                 adr             r4, optbl1                                  adr             r4, optbl1
                                 cmp             r7, #0                                  cmp             r7, #0
                                 bgt             i286a_lp                                  bgt             i286a_lp
                                 str             r8, [r9, #CPU_FLAG]                                  CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
   
 ias_r9                  dcd             i286core - CPU_REG  ias_r9                  dcd             i286core + CPU_SIZE
 ias_r1                  dcd             dmac  ias_r1                  dcd             dmac
 ias_r10                 dcd             _szpcflag8  ias_r10                 dcd             iflags
   
 i286awithdma    adr             r4, optbl1  i286awithdma    adr             r4, optbl1
 i286awdma_lp    add             r0, r5, r8 lsr #16  i286awdma_lp    add             r0, r5, r8 lsr #16
Line 1738  i286awdma_lp add  r0, r5, r8 lsr #16 Line 1733  i286awdma_lp add  r0, r5, r8 lsr #16
                                 adr             r4, optbl1                                  adr             r4, optbl1
                                 cmp             r7, #0                                  cmp             r7, #0
                                 bgt             i286awdma_lp                                  bgt             i286awdma_lp
                                 str             r8, [r9, #CPU_FLAG]                                  CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
   
 i286awithtrap   adr             r4, optbl1  i286awithtrap   adr             r4, optbl1
Line 1752  i286awtrp_lp add  r0, r5, r8 lsr #16 Line 1747  i286awtrp_lp add  r0, r5, r8 lsr #16
                                 and             r0, r8, #(I_FLAG + T_FLAG)                                  and             r0, r8, #(I_FLAG + T_FLAG)
                                 cmp             r0, #(I_FLAG + T_FLAG)                                  cmp             r0, #(I_FLAG + T_FLAG)
                                 beq             i286a_trapint                                  beq             i286a_trapint
 i286a_trapintr  str             r8, [r9, #CPU_FLAG]  i286a_trapintr  CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
   
 optbl1                  dcd             add_ea_r8                       ; 00  optbl1                  dcd             add_ea_r8                       ; 00

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


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