--- np2/i286a/memoryd.s 2003/12/21 23:27:08 1.7 +++ np2/i286a/memoryd.s 2005/05/20 13:59:46 1.10 @@ -3,14 +3,19 @@ INCLUDE i286amem.inc IMPORT memfn - IMPORT i286core + IMPORT i286acore IMPORT i286_nonram_r IMPORT i286_nonram_rw - EXPORT i286_memoryread - EXPORT i286_memoryread_w - EXPORT i286_memorywrite - EXPORT i286_memorywrite_w + EXPORT memp_read8 + EXPORT memp_read16 + EXPORT memp_write8 + EXPORT memp_write16 + + EXPORT memr_read8 + EXPORT memr_read16 + EXPORT memr_write8 + EXPORT memr_write16 EXPORT i286a_memoryread EXPORT i286a_memoryread_w @@ -19,14 +24,15 @@ AREA .text, CODE, READONLY -i286_memoryread -;;i286a_memoryread - ldr r3, i2mr_cpu +memr_read8 mov r1, r1 lsl #16 + mov r0, r0 lsl #4 + add r0, r0, r1 lsr #16 +memp_read8 ldr r3, i2mr_cpu cmp r0, #I286_MEMREADMAX bcs i2mr_ext ldrb r0, [r3, r0] mov pc, lr -i2mr_cpu dcd i286core + CPU_SIZE +i2mr_cpu dcd i286acore + CPU_SIZE i2mr_ext cmp r0, #USE_HIMEM bcs i2mr_himem stmdb sp!, {r7, r9, lr} @@ -49,16 +55,17 @@ i2mr_himem ldr r12, [r3, #CPU_EXTMEMSI mov pc, lr -i286_memoryread_w -;;i286a_memoryread_w - ldr r3, i2mrw_cpu +memr_read16 mov r1, r1 lsl #16 + mov r0, r0 lsl #4 + add r0, r0, r1 lsr #16 +memp_read16 ldr r3, i2mrw_cpu tst r0, #1 bne i2mro_main cmp r0, #I286_MEMREADMAX bcs i2mre_ext ldrh r0, [r3, r0] mov pc, lr -i2mrw_cpu dcd i286core + CPU_SIZE +i2mrw_cpu dcd i286acore + CPU_SIZE i2mre_ext cmp r0, #USE_HIMEM bcs i2mre_himem i2mrw_ext stmdb sp!, {r7, r9, lr} @@ -73,7 +80,7 @@ i2mrw_ext stmdb sp!, {r7, r9, lr} ldmia sp!, {r7, r9, pc} i2mre_memfnrd16 dcd memfn + (32 * 4) * 2 i2mre_himem ldr r12, [r3, #CPU_EXTMEMSIZE] - ldr r12, [r3, #CPU_EXTMEM] + ldr r2, [r3, #CPU_EXTMEM] sub r1, r0, #&100000 cmp r1, r12 bcs i286_nonram_rw @@ -133,14 +140,16 @@ i2mro_himemh orr r0, r0, #&ff00 mov pc, lr -i286_memorywrite -;;i286a_memorywrite - ldr r3, i2mw_cpu +memr_write8 mov r1, r1 lsl #16 + mov r0, r0 lsl #4 + add r0, r0, r1 lsr #16 + mov r1, r2 +memp_write8 ldr r3, i2mw_cpu cmp r0, #I286_MEMWRITEMAX bcs i2mw_ext strb r1, [r3, r0] mov pc, lr -i2mw_cpu dcd i286core + CPU_SIZE ; !! +i2mw_cpu dcd i286acore + CPU_SIZE i2mw_ext cmp r0, #USE_HIMEM bcs i2mw_himem stmdb sp!, {r7, r9, lr} @@ -162,16 +171,18 @@ i2mw_himem ldr r12, [r3, #CPU_EXTMEMSI mov pc, lr -i286_memorywrite_w -;;i286a_memorywrite_w - ldr r3, i2mww_cpu +memr_write16 mov r1, r1 lsl #16 + mov r0, r0 lsl #4 + add r0, r0, r1 lsr #16 + mov r1, r2 +memp_write16 ldr r3, i2mww_cpu tst r0, #1 bne i2mwo_main cmp r0, #I286_MEMWRITEMAX bcs i2mwe_ext strh r1, [r3, r0] mov pc, lr -i2mww_cpu dcd i286core + CPU_SIZE ; !! +i2mww_cpu dcd i286acore + CPU_SIZE i2mwe_ext cmp r0, #USE_HIMEM bcs i2mwe_himem i2mww_ext stmdb sp!, {r7, r9, lr} @@ -279,7 +290,7 @@ i2amrw_ext ldr r2, i2amre_memfnrdw ldr pc, [r2, r12 lsr #(15 - 2)] i2amre_memfnrdw dcd memfn + (32 * 4) * 2 i2amre_himem ldr r12, [r9, #CPU_EXTMEMSIZE] - ldr r12, [r9, #CPU_EXTMEM] + ldr r2, [r9, #CPU_EXTMEM] sub r1, r0, #&100000 cmp r1, r12 bcs i286_nonram_rw