|
|
| version 1.3, 2003/12/17 10:41:06 | version 1.10, 2003/12/22 10:24:50 |
|---|---|
| Line 1 | Line 1 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| INCLUDE i286aea.inc | |
| INCLUDE i286aalu.inc | INCLUDE i286aalu.inc |
| IMPORT _szpcflag8 | |
| IMPORT i286a_ea | IMPORT i286a_ea |
| IMPORT i286_memoryread | IMPORT i286a_memoryread |
| IMPORT i286_memoryread_w | IMPORT i286a_memoryread_w |
| IMPORT i286_memorywrite | IMPORT i286a_memorywrite |
| IMPORT i286_memorywrite_w | IMPORT i286a_memorywrite_w |
| EXPORT i286aop80 | EXPORT i286aop80 |
| EXPORT i286aop81 | EXPORT i286aop81 |
| Line 15 | Line 15 |
| AREA .text, CODE, READONLY | AREA .text, CODE, READONLY |
| i286aop80 GETPC8 | i286aop80 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc ope80m | bcc ope80m |
| CPUWORK #3 | CPUWORK #3 |
| R8SRC r0, r5 | R8SRC r0, r4 |
| add r5, r5, #CPU_REG | add r4, r4, #CPU_REG |
| GETPC8 | GETPC8 |
| adr r1, op8x_reg8 | adr r1, op8x_reg8 |
| ldrb r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope80m CPUWORK #7 | ope80m CPUWORK #7 |
| bl i286a_ea | bl i286a_ea |
| cmp r0, #I286_MEMWRITEMAX | cmp r0, #I286_MEMWRITEMAX |
| bcs ope80e | bcs ope80e |
| add r5, r9, r0 | add r4, r9, r0 |
| GETPC8 | GETPC8 |
| adr r1, op8x_reg8 | adr r1, op8x_reg8 |
| ldrb r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope80e mov r4, r0 | ope80e mov r5, r0 |
| bl i286a_memoryread | |
| mov r4, r0 | |
| GETPC8 | GETPC8 |
| mov r5, r0 | |
| bl i286_memoryread | |
| adr r1, op8x_ext8 | adr r1, op8x_ext8 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 58 op8x_ext8 dcd add_r8_e | Line 60 op8x_ext8 dcd add_r8_e |
| dcd xor_r8_e | dcd xor_r8_e |
| dcd cmp_r8_e | dcd cmp_r8_e |
| add_r8_i ldrb r6, [r5] | add_r8_i ADD8 r5, r0 |
| ADD8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| or_r8_i ldrb r6, [r5] | or_r8_i OR8 r5, r0 |
| OR8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| adc_r8_i ldrb r6, [r5] | adc_r8_i ADC8 r5, r0 |
| ADC8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| sbb_r8_i ldrb r6, [r5] | sbb_r8_i SBB8 r5, r0 |
| SBB8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| and_r8_i ldrb r6, [r5] | and_r8_i AND8 r5, r0 |
| AND8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| sub_r8_i ldrb r6, [r5] | sub_r8_i SUB8 r5, r0 |
| SUB8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| xor_r8_i ldrb r6, [r5] | xor_r8_i XOR8 r5, r0 |
| XOR8 r6, r0 | strb r1, [r4] |
| strb r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| cmp_r8_i ldrb r6, [r5] | cmp_r8_i SUB8 r5, r0 |
| SUB8 r6, r0 | |
| mov pc, r11 | mov pc, r11 |
| add_r8_e ADD8 r0, r4 | add_r8_e ADD8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| or_r8_e OR8 r0, r4 | or_r8_e OR8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| adc_r8_e ADC8 r0, r4 | adc_r8_e ADC8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| sbb_r8_e SBB8 r0, r4 | sbb_r8_e SBB8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| and_r8_e AND8 r0, r4 | and_r8_e AND8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| sub_r8_e SUB8 r0, r4 | sub_r8_e SUB8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| xor_r8_e XOR8 r0, r4 | xor_r8_e XOR8 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| cmp_r8_e SUB8 r0, r4 | cmp_r8_e SUB8 r4, r0 |
| mov pc, r11 | mov pc, r11 |
| ; ---- | ; ---- |
| i286aop81 GETPC8 | i286aop81 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc ope81m | bcc ope81m |
| CPUWORK #3 | CPUWORK #3 |
| R16SRC r0, r5 | R16SRC r0, r4 |
| add r5, r5, #CPU_REG | add r4, r4, #CPU_REG |
| GETPC16 | GETPC16 |
| adr r1, op8x_reg16 | adr r1, op8x_reg16 |
| ldrh r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope81m CPUWORK #7 | ope81m CPUWORK #7 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | WORDACC r0, ope81e |
| bne ope81e | add r4, r9, r0 |
| cmp r0, #I286_MEMWRITEMAX | |
| bcs ope81e | |
| add r5, r9, r0 | |
| GETPC16 | GETPC16 |
| adr r1, op8x_reg16 | adr r1, op8x_reg16 |
| ldrh r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope81e mov r5, r0 | ope81e mov r5, r0 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r4, r0 | mov r4, r0 |
| GETPC16 | GETPC16 |
| adr r1, op8x_ext16 | adr r1, op8x_ext16 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| i286aop83 GETPC8 | i286aop83 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc ope83m | bcc ope83m |
| CPUWORK #3 | CPUWORK #3 |
| R16SRC r0, r5 | R16SRC r0, r4 |
| add r5, r5, #CPU_REG | add r4, r4, #CPU_REG |
| GETPC8 | GETPC8 |
| tst r0, #(1 << 7) | tst r0, #(1 << 7) |
| orrne r0, r0, #(&ff << 8) | orrne r0, r0, #(&ff << 8) |
| adr r1, op8x_reg16 | adr r1, op8x_reg16 |
| ldrh r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope83m CPUWORK #7 | ope83m CPUWORK #7 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | WORDACC r0, ope83e |
| bne ope83e | add r4, r9, r0 |
| cmp r0, #I286_MEMWRITEMAX | |
| bcs ope83e | |
| add r5, r9, r0 | |
| GETPC8 | GETPC8 |
| tst r0, #(1 << 7) | tst r0, #(1 << 7) |
| orrne r0, r0, #(&ff << 8) | orrne r0, r0, #(&ff << 8) |
| adr r1, op8x_reg16 | adr r1, op8x_reg16 |
| ldrh r5, [r4] | |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| ope83e mov r5, r0 | ope83e mov r5, r0 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r4, r0 | mov r4, r0 |
| GETPC8 | GETPC8 |
| tst r0, #(1 << 7) | tst r0, #(1 << 7) |
| Line 202 op8x_ext16 dcd add_r16_e | Line 194 op8x_ext16 dcd add_r16_e |
| dcd xor_r16_e | dcd xor_r16_e |
| dcd cmp_r16_e | dcd cmp_r16_e |
| add_r16_i ldrh r6, [r5] | add_r16_i ADD16 r5, r0 |
| ADD16 r6, r0 | strh r1, [r4] |
| strh r1, [r5] | mov pc, r11 |
| mov pc, r11 | or_r16_i OR16 r5, r0 |
| or_r16_i ldrh r6, [r5] | strh r1, [r4] |
| OR16 r6, r0 | mov pc, r11 |
| strh r1, [r5] | adc_r16_i ADC16 r5, r0 |
| mov pc, r11 | strh r1, [r4] |
| adc_r16_i ldrh r6, [r5] | mov pc, r11 |
| ADC16 r6, r0 | sbb_r16_i SBB16 r5, r0 |
| strh r1, [r5] | strh r1, [r4] |
| mov pc, r11 | mov pc, r11 |
| sbb_r16_i ldrh r6, [r5] | and_r16_i AND16 r5, r0 |
| SBB16 r6, r0 | strh r1, [r4] |
| strh r1, [r5] | mov pc, r11 |
| mov pc, r11 | sub_r16_i SUB16 r5, r0 |
| and_r16_i ldrh r6, [r5] | strh r1, [r4] |
| AND16 r6, r0 | mov pc, r11 |
| strh r1, [r5] | xor_r16_i XOR16 r5, r0 |
| mov pc, r11 | strh r1, [r4] |
| sub_r16_i ldrh r6, [r5] | |
| SUB16 r6, r0 | |
| strh r1, [r5] | |
| mov pc, r11 | |
| xor_r16_i ldrh r6, [r5] | |
| XOR16 r6, r0 | |
| strh r1, [r5] | |
| mov pc, r11 | mov pc, r11 |
| cmp_r16_i ldrh r6, [r5] | cmp_r16_i SUB16 r5, r0 |
| SUB16 r6, r0 | |
| mov pc, r11 | mov pc, r11 |
| add_r16_e ADD16 r4, r0 | add_r16_e ADD16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| or_r16_e OR16 r4, r0 | or_r16_e OR16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| adc_r16_e ADC16 r4, r0 | adc_r16_e ADC16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| sbb_r16_e SBB16 r4, r0 | sbb_r16_e SBB16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| and_r16_e AND16 r4, r0 | and_r16_e AND16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| sub_r16_e SUB16 r4, r0 | sub_r16_e SUB16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| xor_r16_e XOR16 r4, r0 | xor_r16_e XOR16 r4, r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| cmp_r16_e SUB16 r4, r0 | cmp_r16_e SUB16 r4, r0 |
| mov pc, r11 | mov pc, r11 |