Skip to content

Instantly share code, notes, and snippets.

@clee
Last active May 3, 2016 00:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save clee/69fbb66af6602bf5bb7369024ba9cbb4 to your computer and use it in GitHub Desktop.
Save clee/69fbb66af6602bf5bb7369024ba9cbb4 to your computer and use it in GitHub Desktop.
scanmaps
#ifndef RUMPV3_1_PIC18F4550
#define RUMPV3_1_PIC18F4550
#if defined(SCANMAP_PIC18F4550)
// scanmap for PIC18F4550
#pragma udata
const unsigned rom char keymap[16][8] = { // IBM Model M keymap, 16 rows, 8 columns
{ 0, 0, MOD_LCTRL, 0, 0, 0, MOD_RCTRL, 0 }, // row 1 (RA0)
{ 0, MOD_LSHIFT, 0, 0, 0, 0, MOD_RSHIFT, 0 }, // row 2 (RA1)
{ KEY_esc, KEY_tab, KEY_grave, KEY_1, KEY_Q, KEY_A, KEY_Z, 0 }, // row 3 (RA2)
{ 0, KEY_cpslck, KEY_F1, KEY_2, KEY_W, KEY_S, KEY_X, 0 }, // row 4 (RA3)
{ KEY_F4, KEY_F3, KEY_F2, KEY_3, KEY_E, KEY_D, KEY_C, 0 }, // row 5 (RA4)
{ KEY_G, KEY_T, KEY_5, KEY_4, KEY_R, KEY_F, KEY_V, KEY_B }, // row 6 (RA5)
{ KEY_F5, KEY_bckspc, KEY_F9, KEY_F10, 0, KEY_bckslsh, KEY_enter, KEY_spc }, // row 7 (RE0)
{ KEY_H, KEY_Y, KEY_6, KEY_7, KEY_U, KEY_J, KEY_M, KEY_N }, // row 8 (RE1)
// These rows are in reverse order because PORTD is wired backwards for cleaner PCB layout.
{ MOD_LALT, 0, 0, KEY_PrtScr, KEY_scrlck, 0, 0, MOD_RALT }, // row 16 (RD0)
{ KEY_uarr, 0, KEY_home, KEY_end, KEY_KPplus, KEY_KPenter, KEY_break, KEY_larr }, // row 15 (RD1)
{ KEY_KPcomma, KEY_KP6, KEY_pgup, KEY_pgdn, KEY_KP9, KEY_KP3, KEY_KPast, KEY_KPminus }, // row 14 (RD2)
{ KEY_KP0, KEY_KP5, KEY_ins, KEY_F12, KEY_KP8, KEY_KP2, KEY_KPslash, KEY_rarr }, // row 13 (RD3)
{ 0, KEY_KP4, KEY_del, KEY_F11, KEY_KP7, KEY_KP1, KEY_numlock, KEY_darr }, // row 12 (RD4)
{ KEY_ping, KEY_lbr, KEY_minus, KEY_0, KEY_P, KEY_smcol, 0, KEY_slash }, // row 11 (RD5)
{ 0, KEY_F7, KEY_F8, KEY_9, KEY_O, KEY_L, KEY_dot, 0 }, // row 10 (RD6)
{ KEY_F6, KEY_rbr, KEY_equal, KEY_8, KEY_I, KEY_K, KEY_comma, 0 } // row 9 (RD7)
};
#endif // SCANMAP_PIC18F4550
#endif // RUMPV3_1_PIC18F4550
#ifndef RUMPV3_2_PIC18F45K50
#define RUMPV3_2_PIC18F45K50
#if defined(SCANMAP_PIC18F45K50)
// scanmap for PIC18F45K50
#pragma udata
const unsigned rom char keymap[16][8] = { // IBM Model M keymap, 16 rows, 8 columns
{ MOD_RALT, 0, 0, KEY_scrlck, KEY_PrtScr, 0, 0, MOD_LALT }, // row 16 (RA0)
{ KEY_larr, KEY_break, KEY_KPenter, KEY_KPplus, KEY_end, KEY_home, 0, KEY_uarr }, // row 15 (RA1)
{ KEY_KPminus, KEY_KPast, KEY_KP3, KEY_KP9, KEY_pgdn, KEY_pgup, KEY_KP6, KEY_KPcomma }, // row 14 (RA2)
{ KEY_rarr, KEY_KPslash, KEY_KP2, KEY_KP8, KEY_F12, KEY_ins, KEY_KP5, KEY_KP0 }, // row 13 (RA3)
{ KEY_darr, KEY_numlock, KEY_KP1, KEY_KP7, KEY_F11, KEY_del, KEY_KP4, 0 }, // row 12 (RA4)
{ KEY_slash, 0, KEY_smcol, KEY_P, KEY_0, KEY_minus, KEY_lbr, KEY_ping }, // row 11 (RA5)
{ 0, KEY_dot, KEY_L, KEY_O, KEY_9, KEY_F8, KEY_F7, 0 }, // row 10 (RE0)
{ 0, KEY_comma, KEY_K, KEY_I, KEY_8, KEY_equal, KEY_rbr, KEY_F6 }, // row 9 (RE1)
{ KEY_N, KEY_M, KEY_J, KEY_U, KEY_7, KEY_6, KEY_Y, KEY_H }, // row 8 (RD0)
{ KEY_spc, KEY_enter, KEY_bckslsh, 0, KEY_F10, KEY_F9, KEY_bckspc, KEY_F5 }, // row 7 (RD1)
{ KEY_B, KEY_V, KEY_F, KEY_R, KEY_4, KEY_5, KEY_T, KEY_G }, // row 6 (RD2)
{ 0, KEY_C, KEY_D, KEY_E, KEY_3, KEY_F2, KEY_F3, KEY_F4 }, // row 5 (RD3)
{ 0, KEY_X, KEY_S, KEY_W, KEY_2, KEY_F1, KEY_cpslck, 0 }, // row 4 (RD4)
{ 0, KEY_Z, KEY_A, KEY_Q, KEY_1, KEY_grave, KEY_tab, KEY_esc }, // row 3 (RD5)
{ 0, MOD_RSHIFT, 0, 0, 0, 0, MOD_LSHIFT, 0 }, // row 2 (RD6)
{ 0, MOD_RCTRL, 0, 0, 0, MOD_LCTRL, 0, 0 } // row 1 (RD7)
};
#endif // SCANMAP_PIC18F45K50
#endif // RUMPV3_2_PIC18F45K50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment