From 7335ff75768af7c5598a36a2d3d25f69e61b1998 Mon Sep 17 00:00:00 2001 From: dschmenk Date: Fri, 14 Feb 2014 15:27:34 -0800 Subject: [PATCH] PIDRIVE updates --- debian/changelog | 3 +- pidrive/pidrive.s | 49 +++++---- share/A2PI-1.4.PO | Bin 143360 -> 143360 bytes src/a2joypad.c | 6 +- src/a2pid.c | 271 +--------------------------------------------- src/kbmap.h | 265 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 300 insertions(+), 294 deletions(-) create mode 100755 src/kbmap.h diff --git a/debian/changelog b/debian/changelog index 3a26318..a4bebdc 100755 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ -a2pi (0.1.8-3) unstable; urgency=low +a2pi (0.1.8-4) unstable; urgency=low * Fix FUSE create file function * Add VSDRIVE functionality * Fix recursive call request (FUSE mount w/ pidrive active) * Fix symlinks for A2VDx.PO updating * Add UTILS.PO image for comms programs and file manipulation + * Run PIDRIVE from STARTUP:wq -- David Schmenk Tue, 13 Feb 2014 15:31:23 -0800 diff --git a/pidrive/pidrive.s b/pidrive/pidrive.s index bd44d72..fc0be90 100755 --- a/pidrive/pidrive.s +++ b/pidrive/pidrive.s @@ -150,52 +150,52 @@ SFIXLP: LDA SFIXUPTBL,X STA DEV1L,X LDA #>DRVRDST STA DEV1H,X + LDY #$00 +DEV1LP: LDA DEVLST,Y + BNE NXTDEV1 + LDA SLOTIDX + ORA #$01 + STA DEVLST,Y + INC DEVCNT + INC PIVDCNT + BNE INSDEV2 +NXTDEV1: INY + CPY #14 + BNE DEV1LP + BEQ EXIT INSDEV2: LDA DEV2H,X CMP #$DE - BNE INCDEV1 + BNE PRSLOT LDA #DRVRDST STA DEV2H,X INY -INCDEV1: - CPY #$00 - BEQ EXIT ; NOTHING TO BE DONE HERE - LDX #$00 -DEV1LP: LDA DEVLST,X - BNE NXTDEV1 - LDA SLOTIDX - ORA #$01 - STA DEVLST,X - INC DEVCNT - BNE INCDEV2 -NXTDEV1: - INX - CPX #14 - BNE DEV1LP INCDEV2: - LDX #$00 -DEV2LP: LDA DEVLST,X + LDY #$00 +DEV2LP: LDA DEVLST,Y BNE NXTDEV2 LDA SLOTIDX ORA #$81 - STA DEVLST,X + STA DEVLST,Y INC DEVCNT + INC PIVDCNT BNE PRSLOT NXTDEV2: - INX - CPX #14 + INY + CPY #14 BNE DEV2LP - JMP EXIT -PRSLOT: LDA SLOTNUM +PRSLOT: LDY PIVDCNT + BEQ EXIT ; NOTHING TO BE DONE HERE + LDA SLOTNUM ORA #'0' STA DR1 STA DR2 LDY #$00 JSR PRMSG - DEC DEVCNT + DEC PIVDCNT BEQ EXIT INY PRMSG: LDA MSG,Y @@ -212,6 +212,7 @@ DR1: DB "0,D1" DR2: DB "0,D2" DB 0 SLOTNUM: DB 0 +PIVDCNT: DB 0 ;* ;* FIXUP TABLE ;* diff --git a/share/A2PI-1.4.PO b/share/A2PI-1.4.PO index 8566bea4322998f349910bd3056a05dadb3bad3a..632228d7720dc99e19cb20d0bd644cd5b89e975d 100755 GIT binary patch delta 495 zcmZp8z|ru4V*@{{HUkhaF^C6vx&(QKxq^5gz^2T=$S{kM!Bd7!fP>*NgMy!oB+q0k zR!tT4;1I{4kk9~#ItGS6N({^l5=;ypGKxGvm5dxfm7CjHYuOmtH?#8mHfNfpvYCE(fl#l{*@)1<3f8bjO!0#<&>l{MUKYh(0mTIj z3ilMw0R{O^?0hr%wwu{x0ryuDn$}7|p?(U^{(f$r?n(?|Tz426fT6*(S&-u;<7P&$ zyRSH(b9giCvYO7IGyT2^qlU8QX$z$W6e{uTD zufEQn$$j(fcV~;wDd#VI|HF?zUHp0Cm$X6GP3-gP7`-XAqmPzT3zG(~DQ+Hi$kW)|F*@l6lwP4{-u1^ue|)iKQG9L^ZzGruWwQ|kxxa_ZuMLC$7O zs$wiCCOJC>*V~66W0RGVVbC(ffK9$;l@;obe5rEfe`6W5=Z>Sh?QFbk#3L9>-z{U` zT+<*JCyZyU^7Yc}=u|TAbtcQ|uk0%-GSv3Oe8CtTr2y=B8?RBx8+1jSmN-7diUoBB ze_A#m$qc}oG=L^7s*vPGBsG)*T+;&3Tr?btqA~-(d;);rRHS9Y;w7x+aeHzX7eOk~ z3W$Gh9>5$8o`3}5^4$Q{1>6zuMLXvM{EGXKUELu`CA5H|fe1Qv4?tsKBrBkRgy;nT zf8pj-WOpzmsEkB0#2&*IjVp;YDx!G-b%tWf{Qx&e{5NdyKNysJivU7+Xq*nBFp^M% z5g>sRX@rOhNip;+nl%AT;I?E3$4N&j0rnSSN4RKW3BY#TK-0~?uoPe(hQu}%kz5ZF z)>Z+OV3}k&zIPUr6Zm~KEU!Ykn-2z>B=nCNK*5%-GlY}$@@U!uumX>vIty&C4X4Bj zv_aG}jTd(lJEX`4q6=LBFJXfcd5#OeQUfqRrEmEzT_q~}r|d+n!^~_2*_{A469m6U zvACOkiUsPJDD3eo)^QiKGcoXPQS3EVhb?P!ICFkD*e^PW4U1CDes~eanL!x#d(NM; zoE~*KSDF2uoYm> 7, bttns[1] >> 7, pen); } diff --git a/src/a2pid.c b/src/a2pid.c index a60b3c9..3662d6d 100755 --- a/src/a2pid.c +++ b/src/a2pid.c @@ -69,272 +69,11 @@ int vdrvfd[2]; #define KEY_CODE 0x03FF #define KEY_PRESS 0x80 #define KEY_ASCII 0x7F - -int keycode[256] = { - /* - * normal scancode - */ - MOD_CTRL | MOD_SHIFT | KEY_2, // CTRL-@ code 00 - MOD_CTRL | KEY_A, // CTRL-A code 01 - MOD_CTRL | KEY_B, // CTRL-B code 02 - MOD_CTRL | KEY_C, // CTRL-C code 03 - MOD_CTRL | KEY_D, // CTRL-D code 04 - MOD_CTRL | KEY_E, // CTRL-E code 05 - MOD_CTRL | KEY_F, // CTRL-F code 06 - MOD_CTRL | KEY_G, // CTRL-G code 07 - KEY_LEFT, // CTRL-H code 08 - KEY_TAB, // CTRL-I code 09 - KEY_DOWN, // CTRL-J code 0A - KEY_UP, // CTRL-K code 0B - MOD_CTRL | KEY_L, // CTRL-L code 0C - KEY_ENTER, // CTRL-M code 0D - MOD_CTRL | KEY_N, // CTRL-N code 0E - MOD_CTRL | KEY_O, // CTRL-O code 0F - MOD_CTRL | KEY_P, // CTRL-P code 10 - MOD_CTRL | KEY_Q, // CTRL-Q code 11 - MOD_CTRL | KEY_R, // CTRL-R code 12 - MOD_CTRL | KEY_S, // CTRL-S code 13 - MOD_CTRL | KEY_T, // CTRL-T code 14 - KEY_RIGHT, // CTRL-U code 15 - MOD_CTRL | KEY_V, // CTRL-V code 16 - MOD_CTRL | KEY_W, // CTRL-W code 17 - MOD_CTRL | KEY_X, // CTRL-X code 18 - MOD_CTRL | KEY_Y, // CTRL-Y code 19 - MOD_CTRL | KEY_Z, // CTRL-Z code 1A - KEY_ESC, // ESCAPE code 1B - MOD_CTRL | KEY_BACKSLASH, // CTRL-\ code 1C - MOD_CTRL | KEY_RIGHTBRACE, // CTRL-] code 1D - MOD_CTRL | KEY_6, // CTRL-6 code 1E - MOD_CTRL | KEY_MINUS, // CTRL-- code 1F - KEY_SPACE, // ' ' code 20 - MOD_SHIFT | KEY_1, // ! code 21 - MOD_SHIFT | KEY_APOSTROPHE, // " code 22 - MOD_SHIFT | KEY_3, // # code 23 - MOD_SHIFT | KEY_4, // $ code 24 - MOD_SHIFT | KEY_5, // % code 25 - MOD_SHIFT | KEY_7, // & code 26 - KEY_APOSTROPHE, // ' code 27 - MOD_SHIFT | KEY_9, // ( code 28 - MOD_SHIFT | KEY_0, // ) code 29 - MOD_SHIFT | KEY_8, // * code 2A - MOD_SHIFT | KEY_EQUAL, // + code 2B - KEY_COMMA, // , code 2C - KEY_MINUS, // - code 2D - KEY_DOT, // . code 2E - KEY_SLASH, // / code 2F - KEY_0, // 0 code 30 - KEY_1, // 1 code 31 - KEY_2, // 2 code 32 - KEY_3, // 3 code 33 - KEY_4, // 4 code 34 - KEY_5, // 5 code 35 - KEY_6, // 6 code 36 - KEY_7, // 7 code 37 - KEY_8, // 8 code 38 - KEY_9, // 9 code 39 - MOD_SHIFT | KEY_SEMICOLON, // : code 3A - KEY_SEMICOLON, // ; code 3B - MOD_SHIFT | KEY_COMMA, // < code 3C - KEY_EQUAL, // = code 3D - MOD_SHIFT | KEY_DOT, // > code 3E - MOD_SHIFT | KEY_SLASH, // ? code 3F - MOD_SHIFT | KEY_2, // @ code 40 - MOD_SHIFT | KEY_A, // A code 41 - MOD_SHIFT | KEY_B, // B code 42 - MOD_SHIFT | KEY_C, // C code 43 - MOD_SHIFT | KEY_D, // D code 44 - MOD_SHIFT | KEY_E, // E code 45 - MOD_SHIFT | KEY_F, // F code 46 - MOD_SHIFT | KEY_G, // G code 47 - MOD_SHIFT | KEY_H, // H code 48 - MOD_SHIFT | KEY_I, // I code 49 - MOD_SHIFT | KEY_J, // J code 4A - MOD_SHIFT | KEY_K, // K code 4B - MOD_SHIFT | KEY_L, // L code 4C - MOD_SHIFT | KEY_M, // M code 4D - MOD_SHIFT | KEY_N, // N code 4E - MOD_SHIFT | KEY_O, // O code 4F - MOD_SHIFT | KEY_P, // P code 50 - MOD_SHIFT | KEY_Q, // Q code 51 - MOD_SHIFT | KEY_R, // R code 52 - MOD_SHIFT | KEY_S, // S code 53 - MOD_SHIFT | KEY_T, // T code 54 - MOD_SHIFT | KEY_U, // U code 55 - MOD_SHIFT | KEY_V, // V code 56 - MOD_SHIFT | KEY_W, // W code 57 - MOD_SHIFT | KEY_X, // X code 58 - MOD_SHIFT | KEY_Y, // Y code 59 - MOD_SHIFT | KEY_Z, // Z code 5A - KEY_LEFTBRACE, // [ code 5B - KEY_BACKSLASH, // \ code 5C - KEY_RIGHTBRACE, // ] code 5D - MOD_SHIFT | KEY_6, // ^ code 5E - MOD_SHIFT | KEY_MINUS, // _ code 5F - KEY_GRAVE, // ` code 60 - KEY_A, // a code 61 - KEY_B, // b code 62 - KEY_C, // c code 63 - KEY_D, // d code 64 - KEY_E, // e code 65 - KEY_F, // f code 66 - KEY_G, // g code 67 - KEY_H, // h code 68 - KEY_I, // i code 69 - KEY_J, // j code 6A - KEY_K, // k code 6B - KEY_L, // l code 6C - KEY_M, // m code 6D - KEY_N, // n code 6E - KEY_O, // o code 6F - KEY_P, // p code 70 - KEY_Q, // q code 71 - KEY_R, // r code 72 - KEY_S, // s code 73 - KEY_T, // t code 74 - KEY_U, // u code 75 - KEY_V, // v code 76 - KEY_W, // w code 77 - KEY_X, // x code 78 - KEY_Y, // y code 79 - KEY_Z, // z code 7A - MOD_SHIFT | KEY_LEFTBRACE, // { code 7B - MOD_SHIFT | KEY_BACKSLASH, // | code 7C - MOD_SHIFT | KEY_RIGHTBRACE, // } code 7D - MOD_SHIFT | KEY_GRAVE, // ~ code 7E - KEY_BACKSPACE, // BS code 7F - /* - * w/ solid apple scancodes - */ - MOD_CTRL | MOD_SHIFT | KEY_2, // CTRL-@ code 00 - MOD_CTRL | KEY_A, // CTRL-A code 01 - MOD_CTRL | KEY_B, // CTRL-B code 02 - MOD_CTRL | KEY_C, // CTRL-C code 03 - MOD_CTRL | KEY_D, // CTRL-D code 04 - MOD_CTRL | KEY_E, // CTRL-E code 05 - MOD_CTRL | KEY_F, // CTRL-F code 06 - MOD_CTRL | KEY_G, // CTRL-G code 07 - KEY_HOME, // CTRL-H code 08 - KEY_INSERT, // CTRL-I code 09 - KEY_PAGEDOWN, // CTRL-J code 0A - KEY_PAGEUP, // CTRL-K code 0B - MOD_CTRL | KEY_L, // CTRL-L code 0C - KEY_LINEFEED, // CTRL-M code 0D - MOD_CTRL | KEY_N, // CTRL-N code 0E - MOD_CTRL | KEY_O, // CTRL-O code 0F - MOD_CTRL | KEY_P, // CTRL-P code 10 - MOD_CTRL | KEY_Q, // CTRL-Q code 11 - MOD_CTRL | KEY_R, // CTRL-R code 12 - MOD_CTRL | KEY_S, // CTRL-S code 13 - MOD_CTRL | KEY_T, // CTRL-T code 14 - KEY_END, // CTRL-U code 15 - MOD_CTRL | KEY_V, // CTRL-V code 16 - MOD_CTRL | KEY_W, // CTRL-W code 17 - MOD_CTRL | KEY_X, // CTRL-X code 18 - MOD_CTRL | KEY_Y, // CTRL-Y code 19 - MOD_CTRL | KEY_Z, // CTRL-Z code 1A - MOD_CTRL | KEY_ESC, // ESCAPE code 1B - MOD_CTRL | KEY_BACKSLASH, // CTRL-\ code 1C - MOD_CTRL | KEY_RIGHTBRACE, // CTRL-] code 1D - MOD_CTRL | KEY_6, // CTRL-6 code 1E - MOD_CTRL | KEY_MINUS, // CTRL-- code 1F - KEY_SPACE, // ' ' code 20 - MOD_SHIFT | KEY_F1, // ! code 21 - MOD_SHIFT | KEY_APOSTROPHE, // " code 22 - MOD_SHIFT | KEY_F3, // # code 23 - MOD_SHIFT | KEY_F4, // $ code 24 - MOD_SHIFT | KEY_F5, // % code 25 - MOD_SHIFT | KEY_F7, // & code 26 - KEY_APOSTROPHE, // ' code 27 - MOD_SHIFT | KEY_F9, // ( code 28 - MOD_SHIFT | KEY_F10, // ) code 29 - MOD_SHIFT | KEY_F8, // * code 2A - MOD_SHIFT | KEY_F12, // + code 2B - KEY_COMMA, // , code 2C - KEY_F11, // - code 2D - KEY_DOT, // . code 2E - KEY_SLASH, // / code 2F - KEY_F10, // 0 code 30 - KEY_F1, // 1 code 31 - KEY_F2, // 2 code 32 - KEY_F3, // 3 code 33 - KEY_F4, // 4 code 34 - KEY_F5, // 5 code 35 - KEY_F6, // 6 code 36 - KEY_F7, // 7 code 37 - KEY_F8, // 8 code 38 - KEY_F9, // 9 code 39 - MOD_SHIFT | KEY_SEMICOLON, // : code 3A - KEY_SEMICOLON, // ; code 3B - MOD_SHIFT | KEY_COMMA, // < code 3C - KEY_F12, // = code 3D - MOD_SHIFT | KEY_DOT, // > code 3E - MOD_SHIFT | KEY_SLASH, // ? code 3F - MOD_SHIFT | KEY_F2, // @ code 40 - MOD_SHIFT | KEY_A, // A code 41 - MOD_SHIFT | KEY_B, // B code 42 - MOD_SHIFT | KEY_C, // C code 43 - MOD_SHIFT | KEY_D, // D code 44 - MOD_SHIFT | KEY_E, // E code 45 - MOD_SHIFT | KEY_F, // F code 46 - MOD_SHIFT | KEY_G, // G code 47 - MOD_SHIFT | KEY_H, // H code 48 - MOD_SHIFT | KEY_I, // I code 49 - MOD_SHIFT | KEY_J, // J code 4A - MOD_SHIFT | KEY_K, // K code 4B - MOD_SHIFT | KEY_L, // L code 4C - MOD_SHIFT | KEY_M, // M code 4D - MOD_SHIFT | KEY_N, // N code 4E - MOD_SHIFT | KEY_O, // O code 4F - MOD_SHIFT | KEY_P, // P code 50 - MOD_SHIFT | KEY_Q, // Q code 51 - MOD_SHIFT | KEY_R, // R code 52 - MOD_SHIFT | KEY_S, // S code 53 - MOD_SHIFT | KEY_T, // T code 54 - MOD_SHIFT | KEY_U, // U code 55 - MOD_SHIFT | KEY_V, // V code 56 - MOD_SHIFT | KEY_W, // W code 57 - MOD_SHIFT | KEY_X, // X code 58 - MOD_SHIFT | KEY_Y, // Y code 59 - MOD_SHIFT | KEY_Z, // Z code 5A - KEY_LEFTBRACE, // [ code 5B - KEY_BACKSLASH, // \ code 5C - KEY_RIGHTBRACE, // ] code 5D - MOD_SHIFT | KEY_F6, // ^ code 5E - MOD_SHIFT | KEY_F11, // _ code 5F - KEY_GRAVE, // ` code 60 - KEY_A, // a code 61 - KEY_B, // b code 62 - KEY_C, // c code 63 - KEY_D, // d code 64 - KEY_E, // e code 65 - KEY_F, // f code 66 - KEY_G, // g code 67 - KEY_H, // h code 68 - KEY_I, // i code 69 - KEY_J, // j code 6A - KEY_K, // k code 6B - KEY_L, // l code 6C - KEY_M, // m code 6D - KEY_N, // n code 6E - KEY_O, // o code 6F - KEY_P, // p code 70 - KEY_Q, // q code 71 - KEY_R, // r code 72 - KEY_S, // s code 73 - KEY_T, // t code 74 - KEY_U, // u code 75 - KEY_V, // v code 76 - KEY_W, // w code 77 - KEY_X, // x code 78 - KEY_Y, // y code 79 - KEY_Z, // z code 7A - MOD_SHIFT | KEY_LEFTBRACE, // { code 7B - MOD_SHIFT | KEY_BACKSLASH, // | code 7C - MOD_SHIFT | KEY_RIGHTBRACE, // } code 7D - MOD_SHIFT | KEY_GRAVE, // ~ code 7E - KEY_DELETE // DELETE code 7F -}; #define KEYCODE_MAX 0x10000 +#include "kbmap.h" +/* + * Daemon states. + */ #define RUN 0 #define STOP 1 #define RESET 2 @@ -353,7 +92,7 @@ static void sig_bye(int signo) } /*****************************************************************\ * * -* vdrv commands * +* vdrv commands * * * \*****************************************************************/ int vdrvopen(char *path) diff --git a/src/kbmap.h b/src/kbmap.h new file mode 100755 index 0000000..79e0cc0 --- /dev/null +++ b/src/kbmap.h @@ -0,0 +1,265 @@ + +int keycode[256] = { + /* + * normal scancode + */ + MOD_CTRL | MOD_SHIFT | KEY_2, // CTRL-@ code 00 + MOD_CTRL | KEY_A, // CTRL-A code 01 + MOD_CTRL | KEY_B, // CTRL-B code 02 + MOD_CTRL | KEY_C, // CTRL-C code 03 + MOD_CTRL | KEY_D, // CTRL-D code 04 + MOD_CTRL | KEY_E, // CTRL-E code 05 + MOD_CTRL | KEY_F, // CTRL-F code 06 + MOD_CTRL | KEY_G, // CTRL-G code 07 + KEY_LEFT, // CTRL-H code 08 + KEY_TAB, // CTRL-I code 09 + KEY_DOWN, // CTRL-J code 0A + KEY_UP, // CTRL-K code 0B + MOD_CTRL | KEY_L, // CTRL-L code 0C + KEY_ENTER, // CTRL-M code 0D + MOD_CTRL | KEY_N, // CTRL-N code 0E + MOD_CTRL | KEY_O, // CTRL-O code 0F + MOD_CTRL | KEY_P, // CTRL-P code 10 + MOD_CTRL | KEY_Q, // CTRL-Q code 11 + MOD_CTRL | KEY_R, // CTRL-R code 12 + MOD_CTRL | KEY_S, // CTRL-S code 13 + MOD_CTRL | KEY_T, // CTRL-T code 14 + KEY_RIGHT, // CTRL-U code 15 + MOD_CTRL | KEY_V, // CTRL-V code 16 + MOD_CTRL | KEY_W, // CTRL-W code 17 + MOD_CTRL | KEY_X, // CTRL-X code 18 + MOD_CTRL | KEY_Y, // CTRL-Y code 19 + MOD_CTRL | KEY_Z, // CTRL-Z code 1A + KEY_ESC, // ESCAPE code 1B + MOD_CTRL | KEY_BACKSLASH, // CTRL-\ code 1C + MOD_CTRL | KEY_RIGHTBRACE, // CTRL-] code 1D + MOD_CTRL | KEY_6, // CTRL-6 code 1E + MOD_CTRL | KEY_MINUS, // CTRL-- code 1F + KEY_SPACE, // ' ' code 20 + MOD_SHIFT | KEY_1, // ! code 21 + MOD_SHIFT | KEY_APOSTROPHE, // " code 22 + MOD_SHIFT | KEY_3, // # code 23 + MOD_SHIFT | KEY_4, // $ code 24 + MOD_SHIFT | KEY_5, // % code 25 + MOD_SHIFT | KEY_7, // & code 26 + KEY_APOSTROPHE, // ' code 27 + MOD_SHIFT | KEY_9, // ( code 28 + MOD_SHIFT | KEY_0, // ) code 29 + MOD_SHIFT | KEY_8, // * code 2A + MOD_SHIFT | KEY_EQUAL, // + code 2B + KEY_COMMA, // , code 2C + KEY_MINUS, // - code 2D + KEY_DOT, // . code 2E + KEY_SLASH, // / code 2F + KEY_0, // 0 code 30 + KEY_1, // 1 code 31 + KEY_2, // 2 code 32 + KEY_3, // 3 code 33 + KEY_4, // 4 code 34 + KEY_5, // 5 code 35 + KEY_6, // 6 code 36 + KEY_7, // 7 code 37 + KEY_8, // 8 code 38 + KEY_9, // 9 code 39 + MOD_SHIFT | KEY_SEMICOLON, // : code 3A + KEY_SEMICOLON, // ; code 3B + MOD_SHIFT | KEY_COMMA, // < code 3C + KEY_EQUAL, // = code 3D + MOD_SHIFT | KEY_DOT, // > code 3E + MOD_SHIFT | KEY_SLASH, // ? code 3F + MOD_SHIFT | KEY_2, // @ code 40 + MOD_SHIFT | KEY_A, // A code 41 + MOD_SHIFT | KEY_B, // B code 42 + MOD_SHIFT | KEY_C, // C code 43 + MOD_SHIFT | KEY_D, // D code 44 + MOD_SHIFT | KEY_E, // E code 45 + MOD_SHIFT | KEY_F, // F code 46 + MOD_SHIFT | KEY_G, // G code 47 + MOD_SHIFT | KEY_H, // H code 48 + MOD_SHIFT | KEY_I, // I code 49 + MOD_SHIFT | KEY_J, // J code 4A + MOD_SHIFT | KEY_K, // K code 4B + MOD_SHIFT | KEY_L, // L code 4C + MOD_SHIFT | KEY_M, // M code 4D + MOD_SHIFT | KEY_N, // N code 4E + MOD_SHIFT | KEY_O, // O code 4F + MOD_SHIFT | KEY_P, // P code 50 + MOD_SHIFT | KEY_Q, // Q code 51 + MOD_SHIFT | KEY_R, // R code 52 + MOD_SHIFT | KEY_S, // S code 53 + MOD_SHIFT | KEY_T, // T code 54 + MOD_SHIFT | KEY_U, // U code 55 + MOD_SHIFT | KEY_V, // V code 56 + MOD_SHIFT | KEY_W, // W code 57 + MOD_SHIFT | KEY_X, // X code 58 + MOD_SHIFT | KEY_Y, // Y code 59 + MOD_SHIFT | KEY_Z, // Z code 5A + KEY_LEFTBRACE, // [ code 5B + KEY_BACKSLASH, // \ code 5C + KEY_RIGHTBRACE, // ] code 5D + MOD_SHIFT | KEY_6, // ^ code 5E + MOD_SHIFT | KEY_MINUS, // _ code 5F + KEY_GRAVE, // ` code 60 + KEY_A, // a code 61 + KEY_B, // b code 62 + KEY_C, // c code 63 + KEY_D, // d code 64 + KEY_E, // e code 65 + KEY_F, // f code 66 + KEY_G, // g code 67 + KEY_H, // h code 68 + KEY_I, // i code 69 + KEY_J, // j code 6A + KEY_K, // k code 6B + KEY_L, // l code 6C + KEY_M, // m code 6D + KEY_N, // n code 6E + KEY_O, // o code 6F + KEY_P, // p code 70 + KEY_Q, // q code 71 + KEY_R, // r code 72 + KEY_S, // s code 73 + KEY_T, // t code 74 + KEY_U, // u code 75 + KEY_V, // v code 76 + KEY_W, // w code 77 + KEY_X, // x code 78 + KEY_Y, // y code 79 + KEY_Z, // z code 7A + MOD_SHIFT | KEY_LEFTBRACE, // { code 7B + MOD_SHIFT | KEY_BACKSLASH, // | code 7C + MOD_SHIFT | KEY_RIGHTBRACE, // } code 7D + MOD_SHIFT | KEY_GRAVE, // ~ code 7E + KEY_BACKSPACE, // BS code 7F + /* + * w/ solid apple scancodes + */ + MOD_CTRL | MOD_SHIFT | KEY_2, // CTRL-@ code 00 + MOD_CTRL | KEY_A, // CTRL-A code 01 + MOD_CTRL | KEY_B, // CTRL-B code 02 + MOD_CTRL | KEY_C, // CTRL-C code 03 + MOD_CTRL | KEY_D, // CTRL-D code 04 + MOD_CTRL | KEY_E, // CTRL-E code 05 + MOD_CTRL | KEY_F, // CTRL-F code 06 + MOD_CTRL | KEY_G, // CTRL-G code 07 + KEY_HOME, // CTRL-H code 08 + KEY_INSERT, // CTRL-I code 09 + KEY_PAGEDOWN, // CTRL-J code 0A + KEY_PAGEUP, // CTRL-K code 0B + MOD_CTRL | KEY_L, // CTRL-L code 0C + KEY_LINEFEED, // CTRL-M code 0D + MOD_CTRL | KEY_N, // CTRL-N code 0E + MOD_CTRL | KEY_O, // CTRL-O code 0F + MOD_CTRL | KEY_P, // CTRL-P code 10 + MOD_CTRL | KEY_Q, // CTRL-Q code 11 + MOD_CTRL | KEY_R, // CTRL-R code 12 + MOD_CTRL | KEY_S, // CTRL-S code 13 + MOD_CTRL | KEY_T, // CTRL-T code 14 + KEY_END, // CTRL-U code 15 + MOD_CTRL | KEY_V, // CTRL-V code 16 + MOD_CTRL | KEY_W, // CTRL-W code 17 + MOD_CTRL | KEY_X, // CTRL-X code 18 + MOD_CTRL | KEY_Y, // CTRL-Y code 19 + MOD_CTRL | KEY_Z, // CTRL-Z code 1A + MOD_CTRL | KEY_ESC, // ESCAPE code 1B + MOD_CTRL | KEY_BACKSLASH, // CTRL-\ code 1C + MOD_CTRL | KEY_RIGHTBRACE, // CTRL-] code 1D + MOD_CTRL | KEY_6, // CTRL-6 code 1E + MOD_CTRL | KEY_MINUS, // CTRL-- code 1F + KEY_SPACE, // ' ' code 20 + MOD_SHIFT | KEY_F1, // ! code 21 + MOD_SHIFT | KEY_APOSTROPHE, // " code 22 + MOD_SHIFT | KEY_F3, // # code 23 + MOD_SHIFT | KEY_F4, // $ code 24 + MOD_SHIFT | KEY_F5, // % code 25 + MOD_SHIFT | KEY_F7, // & code 26 + KEY_APOSTROPHE, // ' code 27 + MOD_SHIFT | KEY_F9, // ( code 28 + MOD_SHIFT | KEY_F10, // ) code 29 + MOD_SHIFT | KEY_F8, // * code 2A + MOD_SHIFT | KEY_F12, // + code 2B + KEY_COMMA, // , code 2C + KEY_F11, // - code 2D + KEY_DOT, // . code 2E + KEY_SLASH, // / code 2F + KEY_F10, // 0 code 30 + KEY_F1, // 1 code 31 + KEY_F2, // 2 code 32 + KEY_F3, // 3 code 33 + KEY_F4, // 4 code 34 + KEY_F5, // 5 code 35 + KEY_F6, // 6 code 36 + KEY_F7, // 7 code 37 + KEY_F8, // 8 code 38 + KEY_F9, // 9 code 39 + MOD_SHIFT | KEY_SEMICOLON, // : code 3A + KEY_SEMICOLON, // ; code 3B + MOD_SHIFT | KEY_COMMA, // < code 3C + KEY_F12, // = code 3D + MOD_SHIFT | KEY_DOT, // > code 3E + MOD_SHIFT | KEY_SLASH, // ? code 3F + MOD_SHIFT | KEY_F2, // @ code 40 + MOD_SHIFT | KEY_A, // A code 41 + MOD_SHIFT | KEY_B, // B code 42 + MOD_SHIFT | KEY_C, // C code 43 + MOD_SHIFT | KEY_D, // D code 44 + MOD_SHIFT | KEY_E, // E code 45 + MOD_SHIFT | KEY_F, // F code 46 + MOD_SHIFT | KEY_G, // G code 47 + MOD_SHIFT | KEY_H, // H code 48 + MOD_SHIFT | KEY_I, // I code 49 + MOD_SHIFT | KEY_J, // J code 4A + MOD_SHIFT | KEY_K, // K code 4B + MOD_SHIFT | KEY_L, // L code 4C + MOD_SHIFT | KEY_M, // M code 4D + MOD_SHIFT | KEY_N, // N code 4E + MOD_SHIFT | KEY_O, // O code 4F + MOD_SHIFT | KEY_P, // P code 50 + MOD_SHIFT | KEY_Q, // Q code 51 + MOD_SHIFT | KEY_R, // R code 52 + MOD_SHIFT | KEY_S, // S code 53 + MOD_SHIFT | KEY_T, // T code 54 + MOD_SHIFT | KEY_U, // U code 55 + MOD_SHIFT | KEY_V, // V code 56 + MOD_SHIFT | KEY_W, // W code 57 + MOD_SHIFT | KEY_X, // X code 58 + MOD_SHIFT | KEY_Y, // Y code 59 + MOD_SHIFT | KEY_Z, // Z code 5A + KEY_LEFTBRACE, // [ code 5B + KEY_BACKSLASH, // \ code 5C + KEY_RIGHTBRACE, // ] code 5D + MOD_SHIFT | KEY_F6, // ^ code 5E + MOD_SHIFT | KEY_F11, // _ code 5F + KEY_GRAVE, // ` code 60 + KEY_A, // a code 61 + KEY_B, // b code 62 + KEY_C, // c code 63 + KEY_D, // d code 64 + KEY_E, // e code 65 + KEY_F, // f code 66 + KEY_G, // g code 67 + KEY_H, // h code 68 + KEY_I, // i code 69 + KEY_J, // j code 6A + KEY_K, // k code 6B + KEY_L, // l code 6C + KEY_M, // m code 6D + KEY_N, // n code 6E + KEY_O, // o code 6F + KEY_P, // p code 70 + KEY_Q, // q code 71 + KEY_R, // r code 72 + KEY_S, // s code 73 + KEY_T, // t code 74 + KEY_U, // u code 75 + KEY_V, // v code 76 + KEY_W, // w code 77 + KEY_X, // x code 78 + KEY_Y, // y code 79 + KEY_Z, // z code 7A + MOD_SHIFT | KEY_LEFTBRACE, // { code 7B + MOD_SHIFT | KEY_BACKSLASH, // | code 7C + MOD_SHIFT | KEY_RIGHTBRACE, // } code 7D + MOD_SHIFT | KEY_GRAVE, // ~ code 7E + KEY_DELETE // DELETE code 7F +};