notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new z80 scheduling method, timers are still wip
[picodrive.git]
/
Pico
/
Memory.s
diff --git
a/Pico/Memory.s
b/Pico/Memory.s
index
7f3c2cb
..
dbe76ac
100644
(file)
--- a/
Pico/Memory.s
+++ b/
Pico/Memory.s
@@
-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
@@
-595,8
+598,10
@@
m_read16_above_rom:
bl SRAMRead16
\r
ldmfd sp!,{pc}
\r
m_read16_ar_nosram:
\r
bl SRAMRead16
\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
@@
-748,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
@@
-870,27
+879,21
@@
m_write8_z80_not_ram:
and r2, r0, #0x6000
\r
cmp r2, #0x4000
\r
bne m_write8_z80_not_ym2612
\r
and r2, r0, #0x6000
\r
cmp r2, #0x4000
\r
bne m_write8_z80_not_ym2612
\r
- ldr r
2
, =PicoOpt
\r
+ ldr r
3
, =PicoOpt
\r
and r0, r0, #3
\r
and r0, r0, #3
\r
- ldr r2, [r2]
\r
- tst r2, #1
\r
+ ldr r3, [r3]
\r
+ mov r2, #0 @ is_from_z80 = 0
\r
+ tst r3, #1
\r
bxeq lr
\r
stmfd sp!,{lr}
\r
bxeq lr
\r
stmfd sp!,{lr}
\r
-.if EXTERNAL_YM2612
\r
- tst r2, #0x200
\r
- ldreq r2, =YM2612Write_
\r
- ldrne r2, =YM2612Write_940
\r
- mov lr, pc
\r
- bx r2
\r
-.else
\r
- bl YM2612Write_
\r
-.endif
\r
+ and r1, r1, #0xff
\r
+ bl ym2612_write_local
\r
ldr r2, =emustatus
\r
ldmfd sp!,{lr}
\r
ldr r1, [r2]
\r
and r0, r0, #1
\r
orr r1, r0, r1
\r
ldr r2, =emustatus
\r
ldmfd sp!,{lr}
\r
ldr r1, [r2]
\r
and r0, r0, #1
\r
orr r1, r0, r1
\r
- str r1, [r2] @ emustatus|=
YM2612Write
(a&3, d);
\r
+ str r1, [r2] @ emustatus|=
ym2612_write_local
(a&3, d);
\r
bx lr
\r
\r
m_write8_z80_not_ym2612: @ not too likely
\r
bx lr
\r
\r
m_write8_z80_not_ym2612: @ not too likely
\r
@@
-907,7
+910,7
@@
m_write8_z80_not_ym2612: @ not too likely
m_write8_z80_bank_reg:
\r
ldr r3, =(Pico+0x22208) @ Pico.m
\r
ldrh r2, [r3, #0x0a]
\r
m_write8_z80_bank_reg:
\r
ldr r3, =(Pico+0x22208) @ Pico.m
\r
ldrh r2, [r3, #0x0a]
\r
- mov r1, r1, ls
r
#8
\r
+ mov r1, r1, ls
l
#8
\r
orr r2, r1, r2, lsr #1
\r
bic r2, r2, #0xfe00
\r
strh r2, [r3, #0x0a]
\r
orr r2, r1, r2, lsr #1
\r
bic r2, r2, #0xfe00
\r
strh r2, [r3, #0x0a]
\r
@@
-923,7
+926,7
@@
m_write8_not_z80:
bne OtherWrite8
\r
m_write8_psg:
\r
ldr r2, =PicoOpt
\r
bne OtherWrite8
\r
m_write8_psg:
\r
ldr r2, =PicoOpt
\r
- mov r0, r1
\r
+ and r0, r1, #0xff
\r
ldr r2, [r2]
\r
tst r2, #2
\r
bxeq lr
\r
ldr r2, [r2]
\r
tst r2, #2
\r
bxeq lr
\r