x68k_usb: Add unimap

This commit is contained in:
tmk 2017-05-08 15:11:31 +09:00
parent 197ca82992
commit b0573ba80e
5 changed files with 1342 additions and 65 deletions

View file

@ -1,48 +1,45 @@
#
# Makefile for PJRC Teensy
#
# Target file name (without extension). # Target file name (without extension).
TARGET = x68k_usb TARGET ?= x68k_usb
# Directory common source filess exist # Directory common source filess exist
TMK_DIR = ../../tmk_core TMK_DIR ?= ../../tmk_core
# Directory keyboard dependent files exist # Directory keyboard dependent files exist
TARGET_DIR = . TARGET_DIR ?= .
# keyboard dependent files # project specific files
SRC = keymap.c \ SRC ?= matrix.c \
matrix.c \
led.c \ led.c \
protocol/serial_uart.c protocol/serial_uart.c
CONFIG_H = config.h CONFIG_H = config.h
# MCU name, you MUST set this to match the board you are using # MCU name
# type "make clean" after changing this, so all files will be rebuilt # atmega32u4 Teensy2.0
#MCU = at90usb162 # Teensy 1.0 # atemga32u4 TMK Converter rev.1
#MCU = atmega32u4 # Teensy 2.0 # atemga32u2 TMK Converter rev.2
#MCU = at90usb646 # Teensy++ 1.0 MCU ?= atmega32u2
#MCU = at90usb1286 # Teensy++ 2.0
MCU = atmega32u2 # Teensy 2.0
# Processor frequency. # Processor frequency.
# Normally the first thing your program should do is set the clock prescaler, # This will define a symbol, F_CPU, in all source code files equal to the
# so your program will run at the correct speed. You should also set this # processor frequency in Hz. You can then use this symbol in your source code to
# variable to same clock speed. The _delay_ms() macro uses this, and many # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# examples use this variable to calculate timings. Do not add a "UL" here. # automatically to create a 32-bit value in your source code.
F_CPU = 16000000 #
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU ?= 16000000
# #
# LUFA specific # LUFA specific
# #
# Target architecture (see library "Board Types" documentation). # Target architecture (see library "Board Types" documentation).
ARCH = AVR8 ARCH ?= AVR8
# Input clock frequency. # Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the # This will define a symbol, F_USB, in all source code files equal to the
@ -55,69 +52,58 @@ ARCH = AVR8
# #
# If no clock division is performed on the input clock inside the AVR (via the # 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. # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB = $(F_CPU) F_USB ?= $(F_CPU)
# Interrupt driven control endpoint task(+60) # Interrupt driven control endpoint task(+60)
#OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# Boot Section Size in bytes # Boot Section Size in *bytes*
# Teensy halfKay 512 # Teensy halfKay 512
# Atmel DFU loader 4096 # Teensy++ halfKay 1024
# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2
# LUFA bootloader 4096 # LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096 OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# *Comment out* to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) #BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend #UNIMAP_ENABLE = yes
#NKRO_ENABLE = yes # USB Nkey Rollover #ACTIONMAP_ENABLE = yes # Use 16bit actionmap instead of 8bit keymap
#KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor
#
#---------------- Programming Options -------------------------- # Keymap file
AVRDUDE = avrdude #
# Type: avrdude -c ? to get a full listing. ifeq (yes,$(strip $(UNIMAP_ENABLE)))
AVRDUDE_PROGRAMMER = avr109 KEYMAP_FILE = unimap
AVRDUDE_PORT = /dev/ttyACM0 else
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex ifeq (yes,$(strip $(ACTIONMAP_ENABLE)))
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep KEYMAP_FILE = actionmap
else
# Uncomment the following if you want avrdude's erase cycle counter. KEYMAP_FILE = keymap
# Note that this counter needs to be initialized first using -Yn, endif
# see avrdude manual. endif
#AVRDUDE_ERASE_COUNTER = -y ifdef KEYMAP
SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC)
# Uncomment the following if you do /not/ wish a verification to be else
# performed after programming the device. SRC := $(KEYMAP_FILE).c $(SRC)
#AVRDUDE_NO_VERIFY = -V endif
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_VERBOSE = -v -v
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
#AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER)
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
PROGRAM_CMD = $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
# Search Path # Search Path
VPATH += $(TARGET_DIR) VPATH += $(TARGET_DIR)
VPATH += $(TMK_DIR) VPATH += $(TMK_DIR)
include $(TMK_DIR)/protocol.mk
include $(TMK_DIR)/protocol/lufa.mk include $(TMK_DIR)/protocol/lufa.mk
include $(TMK_DIR)/protocol.mk
include $(TMK_DIR)/common.mk include $(TMK_DIR)/common.mk
include $(TMK_DIR)/rules.mk include $(TMK_DIR)/rules.mk

View file

