notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
svp compiler: minor update, just to not forget
[picodrive.git]
/
Pico
/
Memory.s
diff --git
a/Pico/Memory.s
b/Pico/Memory.s
index
5555ac3
..
368b640
100644
(file)
--- a/
Pico/Memory.s
+++ b/
Pico/Memory.s
@@
-10,6
+10,7
@@
.include "port_config.s"
\r
\r
.text
\r
.include "port_config.s"
\r
\r
.text
\r
+.align 4
\r
\r
@ default jump tables
\r
\r
\r
@ default jump tables
\r
\r
@@
-119,6
+120,7
@@
m_read32_def_table:
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
.bss
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
.bss
\r
+.align 4
\r
@.section .bss, "brw"
\r
@.data
\r
\r
@.section .bss, "brw"
\r
@.data
\r
\r
@@
-136,6
+138,7
@@
m_read32_table:
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
.text
\r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
\r
.text
\r
+.align 4
\r
\r
.global PicoMemReset
\r
.global PicoRead8
\r
\r
.global PicoMemReset
\r
.global PicoRead8
\r
@@
-184,7
+187,7
@@
PicoMemReset:
@ update memhandlers according to ROM size
\r
ldr r1, =m_read8_above_rom
\r
ldr r0, =m_read8_table
\r
@ update memhandlers according to ROM size
\r
ldr r1, =m_read8_above_rom
\r
ldr r0, =m_read8_table
\r
- mov r2, #
16
\r
+ mov r2, #
20
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
@@
-196,7
+199,7
@@
PicoMemReset:
2:
\r
ldr r1, =m_read16_above_rom
\r
ldr r0, =m_read16_table
\r
2:
\r
ldr r1, =m_read16_above_rom
\r
ldr r0, =m_read16_table
\r
- mov r2, #
16
\r
+ mov r2, #
20
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
@@
-208,7
+211,7
@@
PicoMemReset:
2:
\r
ldr r1, =m_read32_above_rom
\r
ldr r0, =m_read32_table
\r
2:
\r
ldr r1, =m_read32_above_rom
\r
ldr r0, =m_read32_table
\r
- mov r2, #
16
\r
+ mov r2, #
20
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
1:
\r
sub r2, r2, #1
\r
cmp r2, r12
\r
@@
-383,17
+386,14
@@
m_read8_misc2:
cmp r2, #0x4000
\r
mvnne r0, #0
\r
bxne lr @ invalid
\r
cmp r2, #0x4000
\r
mvnne r0, #0
\r
bxne lr @ invalid
\r
-.if EXTERNAL_YM2612
\r
ldr r1, =PicoOpt
\r
ldr r1, [r1]
\r
tst r1, #1
\r
ldr r1, =PicoOpt
\r
ldr r1, [r1]
\r
tst r1, #1
\r
- beq m_read8_fake_ym2612
\r
- tst r1, #0x200
\r
- beq YM2612Read_
\r
- b YM2612Read_940
\r
-.else
\r
- b YM2612Read_
\r
-.endif
\r
+
\r
+ ldrne r1, =ym2612_st
\r
+ ldrne r1, [r1]
\r
+ ldrneb r0, [r1, #0x11] @ ym2612_st->status
\r
+ bxne lr
\r
\r
m_read8_fake_ym2612:
\r
ldr r3, =(Pico+0x22200)
\r
\r
m_read8_fake_ym2612:
\r
ldr r3, =(Pico+0x22200)
\r
@@
-448,10
+448,13
@@
m_read8_above_rom:
tst r1, #5
\r
bne SRAMRead
\r
m_read8_ar_nosram:
\r
tst r1, #5
\r
bne SRAMRead
\r
m_read8_ar_nosram:
\r
+ ldr r2, =PicoRead16Hook
\r
stmfd sp!,{r0,lr}
\r
stmfd sp!,{r0,lr}
\r
+ ldr r2, [r2]
\r
bic r0, r0, #1
\r
mov r1, #8
\r
bic r0, r0, #1
\r
mov r1, #8
\r
- bl OtherRead16End
\r
+ mov lr, pc
\r
+ bx r2
\r
ldmfd sp!,{r1,lr}
\r
tst r1, #1
\r
moveq r0, r0, lsr #8
\r
ldmfd sp!,{r1,lr}
\r
tst r1, #1
\r
moveq r0, r0, lsr #8
\r
@@
-502,8
+505,7
@@
m_read16_rom4: @ 0x200000 - 0x27ffff, SRAM area (NBA Live 95)
tst r1, #5
\r
beq m_read16_nosram
\r
stmfd sp!,{lr}
\r
tst r1, #5
\r
beq m_read16_nosram
\r
stmfd sp!,{lr}
\r
- bl SRAMRead
\r
- orr r0, r0, r0, lsl #8
\r
+ bl SRAMRead16
\r
ldmfd sp!,{pc}
\r
m_read16_nosram:
\r
ldr r1, [r3, #4] @ romsize
\r
ldmfd sp!,{pc}
\r
m_read16_nosram:
\r
ldr r1, [r3, #4] @ romsize
\r
@@
-593,12
+595,13
@@
m_read16_above_rom:
tst r1, #5
\r
beq m_read16_ar_nosram
\r
stmfd sp!,{lr}
\r
tst r1, #5
\r
beq m_read16_ar_nosram
\r
stmfd sp!,{lr}
\r
- bl SRAMRead
\r
- orr r0, r0, r0, lsl #8
\r
+ bl SRAMRead16
\r
ldmfd sp!,{pc}
\r
m_read16_ar_nosram:
\r
ldmfd sp!,{pc}
\r
m_read16_ar_nosram:
\r
+ ldr r2, =PicoRead16Hook
\r
+ ldr r2, [r2]
\r
mov r1, #16
\r
mov r1, #16
\r
- b
OtherRead16End
\r
+ b
x r2
\r
\r
.pool
\r
\r
\r
.pool
\r
\r
@@
-647,14
+650,13
@@
m_read32_rom4: @ 0x200000 - 0x27ffff, SRAM area (does any game do long reads?)
tst r1, #5
\r
beq m_read32_nosram
\r
stmfd sp!,{r0,lr}
\r
tst r1, #5
\r
beq m_read32_nosram
\r
stmfd sp!,{r0,lr}
\r
- bl SRAMRead
\r
+ bl SRAMRead
16
\r
ldmfd sp!,{r1,lr}
\r
stmfd sp!,{r0,lr}
\r
add r0, r1, #2
\r
ldmfd sp!,{r1,lr}
\r
stmfd sp!,{r0,lr}
\r
add r0, r1, #2
\r
- bl SRAMRead
\r
+ bl SRAMRead
16
\r
ldmfd sp!,{r1,lr}
\r
ldmfd sp!,{r1,lr}
\r
- orr r0, r1, r0, lsl #16
\r
- orr r0, r0, r0, lsl #8
\r
+ orr r0, r0, r1, lsl #16
\r
bx lr
\r
m_read32_nosram:
\r
ldr r1, [r3, #4] @ romsize
\r
bx lr
\r
m_read32_nosram:
\r
ldr r1, [r3, #4] @ romsize
\r
@@
-751,16
+753,20
@@
m_read32_ram:
bx lr
\r
\r
m_read32_above_rom:
\r
bx lr
\r
\r
m_read32_above_rom:
\r
+ ldr r2, =PicoRead16Hook
\r
bic r0, r0, #1
\r
bic r0, r0, #1
\r
- stmfd sp!,{r0,lr}
\r
+ ldr r2, [r2]
\r
mov r1, #32
\r
mov r1, #32
\r
- bl OtherRead16End
\r
+ stmfd sp!,{r0,r2,lr}
\r
+ mov lr, pc
\r
+ bx r2
\r
mov r1, r0
\r
mov r1, r0
\r
- ldmfd sp!,{r0}
\r
+ ldmfd sp!,{r0
,r2
}
\r
stmfd sp!,{r1}
\r
add r0, r0, #2
\r
mov r1, #32
\r
stmfd sp!,{r1}
\r
add r0, r0, #2
\r
mov r1, #32
\r
- bl OtherRead16End
\r
+ mov lr, pc
\r
+ bx r2
\r
ldmfd sp!,{r1,lr}
\r
orr r0, r0, r1, lsl #16
\r
bx lr
\r
ldmfd sp!,{r1,lr}
\r
orr r0, r0, r1, lsl #16
\r
bx lr
\r
@@
-891,7
+897,8
@@
m_write8_z80_not_ram:
ldr r2, =emustatus
\r
ldmfd sp!,{lr}
\r
ldr r1, [r2]
\r
ldr r2, =emustatus
\r
ldmfd sp!,{lr}
\r
ldr r1, [r2]
\r
- orr r1, r0, r2
\r
+ and r0, r0, #1
\r
+ orr r1, r0, r1
\r
str r1, [r2] @ emustatus|=YM2612Write(a&3, d);
\r
bx lr
\r
\r
str r1, [r2] @ emustatus|=YM2612Write(a&3, d);
\r
bx lr
\r
\r