Skip to content

Commit 5c2802c

Browse files
committed
simplify this a lot
1 parent 9d12ea0 commit 5c2802c

File tree

1 file changed

+25
-35
lines changed

1 file changed

+25
-35
lines changed

src/mame/adp/servicetastatur.cpp

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,26 @@ namespace {
3838

3939
enum
4040
{
41-
PORT_1_COL0 = 1 << 0,
42-
PORT_1_COL1 = 1 << 1,
43-
PORT_1_COL2 = 1 << 2,
44-
PORT_1_NC3 = 1 << 3,
45-
PORT_1_ROW0 = 1 << 4,
46-
PORT_1_ROW1 = 1 << 5,
47-
PORT_1_ROW2 = 1 << 6,
48-
PORT_1_NC7 = 1 << 7,
41+
PORT_1_COL0,
42+
PORT_1_COL1,
43+
PORT_1_COL2,
44+
PORT_1_NC3,
45+
PORT_1_ROW0,
46+
PORT_1_ROW1,
47+
PORT_1_ROW2,
48+
PORT_1_NC7
4949
};
5050

5151
enum
5252
{
53-
PORT_3_RXD = 1 << 0,
54-
PORT_3_TXD = 1 << 1,
55-
PORT_3_INT0 = 1 << 2,
56-
PORT_3_INT1 = 1 << 3,
57-
PORT_3_SDA = 1 << 4,
58-
PORT_3_SCL = 1 << 5,
59-
PORT_3_WR = 1 << 6,
60-
PORT_3_RD = 1 << 7,
53+
PORT_3_RXD,
54+
PORT_3_TXD,
55+
PORT_3_INT0,
56+
PORT_3_INT1,
57+
PORT_3_SDA,
58+
PORT_3_SCL,
59+
PORT_3_WR,
60+
PORT_3_RD
6161
};
6262

6363
class servicet_state : public driver_device
@@ -185,31 +185,21 @@ void servicet_state::port1_w(uint8_t data)
185185
uint8_t servicet_state::port3_r()
186186
{
187187
uint8_t data = m_port3;
188-
189-
// Read SDA line from I2C EEPROM
190-
bool sda_state = m_i2cmem->read_sda();
191-
if (sda_state)
192-
data |= PORT_3_SDA;
193-
else
194-
data &= ~PORT_3_SDA;
188+
189+
uint8_t sda = m_i2cmem->read_sda();
190+
191+
// Clear bit 4 (SDA) and insert actual value from EEPROM
192+
data = (data & ~(1 << PORT_3_SDA)) | (sda << PORT_3_SDA);
193+
195194
return data;
196195
}
197196

198197
void servicet_state::port3_w(uint8_t data)
199198
{
200-
uint8_t changed = m_port3 ^ data;
201199
m_port3 = data;
202-
203-
// Handle I2C signals to EEPROM
204-
if (changed & (PORT_3_SDA | PORT_3_SCL))
205-
{
206-
bool scl = (data & PORT_3_SCL) != 0;
207-
bool sda = (data & PORT_3_SDA) != 0;
208-
209-
// Update I2C EEPROM signals
210-
m_i2cmem->write_scl(scl);
211-
m_i2cmem->write_sda(sda);
212-
}
200+
201+
m_i2cmem->write_sda(BIT(data, PORT_3_SDA));
202+
m_i2cmem->write_scl(BIT(data, PORT_3_SCL));
213203
}
214204

215205
uint8_t servicet_state::bus_r(offs_t offset)

0 commit comments

Comments
 (0)