summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i8255.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/i8255.cpp')
-rw-r--r--src/devices/machine/i8255.cpp63
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);