diff options
author | MetalliC <0vetal0@gmail.com> | 2019-11-09 07:52:57 +0200 |
---|---|---|
committer | MetalliC <0vetal0@gmail.com> | 2019-11-09 07:52:57 +0200 |
commit | 873a307e8478bbc68fc43fe6fae25c358c6147b5 (patch) | |
tree | e61bc6820e50027d1d75121180a85c176f28e03d /src/mame | |
parent | 61c32ea23712de3cdc4f9569c18cb43fbdf25a12 (diff) |
315-5649: fix prev (nw)
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/machine/315_5649.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/mame/machine/315_5649.cpp b/src/mame/machine/315_5649.cpp index 54381739954..ef039b08e71 100644 --- a/src/mame/machine/315_5649.cpp +++ b/src/mame/machine/315_5649.cpp @@ -121,12 +121,22 @@ READ8_MEMBER( sega_315_5649_device::read ) data = m_port_value[offset]; break; - // serial channel 1/2 input + // RS-422 channel 1/2 input case 0x0b: data = m_serial_rd_cb[0](0); break; case 0x0c: data = m_serial_rd_cb[1](0); break; - // serial status - case 0x0d: data = 0; break; // not implemented + // RS-422 status + // 7--- ---- RX2IE + // -6-- ---- RX1IE some I-error ? + // --5- ---- RX2FE + // ---4 ---- RX1FE framing error ? + // ---- 3--- RX2BF + // ---- -2-- RX1BF 1 = receive buffer full + // ---- --1- TX2BF + // ---- ---0 TX1BF 1 = transmit buffer full + case 0x0d: + data = 0x0c; // HACK, recv buffers always full, transmit buffers always empty + break; // analog input, auto-increments case 0x0f: @@ -162,11 +172,16 @@ WRITE8_MEMBER( sega_315_5649_device::write ) // port direction register (0 = output, 1 = input) case 0x08: m_port_config = data; break; - // serial channel 1/2 output + // RS-422 channel 1/2 output case 0x09: m_serial_wr_cb[0](data); break; case 0x0a: m_serial_wr_cb[1](data); break; // mode register + // 7--- ---- port G counter mode + // -6-- ---- ? + // --5- ---- RS-422 satellite mode + // ---4 ---- RS-422 loopback + // ---- 3210 RS-422 satellite N# case 0x0e: m_mode = data; break; |