optimizations, fixes, hacks, psp, ...
[picodrive.git] / cpu / DrZ80 / drz80.s
index 5a4801a..ee14013 100644 (file)
 .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
@@ -111,37 +107,18 @@ DrZ80Ver: .long 0x0001
 .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
@@ -214,13 +191,13 @@ pico_z80_read16: @ addr
     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