From e2f3522bc2875f402c52d60b759f24b7d5b851f4 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sat, 19 Sep 2009 16:09:36 +0000 Subject: [PATCH] z80dma: implemented fixed port transfer behaviour. --- src/emu/machine/z80dma.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c index 8e2642a8a5c..3ffb569ed37 100644 --- a/src/emu/machine/z80dma.c +++ b/src/emu/machine/z80dma.c @@ -142,7 +142,7 @@ static void z80dma_do_read(const device_config *device) cntx->latch = cntx->intf->memory_read(device, cntx->addressA); else cntx->latch = cntx->intf->portA_read(device, cntx->addressA); - cntx->addressA += PORTA_STEP(cntx); + cntx->addressA += PORTA_FIXED(cntx) ? 0 : PORTA_STEP(cntx); } else { @@ -150,7 +150,8 @@ static void z80dma_do_read(const device_config *device) cntx->latch = cntx->intf->memory_read(device, cntx->addressB); else cntx->latch = cntx->intf->portB_read(device, cntx->addressB); - cntx->addressB += PORTB_STEP(cntx); + + cntx->addressB += PORTB_FIXED(cntx) ? 0 : PORTB_STEP(cntx); } break; case TM_SEARCH: @@ -184,7 +185,8 @@ static int z80dma_do_write(const device_config *device) cntx->intf->memory_write(device, cntx->addressB, cntx->latch); else cntx->intf->portB_write(device, cntx->addressB, cntx->latch); - cntx->addressB += PORTB_STEP(cntx); + + cntx->addressB += PORTB_FIXED(cntx) ? 0 : PORTB_STEP(cntx); } else { @@ -192,7 +194,8 @@ static int z80dma_do_write(const device_config *device) cntx->intf->memory_write(device, cntx->addressA, cntx->latch); else cntx->intf->portB_write(device, cntx->addressA, cntx->latch); - cntx->addressA += PORTA_STEP(cntx); + + cntx->addressA += PORTA_FIXED(cntx) ? 0 : PORTA_STEP(cntx); } cntx->count--; done = (cntx->count == 0xFFFF);