X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=pico%2Fcd%2Fmemory_arm.S;fp=pico%2Fcd%2Fmemory_arm.s;h=23f0b94c05e815070fae6ae6baabd3573ff77b2f;hb=88fd63ad10faa746ef9d7ad7d98a72e51fe2aa86;hp=f3a1372a8123e35325d4bcc57b4791cfedead096;hpb=e64886365da9e882b54e06ab683ee4db60171e32;p=picodrive.git diff --git a/pico/cd/memory_arm.s b/pico/cd/memory_arm.S similarity index 93% rename from pico/cd/memory_arm.s rename to pico/cd/memory_arm.S index f3a1372..23f0b94 100644 --- a/pico/cd/memory_arm.s +++ b/pico/cd/memory_arm.S @@ -6,6 +6,8 @@ @* See COPYING file in the top-level directory. @* +#include "../pico_int_o32.h" + .equiv PCM_STEP_SHIFT, 11 .text @@ -127,9 +129,9 @@ PicoReadM68k8_cell1: @ 0x220000 - 0x23ffff, cell arranged mov r3, #0x0e0000 0: cell_map - ldr r1, =(Pico+0x22200) + ldr r1, =Pico add r0, r0, r3 - ldr r1, [r1] + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd (used everywhere) eor r0, r0, #1 ldrb r0, [r1, r0] bx lr @@ -140,9 +142,9 @@ PicoRead8_mcd_io: cmp r1, #0x2000 @ a120xx? bne PicoRead8_io - ldr r1, =(Pico+0x22200) + ldr r1, =Pico and r0, r0, #0x3f - ldr r1, [r1] @ Pico.mcd (used everywhere) + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd cmp r0, #0x0e ldrlt pc, [pc, r0, lsl #2] b m_m68k_read8_hi @@ -237,9 +239,9 @@ PicoReadM68k16_cell1: @ 0x220000 - 0x23ffff, cell arranged mov r3, #0x0e0000 0: cell_map - ldr r1, =(Pico+0x22200) + ldr r1, =Pico add r0, r0, r3 - ldr r1, [r1] + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd bic r0, r0, #1 ldrh r0, [r1, r0] bx lr @@ -251,9 +253,9 @@ PicoRead16_mcd_io: bne PicoRead16_io m_m68k_read16_m68k_regs: - ldr r1, =(Pico+0x22200) + ldr r1, =Pico and r0, r0, #0x3e - ldr r1, [r1] @ Pico.mcd (used everywhere) + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd cmp r0, #0x0e ldrlt pc, [pc, r0, lsl #1] b m_m68k_read16_hi @@ -328,8 +330,9 @@ PicoWriteM68k8_cell1: @ 0x220000 - 0x23ffff, cell arranged 0: mov r3, r1 cell_map - ldr r2, =(Pico+0x22200) + ldr r2, =Pico add r0, r0, r12 + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd ldr r2, [r2] eor r0, r0, #1 strb r3, [r2, r0] @@ -355,9 +358,9 @@ PicoWriteM68k16_cell1: @ 0x220000 - 0x23ffff, cell arranged 0: mov r3, r1 cell_map - ldr r1, =(Pico+0x22200) + ldr r1, =Pico add r0, r0, r12 - ldr r1, [r1] + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd bic r0, r0, #1 strh r3, [r1, r0] bx lr @@ -397,9 +400,9 @@ PicoReadS68k8_dec0: @ 0x080000 - 0x0bffff PicoReadS68k8_dec1: mov r3, #0x0a0000 @ + ^ / 2 0: - ldr r2, =(Pico+0x22200) + ldr r2, =Pico eor r0, r0, #2 - ldr r2, [r2] + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd movs r0, r0, lsr #1 @ +4-6 <<16 add r2, r2, r3 @ map to our address ldrb r0, [r2, r0] @@ -429,8 +432,8 @@ m_s68k_read8_regs: bx lr m_s68k_read8_comm: - ldr r1, =(Pico+0x22200) - ldr r1, [r1] + ldr r1, =Pico + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd add r1, r1, #0x110000 ldrb r1, [r1, r0] bic r0, r0, #1 @@ -442,9 +445,9 @@ m_s68k_read8_pcm: bne m_read_null @ must not trash r3 and r12 - ldr r1, =(Pico+0x22200) + ldr r1, =Pico bic r0, r0, #0xff0000 - ldr r1, [r1] + ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd mov r2, #0x110000 orr r2, r2, #0x002200 cmp r0, #0x2000 @@ -477,9 +480,9 @@ PicoReadS68k16_dec0: @ 0x080000 - 0x0bffff PicoReadS68k16_dec1: mov r3, #0x0a0000 @ + ^ / 2 0: - ldr r2, =(Pico+0x22200) + ldr r2, =Pico eor r0, r0, #2 - ldr r2, [r2] + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd mov r0, r0, lsr #1 @ +4-6 <<16 add r2, r2, r3 @ map to our address ldrb r0, [r2, r0] @@ -508,9 +511,9 @@ m_s68k_read16_regs: .macro m_s68k_write8_2M_decode - ldr r2, =(Pico+0x22200) + ldr r2, =Pico eor r0, r0, #2 - ldr r2, [r2] @ Pico.rom + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd movs r0, r0, lsr #1 @ +4-6 <<16 add r2, r2, r3 @ map to our address .endm @@ -592,9 +595,9 @@ m_s68k_write8_pcm: bxlt lr m_s68k_write8_pcm_ram: - ldr r3, =(Pico+0x22200) + ldr r3, =Pico bic r0, r0, #0x00e000 - ldr r3, [r3] + ldr r3, [r3, #OFS_Pico_rom] @ Pico.mcd mov r0, r0, lsr #1 add r2, r3, #0x110000 add r2, r2, #0x002200 @@ -611,9 +614,9 @@ m_s68k_write8_pcm_ram: .macro m_s68k_write16_2M_decode - ldr r2, =(Pico+0x22200) + ldr r2, =Pico eor r0, r0, #2 - ldr r2, [r2] + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd mov r0, r0, lsr #1 @ +4-6 <<16 add r2, r2, r3 @ map to our address .endm @@ -692,9 +695,9 @@ m_s68k_write16_regs: bne s68k_reg_write16 m_s68k_write16_regs_spec: @ special case - ldr r2, =(Pico+0x22200) + ldr r2, =Pico mov r0, #0x110000 - ldr r2, [r2] + ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd add r0, r0, #0x00000f strb r1, [r2, r0] @ if (a == 0xe) s68k_regs[0xf] = d; bx lr