"get-key-map" is a Forth word that provides a map of all the keys currently
pressed on the keyboard. Since it is only used by BootX to determine if one
of the shortcuts for verbose or single user mode is pressed. It is a waste
of time to provide a full implementation. This just hands out a dummy key
map which specifies verbose mode.
Index: drivers/adb_kbd.c
===================================================================
--- drivers/adb_kbd.c (revision 1041)
+++ drivers/adb_kbd.c (working copy)
@@ -43,10 +43,13 @@
static void keyboard_read(void);
+static void keyboard_get_key_map(void);
+
NODE_METHODS( keyboard ) = {
{ "open", keyboard_open },
{ "close", keyboard_close },
{ "read", keyboard_read },
+ { "get-key-map", keyboard_get_key_map },
};
/* VT100 escape sequences */
@@ -566,3 +569,18 @@
}
PUSH(i);
}
+
+static unsigned char fake_keymap[32] = {
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+};
+
+static void keyboard_get_key_map(void)
+{
+ /* This is a bit of a hack since BootX requires a get-key-map word.
+ In the future this should be changed to give the actual current
keymap,
+ but since this only effects keyboard input in BootX it isn't a
priority. */
+ PUSH( (int)fake_keymap );
+}