From afb08462085132acf7a1962522952f7dbf064519 Mon Sep 17 00:00:00 2001
From: tmk <nobody@nowhere>
Date: Fri, 8 Jun 2012 00:37:46 +0900
Subject: [PATCH] Made directories for keyboard and converter projects.

---
 README                                        | 151 ---------------
 README.md                                     | 175 ++++++++++++++++++
 {adb_usb => converter/adb_usb}/Makefile       |   2 +-
 {adb_usb => converter/adb_usb}/README         |   0
 {adb_usb => converter/adb_usb}/config.h       |   0
 {adb_usb => converter/adb_usb}/keymap.c       |   0
 {adb_usb => converter/adb_usb}/led.c          |   0
 {adb_usb => converter/adb_usb}/matrix.c       |   0
 {m0110_usb => converter/m0110_usb}/Makefile   |   2 +-
 {m0110_usb => converter/m0110_usb}/README.md  |   0
 {m0110_usb => converter/m0110_usb}/config.h   |   0
 .../m0110_usb}/doc/m0110.jpg                  | Bin
 .../m0110_usb}/doc/teensy.jpg                 | Bin
 {m0110_usb => converter/m0110_usb}/keymap.c   |   0
 {m0110_usb => converter/m0110_usb}/led.c      |   0
 {m0110_usb => converter/m0110_usb}/matrix.c   |   0
 {ps2_usb => converter/ps2_usb}/Makefile       |   2 +-
 .../ps2_usb}/Makefile.pjrc_usart              |   2 +-
 {ps2_usb => converter/ps2_usb}/Makefile.vusb  |   2 +-
 {ps2_usb => converter/ps2_usb}/README         |   0
 {ps2_usb => converter/ps2_usb}/README.vusb    |   0
 {ps2_usb => converter/ps2_usb}/config_pjrc.h  |   0
 .../ps2_usb}/config_pjrc_usart.h              |   0
 {ps2_usb => converter/ps2_usb}/config_vusb.h  |   0
 {ps2_usb => converter/ps2_usb}/keymap.c       |   0
 {ps2_usb => converter/ps2_usb}/led.c          |   0
 {ps2_usb => converter/ps2_usb}/matrix.c       |   0
 {ps2_usb => converter/ps2_usb}/usbconfig.h    |   0
 .../sony_usb}/Makefile.pjrc                   |   2 +-
 .../sony_usb}/config_pjrc.h                   |   0
 {sony_usb => converter/sony_usb}/keymap.c     |   0
 {sony_usb => converter/sony_usb}/led.c        |   0
 {sony_usb => converter/sony_usb}/matrix.c     |   0
 {sony_usb => converter/sony_usb}/news.c       |   0
 {sony_usb => converter/sony_usb}/news.h       |   0
 .../terminal_usb}/Makefile.102_pjrc           |   2 +-
 .../terminal_usb}/Makefile.122_pjrc           |   2 +-
 .../terminal_usb}/README                      |   0
 .../terminal_usb}/config_102_pjrc.h           |   0
 .../terminal_usb}/config_122_pjrc.h           |   0
 .../terminal_usb}/keymap_102.c                |   0
 .../terminal_usb}/keymap_122.c                |   0
 .../terminal_usb}/led.c                       |   0
 .../terminal_usb}/matrix.c                    |   0
 {x68k_usb => converter/x68k_usb}/Makefile     |   2 +-
 {x68k_usb => converter/x68k_usb}/README       |   0
 .../x68k_usb}/config_pjrc.h                   |   0
 {x68k_usb => converter/x68k_usb}/keymap.c     |   0
 {x68k_usb => converter/x68k_usb}/led.c        |   0
 {x68k_usb => converter/x68k_usb}/matrix.c     |   0
 {x68k_usb => converter/x68k_usb}/x68k.c       |   0
 {x68k_usb => converter/x68k_usb}/x68k.h       |   0
 {hbk => keyboard/hbk}/Makefile                |   2 +-
 {hbk => keyboard/hbk}/config.h                |   0
 {hbk => keyboard/hbk}/controller_teensy.h     |   0
 {hbk => keyboard/hbk}/keymap.c                |   0
 {hbk => keyboard/hbk}/led.c                   |   0
 {hbk => keyboard/hbk}/matrix.c                |   0
 {hhkb => keyboard/hhkb}/Makefile.iwrap        |   2 +-
 {hhkb => keyboard/hhkb}/Makefile.pjrc         |   2 +-
 {hhkb => keyboard/hhkb}/Makefile.vusb         |   2 +-
 {hhkb => keyboard/hhkb}/README                |   0
 {hhkb => keyboard/hhkb}/config_iwrap.h        |   0
 {hhkb => keyboard/hhkb}/config_pjrc.h         |   0
 {hhkb => keyboard/hhkb}/config_vusb.h         |   0
 {hhkb => keyboard/hhkb}/doc/Bluetooth.txt     |   0
 .../hhkb}/doc/Bluetooth_img/.picasa.ini       |   0
 .../hhkb}/doc/Bluetooth_img/BT_circuit.jpg    | Bin
 {hhkb => keyboard/hhkb}/doc/HHKB.txt          |   0
 .../hhkb}/doc/HHKB_img/HHKB_TP1684.jpg        | Bin
 .../hhkb}/doc/HHKB_img/HHKB_chart1.jpg        | Bin
 .../hhkb}/doc/HHKB_img/HHKB_chart2.jpg        | Bin
 .../hhkb}/doc/HHKB_img/HHKB_connector.jpg     | Bin
 .../hhkb}/doc/HHKB_img/HHKB_controller.jpg    | Bin
 .../hhkb}/doc/HHKB_img/HHKB_keyswitch.jpg     | Bin
 .../hhkb}/doc/HHKB_img/connector_contact.jpg  | Bin
 .../hhkb}/doc/HHKB_img/logic_analyzer.jpg     | Bin
 .../hhkb}/doc/HHKB_img/probe_contact.jpg      | Bin
 .../hhkb}/doc/HHKB_img/teensy_install.jpg     | Bin
 .../hhkb}/doc/HHKB_img/teensy_wiring.jpg      | Bin
 {hhkb => keyboard/hhkb}/keymap.c              |   0
 {hhkb => keyboard/hhkb}/led.c                 |   0
 {hhkb => keyboard/hhkb}/matrix.c              |   0
 {hhkb => keyboard/hhkb}/usbconfig.h           |   0
 {macway => keyboard/macway}/Makefile          |   2 +-
 {macway => keyboard/macway}/config.h          |   0
 {macway => keyboard/macway}/doc/back.jpg      | Bin
 {macway => keyboard/macway}/doc/case.jpg      | Bin
 {macway => keyboard/macway}/doc/keys.jpg      | Bin
 {macway => keyboard/macway}/doc/side.jpg      | Bin
 {macway => keyboard/macway}/doc/switch.jpg    | Bin
 {macway => keyboard/macway}/doc/teensy.jpg    | Bin
 {macway => keyboard/macway}/doc/wiring.jpg    | Bin
 {macway => keyboard/macway}/doc/withHHKB.jpg  | Bin
 .../macway}/doc/withThinkPad.jpg              | Bin
 {macway => keyboard/macway}/keymap.c          |   0
 {macway => keyboard/macway}/led.c             |   0
 {macway => keyboard/macway}/matrix.c          |   0
 protocol.mk                                   |   2 +
 99 files changed, 191 insertions(+), 165 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md
 rename {adb_usb => converter/adb_usb}/Makefile (98%)
 rename {adb_usb => converter/adb_usb}/README (100%)
 rename {adb_usb => converter/adb_usb}/config.h (100%)
 rename {adb_usb => converter/adb_usb}/keymap.c (100%)
 rename {adb_usb => converter/adb_usb}/led.c (100%)
 rename {adb_usb => converter/adb_usb}/matrix.c (100%)
 rename {m0110_usb => converter/m0110_usb}/Makefile (98%)
 rename {m0110_usb => converter/m0110_usb}/README.md (100%)
 rename {m0110_usb => converter/m0110_usb}/config.h (100%)
 rename {m0110_usb => converter/m0110_usb}/doc/m0110.jpg (100%)
 rename {m0110_usb => converter/m0110_usb}/doc/teensy.jpg (100%)
 rename {m0110_usb => converter/m0110_usb}/keymap.c (100%)
 rename {m0110_usb => converter/m0110_usb}/led.c (100%)
 rename {m0110_usb => converter/m0110_usb}/matrix.c (100%)
 rename {ps2_usb => converter/ps2_usb}/Makefile (98%)
 rename {ps2_usb => converter/ps2_usb}/Makefile.pjrc_usart (98%)
 rename {ps2_usb => converter/ps2_usb}/Makefile.vusb (99%)
 rename {ps2_usb => converter/ps2_usb}/README (100%)
 rename {ps2_usb => converter/ps2_usb}/README.vusb (100%)
 rename {ps2_usb => converter/ps2_usb}/config_pjrc.h (100%)
 rename {ps2_usb => converter/ps2_usb}/config_pjrc_usart.h (100%)
 rename {ps2_usb => converter/ps2_usb}/config_vusb.h (100%)
 rename {ps2_usb => converter/ps2_usb}/keymap.c (100%)
 rename {ps2_usb => converter/ps2_usb}/led.c (100%)
 rename {ps2_usb => converter/ps2_usb}/matrix.c (100%)
 rename {ps2_usb => converter/ps2_usb}/usbconfig.h (100%)
 rename {sony_usb => converter/sony_usb}/Makefile.pjrc (98%)
 rename {sony_usb => converter/sony_usb}/config_pjrc.h (100%)
 rename {sony_usb => converter/sony_usb}/keymap.c (100%)
 rename {sony_usb => converter/sony_usb}/led.c (100%)
 rename {sony_usb => converter/sony_usb}/matrix.c (100%)
 rename {sony_usb => converter/sony_usb}/news.c (100%)
 rename {sony_usb => converter/sony_usb}/news.h (100%)
 rename {terminal_usb => converter/terminal_usb}/Makefile.102_pjrc (98%)
 rename {terminal_usb => converter/terminal_usb}/Makefile.122_pjrc (98%)
 rename {terminal_usb => converter/terminal_usb}/README (100%)
 rename {terminal_usb => converter/terminal_usb}/config_102_pjrc.h (100%)
 rename {terminal_usb => converter/terminal_usb}/config_122_pjrc.h (100%)
 rename {terminal_usb => converter/terminal_usb}/keymap_102.c (100%)
 rename {terminal_usb => converter/terminal_usb}/keymap_122.c (100%)
 rename {terminal_usb => converter/terminal_usb}/led.c (100%)
 rename {terminal_usb => converter/terminal_usb}/matrix.c (100%)
 rename {x68k_usb => converter/x68k_usb}/Makefile (99%)
 rename {x68k_usb => converter/x68k_usb}/README (100%)
 rename {x68k_usb => converter/x68k_usb}/config_pjrc.h (100%)
 rename {x68k_usb => converter/x68k_usb}/keymap.c (100%)
 rename {x68k_usb => converter/x68k_usb}/led.c (100%)
 rename {x68k_usb => converter/x68k_usb}/matrix.c (100%)
 rename {x68k_usb => converter/x68k_usb}/x68k.c (100%)
 rename {x68k_usb => converter/x68k_usb}/x68k.h (100%)
 rename {hbk => keyboard/hbk}/Makefile (99%)
 rename {hbk => keyboard/hbk}/config.h (100%)
 rename {hbk => keyboard/hbk}/controller_teensy.h (100%)
 rename {hbk => keyboard/hbk}/keymap.c (100%)
 rename {hbk => keyboard/hbk}/led.c (100%)
 rename {hbk => keyboard/hbk}/matrix.c (100%)
 rename {hhkb => keyboard/hhkb}/Makefile.iwrap (99%)
 rename {hhkb => keyboard/hhkb}/Makefile.pjrc (98%)
 rename {hhkb => keyboard/hhkb}/Makefile.vusb (99%)
 rename {hhkb => keyboard/hhkb}/README (100%)
 rename {hhkb => keyboard/hhkb}/config_iwrap.h (100%)
 rename {hhkb => keyboard/hhkb}/config_pjrc.h (100%)
 rename {hhkb => keyboard/hhkb}/config_vusb.h (100%)
 rename {hhkb => keyboard/hhkb}/doc/Bluetooth.txt (100%)
 rename {hhkb => keyboard/hhkb}/doc/Bluetooth_img/.picasa.ini (100%)
 rename {hhkb => keyboard/hhkb}/doc/Bluetooth_img/BT_circuit.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB.txt (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_TP1684.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_chart1.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_chart2.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_connector.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_controller.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/HHKB_keyswitch.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/connector_contact.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/logic_analyzer.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/probe_contact.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/teensy_install.jpg (100%)
 rename {hhkb => keyboard/hhkb}/doc/HHKB_img/teensy_wiring.jpg (100%)
 rename {hhkb => keyboard/hhkb}/keymap.c (100%)
 rename {hhkb => keyboard/hhkb}/led.c (100%)
 rename {hhkb => keyboard/hhkb}/matrix.c (100%)
 rename {hhkb => keyboard/hhkb}/usbconfig.h (100%)
 rename {macway => keyboard/macway}/Makefile (98%)
 rename {macway => keyboard/macway}/config.h (100%)
 rename {macway => keyboard/macway}/doc/back.jpg (100%)
 rename {macway => keyboard/macway}/doc/case.jpg (100%)
 rename {macway => keyboard/macway}/doc/keys.jpg (100%)
 rename {macway => keyboard/macway}/doc/side.jpg (100%)
 rename {macway => keyboard/macway}/doc/switch.jpg (100%)
 rename {macway => keyboard/macway}/doc/teensy.jpg (100%)
 rename {macway => keyboard/macway}/doc/wiring.jpg (100%)
 rename {macway => keyboard/macway}/doc/withHHKB.jpg (100%)
 rename {macway => keyboard/macway}/doc/withThinkPad.jpg (100%)
 rename {macway => keyboard/macway}/keymap.c (100%)
 rename {macway => keyboard/macway}/led.c (100%)
 rename {macway => keyboard/macway}/matrix.c (100%)
 create mode 100644 protocol.mk

diff --git a/README b/README
deleted file mode 100644
index d85f512c7..000000000
--- a/README
+++ /dev/null
@@ -1,151 +0,0 @@
-t.m.k. Keyboard Firmware
-========================
-This is keyboard firmware for Teensy(AVR USB MCU) and V-USB board.
-
-source code repository:
-http://github.com/tmk/tmk_keyboard
-
-This firmware is used in following projects:
-HHKB mod:   http://geekhack.org/showwiki.php?title=Island:12047
-Macway mod: http://geekhack.org/showwiki.php?title=Island:11930
-PS2 to USB: http://geekhack.org/showwiki.php?title=Island:14618
-ADB to USB: http://geekhack.org/showwiki.php?title=Island:14290
-
-The project is heavily based on PJRC USB Keyboard/Mouse Example and
-owes a debt to preceding keyboard firmware projects.
-http://www.pjrc.com/teensy
-
-
-Features
---------
-Mouse key
-    control mouse cursor from keyboard.
-System Control Key
-    Power Down, Sleep, Wake Up & USB Remote Wake up
-Media Control Key
-    Volume Down/Up, Mute
-USB NKRO
-    send 120 keys(+ 8 modifiers) at most simultaneously.
-PS/2 mouse support
-    integrate PS/2 mouse(TrackPoint) into keyboard as composite device.
-
-
-Limitations
------------
-
-
-Files & Directories
--------------------
-Target:
-hhkb/                           keyboard controller for PFU HHKB pro
-macway/                         keyboard controller for Macway mod
-ps2_usb/                        PS2 to USB keyboard converter
-adb_usb/                        ADB to USB keyboard converter
-
-USB Protocol Stack:
-pjrc/                           PJRC  USB stack
-vusb/                           V-USB USB stack
-ps2.[ch]                        PS/2 protocol
-adb.[ch]                        ADB protocol
-
-
-Build
------
-To compile needs AVR GCC, AVR Libc and GNU make.
-You can use WinAVR on Windows.  http://winavr.sourceforge.net/
-
-$ cd <target>
-$ make
-
-The firmware will be compiled as a file tmk_<target>.hex.
-
-
-Build your own firmware
------------------------
-Copying exsistent target(macway) is easy way.
-1. Copy contens of macway/ to your own target directory.
-2. Edit Makefile. See next section.
-3. Edit config.h. See next section.
-4. Edit matrix.c. You will need to fix followings at least.
-     matrix_init()
-     matrix_scan()
-     read_col()
-     unselect_rows()
-     select_row()
-5. Edit keymap.c. NOTE: It is not final design and a bit messy.
-   You will need to fix followings at least.
-     KEYMAP
-     fn_layer[]
-     fn_keycode[]
-     keymaps[]
-6. Build.
-
-If you have a build error like following, comment out "--relax" option in Makefile.common.
-    (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12'
-
-
-Build Options
--------------
-<target>/Makefile:
-1. Set target name for your firmware.
-     TARGET = tmk_<target>
-2. Choose a MCU and its frequency.
-     MCU = atmega32u4       # Teensy 2.0
-     #MCU = at90usb1286      # Teensy++ 2.0
-     F_CPU = 16000000
-3. Choose optional modules as needed. Comment out to disable optional modules.
-     MOUSEKEY_ENABLE = yes	# Mouse keys
-     PS2_MOUSE_ENABLE = yes	# PS/2 mouse(TrackPoint) support
-     EXTRAKEY_ENABLE = yes	# Enhanced feature for Windows(Audio control and System control)
-     NKRO_ENABLE = yes		# USB Nkey Rollover
-
-<target>/config.h:
-1. USB vendor/product ID and device description
-     #define VENDOR_ID       0xFEED
-     #define PRODUCT_ID      0xBEEF
-     /* device description */
-     #define MANUFACTURER    t.m.k.
-     #define PRODUCT         Macway mod
-     #define DESCRIPTION     t.m.k. keyboard firmware for Macway mod
-2. Keyboard matrix configuration
-     #define MATRIX_ROWS 8
-     #define MATRIX_COLS 8
-     #define MATRIX_HAS_GHOST
-3. Mouse keys configuration if needed.
-4. PS/2 mouse configuration if needed.
-
-
-Debuging & Rescue
------------------
-Use PJRC's hid_listen.exe to see debug messages.
-Press <COMMAND> + H to debug menu. 
-(see config.h for <COMMAND> key combination.)
-
-Pressing any 3 keys when connected enables debug output.
-Pressing any 4 keys when connected makes bootloader comes up.
-
-
-Projects related
-----------------
-PJRC USB Keyboard/Mouse Example
-    http://www.pjrc.com/teensy/usb_keyboard.html
-    http://www.pjrc.com/teensy/usb_mouse.html
-kbupgrade
-    http://github.com/rhomann/kbupgrade
-    http://geekhack.org/showwiki.php?title=Island:8406
-c64key
-    http://symlink.dk/projects/c64key/
-rump
-    http://mg8.org/rump/
-    http://github.com/clee/rump
-dulcimer
-    http://www.schatenseite.de/dulcimer.html
-humblehacker-keyboard
-    http://github.com/humblehacker
-    http://www.humblehacker.com/keyboard/
-    http://geekhack.org/showwiki.php?title=Island:6292
-ps2avr
-    http://sourceforge.net/projects/ps2avr/
-
-
-EOF
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..0361e2ad9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,175 @@
+t.m.k. Keyboard Firmware Collection
+====================================
+This is a keyboard firmware with some features for Atmel AVR controller.
+
+Source code is available here: <http://github.com/tmk/tmk_keyboard>
+
+
+Features
+--------
+* Mouse key - Mouse control by keyboard
+* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up
+* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc. 
+* USB NKRO - Can send 120 keys(+ 8 modifiers) simultaneously.
+* PS/2 mouse support - integrate PS/2 mouse(TrackPoint) into keyboard as composite device.
+
+
+Projects
+--------
+### converter
+* ps2_usb - PS/2 keyboard to USB
+* adb_usb - ADB keyboard to USB
+* m0110_usb - Machintosh 128K/512K/Plus keyboard to USB
+* terminal_usb - IBM Model M terminal keyboard(PS/2 scancode set3) to USB
+* sony_usb - Sony NEWS keyboard to USB
+* x68k_usb - Sharp X68000 keyboard to USB
+
+### keyboard
+* hhkb - Happy Hacking Keyboard professional
+* macway - Compact keyboard mod
+* hbk - Happy Buckling sprint keyboard(IBM Model M mod)
+
+[GH_macway]:    http://geekhack.org/showwiki.php?title=Island:11930
+[GH_hhkb]:      http://geekhack.org/showwiki.php?title=Island:12047
+[GH_ps2]:       http://geekhack.org/showwiki.php?title=Island:14618
+[GH_adb]:       http://geekhack.org/showwiki.php?title=Island:14290
+[GH_hhkb_bt]:   http://geekhack.org/showwiki.php?title=Island:20851
+[GH_m0110]:     http://geekhack.org/showwiki.php?title=Island:24965
+[GH_sony]:      http://geekhack.org/showwiki.php?title=Island:25759
+[GH_terminal]:  http://geekhack.org/showwiki.php?title=Island:27272
+[GH_x68k]:      http://geekhack.org/showwiki.php?title=Island:29060
+[GH_hbk]:       http://geekhack.org/showwiki.php?title=Island:29483
+
+
+
+Files & Directories
+-------------------
+### Top
+* common/       common codes
+* protocol/     keyboard protocol support
+* keyboard/     keyboard projects
+* converter/    protocol converter projects
+* doc/          documents
+
+### Keyboard Protocols
+* pjrc/         PJRC USB stack
+* vusb/         Objective Development V-USB
+* iwrap/        Bluetooth HID for Bluegiga iWRAP
+* ps2           PS/2 protocol
+* adb           Apple Desktop Bus protocol
+* m0110         Macintosh 128K/512K/Plus keyboard protocol
+* news          Sony NEWS keyboard protocol
+* x68k          Sharp X68000 keyboard protocol
+
+
+Build & Program
+---------------
+### Build firmware
+To compile you need `AVR GCC`, `AVR Libc` and `GNU make`.
+You can use [WinAVR][1] on Windows and [CrossPack][2] on Mac.
+
+    $ cd <project>
+    $ make
+
+The firmware will be compiled as a file tmk_<project>.hex.
+
+[1]:  http://winavr.sourceforge.net/
+[2]: http://www.obdev.at/products/crosspack/index.html
+
+### Program Controller
+If you have proper program command in Makefile just type this.
+
+    $ make program
+
+As for `Teensy` you can use `PJRC's loader` to program hex file. <http://www.pjrc.com/teensy/loader.html>
+
+
+
+Build Options
+-------------
+### `Makefile`
+#### 1. MCU and Frequency.
+    MCU = atmega32u4       # Teensy 2.0
+    #MCU = at90usb1286      # Teensy++ 2.0
+    F_CPU = 16000000
+
+#### 2. Features
+Note that ***comment out*** to disable them.
+    MOUSEKEY_ENABLE = yes	# Mouse keys
+    PS2_MOUSE_ENABLE = yes	# PS/2 mouse(TrackPoint) support
+    EXTRAKEY_ENABLE = yes	# Enhanced feature for Windows(Audio control and System control)
+    NKRO_ENABLE = yes		# USB Nkey Rollover
+
+#### 3. Programmer
+Set proper command for your controller, bootloader and programmer.
+    # for PJRC Teensy
+    PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
+
+    # for Atmel AT90USBKEY
+    PROGRAM_CMD = dfu-programmer $(MCU) flash $(TARGET).hex
+
+    # avrdude
+    PROGRAM_CMD = avrdude -p $(MCU) -c avrispmkII -P USB -U flash:w:$(TARGET).hex
+    PROGRAM_CMD = avrdude -p $(MCU) -c usbasp -U flash:w:$(TARGET).hex
+    PROGRAM_CMD = avrdude -p $(MCU) -c arduino -P COM1 -b 57600 -U flash:w:$(TARGET).hex
+
+### `config.h`
+#### 1. USB vendor/product ID and device description
+    #define VENDOR_ID       0xFEED
+    #define PRODUCT_ID      0xBEEF
+    /* device description */
+    #define MANUFACTURER    t.m.k.
+    #define PRODUCT         Macway mod
+    #define DESCRIPTION     t.m.k. keyboard firmware for Macway mod
+
+#### 2. Keyboard matrix configuration
+    #define MATRIX_ROWS 8
+    #define MATRIX_COLS 8
+    #define MATRIX_HAS_GHOST
+
+### 3. Mouse keys configuration
+
+### 4. PS/2 mouse configuration
+
+
+Keymap
+------
+
+
+Build your own firmware
+-----------------------
+
+
+Debuging
+--------
+Use PJRC's `hid_listen` to see debug messages and press `<COMMAND> + H` to debug menu. 
+See `config.h` for definition of `<COMMAND>` key combination.
+
+
+Other Keyboard Projects
+-----------------------
+### PJRC USB Keyboard/Mouse Example
+- <http://www.pjrc.com/teensy/usb_keyboard.html>
+- <http://www.pjrc.com/teensy/usb_mouse.html>
+
+### kbupgrade
+- <http://github.com/rhomann/kbupgrade>
+- <http://geekhack.org/showwiki.php?title=Island:8406>
+
+### c64key
+- <http://symlink.dk/projects/c64key/>
+
+### rump
+- <http://mg8.org/rump/>
+- <http://github.com/clee/rump>
+
+### dulcimer
+- <http://www.schatenseite.de/dulcimer.html>
+
+### humblehacker-keyboard
+- <http://github.com/humblehacker>
+- <http://www.humblehacker.com/keyboard/>
+- <http://geekhack.org/showwiki.php?title=Island:6292>
+
+### ps2avr
+- <http://sourceforge.net/projects/ps2avr/>
diff --git a/adb_usb/Makefile b/converter/adb_usb/Makefile
similarity index 98%
rename from adb_usb/Makefile
rename to converter/adb_usb/Makefile
index 97850b0e8..64a23d09d 100644
--- a/adb_usb/Makefile
+++ b/converter/adb_usb/Makefile
@@ -2,7 +2,7 @@
 TARGET = adb_usb
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/adb_usb/README b/converter/adb_usb/README
similarity index 100%
rename from adb_usb/README
rename to converter/adb_usb/README
diff --git a/adb_usb/config.h b/converter/adb_usb/config.h
similarity index 100%
rename from adb_usb/config.h
rename to converter/adb_usb/config.h
diff --git a/adb_usb/keymap.c b/converter/adb_usb/keymap.c
similarity index 100%
rename from adb_usb/keymap.c
rename to converter/adb_usb/keymap.c
diff --git a/adb_usb/led.c b/converter/adb_usb/led.c
similarity index 100%
rename from adb_usb/led.c
rename to converter/adb_usb/led.c
diff --git a/adb_usb/matrix.c b/converter/adb_usb/matrix.c
similarity index 100%
rename from adb_usb/matrix.c
rename to converter/adb_usb/matrix.c
diff --git a/m0110_usb/Makefile b/converter/m0110_usb/Makefile
similarity index 98%
rename from m0110_usb/Makefile
rename to converter/m0110_usb/Makefile
index e4fa526c5..4a687b933 100644
--- a/m0110_usb/Makefile
+++ b/converter/m0110_usb/Makefile
@@ -2,7 +2,7 @@
 TARGET = m0110
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/m0110_usb/README.md b/converter/m0110_usb/README.md
similarity index 100%
rename from m0110_usb/README.md
rename to converter/m0110_usb/README.md
diff --git a/m0110_usb/config.h b/converter/m0110_usb/config.h
similarity index 100%
rename from m0110_usb/config.h
rename to converter/m0110_usb/config.h
diff --git a/m0110_usb/doc/m0110.jpg b/converter/m0110_usb/doc/m0110.jpg
similarity index 100%
rename from m0110_usb/doc/m0110.jpg
rename to converter/m0110_usb/doc/m0110.jpg
diff --git a/m0110_usb/doc/teensy.jpg b/converter/m0110_usb/doc/teensy.jpg
similarity index 100%
rename from m0110_usb/doc/teensy.jpg
rename to converter/m0110_usb/doc/teensy.jpg
diff --git a/m0110_usb/keymap.c b/converter/m0110_usb/keymap.c
similarity index 100%
rename from m0110_usb/keymap.c
rename to converter/m0110_usb/keymap.c
diff --git a/m0110_usb/led.c b/converter/m0110_usb/led.c
similarity index 100%
rename from m0110_usb/led.c
rename to converter/m0110_usb/led.c
diff --git a/m0110_usb/matrix.c b/converter/m0110_usb/matrix.c
similarity index 100%
rename from m0110_usb/matrix.c
rename to converter/m0110_usb/matrix.c
diff --git a/ps2_usb/Makefile b/converter/ps2_usb/Makefile
similarity index 98%
rename from ps2_usb/Makefile
rename to converter/ps2_usb/Makefile
index 515e6899f..0bba191a3 100644
--- a/ps2_usb/Makefile
+++ b/converter/ps2_usb/Makefile
@@ -7,7 +7,7 @@
 TARGET = ps2_usb_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/ps2_usb/Makefile.pjrc_usart b/converter/ps2_usb/Makefile.pjrc_usart
similarity index 98%
rename from ps2_usb/Makefile.pjrc_usart
rename to converter/ps2_usb/Makefile.pjrc_usart
index 2e570e710..3dad7e2f8 100644
--- a/ps2_usb/Makefile.pjrc_usart
+++ b/converter/ps2_usb/Makefile.pjrc_usart
@@ -7,7 +7,7 @@
 TARGET = ps2_usb_pjrc_usart
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/ps2_usb/Makefile.vusb b/converter/ps2_usb/Makefile.vusb
similarity index 99%
rename from ps2_usb/Makefile.vusb
rename to converter/ps2_usb/Makefile.vusb
index d85f1d55d..4d5240c30 100644
--- a/ps2_usb/Makefile.vusb
+++ b/converter/ps2_usb/Makefile.vusb
@@ -7,7 +7,7 @@
 TARGET = ps2_usb_vusb
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/ps2_usb/README b/converter/ps2_usb/README
similarity index 100%
rename from ps2_usb/README
rename to converter/ps2_usb/README
diff --git a/ps2_usb/README.vusb b/converter/ps2_usb/README.vusb
similarity index 100%
rename from ps2_usb/README.vusb
rename to converter/ps2_usb/README.vusb
diff --git a/ps2_usb/config_pjrc.h b/converter/ps2_usb/config_pjrc.h
similarity index 100%
rename from ps2_usb/config_pjrc.h
rename to converter/ps2_usb/config_pjrc.h
diff --git a/ps2_usb/config_pjrc_usart.h b/converter/ps2_usb/config_pjrc_usart.h
similarity index 100%
rename from ps2_usb/config_pjrc_usart.h
rename to converter/ps2_usb/config_pjrc_usart.h
diff --git a/ps2_usb/config_vusb.h b/converter/ps2_usb/config_vusb.h
similarity index 100%
rename from ps2_usb/config_vusb.h
rename to converter/ps2_usb/config_vusb.h
diff --git a/ps2_usb/keymap.c b/converter/ps2_usb/keymap.c
similarity index 100%
rename from ps2_usb/keymap.c
rename to converter/ps2_usb/keymap.c
diff --git a/ps2_usb/led.c b/converter/ps2_usb/led.c
similarity index 100%
rename from ps2_usb/led.c
rename to converter/ps2_usb/led.c
diff --git a/ps2_usb/matrix.c b/converter/ps2_usb/matrix.c
similarity index 100%
rename from ps2_usb/matrix.c
rename to converter/ps2_usb/matrix.c
diff --git a/ps2_usb/usbconfig.h b/converter/ps2_usb/usbconfig.h
similarity index 100%
rename from ps2_usb/usbconfig.h
rename to converter/ps2_usb/usbconfig.h
diff --git a/sony_usb/Makefile.pjrc b/converter/sony_usb/Makefile.pjrc
similarity index 98%
rename from sony_usb/Makefile.pjrc
rename to converter/sony_usb/Makefile.pjrc
index b7e22dfac..376133ad5 100644
--- a/sony_usb/Makefile.pjrc
+++ b/converter/sony_usb/Makefile.pjrc
@@ -7,7 +7,7 @@
 TARGET = news_usb_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/sony_usb/config_pjrc.h b/converter/sony_usb/config_pjrc.h
similarity index 100%
rename from sony_usb/config_pjrc.h
rename to converter/sony_usb/config_pjrc.h
diff --git a/sony_usb/keymap.c b/converter/sony_usb/keymap.c
similarity index 100%
rename from sony_usb/keymap.c
rename to converter/sony_usb/keymap.c
diff --git a/sony_usb/led.c b/converter/sony_usb/led.c
similarity index 100%
rename from sony_usb/led.c
rename to converter/sony_usb/led.c
diff --git a/sony_usb/matrix.c b/converter/sony_usb/matrix.c
similarity index 100%
rename from sony_usb/matrix.c
rename to converter/sony_usb/matrix.c
diff --git a/sony_usb/news.c b/converter/sony_usb/news.c
similarity index 100%
rename from sony_usb/news.c
rename to converter/sony_usb/news.c
diff --git a/sony_usb/news.h b/converter/sony_usb/news.h
similarity index 100%
rename from sony_usb/news.h
rename to converter/sony_usb/news.h
diff --git a/terminal_usb/Makefile.102_pjrc b/converter/terminal_usb/Makefile.102_pjrc
similarity index 98%
rename from terminal_usb/Makefile.102_pjrc
rename to converter/terminal_usb/Makefile.102_pjrc
index a02877acf..e9d14e7a0 100644
--- a/terminal_usb/Makefile.102_pjrc
+++ b/converter/terminal_usb/Makefile.102_pjrc
@@ -7,7 +7,7 @@
 TARGET = terminal_usb_102_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/terminal_usb/Makefile.122_pjrc b/converter/terminal_usb/Makefile.122_pjrc
similarity index 98%
rename from terminal_usb/Makefile.122_pjrc
rename to converter/terminal_usb/Makefile.122_pjrc
index 1f21d4e6c..bec00510e 100644
--- a/terminal_usb/Makefile.122_pjrc
+++ b/converter/terminal_usb/Makefile.122_pjrc
@@ -7,7 +7,7 @@
 TARGET = terminal_usb_122_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/terminal_usb/README b/converter/terminal_usb/README
similarity index 100%
rename from terminal_usb/README
rename to converter/terminal_usb/README
diff --git a/terminal_usb/config_102_pjrc.h b/converter/terminal_usb/config_102_pjrc.h
similarity index 100%
rename from terminal_usb/config_102_pjrc.h
rename to converter/terminal_usb/config_102_pjrc.h
diff --git a/terminal_usb/config_122_pjrc.h b/converter/terminal_usb/config_122_pjrc.h
similarity index 100%
rename from terminal_usb/config_122_pjrc.h
rename to converter/terminal_usb/config_122_pjrc.h
diff --git a/terminal_usb/keymap_102.c b/converter/terminal_usb/keymap_102.c
similarity index 100%
rename from terminal_usb/keymap_102.c
rename to converter/terminal_usb/keymap_102.c
diff --git a/terminal_usb/keymap_122.c b/converter/terminal_usb/keymap_122.c
similarity index 100%
rename from terminal_usb/keymap_122.c
rename to converter/terminal_usb/keymap_122.c
diff --git a/terminal_usb/led.c b/converter/terminal_usb/led.c
similarity index 100%
rename from terminal_usb/led.c
rename to converter/terminal_usb/led.c
diff --git a/terminal_usb/matrix.c b/converter/terminal_usb/matrix.c
similarity index 100%
rename from terminal_usb/matrix.c
rename to converter/terminal_usb/matrix.c
diff --git a/x68k_usb/Makefile b/converter/x68k_usb/Makefile
similarity index 99%
rename from x68k_usb/Makefile
rename to converter/x68k_usb/Makefile
index 0127c0bf8..c3b5fa29f 100644
--- a/x68k_usb/Makefile
+++ b/converter/x68k_usb/Makefile
@@ -7,7 +7,7 @@
 TARGET = x68k_usb_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/x68k_usb/README b/converter/x68k_usb/README
similarity index 100%
rename from x68k_usb/README
rename to converter/x68k_usb/README
diff --git a/x68k_usb/config_pjrc.h b/converter/x68k_usb/config_pjrc.h
similarity index 100%
rename from x68k_usb/config_pjrc.h
rename to converter/x68k_usb/config_pjrc.h
diff --git a/x68k_usb/keymap.c b/converter/x68k_usb/keymap.c
similarity index 100%
rename from x68k_usb/keymap.c
rename to converter/x68k_usb/keymap.c
diff --git a/x68k_usb/led.c b/converter/x68k_usb/led.c
similarity index 100%
rename from x68k_usb/led.c
rename to converter/x68k_usb/led.c
diff --git a/x68k_usb/matrix.c b/converter/x68k_usb/matrix.c
similarity index 100%
rename from x68k_usb/matrix.c
rename to converter/x68k_usb/matrix.c
diff --git a/x68k_usb/x68k.c b/converter/x68k_usb/x68k.c
similarity index 100%
rename from x68k_usb/x68k.c
rename to converter/x68k_usb/x68k.c
diff --git a/x68k_usb/x68k.h b/converter/x68k_usb/x68k.h
similarity index 100%
rename from x68k_usb/x68k.h
rename to converter/x68k_usb/x68k.h
diff --git a/hbk/Makefile b/keyboard/hbk/Makefile
similarity index 99%
rename from hbk/Makefile
rename to keyboard/hbk/Makefile
index c441e2d7a..26be322e0 100644
--- a/hbk/Makefile
+++ b/keyboard/hbk/Makefile
@@ -2,7 +2,7 @@
 TARGET = hbk
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/hbk/config.h b/keyboard/hbk/config.h
similarity index 100%
rename from hbk/config.h
rename to keyboard/hbk/config.h
diff --git a/hbk/controller_teensy.h b/keyboard/hbk/controller_teensy.h
similarity index 100%
rename from hbk/controller_teensy.h
rename to keyboard/hbk/controller_teensy.h
diff --git a/hbk/keymap.c b/keyboard/hbk/keymap.c
similarity index 100%
rename from hbk/keymap.c
rename to keyboard/hbk/keymap.c
diff --git a/hbk/led.c b/keyboard/hbk/led.c
similarity index 100%
rename from hbk/led.c
rename to keyboard/hbk/led.c
diff --git a/hbk/matrix.c b/keyboard/hbk/matrix.c
similarity index 100%
rename from hbk/matrix.c
rename to keyboard/hbk/matrix.c
diff --git a/hhkb/Makefile.iwrap b/keyboard/hhkb/Makefile.iwrap
similarity index 99%
rename from hhkb/Makefile.iwrap
rename to keyboard/hhkb/Makefile.iwrap
index d922b0f50..ef7ad2eac 100644
--- a/hhkb/Makefile.iwrap
+++ b/keyboard/hhkb/Makefile.iwrap
@@ -7,7 +7,7 @@
 TARGET = hhkb_iwrap
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc
similarity index 98%
rename from hhkb/Makefile.pjrc
rename to keyboard/hhkb/Makefile.pjrc
index 28b6b589d..f6d133eae 100644
--- a/hhkb/Makefile.pjrc
+++ b/keyboard/hhkb/Makefile.pjrc
@@ -7,7 +7,7 @@
 TARGET = hhkb_pjrc
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/hhkb/Makefile.vusb b/keyboard/hhkb/Makefile.vusb
similarity index 99%
rename from hhkb/Makefile.vusb
rename to keyboard/hhkb/Makefile.vusb
index 734b73a02..6dd628807 100644
--- a/hhkb/Makefile.vusb
+++ b/keyboard/hhkb/Makefile.vusb
@@ -7,7 +7,7 @@
 TARGET = hhkb_vusb
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/hhkb/README b/keyboard/hhkb/README
similarity index 100%
rename from hhkb/README
rename to keyboard/hhkb/README
diff --git a/hhkb/config_iwrap.h b/keyboard/hhkb/config_iwrap.h
similarity index 100%
rename from hhkb/config_iwrap.h
rename to keyboard/hhkb/config_iwrap.h
diff --git a/hhkb/config_pjrc.h b/keyboard/hhkb/config_pjrc.h
similarity index 100%
rename from hhkb/config_pjrc.h
rename to keyboard/hhkb/config_pjrc.h
diff --git a/hhkb/config_vusb.h b/keyboard/hhkb/config_vusb.h
similarity index 100%
rename from hhkb/config_vusb.h
rename to keyboard/hhkb/config_vusb.h
diff --git a/hhkb/doc/Bluetooth.txt b/keyboard/hhkb/doc/Bluetooth.txt
similarity index 100%
rename from hhkb/doc/Bluetooth.txt
rename to keyboard/hhkb/doc/Bluetooth.txt
diff --git a/hhkb/doc/Bluetooth_img/.picasa.ini b/keyboard/hhkb/doc/Bluetooth_img/.picasa.ini
similarity index 100%
rename from hhkb/doc/Bluetooth_img/.picasa.ini
rename to keyboard/hhkb/doc/Bluetooth_img/.picasa.ini
diff --git a/hhkb/doc/Bluetooth_img/BT_circuit.jpg b/keyboard/hhkb/doc/Bluetooth_img/BT_circuit.jpg
similarity index 100%
rename from hhkb/doc/Bluetooth_img/BT_circuit.jpg
rename to keyboard/hhkb/doc/Bluetooth_img/BT_circuit.jpg
diff --git a/hhkb/doc/HHKB.txt b/keyboard/hhkb/doc/HHKB.txt
similarity index 100%
rename from hhkb/doc/HHKB.txt
rename to keyboard/hhkb/doc/HHKB.txt
diff --git a/hhkb/doc/HHKB_img/HHKB_TP1684.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_TP1684.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_TP1684.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_TP1684.jpg
diff --git a/hhkb/doc/HHKB_img/HHKB_chart1.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_chart1.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_chart1.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_chart1.jpg
diff --git a/hhkb/doc/HHKB_img/HHKB_chart2.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_chart2.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_chart2.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_chart2.jpg
diff --git a/hhkb/doc/HHKB_img/HHKB_connector.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_connector.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_connector.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_connector.jpg
diff --git a/hhkb/doc/HHKB_img/HHKB_controller.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_controller.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_controller.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_controller.jpg
diff --git a/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg b/keyboard/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/HHKB_keyswitch.jpg
rename to keyboard/hhkb/doc/HHKB_img/HHKB_keyswitch.jpg
diff --git a/hhkb/doc/HHKB_img/connector_contact.jpg b/keyboard/hhkb/doc/HHKB_img/connector_contact.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/connector_contact.jpg
rename to keyboard/hhkb/doc/HHKB_img/connector_contact.jpg
diff --git a/hhkb/doc/HHKB_img/logic_analyzer.jpg b/keyboard/hhkb/doc/HHKB_img/logic_analyzer.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/logic_analyzer.jpg
rename to keyboard/hhkb/doc/HHKB_img/logic_analyzer.jpg
diff --git a/hhkb/doc/HHKB_img/probe_contact.jpg b/keyboard/hhkb/doc/HHKB_img/probe_contact.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/probe_contact.jpg
rename to keyboard/hhkb/doc/HHKB_img/probe_contact.jpg
diff --git a/hhkb/doc/HHKB_img/teensy_install.jpg b/keyboard/hhkb/doc/HHKB_img/teensy_install.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/teensy_install.jpg
rename to keyboard/hhkb/doc/HHKB_img/teensy_install.jpg
diff --git a/hhkb/doc/HHKB_img/teensy_wiring.jpg b/keyboard/hhkb/doc/HHKB_img/teensy_wiring.jpg
similarity index 100%
rename from hhkb/doc/HHKB_img/teensy_wiring.jpg
rename to keyboard/hhkb/doc/HHKB_img/teensy_wiring.jpg
diff --git a/hhkb/keymap.c b/keyboard/hhkb/keymap.c
similarity index 100%
rename from hhkb/keymap.c
rename to keyboard/hhkb/keymap.c
diff --git a/hhkb/led.c b/keyboard/hhkb/led.c
similarity index 100%
rename from hhkb/led.c
rename to keyboard/hhkb/led.c
diff --git a/hhkb/matrix.c b/keyboard/hhkb/matrix.c
similarity index 100%
rename from hhkb/matrix.c
rename to keyboard/hhkb/matrix.c
diff --git a/hhkb/usbconfig.h b/keyboard/hhkb/usbconfig.h
similarity index 100%
rename from hhkb/usbconfig.h
rename to keyboard/hhkb/usbconfig.h
diff --git a/macway/Makefile b/keyboard/macway/Makefile
similarity index 98%
rename from macway/Makefile
rename to keyboard/macway/Makefile
index 83d31b674..afee38b12 100644
--- a/macway/Makefile
+++ b/keyboard/macway/Makefile
@@ -2,7 +2,7 @@
 TARGET = macway
 
 # Directory common source filess exist
-TOP_DIR = ..
+TOP_DIR = ../..
 
 # Directory keyboard dependent files exist
 TARGET_DIR = .
diff --git a/macway/config.h b/keyboard/macway/config.h
similarity index 100%
rename from macway/config.h
rename to keyboard/macway/config.h
diff --git a/macway/doc/back.jpg b/keyboard/macway/doc/back.jpg
similarity index 100%
rename from macway/doc/back.jpg
rename to keyboard/macway/doc/back.jpg
diff --git a/macway/doc/case.jpg b/keyboard/macway/doc/case.jpg
similarity index 100%
rename from macway/doc/case.jpg
rename to keyboard/macway/doc/case.jpg
diff --git a/macway/doc/keys.jpg b/keyboard/macway/doc/keys.jpg
similarity index 100%
rename from macway/doc/keys.jpg
rename to keyboard/macway/doc/keys.jpg
diff --git a/macway/doc/side.jpg b/keyboard/macway/doc/side.jpg
similarity index 100%
rename from macway/doc/side.jpg
rename to keyboard/macway/doc/side.jpg
diff --git a/macway/doc/switch.jpg b/keyboard/macway/doc/switch.jpg
similarity index 100%
rename from macway/doc/switch.jpg
rename to keyboard/macway/doc/switch.jpg
diff --git a/macway/doc/teensy.jpg b/keyboard/macway/doc/teensy.jpg
similarity index 100%
rename from macway/doc/teensy.jpg
rename to keyboard/macway/doc/teensy.jpg
diff --git a/macway/doc/wiring.jpg b/keyboard/macway/doc/wiring.jpg
similarity index 100%
rename from macway/doc/wiring.jpg
rename to keyboard/macway/doc/wiring.jpg
diff --git a/macway/doc/withHHKB.jpg b/keyboard/macway/doc/withHHKB.jpg
similarity index 100%
rename from macway/doc/withHHKB.jpg
rename to keyboard/macway/doc/withHHKB.jpg
diff --git a/macway/doc/withThinkPad.jpg b/keyboard/macway/doc/withThinkPad.jpg
similarity index 100%
rename from macway/doc/withThinkPad.jpg
rename to keyboard/macway/doc/withThinkPad.jpg
diff --git a/macway/keymap.c b/keyboard/macway/keymap.c
similarity index 100%
rename from macway/keymap.c
rename to keyboard/macway/keymap.c
diff --git a/macway/led.c b/keyboard/macway/led.c
similarity index 100%
rename from macway/led.c
rename to keyboard/macway/led.c
diff --git a/macway/matrix.c b/keyboard/macway/matrix.c
similarity index 100%
rename from macway/matrix.c
rename to keyboard/macway/matrix.c
diff --git a/protocol.mk b/protocol.mk
new file mode 100644
index 000000000..1442c5206
--- /dev/null
+++ b/protocol.mk
@@ -0,0 +1,2 @@
+# Search Path
+VPATH += $(TOP_DIR)/protocol