X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2FDrZ80%2Fdrz80.s;h=ee140130b06845ada79e6da2336f0520cf75be7f;hb=ce5be1b51a71786c90d373ffb7f92dc8245f9b12;hp=53f4c988047eb313e28ac8f7a7beb263e11a4b57;hpb=e5503e2f4fe1c7ccc46c493a1596fb0e416f678e;p=picodrive.git diff --git a/cpu/DrZ80/drz80.s b/cpu/DrZ80/drz80.s index 53f4c98..ee14013 100644 --- a/cpu/DrZ80/drz80.s +++ b/cpu/DrZ80/drz80.s @@ -21,14 +21,10 @@ .endif .if DRZ80_FOR_PICODRIVE -.include "port_config.s" - .extern YM2612Read_ -.if EXTERNAL_YM2612 - .extern YM2612Read_940 -.endif .extern PicoRead8 .extern Pico .extern z80_write + .extern ym2612_st .endif DrZ80Ver: .long 0x0001 @@ -111,37 +107,18 @@ DrZ80Ver: .long 0x0001 .if DRZ80_FOR_PICODRIVE .macro YM2612Read_and_ret8 - stmfd sp!,{r3,r12,lr} -.if EXTERNAL_YM2612 - ldr r1,=PicoOpt - ldr r1,[r1] - tst r1,#0x200 - ldrne r2, =YM2612Read_940 - ldreq r2, =YM2612Read_ - mov lr,pc - bx r2 -.else - bl YM2612Read_ -.endif - ldmfd sp!,{r3,r12,pc} + ldr r0, =ym2612_st + ldr r0, [r0] + ldrb r0, [r0, #0x11] ;@ ym2612_st->status + bx lr .endm .macro YM2612Read_and_ret16 - stmfd sp!,{r3,r12,lr} -.if EXTERNAL_YM2612 - ldr r0,=PicoOpt - ldr r0,[r0] - tst r0,#0x200 - ldrne r2, =YM2612Read_940 - ldreq r2, =YM2612Read_ - mov lr,pc - bx r2 - orr r0,r0,r0,lsl #8 -.else - bl YM2612Read_ + ldr r0, =ym2612_st + ldr r0, [r0] + ldrb r0, [r0, #0x11] ;@ ym2612_st->status orr r0,r0,r0,lsl #8 -.endif - ldmfd sp!,{r3,r12,pc} + bx lr .endm pico_z80_read8: @ addr @@ -214,13 +191,13 @@ pico_z80_read16: @ addr add r0,r4,#1 bl PicoRead8 orr r0,r5,r0,lsl #8 - ldmfd sp!,{r3-r5,r12,pc} + ldmfd sp!,{r3-r5,r12,pc} 1: mov r1,r0,lsr #13 cmp r1,#2 @ YM2612 (0x4000-0x5fff) bne 0f and r0,r0,#3 - YM2612Read_and_ret16 + YM2612Read_and_ret16 0: cmp r0,#0x4000 movge r0,#0xff @@ -1459,7 +1436,6 @@ DoInterrupt: bne DoInterrupt_mode1 tst r1,#2 bne DoInterrupt_mode2 - b DoInterrupt_mode0 DoInterrupt_mode0: ;@ get 3 byte vector @@ -6669,11 +6645,14 @@ opcode_DD_NF: ;@ mov r0,#0xFD00 ;@ orr r0,r0,r1 ;@ b end_loop + opcode_DD_NF2: - mov r0,#0xDD0000 - orr r0,r0,#0xCB00 - orr r0,r0,r1 - b end_loop + fetch 15 +;@ notaz: we don't want to deadlock here +;@ mov r0,#0xDD0000 +;@ orr r0,r0,#0xCB00 +;@ orr r0,r0,r1 +;@ b end_loop ;@ADD IX,BC opcode_DD_09: @@ -8068,8 +8047,8 @@ opcode_ED_BB: ;@from the DD location but the address of the IY reg is passed instead ;@of IX -end_loop: - b end_loop +;@end_loop: +;@ b end_loop