Previous 199869 Revisions Next

r20888 Sunday 10th February, 2013 at 10:51:08 UTC by Robbbert
(MESS) fixed multisession crash with any system using generic keyboard.
[src/mess/machine]keyboard.c

trunk/src/mess/machine/keyboard.c
r20887r20888
7878
7979UINT8 generic_keyboard_device::keyboard_handler(UINT8 last_code, UINT8 *scan_line)
8080{
81   static ioport_port *const keynames[] = { m_io_kbd0, m_io_kbd1, m_io_kbd2, m_io_kbd3, m_io_kbd4, m_io_kbd5, m_io_kbd6, m_io_kbd7 };
8281   int i;
83   UINT8 code;
82   UINT8 code = 0;
8483   UINT8 key_code = 0;
8584   UINT8 retVal = 0;
8685   UINT8 shift = BIT(m_io_kbdc->read(), 1);
r20887r20888
8887   UINT8 ctrl  = BIT(m_io_kbdc->read(), 0);
8988   i = *scan_line;
9089   {
91      code = keynames[i]->read();
90      if (i == 0) code = m_io_kbd0->read();
91      else
92      if (i == 1) code = m_io_kbd1->read();
93      else
94      if (i == 2) code = m_io_kbd2->read();
95      else
96      if (i == 3) code = m_io_kbd3->read();
97      else
98      if (i == 4) code = m_io_kbd4->read();
99      else
100      if (i == 5) code = m_io_kbd5->read();
101      else
102      if (i == 6) code = m_io_kbd6->read();
103      else
104      if (i == 7) code = m_io_kbd7->read();
105
92106      if (code != 0)
93107      {
94108         if (i==0 && shift==0) {

Previous 199869 Revisions Next


© 1997-2024 The MAME Team