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 | /* |