forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
m0110_usb: Change keymap and Makefile
- Loading branch information
Showing
8 changed files
with
250 additions
and
286 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# Target file name (without extension). | ||
TARGET = m0110_lufa | ||
|
||
# Directory common source filess exist | ||
TMK_DIR = ../../tmk_core | ||
|
||
# Directory keyboard dependent files exist | ||
TARGET_DIR = . | ||
|
||
# keyboard dependent files | ||
SRC = matrix.c \ | ||
led.c \ | ||
keymap_common.c \ | ||
m0110.c | ||
|
||
# To use own keymap file run make like: make keymap=hasu | ||
ifdef KEYMAP | ||
SRC += keymap_$(KEYMAP).c | ||
else | ||
SRC += keymap_default.c | ||
endif | ||
|
||
CONFIG_H = config.h | ||
|
||
|
||
# MCU name, you MUST set this to match the board you are using | ||
# type "make clean" after changing this, so all files will be rebuilt | ||
MCU = atmega32u2 # TMK converter rev2 | ||
#MCU = atmega32u4 # TMK converter rev1 | ||
|
||
|
||
# Processor frequency. | ||
# Normally the first thing your program should do is set the clock prescaler, | ||
# so your program will run at the correct speed. You should also set this | ||
# variable to same clock speed. The _delay_ms() macro uses this, and many | ||
# examples use this variable to calculate timings. Do not add a "UL" here. | ||
F_CPU = 16000000 | ||
|
||
|
||
# | ||
# LUFA specific | ||
# | ||
# Target architecture (see library "Board Types" documentation). | ||
ARCH = AVR8 | ||
|
||
# Input clock frequency. | ||
# This will define a symbol, F_USB, in all source code files equal to the | ||
# input clock frequency (before any prescaling is performed) in Hz. This value may | ||
# differ from F_CPU if prescaling is used on the latter, and is required as the | ||
# raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
# at the end, this will be done automatically to create a 32-bit value in your | ||
# source code. | ||
# | ||
# If no clock division is performed on the input clock inside the AVR (via the | ||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
F_USB = $(F_CPU) | ||
|
||
# Interrupt driven control endpoint task | ||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
|
||
|
||
# Boot Section Size in bytes | ||
# Teensy halfKay 512 | ||
# Atmel DFU loader 4096 | ||
# LUFA bootloader 4096 | ||
OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
|
||
|
||
# Build Options | ||
# *Comment out* to disable the options. | ||
# | ||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | ||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
CONSOLE_ENABLE = yes # Console for debug(+400) | ||
COMMAND_ENABLE = yes # Commands for debug and configuration | ||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend | ||
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA | ||
#KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor | ||
|
||
|
||
|
||
#---------------- Programming Options -------------------------- | ||
PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex | ||
|
||
|
||
# Search Path | ||
VPATH += $(TARGET_DIR) | ||
VPATH += $(TMK_DIR) | ||
|
||
|
||
include $(TMK_DIR)/protocol/lufa.mk | ||
include $(TMK_DIR)/protocol.mk | ||
include $(TMK_DIR)/common.mk | ||
include $(TMK_DIR)/rules.mk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
Copyright 2011,2012,2014 Jun Wako <[email protected]> | ||
Copyright 2011,2012,2014,2015 Jun Wako <[email protected]> | ||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
|
@@ -24,64 +24,49 @@ extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; | |
extern const uint16_t fn_actions[]; | ||
|
||
|
||
/* | ||
* The keymap works with both M0110 and M0110A keyboards. As you can see, the M0110A is a superset | ||
* of the M0110 keyboard, with only one exception: 'Enter' in M0110 does not exist | ||
* on the M0110A, but since it generates a unique scan code which is not used for some other key in | ||
* the M0110A, they are totally interchangeable. In fact, the M0110A is functionally (almost) | ||
* identical to the combination of the M0110 along with the M0120 keypad. The only difference | ||
* (which is causing some problems as you will read below) is that the M0110+M0120 don't have | ||
* dedicated arrow keys, while the M0110A does. However, the M0120 did have arrow keys, which | ||
* doubled as the [comma], [/], [*] and [+] keys, when used with the [Shift] key. The M0110A has | ||
* substituted the [comma] key with the [=] key, however its scancode is the same. | ||
/* Common layout for M0110 and M0110A | ||
* This keymap works with both keyboards. As you can see, the M0110A is | ||
* a superset of M0110 keyboard, only one exception is 'Enter'(34) of M0110 | ||
* does not exist on the M0110A. | ||
* | ||
* Physical layout: | ||
* M0110A | ||
* ,---------------------------------------------------------. ,---------------. | ||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Bcksp| |Clr| =| /| *| | ||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| | ||
* |-----------------------------------------------------' | |---------------| | ||
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| | | ||
* |---------------------------------------------------------' |-----------|Ent| | ||
* |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| | | ||
* |---------------------------------------------------------| |-----------|Ent| | ||
* |Opt |Mac | Space |Ent| \|Lft|Rgt|Dn | | 0| .| | | ||
* `---------------------------------------------------------' `---------------' | ||
* | ||
* M0110 M0120 | ||
* M0110A scan codes | ||
* ,---------------------------------------------------------. ,---------------. | ||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| -| +| *| | ||
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | 7| 8| 9| /| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| ,| | ||
* | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| | | 59| 5B| 5C| 4E| | ||
* |-----------------------------------------------------' | |---------------| | ||
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 66| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | 1| 2| 3| | | ||
* `---------------------------------------------------------' |-----------|Ent| | ||
* |Opt|Mac | Space |Ent |Opt| | 0| .| | | ||
* `-----------------------------------------------' `---------------' | ||
* With Shift keys on M0120 work as curosor.(-:Left *:Right /:Up ,:Down) | ||
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| 4D| | 53| 54| 55| | | ||
* `---------------------------------------------------------' |-----------| 4C| | ||
* | 3A| 37| 31 | 2A| 46| 42| 48| | 52| 41| | | ||
* `---------------------------------------------------------' `---------------' | ||
* | ||
* NOTE: \ is located differently. | ||
* NOTE: Enter on M0110 is different from Enter on keypad(M0120 and M0110A). | ||
* NOTE: Left Shift and right Shift are logically same key. | ||
* NOTE: Left Option and right Option are logically same key. | ||
*/ | ||
|
||
/* Keymap definition Macro | ||
* M0110 + M0120 scan codes | ||
* ,---------------------------------------------------------. ,---------------. | ||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Clr| =| /| *| | ||
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| | ||
* |-----------------------------------------------------' | |---------------| | ||
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| | ||
* | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E| | ||
* |---------------------------------------------------------| |---------------| | ||
* |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shft|Up | | 1| 2| 3| | | ||
* |---------------------------------------------------------| |-----------|Ent| | ||
* |Opt |Mac | Space |Ent| \|Lft|Rgt|Dn | | 0| .| | | ||
* `---------------------------------------------------------' `---------------' | ||
* NOTE: Ent between Space and \ means Enter on M0110. | ||
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | 56| 57| 58| 66| | ||
* |---------------------------------------------------------| |---------------| | ||
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 38| | 53| 54| 55| | | ||
* `---------------------------------------------------------' |-----------| 4C| | ||
* | 3A| 37| 31 | 34| 3A| | 52| 41| | | ||
* `------------------------------------------------' `---------------' | ||
* Two right and left keys of 38 and 3A are identical, you cannot discriminate those two. | ||
*/ | ||
#define KEYMAP( \ | ||
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \ | ||
|
@@ -106,25 +91,30 @@ extern const uint16_t fn_actions[]; | |
{ KC_##K68, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K6D, KC_NO, KC_NO }, \ | ||
} | ||
|
||
/* International keyboard | ||
* ,---------------------------------------------------------. | ||
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | ||
* |---------------------------------------------------------| | ||
* | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| 2A| | ||
* |------------------------------------------------------, | | ||
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | | ||
* |---------------------------------------------------------| | ||
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 0A| 38| | ||
* `---------------------------------------------------------' | ||
* | 3A| 37| 34 | 31| 3A| | ||
* `------------------------------------------------' | ||
/* International keyboard layout for M0110 + M0120 | ||
* https://en.wikipedia.org/wiki/File:Apple_Macintosh_Plus_Keyboard.jpg | ||
* Probably International keyboard layout of M0110A doesn't exist. | ||
* | ||
* M0110 + M0120 scan codes | ||
* ,---------------------------------------------------------. ,---------------. | ||
* | 32| 12| 13| 14| 15| 17| 16| 1A| 1C| 19| 1D| 1B| 18| 33| | 47| 68| 6D| 62| | ||
* |---------------------------------------------------------| |---------------| | ||
* | 30| 0C| 0D| 0E| 0F| 10| 11| 20| 22| 1F| 23| 21| 1E| 2A| | 59| 5B| 5C| 4E| | ||
* |------------------------------------------------------, | |---------------| | ||
* | 39| 00| 01| 02| 03| 05| 04| 26| 28| 25| 29| 27| 24| | | 56| 57| 58| 66| | ||
* |---------------------------------------------------------| |---------------| | ||
* | 38| 06| 07| 08| 09| 0B| 2D| 2E| 2B| 2F| 2C| 0A| 38| | 53| 54| 55| | | ||
* `---------------------------------------------------------' |-----------| 4C| | ||
* | 3A| 37| 34 | 31| 3A| | 52| 41| | | ||
* `------------------------------------------------' `---------------' | ||
* Two right and left keys of 38 and 3A are identical, you cannot discriminate those two. | ||
*/ | ||
#define KEYMAP_INTL( \ | ||
K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K47,K68,K6D,K62, \ | ||
K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K59,K5B,K5C,K4E, \ | ||
K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27,K24, K56,K57,K58,K66, \ | ||
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C,K0A, K4D, K53,K54,K55,K4C, \ | ||
K3A,K37, K34, K31, K46,K42,K48, K52, K41 \ | ||
K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C,K0A, K53,K54,K55,K4C, \ | ||
K3A,K37, K34, K31, K52, K41 \ | ||
) { \ | ||
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \ | ||
{ KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \ | ||
|
@@ -134,8 +124,8 @@ extern const uint16_t fn_actions[]; | |
{ KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \ | ||
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_NO, KC_NO, KC_##K37 }, \ | ||
{ KC_##K38, KC_##K39, KC_##K3A, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ | ||
{ KC_NO, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_##K47 }, \ | ||
{ KC_##K48, KC_NO, KC_NO, KC_NO, KC_##K4C, KC_##K4D, KC_##K4E, KC_NO }, \ | ||
{ KC_NO, KC_##K41, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K47 }, \ | ||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_##K4C, KC_NO, KC_##K4E, KC_NO }, \ | ||
{ KC_NO, KC_NO, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \ | ||
{ KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \ | ||
{ KC_NO, KC_NO, KC_##K62, KC_NO, KC_NO, KC_NO, KC_##K66, KC_NO }, \ | ||
|
Oops, something went wrong.