diff options
author | 2012-09-05 14:00:09 +0000 | |
---|---|---|
committer | 2012-09-05 14:00:09 +0000 | |
commit | 6fbb9a73e027619613a6088efe11e2720c8c1d8c (patch) | |
tree | 8bb7d5bec8489ecf6b348f3b128cdb934e50d039 /src | |
parent | 90a119f9bcb9e086ef598b00d268b7f28620ebd5 (diff) |
MZ700: cleaned up the keyboard code, nw
Diffstat (limited to 'src')
-rw-r--r-- | src/mess/machine/mz700.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/mess/machine/mz700.c b/src/mess/machine/mz700.c index 1594c12ae82..601949f77c5 100644 --- a/src/mess/machine/mz700.c +++ b/src/mess/machine/mz700.c @@ -436,23 +436,17 @@ static WRITE_LINE_DEVICE_HANDLER( pit_irq_2 ) static READ8_DEVICE_HANDLER( pio_port_b_r ) { int key_line = dynamic_cast<ttl74145_device *>(device)->read(); + const char *const keynames[10] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7", "ROW8", "ROW9" }; + int i; + UINT8 res = 0; - switch (key_line) + for(i=0;i<10;i++) { - case 1 << 0: return device->machine().root_device().ioport("ROW0")->read(); - case 1 << 1: return device->machine().root_device().ioport("ROW1")->read(); - case 1 << 2: return device->machine().root_device().ioport("ROW2")->read(); - case 1 << 3: return device->machine().root_device().ioport("ROW3")->read(); - case 1 << 4: return device->machine().root_device().ioport("ROW4")->read(); - case 1 << 5: return device->machine().root_device().ioport("ROW5")->read(); - case 1 << 6: return device->machine().root_device().ioport("ROW6")->read(); - case 1 << 7: return device->machine().root_device().ioport("ROW7")->read(); - case 1 << 8: return device->machine().root_device().ioport("ROW8")->read(); - case 1 << 9: return device->machine().root_device().ioport("ROW9")->read(); + if(key_line & (1 << i)) + res |= device->machine().root_device().ioport(keynames[i])->read(); } - /* should never reach this */ - return 0xff; + return res; } /* |