summaryrefslogtreecommitdiffstats
path: root/app/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/map.c')
-rw-r--r--app/map.c410
1 files changed, 410 insertions, 0 deletions
diff --git a/app/map.c b/app/map.c
new file mode 100644
index 0000000..d63c171
--- /dev/null
+++ b/app/map.c
@@ -0,0 +1,410 @@
+#include "project.h"
+
+
+void
+send_ascii (unsigned char a)
+{
+ switch (a)
+ {
+#if 0
+ case '\0':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\001':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\002':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\003':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\004':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\005':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\006':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\a':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\b':
+ keyboard_keypress (0x00, 0x00);
+ break;
+#endif
+ case '\t':
+ keyboard_keypress (0x00, 0x2b);
+ break;
+#if 0
+ case '\n':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\v':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\f':
+ keyboard_keypress (0x00, 0x00);
+ break;
+#endif
+ case '\n':
+ case '\r':
+ keyboard_keypress (0x00, 0x28);
+ break;
+#if 0
+ case '\016':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\017':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\020':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\021':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\022':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\023':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\024':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\025':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\026':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\027':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\030':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\031':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\032':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\033':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\034':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\035':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\036':
+ keyboard_keypress (0x00, 0x00);
+ break;
+ case '\037':
+ keyboard_keypress (0x00, 0x00);
+ break;
+#endif
+ case ' ':
+ keyboard_keypress (0x00, 0x2c);
+ break;
+ case '!':
+ keyboard_keypress (0x02, 0x1e);
+ break;
+ case '"':
+ keyboard_keypress (0x02, 0x34);
+ break;
+ case '#':
+ keyboard_keypress (0x02, 0x20);
+ break;
+ case '$':
+ keyboard_keypress (0x02, 0x21);
+ break;
+ case '%':
+ keyboard_keypress (0x02, 0x22);
+ break;
+ case '&':
+ keyboard_keypress (0x02, 0x23);
+ break;
+ case '\047':
+ keyboard_keypress (0x00, 0x34);
+ break;
+ case '(':
+ keyboard_keypress (0x02, 0x26);
+ break;
+ case ')':
+ keyboard_keypress (0x02, 0x27);
+ break;
+ case '*':
+ keyboard_keypress (0x02, 0x25);
+ break;
+ case '+':
+ keyboard_keypress (0x02, 0x2e);
+ break;
+ case ',':
+ keyboard_keypress (0x00, 0x36);
+ break;
+ case '-':
+ keyboard_keypress (0x00, 0x2d);
+ break;
+ case '.':
+ keyboard_keypress (0x00, 0x37);
+ break;
+ case '/':
+ keyboard_keypress (0x00, 0x38);
+ break;
+ case '0':
+ keyboard_keypress (0x00, 0x27);
+ break;
+ case '1':
+ keyboard_keypress (0x00, 0x1e);
+ break;
+ case '2':
+ keyboard_keypress (0x00, 0x1f);
+ break;
+ case '3':
+ keyboard_keypress (0x00, 0x20);
+ break;
+ case '4':
+ keyboard_keypress (0x00, 0x21);
+ break;
+ case '5':
+ keyboard_keypress (0x00, 0x22);
+ break;
+ case '6':
+ keyboard_keypress (0x00, 0x23);
+ break;
+ case '7':
+ keyboard_keypress (0x00, 0x24);
+ break;
+ case '8':
+ keyboard_keypress (0x00, 0x25);
+ break;
+ case '9':
+ keyboard_keypress (0x00, 0x26);
+ break;
+ case ':':
+ keyboard_keypress (0x02, 0x33);
+ break;
+ case ';':
+ keyboard_keypress (0x00, 0x33);
+ break;
+ case '<':
+ keyboard_keypress (0x02, 0x36);
+ break;
+ case '=':
+ keyboard_keypress (0x00, 0x2e);
+ break;
+ case '>':
+ keyboard_keypress (0x02, 0x37);
+ break;
+ case '?':
+ keyboard_keypress (0x02, 0x38);
+ break;
+ case '@':
+ keyboard_keypress (0x02, 0x1f);
+ break;
+ case 'A':
+ keyboard_keypress (0x02, 0x04);
+ break;
+ case 'B':
+ keyboard_keypress (0x02, 0x05);
+ break;
+ case 'C':
+ keyboard_keypress (0x02, 0x06);
+ break;
+ case 'D':
+ keyboard_keypress (0x02, 0x07);
+ break;
+ case 'E':
+ keyboard_keypress (0x02, 0x08);
+ break;
+ case 'F':
+ keyboard_keypress (0x02, 0x09);
+ break;
+ case 'G':
+ keyboard_keypress (0x02, 0x0a);
+ break;
+ case 'H':
+ keyboard_keypress (0x02, 0x0b);
+ break;
+ case 'I':
+ keyboard_keypress (0x02, 0x0c);
+ break;
+ case 'J':
+ keyboard_keypress (0x02, 0x0d);
+ break;
+ case 'K':
+ keyboard_keypress (0x02, 0x0e);
+ break;
+ case 'L':
+ keyboard_keypress (0x02, 0x0f);
+ break;
+ case 'M':
+ keyboard_keypress (0x02, 0x10);
+ break;
+ case 'N':
+ keyboard_keypress (0x02, 0x11);
+ break;
+ case 'O':
+ keyboard_keypress (0x02, 0x12);
+ break;
+ case 'P':
+ keyboard_keypress (0x02, 0x13);
+ break;
+ case 'Q':
+ keyboard_keypress (0x02, 0x14);
+ break;
+ case 'R':
+ keyboard_keypress (0x02, 0x15);
+ break;
+ case 'S':
+ keyboard_keypress (0x02, 0x16);
+ break;
+ case 'T':
+ keyboard_keypress (0x02, 0x17);
+ break;
+ case 'U':
+ keyboard_keypress (0x02, 0x18);
+ break;
+ case 'V':
+ keyboard_keypress (0x02, 0x19);
+ break;
+ case 'W':
+ keyboard_keypress (0x02, 0x1a);
+ break;
+ case 'X':
+ keyboard_keypress (0x02, 0x1b);
+ break;
+ case 'Y':
+ keyboard_keypress (0x02, 0x1c);
+ break;
+ case 'Z':
+ keyboard_keypress (0x02, 0x1d);
+ break;
+ case '[':
+ keyboard_keypress (0x00, 0x2f);
+ break;
+ case '\\':
+ keyboard_keypress (0x00, 0x64);
+ break;
+ case ']':
+ keyboard_keypress (0x00, 0x30);
+ break;
+ case '^':
+ keyboard_keypress (0x02, 0x23);
+ break;
+ case '_':
+ keyboard_keypress (0x02, 0x2d);
+ break;
+ case '`':
+ keyboard_keypress (0x00, 0x32);
+ break;
+ case 'a':
+ keyboard_keypress (0x00, 0x04);
+ break;
+ case 'b':
+ keyboard_keypress (0x00, 0x05);
+ break;
+ case 'c':
+ keyboard_keypress (0x00, 0x06);
+ break;
+ case 'd':
+ keyboard_keypress (0x00, 0x07);
+ break;
+ case 'e':
+ keyboard_keypress (0x00, 0x08);
+ break;
+ case 'f':
+ keyboard_keypress (0x00, 0x09);
+ break;
+ case 'g':
+ keyboard_keypress (0x00, 0x0a);
+ break;
+ case 'h':
+ keyboard_keypress (0x00, 0x0b);
+ break;
+ case 'i':
+ keyboard_keypress (0x00, 0x0c);
+ break;
+ case 'j':
+ keyboard_keypress (0x00, 0x0d);
+ break;
+ case 'k':
+ keyboard_keypress (0x00, 0x0e);
+ break;
+ case 'l':
+ keyboard_keypress (0x00, 0x0f);
+ break;
+ case 'm':
+ keyboard_keypress (0x00, 0x10);
+ break;
+ case 'n':
+ keyboard_keypress (0x00, 0x11);
+ break;
+ case 'o':
+ keyboard_keypress (0x00, 0x12);
+ break;
+ case 'p':
+ keyboard_keypress (0x00, 0x13);
+ break;
+ case 'q':
+ keyboard_keypress (0x00, 0x14);
+ break;
+ case 'r':
+ keyboard_keypress (0x00, 0x15);
+ break;
+ case 's':
+ keyboard_keypress (0x00, 0x16);
+ break;
+ case 't':
+ keyboard_keypress (0x00, 0x17);
+ break;
+ case 'u':
+ keyboard_keypress (0x00, 0x18);
+ break;
+ case 'v':
+ keyboard_keypress (0x00, 0x19);
+ break;
+ case 'w':
+ keyboard_keypress (0x00, 0x1a);
+ break;
+ case 'x':
+ keyboard_keypress (0x00, 0x1b);
+ break;
+ case 'y':
+ keyboard_keypress (0x00, 0x1c);
+ break;
+ case 'z':
+ keyboard_keypress (0x00, 0x1d);
+ break;
+ case '{':
+ keyboard_keypress (0x02, 0x2f);
+ break;
+ case '|':
+ keyboard_keypress (0x02, 0x64);
+ break;
+ case '}':
+ keyboard_keypress (0x02, 0x30);
+ break;
+ case '~':
+ keyboard_keypress (0x02, 0x32);
+ break;
+#if 0
+ case '\177':
+ keyboard_keypress (0x00, 0x00);
+ break;
+#endif
+ }
+}
+
+void
+send_str (const char *c)
+{
+ while (*c)
+ send_ascii (*(c++));
+}