X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=Pico%2FMemory.s;h=8fd4e135d58119da1c169f8ca6e5953f32e76cc3;hb=4ff2d52753e46bce5622a5935f3d3750b5848f8f;hp=51778c4afa31af44d925d45c87252760b98103fd;hpb=cc68a136aa179a5f32fe40208371eb9c2b0aadae;p=picodrive.git diff --git a/Pico/Memory.s b/Pico/Memory.s index 51778c4..8fd4e13 100644 --- a/Pico/Memory.s +++ b/Pico/Memory.s @@ -1,3 +1,5 @@ +@ vim:filetype=armasm + @ memory handlers with banking support for SSF II - The New Challengers @ mostly based on Gens code @@ -384,7 +386,7 @@ m_read8_above_rom: stmfd sp!,{r0,lr} bic r0, r0, #1 mov r1, #8 - bl UnusualRead16 + bl OtherRead16End ldmfd sp!,{r1,lr} tst r1, #1 moveq r0, r0, lsr #8 @@ -485,18 +487,20 @@ m_read16_romF: @ 0x780000 - 0x7fffff m_read16_rom 0xF m_read16_misc: - mov r1, #16 - ldr r2, =OtherRead16 bic r0, r0, #1 - bx r2 + mov r1, #16 + b OtherRead16 +@ ldr r2, =OtherRead16 +@ bx r2 m_read16_vdp: tst r0, #0x70000 tsteq r0, #0x000e0 bxne lr @ invalid read - ldr r1, =PicoVideoRead bic r0, r0, #1 - bx r1 + b PicoVideoRead +@ ldr r1, =PicoVideoRead +@ bx r1 m_read16_ram: ldr r1, =Pico @@ -506,10 +510,11 @@ m_read16_ram: bx lr m_read16_above_rom: - mov r1, #16 - ldr r2, =UnusualRead16 bic r0, r0, #1 - bx r2 + mov r1, #16 + b OtherRead16End +@ ldr r2, =OtherRead16End +@ bx r2 .pool @@ -633,12 +638,10 @@ m_read32_vdp: tsteq r0, #0x000e0 bxne lr @ invalid read bic r0, r0, #1 - stmfd sp!,{r0,lr} + add r1, r0, #2 + stmfd sp!,{r1,lr} bl PicoVideoRead - mov r1, r0 - ldmfd sp!,{r0} - stmfd sp!,{r1} - add r0, r0, #2 + swp r0, r0, [sp] bl PicoVideoRead ldmfd sp!,{r1,lr} orr r0, r0, r1, lsl #16 @@ -657,13 +660,13 @@ m_read32_above_rom: bic r0, r0, #1 stmfd sp!,{r0,lr} mov r1, #32 - bl UnusualRead16 + bl OtherRead16End mov r1, r0 ldmfd sp!,{r0} stmfd sp!,{r1} add r0, r0, #2 mov r1, #32 - bl UnusualRead16 + bl OtherRead16End ldmfd sp!,{r1,lr} orr r0, r0, r1, lsl #16 bx lr