diff options
Diffstat (limited to 'src/devices/machine/i8255.cpp')
-rw-r--r-- | src/devices/machine/i8255.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/src/devices/machine/i8255.cpp b/src/devices/machine/i8255.cpp index d5da10ecf78..bbe98df89e2 100644 --- a/src/devices/machine/i8255.cpp +++ b/src/devices/machine/i8255.cpp @@ -9,15 +9,15 @@ #include "emu.h" #include "i8255.h" +//#define VERBOSE 1 +#include "logmacro.h" + //************************************************************************** // MACROS / CONSTANTS //************************************************************************** -#define LOG 0 - - enum { PORT_A = 0, @@ -63,7 +63,7 @@ enum // DEVICE DEFINITIONS //************************************************************************** -const device_type I8255 = device_creator<i8255_device>; +DEFINE_DEVICE_TYPE(I8255, i8255_device, "i8255", "Intel 8255 PPI") const device_type I8255A = I8255; @@ -105,7 +105,7 @@ inline void i8255_device::check_interrupt(int port) inline void i8255_device::set_ibf(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c IBF: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c IBF: %u\n", 'A' + port, state); m_ibf[port] = state; @@ -119,7 +119,7 @@ inline void i8255_device::set_ibf(int port, int state) inline void i8255_device::set_obf(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c OBF: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c OBF: %u\n", 'A' + port, state); m_obf[port] = state; @@ -133,7 +133,7 @@ inline void i8255_device::set_obf(int port, int state) inline void i8255_device::set_inte(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c INTE: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c INTE: %u\n", 'A' + port, state); m_inte[port] = state; @@ -147,7 +147,7 @@ inline void i8255_device::set_inte(int port, int state) inline void i8255_device::set_inte1(int state) { - if (LOG) logerror("I8255 '%s' Port A INTE1: %u\n", tag(), state); + LOG("I8255 Port A INTE1: %u\n", state); m_inte1 = state; @@ -161,7 +161,7 @@ inline void i8255_device::set_inte1(int state) inline void i8255_device::set_inte2(int state) { - if (LOG) logerror("I8255 '%s' Port A INTE2: %u\n", tag(), state); + LOG("I8255 Port A INTE2: %u\n", state); m_inte2 = state; @@ -175,7 +175,7 @@ inline void i8255_device::set_inte2(int state) inline void i8255_device::set_intr(int port, int state) { - if (LOG) logerror("I8255 '%s' Port %c INTR: %u\n", tag(), 'A' + port, state); + LOG("I8255 Port %c INTR: %u\n", 'A' + port, state); m_intr[port] = state; @@ -259,7 +259,7 @@ inline int i8255_device::port_c_upper_mode() //------------------------------------------------- i8255_device::i8255_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, I8255, "8255 PPI", tag, owner, clock, "i8255", __FILE__), + : device_t(mconfig, I8255, tag, owner, clock), m_in_pa_cb(*this), m_in_pb_cb(*this), m_in_pc_cb(*this), @@ -659,15 +659,12 @@ void i8255_device::set_mode(uint8_t data) m_out_pa_cb((offs_t)0, 0xff); } - if (LOG) - { - logerror("I8255 '%s' Group A Mode: %u\n", tag(), group_mode(GROUP_A)); - logerror("I8255 '%s' Port A Mode: %s\n", tag(), (port_mode(PORT_A) == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Port C Upper Mode: %s\n", tag(), (port_c_upper_mode() == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Group B Mode: %u\n", tag(), group_mode(GROUP_B)); - logerror("I8255 '%s' Port B Mode: %s\n", tag(), (port_mode(PORT_B) == MODE_OUTPUT) ? "output" : "input"); - logerror("I8255 '%s' Port C Lower Mode: %s\n", tag(), (port_c_lower_mode() == MODE_OUTPUT) ? "output" : "input"); - } + LOG("I8255 Group A Mode: %u\n", group_mode(GROUP_A)); + LOG("I8255 Port A Mode: %s\n", (port_mode(PORT_A) == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Port C Upper Mode: %s\n", (port_c_upper_mode() == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Group B Mode: %u\n", group_mode(GROUP_B)); + LOG("I8255 Port B Mode: %s\n", (port_mode(PORT_B) == MODE_OUTPUT) ? "output" : "input"); + LOG("I8255 Port C Lower Mode: %s\n", (port_c_lower_mode() == MODE_OUTPUT) ? "output" : "input"); // group B m_output[PORT_B] = 0; @@ -778,7 +775,7 @@ READ8_MEMBER( i8255_device::read ) case MODE_1: data = read_mode1(PORT_A); break; case MODE_2: data = read_mode2(); break; } - if (LOG) logerror("I8255 '%s' Port A Read: %02x\n", tag(), data); + LOG("I8255 Port A Read: %02x\n", data); break; case PORT_B: @@ -787,17 +784,17 @@ READ8_MEMBER( i8255_device::read ) case MODE_0: data = read_mode0(PORT_B); break; case MODE_1: data = read_mode1(PORT_B); break; } - if (LOG) logerror("I8255 '%s' Port B Read: %02x\n", tag(), data); + LOG("I8255 Port B Read: %02x\n", data); break; case PORT_C: data = read_pc(); - if (LOG) logerror("I8255 '%s' Port C Read: %02x\n", tag(), data); + LOG("I8255 Port C Read: %02x\n", data); break; case CONTROL: data = m_control; - if (LOG) logerror("I8255 '%s' Mode Control Word Read: %02x\n", tag(), data); + LOG("I8255 Mode Control Word Read: %02x\n", data); break; } @@ -814,7 +811,7 @@ WRITE8_MEMBER( i8255_device::write ) switch (offset & 0x03) { case PORT_A: - if (LOG) logerror("I8255 '%s' Port A Write: %02x\n", tag(), data); + LOG("I8255 Port A Write: %02x\n", data); switch (group_mode(GROUP_A)) { @@ -825,7 +822,7 @@ WRITE8_MEMBER( i8255_device::write ) break; case PORT_B: - if (LOG) logerror("I8255 '%s' Port B Write: %02x\n", tag(), data); + LOG("I8255 Port B Write: %02x\n", data); switch (group_mode(GROUP_B)) { @@ -835,7 +832,7 @@ WRITE8_MEMBER( i8255_device::write ) break; case PORT_C: - if (LOG) logerror("I8255 '%s' Port C Write: %02x\n", tag(), data); + LOG("I8255 Port C Write: %02x\n", data); m_output[PORT_C] = data; output_pc(); @@ -844,7 +841,7 @@ WRITE8_MEMBER( i8255_device::write ) case CONTROL: if (data & CONTROL_MODE_SET) { - if (LOG) logerror("I8255 '%s' Mode Control Word: %02x\n", tag(), data); + LOG("I8255 Mode Control Word: %02x\n", data); set_mode(data); } @@ -853,7 +850,7 @@ WRITE8_MEMBER( i8255_device::write ) int bit = (data >> 1) & 0x07; int state = BIT(data, 0); - if (LOG) logerror("I8255 '%s' %s Port C Bit %u\n", tag(), state ? "Set" : "Reset", bit); + LOG("I8255 %s Port C Bit %u\n", state ? "Set" : "Reset", bit); set_pc_bit(bit, state); } @@ -929,7 +926,7 @@ WRITE_LINE_MEMBER( i8255_device::pc2_w ) // port B acknowledge if (!m_obf[PORT_B] && !state) { - if (LOG) logerror("I8255 '%s' Port B Acknowledge\n", tag()); + LOG("I8255 Port B Acknowledge\n"); // clear output buffer flag set_obf(PORT_B, 1); @@ -940,7 +937,7 @@ WRITE_LINE_MEMBER( i8255_device::pc2_w ) // port B strobe if (!m_ibf[PORT_B] && !state) { - if (LOG) logerror("I8255 '%s' Port B Strobe\n", tag()); + LOG("I8255 Port B Strobe\n"); // read port into latch m_input[PORT_B] = m_in_pb_cb(0); @@ -964,7 +961,7 @@ WRITE_LINE_MEMBER( i8255_device::pc4_w ) // port A strobe if (!m_ibf[PORT_A] && !state) { - if (LOG) logerror("I8255 '%s' Port A Strobe\n", tag()); + LOG("I8255 Port A Strobe\n"); // read port into latch m_input[PORT_A] = m_in_pa_cb(0); @@ -987,7 +984,7 @@ WRITE_LINE_MEMBER( i8255_device::pc6_w ) // port A acknowledge if (!m_obf[PORT_A] && !state) { - if (LOG) logerror("I8255 '%s' Port A Acknowledge\n", tag()); + LOG("I8255 Port A Acknowledge\n"); // clear output buffer flag set_obf(PORT_A, 1); |