trunk/src/mess/drivers/sbc6510.c
| r20859 | r20860 | |
| 72 | 72 | UINT8 m_key_row; |
| 73 | 73 | UINT8 m_2; |
| 74 | 74 | required_device<generic_terminal_device> m_terminal; |
| 75 | virtual void machine_start(); |
| 75 | 76 | virtual void machine_reset(); |
| 77 | |
| 78 | protected: |
| 79 | ioport_port *m_io_port[8]; |
| 76 | 80 | }; |
| 77 | 81 | |
| 78 | 82 | |
| r20859 | r20860 | |
| 194 | 198 | }; |
| 195 | 199 | |
| 196 | 200 | |
| 201 | void sbc6510_state::machine_start() |
| 202 | { |
| 203 | char kbdrow[6]; |
| 204 | for ( int i = 0; i < 8; i++ ) |
| 205 | { |
| 206 | sprintf(kbdrow,"X%X",i); |
| 207 | m_io_port[i] = ioport(kbdrow); |
| 208 | } |
| 209 | } |
| 210 | |
| 211 | |
| 197 | 212 | void sbc6510_state::machine_reset() |
| 198 | 213 | { |
| 199 | 214 | } |
| r20859 | r20860 | |
| 221 | 236 | |
| 222 | 237 | READ8_MEMBER( sbc6510_state::key_r ) |
| 223 | 238 | { |
| 224 | | UINT8 i,data=0; |
| 225 | | char kbdrow[6]; |
| 239 | UINT8 data=0; |
| 226 | 240 | |
| 227 | | for (i = 0; i < 8; i++) |
| 228 | | if (!BIT(m_key_row, i)) |
| 241 | for (int i = 0; i < 8; i++) |
| 229 | 242 | { |
| 230 | | sprintf(kbdrow,"X%X",i); |
| 231 | | data |= ioport(kbdrow)->read(); |
| 243 | if (!BIT(m_key_row, i)) |
| 244 | { |
| 245 | data |= m_io_port[i]->read(); |
| 246 | } |
| 232 | 247 | } |
| 233 | 248 | return ~data; |
| 234 | 249 | } |