]> git.friedersdorff.com Git - max/tmk_keyboard.git/commitdiff
pc98_usb: Update README
authortmk <hasu@tmk-kbd.com>
Mon, 23 Jul 2018 00:53:35 +0000 (09:53 +0900)
committertmk <hasu@tmk-kbd.com>
Mon, 23 Jul 2018 00:53:35 +0000 (09:53 +0900)
converter/pc98_usb/README
converter/pc98_usb/unimap_rakuraku.c
converter/pc98_usb/unimap_trans.h

index 3fc0a4b9e7b3e3c43c85a46e6bdd6bd67b66487a..0914f2293db249fb8c276f9c7dbe01715ce2cb97 100644 (file)
@@ -5,6 +5,7 @@ Target MCU is ATMega32u2 but other USB capable AVR will also work.
 
 Connector
 ---------
+On host/converter:
 
     8Pin mini DIN
        ___ ___
@@ -41,29 +42,58 @@ Frame format: 1-Start bit(Lo), 8-Data bits, Odd-Parity, 1-Stop bit
 
 Build Firmware
 --------------
-Just use 'make'
+Just use 'make' to bild firmware
 
-    $ cd pc98_usb
+    $ make clean
     $ make
 
-Then, load the binary to MCU with your favorite programmer.
-
-
-
-Other PC98 converter projects and resource
-------------------------------------------
-PC98 to USB
-http://davy.nyacom.net/kbd98usb/
-
-PC98 to PS/2
-http://www.tsp.ne.jp/~sawada/mago/c_gka98at.htm
-http://www.tsp.ne.jp/~sawada/mago/src/gka98at.asm
-
-scan code:
-http://ixsvr.dyndns.org/usb2pc98
-
-NEC PC-9801-98-S02 - raku raku keyboard:
-https://deskthority.net/photos-f62/nec-pc-9801-98-s02-t5212.html
+To flash firmware
+
+    $ make dfu
+
+then push button on converter to flash firmware.
+
+
+
+PC98 Scan Codes
+---------------
+    ,---. ,---. ,------------------------. ,------------------------. ,------------------------.
+    |Pau| |PrS| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| | F11| F12| F13| F14| F15|
+    `---' `---' `------------------------' `------------------------' `------------------------'
+    ,-------------------------------------------------------------. ,-------.  ,---------------.
+    | Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|Bspc| |Ins|Del|  |Hom|End|  -|  /|
+    |-------------------------------------------------------------| |-------|  |---------------|
+    | Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|      | |PgD|PgU|  |  7|  8|  9|  *|
+    |-------------------------------------------------------`Enter| |-------|  |---------------|
+    |Ctl|Cap|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  \|     | |  Up   |  |  4|  5|  6|  +|
+    |-------------------------------------------------------------| |-------|  |---------------|
+    | Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| RO| Shift | |Lef|Rig|  |  1|  2|  3|  =|
+    `-------------------------------------------------------------' |-------|  |---------------|
+     ^3|Kana|Gui|Alt|MHEN|       Space        |HENK|Alt|Gui|App|^2  | Down  |  |  0|  ,|  .| ^1|
+       `-------------------------------------------------------'    `-------'  `---------------'
+    ^1: Enter on keypad is identical to Enter on alphanumeric portion.
+    ^2: Right Alt is ALT on DIGITAL WAVE Dboard while Menu on PC-9821 keyboard.
+        App is HOME key on PC98XL keyboard.
+    ^3: Caps and Kana are locking keys, either mechanically or by firmware emulation.
+
+
+    ,---. ,---. ,------------------------. ,------------------------. ,------------------------.
+    | 60| | 61| | 62 | 63 | 64 | 65 | 66 | | 67 | 68 | 69 | 6A | 6B | | 52 | 53 | 54 | 55 | 56 |
+    `---' `---' `------------------------' `------------------------' `------------------------'
+    ,-------------------------------------------------------------. ,-------.  ,---------------.
+    | 00 | 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E | | 38| 39|  | 3E| 3F| 4D| 41|
+    |-------------------------------------------------------------| |-------|  |---------------|
+    |  0F  | 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B|      | | 36| 37|  | 42| 43| 44| 45|
+    |-------------------------------------------------------`  1C | |-------|  |---------------|
+    | 74| 71| 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28|     | |   3A  |  | 46| 47| 48| 49|
+    |-------------------------------------------------------------| |-------|  |---------------|
+    |   70    | 29| 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 70/7D | | 3B| 3C|  | 4A| 4B| 4C| 4D|
+    `-------------------------------------------------------------' |-------|  |---------------|
+       | 72 | 77| 73| 51 |        34          | 35 | 79| 78| 5E|    |   3D  |  | 4E| 4F| 50| 1C|
+       `-------------------------------------------------------'    `-------'  `---------------'
+    5E: HOME on PC98XL keyboard
+    79: ALT on DIGITAL WAVE Dboard
+    77,78,79: Left Win, right Win and Application on PC-9821 keyboard
 
 
 
@@ -76,7 +106,7 @@ response from keyboard:
     FCh: NACK
 
 Inhibit repeating key:
