[OpenBIOS] [PATCH 1/10] Dummy get-key-map in keyboard device package

William Hahne will07c5 at gmail.com
Wed Aug 10 20:15:13 CEST 2011


On Wed, Aug 10, 2011 at 12:53 PM, Blue Swirl <blauwirbel at gmail.com> wrote:

> On Tue, Aug 9, 2011 at 9:54 PM, William Hahne <will07c5 at 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 );
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20110810/ca493a3c/attachment.html>


More information about the OpenBIOS mailing list