trunk/src/mess/machine/mz700.c
| r17657 | r17658 | |
| 436 | 436 | static READ8_DEVICE_HANDLER( pio_port_b_r ) |
| 437 | 437 | { |
| 438 | 438 | int key_line = dynamic_cast<ttl74145_device *>(device)->read(); |
| 439 | const char *const keynames[10] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7", "ROW8", "ROW9" }; |
| 440 | int i; |
| 441 | UINT8 res = 0; |
| 439 | 442 | |
| 440 | | switch (key_line) |
| 443 | for(i=0;i<10;i++) |
| 441 | 444 | { |
| 442 | | case 1 << 0: return device->machine().root_device().ioport("ROW0")->read(); |
| 443 | | case 1 << 1: return device->machine().root_device().ioport("ROW1")->read(); |
| 444 | | case 1 << 2: return device->machine().root_device().ioport("ROW2")->read(); |
| 445 | | case 1 << 3: return device->machine().root_device().ioport("ROW3")->read(); |
| 446 | | case 1 << 4: return device->machine().root_device().ioport("ROW4")->read(); |
| 447 | | case 1 << 5: return device->machine().root_device().ioport("ROW5")->read(); |
| 448 | | case 1 << 6: return device->machine().root_device().ioport("ROW6")->read(); |
| 449 | | case 1 << 7: return device->machine().root_device().ioport("ROW7")->read(); |
| 450 | | case 1 << 8: return device->machine().root_device().ioport("ROW8")->read(); |
| 451 | | case 1 << 9: return device->machine().root_device().ioport("ROW9")->read(); |
| 445 | if(key_line & (1 << i)) |
| 446 | res |= device->machine().root_device().ioport(keynames[i])->read(); |
| 452 | 447 | } |
| 453 | 448 | |
| 454 | | /* should never reach this */ |
| 455 | | return 0xff; |
| 449 | return res; |
| 456 | 450 | } |
| 457 | 451 | |
| 458 | 452 | /* |