From 9eba6f1517e65d0a4450af2e68af7177d17367cd Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Tue, 2 Jun 2009 06:49:59 +0000 Subject: [PATCH] [Z80PIO] Added alternate read/write handlers. --- src/emu/machine/z80pio.c | 14 ++++++++++++++ src/emu/machine/z80pio.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/emu/machine/z80pio.c b/src/emu/machine/z80pio.c index 1070450a3f4..6643251b43a 100644 --- a/src/emu/machine/z80pio.c +++ b/src/emu/machine/z80pio.c @@ -532,6 +532,20 @@ WRITE8_DEVICE_HANDLER(z80pio_w) z80pio_d_w(device, offset & 1, data); } +READ8_DEVICE_HANDLER(z80pio_alt_r) +{ + int channel = BIT(offset, 1); + return (offset & 1) ? z80pio_c_r(device, channel) : z80pio_d_r(device, channel); +} + +WRITE8_DEVICE_HANDLER(z80pio_alt_w) +{ + int channel = BIT(offset, 1); + if (offset & 1) + z80pio_c_w(device, channel, data); + else + z80pio_d_w(device, channel, data); +} static DEVICE_START( z80pio ) { diff --git a/src/emu/machine/z80pio.h b/src/emu/machine/z80pio.h index 9b7b490d4ba..187210f8434 100644 --- a/src/emu/machine/z80pio.h +++ b/src/emu/machine/z80pio.h @@ -104,6 +104,8 @@ void z80pio_bstb_w(const device_config *device, int state); ***************************************************************************/ READ8_DEVICE_HANDLER(z80pio_r); WRITE8_DEVICE_HANDLER(z80pio_w); +READ8_DEVICE_HANDLER(z80pio_alt_r); +WRITE8_DEVICE_HANDLER(z80pio_alt_w); /* ----- device interface ----- */