|
|
| version 1.17, 2003/12/22 10:24:50 | version 1.21, 2004/01/07 06:53:47 |
|---|---|
| Line 918 pushf CPUWORK #3 | Line 918 pushf CPUWORK #3 |
| b i286a_memorywrite_w | b i286a_memorywrite_w |
| popf POP #5 | popf POP #5 |
| if 1 | |
| mov r8, r8 lsr #16 | |
| bic r1, r0, #&f000 ; i286 | |
| and r2, r0, #(I_FLAG + T_FLAG) | |
| orr r8, r1, r8 lsl #16 | |
| cmp r2, #(I_FLAG + T_FLAG) | |
| beq popf_withirq | |
| else | |
| mov r2, #3 | mov r2, #3 |
| mov r8, r8 lsr #16 | mov r8, r8 lsr #16 |
| and r2, r2, r0 lsr #8 | and r2, r2, r0 lsr #8 |
| Line 926 popf POP #5 | Line 934 popf POP #5 |
| orr r8, r1, r8 lsl #16 | orr r8, r1, r8 lsl #16 |
| strb r2, [r9, #CPU_TRAP] | strb r2, [r9, #CPU_TRAP] |
| bne popf_withirq | bne popf_withirq |
| endif | |
| ldr r0, popf_pic | ldr r0, popf_pic |
| NOINTREXIT | NOINTREXIT |
| popf_withirq I286IRQCHECKTERM | popf_withirq I286IRQCHECKTERM |
| Line 1372 iret bl extirq_pop | Line 1381 iret bl extirq_pop |
| add r4, r4, #2 | add r4, r4, #2 |
| bl i286a_memoryread_w | bl i286a_memoryread_w |
| strh r4, [r9, #CPU_SP] | strh r4, [r9, #CPU_SP] |
| if 1 | |
| bic r1, r0, #&f000 | |
| and r2, r0, #(I_FLAG + T_FLAG) | |
| orr r8, r1, r8 | |
| cmp r2, #(I_FLAG + T_FLAG) | |
| beq iret_withirq | |
| else | |
| mov r2, #3 | mov r2, #3 |
| bic r1, r0, #&f000 ; i286 | bic r1, r0, #&f000 ; i286 |
| and r2, r2, r0 lsr #8 | and r2, r2, r0 lsr #8 |
| Line 1379 iret bl extirq_pop | Line 1395 iret bl extirq_pop |
| ands r2, r2, r2 lsr #1 | ands r2, r2, r2 lsr #1 |
| strb r2, [r9, #CPU_TRAP] | strb r2, [r9, #CPU_TRAP] |
| bne iret_withirq | bne iret_withirq |
| endif | |
| ldr r0, iret_pic | ldr r0, iret_pic |
| NOINTREXIT | NOINTREXIT |
| iret_withirq I286IRQCHECKTERM | iret_withirq I286IRQCHECKTERM |
| Line 1496 jcxz ldrh r0, [r9, #CPU_CX] | Line 1513 jcxz ldrh r0, [r9, #CPU_CX] |
| mov pc, r11 | mov pc, r11 |
| jcxzj JMPS #8 | jcxzj JMPS #8 |
| in_al_d8 CPUWORK #5 | in_al_d8 GETPCF8 |
| GETPCF8 | CPUWORK #5 |
| add r3, r0, r8 lsr #16 | add r3, r5, r8 lsr #16 |
| CPUSV | CPUSV |
| str r3, [r9, #CPU_INPUT] | str r3, [r9, #CPU_INPUT] |
| bl iocore_inp8 | bl iocore_inp8 |
| Line 1621 stc CPUWORK #2 | Line 1638 stc CPUWORK #2 |
| mov pc, r11 | mov pc, r11 |
| cli CPUWORK #2 | cli CPUWORK #2 |
| if 1 | |
| bic r8, r8, #I_FLAG | |
| else | |
| mov r0, #0 | mov r0, #0 |
| bic r8, r8, #I_FLAG | bic r8, r8, #I_FLAG |
| strb r0, [r9, #CPU_TRAP] | strb r0, [r9, #CPU_TRAP] |
| endif | |
| mov pc, r11 | mov pc, r11 |
| sti CPUWORK #2 | sti CPUWORK #2 |
| tst r8, #I_FLAG | tst r8, #I_FLAG |
| bne sti_noirq | bne sti_noirq |
| sti_set orr r8, r8, #I_FLAG | sti_set orr r8, r8, #I_FLAG |
| if 1 | |
| ldr r0, sti_pic | |
| tst r8, #T_FLAG | |
| bne sti_withirq | |
| else | |
| mov r1, #(T_FLAG >> 8) | mov r1, #(T_FLAG >> 8) |
| ands r1, r1, r8 lsr #8 | ands r1, r1, r8 lsr #8 |
| ldr r0, sti_pic | ldr r0, sti_pic |
| strneb r1, [r9, #CPU_TRAP] | strneb r1, [r9, #CPU_TRAP] |
| bne sti_withirq | bne sti_withirq |
| endif | |
| PICEXISTINTR sti_noirq | PICEXISTINTR sti_noirq |
| bne sti_withirq | bne sti_withirq |
| sti_noirq NEXT_OPCODE | sti_noirq NEXT_OPCODE |
| Line 1678 i286a stmdb sp!, {r4 - r11, lr} | Line 1705 i286a stmdb sp!, {r4 - r11, lr} |
| ldr r10, ias_r10 | ldr r10, ias_r10 |
| CPULD | CPULD |
| ldr r5, [r9, #CPU_CS_BASE] | ldr r5, [r9, #CPU_CS_BASE] |
| ldr r1, [r2, #DMAC_WORKING] | ldrb r1, [r2, #DMAC_WORKING] |
| 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 i286awithtrap | beq i286awithtrap |