File tree Expand file tree Collapse file tree 1 file changed +25
-35
lines changed Expand file tree Collapse file tree 1 file changed +25
-35
lines changed Original file line number Diff line number Diff line change @@ -38,26 +38,26 @@ namespace {
38
38
39
39
enum
40
40
{
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
49
49
};
50
50
51
51
enum
52
52
{
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
61
61
};
62
62
63
63
class servicet_state : public driver_device
@@ -185,31 +185,21 @@ void servicet_state::port1_w(uint8_t data)
185
185
uint8_t servicet_state::port3_r ()
186
186
{
187
187
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
+
195
194
return data;
196
195
}
197
196
198
197
void servicet_state::port3_w (uint8_t data)
199
198
{
200
- uint8_t changed = m_port3 ^ data;
201
199
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));
213
203
}
214
204
215
205
uint8_t servicet_state::bus_r (offs_t offset)
You can’t perform that action at this time.
0 commit comments