Diff for /np2/i286a/i286a_mn.s between versions 1.14 and 1.15

version 1.14, 2003/12/20 10:27:55 version 1.15, 2003/12/21 23:27:08
Line 501  popa   ldrh r4, [r9, #CPU_SP] Line 501  popa   ldrh r4, [r9, #CPU_SP]
                                 strh    r0, [r9, #CPU_SP]                                  strh    r0, [r9, #CPU_SP]
                                 mov             pc, r11                                  mov             pc, r11
   
 bound                   GETPC8  bound                   GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             bndreg                                  bcs             bndreg
                                 CPUWORK #13                                  CPUWORK #13
Line 536  push_d16  CPUWORK #3 Line 536  push_d16  CPUWORK #3
                                 mov             lr, r11                                  mov             lr, r11
                                 b               i286a_memorywrite_w                                  b               i286a_memorywrite_w
   
 imul_r_ea_d16   REG16EA r5, #21, #24  imul_r_ea_d16   REG16EA r6, #21, #24
                                 mov             r4, r0, lsl #16                                  mov             r4, r0, lsl #16
                                 GETPC16                                  GETPC16
                                 mov             r0, r0, lsl #16                                  mov             r0, r0, lsl #16
Line 544  imul_r_ea_d16 REG16EA r5, #21, #24 Line 544  imul_r_ea_d16 REG16EA r5, #21, #24
                                 mov             r0, r0, asr #16                                  mov             r0, r0, asr #16
                                 mul             r1, r0, r4                                  mul             r1, r0, r4
                                 add             r12, r1, #&8000                                  add             r12, r1, #&8000
                                 strh    r1, [r5, #CPU_REG]                                  strh    r1, [r6, #CPU_REG]
                                 movs    r12, r12 lsr #16                                  movs    r12, r12 lsr #16
                                 biceq   r8, r8, #O_FLAG                                  biceq   r8, r8, #O_FLAG
                                 biceq   r8, r8, #C_FLAG                                  biceq   r8, r8, #C_FLAG
Line 553  imul_r_ea_d16 REG16EA r5, #21, #24 Line 553  imul_r_ea_d16 REG16EA r5, #21, #24
                                 mov             pc, r11                                  mov             pc, r11
   
 push_d8                 CPUWORK #3  push_d8                 CPUWORK #3
                                 GETPC8                                  GETPCF8
                                 ldrh    r2, [r9, #CPU_SP]                                  ldrh    r2, [r9, #CPU_SP]
                                 ldr             r3, [r9, #CPU_SS_BASE]                                  ldr             r3, [r9, #CPU_SS_BASE]
                                 mov             r0, r0 lsl #24                                  mov             r0, r0 lsl #24
Line 565  push_d8   CPUWORK #3 Line 565  push_d8   CPUWORK #3
                                 mov             lr, r11                                  mov             lr, r11
                                 b               i286a_memorywrite_w                                  b               i286a_memorywrite_w
   
 imul_r_ea_d8    REG16EA r5, #21, #24  imul_r_ea_d8    REG16EA r6, #21, #24
                                 mov             r4, r0, lsl #16                                  mov             r4, r0, lsl #16
                                 GETPC8                                  GETPC8
                                 mov             r0, r0, lsl #24                                  mov             r0, r0, lsl #24
Line 573  imul_r_ea_d8 REG16EA r5, #21, #24 Line 573  imul_r_ea_d8 REG16EA r5, #21, #24
                                 mov             r0, r0, asr #24                                  mov             r0, r0, asr #24
                                 mul             r1, r0, r4                                  mul             r1, r0, r4
                                 add             r12, r1, #&8000                                  add             r12, r1, #&8000
                                 strh    r1, [r5, #CPU_REG]                                  strh    r1, [r6, #CPU_REG]
                                 movs    r12, r12 lsr #16                                  movs    r12, r12 lsr #16
                                 biceq   r8, r8, #O_FLAG                                  biceq   r8, r8, #O_FLAG
                                 biceq   r8, r8, #C_FLAG                                  biceq   r8, r8, #C_FLAG
Line 746  movear16_1  CPUWORK #5 Line 746  movear16_1  CPUWORK #5
                                 mov             lr, r11                                  mov             lr, r11
                                 b               i286a_memorywrite_w                                  b               i286a_memorywrite_w
   
 mov_r8_ea               REG8EA  r5, #2, #5  mov_r8_ea               REG8EA  r6, #2, #5
                                 strb    r0, [r5, #CPU_REG]                                  strb    r0, [r6, #CPU_REG]
                                 mov             pc, r11                                  mov             pc, r11
   
 mov_r16_ea              REG16EA r5, #2, #5  mov_r16_ea              REG16EA r6, #2, #5
                                 strh    r0, [r5, #CPU_REG]                                  strh    r0, [r6, #CPU_REG]
                                 mov             pc, r11                                  mov             pc, r11
   
 mov_ea_seg              GETPC8  mov_ea_seg              GETPCF8
                                 and             r1, r0, #(3 << 3)                                  and             r1, r0, #(3 << 3)
                                 add             r1, r9, r1 lsr #2                                  add             r1, r9, r1 lsr #2
                                 ldrh    r5, [r1, #CPU_SEG]                                  ldrh    r5, [r1, #CPU_SEG]
Line 771  measegm   CPUWORK #3 Line 771  measegm   CPUWORK #3
                                 b               i286a_memorywrite_w                                  b               i286a_memorywrite_w
   
 lea_r16_ea              CPUWORK #3  lea_r16_ea              CPUWORK #3
                                 GETPC8                                  GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             leareg                                  bcs             leareg
                                 R16DST  r0, r5                                  R16DST  r0, r5
Line 782  leareg   mov  r6, #6 Line 782  leareg   mov  r6, #6
                                 sub             r8, r8, #(2 << 16)                                  sub             r8, r8, #(2 << 16)
                                 b               i286a_localint                                  b               i286a_localint
   
 mov_seg_ea              GETPC8  mov_seg_ea              GETPCF8
                                 adr             r6, msegea_tbl                                  adr             r6, msegea_tbl
                                 and             r1, r0, #(3 << 3)                                  and             r1, r0, #(3 << 3)
                                 mov             r5, r8                                  mov             r5, r8
Line 820  msegea_cs  sub  r8, r5, #(2 << 16) Line 820  msegea_cs  sub  r8, r5, #(2 << 16)
                                 b               i286a_localint                                  b               i286a_localint
   
 pop_ea                  POP             #5  pop_ea                  POP             #5
                                 mov             r5, r0                                  mov             r6, r0
                                 GETPC8                                  GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             popreg                                  bcs             popreg
                                 bl              i286a_ea                                  bl              i286a_ea
                                 mov             r1, r5                                  mov             r1, r6
                                 mov             lr, r11                                  mov             lr, r11
                                 b               i286a_memorywrite_w                                  b               i286a_memorywrite_w
 popreg                  R16SRC  r0, r1  popreg                  R16SRC  r0, r1
Line 1157  ret_near  CPUWORK #11 Line 1157  ret_near  CPUWORK #11
                                 orr             r8, r8, r0 lsl #16                                  orr             r8, r8, r0 lsl #16
                                 mov             pc, r11                                  mov             pc, r11
   
 les_r16_ea              GETPC8  les_r16_ea              GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             lr16_r                                  bcs             lr16_r
                                 CPUWORK #3                                  CPUWORK #3
Line 1178  lr16_r   mov  r6, #6 Line 1178  lr16_r   mov  r6, #6
                                 sub             r8, r8, #(2 << 16)                                  sub             r8, r8, #(2 << 16)
                                 b               i286a_localint                                  b               i286a_localint
   
 lds_r16_ea              GETPC8  lds_r16_ea              GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             lr16_r                                  bcs             lr16_r
                                 CPUWORK #3                                  CPUWORK #3
Line 1197  lds_r16_ea  GETPC8 Line 1197  lds_r16_ea  GETPC8
                                 str             r1, [r9, #CPU_DS_FIX]                                  str             r1, [r9, #CPU_DS_FIX]
                                 mov             pc, r11                                  mov             pc, r11
   
 mov_ea8_d8              GETPC8  mov_ea8_d8              GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             med8_r                                  bcs             med8_r
                                 CPUWORK #3                                  CPUWORK #3
                                 bl              i286a_ea                                  bl              i286a_ea
                                 mov             r4, r0                                  mov             r4, r0
                                 GETPC8                                  GETPCF8
                                 mov             r1, r0                                  mov             r1, r0
                                 mov             r0, r4                                  mov             r0, r4
                                 mov             lr, r11                                  mov             lr, r11
                                 b               i286a_memorywrite                                  b               i286a_memorywrite
 med8_r                  CPUWORK #2  med8_r                  CPUWORK #2
                                 R8DST   r0, r4                                  R8DST   r0, r4
                                 GETPC8                                  GETPCF8
                                 strb    r0, [r4, #CPU_REG]                                  strb    r0, [r4, #CPU_REG]
                                 mov             pc, r11                                  mov             pc, r11
   
 mov_ea16_d16    GETPC8  mov_ea16_d16    GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 bcs             med16_r                                  bcs             med16_r
                                 CPUWORK #3                                  CPUWORK #3
Line 1349  int_03   CPUWORK #3 Line 1349  int_03   CPUWORK #3
                                 b               i286a_localint                                  b               i286a_localint
   
 int_d8                  CPUWORK #3  int_d8                  CPUWORK #3
                                 GETPC8                                  GETPCF8
                                 mov             r6, r0                                  mov             r6, r0
                                 b               i286a_localint                                  b               i286a_localint
   
Line 1394  iret_pic  dcd  pic Line 1394  iret_pic  dcd  pic
   
   
 aam                             CPUWORK #16  aam                             CPUWORK #16
                                 GETPC8                                  GETPCF8
                                 movs    r0, r0 lsl #7                                  movs    r0, r0 lsl #7
                                 beq             aamzero                                  beq             aamzero
                                 ldrb    r1, [r9, #CPU_AL]                                  ldrb    r1, [r9, #CPU_AL]
Line 1421  aamzero   sub  r8, r8, #(2 << 16) Line 1421  aamzero   sub  r8, r8, #(2 << 16)
                                 b               i286a_localint                                  b               i286a_localint
   
 aad                             CPUWORK #14  aad                             CPUWORK #14
                                 GETPC8                                  GETPCF8
                                 ldrh    r1, [r9, #CPU_AX]                                  ldrh    r1, [r9, #CPU_AX]
                                 bic             r8, r8, #(S_FLAG + Z_FLAG + P_FLAG)                                  bic             r8, r8, #(S_FLAG + Z_FLAG + P_FLAG)
                                 ;                                  ;
Line 1454  xlat   ldrb r0, [r9, #CPU_AL] Line 1454  xlat   ldrb r0, [r9, #CPU_AL]
                                 mov             pc, r11                                  mov             pc, r11
   
 esc                             CPUWORK #2  esc                             CPUWORK #2
                                 GETPC8                                  GETPCF8
                                 cmp             r0, #&c0                                  cmp             r0, #&c0
                                 movcs   pc, r11                                  movcs   pc, r11
                                 mov             lr, r11                                  mov             lr, r11
Line 1509  jcxz   ldrh r0, [r9, #CPU_CX] Line 1509  jcxz   ldrh r0, [r9, #CPU_CX]
 jcxzj                   JMPS    #8  jcxzj                   JMPS    #8
   
 in_al_d8                CPUWORK #5  in_al_d8                CPUWORK #5
                                 GETPC8                                  GETPCF8
                                 add             r3, r0, r8 lsr #16                                  add             r3, r0, r8 lsr #16
                                 CPUSV                                  CPUSV
                                 str             r3, [r9, #CPU_INPUT]                                  str             r3, [r9, #CPU_INPUT]
Line 1521  in_al_d8  CPUWORK #5 Line 1521  in_al_d8  CPUWORK #5
                                 mov             pc, r11                                  mov             pc, r11
   
 in_ax_d8                CPUWORK #5  in_ax_d8                CPUWORK #5
                                 GETPC8                                  GETPCF8
                                 CPUSV                                  CPUSV
                                 bl              iocore_inp16                                  bl              iocore_inp16
                                 CPULD                                  CPULD
Line 1529  in_ax_d8  CPUWORK #5 Line 1529  in_ax_d8  CPUWORK #5
                                 mov             pc, r11                                  mov             pc, r11
   
 out_d8_al               CPUWORK #3  out_d8_al               CPUWORK #3
                                 GETPC8                                  GETPCF8
                                 ldrb    r1, [r9, #CPU_AL]                                  ldrb    r1, [r9, #CPU_AL]
                                 CPUSV                                  CPUSV
                                 bl              iocore_out8                                  bl              iocore_out8
Line 1537  out_d8_al  CPUWORK #3 Line 1537  out_d8_al  CPUWORK #3
                                 mov             pc, r11                                  mov             pc, r11
   
 out_d8_ax               CPUWORK #3  out_d8_ax               CPUWORK #3
                                 GETPC8                                  GETPCF8
                                 ldrh    r1, [r9, #CPU_AX]                                  ldrh    r1, [r9, #CPU_AX]
                                 CPUSV                                  CPUSV
                                 bl              iocore_out16                                  bl              iocore_out16
Line 1699  i286a   stmdb sp!, {r4 - r11, lr} Line 1699  i286a   stmdb sp!, {r4 - r11, lr}
                                 bne             i286awithdma                                  bne             i286awithdma
                                 adr             r4, optbl1                                  adr             r4, optbl1
 i286a_lp                add             r0, r5, r8 lsr #16  i286a_lp                add             r0, r5, r8 lsr #16
                                 bl              i286a_memoryread                                  GETR0
                                 ldr             r1, [r4, r0 lsl #2]                                  ldr             r1, [r4, r0 lsl #2]
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 mov             r11, pc                                  mov             r11, pc
                                 mov             pc, r1                                  mov             pc, r1
                                 ldr             r7, [r9, #CPU_REMAINCLOCK]                                  CPUDBGL
                                 ldr             r5, [r9, #CPU_CS_BASE]                                  ldr             r5, [r9, #CPU_CS_BASE]
                                 adr             r4, optbl1                                  adr             r4, optbl1
                                 cmp             r7, #0                                  cmp             r7, #0
Line 1718  ias_r10   dcd  iflags Line 1718  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
                                 bl              i286a_memoryread                                  GETR0
                                 ldr             r1, [r4, r0 lsl #2]                                  ldr             r1, [r4, r0 lsl #2]
                                 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              dmap_i286
                                 ldr             r7, [r9, #CPU_REMAINCLOCK]                                  CPUDBGL
                                 ldr             r5, [r9, #CPU_CS_BASE]                                  ldr             r5, [r9, #CPU_CS_BASE]
                                 adr             r4, optbl1                                  adr             r4, optbl1
                                 cmp             r7, #0                                  cmp             r7, #0
Line 1734  i286awdma_lp add  r0, r5, r8 lsr #16 Line 1734  i286awdma_lp add  r0, r5, r8 lsr #16
   
 i286awithtrap   adr             r4, optbl1  i286awithtrap   adr             r4, optbl1
 i286awtrp_lp    add             r0, r5, r8 lsr #16  i286awtrp_lp    add             r0, r5, r8 lsr #16
                                 bl              i286a_memoryread                                  GETR0
                                 ldr             r1, [r4, r0 lsl #2]                                  ldr             r1, [r4, r0 lsl #2]
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 mov             r11, pc                                  mov             r11, pc
Line 2033  $label  ldr  r1, [r9, $b] Line 2033  $label  ldr  r1, [r9, $b]
                         add             r6, r6, #1                          add             r6, r6, #1
                         cmp             r6, #MAX_PREFIX                          cmp             r6, #MAX_PREFIX
                         bcs             prefix_fault                          bcs             prefix_fault
                         bl              i286a_memoryread                          GETR0
                         ldr             r1, [r4, r0 lsl #2]                          ldr             r1, [r4, r0 lsl #2]
                         add             r8, r8, #(1 << 16)                          add             r8, r8, #(1 << 16)
                         strb    r6, [r9, #CPU_PREFIX]                          strb    r6, [r9, #CPU_PREFIX]
Line 2070  repne   ldrb r6, [r9, #CPU_PREFIX] Line 2070  repne   ldrb r6, [r9, #CPU_PREFIX]
                                 add             r6, r6, #1                                  add             r6, r6, #1
                                 cmp             r6, #MAX_PREFIX                                  cmp             r6, #MAX_PREFIX
                                 bcs             prefix_fault                                  bcs             prefix_fault
                                 bl              i286a_memoryread                                  GETR0
                                 ldr             r1, [r4, r0 lsl #2]                                  ldr             r1, [r4, r0 lsl #2]
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 strb    r6, [r9, #CPU_PREFIX]                                  strb    r6, [r9, #CPU_PREFIX]
Line 2360  repe   ldrb r6, [r9, #CPU_PREFIX] Line 2360  repe   ldrb r6, [r9, #CPU_PREFIX]
                                 add             r6, r6, #1                                  add             r6, r6, #1
                                 cmp             r6, #MAX_PREFIX                                  cmp             r6, #MAX_PREFIX
                                 bcs             prefix_fault                                  bcs             prefix_fault
                                 bl              i286a_memoryread                                  GETR0
                                 ldr             r1, [r4, r0 lsl #2]                                  ldr             r1, [r4, r0 lsl #2]
                                 add             r8, r8, #(1 << 16)                                  add             r8, r8, #(1 << 16)
                                 strb    r6, [r9, #CPU_PREFIX]                                  strb    r6, [r9, #CPU_PREFIX]

Removed from v.1.14  
changed lines
  Added in v.1.15


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