|
|
| version 1.4, 2003/12/18 13:21:32 | version 1.6, 2003/12/19 00:25:49 |
|---|---|
| Line 1 | Line 1 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| INCLUDE i286aea.inc | |
| INCLUDE i286aalu.inc | INCLUDE i286aalu.inc |
| INCLUDE i286aop.inc | INCLUDE i286aop.inc |
| IMPORT i286a_ea | IMPORT i286a_ea |
| IMPORT i286a_a | IMPORT i286a_a |
| 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 |
| IMPORT i286a_localint | IMPORT i286a_localint |
| EXPORT i286aopfe | EXPORT i286aopfe |
| Line 52 callea16 cmp r0, #&c0 | Line 53 callea16 cmp r0, #&c0 |
| b call16e | b call16e |
| call16m CPUWORK #11 | call16m CPUWORK #11 |
| bl i286a_ea | bl i286a_ea |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r1, r8 lsr #16 | mov r1, r8 lsr #16 |
| sub r8, r8, r1 lsl #16 | sub r8, r8, r1 lsl #16 |
| orr r8, r8, r0 lsl #16 | orr r8, r8, r0 lsl #16 |
| Line 63 call16e ldrh r2, [r9, #CPU_SP] | Line 64 call16e ldrh r2, [r9, #CPU_SP] |
| strh r2, [r9, #CPU_SP] | strh r2, [r9, #CPU_SP] |
| add r0, r2, r3 | add r0, r2, r3 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| callfarea16 cmp r0, #&c0 | callfarea16 cmp r0, #&c0 |
| bcs callfar16r | bcs callfar16r |
| Line 72 callfarea16 cmp r0, #&c0 | Line 73 callfarea16 cmp r0, #&c0 |
| add r4, r0, #2 | add r4, r0, #2 |
| add r0, r0, r6 | add r0, r0, r6 |
| bic r4, r4, #(1 << 16) | bic r4, r4, #(1 << 16) |
| bl i286_memoryread_w ; ip | bl i286a_memoryread_w ; ip |
| mov r5, r8 lsr #16 | mov r5, r8 lsr #16 |
| add r8, r8, r0 lsl #16 | add r8, r8, r0 lsl #16 |
| sub r8, r8, r5 lsl #16 | sub r8, r8, r5 lsl #16 |
| add r0, r4, r6 | add r0, r4, r6 |
| bl i286_memoryread_w ; cs | bl i286a_memoryread_w ; cs |
| mov r2, r0 lsl #4 | mov r2, r0 lsl #4 |
| ldrh r1, [r9, #CPU_CS] | ldrh r1, [r9, #CPU_CS] |
| strh r0, [r9, #CPU_CS] | strh r0, [r9, #CPU_CS] |
| Line 87 callfarea16 cmp r0, #&c0 | Line 88 callfarea16 cmp r0, #&c0 |
| subs r4, r4, #2 | subs r4, r4, #2 |
| addcc r4, r4, #&10000 | addcc r4, r4, #&10000 |
| add r0, r4, r6 | add r0, r4, r6 |
| bl i286_memorywrite_w ; cs | bl i286a_memorywrite_w ; cs |
| subs r4, r4, #2 | subs r4, r4, #2 |
| addcc r4, r4, #&10000 | addcc r4, r4, #&10000 |
| mov r1, r5 | mov r1, r5 |
| strh r4, [r9, #CPU_SP] | strh r4, [r9, #CPU_SP] |
| add r0, r4, r6 | add r0, r4, r6 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w ; ip | b i286a_memorywrite_w ; ip |
| callfar16r mov r6, #6 | callfar16r mov r6, #6 |
| sub r8, r8, #(2 << 16) | sub r8, r8, #(2 << 16) |
| b i286a_localint | b i286a_localint |
| Line 110 jmpea16 cmp r0, #&c0 | Line 111 jmpea16 cmp r0, #&c0 |
| mov pc, r11 | mov pc, r11 |
| jmp16m CPUWORK #11 | jmp16m CPUWORK #11 |
| bl i286a_ea | bl i286a_ea |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r8, r8 lsl #16 | mov r8, r8 lsl #16 |
| mov r8, r8 lsr #16 | mov r8, r8 lsr #16 |
| orr r8, r8, r0 lsl #16 | orr r8, r8, r0 lsl #16 |
| Line 123 jmpfarea16 cmp r0, #&c0 | Line 124 jmpfarea16 cmp r0, #&c0 |
| add r4, r0, #2 | add r4, r0, #2 |
| add r0, r0, r6 | add r0, r0, r6 |
| bic r4, r4, #(1 << 16) | bic r4, r4, #(1 << 16) |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r8, r8 lsl #16 | mov r8, r8 lsl #16 |
| mov r8, r8 lsr #16 | mov r8, r8 lsr #16 |
| orr r8, r8, r0 lsl #16 | orr r8, r8, r0 lsl #16 |
| add r0, r4, r6 | add r0, r4, r6 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r1, r0 lsl #4 | mov r1, r0 lsl #4 |
| strh r0, [r9, #CPU_CS] | strh r0, [r9, #CPU_CS] |
| str r1, [r9, #CPU_CS_BASE] | str r1, [r9, #CPU_CS_BASE] |
| Line 145 pushea16 cmp r0, #&c0 | Line 146 pushea16 cmp r0, #&c0 |
| b push16e | b push16e |
| push16m CPUWORK #5 | push16m CPUWORK #5 |
| bl i286a_ea | bl i286a_ea |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r1, r0 | mov r1, r0 |
| push16e ldrh r2, [r9, #CPU_SP] | push16e ldrh r2, [r9, #CPU_SP] |
| ldr r3, [r9, #CPU_SS_BASE] | ldr r3, [r9, #CPU_SS_BASE] |
| Line 154 push16e ldrh r2, [r9, #CPU_SP] | Line 155 push16e ldrh r2, [r9, #CPU_SP] |
| strh r2, [r9, #CPU_SP] | strh r2, [r9, #CPU_SP] |
| add r0, r2, r3 | add r0, r2, r3 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| popea16 CPUWORK #5 | popea16 CPUWORK #5 |
| ldrh r2, [r9, #CPU_SP] | ldrh r2, [r9, #CPU_SP] |
| Line 164 popea16 CPUWORK #5 | Line 165 popea16 CPUWORK #5 |
| add r2, r2, #2 | add r2, r2, #2 |
| bic r2, r2, #&10000 | bic r2, r2, #&10000 |
| strh r2, [r9, #CPU_SP] | strh r2, [r9, #CPU_SP] |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| cmp r6, #&c0 | cmp r6, #&c0 |
| bcc pop16m | bcc pop16m |
| R16SRC r6, r1 | R16SRC r6, r1 |
| ldrh r0, [r1, #CPU_REG] | strh r0, [r1, #CPU_REG] |
| mov pc, r11 | mov pc, r11 |
| pop16m mov r5, r0 | pop16m mov r5, r0 |
| mov r0, r6 | mov r0, r6 |
| bl i286a_ea | bl i286a_ea |
| mov r1, r5 | mov r1, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memoryread_w | b i286a_memoryread_w |
| END | END |