mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
mcd, preparations for msu support
This commit is contained in:
parent
178a9b683c
commit
02ff025479
15 changed files with 153 additions and 170 deletions
|
@ -51,7 +51,7 @@
|
|||
.global PicoWriteS68k16_dec_m2b1
|
||||
|
||||
@ externs, just for reference
|
||||
.extern Pico
|
||||
.extern Pico_mcd
|
||||
.extern cdc_host_r
|
||||
.extern m68k_reg_write8
|
||||
.extern s68k_reg_read16
|
||||
|
@ -130,9 +130,9 @@ PicoReadM68k8_cell1: @ 0x220000 - 0x23ffff, cell arranged
|
|||
mov r3, #0x0e0000
|
||||
0:
|
||||
cell_map
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
add r0, r0, r3
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd (used everywhere)
|
||||
ldr r1, [r1] @ Pico.mcd (used everywhere)
|
||||
eor r0, r0, #1
|
||||
ldrb r0, [r1, r0]
|
||||
bx lr
|
||||
|
@ -143,9 +143,9 @@ PicoRead8_mcd_io:
|
|||
cmp r1, #0x2000 @ a120xx?
|
||||
bne PicoRead8_io
|
||||
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
and r0, r0, #0x3f
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r1, [r1] @ Pico.mcd
|
||||
cmp r0, #0x0e
|
||||
PIC_XB(lt ,r0, lsl #2)
|
||||
b m_m68k_read8_hi
|
||||
|
@ -242,9 +242,9 @@ PicoReadM68k16_cell1: @ 0x220000 - 0x23ffff, cell arranged
|
|||
mov r3, #0x0e0000
|
||||
0:
|
||||
cell_map
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
add r0, r0, r3
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r1, [r1] @ Pico.mcd
|
||||
bic r0, r0, #1
|
||||
ldrh r0, [r1, r0]
|
||||
bx lr
|
||||
|
@ -256,9 +256,9 @@ PicoRead16_mcd_io:
|
|||
bne PicoRead16_io
|
||||
|
||||
m_m68k_read16_m68k_regs:
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
and r0, r0, #0x3e
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r1, [r1, @ Pico.mcd
|
||||
cmp r0, #0x0e
|
||||
PIC_XB(lt ,r0, lsl #1)
|
||||
b m_m68k_read16_hi
|
||||
|
@ -333,9 +333,9 @@ PicoWriteM68k8_cell1: @ 0x220000 - 0x23ffff, cell arranged
|
|||
0:
|
||||
mov r3, r1
|
||||
cell_map
|
||||
PIC_LDR(r2, r1, Pico)
|
||||
PIC_LDR(r2, r1, Pico_mcd)
|
||||
add r0, r0, r12
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
ldr r2, [r2]
|
||||
eor r0, r0, #1
|
||||
strb r3, [r2, r0]
|
||||
|
@ -361,9 +361,9 @@ PicoWriteM68k16_cell1: @ 0x220000 - 0x23ffff, cell arranged
|
|||
0:
|
||||
mov r3, r1
|
||||
cell_map
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
add r0, r0, r12
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r1, [r1] @ Pico.mcd
|
||||
bic r0, r0, #1
|
||||
strh r3, [r1, r0]
|
||||
bx lr
|
||||
|
@ -403,9 +403,9 @@ PicoReadS68k8_dec0: @ 0x080000 - 0x0bffff
|
|||
PicoReadS68k8_dec1:
|
||||
mov r3, #0x0a0000 @ + ^ / 2
|
||||
0:
|
||||
PIC_LDR(r2, r1, Pico)
|
||||
PIC_LDR(r2, r1, Pico_mcd)
|
||||
eor r0, r0, #2
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
movs r0, r0, lsr #1 @ +4-6 <<16
|
||||
add r2, r2, r3 @ map to our address
|
||||
ldrb r0, [r2, r0]
|
||||
|
@ -435,8 +435,8 @@ m_s68k_read8_regs:
|
|||
bx lr
|
||||
|
||||
m_s68k_read8_comm:
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
ldr r1, [r1] @ Pico.mcd
|
||||
add r1, r1, #0x110000
|
||||
ldrb r1, [r1, r0]
|
||||
bic r0, r0, #1
|
||||
|
@ -448,9 +448,9 @@ m_s68k_read8_pcm:
|
|||
bne m_read_null
|
||||
|
||||
@ must not trash r3 and r12
|
||||
PIC_LDR(r1, r2, Pico)
|
||||
PIC_LDR(r1, r2, Pico_mcd)
|
||||
bic r0, r0, #0xff0000
|
||||
ldr r1, [r1, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r1, [r1] @ Pico.mcd
|
||||
mov r2, #0x110000
|
||||
orr r2, r2, #0x002200
|
||||
cmp r0, #0x2000
|
||||
|
@ -483,9 +483,9 @@ PicoReadS68k16_dec0: @ 0x080000 - 0x0bffff
|
|||
PicoReadS68k16_dec1:
|
||||
mov r3, #0x0a0000 @ + ^ / 2
|
||||
0:
|
||||
PIC_LDR(r2, r1, Pico)
|
||||
PIC_LDR(r2, r1, Pico_mcd)
|
||||
eor r0, r0, #2
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
mov r0, r0, lsr #1 @ +4-6 <<16
|
||||
add r2, r2, r3 @ map to our address
|
||||
ldrb r0, [r2, r0]
|
||||
|
@ -513,9 +513,9 @@ m_s68k_read16_regs:
|
|||
|
||||
|
||||
.macro m_s68k_write8_2M_decode
|
||||
PIC_LDR(r2, ip, Pico)
|
||||
PIC_LDR(r2, ip, Pico_mcd)
|
||||
eor r0, r0, #2
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
movs r0, r0, lsr #1 @ +4-6 <<16
|
||||
add r2, r2, r3 @ map to our address
|
||||
.endm
|
||||
|
@ -597,9 +597,9 @@ m_s68k_write8_pcm:
|
|||
bxlt lr
|
||||
|
||||
m_s68k_write8_pcm_ram:
|
||||
PIC_LDR(r3, r2, Pico)
|
||||
PIC_LDR(r3, r2, Pico_mcd)
|
||||
bic r0, r0, #0x00e000
|
||||
ldr r3, [r3, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r3, [r3] @ Pico.mcd
|
||||
mov r0, r0, lsr #1
|
||||
add r2, r3, #0x110000
|
||||
add r2, r2, #0x002200
|
||||
|
@ -615,9 +615,9 @@ m_s68k_write8_pcm_ram:
|
|||
|
||||
|
||||
.macro m_s68k_write16_2M_decode
|
||||
PIC_LDR(r2, ip, Pico)
|
||||
PIC_LDR(r2, ip, Pico_mcd)
|
||||
eor r0, r0, #2
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
mov r0, r0, lsr #1 @ +4-6 <<16
|
||||
add r2, r2, r3 @ map to our address
|
||||
.endm
|
||||
|
@ -696,9 +696,9 @@ m_s68k_write16_regs:
|
|||
bne s68k_reg_write16
|
||||
|
||||
m_s68k_write16_regs_spec: @ special case
|
||||
PIC_LDR(r2, r0, Pico)
|
||||
PIC_LDR(r2, r0, Pico_mcd)
|
||||
mov r0, #0x110000
|
||||
ldr r2, [r2, #OFS_Pico_rom] @ Pico.mcd
|
||||
ldr r2, [r2] @ Pico.mcd
|
||||
add r0, r0, #0x00000f
|
||||
strb r1, [r2, r0] @ if (a == 0xe) s68k_regs[0xf] = d;
|
||||
bx lr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue