summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/abc77.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/machine/abc77.c')
-rw-r--r--src/mess/machine/abc77.c43
1 files changed, 40 insertions, 3 deletions
diff --git a/src/mess/machine/abc77.c b/src/mess/machine/abc77.c
index 00432bd3651..50824502b3e 100644
--- a/src/mess/machine/abc77.c
+++ b/src/mess/machine/abc77.c
@@ -448,6 +448,18 @@ abc77_device::abc77_device(const machine_config &mconfig, const char *tag, devic
: device_t(mconfig, ABC77, "Luxor ABC 77", tag, owner, clock),
m_maincpu(*this, I8035_TAG),
m_discrete(*this, DISCRETE_TAG),
+ m_x0(*this, "X0"),
+ m_x1(*this, "X1"),
+ m_x2(*this, "X2"),
+ m_x3(*this, "X3"),
+ m_x4(*this, "X4"),
+ m_x5(*this, "X5"),
+ m_x6(*this, "X6"),
+ m_x7(*this, "X7"),
+ m_x8(*this, "X8"),
+ m_x9(*this, "X9"),
+ m_x10(*this, "X10"),
+ m_x11(*this, "X11"),
m_txd(1),
m_keydown(1),
m_clock(0),
@@ -459,6 +471,18 @@ abc77_device::abc77_device(const machine_config &mconfig, device_type type, cons
: device_t(mconfig, type, name, tag, owner, clock),
m_maincpu(*this, I8035_TAG),
m_discrete(*this, DISCRETE_TAG),
+ m_x0(*this, "X0"),
+ m_x1(*this, "X1"),
+ m_x2(*this, "X2"),
+ m_x3(*this, "X3"),
+ m_x4(*this, "X4"),
+ m_x5(*this, "X5"),
+ m_x6(*this, "X6"),
+ m_x7(*this, "X7"),
+ m_x8(*this, "X8"),
+ m_x9(*this, "X9"),
+ m_x10(*this, "X10"),
+ m_x11(*this, "X11"),
m_txd(1),
m_keydown(1),
m_clock(0),
@@ -545,12 +569,25 @@ READ8_MEMBER( abc77_device::p1_r )
*/
- static const char *const keynames[] = { "X0", "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "X11" };
UINT8 data = 0xff;
- if (m_stb && m_keylatch < 12)
+ if (m_stb)
{
- data = ioport(keynames[m_keylatch])->read();
+ switch (m_keylatch)
+ {
+ case 0: data = m_x0->read(); break;
+ case 1: data = m_x1->read(); break;
+ case 2: data = m_x2->read(); break;
+ case 3: data = m_x3->read(); break;
+ case 4: data = m_x4->read(); break;
+ case 5: data = m_x5->read(); break;
+ case 6: data = m_x6->read(); break;
+ case 7: data = m_x7->read(); break;
+ case 8: data = m_x8->read(); break;
+ case 9: data = m_x9->read(); break;
+ case 10: data = m_x10->read(); break;
+ case 11: data = m_x11->read(); break;
+ }
}
return data;