人生初パソコンとしてNEC PC-8001を使っていました。
HAL研究所のPCG8100を同時購入し、I/O、ASCII、PIO等の雑誌掲載ゲームを打ち込んで、
毎日のようにゲーム三昧でした。
当時のゲームは低いマシンスペックを反映してシンプルな内容でしたが、それだけに色々と
工夫したものも多く、かなり熱中していた記憶があります。
操作はテンキーで行うものがほとんどで、クレイジークライマーみたいな複雑な操作が
必要なゲームの多くがテンキーで動かす前提だったものです。
現在、N80、M88、X88000、j80等の優れたエミュレーターが登場する中で、個人的な不満点が
このテンキーを使った操作で、特にNEC配列特有のテンキーのカンマ[,]やイコール[=]キーが
前提のゲームやアプリの場合、少々残念な気持ちになってしまいます。
PC-8001発掘隊として活動していた2001年頃は
NEC PC-98シリーズがまだ勢力を保っており、
例えばM88でPC-98シリーズのキーボードを利用する事はそれほど難しい事ではない状況でした。
しかし、その後のNECの方針転換(PC/AT互換移行)もあり、残念ながら最近ではNEC PC-98シリーズ向けの
テンキーも入手困難になってしまい、また、入手できてもVista以降のWindowsでは正しく認識しないなど
少々利用ハードルが高い状況となってしまっています。
個人的には、昔遊んだ記事の国会図書館での入手と再打ち込みが一通り完了したことと、
その後、CASIO ポケコン系の解析にはまってしまった事もあり、正直PC-8001系への想いが枯れそうに
なっていたのですが、たまたまPC-8001系のリンク
PC-8001を懐かしむページ
を見つけ、
最近、他のサイトの活動が下火になっても精力的に活動されているのをみて「枯れてる場合じゃないし!」
「売ってなければ作ればいいし!」と奮起。
何とかNEC配列テンキーとして動作するところまで持ってきました。
最近は、
ASCII.JPの記事
のようにPro Micro等のArduino系のマイコンを利用したキーボード自作が
流行しているようで、Web上にはキースイッチや制御マイコンの購入や自作などを扱った記事が
多くあり、部品の購入段階から躓くようなことはなさそうです。
しかし、いきなりArduinoを利用したH/Wと制御ファームまで自作するのはややハードルが高く、
まずは既存のUSBキーボード向けの制御マイコンを利用して自作することにしました。
FLINT キーボードを作ろうぜ!キット
家電のケンちゃんで購入しました。
リンク先を見ると判りますが、利用したいキースイッチを基板のシルクプリントに従って
はんだ付けを行うだけで、USBキーボードとして動作します。
SHIFT+キーなどの同時押しが出来ないなどの制限がありますが、
その辺りは2回路C接点のリレーを利用する事で
簡易的に何とかすることにしました
〇同時キー押し問題
例えば、イコール[=]を入力する場合に[Shift]+[-]キーを同時押しが必要ですが、
1つのキースイッチで回路を組むと、それぞれ独立したスキャン回路同士がショートしてしまい、
誤動作が発生します。
そこでこんな感じのリレー回路を組んでみました。
プッシュスイッチを押すと、リレーに電流が流れて、C接点の2回路がONになります。
この2接点にそれぞれ別のキーを割り付ければ、同時押しを実現できそうです。
実際には、キーを押したタイミングとマイコン側の制御ファームのスキャン処理の周期により
誤入力判定となる可能性があるため、リレーによる簡易回路ではなく、トランジスタに
コンデンサーと抵抗を利用してきちんと遅延計算したうえでスイッチング回路を設計したほうが
確実と思います。
ただまあ、ぶっちゃけ、自分の手でイコール[=]を入力する場合でも、たまに誤って入力したり
するため、あまり誤認識が酷くなければ許容する事にしました。(おぃ)
〇キースイッチ
ジェイダブルシステム
でMX赤軸+CDタイプキートップを2セット(20個)購入しました。
回路が概ね決定したので、筐体を作成しました。
〇部品
ダイソーでコーナーラック(小)と、フローリングマット、アクリルスプレー(茶色)を購入。(300円+税)
〇キースイッチ用の穴あけ
JW_CADでキーレイアウトを描いて
、コーナーラックにマスキングテープで張り付けて、
必要な個所に穴あけしました。
ルーターで穴をあけ、リーマーで広げ、ハンドニブラーで四角くくり抜き、やすりで整えるという
流れで行いましたが、初めてなのでかなり苦戦しました。
アクリルスプレーで色を塗り、フローリングマットを化粧板として貼り、キーをはめ込んだ状態が下記です。
工作精度が悪く、かつ強度不足などもあり、キー配置が少々不揃いになってしまいました。
(次回作成するときは、もう少し強度のある素材を使って、慎重な作業で精度を出したい・・。)
ちなみにキートップがPC-8001配列になっているのはご愛敬。
こんな感じで組み込みました。
各キースイッチをマイコンボード上のパターンに配線。
USBは、基板上にType-Bコネクタパターンがあるので、そちらに直接はんだ付けしています。
先のリレー回路は、ユニバーサル基板に組んだ状態で、ホットボンドで筐体に接着しました。(汚いなー)
j80用にスライドスイッチを設けて、[右Shift]同時押しをON/OFFできるようにしています。
OFF状態でイコール[=]を押すと、テンキーのマイナス[-]を入力するようになり、
j80上では[106jp.Rev4.key]により、テンキーのイコール[=]が押された判定になります。
そんなこんなで、完成です!
キーはNEC PC-88/98配列っぽくしています。
HOME CLRやHELPはエミュレータ以外では使わないので、NUM LOCKと電卓キーに・・。
あとは、歴代のNEC系配列にしています。
〇エミュレータ用途
ほぼPC-8001系のみなので、j80をメインで使っていますが快適です。
特にクレイジークライマーでの操作性は、かねてからの念願だったため、非常に満足です。
面ワープの裏技もOK!!
今までメンブレンだったのでメカニカルキーだと当時と近い感覚でプレイできます。
ノーミスクリア!
同じくスペースマウスも操作性良し。
クリア!
〇テンキーとして
総じて快適です。
カンマ[,]キーとイコール[=]キーがそのまま入力できるので、
Excel帳票で意外な使い勝手の良さを発揮しています。
追加でカッコ[()]とかも入力できると、さらに便利かも・・
〇イコール[=]キー入力状況
リレーによる簡易的な同時押し回路ですので、予想通り、それなりに誤入力となってます。
メモ帳アプリで確認すると、大体20~30回に1回程度の発生率でした。
まあ、こんなもんでしょうか・・。
Pro Micro(Arduino)系マイコンに対応中・・
ちゃんとしたイコール[=]キー対応やカッコ[()]の追加、さらにOS環境を考慮して
JIS/US配列を切り替えられるように等々、夢が広がりますが、時間がかかりそう・・?
追記:Pro Micro(Arduino)系マイコンに対応しました!