summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/apricot
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2016-12-20 12:04:46 +0100
committer Dirk Best <mail@dirk-best.de>2016-12-20 12:04:56 +0100
commit746b030b0e8930089ddac8f3a22f13bd12d62496 (patch)
tree469a4015611f687046a53a4f91a731a26d5b7569 /src/devices/bus/apricot
parent6a5811233cfb03ec03a6613c03a89fad96322f57 (diff)
apricot: Fix keyboard error 31, now displays 'System OK'
Diffstat (limited to 'src/devices/bus/apricot')
-rw-r--r--src/devices/bus/apricot/keyboard/hle.cpp10
-rw-r--r--src/devices/bus/apricot/keyboard/hle.h7
2 files changed, 16 insertions, 1 deletions
diff --git a/src/devices/bus/apricot/keyboard/hle.cpp b/src/devices/bus/apricot/keyboard/hle.cpp
index d0f4eaa41a4..72d8abc771d 100644
--- a/src/devices/bus/apricot/keyboard/hle.cpp
+++ b/src/devices/bus/apricot/keyboard/hle.cpp
@@ -4,6 +4,11 @@
ACT Apricot Keyboard (HLE)
+ TODO:
+ - MicroScreen emulation
+ - Mouse emulation
+ - LEDs
+
Keyboard to System:
- 01-60: Key make codes
- 70-7f: Mouse codes
@@ -308,6 +313,11 @@ void apricot_keyboard_hle_device::received_byte(uint8_t byte)
break;
+ case CMD_KEYBOARD_RESET:
+ logerror("System requests keyboard reset\n");
+ transmit_byte(ACK_DIAGNOSTICS);
+ break;
+
default:
logerror("Unhandled command: %02x\n", byte);
}
diff --git a/src/devices/bus/apricot/keyboard/hle.h b/src/devices/bus/apricot/keyboard/hle.h
index e1cef569472..cc8369d19d0 100644
--- a/src/devices/bus/apricot/keyboard/hle.h
+++ b/src/devices/bus/apricot/keyboard/hle.h
@@ -57,7 +57,12 @@ private:
enum {
CMD_REQ_TIME_AND_DATE = 0xe1,
- CMD_SET_TIME_AND_DATE = 0xe4
+ CMD_SET_TIME_AND_DATE = 0xe4,
+ CMD_KEYBOARD_RESET = 0xe8
+ };
+
+ enum {
+ ACK_DIAGNOSTICS = 0xfb
};
int m_rtc_index;