PC-9801キーボード USB変換アダプタ

NEC PC-9801用キーボードをUSB接続にてPCで使えるようにする為のアダプタです。

usb2pc98_1_small

アダプタ外観

usb2pc98_2_small

ケースはありませんので、このように熱収縮チューブで絶縁しています。

 

 

概要

  • PC-9801用キーボードをUSB接続に変換してPCで使用可能にします。
  • 設定ツール(Windows用)を使ってユーザがキーマッピングを自由に変更出来ます。設定内容はアダプタに記憶されますので、一度設定を行えばアダプタをどのPCで利用してもお好みのキーマップでキーボードを操作出来ます。ドライバ等をインストールする必要もありません。設定変更を行うPCとアダプタを運用するPCが異なっても構いません。
  • 任意のキーを機能キー(いわゆるFnキー)に設定する事が可能です。機能キーと任意のキーの組み合わせで別のキーのキーコードを発生させる事が出来ます。

PC-9801用キーボードは非常に種類が多く、サードパーティからも互換キーボードが発売されていますが、本アダプタは以下のキーボードを対象としています

  • PC-98XL、PC-98XL2 付属のキーボード。(カーソルキー中央部にHOMEキーが存在する)
  • PC-9801RA/DAからFELLOWシリーズ以前のマシンに付属のキーボード。(キーボードにCAPSとカナのLEDが付いている。CAPSキーとカナキーは機械式ロックではない。キーボードの筐体が下部はグレー、上部は白のツートンカラーになっている。キーボード右上に「PC-9801 R」「PC-9800 SERIES」とプリントされている)
  • Winキーの付いた純正キーボード(ただし現在のファームウェアではWinキーは使用出来ません

上記以外のキーボードについては動作確認が取れておらず、動作を保証致しません。 国民機(EPSON互換機)に付属のキーボードに付いても動作は保証致しません。

 

お断り

本アダプタは同人ハードです。それなりのテスト期間を設けて動作確認を行っていますが、あらゆる環境において必ず動作することを保証するものではありません。また、本アダプタを使用したことによって生じたいかなる問題についても、使用方法を問わず当方は一切の責任を負いません。

動作確認はPC-9801RA付属キーボードとPC-98XL付属キーボードでのみ行っています。PC側は自作AT(Windows7 64bit / Windows8.1 64bit / Windows10 64bit)、ノートパソコン(Windows7 32bit、WindowsXP 32bit)、Androidタブレット(SHARP SH-08E)で行っています。

組立てには有鉛ハンダを使用しています

予告無く仕様、本ドキュメントの内容を変更する場合があります

 

使い方

アダプタにキーボードを繋いだ後、アダプタをUSBケーブルでPCに繋いでください。アダプタが通電している状態でキーボードを繋がないで下さい。

アダプタにキーボードを繋ぐ際は、キーボードコネクタをしっかり保持してケーブルを差し込んでください。コネクタ抜き差しが若干固めですので、コネクタにストレスがかかるような抜き差しは控えて下さい。

正常な状態ではアダプタのLEDが約1秒周期で点滅します。加えて、キーボードのキーを操作するとそのタイミングでLEDが変化します。

既に購入された方への補足です

 

キー配置

PC9801R_DEF

PC-9801Rキーボードに置けるデフォルトのキーマップです。(後述の変更ツールで任意に変更可能です)

  • テンキー カンマについては、フルキーのカンマを割り当てています。よってIMEがONの場合は全角入力となりますし、シフトキーを押しながら入力すると “<” の入力となります
  • テンキー イコールには何の設定も割り当てていません
  • ROLL UPとROLL DOWNの割り当ては逆の方がいいんでしょうか?  誰に対する質問???

 

仕様制限事項

1. CAPSキー、カナキーの取り扱いについて

PC-9801キーボードのCAPSキーとカナキーは、キーを押し下げた際に「キー押下」の信号が発生しますが、キーを離しても「キー開放」の信号が発生しない特殊なキーです。もう一度キーを押し下げて「キー開放」の信号が発生します。この動きはUSB変換にとって不都合なため、アダプタ内で特殊処理を行っています(後述しますが行わない設定も可能です)

この2キーに限り、以下のどちらかの処理方法を選択・設定する必要があります。(なおCAPSキーとカナキーそれぞれを異なる設定にする事は出来ません)

  1. キーを押すと「キー押下」が通知され、その後キーの押下状態に関係なく200ms後に自動的に「キー開放」が通知される。よってCAPS、カナキーに限りキーの 押しっぱなし動作は出来ない。
  2. アダプタ内で特に対応を行わない。よってキーを押下してその後開放してもWindowsにはキー押しっぱなしとして通知される。もう一度キーを押下する事 でキーの押しっぱなしが解除される。

2. キーリピート処理について

PC-9801キーボードはキーを押しっぱなしにした際のキーリピート処理をキーボード内マイコンが行っていますが、その処理が

   押下 ─────── 開放&押下 ── 開放&押下 ── 開放&押下 ── ・・・ ── 開放

と、いちいちキー開放とキー押下のペアを繰り返し発生させる方法を取っています。一方でUSBキーボードにおけるキーリピート処理はUSBホストが担当しており、キーボードは最初の押下と最後の開放だけをホストに通知する仕組みです。よってPC-9801キーボードのリピート処理は少々相性が良くないため、本アダプタは電源投入時の初期化処理の際にキーボード内マイコンによるリピート処理を抑止するコマンドを送っています。

ただし、この抑止コマンドはPC-9801R/SERIESキーボード以降にしか存在せず、PC-98XLキーボードには存在しないコマンドです。よってPC-98XLキーボードを使用する際は後述の設定によって「キーボードによるリピート抑止を行わない」 設定に変更する必要があります。

この制約によりPC-98XLキーボードはキーリピートが若干不自然(不均等)な間隔で発生します。ゲーム等で不都合が生じる可能性があります。また、機能キー(Fnキー)を使用することも出来ません

3. 一部キーに付いて刻印どおりの入力とならない

本アダプタはPC-9801用キーボードを一般的な「USB接続日本語109キーボード」へ変換しています。よって [SHIFT + @] で入力されるのは [`] であり、[SHIFT + ^] で入力されるのは [~] です。PC-9801キーボードのキー刻印と逆の入力になります。

4. LED制御について

PC-9801R/SERIESキーボードのLEDは現在のファームウェアでは一切制御していません。

5. USBサスペンドについて

本アダプタはUSBデバイスサスペンド動作を行いません。USB2.0の仕様ではUSBホスト (PC) がスリープ状態となったらUSBデバイスも速やかに省電力モードに移行すべしと定められていますが、本アダプタはUSBホストがスリープしてもそのまま通常モードで動き続けます。また、キーボードに対して給電し続けます。ノートPCやタブレット等バッテリ消費が気になるデバイスでサスペンドを多用する場合はご注意下さい。

6. キーマップカスタマイズの制約について

キーボードのキー1つ1つに任意のキーを割り当てる事が出来ますが(詳細は次項)、「1つのキーに複数キーの同時押しを割り当てる」「1つのキーに複数キーの連続打鍵を割り当てる」事は出来ません。残念ながら、テンキー=に「SHIFT+フルキー-(マイナス)」を割り当てて擬似的に=(イコール)キーにする、と言う事は出来ません。

 

キーマップのカスタマイズについて

設定ツールを用いてすべてのキーについてキーマップのカスタマイズが可能です。カスタマイズ内容はアダプタに記録されます。

カスタマイズに際して磁石が1つ必要です。(100均で売ってるような安い磁石で結構です。逆に強すぎる磁石はマイコンに悪影響を及ぼしかねないので使わないでください。試しに昔のiPodに標準で付属してきた白いイヤホンを使ってみましたが、イヤホンから漏れる微弱な磁気でもOKでした)

なお、キーマップカスタマイズ中は本アダプタに接続されたキーボードは使用出来ません。(後述しますが、事前にカスタマイズの内容を書いた設定ファイルを用意しておけばマウス操作だけでカスタマイズ可能です)

キーマップのカスタマイズには専用の設定ツールを使用します。事前にダウンロードしてください。また、サンプル設定ファイルもダウンロードしてください。解凍すると以下のファイルが入っています

  • configtool.exe  (設定ルーツ本体)
  • config_pc98xl.txt (PC-98XL付属キーボード用設定ファイルサンプル)
  • config_pc9801rdf.txt (PC-9801R/SERIESキーボード用設定ファイルサンプル)

設定ツールはWindows7 / Windows8.1 / Windows10 で動作確認を行っています。なお、実行に際しては.NET Framework 3.5 がOSにインストールされている必要があります。Windows8.1 /10 については設定ツール実行時に.NET Framework3.5 の導入を求められる場合があります。

メンテナンスモードでアダプタを立ち上げる

設定ツールを使用するためには変換アダプタをメンテナンスモードとする必要があります。

MAG_SW2

左側のコネクタがPC-9801キーボードコネクタ、右側がUSBコネクタです。通常はカバーに覆われて見えませんが、基板中央のやや左寄りにある黒い小さな四角が磁気スイッチです。ここに磁石を近づけた状態でアダプタをPCに接続するとメンテナンスモードで起動します。(メンテナンスモードで起動するとアダプタのLEDが高速で点滅します。なお通常モードではアダプタのLEDは1秒周期で点滅します)

設定ツールの使い方(キー個別設定)

1. アダプタがメンテナンスモードになっている状態でconfigtool.exeを起動します

configtool_1

2. 接続ボタンをクリックします。正常に接続できたらステータスバーに「接続しました」と表示されます。また、各ボタンが有効となり押下可能な状態に変化します

3. ADRと書かれた入力欄にはPC-9801キーボードのキーコードを16進数で入力し、VALと書かれた入力欄にはキーを押下した際にPCに通知したいキーのキーコード(= USB HID キーコード)を16進数で入力します。

両方の入力欄にコードを入力したら [W] ボタンをクリックして設定をアダプタに記録します。設定が正しくアダプタに記録されたらステータスバーに「設定完了」と出力されます。

なお、ADRの入力欄に98キーボードのキーコードを入力して [R] のボタンをクリックすると、現在の設定値を読み出してVAL欄に表示します。

PC-9801R/SERIESキーボードのキーコードは以下のとおりです。2

PC9801R_CODE

PC-98XLキーボードのキーコードは以下のとおりです。

PC98XL_CODE

 

USB HID キースキャンコードの一覧はこちらです

設定例1) NFER キー(キーコード 0x51)を “無変換” キー(キーコード 0x8B) に設定する

configtool_2

 

※ 機能キー (Fnキー) について

機能キーはPC-98XLキーボードでは使用出来ません

VAL入力欄に 0xFF を設定したキーは機能キー (Fnキー) として扱われます。例えば XFERキーを機能キーに設定する場合は ADR=35, VAL=FF と設定します

configtool_3

機能キーに設定したキーについては押下状態はホスト(PC)には一切通知されません。

各キーのキーマップ設定時 「Fnキー同時押し」のチェックボックスにチェックが入っていると、機能キーと一緒に押下した場合にPCに通知されるキーの設定となります。例えば「機能キーとフルキー [1] の同時押しで [F1] 押下とする 」設定は以下のようになります。

設定例2) 機能キーとフルキー1 (キーコード 0x01) の同時押しをF1キー (キーコード 0x62) とする

configtool_4

4. 全てのキーについて設定が完了したら、最後に「有効化」ボタンをクリックして下さい。これでカスタマイズ設定が有効になります。逆にカスタマイズ設定を無効にしてデフォルトのキーマップとする場合は「無効化」ボタンをクリックします。(無効化を行ってもカスタマイズの内容は記録されたまま残っています)

5. 有効化を行ったら最後にResetボタンをクリックするか、本アダプタを一度PCから抜いて再度接続してください。アダプタが通常モード(LEDの点滅が1秒周期)で起動し、キーボードからのキー入力が正常に行える事を確認してください。

 

設定ツールの使い方(一括設定)

事前にキーマップの設定ファイル(テキストファイル)をテキストエディタ等で作成し、それをインポートする事で複数キーの設定を一括して行う事が出来ます。  正直なところ、全てのキーについて個別に設定なんか面倒臭くてやってられないと思います・・・

;
; 設定ファイルサンプル
;
00,A5
01,1E     ; フルキー1が押されたらPCに “1” を通知
02,1F
03,30
04,21
;
81,62     ; Fnキー同時押しは元のキーコード(0x01)に0x80を足した値(=0x81)を左側に記述

 

設定ファイルは1行に1キー分、 「<98キーボードのキーコード>, <USB HIDキーコード>」 の書式で記述します。キーコードは16進数で記述します。また、セミコロン以降の文字はコメントとして無視します。行頭にセミコロンを書いた場合は行全体が無視されます。

なお設定ファイルを使って一括登録を行う場合、機能キー同時押しの定義については98キーボードのキーコードは「元のキーコード + 0x80」として下さい。 例えば、フルキー1(キーコード 0x01)と機能キーの同時押しでF1(キーコード 0x62)を発生させる場合、定義ファイルには “81,62″ と記述します。(0x01 + 0x80 = 0x81)

具体的なツールの使い方は前述の “設定ツールの使い方(キー個別設定)” とあまり変わりませんのでそちらを参照して下さい。唯一、手順 3について

個別設定 → ADRとVALに値を入れてW ボタンをクリックする
一括設定 → importボタンをクリックして定義ファイルを指定する

と読み変えて下さい。設定ファイルをインポートした後は個別設定と同様に有効化とリセット(あるいはUSBケーブルの抜き差し)を行ってください。

その他設定ファイルの細かい仕様については、サンプル設定ファイル内のコメントも参考にして下さい。

 

配布について

メールにて在庫を問い合わせください。送料込み1個3000円です。また、Yahooオークションに出品していることもありますので合わせてご利用ください → Yahooオークションサイトへ移動

 

ダウンロード

ダウンロードパスワード、解凍パスワードとも共通で半角英小文字 「d*******t」 です。(購入された方に個別にご案内致します)

(2015.11.18 追記)
設定ツールについて、.NET Framework 2.0 環境で動くかもしれないバージョンを作成しましたので実験的に置いておきます。こちらのバージョンならWindowsXP、Windows2000SP4でも使えるかも知れません。当方XP環境で使用出来る事のみ確認しました(が、この環境には既に.NET3.5も同時にインストールされているので厳密な確認とは言い難いです)

USB変換アダプタ設定ツール for .NET Framework 2.0 (experimental)

 

 

ファームウェア更新履歴

1.01 (20151129)
  • アダプタの初期状態(カスタム設定を行わない素の状態)において、テンキーカンマのキー設定が未定義だった不具合の修正。
初版
Tweet about this on TwitterShare on FacebookShare on Google+
  1. 初代PC-9801を除く、PC-9801VXまでのマシンに付属のキーボード []
  2. 厳密には、ESCキーのキーコードは本来は0x00ですが、アダプタ内処理の都合でESCキーのみ0x00から0x78に読み変えています []

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です