.extern z80Read8
.extern OtherRead16
.extern PicoVideoRead
+.extern PicoVideoRead8
.extern Read_CDC_Host
.extern m68k_reg_write8
-.extern OtherWrite8
.extern OtherWrite16
.extern gfx_cd_read
.extern s68k_reg_read16
.extern gfx_cd_write16
.extern s68k_reg_write8
.extern s68k_poll_adclk
-.extern PicoCpuS68k
+.extern PicoCpuMS68k
.extern s68k_poll_detect
.extern SN76496Write
+.extern m_m68k_read8_misc
+.extern m_m68k_write8_misc
@ r0=reg3, r1-r3=temp
add r2, r2, #0x110000
add r2, r2, #0x002200
.if \is_read
- ldrb r0, [r2, #0x18]
+ ldrb r0, [r2, #0x18] @ Pico_mcd->m.bcram_reg
.else
strb r1, [r2, #0x18]
.endif
bic r2, r0, #0xfe0000
bic r2, r2, #0x3f
cmp r2, #0x012000
- bne m_m68k_read8_misc
+ bne m_m68k_read8_misc @ now from Pico/Memory.s
ldr r1, =(Pico+0x22200)
and r0, r0, #0x3f
ldrb r0, [r1, r0]
bx lr
-
+/*
m_m68k_read8_misc:
bic r2, r0, #0x00ff
bic r2, r2, #0xbf00
tst r1, #1
moveq r0, r0, lsr #8
bx lr
-
+*/
m_m68k_read8_vdp:
tst r0, #0x70000
tsteq r0, #0x000e0
bxne lr @ invalid read
- stmfd sp!,{r0,lr}
- bic r0, r0, #1
- bl PicoVideoRead @ TODO: implement it in asm
- ldmfd sp!,{r1,lr}
- tst r1, #1
- moveq r0, r0, lsr #8
- bx lr
+ b PicoVideoRead8
m_m68k_read8_ram:
cmp r2, #0x012000
beq m68k_reg_write8
mov r2, #8
- b OtherWrite8
+@ b OtherWrite8
+ b m_m68k_write8_misc
m_m68k_write8_vdp:
and r2, r2, #0xfe
cmp r2, #0x0e
bxne lr
- ldr r0, =PicoCpuS68k
+ ldr r0, =PicoCpuCS68k
str r1, [r0, #0x58] @ push s68k out of stopped state
str r1, [r3]
bx lr
strneh r1, [r2, #2]
cmp r0, #0x10
bxlt lr
- ldr r0, =PicoCpuS68k @ remove poll detected state for s68k
+ ldr r0, =PicoCpuCS68k @ remove poll detected state for s68k
mov r1, #0
str r1, [r0, #0x58]
str r1, [r3]