|
|
| version 1.1, 2003/12/17 03:46:27 | version 1.6, 2003/12/21 23:27:08 |
|---|---|
| Line 1 | Line 1 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| INCLUDE i286aea.inc | |
| INCLUDE i286asft.inc | INCLUDE i286asft.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 shift_ea8_1 | EXPORT i286asft8_1 |
| EXPORT shift_ea16_1 | EXPORT i286asft16_1 |
| EXPORT shift_ea8_cl | EXPORT i286asft8_cl |
| EXPORT shift_ea8_d8 | EXPORT i286asft8_d8 |
| EXPORT shift_e16_cl | EXPORT i286asft16_cl |
| EXPORT shift_ea16_d8 | EXPORT i286asft16_d8 |
| AREA .text, CODE, READONLY | AREA .text, CODE, READONLY |
| shift_ea8_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 37 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 84 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 |
| ; ---- | ; ---- |
| shift_ea16_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 134 sft16m CPUWORK #7 | Line 134 sft16m CPUWORK #7 |
| 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 181 sar_r16_1 SAR16 r4 | Line 181 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 |
| ; ---- | ; ---- |
| shift_ea8_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 238 sft8cle ldrb r4, [r9, #CPU_CL] | Line 238 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] |
| shift_ea8_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 271 sft8d8e mov r5, r0 | Line 271 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 318 sar_r8_cl SAR8CL r4, r0 | Line 318 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 |
| ; ---- | ; ---- |
| shift_e16_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 |
| CPUWORK #2 | CPUWORK #5 |
| R16SRC r0, r5 | R16SRC r0, r5 |
| ldrb r0, [r9, #CPU_CL] | ldrb r0, [r9, #CPU_CL] |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r0 | |
| add r5, r5, #CPU_REG | add r5, r5, #CPU_REG |
| adr r1, sft_reg16cl | adr r1, sft_reg16cl |
| ldrh r4, [r5] | ldrh r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16clm CPUWORK #7 | sft16clm CPUWORK #8 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | tst r0, #1 |
| bne sft16cle | bne sft16cle |
| Line 370 sft16clm CPUWORK #7 | Line 371 sft16clm CPUWORK #7 |
| ldrb r0, [r9, #CPU_CL] | ldrb r0, [r9, #CPU_CL] |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r0 | |
| adr r1, sft_reg16cl | adr r1, sft_reg16cl |
| ldrh r4, [r5] | ldrh r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16cle ldrb r4, [r9, #CPU_CL] | sft16cle ldrb r4, [r9, #CPU_CL] |
| ands r4, r4, #&1f | ands r4, r4, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| 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] |
| shift_ea16_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 |
| CPUWORK #2 | CPUWORK #5 |
| R16SRC r0, r5 | R16SRC r0, r5 |
| GETPC8 | GETPC8 |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r0 | |
| add r5, r5, #CPU_REG | add r5, r5, #CPU_REG |
| adr r1, sft_reg16cl | adr r1, sft_reg16cl |
| ldrh r4, [r5] | ldrh r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| sft16d8m CPUWORK #7 | sft16d8m CPUWORK #8 |
| bl i286a_ea | bl i286a_ea |
| tst r0, #1 | tst r0, #1 |
| bne sft16d8e | bne sft16d8e |
| Line 404 sft16d8m CPUWORK #7 | Line 408 sft16d8m CPUWORK #7 |
| GETPC8 | GETPC8 |
| ands r0, r0, #&1f | ands r0, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| CPUWORK r0 | |
| adr r1, sft_reg16cl | adr r1, sft_reg16cl |
| ldrh r4, [r5] | ldrh r4, [r5] |
| ldr pc, [r1, r6 lsr #1] | ldr pc, [r1, r6 lsr #1] |
| Line 411 sft16d8e mov r5, r0 | Line 416 sft16d8e mov r5, r0 |
| GETPC8 | GETPC8 |
| ands r4, r0, #&1f | ands r4, r0, #&1f |
| moveq pc, r11 | moveq pc, r11 |
| 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 459 sar_r16_cl SAR16CL r4, r0 | Line 465 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 |