summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/alto2/a2kbd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/alto2/a2kbd.h')
-rw-r--r--src/devices/cpu/alto2/a2kbd.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/devices/cpu/alto2/a2kbd.h b/src/devices/cpu/alto2/a2kbd.h
new file mode 100644
index 00000000000..b7bf6607ee2
--- /dev/null
+++ b/src/devices/cpu/alto2/a2kbd.h
@@ -0,0 +1,109 @@
+// license:BSD-3-Clause
+// copyright-holders:Juergen Buchmueller
+/*****************************************************************************
+ *
+ * Xerox AltoII keyboard hardware (KBD)
+ *
+ *****************************************************************************/
+#ifdef ALTO2_DEFINE_CONSTANTS
+
+//! make an Xerox AltoII key bit mask
+#define MAKE_KEY(a,b) (1 << (b))
+
+#define A2_KEY_5 MAKE_KEY(0,017) //!< normal: 5 shifted: %
+#define A2_KEY_4 MAKE_KEY(0,016) //!< normal: 4 shifted: $
+#define A2_KEY_6 MAKE_KEY(0,015) //!< normal: 6 shifted: ~
+#define A2_KEY_E MAKE_KEY(0,014) //!< normal: e shifted: E
+#define A2_KEY_7 MAKE_KEY(0,013) //!< normal: 7 shifted: &
+#define A2_KEY_D MAKE_KEY(0,012) //!< normal: d shifted: D
+#define A2_KEY_U MAKE_KEY(0,011) //!< normal: u shifted: U
+#define A2_KEY_V MAKE_KEY(0,010) //!< normal: v shifted: V
+#define A2_KEY_0 MAKE_KEY(0,007) //!< normal: 0 shifted: )
+#define A2_KEY_K MAKE_KEY(0,006) //!< normal: k shifted: K
+#define A2_KEY_MINUS MAKE_KEY(0,005) //!< normal: - shifted: _
+#define A2_KEY_P MAKE_KEY(0,004) //!< normal: p shifted: P
+#define A2_KEY_SLASH MAKE_KEY(0,003) //!< normal: / shifted: ?
+#define A2_KEY_BACKSLASH MAKE_KEY(0,002) //!< normal: \ shifted: |
+#define A2_KEY_LF MAKE_KEY(0,001) //!< normal: LF
+#define A2_KEY_BS MAKE_KEY(0,000) //!< normal: BS
+
+#define A2_KEY_3 MAKE_KEY(1,017) //!< normal: 3 shifted: #
+#define A2_KEY_2 MAKE_KEY(1,016) //!< normal: 2 shifted: @
+#define A2_KEY_W MAKE_KEY(1,015) //!< normal: w shifted: W
+#define A2_KEY_Q MAKE_KEY(1,014) //!< normal: q shifted: Q
+#define A2_KEY_S MAKE_KEY(1,013) //!< normal: s shifted: S
+#define A2_KEY_A MAKE_KEY(1,012) //!< normal: a shifted: A
+#define A2_KEY_9 MAKE_KEY(1,011) //!< normal: 9 shifted: (
+#define A2_KEY_I MAKE_KEY(1,010) //!< normal: i shifted: I
+#define A2_KEY_X MAKE_KEY(1,007) //!< normal: x shifted: X
+#define A2_KEY_O MAKE_KEY(1,006) //!< normal: o shifted: O
+#define A2_KEY_L MAKE_KEY(1,005) //!< normal: l shifted: L
+#define A2_KEY_COMMA MAKE_KEY(1,004) //!< normal: , shifted: <
+#define A2_KEY_QUOTE MAKE_KEY(1,003) //!< normal: ' shifted: "
+#define A2_KEY_RBRACKET MAKE_KEY(1,002) //!< normal: ] shifted: }
+#define A2_KEY_BLANK_MID MAKE_KEY(1,001) //!< middle blank key
+#define A2_KEY_BLANK_TOP MAKE_KEY(1,000) //!< top blank key
+
+#define A2_KEY_1 MAKE_KEY(2,017) //!< normal: 1 shifted: !
+#define A2_KEY_ESCAPE MAKE_KEY(2,016) //!< normal: ESC shifted: ?
+#define A2_KEY_TAB MAKE_KEY(2,015) //!< normal: TAB shifted: ?
+#define A2_KEY_F MAKE_KEY(2,014) //!< normal: f shifted: F
+#define A2_KEY_CTRL MAKE_KEY(2,013) //!< CTRL
+#define A2_KEY_C MAKE_KEY(2,012) //!< normal: c shifted: C
+#define A2_KEY_J MAKE_KEY(2,011) //!< normal: j shifted: J
+#define A2_KEY_B MAKE_KEY(2,010) //!< normal: b shifted: B
+#define A2_KEY_Z MAKE_KEY(2,007) //!< normal: z shifted: Z
+#define A2_KEY_LSHIFT MAKE_KEY(2,006) //!< LSHIFT
+#define A2_KEY_PERIOD MAKE_KEY(2,005) //!< normal: . shifted: >
+#define A2_KEY_SEMICOLON MAKE_KEY(2,004) //!< normal: ; shifted: :
+#define A2_KEY_RETURN MAKE_KEY(2,003) //!< RETURN
+#define A2_KEY_LEFTARROW MAKE_KEY(2,002) //!< normal: <- shifted: ^ (caret?)
+#define A2_KEY_DEL MAKE_KEY(2,001) //!< normal: DEL
+#define A2_KEY_MSW_2_17 MAKE_KEY(2,000) //!< unused on Microswitch KDB
+
+#define A2_KEY_R MAKE_KEY(3,017) //!< normal: r shifted: R
+#define A2_KEY_T MAKE_KEY(3,016) //!< normal: t shifted: T
+#define A2_KEY_G MAKE_KEY(3,015) //!< normal: g shifted: G
+#define A2_KEY_Y MAKE_KEY(3,014) //!< normal: y shifted: Y
+#define A2_KEY_H MAKE_KEY(3,013) //!< normal: h shifted: H
+#define A2_KEY_8 MAKE_KEY(3,012) //!< normal: 8 shifted: *
+#define A2_KEY_N MAKE_KEY(3,011) //!< normal: n shifted: N
+#define A2_KEY_M MAKE_KEY(3,010) //!< normal: m shifted: M
+#define A2_KEY_LOCK MAKE_KEY(3,007) //!< LOCK
+#define A2_KEY_SPACE MAKE_KEY(3,006) //!< SPACE
+#define A2_KEY_LBRACKET MAKE_KEY(3,005) //!< normal: [ shifted: {
+#define A2_KEY_EQUALS MAKE_KEY(3,004) //!< normal: = shifted: +
+#define A2_KEY_RSHIFT MAKE_KEY(3,003) //!< RSHIFT
+#define A2_KEY_BLANK_BOT MAKE_KEY(3,002) //!< bottom blank key
+#define A2_KEY_MSW_3_16 MAKE_KEY(3,001) //!< unused on Microswitch KDB
+#define A2_KEY_MSW_3_17 MAKE_KEY(3,000) //!< unused on Microswitch KDB
+
+#define A2_KEY_FR2 MAKE_KEY(0,002) //!< ADL right function key 2
+#define A2_KEY_FL2 MAKE_KEY(0,001) //!< ADL left function key 1
+
+#define A2_KEY_FR4 MAKE_KEY(1,001) //!< ADL right funtion key 4
+#define A2_KEY_BW MAKE_KEY(1,000) //!< ADL BW (?)
+
+#define A2_KEY_FR3 MAKE_KEY(2,002) //!< ADL right function key 3
+#define A2_KEY_FL1 MAKE_KEY(2,001) //!< ADL left function key 1
+#define A2_KEY_FL3 MAKE_KEY(2,000) //!< ADL left function key 3
+
+#define A2_KEY_FR1 MAKE_KEY(3,002) //!< ADL right function key 4
+#define A2_KEY_FL4 MAKE_KEY(3,001) //!< ADL left function key 4
+#define A2_KEY_FR5 MAKE_KEY(3,000) //!< ADL right function key 5
+
+#else // ALTO2_DEFINE_CONSTANTS
+#ifndef _A2KBD_H_
+#define _A2KBD_H_
+struct {
+ UINT16 bootkey; //!< boot key - key code pressed before power on
+ UINT16 matrix[4]; //!< a bit map of the keys pressed (ioports ROW0 ... ROW3)
+} m_kbd;
+
+DECLARE_READ16_MEMBER( kbd_ad_r ); //!< read the keyboard matrix
+
+void init_kbd(UINT16 bootkey = 0177777); //!< initialize the keyboard hardware, optinally set the boot key
+void exit_kbd(); //!< deinitialize the keyboard hardware
+void reset_kbd(); //!< reset the keyboard hardware
+#endif // _A2KBD_H_
+#endif // ALTO2_DEFINE_CONSTANTS