概要
		NEC PC-98シリーズ及びEPSON互換機(以下98と記述)でUSBキーボード、マウス、ゲームパッドを使用するための変換アダプタです。
		既存製品に対しての優位性
		※既存製品の公開されている仕様、マニュアルなどと比較した結果です。
		
			- 1つの変換アダプタで98のキーボード、バスマウス、シリアルホイールマウスに対応
 
			- USB HID複合デバイスが使用可能
 
			- USB HUBおよび複数のUSB HIDデバイスの接続に対応
 
			- テンキーレスキーボード、US104キーボードでもそれなりに使用可能
 
			- USBゲームパッドに対応
 
			- 98の電源ON後0.5秒程度で使用可能(電源ON直後にHELPキーを押すことが可能)
 
			- 変換アダプタサイズがコンパクト(製作例の場合)
 
		
		仕様
		共通
		
			- 電源供給:98のキーボード、マウスコネクタから供給
     ファームウェアアップデート時はUSBコネクタから供給 
			- 消費電力:TBD
 
		
		USB
		
			- ホスト機能(変換アダプタとして使用する場合)
 
			
				- USB2.0 Full-speed/Low-Speedデバイスに対応
 
				- USB HID複合デバイス対応
キーボード、マウス、ゲームパッドを内包するインターフェース2つまで認識可能
1インターフェース内にキーボード、マウスが両方存在するデバイスにも対応
1デバイス内に複数の同一デバイスタイプ(キーボードなど)が存在する場合は最初に検出されたもののみ使用可能 
				- USB2.0 Low-Speed HUB1台 ダウンストリームポート最大4ポートに対応
セルフパワーHUBの使用を推奨 
				- ホットスワップ対応
ただし挿抜タイミングによってはUSBデバイスの初期化に失敗する場合あり 
				- 複数の同一種類デバイスの接続と使用が可能
 
			
			- デバイス機能(ファームウェアアップデート時)
 
			
				- USB 2.0 Full-speed HIDデバイス
VID:04D8 PID:003C 
			
		
		キーボード
		
			- Windowsキーが付属するPC-9821系キーボード(NEC CMP-6D0Y7等)をエミュレーション(しているつもり)
 
			- USBキーボードのキー割り当て
 
			
			- USBキーボードのLED
 
			
				- Num Lock:Num Lock時点灯、config mode時点滅
 
				- Caps Lock:CAPSロック時点灯、config mode時点滅
 
				- Scroll Lock:カナロック時点灯、config mode時点滅
 
			
			- 最大6キーロールオーバー(Shift,Ctrlなどのキーを除く)
 
			- 98の/RTY信号アサート時の再送信未対応
 
			- キーリピート時のディレイ、リピート間隔設定可能
 
		
		バスマウス
		
			- L/M/Rの3ボタンの信号を出力
 
			- カーソル移動倍率設定可能(感度はUSBデバイス側に依存)
 
		
		シリアルホイールマウス
		
			- Microsoft Serial IntelliMouseをエミュレーション
 
			- 98にはL/M/Rボタンおよびホイールスクロールの信号のみ出力
 
			- ホイールスクロール倍率設定可能
 
		
		ゲームパッド
		
			- ゲームパッド入力はキーボード入力に割り当て
キー割り当ては変更可能
キーボードがマウスモードの場合は、マウス入力にすることも可能 
			- 最大12ボタンまで対応
 
			- アナログ入力非対応
 
		
		既知の問題点
		
			- 認識できないHIDデバイスがある
デバイスからのデスクリプタ取得時に未応答になるケースが大半、原因未特定 
			- 使用するマウスによって入力の遅延が発生する
原因は高DPIマウスの場合にバスマウスのパルス出力を処理しきれないため(ファームウェアの改良で解決できる見込み) 
		- インターフェース1のパケットを取りこぼす場合がある
ファームウェアの設計上の問題の可能性が高い、改良予定あり 
		
		製作
		ハードウェア
		回路図
		ファームウェア
		
		※usb hid bootloader firmwareをPICKIT等で書き込んだ後に、使用方法のファームウェアアップデートの手順でNYA-USB98KBWM firmwareを書き込む
		製作例
		製作例
		使用したDSUBコネクタフードはCANFORD 44-076でUSBコネクタとBOOTスイッチ部分を追加工。OMRON XM2S-2521でもよかったはず。
		使用方法
		
			- 変換アダプタ接続
 
			
				- 98に変換アダプタを接続する
 
				- 変換アダプタに使用するUSBデバイスを接続する
USB HUBを使用する場合はセルフパワーHUBを接続して、98より先に電源をONにしておく 
				- 98の電源をONにする
キーボード、バスマウス入力はそのまま使用可能(US104キーボードはキーレイアウトの設定のみ必要) 
				- シリアルホイールマウスを使用する場合はMS-DOSでP2BWHLを使用するか、WindowsでMicrosoft Serial IntelliMouse用のドライバをインストールする
 
			
			- 変換アダプタ設定
 
			
				- テキストエディアを起動した状態でキーボードの「Scroll Lock」を押すとconfig modeになる
