URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/ecos-2.0/packages/services/gfx/mw/v2_0/src/demos/nxkbd
- from Rev 27 to Rev 174
- ↔ Reverse comparison
Rev 27 → Rev 174
/nxkbd.syms
0,0 → 1,?rev2len?
nxkbd_main |
/keynorm.bmp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
keynorm.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: keynorm.c
===================================================================
--- keynorm.c (nonexistent)
+++ keynorm.c (revision 174)
@@ -0,0 +1,83 @@
+/* Generated by convbmp*/
+#include "device.h"
+
+/* MWIMAGEHDR image_keynorm converted from keynorm.bmp*/
+
+static MWPALENTRY palette[2] = {
+ RGBDEF( 0, 0, 0 ), /* pal 0*/
+ RGBDEF( 255, 255, 255 ), /* pal 1*/
+};
+
+static MWUCHAR imagebits[] = {
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd0,0xce,0xff,0xfb,0xff,0xef,0xef,0xbf,0x7e,
+0x46,0xad,0xea,0xad,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xb6,0xff,0xfb,0xff,0xef,0xef,0xbf,0x7e,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xf6,0xff,0xfb,0xff,0xef,0xef,0xbf,0x7e,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdb,0xf6,0xff,0xfb,0xc0,0xef,0xdf,0xbf,0xbe,
+0x66,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdd,0xce,0xff,0xfb,0xff,0xef,0xdf,0xbf,0xbe,
+0x5e,0x68,0x8a,0x91,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xfd,0xfb,0xc0,0xef,0xdf,0xbf,0xbe,
+0x5e,0xfd,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xfe,0xfb,0xff,0xef,0xbf,0xbf,0xde,
+0x62,0xee,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xd6,0xb6,0xfc,0xfb,0xff,0xef,0xbf,0xbf,0xde,
+0x7f,0xff,0xfb,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xfb,0x99,0xce,0xfc,0xfb,0xff,0xef,0xbf,0xbf,0xde,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xef,0xef,0xff,0xbf,0xfe,
+0x67,0x5d,0xef,0x87,0xbd,0xde,0xfc,0x7b,0xf7,0xef,0x8f,0xbe,0xde,0xfa,0xbb,0xf7,0xef,0xff,0xbe,0xfe,
+0x5a,0xdd,0xef,0xbf,0xbe,0xbe,0xfb,0xfb,0xf7,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xe7,0xef,0xcf,0xbf,0x7e,
+0x5e,0xdd,0xef,0xdf,0xbf,0x7e,0xfb,0xfb,0xeb,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xe7,0xef,0xcf,0xbe,0x7e,
+0x5e,0xcd,0xef,0xef,0xbf,0x7e,0xfb,0xfb,0xeb,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xff,0xef,0xff,0xbe,0x7e,
+0x5c,0x55,0xef,0xf7,0xbe,0xbe,0xfb,0xfb,0xdd,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xff,0xef,0xff,0xbf,0xfe,
+0x5a,0xfd,0xef,0x87,0xbd,0xde,0xfc,0x7b,0xdd,0xef,0x8f,0xbe,0x3e,0xf8,0x7b,0xff,0xef,0xff,0xbe,0x7e,
+0x66,0xfd,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xbf,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbe,0x7e,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xbf,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7c,0x7d,0xff,0xf7,0xf7,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7c,0x7d,0xf9,0xf7,0xe3,0xdf,0xbf,0x7f,0xbd,0xf6,0xf7,0xeb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0xef,0xfe,
+0x7b,0x7d,0xf6,0xf7,0xdb,0xdf,0xbf,0x7e,0x3d,0xf6,0xf7,0xfb,0xdf,0x5f,0x7e,0xfd,0xff,0xf7,0xcf,0xfe,
+0x7b,0x7d,0xfd,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x3f,0x7e,0xfd,0xff,0xf7,0x8f,0xfe,
+0x7c,0x7d,0xfb,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x5f,0x7e,0xfd,0xe0,0xf7,0x00,0x0e,
+0x7f,0x7d,0xf6,0xf7,0xdb,0xdf,0x0f,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0x8f,0xee,
+0x7c,0xfd,0xf9,0xf7,0xe3,0xdf,0xbf,0x7e,0x7d,0xf1,0xf7,0xfb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0xcf,0xee,
+0x7f,0xfd,0xff,0xf7,0xfb,0xdf,0xaf,0x7f,0xfd,0xf7,0xf7,0xff,0xdf,0x7f,0x7e,0xfd,0xff,0xf7,0xef,0xee,
+0x7f,0xfd,0xff,0xf7,0xfb,0xdf,0xdf,0x7f,0xfd,0xf7,0xf7,0xfb,0xdf,0x7f,0x7e,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0x7d,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xf9,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xf7,0xf7,0xff,0xfe,
+0x7f,0x7d,0xf5,0xf7,0xe3,0xdf,0x7f,0x7f,0x7d,0xfe,0xf7,0xe7,0xdf,0xbf,0x7e,0x7d,0xf7,0xf7,0xef,0xfe,
+0x7c,0x7d,0xf5,0xf7,0xdf,0xdf,0x7f,0x7e,0xbd,0xf8,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf1,0xf7,0xcf,0xfe,
+0x7b,0x7d,0xea,0xf7,0xc3,0xdf,0x7f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0x8f,0xfe,
+0x7b,0x7d,0xea,0xf7,0xdb,0xdf,0x7f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0x00,0x0e,
+0x7b,0x7d,0xee,0xf7,0xdb,0xdf,0x3f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0x8f,0xfe,
+0x7c,0x7d,0xee,0xf7,0xe7,0xdf,0x5f,0x7c,0x3d,0xf6,0xf7,0xdb,0xdf,0xbf,0x7e,0x7d,0xf1,0xf7,0xcf,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7e,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xef,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7e,0xfd,0xff,0xf7,0xff,0xdf,0xbf,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+
+MWIMAGEHDR image_keynorm = {
+ 160, 61, /* width, height*/
+ 1, 1, /* planes, bpp*/
+ 20, 1, /* pitch, bytesperpixel*/
+ 1, 2, /* compression, palsize*/
+ -1L, /* transcolor*/
+ palette,
+ imagebits,
+};
Index: keynum.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: keynum.bmp
===================================================================
--- keynum.bmp (nonexistent)
+++ keynum.bmp (revision 174)
keynum.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: nxkbd.c
===================================================================
--- nxkbd.c (nonexistent)
+++ nxkbd.c (revision 174)
@@ -0,0 +1,379 @@
+/*
+ * nxkbd.c - Software popup keyboard for Nano-X
+ *
+ * Copyright (C) 2000 by Greg Haerr
+ * linked-in bitmaps, redrawn keymaps
+ * enhanced shift/control function, fnkeys
+ * supports all ascii values 1-127
+ * Copyright (C) 2000 by VTech Informations LTD.
+ * Vladimir Cotfas Aug 31, 2000
+ * initial port to Nano-X
+ * Copyright (C) 2000 by Jay Carlson
+ * initial soft kbd for W
+ *
+ * This code is licensed with the same license as Microwindows.
+ *
+ * #define KBDPIPE in srvconn.c for named pipe keyboard driver.
+ * Otherwise, the GrInjectKeyboardEvent method is used.
+ */
+#include
+#include
+#define MWINCLUDECOLORS
+#include "nano-X.h"
+
+#define TITLE "Soft Keyboard"
+#define DISKIMAGES 0 /* =0 use linked-in images*/
+#define _SOFTKBD_DEBUG 0
+
+/* kbd states, each with unique bitmap*/
+#define NORM 1000
+#define CNTRL 1001
+#define SHIFT 1002
+#define NUM 1003
+#define INTL 1004
+
+/* special chars*/
+#define BS '\b' /* value of <- on kbd*/
+#define F1 2000
+#define NONE 3000
+
+/* number of charcodes per bitmap*/
+#define SCANCODES 41
+
+/* size of bitmaps*/
+#define BM_WIDTH 160
+#define BM_HEIGHT 61
+
+struct keycolumn {
+ short xoffset;
+ short scancode;
+};
+
+struct keyrow {
+ short yoffset;
+ short height;
+ struct keycolumn columns[12];
+};
+
+/* fixed layout for each scancode location*/
+struct keyrow keyrows[4] = {
+ {0, 15,
+ {{0, 0}, {14, 1}, {28, 2}, {42, 3}, {56, 4}, {70, 5}, {84, 6}, {98, 7}, {112, 8}, {126, 9}, {140, 10}, {999, -1}}},
+ {15, 15,
+ {{0, 11}, {14, 12}, {28, 13}, {42, 14}, {56, 15}, {70, 16}, {84, 17}, {98, 18}, {112, 19}, {126, 20}, {140, 21}, {999, -1}}},
+ {30, 15,
+ {{0, 22}, {19, 23}, {33, 24}, {47, 25}, {61, 26}, {75, 27}, {89, 28}, {103, 29}, {117, 30}, {131, 31}, {145, 32}, {999, -1}} },
+ {45, 15,
+ {{0, 33}, {21, 34}, {36, 35}, {85, 36}, {103, 37}, {117, 38}, {131, 39}, {145, 40}, {999, -1}}}
+};
+
+#define C(x) ((x)&0x1f)
+
+/* charcode mappings per kbd state*/
+static short normal[SCANCODES] = {
+ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', BS,
+ 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', '-', '\r',
+ CNTRL, 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', ';',
+ SHIFT, INTL, ' ', NUM, '\'', '=', '\\', '/'
+};
+
+static short control[SCANCODES] = {
+ C('q'),C('w'),C('e'),C('r'),C('t'),C('y'),C('u'),C('i'),C('o'),C('p'),'\033',
+ C('a'),C('s'),C('d'),C('f'),C('g'),C('h'),C('j'),C('k'),C('l'),C('_'),'\r',
+ CNTRL,C('z'),C('x'),C('c'),C('v'),C('b'),C('n'),C('m'),C('\\'),C(']'),C('^'),
+ SHIFT,INTL,' ',NUM,NONE,NONE,NONE,'\177'
+};
+
+static short shift[SCANCODES] = {
+ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', BS,
+ 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', '_', '\r',
+ CNTRL, 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', ':',
+ SHIFT, INTL, ' ', NUM, '"', '+', '|', '?'
+};
+
+static short num[SCANCODES] = {
+ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', BS,
+ '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '\r',
+ CNTRL, F1, F1+1, F1+2, F1+3, F1+4, F1+5, F1+6, F1+7, '`', '~',
+ SHIFT, INTL, ' ', NUM, '[', ']', '{', '}'};
+
+static char *fnkey[] = {
+ "\033OP", "\033OQ", "\033OR", "\033OS", "\03315~",
+ "\03317~", "\03318~", "\03319~", "\03320~", "\03321~"
+};
+
+struct layout_state {
+ char *filename;
+ GR_IMAGE_HDR *imagehdr;
+ short *scancode_translations;
+ short sshift;
+ short ctrl_layout, shift_layout, num_layout;
+};
+
+/* auto-converted .bmp files for internal linking*/
+extern GR_IMAGE_HDR image_keynorm;
+extern GR_IMAGE_HDR image_keyctrl;
+extern GR_IMAGE_HDR image_keyshft;
+extern GR_IMAGE_HDR image_keynum;
+
+static struct layout_state layout_states[] = {
+ { /* 0 */
+ "keynorm.bmp",
+ &image_keynorm,
+ normal,
+ 0,
+ 2, 1, 3
+ },
+ { /* 1 */
+ "keyshft.bmp",
+ &image_keyshft,
+ shift,
+ 0,
+ 2, 0, 3
+ },
+ { /* 2 */
+ "keyctrl.bmp",
+ &image_keyctrl,
+ control,
+ 1, /* ctrl is single shift*/
+ 0, 1, 3
+ },
+ { /* 3 */
+ "keynum.bmp",
+ &image_keynum,
+ num,
+ 0,
+ 2, 1, 0
+ }
+};
+#define N_LAYOUT_STATES (sizeof(layout_states) / sizeof(layout_states[0]))
+
+static GR_WINDOW_ID w;
+static GR_GC_ID gc; /* graphics context for text */
+static int current_layout = 0;
+#if DISKIMAGES
+static GR_IMAGE_ID layout_images[N_LAYOUT_STATES];
+static int layout_images_loaded[N_LAYOUT_STATES];
+#endif
+
+extern int KbdWrite(int c);
+extern int KbdOpen(void);
+extern void KbdClose(void);
+
+static void
+push_character(int c)
+{
+#if _SOFTKBD_DEBUG
+ fprintf(stderr, "pushed %d (0x%x) '%c'\n", c, c, c);
+#endif
+ KbdWrite(c);
+}
+
+static void
+display_layout(int layout)
+{
+#if DISKIMAGES
+#define LIBDIR "." /* "/etc/nxkbd.d" */
+ if (!layout_images_loaded[layout] ) {
+ char buf[128];
+
+ /*
+ * OK, load image on the server-side ;-)
+ * DON'T check for errors ;(
+ */
+ sprintf(buf, "%s/%s", LIBDIR, layout_states[layout].filename);
+ layout_images[layout] = GrLoadImageFromFile(buf, 0);
+ layout_images_loaded[layout] = 1;
+ }
+ GrDrawImageToFit(w, gc, 0, 0, -1, -1, layout_images[layout]);
+#else
+ GrDrawImageBits(w, gc, 0, 0, layout_states[layout].imagehdr);
+#endif
+}
+
+static void
+process_scancode(int scancode)
+{
+ int c;
+
+ c = layout_states[current_layout].scancode_translations[scancode];
+#if _SOFTKBD_DEBUG
+ printf("scancode = %d ", scancode);
+ printf("current_layout = %d ('%s'), scancode (translated) = %d\n",
+ current_layout, layout_states[current_layout].filename, c);
+#endif
+
+ switch (c) {
+ default:
+ if (c < 256) /* normal character*/
+ break;
+
+ /* handle special functions*/
+ if (c >= F1 && c < F1+10) {
+ char *p = fnkey[c-F1];
+ while (*p)
+ push_character(*p++);
+ return;
+ }
+
+ /* no action for NONE*/
+ if (c == NONE)
+ return;
+ fprintf(stderr, "nxkbd: key with unknown translation pressed\n");
+ return;
+ case CNTRL:
+ current_layout = layout_states[current_layout].ctrl_layout;
+ display_layout(current_layout);
+ return;
+ case SHIFT:
+ current_layout = layout_states[current_layout].shift_layout;
+ display_layout(current_layout);
+ return;
+ case NUM:
+ current_layout = layout_states[current_layout].num_layout;
+ display_layout(current_layout);
+ return;
+ case INTL:
+#if _SOFTKBD_DEBUG
+ printf("INTL not yet implemented\n");
+#endif
+ return;
+ }
+
+ if (layout_states[current_layout].sshift) {
+ current_layout = 0;
+ display_layout(current_layout);
+ }
+
+ push_character(c);
+}
+
+
+static void
+mouse_hit(int x, int y)
+{
+ int row, column;
+
+ for (row = 0; row < 4; row++) {
+ if (y >= keyrows[row].yoffset &&
+ y < keyrows[row].yoffset+keyrows[row].height) {
+ for (column = 0; column < 12; column++) {
+ if (keyrows[row].columns[column].xoffset == 999) {
+ fprintf(stderr, "off end of row\n");
+ return;
+ }
+ if (x < keyrows[row].columns[column + 1].xoffset) {
+ int scancode = keyrows[row].columns[column].scancode;
+ process_scancode(scancode);
+ return;
+ }
+ }
+ }
+ }
+
+ fprintf(stderr, "nxkbd: off bottom\n");
+}
+
+#ifdef __ECOS
+int
+nxkbd_main(int argc, char* argv[])
+#else
+int
+main(int argc, char* argv[])
+#endif
+{
+ GR_EVENT event; /* current event */
+ GR_WM_PROPERTIES props;
+
+ if (GrOpen() < 0) {
+ fprintf(stderr, "nxkbd: cannot open graphics\n");
+ exit(1);
+ }
+
+ if (KbdOpen() < 0) {
+ fprintf(stderr, "nxkbd: cannot open kbd named pipe\n");
+#if 0
+ exit(1);
+#endif
+ }
+
+#if !DISKIMAGES
+ GrReqShmCmds(4096); /* fast image copy*/
+#endif
+ w = GrNewWindow(GR_ROOT_WINDOW_ID,
+ 0, 0, BM_WIDTH, BM_HEIGHT,
+ 0, WHITE, BLACK);
+
+ GrSelectEvents(w, GR_EVENT_MASK_CLOSE_REQ |
+ GR_EVENT_MASK_EXPOSURE |
+ /*GR_EVENT_MASK_FOCUS_IN |*/
+ /*GR_EVENT_MASK_KEY_DOWN |*/ /* required for focus*/
+ GR_EVENT_MASK_BUTTON_DOWN);
+
+#if 0 /* this code fails when link-app-into-server */
+ //if (props.title) // can't free with link-into-server
+ //free(props.title);
+
+ /* title must be alloc'd and copied*/
+ //props.title = malloc(18);
+ //if (props.title)
+ //strcpy(props.title, TITLE);
+
+ props.flags =
+ GR_WM_FLAG_NORESIZE | /* don't let user resize window */
+ GR_WM_FLAG_NOBORDERS | /* don't draw any window borders */
+ GR_WM_FLAG_NOTITLEBAR | /* don't draw a title bar */
+ GR_WM_FLAG_NOFOCUS; /* don't set focus to this window*/
+#endif
+
+ props.flags = GR_WM_FLAGS_PROPS | GR_WM_FLAGS_TITLE;
+ props.props = GR_WM_PROPS_NOFOCUS;
+ props.props |= /*GR_WM_PROPS_NOMOVE |*/ GR_WM_PROPS_NORAISE |
+ GR_WM_PROPS_BORDER | GR_WM_PROPS_CAPTION | GR_WM_PROPS_CLOSEBOX;
+ props.title = TITLE;
+ GrSetWMProperties(w, &props);
+
+ GrMapWindow(w);
+
+ gc = GrNewGC();
+
+ current_layout = 0;
+ for (;;) {
+ GrGetNextEvent(&event);
+
+ switch(event.type) {
+ case GR_EVENT_TYPE_CLOSE_REQ:
+#if DISKIMAGES
+ {
+ int i;
+
+ for(i=0; i < N_LAYOUT_STATES; i++) {
+ if( !layout_images_loaded[i] )
+ continue;
+ GrFreeImage(layout_images[i]);
+ }
+ }
+#endif
+ GrClose();
+ exit(0);
+ /* no return*/
+ case GR_EVENT_TYPE_EXPOSURE:
+ display_layout(current_layout);
+ break;
+ case GR_EVENT_TYPE_BUTTON_DOWN:
+ mouse_hit(event.button.x, event.button.y);
+ break;
+#if 0
+ case GR_EVENT_TYPE_FOCUS_IN:
+ if (event.general.otherid != 1) {
+ int lastfocus = event.general.otherid;
+ GrSetFocus(lastfocus);
+ }
+ break;
+#endif
+ }
+ }
+
+ /*NOTREACHED*/
+ return 0;
+ }
Index: srvconn.c
===================================================================
--- srvconn.c (nonexistent)
+++ srvconn.c (revision 174)
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2000 by Greg Haerr
+ * Copyright (C) 2000 by VTech Informations LTD.
+ * Vladimir Cotfas Aug 31, 2000
+ */
+#include
+#include
+#include "nano-X.h"
+
+#define KBDPIPE 0 /* =1 to use named pipe for soft kbd*/
+
+#if KBDPIPE
+static char KBD_NAMED_PIPE[] = "/tmp/.nano-X-softkbd";
+static int kbd_fd = -1;
+
+int
+KbdOpen(void)
+{
+ if (kbd_fd != -1)
+ close(kbd_fd);
+
+ if ((kbd_fd = open(KBD_NAMED_PIPE, O_WRONLY)) < 0)
+ return -1;
+
+ return kbd_fd;
+}
+
+void
+KbdClose(void)
+{
+ if(kbd_fd >= 0) {
+ close(kbd_fd);
+ kbd_fd = -1;
+ }
+}
+
+int
+KbdWrite(int c)
+{
+ char cc = c & 0xff;
+
+ return write(kbd_fd, &cc, 1);
+}
+
+#else /* !KBDPIPE*/
+
+int
+KbdOpen(void)
+{
+ return 0;
+}
+
+void
+KbdClose(void)
+{
+}
+
+int
+KbdWrite(int c)
+{
+ GR_WINDOW_ID win = GrGetFocus();
+
+ /* FIXME: modifiers are incorrect*/
+ GrInjectKeyboardEvent(win, c, 0, 0, 1);
+ GrInjectKeyboardEvent(win, c, 0, 0, 0);
+ return 1;
+}
+#endif /* KBDPIPE*/
Index: keynum.c
===================================================================
--- keynum.c (nonexistent)
+++ keynum.c (revision 174)
@@ -0,0 +1,83 @@
+/* Generated by convbmp*/
+#include "device.h"
+
+/* MWIMAGEHDR image_keynum converted from keynum.bmp*/
+
+static MWPALENTRY palette[2] = {
+ RGBDEF( 0, 0, 0 ), /* pal 0*/
+ RGBDEF( 255, 255, 255 ), /* pal 1*/
+};
+
+static MWUCHAR imagebits[] = {
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x2f,0x30,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x46,0xad,0xea,0xad,0xd7,0xff,0xff,0xff,0xff,0xff,0xf8,0x28,0x48,0xf8,0xfb,0xe3,0xef,0xef,0xbe,0xfe,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xf8,0x28,0x08,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xf8,0x24,0x08,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x66,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xf8,0x22,0x30,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x5e,0x68,0x8a,0x91,0xd7,0xff,0xff,0xff,0xff,0xff,0xf8,0x21,0x08,0xfb,0xfb,0xfb,0xef,0xbf,0xbf,0xbe,
+0x5e,0xfd,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xf8,0x21,0x08,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x62,0xee,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xf8,0x29,0x48,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x7f,0xff,0xfb,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xf8,0x66,0x30,0xfb,0xfb,0xfb,0xef,0xdf,0xbf,0x7e,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0xf8,0xfb,0xe3,0xef,0xef,0xbe,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xee,0xf7,0xb6,0x0e,0xdc,0x7b,0x7e,0xed,0x87,0xb7,0x1e,0xde,0xfb,0x71,0xef,0xff,0xbf,0xfe,
+0x67,0x5d,0xee,0xf7,0xb6,0xfe,0xdb,0xbb,0x7e,0xed,0xfb,0xb6,0xee,0xde,0xfb,0x6e,0xef,0xff,0xbf,0xfe,
+0x5a,0xdd,0xee,0xf7,0xb6,0xfe,0xdf,0xbb,0x7e,0xed,0xfb,0xb6,0xee,0xde,0xfb,0x6e,0xef,0xff,0xbf,0xfe,
+0x5e,0xdd,0xee,0xf7,0xb7,0x7e,0xdf,0xbb,0x60,0x6d,0xfb,0xb6,0xee,0xdf,0x7b,0x6e,0xef,0xef,0xbf,0xfe,
+0x5e,0xcd,0xee,0xf7,0xb7,0xbe,0xdc,0x7b,0x6e,0xed,0x87,0xb6,0x1e,0xdf,0x7b,0x71,0xef,0xdf,0xbd,0x9e,
+0x5c,0x55,0xec,0x37,0xa1,0xde,0x87,0xba,0x16,0xe8,0x3f,0xa0,0xfe,0x87,0x7a,0x0e,0xef,0xcf,0xbe,0x6e,
+0x5a,0xfd,0xee,0xf7,0xb7,0xee,0xdf,0xbb,0x7a,0xed,0xbf,0xb6,0xfe,0xdf,0xbb,0x6e,0xef,0xcf,0xbf,0xfe,
+0x66,0xfd,0xee,0xb7,0xb4,0xee,0xd3,0xbb,0x5c,0xed,0x3f,0xb4,0xfe,0xd7,0xbb,0x4e,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0x67,0xbb,0x1e,0xec,0x7b,0xbe,0xee,0x87,0xbb,0x1e,0xec,0x3b,0xb1,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xbf,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7e,0xfd,0xf1,0xf7,0xaf,0xdf,0xbf,0x77,0xbd,0xff,0xf7,0xce,0xdd,0xb7,0x7f,0x7d,0xf7,0xf7,0xff,0xfe,
+0x7f,0xfd,0xef,0xf7,0xaf,0xde,0x1f,0x77,0x5d,0xff,0xf7,0xb5,0xde,0xaf,0x7e,0xfd,0xfb,0xf7,0xef,0xfe,
+0x7e,0xfd,0xd2,0x77,0x03,0xdf,0xaf,0x7b,0x5d,0xff,0xf7,0x7b,0xdf,0x5f,0x7d,0xfd,0xfd,0xf7,0xcf,0xfe,
+0x7e,0xfd,0xad,0xb7,0xaf,0xdf,0xaf,0x7d,0xbd,0xbf,0xb7,0x75,0xdf,0xbf,0x7d,0xfd,0xfd,0xf7,0x8f,0xfe,
+0x7e,0xfd,0xad,0xb7,0xd7,0xdf,0x1f,0x7e,0xfd,0xdf,0x77,0xaf,0xdc,0x47,0x7d,0xfd,0xfd,0xf7,0x00,0x0e,
+0x7e,0xfd,0xad,0xb7,0xeb,0xde,0xbf,0x7b,0x7d,0xee,0xf7,0xdf,0xdf,0xbf,0x7d,0xfd,0xfd,0xf7,0x8f,0xee,
+0x7e,0xfd,0xd1,0x77,0x81,0xde,0xbf,0x75,0xbd,0xf5,0xf7,0xaf,0xdf,0x5f,0x7d,0xfd,0xfd,0xf7,0xcf,0xee,
+0x7e,0xfd,0xee,0xf7,0xeb,0xdf,0x0f,0x75,0xdd,0xfb,0xf7,0xb7,0xde,0xaf,0x7e,0xfd,0xfb,0xf7,0xef,0xee,
+0x7e,0xfd,0xf1,0xf7,0xeb,0xdf,0xbf,0x7b,0xdd,0xff,0xf7,0xcf,0xdd,0xb7,0x7f,0x7d,0xf7,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xbf,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7e,0xfd,0xe0,0xf7,0xc7,0xdf,0xef,0x78,0x7d,0xf1,0xf7,0xef,0xdf,0x1f,0x7c,0x7d,0xf1,0xf7,0xff,0xfe,
+0x7e,0xfd,0xef,0xf7,0xbb,0xdf,0xef,0x7f,0xbd,0xee,0xf7,0xef,0xde,0xef,0x7f,0xbd,0xee,0xf7,0xef,0xfe,
+0x7e,0xfd,0xef,0xf7,0xfb,0xdf,0xef,0x7f,0xbd,0xee,0xf7,0xef,0xde,0xef,0x7f,0xbd,0xee,0xf7,0xcf,0xfe,
+0x7e,0xfd,0xf7,0xf7,0xfb,0xde,0x07,0x7f,0xbd,0xee,0xf7,0xf7,0xde,0xef,0x7f,0xbd,0xee,0xf7,0x8f,0xfe,
+0x7e,0xfd,0xfb,0xf7,0xc7,0xde,0xef,0x78,0x7d,0xe1,0xf7,0xf7,0xdf,0x1f,0x7c,0x7d,0xee,0xf7,0x00,0x0e,
+0x7e,0xfd,0xfd,0xf7,0xfb,0xdf,0x6f,0x7b,0xfd,0xef,0xf7,0xf7,0xde,0xef,0x7b,0xbd,0xee,0xf7,0x8f,0xfe,
+0x7e,0xfd,0xfe,0xf7,0xfb,0xdf,0xaf,0x7b,0xfd,0xef,0xf7,0xfb,0xde,0xef,0x7b,0xbd,0xee,0xf7,0xcf,0xfe,
+0x7e,0xfd,0xee,0xf7,0xbb,0xdf,0xcf,0x7b,0xfd,0xef,0xf7,0xfb,0xde,0xef,0x7b,0xbd,0xee,0xf7,0xef,0xfe,
+0x7c,0xfd,0xf1,0xf7,0xc7,0xdf,0xef,0x78,0x7d,0xf1,0xf7,0xc3,0xdf,0x1f,0x7c,0x7d,0xf1,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+
+MWIMAGEHDR image_keynum = {
+ 160, 61, /* width, height*/
+ 1, 1, /* planes, bpp*/
+ 20, 1, /* pitch, bytesperpixel*/
+ 1, 2, /* compression, palsize*/
+ -1L, /* transcolor*/
+ palette,
+ imagebits,
+};
Index: keyctrl.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: keyctrl.bmp
===================================================================
--- keyctrl.bmp (nonexistent)
+++ keyctrl.bmp (revision 174)
keyctrl.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: keyshft.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: keyshft.bmp
===================================================================
--- keyshft.bmp (nonexistent)
+++ keyshft.bmp (revision 174)
keyshft.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Makefile
===================================================================
--- Makefile (nonexistent)
+++ Makefile (revision 174)
@@ -0,0 +1,63 @@
+##############################################################################
+# Microwindows template Makefile
+# Copyright (c) 2000, 2002 Martin Jolicoeur, Greg Haerr
+##############################################################################
+
+include $(CONFIG)
+
+VPATH := $(TOP)/demos/nxkbd
+
+######################## Additional Flags section ############################
+
+# Directories list for header files
+INCLUDEDIRS +=
+# Defines for preprocessor
+DEFINES +=
+
+# Compilation flags for C files OTHER than include directories
+CFLAGS +=
+# Preprocessor flags OTHER than defines
+CPPFLAGS +=
+# Linking flags
+LDFLAGS +=
+
+############################# targets section ################################
+
+ifeq ($(NANOWM), Y)
+
+# If you want to create a library with the objects files, define the name here
+LIBNAME =
+
+# List of objects to compile
+OBJS = nxkbd.o srvconn.o keynorm.o keyctrl.o keyshft.o keynum.o
+
+ifeq ($(ARCH), ECOS)
+TARGET = $(BUILD)/bin/nxkbd.o
+else
+TARGET = $(BUILD)/bin/nxkbd
+endif
+
+all: default $(TARGET)
+
+endif
+
+######################### Makefile.rules section #############################
+
+include $(TOP)/Makefile.rules
+
+######################## Tools targets section ###############################
+
+ifeq ($(SHAREDLIBS), Y)
+$(BUILD)/bin/nxkbd: $(OBJS) $(NANOXCLIENTLIBS) $(BUILd)/config
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(CCNANOXCLIENTLIBS)
+else
+ifeq ($(ARCH), ECOS)
+$(BUILD)/bin/nxkbd.o: $(OBJS) $(BUILD)/config
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -Wl,-r -Wl,--defsym -Wl,nxkbd_main=main -o XX.o
+ $(NM) XX.o | grep -v _main | grep ' T' | awk -f $(TOP)/ecos/retain.awk | xargs $(OBJCOPY) XX.o $@
+ rm -f XX.o
+else
+$(BUILD)/bin/nxkbd: $(OBJS) $(NANOXCLIENTLIBS) $(BUILD)/config
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(NANOXCLIENTLIBS)
+endif
+endif
Index: keyctrl.c
===================================================================
--- keyctrl.c (nonexistent)
+++ keyctrl.c (revision 174)
@@ -0,0 +1,83 @@
+/* Generated by convbmp*/
+#include "device.h"
+
+/* MWIMAGEHDR image_keyctrl converted from keyctrl.bmp*/
+
+static MWPALENTRY palette[2] = {
+ RGBDEF( 0, 0, 0 ), /* pal 0*/
+ RGBDEF( 255, 255, 255 ), /* pal 1*/
+};
+
+static MWUCHAR imagebits[] = {
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xe2,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd0,0xce,0xff,0xfb,0xff,0xef,0xff,0xbf,0xee,
+0x46,0xad,0xea,0xad,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xb6,0xff,0xfb,0xff,0xef,0xff,0xbf,0xee,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xf6,0xff,0xfb,0xff,0xef,0xff,0xbe,0x2e,
+0x7a,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdb,0xf6,0xff,0xfb,0xff,0xef,0xff,0xbe,0xee,
+0x66,0xad,0xda,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdd,0xce,0xff,0xfb,0xff,0xef,0xff,0xbe,0x3e,
+0x5e,0x68,0x8a,0x91,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xff,0xfb,0xff,0xef,0xff,0xa6,0xfe,
+0x5e,0xfd,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xff,0xfb,0xff,0xef,0xff,0xaa,0x3e,
+0x62,0xee,0xda,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xd6,0xb6,0xff,0xfb,0xff,0xef,0xff,0xab,0xfe,
+0x7f,0xff,0xfb,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xfb,0x99,0xce,0xff,0xfb,0xff,0xef,0xff,0xab,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xa7,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xfb,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x18,0xa2,0x0f,0x87,0xbd,0xde,0xfc,0x7b,0xf7,0xef,0x8f,0xbe,0xde,0xfa,0xbb,0xfb,0xef,0x1f,0xbf,0xfe,
+0x25,0x22,0x0f,0xbf,0xbe,0xbe,0xfb,0xfb,0xf7,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xfb,0xef,0xdf,0xbf,0xfe,
+0x21,0x22,0x0f,0xdf,0xbf,0x7e,0xfb,0xfb,0xeb,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xfb,0xef,0xdf,0xb7,0xf6,
+0x21,0x32,0x0f,0xef,0xbf,0x7e,0xfb,0xfb,0xeb,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xf7,0xef,0xdf,0xbb,0xee,
+0x23,0xaa,0x0f,0xf7,0xbe,0xbe,0xfb,0xfb,0xdd,0xef,0xb7,0xbe,0xde,0xfa,0xbb,0xf7,0xef,0xdf,0xbd,0xde,
+0x25,0x02,0x0f,0x87,0xbd,0xde,0xfc,0x7b,0xdd,0xef,0x8f,0xbe,0x3e,0xf8,0x7b,0xf7,0xef,0xdf,0xbe,0xbe,
+0x19,0x02,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xbf,0xbf,0xfe,0xff,0xfb,0xef,0xef,0xdf,0xbf,0x7e,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xbf,0xbf,0xfe,0xff,0xfb,0xef,0xef,0xdf,0xbf,0xfe,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xef,0xef,0x1f,0xbf,0xfe,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x0f,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7c,0x7d,0xff,0xf7,0xf7,0xdf,0xff,0x7f,0xfd,0xc0,0x77,0xff,0xfe,
+0x7c,0x7d,0xf9,0xf7,0xe3,0xdf,0xbf,0x7f,0xbd,0xf6,0xf7,0xeb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0xef,0xfe,
+0x7b,0x7d,0xf6,0xf7,0xdb,0xdf,0xbf,0x7e,0x3d,0xf6,0xf7,0xfb,0xdf,0x5f,0x7e,0xfd,0xff,0xf7,0xcf,0xfe,
+0x7b,0x7d,0xfd,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x3f,0x7e,0xfd,0xff,0xf7,0x8f,0xfe,
+0x7c,0x7d,0xfb,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x5f,0x7e,0xfd,0xff,0xf7,0x00,0x0e,
+0x7f,0x7d,0xf6,0xf7,0xdb,0xdf,0x0f,0x7d,0xbd,0xf6,0xf7,0xfb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0x8f,0xee,
+0x7c,0xfd,0xf9,0xf7,0xe3,0xdf,0xbf,0x7e,0x7d,0xf1,0xf7,0xfb,0xdf,0x6f,0x7e,0xfd,0xff,0xf7,0xcf,0xee,
+0x7f,0xfd,0xff,0xf7,0xfb,0xdf,0xaf,0x7f,0xfd,0xf7,0xf7,0xff,0xdf,0x7f,0x7e,0xfd,0xff,0xf7,0xef,0xee,
+0x7f,0xfd,0xff,0xf7,0xfb,0xdf,0xdf,0x7f,0xfd,0xf7,0xf7,0xfb,0xdf,0x7f,0x7e,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0x7d,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xf9,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xf7,0xf4,0x21,0xc6,
+0x7f,0x7d,0xf5,0xf7,0xe3,0xdf,0x7f,0x7f,0x7d,0xfe,0xf7,0xe7,0xdf,0xbf,0x7e,0x7d,0xf7,0xf5,0xfe,0xba,
+0x7c,0x7d,0xf5,0xf7,0xdf,0xdf,0x7f,0x7e,0xbd,0xf8,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf1,0xf5,0xfe,0xbe,
+0x7b,0x7d,0xea,0xf7,0xc3,0xdf,0x7f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf5,0xfe,0xbe,
+0x7b,0x7d,0xea,0xf7,0xdb,0xdf,0x7f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf4,0x31,0xbe,
+0x7b,0x7d,0xee,0xf7,0xdb,0xdf,0x3f,0x7e,0xfd,0xf6,0xf7,0xdb,0xdf,0xbf,0x7d,0xbd,0xf6,0xf5,0xef,0xbe,
+0x7c,0x7d,0xee,0xf7,0xe7,0xdf,0x5f,0x7c,0x3d,0xf6,0xf7,0xdb,0xdf,0xbf,0x7e,0x7d,0xf1,0xf5,0xef,0xbe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7e,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf5,0xef,0xba,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7e,0xfd,0xff,0xf7,0xff,0xdf,0xbf,0x7f,0xfd,0xff,0xf4,0x30,0xc6,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+
+MWIMAGEHDR image_keyctrl = {
+ 160, 61, /* width, height*/
+ 1, 1, /* planes, bpp*/
+ 20, 1, /* pitch, bytesperpixel*/
+ 1, 2, /* compression, palsize*/
+ -1L, /* transcolor*/
+ palette,
+ imagebits,
+};
Index: keyshft.c
===================================================================
--- keyshft.c (nonexistent)
+++ keyshft.c (revision 174)
@@ -0,0 +1,83 @@
+/* Generated by convbmp*/
+#include "device.h"
+
+/* MWIMAGEHDR image_keyshft converted from keyshft.bmp*/
+
+static MWPALENTRY palette[2] = {
+ RGBDEF( 0, 0, 0 ), /* pal 0*/
+ RGBDEF( 255, 255, 255 ), /* pal 1*/
+};
+
+static MWUCHAR imagebits[] = {
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd0,0xce,0xff,0xfb,0xff,0xef,0xdf,0xbf,0x7e,
+0x39,0x52,0x12,0xad,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xb6,0xff,0xfb,0xf7,0xef,0xdf,0xbf,0xfe,
+0x05,0x52,0x22,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xd7,0xf6,0xff,0xfb,0xf7,0xef,0xdf,0xbf,0x7e,
+0x05,0x52,0x22,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdb,0xf6,0xff,0xfb,0xf7,0xef,0xdf,0xbf,0x7e,
+0x19,0x52,0x22,0xab,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xdd,0xce,0xff,0xfb,0x80,0xef,0xdf,0xbf,0xbe,
+0x21,0x97,0x72,0x91,0xd7,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xfa,0xfb,0xf7,0xef,0xdf,0xbf,0xde,
+0x21,0x02,0x22,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xde,0xf6,0xfa,0xfb,0xf7,0xef,0xdf,0xbf,0xde,
+0x1d,0x11,0x22,0xfb,0x57,0xff,0xff,0xff,0xff,0xff,0xfb,0xd6,0xb6,0xfa,0xfb,0xf7,0xef,0xdf,0xbd,0xde,
+0x00,0x00,0x23,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xfb,0x99,0xce,0xff,0xfb,0xff,0xef,0xdf,0xbe,0x3e,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x03,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0x07,0xbd,0xde,0xf8,0xfb,0xf7,0xef,0x0f,0xbd,0xce,0xef,0xbb,0xfd,0xef,0xbf,0xbf,0xfe,
+0x67,0x5d,0xef,0x7f,0xbd,0xde,0xf7,0x7b,0xf7,0xef,0x77,0xbd,0xce,0xef,0xbb,0xfb,0xef,0xdf,0xbf,0xfe,
+0x5a,0xdd,0xef,0x7f,0xbd,0xde,0xf7,0xfb,0xf7,0xef,0x77,0xbd,0xae,0xef,0xbb,0xf7,0xef,0xef,0xbf,0x3e,
+0x5e,0xdd,0xef,0xbf,0xbe,0xbe,0xf7,0xfb,0xeb,0xef,0x77,0xbd,0xae,0xef,0xbb,0xef,0xef,0xf7,0xbf,0x3e,
+0x5e,0xcd,0xef,0xdf,0xbf,0x7e,0xf7,0xfb,0xeb,0xef,0x0f,0xbd,0x6e,0xef,0xbb,0xdf,0xef,0xfb,0xbf,0xfe,
+0x5c,0x55,0xef,0xef,0xbe,0xbe,0xf7,0xfb,0xeb,0xef,0x77,0xbd,0x6e,0xed,0xbb,0xef,0xef,0xf7,0xbf,0x3e,
+0x5a,0xfd,0xef,0xf7,0xbd,0xde,0xf7,0xfb,0xdd,0xef,0x77,0xbc,0xee,0xea,0xbb,0xf7,0xef,0xef,0xbf,0x3e,
+0x66,0xfd,0xef,0xf7,0xbd,0xde,0xf7,0x7b,0xdd,0xef,0x77,0xbc,0xee,0xe7,0x3b,0xfb,0xef,0xdf,0xbf,0xfe,
+0x7f,0xff,0xef,0x07,0xbd,0xde,0xf8,0xfb,0xdd,0xef,0x0f,0xbd,0xee,0xef,0xbb,0xfd,0xef,0xbf,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x7f,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,0xff,0xfb,0xff,0xef,0xff,0xbf,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7b,0xbd,0xe1,0xf7,0x87,0xdf,0x7f,0x7c,0x7d,0xee,0xf7,0xcf,0xde,0xef,0x78,0x3d,0xc0,0x77,0xff,0xfe,
+0x7b,0xbd,0xfe,0xf7,0xbb,0xdf,0x7f,0x7b,0xbd,0xee,0xf7,0xb7,0xde,0xef,0x7b,0xfd,0xff,0xf7,0xef,0xfe,
+0x7b,0xbd,0xfe,0xf7,0xbb,0xdf,0x7f,0x7b,0xbd,0xee,0xf7,0xf7,0xde,0xdf,0x7b,0xfd,0xff,0xf7,0xcf,0xfe,
+0x78,0x3d,0xfe,0xf7,0xbb,0xdf,0x7f,0x7b,0xbd,0xee,0xf7,0xf7,0xde,0xbf,0x7b,0xfd,0xff,0xf7,0x8f,0xfe,
+0x7b,0xbd,0xf1,0xf7,0xbb,0xdf,0x0f,0x7a,0x3d,0xe0,0xf7,0xf7,0xde,0x7f,0x7b,0xfd,0xff,0xf7,0x00,0x0e,
+0x7b,0xbd,0xef,0xf7,0xbb,0xdf,0x7f,0x7b,0xfd,0xee,0xf7,0xf7,0xde,0xbf,0x7b,0xfd,0xff,0xf7,0x8f,0xee,
+0x7b,0xbd,0xef,0xf7,0xbb,0xdf,0x7f,0x7b,0xfd,0xee,0xf7,0xf7,0xde,0xdf,0x7b,0xfd,0xff,0xf7,0xcf,0xee,
+0x7b,0xbd,0xef,0xf7,0xbb,0xdf,0x7f,0x7b,0xfd,0xee,0xf7,0xf7,0xde,0xef,0x7b,0xfd,0xff,0xf7,0xef,0xee,
+0x7c,0x7d,0xf0,0xf7,0x87,0xdf,0x0f,0x7c,0x7d,0xee,0xf7,0x83,0xde,0xef,0x7b,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7c,0x5d,0xee,0xf7,0xc3,0xdf,0x77,0x7e,0xfd,0xfb,0xf7,0xc7,0xdf,0xbf,0x7c,0x7d,0xf7,0xf7,0xff,0xfe,
+0x7b,0xbd,0xee,0xf7,0xdf,0xdf,0x77,0x7e,0xfd,0xfb,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0xf7,0xef,0xfe,
+0x7b,0x3d,0xd5,0x77,0xdf,0xdf,0x77,0x7e,0xfd,0xfb,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0xf7,0xcf,0xfe,
+0x7a,0xbd,0xd5,0x77,0xdf,0xdf,0x77,0x7e,0xfd,0xfb,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0xf7,0x8f,0xfe,
+0x79,0xbd,0xd5,0x77,0xc3,0xdf,0x0f,0x7e,0xfd,0xfb,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf0,0xf7,0x00,0x0e,
+0x7b,0xbd,0xdb,0x77,0xdf,0xdf,0x77,0x7e,0xfd,0xf5,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0x77,0x8f,0xfe,
+0x7b,0xbd,0xdb,0x77,0xdf,0xdf,0x77,0x7e,0xfd,0xee,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0x77,0xcf,0xfe,
+0x7b,0xbd,0xdb,0x77,0xdf,0xdf,0x77,0x7e,0xfd,0xee,0xf7,0xbb,0xdf,0xbf,0x7b,0xbd,0xf7,0x77,0xef,0xfe,
+0x7c,0x7d,0xdb,0x77,0xc3,0xdf,0x0f,0x78,0x3d,0xee,0xf7,0xbb,0xdf,0xbf,0x7c,0x7d,0xf0,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xdf,0xff,0x7f,0xfd,0xff,0xf7,0xff,0xfe,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+
+MWIMAGEHDR image_keyshft = {
+ 160, 61, /* width, height*/
+ 1, 1, /* planes, bpp*/
+ 20, 1, /* pitch, bytesperpixel*/
+ 1, 2, /* compression, palsize*/
+ -1L, /* transcolor*/
+ palette,
+ imagebits,
+};