@ -0,0 +1,5 @@
TARGET = x68k_usb_unimap
UNIMAP_ENABLE = yes
KEYMAP_SECTION_ENABLE = yes
include Makefile

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,45 @@
/*
Copyright 2017 Jun Wako <wakojun@gmail.com>
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
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "unimap_trans.h"
#define AC_FN0 ACTION_LAYER_MOMENTARY(1)
#ifdef KEYMAP_SECTION_ENABLE
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
#else
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = {
#endif
UNIMAP(
F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24,
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, VOLD,VOLU,MUTE,
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, DEL, END, PGDN, P7, P8, P9, PPLS,
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, NUHS,ENT, P4, P5, P6, COMM,
LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RO, RSFT, UP, P1, P2, P3, PENT,
LCTL,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,RGUI,FN0, RCTL, LEFT,DOWN,RGHT, P0, DOT, PEQL
),
UNIMAP(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
GRV, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, INS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,
TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,TRNS,HOME,PGUP,LEFT,RGHT, TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,END, PGDN,DOWN, TRNS,TRNS, PGUP, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, HOME,PGDN,END, TRNS, TRNS,TRNS
),
};

View file

@ -0,0 +1,75 @@
/*
Copyright 2017 Jun Wako <wakojun@gmail.com>
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
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UNIMAP_TRANS_H
#define UNIMAP_TRANS_H
#include <stdint.h>
#include <avr/pgmspace.h>
#include "unimap.h"
/* X68000 Keyboard Scan codes to Unimap
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
`---' `---' `-------------------' `-------------------' `-----------' `---------------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42|
|-----------------------------------------------------------| |------------ |---------------|
| 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46|
|------------------------------------------------------. 1D | `---=====---' |---------------|
| 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A|
|-----------------------------------------------------------| | 3B|---| 3D| |-----------|---|
| 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| |
`-----------------------------------------------------------' .---=====---. |-----------| 4E|
| 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| |
`---------------------------------------------' `-----------' `---------------'
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
|F11| |F12| | F1| F2| F3| F4| F5| | F6| F7| F8| F9|F10| |PrS|ScL|Pau| |F15|F16|F17|F18|
`---' `---' `-------------------' `-------------------' `-----------' `---------------'
,-----------------------------------------------------------. ,-----------. ,---------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |------------ |---------------|
| Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |Del|End|PgD| | 7| 8| 9| +|
|------------------------------------------------------. Ent| `---=====---' |---------------|
| Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | ___|Up |___ | 4| 5| 6| =|
|-----------------------------------------------------------| |Lef|---|Rig| |-----------|---|
| Shift | Z| X| C| V| B| N| M| ,| .| /| RO| Shift| `---|Dow|---' | 1| 2| 3| |
`-----------------------------------------------------------' .---=====---. |-----------|Ent|
|Cap| Gui| Alt| Space | Alt| Gui| App|Ctl| | F13 | F14 | | 0| ,| .| |
`---------------------------------------------' `-----------' `---------------'
*/
const uint8_t PROGMEM unimap_trans[MATRIX_ROWS][MATRIX_COLS] = {
{ UNIMAP_NO, UNIMAP_ESC, UNIMAP_1, UNIMAP_2, UNIMAP_3, UNIMAP_4, UNIMAP_5, UNIMAP_6 }, \
{ UNIMAP_7, UNIMAP_8, UNIMAP_9, UNIMAP_0, UNIMAP_MINUS, UNIMAP_EQUAL, UNIMAP_BSLS, UNIMAP_BSPC }, \
{ UNIMAP_TAB, UNIMAP_Q, UNIMAP_W, UNIMAP_E, UNIMAP_R, UNIMAP_T, UNIMAP_Y, UNIMAP_U }, \
{ UNIMAP_I, UNIMAP_O, UNIMAP_P, UNIMAP_LBRC, UNIMAP_RBRC, UNIMAP_ENTER, UNIMAP_A, UNIMAP_S }, \
{ UNIMAP_D, UNIMAP_F, UNIMAP_G, UNIMAP_H, UNIMAP_J, UNIMAP_K, UNIMAP_L, UNIMAP_SCLN }, \
{ UNIMAP_QUOTE, UNIMAP_GRAVE, UNIMAP_Z, UNIMAP_X, UNIMAP_C, UNIMAP_V, UNIMAP_B, UNIMAP_N }, \
{ UNIMAP_M, UNIMAP_COMMA, UNIMAP_DOT, UNIMAP_SLASH, UNIMAP_RO, UNIMAP_SPACE, UNIMAP_INSERT,UNIMAP_PGUP }, \
{ UNIMAP_DELETE,UNIMAP_END, UNIMAP_PGDOWN,UNIMAP_LEFT, UNIMAP_UP, UNIMAP_RIGHT, UNIMAP_DOWN, UNIMAP_NLCK }, \
{ UNIMAP_PSLS, UNIMAP_PAST, UNIMAP_PMNS, UNIMAP_P7, UNIMAP_P8, UNIMAP_P9, UNIMAP_PPLS, UNIMAP_P4 }, \
{ UNIMAP_P5, UNIMAP_P6, UNIMAP_PEQL, UNIMAP_P1, UNIMAP_P2, UNIMAP_P3, UNIMAP_PENT, UNIMAP_P0 }, \
{ UNIMAP_PCMM, UNIMAP_PDOT, UNIMAP_F16, UNIMAP_F17, UNIMAP_F18, UNIMAP_LGUI, UNIMAP_LALT, UNIMAP_RALT }, \
{ UNIMAP_RGUI, UNIMAP_APP, UNIMAP_PSCR, UNIMAP_SLCK, UNIMAP_PAUSE, UNIMAP_F15, UNIMAP_HOME, UNIMAP_CAPS }, \
{ UNIMAP_RCTRL, UNIMAP_F11, UNIMAP_F12, UNIMAP_F1, UNIMAP_F2, UNIMAP_F3, UNIMAP_F4, UNIMAP_F5, }, \
{ UNIMAP_F6, UNIMAP_F7, UNIMAP_F8, UNIMAP_F9, UNIMAP_F10, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO }, \
{ UNIMAP_LSHIFT,UNIMAP_LCTRL, UNIMAP_F13, UNIMAP_F14, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, }, \
{ UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO } \
};
#endif