Diff for /np2/i286a/i286a_mn.s between versions 1.21 and 1.25

version 1.21, 2004/01/07 06:53:47 version 1.25, 2004/07/17 20:43:02
Line 9 Line 9
         IMPORT          iflags          IMPORT          iflags
         IMPORT          i286a_localint          IMPORT          i286a_localint
         IMPORT          i286a_trapint          IMPORT          i286a_trapint
         EXPORT          i286a_trapintr          IMPORT          i286a_selector
         IMPORT          i286a_ea          IMPORT          i286a_ea
         IMPORT          i286a_lea          IMPORT          i286a_lea
         IMPORT          i286a_a          IMPORT          i286a_a
Line 701  xchg_ea_r16  EAREG16 r6 Line 701  xchg_ea_r16  EAREG16 r6
                                 strh    r1, [r6, #CPU_REG]                                  strh    r1, [r6, #CPU_REG]
                                 mov             pc, r11                                  mov             pc, r11
 xchgear16_1             bl              i286a_ea  xchgear16_1             bl              i286a_ea
                                 WORDACC r0, xchgear16_2                                  ACCWORD r0, xchgear16_2
                                 ldrh    r1, [r6, #CPU_REG]                                  ldrh    r1, [r6, #CPU_REG]
                                 ldrh    r4, [r9, r0]                                  ldrh    r4, [r9, r0]
                                 CPUWORK #5                                  CPUWORK #5
Line 781  leareg   mov  r6, #6 Line 781  leareg   mov  r6, #6
                                 sub             r8, r8, #(2 << 16)                                  sub             r8, r8, #(2 << 16)
                                 b               i286a_localint                                  b               i286a_localint
   
 mov_seg_ea              GETPCF8  mov_seg_ea              ldrb    r6, [r9, #CPU_MSW]
                                   GETPCF8
                                 adr             r2, msegea_tbl                                  adr             r2, msegea_tbl
                                 and             r1, r0, #(3 << 3)                                  and             r1, r0, #(3 << 3)
                                   tst             r6, #MSW_PE
                                   orrne   r1, r1, #(4 << 3)
                                 mov             r6, r8                                  mov             r6, r8
                                 ldr             r2, [r2, r1 lsr #1]                                  ldr             r2, [r2, r1 lsr #1]
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
Line 801  msegea_tbl  dcd  msegea_es Line 804  msegea_tbl  dcd  msegea_es
                                 dcd             msegea_cs                                  dcd             msegea_cs
                                 dcd             msegea_ss                                  dcd             msegea_ss
                                 dcd             msegea_ds                                  dcd             msegea_ds
                                   dcd             msegea_es_p
                                   dcd             msegea_cs
                                   dcd             msegea_ss_p
                                   dcd             msegea_ds_p
 msegea_es               mov             r1, r0 lsl #4  msegea_es               mov             r1, r0 lsl #4
                                 strh    r0, [r9, #CPU_ES]                                  strh    r0, [r9, #CPU_ES]
                                 str             r1, [r9, #CPU_ES_BASE]                                  str             r1, [r9, #CPU_ES_BASE]
Line 815  msegea_ss  mov  r1, r0 lsl #4 Line 822  msegea_ss  mov  r1, r0 lsl #4
                                 str             r1, [r9, #CPU_SS_BASE]                                  str             r1, [r9, #CPU_SS_BASE]
                                 str             r1, [r9, #CPU_SS_FIX]                                  str             r1, [r9, #CPU_SS_FIX]
                                 NEXT_OPCODE                                  NEXT_OPCODE
   
   msegea_es_p             strh    r0, [r9, #CPU_ES]
                                   bl              i286a_selector
                                   str             r0, [r9, #CPU_ES_BASE]
                                   mov             pc, r11
   msegea_ds_p             strh    r0, [r9, #CPU_DS]
                                   bl              i286a_selector
                                   str             r0, [r9, #CPU_DS_BASE]
                                   str             r0, [r9, #CPU_DS_FIX]
                                   mov             pc, r11
   msegea_ss_p             strh    r0, [r9, #CPU_SS]
                                   bl              i286a_selector
                                   str             r0, [r9, #CPU_SS_BASE]
                                   str             r0, [r9, #CPU_SS_FIX]
                                   NEXT_OPCODE
   
 msegea_cs               sub             r8, r6, #(2 << 16)  msegea_cs               sub             r8, r6, #(2 << 16)
                                 mov             r6, #6                                  mov             r6, #6
                                 b               i286a_localint                                  b               i286a_localint
   
   
 pop_ea                  POP             #5  pop_ea                  POP             #5
                                 mov             r6, r0                                  mov             r6, r0
                                 GETPCF8                                  GETPCF8
Line 895  call_far  CPUWORK #13 Line 919  call_far  CPUWORK #13
                                 add             r8, r8, #(2 << 16)                                  add             r8, r8, #(2 << 16)
                                 mov             r4, r0 lsl #16                                  mov             r4, r0 lsl #16
                                 add             r0, r5, r8 lsr #16                                  add             r0, r5, r8 lsr #16
                                   ldrb    r5, [r9, #CPU_MSW]
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 mov             r1, r0 lsl #4  
                                 strh    r0, [r9, #CPU_CS]                                  strh    r0, [r9, #CPU_CS]
                                 str             r1, [r9, #CPU_CS_BASE]                                  tst             r5, #MSW_PE
                                   moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_CS_BASE]
                                 mov             r0, r8 lsl #16                                  mov             r0, r8 lsl #16
                                 orr             r8, r4, r0 lsr #16                                  orr             r8, r4, r0 lsr #16
                                 mov             pc, r11                                  mov             pc, r11
Line 1174  les_r16_ea  GETPCF8 Line 1201  les_r16_ea  GETPCF8
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 strh    r0, [r5, #CPU_REG]                                  strh    r0, [r5, #CPU_REG]
                                 add             r0, r4, r6                                  add             r0, r4, r6
                                   ldrb    r4, [r9, #CPU_MSW]
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 mov             r1, r0 lsl #4  
                                 strh    r0, [r9, #CPU_ES]                                  strh    r0, [r9, #CPU_ES]
                                 str             r1, [r9, #CPU_ES_BASE]                                  tst             r4, #MSW_PE
                                   moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_ES_BASE]
                                 mov             pc, r11                                  mov             pc, r11
 lr16_r                  mov             r6, #6  lr16_r                  mov             r6, #6
                                 sub             r8, r8, #(2 << 16)                                  sub             r8, r8, #(2 << 16)
Line 1195  lds_r16_ea  GETPCF8 Line 1225  lds_r16_ea  GETPCF8
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 strh    r0, [r5, #CPU_REG]                                  strh    r0, [r5, #CPU_REG]
                                 add             r0, r4, r6                                  add             r0, r4, r6
                                   ldrb    r4, [r9, #CPU_MSW]
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 mov             r1, r0 lsl #4  
                                 strh    r0, [r9, #CPU_DS]                                  strh    r0, [r9, #CPU_DS]
                                 str             r1, [r9, #CPU_DS_BASE]                                  tst             r4, #MSW_PE
                                 str             r1, [r9, #CPU_DS_FIX]                                  moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_DS_BASE]
                                   str             r0, [r9, #CPU_DS_FIX]
                                 mov             pc, r11                                  mov             pc, r11
   
 mov_ea8_d8              GETPCF8  mov_ea8_d8              GETPCF8
Line 1321  ret_far_d16  GETPC16 Line 1354  ret_far_d16  GETPC16
                                 add             r4, r4, #2                                  add             r4, r4, #2
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 add             r4, r6, r4                                  add             r4, r6, r4
                                 mov             r1, r0 lsl #4                                  ldrb    r1, [r9, #CPU_MSW]
                                 strh    r4, [r9, #CPU_SP]                                  strh    r4, [r9, #CPU_SP]
                                 strh    r0, [r9, #CPU_CS]                                  strh    r0, [r9, #CPU_CS]
                                 str             r1, [r9, #CPU_CS_BASE]                                  tst             r1, #MSW_PE
                                   moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_CS_BASE]
                                 mov             pc, r11                                  mov             pc, r11
   
 ret_far                 ldrh    r1, [r9, #CPU_SP]  ret_far                 ldrh    r1, [r9, #CPU_SP]
Line 1340  ret_far   ldrh r1, [r9, #CPU_SP] Line 1376  ret_far   ldrh r1, [r9, #CPU_SP]
                                 add             r0, r4, r5                                  add             r0, r4, r5
                                 add             r4, r4, #2                                  add             r4, r4, #2
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                 mov             r1, r0 lsl #4                                  ldrb    r1, [r9, #CPU_MSW]
                                 strh    r4, [r9, #CPU_SP]                                  strh    r4, [r9, #CPU_SP]
                                 strh    r0, [r9, #CPU_CS]                                  strh    r0, [r9, #CPU_CS]
                                 str             r1, [r9, #CPU_CS_BASE]                                  tst             r1, #MSW_PE
                                   moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_CS_BASE]
                                 mov             pc, r11                                  mov             pc, r11
   
 int_03                  CPUWORK #3  int_03                  CPUWORK #3
Line 1361  into   CPUWORK #4 Line 1400  into   CPUWORK #4
                                 mov             r6, #4                                  mov             r6, #4
                                 b               i286a_localint                                  b               i286a_localint
   
 iret                    bl              extirq_pop  iret                    ldrh    r1, [r9, #CPU_SP]
                                 ldrh    r1, [r9, #CPU_SP]  
                                 ldr             r5, [r9, #CPU_SS_BASE]                                  ldr             r5, [r9, #CPU_SS_BASE]
                                 CPUWORK #31                                  CPUWORK #31
                                 add             r4, r1, #2                                  add             r4, r1, #2
Line 1579  jmp_far   CPUWORK #11 Line 1617  jmp_far   CPUWORK #11
                                 mov             r8, r0 lsl #16                                  mov             r8, r0 lsl #16
                                 add             r0, r4, r5 lsr #16                                  add             r0, r4, r5 lsr #16
                                 bl              i286a_memoryread_w                                  bl              i286a_memoryread_w
                                   ldrb    r1, [r9, #CPU_MSW]
                                 add             r8, r8, r6 lsr #16                                  add             r8, r8, r6 lsr #16
                                 mov             r1, r0 lsl #4  
                                 strh    r0, [r9, #CPU_CS]                                  strh    r0, [r9, #CPU_CS]
                                 str             r1, [r9, #CPU_CS_BASE]                                  tst             r1, #MSW_PE
                                   moveq   r0, r0 lsl #4
                                   blne    i286a_selector
                                   str             r0, [r9, #CPU_CS_BASE]
                                 mov             pc, r11                                  mov             pc, r11
   
 in_al_dx                CPUWORK #5  in_al_dx                CPUWORK #5
Line 1662  sti_set   orr  r8, r8, #I_FLAG Line 1703  sti_set   orr  r8, r8, #I_FLAG
                                 strneb  r1, [r9, #CPU_TRAP]                                  strneb  r1, [r9, #CPU_TRAP]
                                 bne             sti_withirq                                  bne             sti_withirq
                 endif                  endif
                                 PICEXISTINTR    sti_noirq                                  PICEXISTINTR
                                 bne             sti_withirq                                  bne             sti_withirq
 sti_noirq               NEXT_OPCODE  sti_noirq               NEXT_OPCODE
 sti_pic                 dcd             pic  sti_pic                 dcd             pic
Line 1754  i286awithtrap adr  r4, optbl1 Line 1795  i286awithtrap adr  r4, optbl1
                                 bl              dmap_i286                                  bl              dmap_i286
                                 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                                  bleq    i286a_trapint
 i286a_trapintr  CPUSV                                  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.21  
changed lines
  Added in v.1.25


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