PC-9801キーボードを98配列のUSBキーボードにするアダプタ

本アダプタの通常配布は終了しました。
BOOTH に若干数出品しています

 

緊急告知
ファームウェア バージョン3より、Escキーのスキャンコードが 0x57から0x5Eに変更になっています1
本ページのスキャンコード図、およびuploaderから取得可能な設定ファイルサンプルにはまだスキャンコード移動が反映出来ていません。申し訳ございませんが、キー配置をカスタマイズするために設定ファイルのサンプルをダウンロードされた方は 0x5E に 0x29 を設定するよう、設定ファイルの修正をお願いいたします。

 

NEC PC-9801用キーボードをUSB接続化するアダプタ改め、PC-9801用キーボードを98配列のUSBキーボードにするアダプタです。同じ事を言ってるように聞こえるかも知れませんが微妙に違います。
なおこれまでどおり日本語106/109キーボードとして使うことも出来ます。

アダプタ外観

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

USB Type-C モデル

 

 

概要

  • PC-9801用キーボードをUSB接続に変換してPCで使用可能にします。
  • 98配列のUSBキーボードとして使用することが出来ます。この場合
    ・テンキーイコール、テンキーカンマは正しくテンキーとして機能します
    ・Shift + @は「~」、Shift + ^ は「´」の入力になります
    ・CAPSキーはShift同時押しではなく単独押下で機能します
    ・CTRL + XFER で IMEの切り替えが可能です
    Windows10での使用は若干制約があります。必ず仕様制限事項をお読み下さい。
    なお従来どおり日本語106/109キーボードとして使う分にはWindows10でも全く問題ありません。
  • 設定ツール(Windows用)を使ってユーザがキーマッピングを自由に変更出来ます。設定内容はアダプタに記憶しますので、一度設定を行えばアダプタをどのPCで利用してもお好みのキーマップでキーボードを操作出来ます。ドライバ等をインストールする必要もありません。設定変更を行うPCとアダプタを運用するPCが異なっても構いません。
  • 任意のキーを機能キー(いわゆるFnキー)に設定する事が可能です。機能キーと任意のキーの組み合わせで別のキーのキーコードを発生させる事が出来ます。キーが少ない旧世代キーボードを使用する場合にキーの少なさを補えます。
  • Fnキーは単独で設定する(Fnキー専用に設定する)ことも、ワンショットモデファイアキーとして設定することも出来ます (例えばNFERキーを『単独押下で無変換キー、別のキーとの同時押下でFnキーとして使用』など)
  • PC-PTOSキーボード (PC-9801-114) のすべてのキーが利用可能です

 

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

  • PC-98XL、PC-98XL付属のキーボード
  • キーボード右上に「PC-9801V」「PC-9801U」とプリントされたキーボード
  • PC-9801RA/DAからFELLOWシリーズ以前のマシンに付属のキーボード。(キーボードにCAPSとカナのLEDが付いている。CAPSキーとカナキーは機械式ロックではない。キーボードの筐体が下部はグレー、上部は白のツートンカラーになっている。キーボード右上に「PC-9801 R」「PC-9800 SERIES」とプリントされている)
  • Winキーの付いた純正キーボード
  • PC-9801用テンキー、PC-9801LS-01 および PC-9801n-23
  • ASCII Askeyboard sono12
  • PC-PTOS専用キーボード PC-9801-114

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

※ Askeyboardは当方所有の物は問題なく動作しているのですが、本アダプタ経由で正常に動作しないと言う報告も頂いているので(sono1ではなくde SE1で)一旦動作確認リストから外します。

 

お断り

本アダプタは同人ハードです。それなりのテスト期間を設けて動作確認を行っていますが、あらゆる環境において必ず動作することを保証するものではありません。

いかなる場合においても、本アダプタを使用したことによって生じた逸失利益、特別な事情から生じた損害(損害発生について予見し、または予見し得た場合を含めて)、および第三者からの損害賠償請求に基づく損害について、使用方法を問わず当方は一切の責任を負いません。

動作確認は自作Windows機 (Windows7 64bit / Windows8.1 64bit / Windows10 64bit)、ノートパソコン(Windows7 32bit、WindowsXP 32bit)、Androidタブレット(SHARP SH-08E)で行っています。

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

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

 

使い方

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

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

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

 

