summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2011-12-19 14:06:53 +0900
committertmk <nobody@nowhere>2011-12-19 14:06:53 +0900
commitbaf885dc31e1d4ac98e03870dffea6e19c259427 (patch)
tree6a88bf3d35306b4f7d45fe01f56fafdaa91cb487
parent3f0289e66678af8c2d1f001ccb9cb34ccfba7c5c (diff)
M0110: added keymaps, mousekeys
-rw-r--r--m0110.c8
-rw-r--r--m0110.h2
-rw-r--r--m0110_usb/Makefile4
-rw-r--r--m0110_usb/README2
-rw-r--r--m0110_usb/keymap.c48
5 files changed, 46 insertions, 18 deletions
diff --git a/m0110.c b/m0110.c
index 725675ed8f..f4f5223dd0 100644
--- a/m0110.c
+++ b/m0110.c
@@ -103,7 +103,7 @@ KEY EVENT:
To get scan code, use ((bits&(1<<7)) | ((bits&7F))>>1).
SCAN CODE:
- M0110A
+ M0110
,---------------------------------------------------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs|
|---------------------------------------------------------|
@@ -211,7 +211,9 @@ uint8_t m0110_recv(void)
}
}
idle();
- print("m0110_send recv data: "); phex(data); print("\n");
+ if (data != M0110_NULL) {
+ print("m0110_recv data: "); phex(data); print("\n");
+ }
return data;
ERROR:
if (m0110_error) {
@@ -229,7 +231,7 @@ uint8_t m0110_recv_key(void)
if (key == 0xFF || key == M0110_NULL)
return M0110_NULL;
else
- return (key&(1<<7) | (key&0x7F)>>1);
+ return ((key&(1<<7)) | ((key&0x7F)>>1));
}
diff --git a/m0110.h b/m0110.h
index fe2e91227b..f5c1e21bd8 100644
--- a/m0110.h
+++ b/m0110.h
@@ -65,7 +65,7 @@ POSSIBILITY OF SUCH DAMAGE.
extern uint8_t m0110_error;
/* host role */
-void m0110_host_init(void);
+void m0110_init(void);
uint8_t m0110_send(uint8_t data);
uint8_t m0110_recv(void);
uint8_t m0110_recv_key(void);
diff --git a/m0110_usb/Makefile b/m0110_usb/Makefile
index 8c8460c806..819d7fff3e 100644
--- a/m0110_usb/Makefile
+++ b/m0110_usb/Makefile
@@ -36,9 +36,9 @@ F_CPU = 16000000
# Build Options
# *Comment out* to disable the options.
#
-#MOUSEKEY_ENABLE = yes # Mouse keys
+MOUSEKEY_ENABLE = yes # Mouse keys
#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support
-#EXTRAKEY_ENABLE = yes # Audio control and System control
+EXTRAKEY_ENABLE = yes # Audio control and System control
#NKRO_ENABLE = yes # USB Nkey Rollover
diff --git a/m0110_usb/README b/m0110_usb/README
index 4122edb287..6ef98757a3 100644
--- a/m0110_usb/README
+++ b/m0110_usb/README
@@ -1,6 +1,6 @@
M0110 to USB keyboard converter
===============================
-This firmware converts protocol for Apple Machintosh Keybard M0110.
+This firmware converts the protocol of Apple Macintosh keyboard M0110 into USB.
Connection
diff --git a/m0110_usb/keymap.c b/m0110_usb/keymap.c
index 24fe6cd472..bbb699a9ac 100644
--- a/m0110_usb/keymap.c
+++ b/m0110_usb/keymap.c
@@ -55,9 +55,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
- 0, // Fn0
- 0, // Fn1
- 0, // Fn2
+ 1, // Fn0
+ 2, // Fn1
+ 3, // Fn2
0, // Fn3
0, // Fn4
0, // Fn5
@@ -68,8 +68,8 @@ static const uint8_t PROGMEM fn_layer[] = {
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
- KB_NO, // Fn0
- KB_NO, // Fn1
+ KB_SCOLON, // Fn0
+ KB_SLASH, // Fn1
KB_NO, // Fn2
KB_NO, // Fn3
KB_NO, // Fn4
@@ -79,25 +79,51 @@ static const uint8_t PROGMEM fn_keycode[] = {
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // LShift and RShift are logically same one button.
+ // LOption and ROption are logically same one button.
/* Default Layer: plain keymap
* ,---------------------------------------------------------.
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Bacpa|
* |---------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |---------------------------------------------------------|
- * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return|
+ * |Contro| A| S| D| F| G| H| J| K| L|Fn0| '|Return|
* |---------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift |
+ * |Shift | Z| X| C| V| B| N| M| ,| ,|Fn1| Shift|
* `---------------------------------------------------------'
- * |Opt|Alt | Space |Alt |Opt|
+ * |Fn2|Alt | Space |Gui |Fn2|
* `-----------------------------------------------'
*/
KEYMAP(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS,
- CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT,
- LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,
- LGUI,LALT, SPC, RALT
+ LCTL,A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT,
+ LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1,
+ FN2, LALT, SPC, LGUI
+ ),
+ // vi mousekeys
+ KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL,
+ CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, NO,
+ LCTL,VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT,
+ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO,
+ NO, LALT, BTN1, LGUI
+ ),
+ // vi cusorkeys
+ KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL,
+ CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, NO,
+ LCTL,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT,
+ LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN1,
+ NO, LALT, SPC, LGUI
+ ),
+ // HHKB & WASD
+ KEYMAP(
+ ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL,
+ CAPS,HOME,UP, PGUP,NO, NO, NO, NO, PSCR,SLCK,BRK, UP, NO, NO,
+ LCTL,LEFT,DOWN,RGHT,NO, NO, NO, NO, HOME,PGUP,LEFT,RGHT, ENT,
+ LSFT,END, NO, PGDN,NO, VOLD,VOLU,MUTE,END, PGDN,DOWN,
+ FN2, LALT, SPC, LGUI
),
};