@ externs, just for reference
.extern Pico
-.extern Read_CDC_Host
+.extern cdc_host_r
.extern m68k_reg_write8
.extern s68k_reg_read16
.extern s68k_reg_write8
+.extern s68k_reg_write16
.extern s68k_poll_detect
-.extern gfx_cd_read
-.extern gfx_cd_write16
.extern pcd_pcm_write
.extern pcd_pcm_read
.extern PicoCpuCS68k
bx lr
m_m68k_read8_r08:
mov r0, #0
- bl Read_CDC_Host @ TODO: make it local
+ bl cdc_host_r
mov r0, r0, lsr #8
bx lr
m_m68k_read8_r09:
mov r0, #0
- b Read_CDC_Host
+ b cdc_host_r
m_m68k_read8_r0c:
add r1, r1, #0x110000
add r1, r1, #0x002200
bx lr
m_m68k_read16_r08:
mov r0, #0
- b Read_CDC_Host
+ b cdc_host_r
m_m68k_read16_r0c:
add r1, r1, #0x110000
add r1, r1, #0x002200
sub r2, r0, #0x0e
cmp r2, #(0x30-0x0e)
blo m_s68k_read8_comm
- sub r2, r0, #0x58
- cmp r2, #0x10
- ldrlo r2, =gfx_cd_read
- ldrhs r2, =s68k_reg_read16
stmfd sp!,{r0,lr}
bic r0, r0, #1
- mov lr, pc
- bx r2
+ bl s68k_reg_read16
ldmfd sp!,{r1,lr}
tst r1, #1
moveq r0, r0, lsr #8
ldr r1, [r1]
add r1, r1, #0x110000
ldrb r1, [r1, r0]
+ bic r0, r0, #1
b s68k_poll_detect
bic r0, r0, #0xff0000
bic r0, r0, #0x008000
bic r0, r0, #0x000001
- sub r2, r0, #0x58
- cmp r2, #0x10
- blo gfx_cd_read
cmp r0, #8
bne s68k_reg_read16
mov r0, #1
- b Read_CDC_Host
+ b cdc_host_r
@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
tst r0, #0x7e00
movne r0, #0
bxne lr
- sub r2, r0, #0x58
- cmp r2, #0x10
+ sub r2, r0, #0x59
+ cmp r2, #0x0f
bhs s68k_reg_write8
bic r0, r0, #1
orr r1, r1, r1, lsl #8
- b gfx_cd_write16
+ b s68k_reg_write16
m_s68k_write8_pcm:
movne r0, #0
bxne lr
cmp r0, #0x0e
- beq m_s68k_write16_regs_spec
- sub r2, r0, #0x58
- cmp r2, #0x10
- blo gfx_cd_write16
- and r3, r1, #0xff
- add r2, r0, #1
- stmfd sp!,{r2,r3,lr}
- mov r1, r1, lsr #8
- bl s68k_reg_write8
- ldmfd sp!,{r0,r1,lr}
- b s68k_reg_write8
+ bne s68k_reg_write16
m_s68k_write16_regs_spec: @ special case
ldr r2, =(Pico+0x22200)