キー配置

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

  • テンキー カンマ、テンキーイコールについては98配列USBキーボードとして使用する場合はそのまま刻印どおりの入力となります。日本語106/109キーボードとして使用する場合は入力出来ません。
  • ROLL UPにはPage-Downを、ROLL DOWNにはPage-Upを割り当てています。

 

仕様制限事項

98配列化ファームをWindows10で使用する場合の注意

98配列化ファームに書き換えてWindows10で使用する場合、レジストリの変更が必要です。

Windows10で98配列USBキーボード 2020年版

Windows10での使用について (スリープ解除について)

本アダプタをWindows10で使用する場合、環境によってはスリープ解除が正しく機能しない場合があるようです。(スリープしてもすぐに勝手に解除される、等)
このような症状が出た場合はキーボードの電源管理プロパティタブにある「このデバイスでコンピュータのスタンバイ状態を解除できるようにする」チェックボックスをオフにして下さい。

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

PC-9801キーボードのCAPSキーとカナキーは、キーを押し下げた際に「キー押下」の信号が発生しますが、キーを離しても「キー開放」の信号が発生しない特殊なキーです。もう一度キーを押し下げて「キー開放」の信号が発生します(旧世代キーボードは機械式、RDFキーボード以降はソフトウェア的にトグル動作)。この仕様はUSB変換にとって少々不都合があるため、アダプタ内で特殊処理を行っています。

キーを押すと「キー押下」「キー開放」の両方がPCに通知されます。キーを離した際も離したタイミングで「キー押下」「キー開放」が通知されます。

なおこの仕様によりCAPSキーとカナキーについては押しっぱなし動作は出来ません。実用上、CAPSとかなにはAltやShift、Ctrlは割り当てることが出来ないと考えて下さい。

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

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

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

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

ただしこのコマンドはPC-9801R/SERIESキーボード以降にしか存在せず、これ以前の旧世代のキーボードには存在しないコマンドです。よって旧世代キーボードについてはキーボードによるリピート処理が機能してしまいます。この結果キーリピートがやや不均等な間隔で発生します。ゲーム等で不都合が生じる可能性があります。

また、旧世代キーボードは機能キー(Fnキー)を使用することは出来ません。  旧世代のキーボードでFnキーを使ってみたら案外普通に使えました。(キーを押してから最初のリピートが発生するまで500msあるので意外とどうにかなりそうです)

一部キーに付いて刻印どおりの入力とならない(106/109キーボードとして使用時)

本アダプタを 「日本語109キーボード」 変換アダプタとして使用した場合は、 [SHIFT + @] で入力されるのは [´] であり、[SHIFT + ^] で入力されるのは [~] です。PC-9801キーボードのキー刻印と逆の入力になります。

