X68000ZにUS配列のHHKBをつないで使うためのKeyWitchの設定(2024.06.09)

Summary

X68000ZにUS配列のHappy Hacking Keyboardを接続して使うためのKeyWitchの環境設定ファイルus_HHKB.envを作成した。 X68000ZにUS配列のHHKBを接続すると、右上の `~ (バッククオート/チルダ)キーを押した時にBREAKコードが出力され、KeyWitchで指定したcharが出力される前に割り込みが発生し、思った動作にならない不都合が存在する。自作の環境設定ファイルでは、普段使わないIns(Fn+\|)の位置にBREAKを移動することで問題を回避した(Insは使えなくても困ることはないと想定)。あわせてCTRL + c でBREAKコードを出力するように設定。

1. 前置き

気の迷いでX68000Zというおもちゃを入手した。 (キーボードやマウスがついていないスターターパックというセットを買いました。)

ゲームやるにはテンキーとか方向キーなどがないとだめなのだけれど、コーディングや設定するときは大きなキーボードは邪魔なのでUS配列のHHKBを使いたい。

KeyWitchというツールを使えばUS配列でも簡単に繋げられそうと思ったけれど結構な沼だった。

少し(かなり?)調べて自前のKeyWitch.envファイルでうまくいったのでメモを公開。

以下についてご存知の方はコメントいただきたいです

X68000Z + usHHKB

2. 接続手順

2.1 KeyWitch.Xというツールを入手して展開

2.2 一式を展開して何らかの手段でHDDイメージにコピー

2.3 今回作成したUS配列のHHKB用設定ファイル(us_HHKB.env)も同じところにコピー

2.4 config.sysで起動時にkeywitch.xを実行するように設定(キー配置を交換するので-xオプションも忘れずに)

2.5 X68000ZにHHKBを接続して再起動

ソフトリセットはCTRL+F11(Opt.1)+Delで実行できる。

なお、WindowsキーボードなどでLEDキーを入力する方法を、X68000Zのコミュニティサイトで「カピバラ父さん」さんに教えていただきました。

Print Screen            かな入力
Scroll Lock             ローマ字入力
Pause Break             コード入力
F11                     Opt.1
F12                     Opt.2

Ctrl + Fn + Alt左(Opt)   漢字変換(Ctrl+XF1)
Ctrl + F11 + Del        ソフトリセット

3. 苦労/工夫したところ

US配列のキー設定ということで、KeyWitchに付属している設定ファイルascii.envを試してもそのままではうまくいかない。

対策を検討するために、いろんなキーコード(Scan code)の情報などを調査したが、X68000Z内部に渡されるScan codeとは微妙に一致しないためうまくいかなかった。 特に”|“と”~`“(チルダとバッククオート)のキーが鬼門で、望むようにキー入力できなかった。 あんなところこんなところにWindows上のX68000エミュレーターでUS配列のキーボード(HHKB)を使う例が見つかったが、一部のキーはWindowsのエミュレータ側の機能を使って対応していたので、X68000Zでの問題は解決しない。

救世主のカタ(kata68k)さん作成のkata68k/-X68000-InputCHKを使って実際にX68000Zが受け取るScan codeを確認できた。

わかったこととして、US配列のHHKBの右上のバッククオート/チルダキーのScan codeは、X68000ZのキーボードではBREAKキーのコードに相当するため、KeyWitchがBreak処理を優先して、指定したバッククオート文字を出力しないで制御文字を出力していたのだった!

X68000Z + usHHKB

結局、カタ(kata68k)さんのツールと、KeyWitchのドキュメントが最も情報量が多かっった。

X68000Z + usHHKB

X68000Z + usHHKB X68000Z + usHHKB

そこで、KeyWitchのキー交換機能を使ってバッククオート/チルダキーに割り当てられているBREAKキーのScan codeをInsキー(Fn+\(円マーク/バックスラッシュ))のScan codeと交換して裏に隠してやることにした。Fnと円マーク/バックスラッシュを同時に押せばBREAKが出力される。 元のInsキーはBREAKで上書きされてしまって使えなくなるが、Insはもともと使っていないのでOK。

ついでにCTRL + cでBREAKになるように設定。

4. まとめ

Webの情報では、US配列のUSBキーボードをX68000Zに接続して利用する例が見つかりにくかったので、設定ファイルを自分で作成することになった。 この設定により、HHKB LiteとHHKB Professional ClassicをX68000Zに接続してキー入力ができることを確認した。(CTRL+F11(Opt.1)+Delでソフトリセットも可能。)

参考

とても参考になった情報

その他参考にしたサイト(KeyWitchの設定や実行、キーレイアウトに対応したScan codeなど)

Back to Index