.endif\r
\r
.if DRZ80_FOR_PICODRIVE\r
-.include "port_config.s"\r
- .extern YM2612Read_\r
-.if EXTERNAL_YM2612\r
- .extern YM2612Read_940\r
-.endif\r
.extern PicoRead8\r
.extern Pico\r
.extern z80_write\r
+ .extern ym2612_st\r
.endif\r
\r
DrZ80Ver: .long 0x0001\r
.if DRZ80_FOR_PICODRIVE\r
\r
.macro YM2612Read_and_ret8\r
- stmfd sp!,{r3,r12,lr}\r
-.if EXTERNAL_YM2612\r
- ldr r1,=PicoOpt\r
- ldr r1,[r1]\r
- tst r1,#0x200\r
- ldrne r2, =YM2612Read_940\r
- ldreq r2, =YM2612Read_\r
- mov lr,pc\r
- bx r2\r
-.else\r
- bl YM2612Read_\r
-.endif\r
- ldmfd sp!,{r3,r12,pc}\r
+ ldr r0, =ym2612_st\r
+ ldr r0, [r0]\r
+ ldrb r0, [r0, #0x11] ;@ ym2612_st->status\r
+ bx lr\r
.endm\r
\r
.macro YM2612Read_and_ret16\r
- stmfd sp!,{r3,r12,lr}\r
-.if EXTERNAL_YM2612\r
- ldr r0,=PicoOpt\r
- ldr r0,[r0]\r
- tst r0,#0x200\r
- ldrne r2, =YM2612Read_940\r
- ldreq r2, =YM2612Read_\r
- mov lr,pc\r
- bx r2\r
+ ldr r0, =ym2612_st\r
+ ldr r0, [r0]\r
+ ldrb r0, [r0, #0x11] ;@ ym2612_st->status\r
orr r0,r0,r0,lsl #8\r
-.else\r
- bl YM2612Read_\r
- orr r0,r0,r0,lsl #8\r
-.endif\r
- ldmfd sp!,{r3,r12,pc}\r
+ bx lr\r
.endm\r
\r
pico_z80_read8: @ addr\r
add r0,r4,#1\r
bl PicoRead8\r
orr r0,r5,r0,lsl #8\r
- ldmfd sp!,{r3-r5,r12,pc}\r
+ ldmfd sp!,{r3-r5,r12,pc}\r
1:\r
mov r1,r0,lsr #13\r
cmp r1,#2 @ YM2612 (0x4000-0x5fff)\r
bne 0f\r
and r0,r0,#3\r
- YM2612Read_and_ret16\r
+ YM2612Read_and_ret16\r
0:\r
cmp r0,#0x4000\r
movge r0,#0xff\r
bne DoInterrupt_mode1\r
tst r1,#2\r
bne DoInterrupt_mode2\r
- b DoInterrupt_mode0\r
\r
DoInterrupt_mode0:\r
;@ get 3 byte vector\r