|
|
| version 1.5, 2003/12/19 00:25:49 | version 1.7, 2003/12/20 10:27:55 |
|---|---|
| Line 2 | Line 2 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| IMPORT i286core | IMPORT i286core |
| IMPORT _szpcflag8 | IMPORT i286a_memoryread |
| IMPORT i286_memorywrite_w | IMPORT i286a_memorywrite_w |
| EXPORT i286a_localint | EXPORT i286a_localint |
| EXPORT i286a_trapint | EXPORT i286a_trapint |
| IMPORT i286a_trapintr | IMPORT i286a_trapintr |
| Line 19 i286a_localint ldrh r4, [r9, #CPU_SP] | Line 19 i286a_localint ldrh r4, [r9, #CPU_SP] |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 | mov r1, r8 |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| ldrh r1, [r9, #CPU_CS] | ldrh r1, [r9, #CPU_CS] |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 lsr #16 | mov r1, r8 lsr #16 |
| mov r4, r4 lsr #16 | mov r4, r4 lsr #16 |
| sub r8, r8, r1 lsl #16 | sub r8, r8, r1 lsl #16 |
| add r0, r4, r5 | add r0, r4, r5 |
| strh r4, [r9, #CPU_SP] | strh r4, [r9, #CPU_SP] |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| mov r0, #0 | mov r0, #0 |
| ldr r1, [r9, r6 lsl #2] | ldr r1, [r9, r6 lsl #2] |
| strb r0, [r9, #CPU_TRAP] | strb r0, [r9, #CPU_TRAP] |
| Line 49 i286a_trapint ldrh r4, [r9, #CPU_SP] | Line 49 i286a_trapint ldrh r4, [r9, #CPU_SP] |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 | mov r1, r8 |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| ldrh r1, [r9, #CPU_CS] | ldrh r1, [r9, #CPU_CS] |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 lsr #16 | mov r1, r8 lsr #16 |
| mov r4, r4 lsr #16 | mov r4, r4 lsr #16 |
| sub r8, r8, r1 lsl #16 | sub r8, r8, r1 lsl #16 |
| add r0, r4, r5 | add r0, r4, r5 |
| strh r4, [r9, #CPU_SP] | strh r4, [r9, #CPU_SP] |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| mov r0, #0 | mov r0, #0 |
| ldr r1, [r9, #4] | ldr r1, [r9, #4] |
| strb r0, [r9, #CPU_TRAP] | strb r0, [r9, #CPU_TRAP] |
| Line 73 i286a_trapint ldrh r4, [r9, #CPU_SP] | Line 73 i286a_trapint ldrh r4, [r9, #CPU_SP] |
| b i286a_trapintr | b i286a_trapintr |
| i286a_interrupt ldr r1, iai_r9 | |
| i286a_interrupt stmdb sp!, {r4 - r10, lr} | stmdb sp!, {r4 - r9, lr} |
| ldr r9, iai_r9 | mov r9, r1 |
| ldr r10, iai_r10 ; °ì±þ | |
| mov r6, r0 | mov r6, r0 |
| CPULD | CPULD |
| ldr r5, [r9, #CPU_CS_BASE] | |
| ldrh r4, [r9, #CPU_SP] | ldrh r4, [r9, #CPU_SP] |
| ldr r5, [r9, #CPU_SS_BASE] | |
| CPUWORK #20 | CPUWORK #20 |
| add r0, r5, r8 lsr #16 | |
| ldr r5, [r9, #CPU_SS_BASE] | |
| bl i286a_memoryread | |
| mov r4, r4 lsl #16 | mov r4, r4 lsl #16 |
| cmp r0, #&f4 | |
| addeq r8, r8, #(1 << 16) | |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 | mov r1, r8 |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| ldrh r1, [r9, #CPU_CS] | ldrh r1, [r9, #CPU_CS] |
| add r0, r5, r4 lsr #16 | add r0, r5, r4 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| sub r4, r4, #(2 << 16) | sub r4, r4, #(2 << 16) |
| mov r1, r8 lsr #16 | mov r1, r8 lsr #16 |
| mov r4, r4 lsr #16 | mov r4, r4 lsr #16 |
| sub r8, r8, r1 lsl #16 | sub r8, r8, r1 lsl #16 |
| add r0, r4, r5 | add r0, r4, r5 |
| strh r4, [r9, #CPU_SP] | strh r4, [r9, #CPU_SP] |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| mov r0, #0 | mov r0, #0 |
| ldr r1, [r9, r6 lsl #2] | ldr r1, [r9, r6 lsl #2] |
| strb r0, [r9, #CPU_TRAP] | strb r0, [r9, #CPU_TRAP] |
| Line 108 i286a_interrupt stmdb sp!, {r4 - r10, lr | Line 112 i286a_interrupt stmdb sp!, {r4 - r10, lr |
| strh r0, [r9, #CPU_CS] | strh r0, [r9, #CPU_CS] |
| str r2, [r9, #CPU_CS_BASE] | str r2, [r9, #CPU_CS_BASE] |
| CPUSVC | CPUSVC |
| ldmia sp!, {r4 - r11, pc} | ldmia sp!, {r4 - r9, pc} |
| iai_r9 dcd i286core - CPU_REG | iai_r9 dcd i286core + CPU_SIZE |
| iai_r10 dcd _szpcflag8 | |
| END | END |