Previous 199869 Revisions Next

r17658 Wednesday 5th September, 2012 at 14:00:09 UTC by Angelo Salese
MZ700: cleaned up the keyboard code, nw
[src/mess/machine]mz700.c

trunk/src/mess/machine/mz700.c
r17657r17658
436436static READ8_DEVICE_HANDLER( pio_port_b_r )
437437{
438438   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;
439442
440   switch (key_line)
443   for(i=0;i<10;i++)
441444   {
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();
452447   }
453448
454   /* should never reach this */
455    return 0xff;
449    return res;
456450}
457451
458452/*

Previous 199869 Revisions Next


© 1997-2024 The MAME Team