summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/sunkbd/sparckbd.cpp42
-rw-r--r--src/devices/bus/sunkbd/sparckbd.h10
-rw-r--r--src/devices/bus/sunkbd/sunkbd.cpp8
3 files changed, 28 insertions, 32 deletions
diff --git a/src/devices/bus/sunkbd/sparckbd.cpp b/src/devices/bus/sunkbd/sparckbd.cpp
index d9c8c29c732..2e3dcee19e0 100644
--- a/src/devices/bus/sunkbd/sparckbd.cpp
+++ b/src/devices/bus/sunkbd/sparckbd.cpp
@@ -367,8 +367,8 @@ void sparc_keyboard_device::device_reset()
m_beeper_state = 0;
// configure device_serial_interface
- set_data_frame(1, 8, PARITY_NONE, STOP_BITS_1);
- set_rate(1'200);
+ set_data_frame(START_BIT_COUNT, DATA_BIT_COUNT, PARITY, STOP_BITS);
+ set_rate(BAUD);
receive_register_reset();
transmit_register_reset();
@@ -444,8 +444,6 @@ void sparc_keyboard_device::rcv_complete()
switch (m_rx_state)
{
case RX_LED:
- printf("SPARC keyboard: LED data: %02x\n", code);
- fflush(stdout);
machine().output().set_led_value(LED_NUM, BIT(code, 0));
machine().output().set_led_value(LED_COMPOSE, BIT(code, 1));
machine().output().set_led_value(LED_SCROLL, BIT(code, 2));
@@ -458,43 +456,28 @@ void sparc_keyboard_device::rcv_complete()
case RX_IDLE:
switch (code)
{
- // Reset
- case 0x01U:
- printf("SPARC keyboard: reset\n");
- fflush(stdout);
+ case COMMAND_RESET:
device_reset();
break;
- // Bell on
- case 0x02U:
- printf("SPARC keyboard: bell on\n");
- fflush(stdout);
+ case COMMAND_BELL_ON:
m_beeper_state |= UINT8(BEEPER_BELL);
m_beeper->set_state(m_beeper_state ? 1 : 0);
m_rx_state = RX_IDLE;
break;
- // Bell off
- case 0x03U:
- printf("SPARC keyboard: bell off\n");
- fflush(stdout);
+ case COMMAND_BELL_OFF:
m_beeper_state &= ~UINT8(BEEPER_BELL);
m_beeper->set_state(m_beeper_state ? 1 : 0);
m_rx_state = RX_IDLE;
break;
- // Click on
- case 0x0aU:
- printf("SPARC keyboard: keyclick on\n");
- fflush(stdout);
+ case COMMAND_CLICK_ON:
m_keyclick = 1;
m_rx_state = RX_IDLE;
break;
- // Click off
- case 0x0bU:
- printf("SPARC keyboard: keyclick off\n");
- fflush(stdout);
+ case COMMAND_CLICK_OFF:
m_keyclick = 0;
m_click_timer->reset();
m_beeper_state &= ~UINT8(BEEPER_CLICK);
@@ -502,17 +485,12 @@ void sparc_keyboard_device::rcv_complete()
m_rx_state = RX_IDLE;
break;
- // LED command
- case 0x0eU:
- printf("SPARC keyboard: LED command\n");
- fflush(stdout);
+ case COMMAND_LED:
m_rx_state = RX_LED;
break;
- // Layout command
- case 0x0fU:
- printf("SPARC keyboard: layout command\n");
- fflush(stdout);
+ case COMMAND_LAYOUT:
+ send_byte(0xfeU);
send_byte(UINT8(m_dips->read() & 0x3fU));
m_rx_state = RX_IDLE;
break;
diff --git a/src/devices/bus/sunkbd/sparckbd.h b/src/devices/bus/sunkbd/sparckbd.h
index 2247e7b9d18..2f898fd5f8c 100644
--- a/src/devices/bus/sunkbd/sparckbd.h
+++ b/src/devices/bus/sunkbd/sparckbd.h
@@ -56,6 +56,16 @@ private:
RX_LED
};
+ enum : UINT8 {
+ COMMAND_RESET = 0x01U,
+ COMMAND_BELL_ON = 0x02U,
+ COMMAND_BELL_OFF = 0x03U,
+ COMMAND_CLICK_ON = 0x0aU,
+ COMMAND_CLICK_OFF = 0x0bU,
+ COMMAND_LED = 0x0eU,
+ COMMAND_LAYOUT = 0x0fU
+ };
+
void scan_row();
void send_byte(UINT8 code);
diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp
index 745a63cacf0..6e1bfb54f42 100644
--- a/src/devices/bus/sunkbd/sunkbd.cpp
+++ b/src/devices/bus/sunkbd/sunkbd.cpp
@@ -7,6 +7,14 @@
device_type const SUNKBD_PORT = &device_creator<sun_keyboard_port_device>;
+int const device_sun_keyboard_port_interface::START_BIT_COUNT;
+int const device_sun_keyboard_port_interface::DATA_BIT_COUNT;
+device_serial_interface::parity_t const device_sun_keyboard_port_interface::PARITY;
+device_serial_interface::stop_bits_t const device_sun_keyboard_port_interface::STOP_BITS;
+int const device_sun_keyboard_port_interface::BAUD;
+
+
+
sun_keyboard_port_device::sun_keyboard_port_device(
machine_config const &mconfig,
char const *tag,