On Wed, Aug 10, 2011 at 12:53 PM, Blue Swirl blauwirbel@gmail.com wrote:
On Tue, Aug 9, 2011 at 9:54 PM, William Hahne will07c5@gmail.com wrote:
"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] = {
Can this be 'const'?
Yes
- 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 );
'long' would not truncate on 64 bit host with 64 bit cells.
Oops, thanks for catching that. :) Revised patch at the bottom.
+}
OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Index: drivers/adb_kbd.c =================================================================== --- drivers/adb_kbd.c (revision 1046) +++ 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 const 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( (ucell)fake_keymap ); +}