config modeを抜けるには、再度「Scroll Lock」を押す 
				- config modeでのコマンドと設定項目
 
				
					- Esc			コマンドヘルプ表示
 
					- Home/End		RAMからNVRAMへの設定保存、呼び出し
 
					- Alt+0		現在の設定にデフォルト設定を読み込み
 
					- Alt+1-9		選択したRAM設定を現在の設定に読み込む
 
					- Shift+1-9		現在の設定を選択したRAM設定に保存する
 
					- Ctrl+1-9		起動時に読み込むRAM設定を指定する(保存先はRAM設定)
			※設定の関係
			 NVRAM設定<>RAM設定(No1-9)<>現在の設定
			 Alt,Shift,Ctrl+1-9でRAM設定と現在の設定をやり取りし、Home/EndでNVRAMとRAM間で設定のやり取りを行う
			 電源OFFでも保持されるのはNVRAM設定のみ 
					- F1			config modeでのメッセージ表示/非表示切り替え
 
					- F2			現在の設定表示
 
					- F3			USBデバイスリスト表示
 
					- F5			キーボード:レイアウトJP109/US104切り替え
 
					- F6			キーボード:R-Ctrlのシステムキー有効/無効切り替え
 
					- F7			キーボード:NumLockの起動時ON/OFF切り替え
 
					- F9			キーボード:VF1-5のF1-5への割り当てON/OFF切り替え
 
					- F10			キーボード:マウスモードON/OFF切り替え
 
					- F11			キーボード:キーパッドモードON/OFF切り替え
 
					- F12			キーボード:NFER,XFERなどUS104で不足するキーの割り当てON/OFF切り替え
 
					- q/a			キーボード:キーリピート速度設定
 
					- w/s			キーボード:キーリピート遅延時間設定
 
					- y/h			マウス:マウス移動倍率設定
 
					- u/j			マウス:ホイールスクロール倍率設定
 
					- o			ゲームパッド:キー割り当て設定
 
					- l			ゲームパッド:十字キーセンターキャリブレーション
 
				
			
			- キー割り当て変更機能
 
			
				- config modeでF9-F12をONにした場合常時有効となる
R-Ctrl+Shift+F9-F12でOFFにすることはできない 
				- R-Ctrl+F9-12は一時設定となり、config modeに入るか電源をOFFするとリセットされる
 
			
			- ファームウェアアップデート
 
			
				- MICROCHIP AN1388 PIC32 BootloaderのAN1388 Source Codeをダウンロードする
(アーカイブ内のPIC32UBL.exeが必要となる) 
				- USB A-Aケーブルを準備する
本来USBの規格にない接続形態だが、KU-RAA、USB A-Cケーブル+U32AC-MFAD などを使用する 
				- 変換アダプタを98から取り外す
 
				- BOOTスイッチを押しながらUSB A-AケーブルでWindows PCと接続する
正常に接続できた場合、デバイスマネージャで「USB 入力デバイス」と認識されている 
				- PIC32UBL.exeでファームウェアを変換アダプタに書き込む
以下はPIC32UBL.exeを起動した後の操作 
				
					- USB Enableをチェックする
 
					- Connectで変換器と接続する
 
					- Load Hex Fileでアップデートするファームウェアを読み込む
 
					- Erase-Program-Verifyでファームウェアを書き込む
ログにエラーが出ていないことを確認する 
					- Disconnectで変換アダプタとの接続を解除する
 
				
				- 変換アダプタからUSBケーブルを抜く
 
			
		
		 ※ファームウェアアップデートを行うと、保存してあるNVRAM設定は全て初期化される
		
		USBデバイス動作確認リスト
		
		開発の参考にしたもの
		
		8251相当のCCUでシリアルホイールマウスを使用する場合の問題点と対策
		ぐぐると発生する問題と対策がいくつか見つかる。
		
		EPSON PC-586RAとWindows98SEおよびWindows98SE付属のシリアルホイールマウスドライバの組み合わせの場合は、Windows起動時にシリアルホイールマウスのドライバが読み込まれるとWindowsがフリーズするので、以下のようにWindows起動時にはシリアルホイールマウスがなく、起動後にPnPによりシリアルホイールマウスドライバが読み込まれるようにした。
		
			- Logoff ScriptでバッチファイルをWindows終了時に実行する
 
			- バッチファイルの内容はREGBATでデバイスマネージャに登録されたシリアルホイールマウスを削除するもの
 
			- バッチファイル内容例
regbat.exe DS LM "System\CurrentControlSet\Services\Class\Mouse" "0001"
regbat.exe DS LM "Enum\SERENUM" "MSH0001" 
		
		Contact
		ovfpwg(at)gmail.com