--- np2/i286a/i286a_8x.s 2003/12/17 03:46:27 1.2 +++ np2/i286a/i286a_8x.s 2004/07/17 20:43:02 1.11 @@ -1,42 +1,44 @@ INCLUDE i286a.inc + INCLUDE i286aea.inc INCLUDE i286aalu.inc - IMPORT _szpcflag8 IMPORT i286a_ea - IMPORT i286_memoryread - IMPORT i286_memoryread_w - IMPORT i286_memorywrite - IMPORT i286_memorywrite_w - - EXPORT i286a_80 - EXPORT i286a_81 - EXPORT i286a_83 + IMPORT i286a_memoryread + IMPORT i286a_memoryread_w + IMPORT i286a_memorywrite + IMPORT i286a_memorywrite_w + + EXPORT i286aop80 + EXPORT i286aop81 + EXPORT i286aop83 AREA .text, CODE, READONLY -i286a_80 GETPC8 +i286aop80 GETPCF8 and r6, r0, #(7 << 3) cmp r0, #&c0 bcc ope80m CPUWORK #3 - R8SRC r0, r5 - add r5, r5, #CPU_REG + R8SRC r0, r4 + add r4, r4, #CPU_REG GETPC8 adr r1, op8x_reg8 + ldrb r5, [r4] ldr pc, [r1, r6 lsr #1] ope80m CPUWORK #7 bl i286a_ea cmp r0, #I286_MEMWRITEMAX bcs ope80e - add r5, r9, r0 + add r4, r9, r0 GETPC8 adr r1, op8x_reg8 + ldrb r5, [r4] ldr pc, [r1, r6 lsr #1] -ope80e mov r4, r0 +ope80e mov r5, r0 + bl i286a_memoryread + mov r4, r0 GETPC8 - mov r5, r0 - bl i286_memoryread adr r1, op8x_ext8 ldr pc, [r1, r6 lsr #1] @@ -58,129 +60,119 @@ op8x_ext8 dcd add_r8_e dcd xor_r8_e dcd cmp_r8_e -add_r8_i ldrb r6, [r5] - ADD8 r6, r0 - strb r1, [r5] +add_r8_i ADD8 r5, r0 + strb r1, [r4] mov pc, r11 -or_r8_i ldrb r6, [r5] - OR8 r6, r0 - strb r1, [r5] +or_r8_i OR8 r5, r0 + strb r1, [r4] mov pc, r11 -adc_r8_i ldrb r6, [r5] - ADC8 r6, r0 - strb r1, [r5] +adc_r8_i ADC8 r5, r0 + strb r1, [r4] mov pc, r11 -sbb_r8_i ldrb r6, [r5] - SBB8 r6, r0 - strb r1, [r5] +sbb_r8_i SBB8 r5, r0 + strb r1, [r4] mov pc, r11 -and_r8_i ldrb r6, [r5] - AND8 r6, r0 - strb r1, [r5] +and_r8_i AND8 r5, r0 + strb r1, [r4] mov pc, r11 -sub_r8_i ldrb r6, [r5] - SUB8 r6, r0 - strb r1, [r5] +sub_r8_i SUB8 r5, r0 + strb r1, [r4] mov pc, r11 -xor_r8_i ldrb r6, [r5] - XOR8 r6, r0 - strb r1, [r5] +xor_r8_i XOR8 r5, r0 + strb r1, [r4] mov pc, r11 -cmp_r8_i ldrb r6, [r5] - SUB8 r6, r0 +cmp_r8_i SUB8 r5, r0 mov pc, r11 -add_r8_e ADD8 r0, r4 +add_r8_e ADD8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -or_r8_e OR8 r0, r4 + b i286a_memorywrite +or_r8_e OR8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -adc_r8_e ADC8 r0, r4 + b i286a_memorywrite +adc_r8_e ADC8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -sbb_r8_e SBB8 r0, r4 + b i286a_memorywrite +sbb_r8_e SBB8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -and_r8_e AND8 r0, r4 + b i286a_memorywrite +and_r8_e AND8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -sub_r8_e SUB8 r0, r4 + b i286a_memorywrite +sub_r8_e SUB8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -xor_r8_e XOR8 r0, r4 + b i286a_memorywrite +xor_r8_e XOR8 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite -cmp_r8_e SUB8 r0, r4 + b i286a_memorywrite +cmp_r8_e SUB8 r4, r0 mov pc, r11 ; ---- -i286a_81 GETPC8 +i286aop81 GETPCF8 and r6, r0, #(7 << 3) cmp r0, #&c0 bcc ope81m CPUWORK #3 - R16SRC r0, r5 - add r5, r5, #CPU_REG + R16SRC r0, r4 + add r4, r4, #CPU_REG GETPC16 adr r1, op8x_reg16 + ldrh r5, [r4] ldr pc, [r1, r6 lsr #1] ope81m CPUWORK #7 bl i286a_ea - tst r0, #1 - bne ope81e - cmp r0, #I286_MEMWRITEMAX - bcs ope81e - add r5, r9, r0 + ACCWORD r0, ope81e + add r4, r9, r0 GETPC16 adr r1, op8x_reg16 + ldrh r5, [r4] ldr pc, [r1, r6 lsr #1] -ope81e mov r4, r0 +ope81e mov r5, r0 + bl i286a_memoryread_w + mov r4, r0 GETPC16 - mov r5, r0 - bl i286_memoryread_w adr r1, op8x_ext16 ldr pc, [r1, r6 lsr #1] -i286a_83 GETPC8 +i286aop83 GETPCF8 and r6, r0, #(7 << 3) cmp r0, #&c0 bcc ope83m CPUWORK #3 - R16SRC r0, r5 - add r5, r5, #CPU_REG + R16SRC r0, r4 + add r4, r4, #CPU_REG GETPC8 tst r0, #(1 << 7) orrne r0, r0, #(&ff << 8) adr r1, op8x_reg16 + ldrh r5, [r4] ldr pc, [r1, r6 lsr #1] ope83m CPUWORK #7 bl i286a_ea - tst r0, #1 - bne ope83e - cmp r0, #I286_MEMWRITEMAX - bcs ope83e - add r5, r9, r0 + ACCWORD r0, ope83e + add r4, r9, r0 GETPC8 tst r0, #(1 << 7) orrne r0, r0, #(&ff << 8) adr r1, op8x_reg16 + ldrh r5, [r4] ldr pc, [r1, r6 lsr #1] -ope83e mov r4, r0 +ope83e mov r5, r0 + bl i286a_memoryread_w + mov r4, r0 GETPC8 - mov r5, r0 tst r0, #(1 << 7) - orrne r5, r5, #(&ff << 8) - bl i286_memoryread_w + orrne r0, r0, #(&ff << 8) adr r1, op8x_ext16 ldr pc, [r1, r6 lsr #1] @@ -202,67 +194,59 @@ op8x_ext16 dcd add_r16_e dcd xor_r16_e dcd cmp_r16_e -add_r16_i ldrh r6, [r5] - ADD16 r6, r0 - strh r1, [r5] +add_r16_i ADD16 r5, r0 + strh r1, [r4] mov pc, r11 -or_r16_i ldrh r6, [r5] - OR16 r6, r0 - strh r1, [r5] +or_r16_i OR16 r5, r0 + strh r1, [r4] mov pc, r11 -adc_r16_i ldrh r6, [r5] - ADC16 r6, r0 - strh r1, [r5] +adc_r16_i ADC16 r5, r0 + strh r1, [r4] mov pc, r11 -sbb_r16_i ldrh r6, [r5] - SBB16 r6, r0 - strh r1, [r5] +sbb_r16_i SBB16 r5, r0 + strh r1, [r4] mov pc, r11 -and_r16_i ldrh r6, [r5] - AND16 r6, r0 - strh r1, [r5] +and_r16_i AND16 r5, r0 + strh r1, [r4] mov pc, r11 -sub_r16_i ldrh r6, [r5] - SUB16 r6, r0 - strh r1, [r5] +sub_r16_i SUB16 r5, r0 + strh r1, [r4] mov pc, r11 -xor_r16_i ldrh r6, [r5] - XOR16 r6, r0 - strh r1, [r5] +xor_r16_i XOR16 r5, r0 + strh r1, [r4] mov pc, r11 -cmp_r16_i ldrh r6, [r5] - SUB16 r6, r0 +cmp_r16_i SUB16 r5, r0 mov pc, r11 -add_r16_e ADD16 r0, r4 +add_r16_e ADD16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -or_r16_e OR16 r0, r4 + b i286a_memorywrite_w +or_r16_e OR16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -adc_r16_e ADC16 r0, r4 + b i286a_memorywrite_w +adc_r16_e ADC16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -sbb_r16_e SBB16 r0, r4 + b i286a_memorywrite_w +sbb_r16_e SBB16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -and_r16_e AND16 r0, r4 + b i286a_memorywrite_w +and_r16_e AND16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -sub_r16_e SUB16 r0, r4 + b i286a_memorywrite_w +sub_r16_e SUB16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -xor_r16_e XOR16 r0, r4 + b i286a_memorywrite_w +xor_r16_e XOR16 r4, r0 mov r0, r5 mov lr, r11 - b i286_memorywrite_w -cmp_r16_e SUB16 r0, r4 + b i286a_memorywrite_w +cmp_r16_e SUB16 r4, r0 mov pc, r11 END