trunk/src/mess/machine/kb_pcxt83.c
| r24016 | r24017 | |
| 281 | 281 | // state saving |
| 282 | 282 | save_item(NAME(m_p1)); |
| 283 | 283 | save_item(NAME(m_p2)); |
| 284 | save_item(NAME(m_md)); |
| 285 | save_item(NAME(m_sense)); |
| 284 | 286 | } |
| 285 | 287 | |
| 286 | 288 | |
| r24016 | r24017 | |
| 336 | 338 | |
| 337 | 339 | m_pc_kbdc->data_write_from_kb(BIT(data, 5)); |
| 338 | 340 | m_pc_kbdc->clock_write_from_kb(BIT(data, 6)); |
| 341 | |
| 342 | if (BIT(data, 7)) |
| 343 | { |
| 344 | m_md = (m_p2 & 0xf0) << 4 | m_p1; |
| 345 | } |
| 339 | 346 | } |
| 340 | 347 | |
| 341 | 348 | |
| r24016 | r24017 | |
| 377 | 384 | 0 SELECT 2 |
| 378 | 385 | 1 SELECT 1 |
| 379 | 386 | 2 SELECT 0 |
| 380 | | 3 SA CLOSED, T1 |
| 387 | 3 SA CLOSED |
| 381 | 388 | 4 MD08 |
| 382 | 389 | 5 MD09 |
| 383 | 390 | 6 MD10 |
| r24016 | r24017 | |
| 385 | 392 | |
| 386 | 393 | */ |
| 387 | 394 | |
| 395 | if (!BIT(m_p2, 3) && BIT(data, 3)) |
| 396 | { |
| 397 | m_sense = data & 0x07; |
| 398 | } |
| 399 | |
| 388 | 400 | m_p2 = data; |
| 389 | 401 | } |
| 390 | 402 | |
| r24016 | r24017 | |
| 417 | 429 | { |
| 418 | 430 | UINT8 data = 0xff; |
| 419 | 431 | |
| 420 | | logerror("md %03x sense %01x\n", m_p2 << 4 | m_p1, m_p2&0x07); |
| 432 | if (BIT(m_md, 0)) data &= m_md00->read(); |
| 433 | if (BIT(m_md, 1)) data &= m_md01->read(); |
| 434 | if (BIT(m_md, 2)) data &= m_md02->read(); |
| 435 | if (BIT(m_md, 3)) data &= m_md03->read(); |
| 436 | if (BIT(m_md, 4)) data &= m_md04->read(); |
| 437 | if (BIT(m_md, 5)) data &= m_md05->read(); |
| 438 | if (BIT(m_md, 6)) data &= m_md06->read(); |
| 439 | if (BIT(m_md, 7)) data &= m_md07->read(); |
| 440 | if (BIT(m_md, 8)) data &= m_md08->read(); |
| 441 | if (BIT(m_md, 9)) data &= m_md09->read(); |
| 442 | if (BIT(m_md, 10)) data &= m_md10->read(); |
| 443 | if (BIT(m_md, 11)) data &= m_md11->read(); |
| 421 | 444 | |
| 422 | | if (BIT(m_p1, 0)) data &= m_md00->read(); |
| 423 | | if (BIT(m_p1, 1)) data &= m_md01->read(); |
| 424 | | if (BIT(m_p1, 2)) data &= m_md02->read(); |
| 425 | | if (BIT(m_p1, 3)) data &= m_md03->read(); |
| 426 | | if (BIT(m_p1, 4)) data &= m_md04->read(); |
| 427 | | if (BIT(m_p1, 5)) data &= m_md05->read(); |
| 428 | | if (BIT(m_p1, 6)) data &= m_md06->read(); |
| 429 | | if (BIT(m_p1, 7)) data &= m_md07->read(); |
| 430 | | if (BIT(m_p2, 4)) data &= m_md08->read(); |
| 431 | | if (BIT(m_p2, 5)) data &= m_md09->read(); |
| 432 | | if (BIT(m_p2, 6)) data &= m_md10->read(); |
| 433 | | if (BIT(m_p2, 7)) data &= m_md11->read(); |
| 434 | | |
| 435 | | return BIT(m_p2, 3) && BIT(data, m_p2 & 0x07); |
| 445 | return BIT(data, m_sense); |
| 436 | 446 | } |