x68k_usb: Add unimap
This commit is contained in:
parent
197ca82992
commit
b0573ba80e
5 changed files with 1342 additions and 65 deletions
|
@ -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
|
||||||
|
|
5
converter/x68k_usb/Makefile.unimap
Normal file
5
converter/x68k_usb/Makefile.unimap
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
TARGET = x68k_usb_unimap
|
||||||
|
UNIMAP_ENABLE = yes
|
||||||
|
KEYMAP_SECTION_ENABLE = yes
|
||||||
|
include Makefile
|
||||||
|
|
1166
converter/x68k_usb/binary/x68k_usb_unimap.hex
Normal file
1166
converter/x68k_usb/binary/x68k_usb_unimap.hex
Normal file
File diff suppressed because it is too large
Load diff
45
converter/x68k_usb/unimap.c
Normal file
45
converter/x68k_usb/unimap.c
Normal 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
|
||||||
|
),
|
||||||
|
};
|
75
converter/x68k_usb/unimap_trans.h
Normal file
75
converter/x68k_usb/unimap_trans.h
Normal 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
|
Reference in a new issue