-    0x9C, 0x70
+    9Ch, 70h
 
 LED control:
     9Dh 7xh
@@ -87,3 +117,35 @@ LED control:
          ||`-- ?
          |`--- CapsLock
          `---- Kana
+
+Enabling Win and App key on PC-9821 keyboard:
+    95h, 03h
+
+
+
+Raku Raku keyboard support
+--------------------------
+NEC PC-9801-98-S02 - raku raku keyboard:
+https://deskthority.net/photos-f62/nec-pc-9801-98-s02-t5212.html
+
+To build firmware for the keyboard
+
+    $ make KEYMAP=rakuraku clean
+    $ make KEYMAP=rakuraku
+    $ make KEYMAP=rakuraku dfu
+
+Its scan code map is very different from standard types. This is not tested.
+
+
+
+Other PC98 converter projects and resource
+------------------------------------------
+PC98 to USB
+http://davy.nyacom.net/kbd98usb/
+
+PC98 to PS/2
+http://www.tsp.ne.jp/~sawada/mago/c_gka98at.htm
+http://www.tsp.ne.jp/~sawada/mago/src/gka98at.asm
+
+scan code:
+http://ixsvr.dyndns.org/usb2pc98
index 816d8c9ce84fd0f4a6dd2aed770fa0125b4588e0..fda43b1785f2d8a2a675f1895764877534bb3b52 100644 (file)
@@ -24,7 +24,7 @@ const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section ("
 #else
 const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = {
 #endif
-    /*
+    /* TODO: test
     ,---------------------------------------------------------------.
     |Pau|PrS| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|PgD|PgU|End|Hom|
     `---------------------------------------------------------------'
index 4155b2f109353d9031a13a0d83e8aba1ede3aab2..c6aae07fdb5689a0bdf75b82cb3376e5759abdda 100644 (file)
@@ -22,9 +22,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "unimap.h"
 
 
-/* Mapping to Universal keyboard layout
+/* Mapping PC98 scan codes to UNIMAP layout codes
  *
- * Universal keyboard layout
+ * PC98 scan codes
+ * ,---. ,---. ,------------------------. ,------------------------. ,------------------------.
+ * | 60| | 61| | 62 | 63 | 64 | 65 | 66 | | 67 | 68 | 69 | 6A | 6B | | 52 | 53 | 54 | 55 | 56 |
+ * `---' `---' `------------------------' `------------------------' `------------------------'
+ * ,-------------------------------------------------------------. ,-------.  ,---------------.
+ * | 00 | 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E | | 38| 39|  | 3E| 3F| 4D| 41|
+ * |-------------------------------------------------------------| |-------|  |---------------|
+ * |  0F  | 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B|      | | 36| 37|  | 42| 43| 44| 45|
+ * |-------------------------------------------------------`  1C | |-------|  |---------------|
+ * | 74| 71| 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28|     | |   3A  |  | 46| 47| 48| 49|
+ * |-------------------------------------------------------------| |-------|  |---------------|
+ * |   70    | 29| 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 70/7D | | 3B| 3C|  | 4A| 4B| 4C| 4D|
+ * `-------------------------------------------------------------' |-------|  |---------------|
+ *    | 72 | 77| 73| 51 |        34          | 35 | 79| 78| 5E|    |   3D  |  | 4E| 4F| 50| 1C|
+ *    `-------------------------------------------------------'    `-------'  `---------------'
+ * 5E: HOME on PC98XL keyboard
+ * 79: ALT on DIGITAL WAVE Dboard 
+ * 77,78,79: Left Win, right Win and Application on PC-9821 keyboard
+ *
+ * UNIMAP layout
  *         ,-----------------------------------------------.
  *         |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|
  * ,---.   |-----------------------------------------------|     ,-----------.     ,-----------.
@@ -75,11 +94,12 @@ const uint8_t PROGMEM unimap_trans[MATRIX_ROWS][MATRIX_COLS] = {
 |-------------------------------------------------------------| |-------|  |---------------|
 | Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| RO| Shift | |Lef|Rig|  |  1|  2|  3|  =|
 `-------------------------------------------------------------' |-------|  |---------------|
  |Kana|Gui|Alt|MHEN|       Space        |HENK|Alt|Gui|App|^2  | Down  |  |  0|  ,|  .| ^1|
^3|Kana|Gui|Alt|MHEN|       Space        |HENK|Alt|Gui|App|^2  | Down  |  |  0|  ,|  .| ^1|
    `-------------------------------------------------------'    `-------'  `---------------'
 ^1: Enter on keypad is identical to Enter on alphanumeric portion.
 ^2: Right Alt is ALT on DIGITAL WAVE Dboard while Menu on PC-9821 keyboard.
     App is HOME key on PC98XL keyboard.
+^3: Caps and Kana are locking keys, either mechanically or by firmware emulation.
 */
 #define UNIMAP_PC98( \
     K48, K46,   K3A,K3B,K3C,K3D,K3E,        K3F,K40,K41,K42,K43,        K44,K45,K68,K69,K6A, \