|
|
| version 1.1, 2003/12/18 23:07:49 | version 1.3, 2003/12/19 09:38:25 |
|---|---|
| Line 2 | Line 2 |
| INCLUDE i286a.inc | INCLUDE i286a.inc |
| INCLUDE i286aalu.inc | INCLUDE i286aalu.inc |
| IMPORT _szpcflag8 | IMPORT iflags |
| 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 iocore_inp8 | IMPORT iocore_inp8 |
| IMPORT iocore_inp16 | IMPORT iocore_inp16 |
| Line 52 repinsblp ldrh r0, [r9, #CPU_DX] | Line 52 repinsblp ldrh r0, [r9, #CPU_DX] |
| mov r1, r0 | mov r1, r0 |
| CPUWORK #4 | CPUWORK #4 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memorywrite | bl i286a_memorywrite |
| add r5, r5, r6 | add r5, r5, r6 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| bne repinsblp | bne repinsblp |
| Line 78 repinswlp ldrh r0, [r9, #CPU_DX] | Line 78 repinswlp ldrh r0, [r9, #CPU_DX] |
| mov r1, r0 | mov r1, r0 |
| CPUWORK #4 | CPUWORK #4 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| add r5, r5, r6 | add r5, r5, r6 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| bne repinswlp | bne repinswlp |
| Line 101 i286a_rep_outsb ldrh r4, [r9, #CPU_CX] | Line 101 i286a_rep_outsb ldrh r4, [r9, #CPU_CX] |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repoutsblp CPUWORK #4 | repoutsblp CPUWORK #4 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| mov r1, r0 | mov r1, r0 |
| ldrh r0, [r9, #CPU_DX] | ldrh r0, [r9, #CPU_DX] |
| add r5, r5, r6 | add r5, r5, r6 |
| Line 130 i286a_rep_outsw ldrh r4, [r9, #CPU_CX] | Line 130 i286a_rep_outsw ldrh r4, [r9, #CPU_CX] |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repoutswlp CPUWORK #4 | repoutswlp CPUWORK #4 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| mov r1, r0 | mov r1, r0 |
| ldrh r0, [r9, #CPU_DX] | ldrh r0, [r9, #CPU_DX] |
| add r5, r5, r6 | add r5, r5, r6 |
| Line 159 i286a_rep_movsb ldrh r4, [r9, #CPU_CX] | Line 159 i286a_rep_movsb ldrh r4, [r9, #CPU_CX] |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repmovsblp add r0, r2, r11 lsr #16 | repmovsblp add r0, r2, r11 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r1, r0 | mov r1, r0 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memorywrite | bl i286a_memorywrite |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWKS #4 | CPUWKS #4 |
| blt repmovsbbreak | blt repmovsbbreak |
| Line 200 i286a_rep_movsw ldrh r4, [r9, #CPU_CX] | Line 200 i286a_rep_movsw ldrh r4, [r9, #CPU_CX] |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repmovswlp add r0, r2, r11 lsr #16 | repmovswlp add r0, r2, r11 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r1, r0 | mov r1, r0 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWKS #4 | CPUWKS #4 |
| blt repmovswbreak | blt repmovswbreak |
| Line 243 i286a_rep_lodsb ldrh r4, [r9, #CPU_CX] | Line 243 i286a_rep_lodsb ldrh r4, [r9, #CPU_CX] |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| replodsblp add r0, r11, r5 lsr #16 | replodsblp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread | bl i286a_memoryread |
| CPUWORK #4 | CPUWORK #4 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| bne replodsblp | bne replodsblp |
| Line 266 i286a_rep_lodsw ldrh r4, [r9, #CPU_CX] | Line 266 i286a_rep_lodsw ldrh r4, [r9, #CPU_CX] |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| replodswlp add r0, r11, r5 lsr #16 | replodswlp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| CPUWORK #4 | CPUWORK #4 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| bne replodswlp | bne replodswlp |
| Line 290 i286a_rep_stosb ldrh r4, [r9, #CPU_CX] | Line 290 i286a_rep_stosb ldrh r4, [r9, #CPU_CX] |
| repstosblp ldrb r1, [r9, #CPU_AL] | repstosblp ldrb r1, [r9, #CPU_AL] |
| add r0, r11, r5 lsr #16 | add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memorywrite | bl i286a_memorywrite |
| CPUWKS #3 | CPUWKS #3 |
| ble repstosbbreak | ble repstosbbreak |
| subs r4, r4, #1 | subs r4, r4, #1 |
| Line 319 i286a_rep_stosw ldrh r4, [r9, #CPU_CX] | Line 319 i286a_rep_stosw ldrh r4, [r9, #CPU_CX] |
| repstoswlp ldrh r1, [r9, #CPU_AX] | repstoswlp ldrh r1, [r9, #CPU_AX] |
| add r0, r11, r5 lsr #16 | add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memorywrite_w | bl i286a_memorywrite_w |
| CPUWKS #3 | CPUWKS #3 |
| blt repstoswbreak | blt repstoswbreak |
| subs r4, r4, #1 | subs r4, r4, #1 |
| Line 349 i286a_repe_cmpsb | Line 349 i286a_repe_cmpsb |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repecmpsblp add r0, r2, r11 lsr #16 | repecmpsblp add r0, r2, r11 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r10, r0 lsl #24 | mov r10, r0 lsl #24 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWORK #9 | CPUWORK #9 |
| ldr r2, [r9, #CPU_DS_FIX] | ldr r2, [r9, #CPU_DS_FIX] |
| Line 380 repecmpsbbreak bic r8, r8, #&ff | Line 380 repecmpsbbreak bic r8, r8, #&ff |
| strh r4, [r9, #CPU_CX] | strh r4, [r9, #CPU_CX] |
| str r0, [r9, #CPU_SI] | str r0, [r9, #CPU_SI] |
| ldr pc, [sp], #4 | ldr pc, [sp], #4 |
| repecmpsb_flag dcd _szpcflag8 | repecmpsb_flag dcd iflags |
| i286a_repe_cmpsw | i286a_repe_cmpsw |
| ldrh r4, [r9, #CPU_CX] | ldrh r4, [r9, #CPU_CX] |
| Line 395 i286a_repe_cmpsw | Line 395 i286a_repe_cmpsw |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repecmpswlp add r0, r2, r11 lsr #16 | repecmpswlp add r0, r2, r11 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r10, r0 lsl #16 | mov r10, r0 lsl #16 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWORK #9 | CPUWORK #9 |
| ldr r2, [r9, #CPU_DS_FIX] | ldr r2, [r9, #CPU_DS_FIX] |
| Line 430 repecmpswbreak bic r8, r8, #&ff | Line 430 repecmpswbreak bic r8, r8, #&ff |
| strh r4, [r9, #CPU_CX] | strh r4, [r9, #CPU_CX] |
| str r0, [r9, #CPU_SI] | str r0, [r9, #CPU_SI] |
| ldr pc, [sp], #4 | ldr pc, [sp], #4 |
| repecmpsw_flag dcd _szpcflag8 | repecmpsw_flag dcd iflags |
| i286a_repne_cmpsb | i286a_repne_cmpsb |
| Line 446 i286a_repne_cmpsb | Line 446 i286a_repne_cmpsb |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repnecmpsblp add r0, r2, r11 lsr #16 | repnecmpsblp add r0, r2, r11 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r10, r0 lsl #24 | mov r10, r0 lsl #24 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread | bl i286a_memoryread |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWORK #9 | CPUWORK #9 |
| ldr r2, [r9, #CPU_DS_FIX] | ldr r2, [r9, #CPU_DS_FIX] |
| Line 477 repnecmpsbbreak bic r8, r8, #&ff | Line 477 repnecmpsbbreak bic r8, r8, #&ff |
| strh r4, [r9, #CPU_CX] | strh r4, [r9, #CPU_CX] |
| str r0, [r9, #CPU_SI] | str r0, [r9, #CPU_SI] |
| ldr pc, [sp], #4 | ldr pc, [sp], #4 |
| repnecmpsb_flag dcd _szpcflag8 | repnecmpsb_flag dcd iflags |
| i286a_repne_cmpsw | i286a_repne_cmpsw |
| ldrh r4, [r9, #CPU_CX] | ldrh r4, [r9, #CPU_CX] |
| Line 492 i286a_repne_cmpsw | Line 492 i286a_repne_cmpsw |
| tst r8, #D_FLAG | tst r8, #D_FLAG |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repnecmpswlp add r0, r2, r11 lsr #16 | repnecmpswlp add r0, r2, r11 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| ldr r2, [r9, #CPU_ES_BASE] | ldr r2, [r9, #CPU_ES_BASE] |
| mov r10, r0 lsl #16 | mov r10, r0 lsl #16 |
| add r11, r11, r6 | add r11, r11, r6 |
| add r0, r2, r5 lsr #16 | add r0, r2, r5 lsr #16 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| add r5, r5, r6 | add r5, r5, r6 |
| CPUWORK #9 | CPUWORK #9 |
| ldr r2, [r9, #CPU_DS_FIX] | ldr r2, [r9, #CPU_DS_FIX] |
| Line 527 repnecmpswbreak bic r8, r8, #&ff | Line 527 repnecmpswbreak bic r8, r8, #&ff |
| strh r4, [r9, #CPU_CX] | strh r4, [r9, #CPU_CX] |
| str r0, [r9, #CPU_SI] | str r0, [r9, #CPU_SI] |
| ldr pc, [sp], #4 | ldr pc, [sp], #4 |
| repnecmpsw_flag dcd _szpcflag8 | repnecmpsw_flag dcd iflags |
| i286a_repe_scasb | i286a_repe_scasb |
| Line 543 i286a_repe_scasb | Line 543 i286a_repe_scasb |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repescasblp add r0, r11, r5 lsr #16 | repescasblp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread | bl i286a_memoryread |
| ldrb r3, [r9, #CPU_AL] | ldrb r3, [r9, #CPU_AL] |
| CPUWORK #8 | CPUWORK #8 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| Line 568 i286a_repe_scasw | Line 568 i286a_repe_scasw |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repescaswlp add r0, r11, r5 lsr #16 | repescaswlp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| ldrh r3, [r9, #CPU_AX] | ldrh r3, [r9, #CPU_AX] |
| CPUWORK #8 | CPUWORK #8 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| Line 594 i286a_repne_scasb | Line 594 i286a_repne_scasb |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repnescasblp add r0, r11, r5 lsr #16 | repnescasblp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread | bl i286a_memoryread |
| ldrb r3, [r9, #CPU_AL] | ldrb r3, [r9, #CPU_AL] |
| CPUWORK #8 | CPUWORK #8 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| Line 619 i286a_repne_scasw | Line 619 i286a_repne_scasw |
| rsbne r6, r6, #0 | rsbne r6, r6, #0 |
| repnescaswlp add r0, r11, r5 lsr #16 | repnescaswlp add r0, r11, r5 lsr #16 |
| add r5, r5, r6 | add r5, r5, r6 |
| bl i286_memoryread_w | bl i286a_memoryread_w |
| ldrh r3, [r9, #CPU_AX] | ldrh r3, [r9, #CPU_AX] |
| CPUWORK #8 | CPUWORK #8 |
| subs r4, r4, #1 | subs r4, r4, #1 |
| beq repnescaswbreak | beq repnescaswbreak |
| cmp r3, r0 | cmp r3, r0 |
| beq repnescaswlp | bne repnescaswlp |
| repnescaswbreak SUB16 r3, r0 | repnescaswbreak SUB16 r3, r0 |
| strh r4, [r9, #CPU_CX] | strh r4, [r9, #CPU_CX] |
| str r5, [r9, #CPU_SI] | str r5, [r9, #CPU_SI] |