diff options
Diffstat (limited to 'keyboard/hhkb')
-rw-r--r-- | keyboard/hhkb/Makefile | 86 | ||||
-rw-r--r-- | keyboard/hhkb/README.md | 180 | ||||
-rw-r--r-- | keyboard/hhkb/config.h | 71 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb.c | 29 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb.h | 30 | ||||
-rw-r--r-- | keyboard/hhkb/hhkb_avr.h | 167 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/default/compiled.hex | 1381 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/default/keymap.c | 78 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/lxol/compiled.hex | 1421 | ||||
-rw-r--r-- | keyboard/hhkb/keymaps/lxol/keymap.c | 208 | ||||
-rw-r--r-- | keyboard/hhkb/matrix.c | 204 |
11 files changed, 0 insertions, 3855 deletions
diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile deleted file mode 100644 index 53eece3969..0000000000 --- a/keyboard/hhkb/Makefile +++ /dev/null @@ -1,86 +0,0 @@ - - -# project specific files -SRC = matrix.c - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# 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 -# -# 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(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -#OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -# as per original hasu settings -OPT_DEFS += -DBOOTLOADER_SIZE=512 - -# 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 -CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -# MIDI_ENABLE ?= YES # MIDI controls -# UNICODE_ENABLE ?= YES # Unicode -# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID - - - -ifndef QUANTUM_DIR - include ../../Makefile -endif - -debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION -debug-on: all - -debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT -debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) -debug-off: all diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md deleted file mode 100644 index 389407b3aa..0000000000 --- a/keyboard/hhkb/README.md +++ /dev/null @@ -1,180 +0,0 @@ -hhkb_qmk keyboard firmware -====================== - -## Quantum MK Firmware - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_<layout>.h" - -Where <layout> is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `รน` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_<n>` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. - -## Building - -Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|<name>] -``` -Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb/config.h b/keyboard/hhkb/config.h deleted file mode 100644 index ee66e44571..0000000000 --- a/keyboard/hhkb/config.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2012 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 CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xCAFE -#define DEVICE_VER 0x0104 -#define MANUFACTURER q.m.k -#define PRODUCT HHKB mod -#define DESCRIPTION q.m.k keyboard firmware for HHKB - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 8 - -#define TAPPING_TERM 200 - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. -*/ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboard/hhkb/hhkb.c b/keyboard/hhkb/hhkb.c deleted file mode 100644 index 6897026c6c..0000000000 --- a/keyboard/hhkb/hhkb.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "hhkb.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; diff --git a/keyboard/hhkb/hhkb.h b/keyboard/hhkb/hhkb.h deleted file mode 100644 index 093d7aeabc..0000000000 --- a/keyboard/hhkb/hhkb.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef HHKB_H -#define HHKB_H - -#include "matrix.h" -#include "keymap.h" -//#include "backlight.h" -#include <stddef.h> - -#define KEYMAP( \ - K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ - K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ - K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ - K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ - K35, K36, K37, K57, K56) \ - \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ - { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ -} - -void matrix_init_user(void); -void matrix_scan_user(void); - -#endif diff --git a/keyboard/hhkb/hhkb_avr.h b/keyboard/hhkb/hhkb_avr.h deleted file mode 100644 index 7ea6322c73..0000000000 --- a/keyboard/hhkb/hhkb_avr.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef HHKB_AVR_H -#define HHKB_AVR_H - -#include <stdint.h> -#include <stdbool.h> -#include <avr/io.h> -#include <avr/interrupt.h> -#include <util/delay.h> - - -// Timer resolution check -#if (1000000/TIMER_RAW_FREQ > 20) -# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." -#endif - - -/* - * HHKB Matrix I/O - * - * row: HC4051[A,B,C] selects scan row0-7 - * row-ext: [En0,En1] row extention for JP - * col: LS145[A,B,C,D] selects scan col0-7 and enable(D) - * key: on: 0/off: 1 - * prev: hysteresis control: assert(1) when previous key state is on - */ - - -#if defined(__AVR_ATmega32U4__) -/* - * For TMK HHKB alt controller(ATMega32U4) - * - * row: PB0-2 - * col: PB3-5,6 - * key: PD7(pull-uped) - * prev: PB7 - * power: PD4(L:off/H:on) - * row-ext: PC6,7 for HHKB JP(active low) - */ -static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } -static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } -static inline bool KEY_STATE(void) { return (PIND & (1<<7)); } -static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } -static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } -#ifdef HHKB_POWER_SAVING -static inline void KEY_POWER_ON(void) { - DDRB = 0xFF; PORTB = 0x40; // change pins output - DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on - /* Without this wait you will miss or get false key events. */ - _delay_ms(5); // wait for powering up -} -static inline void KEY_POWER_OFF(void) { - /* input with pull-up consumes less than without it when pin is open. */ - DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up - DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off -} -static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } -#else -static inline void KEY_POWER_ON(void) {} -static inline void KEY_POWER_OFF(void) {} -static inline bool KEY_POWER_STATE(void) { return true; } -#endif -static inline void KEY_INIT(void) -{ - /* row,col,prev: output */ - DDRB = 0xFF; - PORTB = 0x40; // unable - /* key: input with pull-up */ - DDRD &= ~0x80; - PORTD |= 0x80; -#ifdef HHKB_JP - /* row extention for HHKB JP */ - DDRC |= (1<<6|1<<7); - PORTC |= (1<<6|1<<7); -#endif - KEY_UNABLE(); - KEY_PREV_OFF(); - - KEY_POWER_OFF(); -} -static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) -{ - PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); -#ifdef HHKB_JP - if ((ROW) & 0x08) PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<6); - else PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<7); -#endif -} - - -#elif defined(__AVR_AT90USB1286__) -/* - * For Teensy++(AT90USB1286) - * - * HHKB pro HHKB pro2 - * row: PB0-2 (6-8) (5-7) - * col: PB3-5,6 (9-12) (8-11) - * key: PE6(pull-uped) (4) (3) - * prev: PE7 (5) (4) - * - * TODO: convert into 'staitc inline' function - */ -#define KEY_INIT() do { \ - DDRB |= 0x7F; \ - DDRE |= (1<<7); \ - DDRE &= ~(1<<6); \ - PORTE |= (1<<6); \ -} while (0) -#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \ - (((COL) & 0x07)<<3) | \ - ((ROW) & 0x07)) -#define KEY_ENABLE() (PORTB &= ~(1<<6)) -#define KEY_UNABLE() (PORTB |= (1<<6)) -#define KEY_STATE() (PINE & (1<<6)) -#define KEY_PREV_ON() (PORTE |= (1<<7)) -#define KEY_PREV_OFF() (PORTE &= ~(1<<7)) -#define KEY_POWER_ON() -#define KEY_POWER_OFF() -#define KEY_POWER_STATE() true - - -#else -# error "define code for matrix scan" -#endif - - -#if 0 -// For ATMega328P with V-USB -// -// #elif defined(__AVR_ATmega328P__) -// Ports for V-USB -// key: PB0(pull-uped) -// prev: PB1 -// row: PB2-4 -// col: PC0-2,3 -// power: PB5(Low:on/Hi-z:off) -#define KEY_INIT() do { \ - DDRB |= 0x3E; \ - DDRB &= ~(1<<0); \ - PORTB |= 1<<0; \ - DDRC |= 0x0F; \ - KEY_UNABLE(); \ - KEY_PREV_OFF(); \ -} while (0) -#define KEY_SELECT(ROW, COL) do { \ - PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \ - PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \ -} while (0) -#define KEY_ENABLE() (PORTC &= ~(1<<3)) -#define KEY_UNABLE() (PORTC |= (1<<3)) -#define KEY_STATE() (PINB & (1<<0)) -#define KEY_PREV_ON() (PORTB |= (1<<1)) -#define KEY_PREV_OFF() (PORTB &= ~(1<<1)) -// Power supply switching -#define KEY_POWER_ON() do { \ - KEY_INIT(); \ - PORTB &= ~(1<<5); \ - _delay_ms(1); \ -} while (0) -#define KEY_POWER_OFF() do { \ - DDRB &= ~0x3F; \ - PORTB &= ~0x3F; \ - DDRC &= ~0x0F; \ - PORTC &= ~0x0F; \ -} while (0) -#endif - -#endif diff --git a/keyboard/hhkb/keymaps/default/compiled.hex b/keyboard/hhkb/keymaps/default/compiled.hex deleted file mode 100644 index b3af695270..0000000000 --- a/keyboard/hhkb/keymaps/default/compiled.hex +++ /dev/null @@ -1,1381 +0,0 @@ -:100000000C9452060C9496060C9496060C94960644
-:100010000C9496060C9496060C9496060C949606F0
-:100020000C9496060C9496060C945A110C942C126F
-:100030000C941C1F0C9496060C9496060C94960631
-:100040000C9496060C9496060C9496060C949606C0
-:100050000C9496060C94BC1F0C9496060C94960671
-:100060000C9496060C9496060C9496060C949606A0
-:100070000C9496060C9496060C9496060C94960690
-:100080000C9496060C9496060C9496060C94960680
-:100090000C9496060C9496060C9496060C94960670
-:1000A0000C9496060C9496060C9496069912BB1224
-:1000B000A913BB12A91300132313A91378138B13CD
-:1000C0006516651694169416D316F316231823187E
-:1000D000FE162318AE17AE171418231823181D1870
-:1000E000BB17BB17BB17BB17BB17BB17BB17BB1780
-:1000F000BB17BB17BB17BB17BB17BB17BB17BB1770
-:10010000CB17D917E017E717F117253032583A20E7
-:10011000253038620A000A722F63203031323334BE
-:100120003536370A001F0014001A00160004001D9F
-:10013000001B000600200021001500080007000930
-:100140000019000500220023001C0017000A000B04
-:1001500000110000001E0029002B00E000E100E279
-:1001600000E3002C002400250018000C000E000DF8
-:100170000010000000310035002A0028000152E57F
-:1001800000E600E700260027001200130033000FEE
-:1001900000360000002D002E0030002F0034003803
-:1001A00000370000003B0001000100A900AA000187
-:1001B00000010001003C003D0001000100A8000119
-:1001C00000010001003E003F000100010001005558
-:1001D00000570000003A00A50039000100010001AD
-:1001E000000100010040004100010046004A0054A7
-:1001F000005600000049004C002A00580001000190
-:100200000001000100420043004700480050004B3D
-:10021000004D00000044004500010052004F005115
-:10022000004E0000000A44454255473A20656E6181
-:10023000626C65642E0A005B735D004B6579626FCA
-:100240006172642073746172742E0A005B575D00E2
-:100250005B535D005B525D005B445D005B435D0092
-:100260001203480048004B00420020006D006F0060
-:10027000640000000C0371002E006D002E006B0066
-:1002800000000403090409027400040100A0FA0933
-:100290000400000103010100092111010001223FB6
-:1002A000000705810308000A090401000103010297
-:1002B00000092111010001224D00070582030800F9
-:1002C0000A090402000103000000092111010001D4
-:1002D0002236000705830308000A0904030002030D
-:1002E00000000009211101000122200007058403FC
-:1002F0002000010705040320000112011001000085
-:100300000008EDFEFECA0401010200010631FF09EA
-:1003100074A1010975150025FF9520750881020952
-:1003200076150025FF952075089102C0050109800A
-:10033000A101850216010026B7001A01002AB700A4
-:10034000751095018100C0050C0901A101850316F6
-:100350000100269C021A01002A9C02751095018159
-:1003600000C005010902A1010901A1000509190147
-:100370002905150025019505750181029501750373
-:1003800081010501093009311581257F9502750824
-:10039000810609381581257F950175088106050CB0
-:1003A0000A38021581257F950175088106C0C005B0
-:1003B000010906A101050719E029E71500250195A6
-:1003C0000875018102950175088101050819012947
-:1003D00005950575019102950175039101050719B0
-:1003E0000029FF150025FF950675088100C00A0049
-:1003F0002530325820006B6579626F6172645F72DC
-:1004000065706F72743A20004B6579626F61726437
-:10041000204C4544732073746174653A2025780A32
-:1004200000646F6E652E0A00626F6F676D616769A9
-:1004300063207363616E3A202E2E2E2000290A005D
-:100440002575002F002575005D280025640020001B
-:10045000256400200025640020002564007C002520
-:10046000303258006D6F7573656B6579205B62740F
-:100470006E7C782079207620685D287265702F6107
-:10048000636C293A205B006D6B5F776865656C5F14
-:1004900074696D655F746F5F6D6178203D202564C0
-:1004A0000A006D6B5F776865656C5F6D61785F737F
-:1004B00070656564203D2025640A006D6B5F74697A
-:1004C0006D655F746F5F6D6178203D2025640A0063
-:1004D0006D6B5F6D61785F7370656564203D20258D
-:1004E000640A006D6B5F696E74657276616C203DA5
-:1004F0002025640A006D6B5F64656C6179203D2086
-:1005000025640A006D6B5F776865656C5F74696D63
-:10051000655F746F5F6D6178203D2025640A006D12
-:100520006B5F776865656C5F6D61785F737065653B
-:1005300064203D2025640A006D6B5F74696D655F02
-:10054000746F5F6D6178203D2025640A006D6B5FDC
-:100550006D61785F7370656564203D2025640A00D5
-:100560006D6B5F696E74657276616C203D202564E9
-:100570000A006D6B5F64656C6179203D2025640A1B
-:10058000000A00257500363A20776865656C5F744F
-:10059000696D655F746F5F6D61783A20000A0025B0
-:1005A0007500353A20776865656C5F6D61785F73BB
-:1005B000706565643A20000A00257500343A20749D
-:1005C000696D655F746F5F6D61783A20000A002580
-:1005D0007500333A206D61785F73706565643A2009
-:1005E000000A00257500323A20696E7465727661E2
-:1005F0006C286D73293A20000A00257500313A20D5
-:1006000064656C6179282A31306D73293A20000ABB
-:10061000092D2056616C756573202D0A004D3E0032
-:100620004D25643E20003F0073657420646566615B
-:10063000756C740A00433E2000776865726520641B
-:10064000656C74613A20637572736F723D25642C1A
-:1006500020776865656C3D25640A5365652068747C
-:1006600074703A2F2F656E2E77696B6970656469B7
-:10067000612E6F72672F77696B692F4D6F75736588
-:100680005F6B6579730A000A092D204D6F757365DC
-:100690006B6579202D0A4553432F713A09717569AD
-:1006A000740A313A0964656C6179282A31306D73B6
-:1006B000290A323A09696E74657276616C286D7325
-:1006C000290A333A096D61785F73706565640A348D
-:1006D0003A0974696D655F746F5F6D61780A353AC8
-:1006E00009776865656C5F6D61785F7370656564D7
-:1006F0000A363A09776865656C5F74696D655F7481
-:100700006F5F6D61780A0A703A097072696E7420C1
-:1007100076616C7565730A643A0973657420646563
-:100720006661756C74730A75703A092B310A646FCF
-:10073000776E3A092D310A706775703A092B31309E
-:100740000A7067646F776E3A092D31300A0A737048
-:10075000656564203D2064656C7461202A206D61AC
-:10076000785F7370656564202A2028726570656102
-:1007700074202F2074696D655F746F5F6D617829D7
-:100780000A003F004D3E2000433E20004C25640AF5
-:100790000074696D65725F636F756E743A20253001
-:1007A000346C580A006B6579626F6172645F6964CA
-:1007B0006C653A2025580A006B6579626F61726436
-:1007C0005F70726F746F636F6C3A2025580A00680F
-:1007D0006F73745F6B6579626F6172645F6C65647F
-:1007E0007328293A2025580A000A092D20537461DC
-:1007F000747573202D0A004743433A20342E392E56
-:1008000032204156522D4C4942433A20312E382E47
-:1008100031204156525F415243483A206176723549
-:100820000A004F5054494F4E533A204C55464120F0
-:10083000424F4F544D41474943204D4F5553454B2F
-:1008400045592045585452414B455920434F4E532A
-:100850004F4C4520434F4D4D414E44203531320AD7
-:10086000004255494C443A20313637313865662DBF
-:100870006469727479202832333A33393A32382035
-:100880004A756E2020392032303136290A00564907
-:10089000443A2030784645454428712E6D2E6B2908
-:1008A000205049443A203078434146452848484B37
-:1008B00042206D6F6429205645523A2030783031FD
-:1008C00030340A00444553433A20712E6D2E6B207C
-:1008D0006B6579626F617264206669726D776172AF
-:1008E0006520666F722048484B420A000A092D2095
-:1008F00056657273696F6E202D0A000A092D204318
-:100900006F6E736F6C65202D0A4553432F713A0942
-:10091000717569740A6D3A096D6F7573656B6579E8
-:100920000A000A092D204D61676963202D0A443AA7
-:10093000094465627567204D65737361676520546E
-:100940006F67676C650A583A094D6174726978205F
-:100950004465627567204D6F646520546F67676CEE
-:1009600065202D2053686F77206B657970726573F1
-:1009700073657320696E206D617472697820677287
-:1009800069640A4B3A094B6579626F61726420446D
-:100990006562756720546F67676C65202D2053680A
-:1009A0006F77206B65797072657373207265706FF5
-:1009B00072740A4D3A094465627567204D6F75730C
-:1009C0006520546F67676C650A563A0956657273FD
-:1009D000696F6E0A533A095374617475730A433A26
-:1009E00009416374697661746520436F6E736F6C3F
-:1009F00065204D6F64650A46312D4631303A095302
-:100A0000776974636820746F204C61796572203057
-:100A10002D392028463130203D204C30290A302DF8
-:100A2000393A0953776974636820746F204C61798F
-:100A3000657220302D390A4553433A09537769745A
-:100A4000636820746F204C617965722030202861C2
-:100A50006C7465726E617465206B65792031290A4A
-:100A600047524156453A0953776974636820746F59
-:100A7000204C6179657220302028616C7465726E3B
-:100A8000617465206B65792032290A5041555345C0
-:100A90003A094A756D7020746F20426F6F746C6FE5
-:100AA0006164657220285265736574290A453A09A4
-:100AB0005072696E7420454550524F4D20536574F5
-:100AC00074696E67730A000A002575002E6E6B72DA
-:100AD0006F3A20000A002575002E737761705F62FF
-:100AE00061636B736C6173685F6261636B73706188
-:100AF00063653A20000A002575002E737761705FE8
-:100B000067726176655F6573633A20000A00257538
-:100B1000002E6E6F5F6775693A20000A0025750028
-:100B20002E737761705F72616C745F726775693A7A
-:100B300020000A002575002E737761705F6C616C70
-:100B4000745F6C6775693A20000A002575002E6392
-:100B50006170736C6F636B5F746F5F636F6E7472E1
-:100B60006F6C3A20000A002575002E737761705F64
-:100B7000636F6E74726F6C5F636170736C6F636BC5
-:100B80003A20000A0025303258006B65796D61709B
-:100B90005F636F6E6669672E7261773A20000A00A4
-:100BA0002575002E6D6F7573653A20000A00257556
-:100BB000002E6B6579626F6172643A20000A00252D
-:100BC00075002E6D61747269783A20000A002575EF
-:100BD000002E656E61626C653A20000A0025303295
-:100BE000580064656275675F636F6E6669672E7231
-:100BF00061773A20000A0025750064656661756CAE
-:100C0000745F6C617965723A20003F000A6D6F7500
-:100C100073653A206F66660A000A6D6F7573653AF0
-:100C2000206F6E0A000A6B6579626F6172643A2008
-:100C30006F66660A000A6B6579626F6172643A20BA
-:100C40006F6E0A000A6D61747269783A206F666689
-:100C50000A000A6D61747269783A206F6E0A000AA0
-:100C600064656275673A206F66660A000A646562A9
-:100C700075673A206F6E0A000A0A4A756D70696ED0
-:100C80006720746F20626F6F746C6F616465722E81
-:100C90002E2E2000433E20006565636F6E666967F7
-:100CA0003A0A000011241FBECFEFDAE0DEBFCDBF4D
-:100CB00004B603FE24C08091E0019091E101A0916F
-:100CC000E201B091E3018730904BA740B04BB9F4FB
-:100CD0001092E0011092E1011092E2011092E30102
-:100CE00014BE84B7877F84BF88E10FB6F8948093E1
-:100CF0006000109260000FBEE0E0FFE3099511E094
-:100D0000A0E0B1E0ECEFF5E502C005900D92A23352
-:100D1000B107D9F711E0A2E3B1E001C01D92A03EF6
-:100D2000B107E1F70E94940E0C94FC2A0C94000089
-:100D3000FF93EF93E0913201F0913301309709F086
-:100D40000995EF91FF910895FC018591803011F094
-:100D5000EFDFFBCF0895FF27E0E230E247FF0CC052
-:100D6000419597FF09C0EDE260957095809590954B
-:100D7000611D711D811D911D27FF02C0219530E36A
-:100D800050E2AA27660F771F881F991FAA1FA41772
-:100D900010F0A41B63955A95A9F7AA3008F0A95F33
-:100DA000A05DAF93F395611571058105910541F73C
-:100DB000ED3211F4EF93F395F21718F43F93F39596
-:100DC000FBCF8F91B5DFFA95E1F70895E991F9919D
-:100DD0008591803021F0853219F0AADFF9CF08958E
-:100DE00020E0E89455915532C1F3503311F46894E2
-:100DF00055915A3348F4505390F3220F022E220F8C
-:100E0000220F200D250FF4CF0EF421958991999191
-:100E1000533619F3533729F1533559F1BC0188275B
-:100E20009927E8945C3621F48991999168945591B9
-:100E3000543639F446EF7EF077FF0DC08FEF9FEF09
-:100E40000AC055374AE039F0583540E121F05236B2
-:100E500042E009F00895FF93EF937DDFEF91FF915A
-:100E6000B7CFFF93EF93FC0181918030B9F360DF3E
-:100E7000FBCFFF93EF9368DFF1CFDF93CF93CDB735
-:100E8000DEB72596A3DFCF91DF9108958FEF84B968
-:100E900080E485B957985F9A2E9A2F98ECE3F1E099
-:100EA00088E08E0F11928E13FDCFE4E3F1E088E02D
-:100EB0008E0F11928E13FDCF8CE391E0909347013A
-:100EC0008093460184E391E090934501809344012F
-:100ED0000895EF92FF920F931F93CF93DF9380912A
-:100EE0004401909145012091460130914701309392
-:100EF0004501209344019093470180934601C0E04F
-:100F0000D0E0EE24E394F12C0FEF10E020E030E08D
-:100F100085B1807C8C2BA90193E0440F551F9A95D5
-:100F2000E1F7842B85B98AE18A95F1F700C0E09159
-:100F30004401F0914501EC0FFD1F808190E0022EED
-:100F400002C0959587950A94E2F780FD2F9A95E364
-:100F50009A95F1F70000E6B52E988AE18A95F1F7A7
-:100F600000C04091460150914701DA01AC0FBD1F0E
-:100F70004F9B0AC0C701022E01C0880F0A94EAF7EE
-:100F800080959C91892308C06C91C701022E01C0F5
-:100F9000880F0A94EAF7862B8C9386B56E2F70E043
-:100FA0008E1728F086B590E0861B970B06C0E6B535
-:100FB000C801861B970B8E0F911D069758F0E09184
-:100FC0004401F0914501EC0FFD1F8081FA01EC0F07
-:100FD000FD1F80839AE19A95F1F700C02F982E9A11
-:100FE0008BE291E00197F1F700C000002F5F3F4FC7
-:100FF0002830310509F08CCFA0914601B09147010E
-:10100000AC0FBD1FE0914401F0914501EC0FFD1FB5
-:101010009C918081981751F00E945A1F609348015B
-:101020007093490180934A0190934B012196C830F7
-:10103000D10509F06BCF8091D601853021F08091E8
-:10104000D601811111C060914801709149018091D0
-:101050004A0190914B010E94901F613177428105B6
-:10106000910510F00E94DF1E81E0DF91CF911F916A
-:101070000F91FF90EF900895209146013091470124
-:10108000F901E80FF11D808108950F931F93CF930D
-:10109000DF9386E191E00E94A406C0E0D0E00AE080
-:1010A00011E0E0914601F0914701EC0FFD1F8081B6
-:1010B0000E94C91E1F928F93DF93CF931F930F93AC
-:1010C0000E943D0721960F900F900F900F900F9068
-:1010D0000F90C830D10529F7DF91CF911F910F9163
-:1010E00008951F93CF93DF93C7E0D0E010E0E09125
-:1010F0004601F0914701EC0FFD1F808190E00E94B6
-:10110000BD1E180F219798F7812FDF91CF911F9166
-:1011100008950895089561110BC0FC018281882310
|