「98配列USBキーボード」として使用する場合はキートップ刻印どおり [SHIFT + @] で入力されるのは [~] となり、[SHIFT + ^] で入力されるのは [`] となります。

LED制御について

ファームウェア Version3 よりLED付きキーボードについてはCapsLock とNumLockの状態に合わせてLEDを制御する機能を追加しました。なおLED制御を有効にするにはアダプタ設定でキーボード世代を「RDF以降」にする必要があります。

USBサスペンドについて

本アダプタはPCがスリープしてもキーボードに対しても給電を続けます。ノートPCやタブレット等バッテリ消費が気になるデバイスでサスペンドを多用する場合はご注意下さい。

テンキー PC-9801n-23 のキー『000』について

このキーはテンキー内部でテンキー「0」の打鍵を3回発生させることで実現しています。よってテンキー「000」 に限りキーのマッピングは出来ません。また、テンキー「0」のマッピングを変更するとテンキー「000」も影響を受けます。

Fnキーをワンショットモデファイアキーに設定した場合の制約

Fnキーをワンショットモデファイアキーに設定した場合(単独打鍵時と組み合わせ打鍵時で役割を変えた場合)、単独打鍵時はキーを押しっぱなしにしてもリピートは発生しなくなります。また、単独打鍵時はキーを離したタイミングでPCに「キーON & OFF」が通知されます5

 

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

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

カスタマイズには磁石が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 の導入を求められる場合があります。

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

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

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

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

1. configtool.exeを起動します

2. アダプタをメンテナンスモードにしてから、接続ボタンをクリックします。正常に接続できたらステータスバーに「接続しました」と表示されます。また、各ボタンが有効となります

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

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

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

 

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

ファームウェア バージョン3より、Escキーのスキャンコードが 0x57から0x5Eに変更になっています。ご注意下さい

 

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

 

Winキー付きキーボードのキーコードです。Winキー付きキーボードは左右のSHIFTキーのコードが異なる点に注意して下さい7

 

 

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

 

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

 

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

事前にキーマップの設定ファイル(テキストファイル)をテキストエディタ等で作成し、それをインポートする事で複数キーの設定を一括して行う事が出来ます。

;
; 設定ファイルサンプル
;
00,A5    ; (00 には必ず A5 を設定する)
;
01,1E    ; フルキー1が押されたらPCに “1” を通知
02,1F
03,30
04,21
51,8B    ; NFERキーを無変換キーに設定
;
81,62    ; Fn + NFER をテンキー0 に設定 
;

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

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

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

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

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

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

 

配布について

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

 

ダウンロード

ダウンロードパスワード、解凍パスワードは共通で 「d●●●●●●●t」 です。(お求め頂いた方へ個別にご案内させて頂きます)

設定を変更するだけの場合、Windows+Chrome / Edge ユーザであれば上記のツールを使わなくても Web画面から設定を変更することが出来ます

web configツール
https://ixsvr.dyndns.org/uploader/config.html

上記のページから設定ファイルをアダプタに書き込んで下さい。

 

ファームウェア更新履歴

3.0
  • uploaderにて公開中
1.2ex2
(20161106)
  • USB2PC98 ファームウェア v1.20ex2
  • 実験的リリース
  • キーボード世代設定の初期設定を間違えていたミスを修正
    ファームウェア更新直後は旧世代キーボード対応となります(キーボードによるキーリピートあり、Winキー無効)
  • USB VendorID/ProductIDについて、EEPROMにテスト用カスタムIDを書いたままBuildしていたミスを修正

1.2ex1と1.2ex2の違いはファームウェア更新直後のEEPROMの内容の変更のみです。現在すでに1.2ex1へ更新している方は1.2ex2へ更新する必要はありません。

1.2ex1
(20161008)
  • 実験的リリース
  • Fnキーの指定方法を変更
  • Fnキーをワンショットモデファイアキーとして使えるように対応
  • キーボードとの通信方法を見直して少しだけ安定化
  • テンキーPC-9801n-23の「000」キーの入力が稀に “00” になる不具合を修正
  • DIPSWの役割を再変更
  • 右SHIFTのキーコードを内部処理の都合で0x7Dから0x75へ移動
  • 10個の組み込みマクロキーを実装
  • 設定ファイルサンプル添付
1.1ex1
(20160920)
  • 実験的リリース
  • キーボードによるスリープ解除に対応
  • Fnキー使用時、キー開放順序によってはキーが押しっぱなしになる不具合への対応
  • ドライバ開発等を目的として、USB VendorID/ProductIDを任意に設定する機能を追加
  • キーマップのデフォルトを変更
  • DIPSWの役割を変更
  • ESCのキーコードを内部処理の都合で0x78から0x57へ移動
1.01 (20151129)
  • USB2PC98 ファームウェア v1.01 (20151129)
  • アダプタの初期状態(カスタム設定を行わない素の状態)において、テンキーカンマのキー設定が未定義だった不具合の修正。
  • 設定ファイルサンプル(PC-9801)
初版
  1. PTOSキーボード対応を行った際にスキャンコードが被ってしまったため移動させました []
  2. JISモード、および親指Ⅰで動作を確認 []
  3. 多分NEC純正キーボードなら大抵のものは動くと思いますが []
  4. ちなみにX68000用とFMR用のキーボードは押しっぱなしで押下のキーコードが繰り返し発生します。ADBキーボードはUSBキーボード同様に押下の瞬間と解放の瞬間のみキーコードを発生します。押しっぱなしで押下と解放のペアを繰り返し発生するタイプは98キーボード以外知りません []
  5. WindowsにおけるWinキーと同じ挙動になる、と考えてください []
  6. 厳密にはESCキーのキーコードは本来は0x00ですが、アダプタ内処理の都合で0x00から0x57に置き変えています []
  7. 右SHIFTキーのキーコードは本来は0x7Dですが、こちらもアダプタの内部処理の都合で0x7Dから0x75に置き換えています []

コメントを残す

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