不足していた機能の追加や不具合の修正を行いました。PIC12F1822 or PIC12F1840用です。
PC-8801FH用 PS/2キーボード変換アダプタ ファーム
2019.11.14追記
日本語106 Keyboardでも使えるように、PCキーをRight ALTに割り当てたバージョンを作成しました(APPはGRPHを割り当てています)キー配置以外の変更はありません
変更点
1. CAPSキー、かなキーのロック処理を追加しました
一度押すとONのままロックされ、もう一度押すとロックが解除されてOFFになります。キーの状態はキーボードのLEDで確認出来ます。なお、かなキーのロックはScroll Lock LEDに割り当てています。
処理の都合上、キーを「離した(Break)」時に判定を行っています(CAPSキーを押して、離した時にONでロック。もう一度押して、離した時にロック解除)
2. キーレイアウトを見直して変更しました
現在のレイアウトは以下のとおりです。なおPCキーはApp (Menu) にアサインしているので日本語109キーボード必須となります。
未アサインキーがあっても意味が無い気がしたので重複してでも全キーに何らかのアサインを行いました1。106キーボードでも全キー叩けるようにしようかと思ったけど、スペースの右側の並びがどうもしっくり来なかったので結局AppにPCをアサインしています。テンキー=とテンキーカンマは、これはさすがにどうしようもないのでF11とF12にアサインしました。
STOPはScroll LockとPauseの両方にアサインしていますが、押しっ放し動作が必要な場合はScroll Lockを使って下さい。PS/2の仕様上、Pauseキーは押しっ放しが出来ません(押した瞬間に「押した」「離した」が出力されるので)
前述のとおり「CAPS」と「かな」はロックキーです。一度ON-OFFすると「押した」だけが通知されて、もう一度ON-OFFすると「離した」が通知されます。現在どちらの状態にあるかはLEDで判別可能です。なお「かな」はScroll Lock LEDを割り当てています
※左CTRLとCAPSの配置は逆の方がいい、と言う方がいましたらコメントで教えて下さい。
PageUpに「ROLL DOWN」をアサイン、PageDownに「ROLL UP」をアサインしています。(NEC系の伝統?)これも「逆の方がいい」と言う方はコメント下さい。
回路図再掲。点線部分はオプションで実装しなくても動きます。LEDはPS/2キーボードの操作にあわせて点滅します。POLYSWは自己復旧型のヒューズです。万一の場合の気休めに。
PC-8801 キーボード端子 (ミニDIN 5ピン)