レトロPC用 USBキーボード変換アダプタ(その1)
それぞれの機種のキーボードは持っているのだけど 所有機が増えるとキーボードも増えて置き場所に困ってくる。専用キーボードは所有はしておきたいけど普段使うには大きいし何よりケーブル接続の取り回しが面倒になったのでワイヤレスUSBキーボードを使える変換アダプターを作成。
もともとはFM TOWNS用だけでも と、作り始めたけど 他の機種のキーボードも似た感じの作りだと判ったので続けて作成。
ついでにUSBゲームパッドにも一部対応。これはゲームパッドの入力をキーコードに変換して送ってます。
1.変換アダプタ
キーボード変換アダプタの本体は共通でこんな感じ
・Raspberry Pi Pico または、RP2040-Zero
・AE-LCNV4-MOSFET等の4ビット双方向ロジックレベル変換モジュール
・各機種にあったキーボードコネクタ
必要なピンだけ繋ぐ。USB抜き差しするならコンデンサは必要
PC-98DO
2.接続コネクタ
| FM TOWNS(HR12) | FM77AV40EX(miniDIN4) | |||||||||
| 本体コネクタ | pico/rp2040 | 本体コネクタ | pico/rp2040 | |||||||
| 1 | GND | GND | 1 | VCC | VCC | |||||
| 2 | GND | 2 | GND | |||||||
| 3 | KSD | GP6 | 3 | KSD | GP6 | |||||
| 4 | CTLR | GP7 | 4 | GND | GND | |||||
| 5 | N.C. | |||||||||
| 6 | N.C. | |||||||||
| 7 | VCC | |||||||||
| 8 | VCC | VCC | ||||||||
| FM77AV(RJ9) | FM77AV40(RJ12) | |||||||||
| 本体コネクタ | pico/rp2040 | 本体コネクタ | pico/rp2040 | |||||||
| 1 | GND | GND | 1 | VCC | VCC | |||||
| 2 | KSD | GP6 | 2 | DETECT | GP7 | |||||
| 3 | DETECT | GP7 | 3 | KSD | GP6 | |||||
| 4 | VCC | VCC | 4 | GND | GND | |||||
| 5 | N.C. | |||||||||
| 6 | ? | |||||||||
| X1/turbo(φ3.5 TRS) | ||||||||||
| 本体コネクタ | pico/rp2040 | |||||||||
| 1 | VCC(*2) | 接続しない | ||||||||
| 2 | DATA | GP6 | ||||||||
| 3 | GND | GND | ||||||||
| *2)X1/turboのVCCでは動作しないので別電源を使用する | ||||||||||
実際のコネクタはこんな感じ。
※画像は試作などでアダプタのピン数など回路図とは違ってるかも FM TOWNS用 コネクタは入手可能だが3Dプリンタで作成してみた
FM77AV-2用 FM77AVは機種によりコネクタが違うのが酷いよね
X1/turbo用 本体からの電源が弱いので本体のVCCは使わずUSB電源等で+5Vをとる必要がある
3.ファームウェア
Raspberry Pi Pico 用と RP2040 Zero 用があります。違いはLED制御だけでZeroはカラー
FM TOWNS以外はキーボード、またはゲームパッドの接続が可能です。
しっかりテストしたわけではないので上手く機能しない場合があるかも。
※キーボードとマウスを1つのUSBレシーバで使用できる無線タイプのデバイスは接続可能
※使用は自己責任で、個人での利用のみにお使いください。
FM TOWNS
キーボード、マウスが接続可能。TOWNSでキーボードゲームパッドは不要だろうと使用できません。
マウス機能はTOWNSのキーボードに接続するマウス機能に対応したものなので Windowsでしか使えないようです。
予定
FM 77AV
fm77av_usb_kbd_rp2040.zip
PC-88FH以降
pc88fh_usb_kbd_rp2040.zip
PC-88VA
pc88va_usb_kbd_rp2040.zip
PC-98
予定
PC-98DO
予定
X1/turbo
予定
4.機種特有のキー割り当て
普段テンキーレスキーボードを使っているので ほぼそのための割り当て
動作確認キーボード
ELECOM TK-FDM109TKBK, TK-FDM109MBK
| JIS | FM TOWNS | FM 77AV | PC-88FH以降/VA | |||||
| Shift+ | Ctrl(右)+ | |||||||
| F1-F5 | PF1-PF5 | PF11-PF15 | PF1-PF5 | f1-f5 | ||||
| F6 | PF6 | PF16 | PF6 | f6 | ||||
| F7 | PF7 | PF17 | PF7 | f7 | ||||
| F8 | PF8 | PF18 | PF8 | f8 | ||||
| F9 | PF9 | PF19 | PF9 | f9 | ||||
| F10 | PF10 | PF20 | PF10 | f10 | ||||
| F11 | PF11 | EL | ||||||
| F12 | PF12 | DUP | ||||||
| 半/全/漢字 | かな/漢字 | 半角/全角 | 全角 | |||||
| Esc | ESC | ESC | ESC | |||||
| Tab | TAB | TAB | タブ | |||||
| CapsLock | CAP | CAP | 大文字 | |||||
| Ctrl(左) | CTRL | CTRL | コントロール | |||||
| Win(左) | Ctrl+Esc(Windows用Win) | |||||||
| Alt(左) | GRAPH | GRAPH | ||||||
| 無変換 | スペース(左) | 決定 | ||||||
| 変換 | スペース(右) | 変換 | ||||||
| カナ/かな/ローマ字 | ひらがな->カタカナ->オフ | かな | かな | |||||
| Alt(右) | PC | |||||||
| App | Shift+PF10(Windows用App) | |||||||
| Ctrl(右) | メタキーとして他のキーとの複合用とする | |||||||
| Enter | RETURN | 実行 | RETURN | RETURN | ||||
| BackSpace | BackSpace | 取消 | 後退 | |||||
| PrintScreen | COPY | 画面コピー | ||||||
| ScrollLock | SCROLL LOCK | オーバーレイ切替 | オーバーレイ切替 | オーバーレイ切替 | ||||
| Pause/Break | PAUSE | BREAK | BREAK | 停止 | ||||
| Insert | 挿入 | DUP | 漢字辞書 | INS | 挿入 | |||
| Home | HOME | CLS | 単語抹消 | HOME | 画面消去 | |||
| Page Up | 前行 | 単語登録 | ROLL DOWN | |||||
| Delete | 削除 | EL | SYSREQ | DEL | 削除 | |||
| End | END | EXT1 | CLS | 説明 | ||||
| Page Down | 次行 | EXT2 | ROLL UP | |||||
| NumLock | オーバーレイ切替 | |||||||
| JIS | PC-98/DO | X1turbo | |||||
| Shift+ | Ctrl(右)+ | Shift+ | |||||
| F1-F5 | f1-f5 | vf1-vf5 | F1-F5 | F6-F10 | |||
| F6 | f6 | ROLL UP | |||||
| F7 | f7 | ROLLDOWN | |||||
| F8 | f8 | HELP | |||||
| F9 | f9 | COPY | |||||
| F10 | f10 | REW | |||||
| F11 | vf1 | STOP | |||||
| F12 | vf2 | FF | |||||
| 半/全/漢字 | CTRL+XFER | ||||||
| Esc | ESC | ESC | |||||
| Tab | TAB | H TAB | |||||
| CapsLock | CAPS | CAPS LOCK | |||||
| Ctrl(左) | CTRL | CTRL | |||||
| Win(左) | Win(左) | ||||||
| Alt(左) | GRPH | GRAPH | |||||
| 無変換 | NFER | ||||||
| 変換 | XFER | ||||||
| カナ/かな/ローマ字 | カナ | カナ | |||||
| Alt(右) | XFER | ||||||
| App | App | A/B mode切替(*1) | |||||
| Ctrl(右) | メタキーとして他のキーとの複合用とする | CTRL | |||||
| Enter | RETURN | RETURN | |||||
| BackSpace | BS | INS | |||||
| PrintScreen | COPY | COPY | |||||
| ScrollLock | オーバーレイ切替 | 98/88モード切替 | オーバーレイ切替 | ||||
| Pause/Break | STOP | BREAK | |||||
| Insert | INS | INS | DEL | ||||
| Home | HOME | CLR | HOME | CLR | |||
| Page Up | ROLL DOWN | ROLL DOWN | |||||
| Delete | DEL | DEL | INS | ||||
| End | HELP | HELP | |||||
| Page Down | ROLL UP | ROLL UP | |||||
| NumLock | |||||||
| *1)AでLED1回、BでLED2回点滅(緑) | |||||||
| オーバーレイで下記キーはテンキー扱いになる | |||||||||
| ・FM TOWNS | ・他機種 | ||||||||
| [7][8][9][0] | → | [7][8][9][=] | [7][8][9][0] | → | [7][8][9][=] | ||||
| [U][I][O][P] | → | [4][5][6][-] | [U][I][O][P] | → | [4][5][6][-] | ||||
| [J][K][L][;][:] | → | [1][2]][3][+][*] | [J][K][L][;][:] | → | [1][2]][3][+][*] | ||||
| [M][,][.][/] | → | [0][000][.][[/] | [M][,][.][/] | → | [0][,][.][[/] | ||||
| [Enter] | → | [Return] | [Enter] | → | [Return] | ||||
5.ゲームパッドの割り当て
所有のELECOMのゲームパッドで割当てをしてます。メーカーやボタン数で使えるボタンが異なり使えない場合があります。
以前キーボードアダプタの自作のページでジョイパッドを接続してるものを見たことがって、そう言えばプログラマブルジョイパッドなんてのがあったの思い出して似たものを実装してみた。
今回は キーボードと同時接続できないのでアルファベット、ファンクションキーをボタン操作で入力できるようにしてみた。
ボタン割り当ての変更ができたら良いとは思うけど対応するかは未定。
十字キーの割り当てだけは変更可能。
動作確認ジョイパッド
ELECOM JC-GP20SBK, JC-U3912TBK
| テンキー | 矢印 | |||||||
| パターン1 | パターン2 | パターン3 | パターン4 | パターン5 | ||||
| 十字キー上 | 8 | 8 | 8 | 上 | 上 | |||
| 十字キー下 | 2 | 2 | 2 | 下 | 下 | |||
| 十字キー左 | 4 | 4 | 4 | 左 | 左 | |||
| 十字キー右 | 6 | 6 | 6 | 右 | 右 | |||
| 十字キー右上 | 9 | 6,8,6… | 割当なし | 右,上,右… | 割当なし | |||
| 十字キー左上 | 7 | 4,8,4… | 割当なし | 左,上,左… | 割当なし | |||
| 十字キー右下 | 3 | 6,6,6… | 割当なし | 右,下,右… | 割当なし | |||
| 十字キー左下 | 1 | 4,2,4… | 割当なし | 左,下,左… | 割当なし | |||
| ボタン1 | X | |||||||
| ボタン2 | Z | |||||||
| ボタン3 | スペース | |||||||
| ボタン4 | RETURN | |||||||
| ボタン5 | SHIFT(ホールド式) | |||||||
| ボタン6 | CTRL(ホールド式) | |||||||
| ボタン7 | 単押しは Y | |||||||
| 押しながらボタン8を押した回数で該当するアルファベットを入力(*3) | ||||||||
| ボタン8 | 単押しは N | |||||||
| 押しながらボタン7を押した回数で該当するファンクションキーを入力(例:3回ならF3) | ||||||||
| ボタン9 | CAPS(トグル式) オンでLED2回、オフでLED1回点滅(青) | |||||||
| ※X1 turboのみ 押しながらボタン10を押すとA/B mode切替。AでLED1回、BでLED2回点滅(緑) | ||||||||
| ボタン10 | かな(トグル式)オンでLED2回、オフでLED1回点滅(青) | |||||||
| ボタン11 | 単押しはESC | |||||||
| 押しながらボタン12を押すと十字キーの割当パターンを変更できる(*4) | ||||||||
| ボタン12 | PAUSE/BREAK | |||||||
| *3)例:3回ならC。入力時、小文字ならLED1回、大文字ならLED2回点滅(青)) | ||||||||
| *4)変更した際、パターン番号の数だけLEDが点滅(緑)する | ||||||||
他の方が作成された変換器や特に参考にさせてもらったサイトなど
・FM7関連 http://gomikuzukasu.web.fc2.com/fm7/index.html
AV40EX に AV2 のキーボードを接続
AV40EX に AV40 のキーボードを接続
・PC-8801覚え書き http://www.maroon.dti.ne.jp/youkan/pc88/index.html
PC-8801FH以降のキーボードの通信プロトコル
・諏訪工房 https://www.suwa-koubou.jp/
PC-9801/9821用キーボード変換器
PC-9801用バスマウス変換器
・uts https://kyouichisato.blogspot.com/
SHARP X1 に PS/2 キーボードを繋いで使う
・X1センター http://www.x1center.org/
仕様関係 –> キーボードの伝送フォーマット仕様 Ver0.1
BOOTHで頒布するかも。。
コメント
コメントを投稿