|
|
| version 1.3, 2003/12/17 14:04:43 | version 1.7, 2003/12/22 10:24:50 |
|---|---|
| Line 1 | Line 1 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| INCLUDE i286aea.inc | |
| INCLUDE i286asft.inc | INCLUDE i286asft.inc |
| 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 i286asft8_1 | EXPORT i286asft8_1 |
| EXPORT i286asft16_1 | EXPORT i286asft16_1 |
| Line 17 | Line 18 |
| AREA .text, CODE, READONLY | AREA .text, CODE, READONLY |
| i286asft8_1 GETPC8 | i286asft8_1 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft8m | bcc sft8m |
| Line 36 sft8m CPUWORK #7 | Line 37 sft8m CPUWORK #7 |
| ldrb r4, [r5] | ldrb r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft8e mov r5, r0 | sft8e mov r5, r0 |
| bl i286_memoryread | bl i286a_memoryread |
| adr r1, sft_ext8 | adr r1, sft_ext8 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 83 sar_r8_1 SAR8 r4 | Line 84 sar_r8_1 SAR8 r4 |
| rol_e8_1 ROL8 r0 | rol_e8_1 ROL8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| ror_e8_1 ROR8 r0 | ror_e8_1 ROR8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| rcl_e8_1 RCL8 r0 | rcl_e8_1 RCL8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| rcr_e8_1 RCR8 r0 | rcr_e8_1 RCR8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| shl_e8_1 SHL8 r0 | shl_e8_1 SHL8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| shr_e8_1 SHR8 r0 | shr_e8_1 SHR8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| sar_e8_1 SAR8 r0 | sar_e8_1 SAR8 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| ; ---- | ; ---- |
| i286asft16_1 GETPC8 | i286asft16_1 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft16m | bcc sft16m |
| Line 124 i286asft16_1 GETPC8 | Line 125 i286asft16_1 GETPC8 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16m CPUWORK #7 | sft16m CPUWORK #7 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | WORDACC r0, sft16e |
| bne sft16e | |
| cmp r0, #I286_MEMWRITEMAX | |
| bcs sft16e | |
| add r5, r9, r0 | add r5, r9, r0 |
| adr r1, sft_reg16 | adr r1, sft_reg16 |
| ldrh r4, [r5] | ldrh r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16e mov r5, r0 | sft16e mov r5, r0 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| adr r1, sft_ext16 | adr r1, sft_ext16 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 180 sar_r16_1 SAR16 r4 | Line 178 sar_r16_1 SAR16 r4 |
| rol_e16_1 ROL16 r0 | rol_e16_1 ROL16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| ror_e16_1 ROR16 r0 | ror_e16_1 ROR16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| rcl_e16_1 RCL16 r0 | rcl_e16_1 RCL16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| rcr_e16_1 RCR16 r0 | rcr_e16_1 RCR16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| shl_e16_1 SHL16 r0 | shl_e16_1 SHL16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| shr_e16_1 SHR16 r0 | shr_e16_1 SHR16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| sar_e16_1 SAR16 r0 | sar_e16_1 SAR16 r0 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| ; ---- | ; ---- |
| i286asft8_cl GETPC8 | i286asft8_cl GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft8clm | bcc sft8clm |
| Line 237 sft8cle ldrb r4, [r9, #CPU_CL] | Line 235 sft8cle ldrb r4, [r9, #CPU_CL] |
| ands r4, r4, #&1f | ands r4, r4, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| mov r5, r0 | mov r5, r0 |
| bl i286_memoryread | bl i286a_memoryread |
| adr r1, sft_ext8cl | adr r1, sft_ext8cl |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| i286asft8_d8 GETPC8 | i286asft8_d8 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft8d8m | bcc sft8d8m |
| Line 270 sft8d8e mov r5, r0 | Line 268 sft8d8e mov r5, r0 |
| ands r4, r0, #&1f | ands r4, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| mov r0, r5 | mov r0, r5 |
| bl i286_memoryread | bl i286a_memoryread |
| adr r1, sft_ext8cl | adr r1, sft_ext8cl |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 317 sar_r8_cl SAR8CL r4, r0 | Line 315 sar_r8_cl SAR8CL r4, r0 |
| rol_e8_cl ROL8CL r0, r4 | rol_e8_cl ROL8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| ror_e8_cl ROR8CL r0, r4 | ror_e8_cl ROR8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| rcl_e8_cl RCL8CL r0, r4 | rcl_e8_cl RCL8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| rcr_e8_cl RCR8CL r0, r4 | rcr_e8_cl RCR8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| shl_e8_cl SHL8CL r0, r4 | shl_e8_cl SHL8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| shr_e8_cl SHR8CL r0, r4 | shr_e8_cl SHR8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| sar_e8_cl SAR8CL r0, r4 | sar_e8_cl SAR8CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite | b i286a_memorywrite |
| ; ---- | ; ---- |
| i286asft16_cl GETPC8 | i286asft16_cl GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft16clm | bcc sft16clm |
| Line 362 i286asft16_cl GETPC8 | Line 360 i286asft16_cl GETPC8 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16clm CPUWORK #8 | sft16clm CPUWORK #8 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | WORDACC r0, sft16cle |
| bne sft16cle | |
| cmp r0, #I286_MEMWRITEMAX | |
| bcs sft16cle | |
| add r5, r9, r0 | add r5, r9, r0 |
| ldrb r0, [r9, #CPU_CL] | ldrb r0, [r9, #CPU_CL] |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| Line 379 sft16cle ldrb r4, [r9, #CPU_CL] | Line 374 sft16cle ldrb r4, [r9, #CPU_CL] |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r4 | CPUWORK r4 |
| mov r5, r0 | mov r5, r0 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| adr r1, sft_ext16cl | adr r1, sft_ext16cl |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| i286asft16_d8 GETPC8 | i286asft16_d8 GETPCF8 |
| and r6, r0, #(7 << 3) | and r6, r0, #(7 << 3) |
| cmp r0, #&c0 | cmp r0, #&c0 |
| bcc sft16d8m | bcc sft16d8m |
| Line 399 i286asft16_d8 GETPC8 | Line 394 i286asft16_d8 GETPC8 |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16d8m CPUWORK #8 | sft16d8m CPUWORK #8 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | WORDACC r0, sft16d8e |
| bne sft16d8e | |
| cmp r0, #I286_MEMWRITEMAX | |
| bcs sft16d8e | |
| add r5, r9, r0 | add r5, r9, r0 |
| GETPC8 | GETPC8 |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| Line 417 sft16d8e mov r5, r0 | Line 409 sft16d8e mov r5, r0 |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r4 | CPUWORK r4 |
| mov r0, r5 | mov r0, r5 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| adr r1, sft_ext16cl | adr r1, sft_ext16cl |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 464 sar_r16_cl SAR16CL r4, r0 | Line 456 sar_r16_cl SAR16CL r4, r0 |
| rol_e16_cl ROL16CL r0, r4 | rol_e16_cl ROL16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| ror_e16_cl ROR16CL r0, r4 | ror_e16_cl ROR16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| rcl_e16_cl RCL16CL r0, r4 | rcl_e16_cl RCL16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| rcr_e16_cl RCR16CL r0, r4 | rcr_e16_cl RCR16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| shl_e16_cl SHL16CL r0, r4 | shl_e16_cl SHL16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| shr_e16_cl SHR16CL r0, r4 | shr_e16_cl SHR16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| sar_e16_cl SAR16CL r0, r4 | sar_e16_cl SAR16CL r0, r4 |
| mov r0, r5 | mov r0, r5 |
| mov lr, r11 | mov lr, r11 |
| b i286_memorywrite_w | b i286a_memorywrite_w |
| END | END |