summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-04-15 15:42:52 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-04-15 15:43:04 -0400
commit445858d6837a4607eb4fa62f1bffeea75d8dc577 (patch)
tree9f4369707ba53586a0692af574819eef0205853a
parent52b0ef3911627099d7f74e948b84b0fb9bf4e954 (diff)
i8251: Improve logging; restrict external command_w and mode_w access to V53 variant (nw)
-rw-r--r--src/devices/machine/i8251.cpp21
-rw-r--r--src/devices/machine/i8251.h8
-rw-r--r--src/emu/diserial.cpp1
3 files changed, 24 insertions, 6 deletions
diff --git a/src/devices/machine/i8251.cpp b/src/devices/machine/i8251.cpp
index 048e4bc9947..6760e5de2d7 100644
--- a/src/devices/machine/i8251.cpp
+++ b/src/devices/machine/i8251.cpp
@@ -186,6 +186,7 @@ void i8251_device::check_for_tx_start()
-------------------------------------------------*/
void i8251_device::start_tx()
{
+ LOG("start_tx %02x\n", m_tx_data);
transmit_register_setup(m_tx_data);
m_status &= ~I8251_STATUS_TX_EMPTY;
m_status |= I8251_STATUS_TX_READY;
@@ -340,7 +341,7 @@ void i8251_device::device_reset()
control_w
-------------------------------------------------*/
-WRITE8_MEMBER(i8251_device::command_w)
+void i8251_device::command_w(uint8_t data)
{
/* command */
LOG("I8251: Command byte\n");
@@ -419,7 +420,7 @@ WRITE8_MEMBER(i8251_device::command_w)
update_tx_empty();
}
-WRITE8_MEMBER(i8251_device::mode_w)
+void i8251_device::mode_w(uint8_t data)
{
LOG("I8251: Mode byte = %X\n", data);
@@ -597,12 +598,12 @@ WRITE8_MEMBER(i8251_device::control_w)
}
else
{
- mode_w(space, offset, data);
+ mode_w(data);
}
}
else
{
- command_w(space, offset, data);
+ command_w(data);
}
}
@@ -660,6 +661,8 @@ WRITE8_MEMBER(i8251_device::data_w)
void i8251_device::receive_character(uint8_t ch)
{
+ LOG("receive_character %02x\n", ch);
+
m_rx_data = ch;
/* char has not been read and another has arrived! */
@@ -735,3 +738,13 @@ WRITE_LINE_MEMBER(i8251_device::write_txc)
transmit_clock();
}
}
+
+WRITE8_MEMBER(v53_scu_device::command_w)
+{
+ command_w(data);
+}
+
+WRITE8_MEMBER(v53_scu_device::mode_w)
+{
+ mode_w(data);
+}
diff --git a/src/devices/machine/i8251.h b/src/devices/machine/i8251.h
index 82659caed11..cf966ac2693 100644
--- a/src/devices/machine/i8251.h
+++ b/src/devices/machine/i8251.h
@@ -57,8 +57,6 @@ public:
DECLARE_WRITE8_MEMBER(data_w);
DECLARE_READ8_MEMBER(status_r);
DECLARE_WRITE8_MEMBER(control_w);
- DECLARE_WRITE8_MEMBER(command_w);
- DECLARE_WRITE8_MEMBER(mode_w);
DECLARE_WRITE_LINE_MEMBER( write_rxd );
DECLARE_WRITE_LINE_MEMBER( write_cts );
@@ -96,6 +94,9 @@ protected:
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ void command_w(uint8_t data);
+ void mode_w(uint8_t data);
+
void update_rx_ready();
void update_tx_ready();
void update_tx_empty();
@@ -156,6 +157,9 @@ class v53_scu_device : public i8251_device
public:
// construction/destruction
v53_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_WRITE8_MEMBER(command_w);
+ DECLARE_WRITE8_MEMBER(mode_w);
};
diff --git a/src/emu/diserial.cpp b/src/emu/diserial.cpp
index 9fae3f494f8..76209dfb35a 100644
--- a/src/emu/diserial.cpp
+++ b/src/emu/diserial.cpp
@@ -441,6 +441,7 @@ u8 device_serial_interface::transmit_register_get_data_bit()
bit = (m_tra_register_data>>(m_tra_bit_count-1-m_tra_bit_count_transmitted))&1;
m_tra_bit_count_transmitted++;
+ //device().logerror("%d bits transmitted\n", m_tra_bit_count_transmitted);
/* have all bits of this stream formatted byte been sent? */
if (m_tra_bit_count_transmitted==m_tra_bit_count)