diff options
Diffstat (limited to 'src/mame/ensoniq/esqpanel.cpp')
| -rw-r--r-- | src/mame/ensoniq/esqpanel.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mame/ensoniq/esqpanel.cpp b/src/mame/ensoniq/esqpanel.cpp index 8ebc4bfd477..3412653d9c2 100644 --- a/src/mame/ensoniq/esqpanel.cpp +++ b/src/mame/ensoniq/esqpanel.cpp @@ -508,11 +508,16 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte // if (data >= 0xe0) LOG("Got %02x from motherboard (second %s)\n", data, m_expect_calibration_second_byte ? "yes" : "no"); - send_to_display(data); + // Set this to `true` to prevent this byte to be sent to the display. + // This lets us avoid sending keyboard calibration and light related + // commands that the display just has to ignore anyway. + bool skip_display = false; + m_external_panel_server->send_to_all(data); if (m_expect_calibration_second_byte) { + skip_display = true; // LOG("second byte is %02x\n", data); if (data == 0xfd) // calibration request { @@ -523,6 +528,8 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } else if (m_expect_light_second_byte) { + skip_display = true; + // Lights on the Buttons, on the VFX-SD: // Number Button // 0 1-6 @@ -552,10 +559,12 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } else if (data == 0xfb) // request calibration { + skip_display = true; m_expect_calibration_second_byte = true; } else if (data == 0xff) // button light state command { + skip_display = true; m_expect_light_second_byte = true; } else @@ -578,6 +587,12 @@ void esqpanel_device::rcv_complete() // Rx completed receiving byte } } } + + // If this was not inhibited, send this to the display as well. + if (!skip_display) + { + send_to_display(data); + } } void esqpanel_device::tra_complete() // Tx completed sending byte |
