Diff for /np2/i286a/i286a_mn.s between versions 1.23 and 1.26

version 1.23, 2004/01/29 00:27:29 version 1.26, 2005/02/08 10:34:30
Line 24 Line 24
         IMPORT          iocore_out8          IMPORT          iocore_out8
         IMPORT          iocore_out16          IMPORT          iocore_out16
   
         IMPORT          dmap_i286          IMPORT          dmax86
         IMPORT          biosfunc          IMPORT          biosfunc
   
         IMPORT          i286a_cts          IMPORT          i286a_cts
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              ldrh    r6, [r9, #CPU_MSW]  mov_seg_ea              ldrb    r6, [r9, #CPU_MSW]
                                 GETPCF8                                  GETPCF8
                                 adr             r2, msegea_tbl                                  adr             r2, msegea_tbl
                                 and             r1, r0, #(3 << 3)                                  and             r1, r0, #(3 << 3)
Line 919  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 1198  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 1219  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 1345  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 1364  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 1602  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 1717  i286a_step  stmdb sp!, {r4 - r11, lr} Line 1735  i286a_step  stmdb sp!, {r4 - r11, lr}
                                 mov             r11, pc                                  mov             r11, pc
                                 mov             pc, r1                                  mov             pc, r1
   
                                 bl              dmap_i286                                  bl              dmax86
                                 CPUSV                                  CPUSV
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
   
Line 1759  i286awithdma adr  r4, optbl1 Line 1777  i286awithdma adr  r4, optbl1
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 mov             r11, pc                                  mov             r11, pc
                                 mov             pc, r1                                  mov             pc, r1
                                 bl              dmap_i286                                  bl              dmax86
                                 CPUDBGL                                  CPUDBGL
                                 cmp             r7, #0                                  cmp             r7, #0
                                 ldrgt   r5, [r9, #CPU_CS_BASE]                                  ldrgt   r5, [r9, #CPU_CS_BASE]
Line 1774  i286awithtrap adr  r4, optbl1 Line 1792  i286awithtrap adr  r4, optbl1
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 mov             r11, pc                                  mov             r11, pc
                                 mov             pc, r1                                  mov             pc, r1
                                 bl              dmap_i286                                  bl              dmax86
                                 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)
                                 bleq    i286a_trapint                                  bleq    i286a_trapint

Removed from v.1.23  
changed lines
  Added in v.1.26


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