mcd, preparations for msu support

This commit is contained in:
kub 2023-05-26 19:09:37 +00:00
parent 178a9b683c
commit 02ff025479
15 changed files with 153 additions and 170 deletions

View file

@ -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