[IMAGE]看板

私だってX-MiNTのキーボードをPCで使いたい

INDEX


暗い過去(あるいは長い背景説明)

遡る事約6年は1994年の1月、fj.sys.pc98でX-MiNTのキーボードの話題が流 れた。それは、一部マニアの間で1992年頃には既に実現されていた「史上最 強X-MiNTのキーボードをNEC PC98で使う」という事に関してのものだった。

当時、切れる寸前の学生であった私はNEC PC-9801nsを使っていた。 [IMAGE]今もシリアル端末として現役 流行にのっ かってCyrix 486SLC(私の買った石はTIブランドのTx 486SLCだが)に換装した り、クロックアップしたり、RGB出力化改造したりしたナレの果てである。

しかし、いくら内部をいぢったところでキータッチは変更できない。

私の心の中のメインマシンは常にSHARP X68000だったのだが、研究室の環境と の互換性のためにnsを使用する頻度は大きくなっていた。

nsのキーはさほど悪いものではなかったが、ソフトタッチできない性格なのであちこち手の入った マシンの事を考えると若干の不安を覚えた。外部キーボードが必要だ。

そこで冒頭の話題に戻る。

[IMAGE]心のメインマシン いつものようにNewsを読んでいた私は、X-MiNT用のキーボードがドライバの導 入によりPC98で使える事、ソ○マップの中古屋に2000円で出ている事を知った のである。それは高岳ブランドの奴ではなく、JCCのものらしかった。OEM?そ れにしても、どこから出てきたのだろう?リースバック品か何かから取り外し たジャンクだったのだろうか。しかし、そんなこたーどうでもいい。

おお!安くて個性的な外付けキーボードになるじゃないか!もし2台あったら 同室の先輩の分も買ってくることを約束し、私はその足で秋葉へと向かった。

あった。但し1台のみ。しかもSetupのキートップが無い。多少の事には目をつ むって購入。いそいそと研究室にとって返した。 [IMAGE]手に入れたモノ

milkeyというドライバを入手、早速nsに挿して使ってみる…動かん!慌てた私 は初期不良(元々ジャンクだがB-)を疑い、そこら辺に転がっていたPC9801DAで 同様に試してみると…動く!

何度確認してみてもnsではNG。遂に思い余ってNewsに投稿してみると、noteの キーボードインタフェースは8251のサブセットであり、通信パラメータの変更 ができないためmilkeyによってもMiNTのキーボードは使用不能であるとのフォ ローが付いた。なんてこったい!

PC98は19.2kbps 8bit odd parity、MiNTは19.2kbps 8bit none parity。パリ ティビットを削るようなコンバータを挟めば…クロック作るだろ、シフトレジ スタに入れて…うー面倒だ。そうそう、CPUとSIO入れりゃ…余計複雑にしてど ーする!それに、どー考えてもコスト的に納得できん。

X-MiNTキーボードは部屋の片隅に。


再び薄灯りが…

1998年5月。私は既にPC互換機な暮らしに落ちぶれていた。そんな時出会った のが、titechの高村氏による「XMiNTのキーボードをPS/2キーボードに」のWEB pageであった。

興味深いものではあったが、PICという何や知らんマイコンを使わねばならな いというのが引っかかった。開発環境を揃えるのに初期コストが大きいなぁ…。 やめとこ。

しかし、この際に「PIC」、「MiNTのキーボード」という単語が新たな意味を 持って脳裏に刻まれることになった。


虎義で発見

私はかなりの立ち読みstである。そんなわけで元電気系学生としては毎号トラ 技をチェックせざるを得ない。

1999年8月号は私の記憶野を激しく刺激した。PICマイコンでNEC PC98キーボー ドをPS/2キーボードに変換するアダプタが掲載されているではないか!部品数 は少ないし、ソースも公開されるとある。素晴らしい!

すかさず後ろの秋月電商の広告を探す。5700円でプログラマキットがあるるる る。

こいつをサクサクっと作ってプログラムをちょいちょいっと変更すれば…MiNT キーボードを長い眠りから呼び醒ますことが可能だ。久しぶりに冷え切ったコ テに火を入れる時が来たか。


秋葉へ

とある試験が終了した翌日、7月31日に私は秋葉へ向かった。目的 は秋月のPICプログラマキットと若干の部品である。

暑い。ここのところ猛暑続きの上に都会はコンクリートジャングルである。ふ らふらしながらも巡回コースをなぞりはじめた。

結構安い値段で(事実、PICプログラマキットよりも安価で)良さげなMiniキー ボードが売っている。若干心惹かれるものがあったが、「いつからただデキア イのモノを買って満足するようになったんだ」と自らを叱咤して誘惑を振り払 う。

千石でmini DIN 6pinなコネクタを探す。ケーブル付きのやつは無い。コネク タだけのものは200円。なんか納得が行かないので道路側に出ていたPS2延長ケー ブル300円を購入。切って使うことにする。

mini DIN 8pinのメスは何故か家に転がっていたし、2SC1815や抵抗、コンデン サ、基板なども探したらあったので後はPICプログラマ、水晶、ソケットだ。 秋月へ向かう。

何も考えずにPIC16F84-10MHzを1個。プログラマキットにも1個付いているらし いから当面の需要はこれでOKだろう。そうそう、水晶水晶。セラロックが40円 で売ってるな。部品数/半田付け箇所を減らせるし、まぁ問題無いだろうから こいつでいくか。これで後はプログラマキットさえ購入すれば買物完了だが。

ここで悩んだのが5700円にするか7000円にするかである。7000円にすれば先 に紹介した高村氏によるMiNTキーボード改造にも使われている PIC16C74(40pin)も焼ける。差額1300円をどう見るか…。40pin TEXTな奴が単 品の値段でそれくらいはしてしまう事を考えると買ってもいいのかも知れない が…。懐が寂しいので5700円にする。

しかーし!後で気づいたのだが、単にPIC 16F84を焼くだけだったら同じ秋月 のAKI-PICプラチナキットPIC16F84開発用 (3000円)でもOKだったのだ。うう〜ん。思いつきだけが先行してしまい、重要 なところを見逃してしまっていた…。

さて、一応目的は果たした。でも念の為内容を確認しておかねば。私はザコ館 の入口近くで腰を下ろしてプログラマキットの袋を開けて説明書を読んだ。げ。 15Vが必要じゃないか。書き込み電圧が必要そうなのは予想していたが、5Vか らの昇圧回路かなんかも含まれていると思ってたよ。15Vの方から5Vを作る訳 ね…そりゃその方が安いけどさ〜。

[IMAGE]200円の電源 結論は先送りして秋葉を放浪する私。どこかに安い電源は売ってねーかなー? 丹青等の通常のコースでは発見できない。困った。DCコンバータも作んなきゃ ならんのか。それとも電源を改造すっか。いづれにせよ金が余計にかかる。

ふと立ち寄った道端の露店。「この中は全部200円」な札の付いた箱の中に転 がっていたいくつかの電源の中に5V、+15V、-15Vなものが。早速買う。

久しぶりに散財して秋葉を後に。


ハードな格闘の末に

クリーナーのスポンジはカチカチに乾いていた。コテ先はかろうじて錆ついて はいない。半田付けなんてどれくらいぶりだろう。私はPICプログラマキット を製作しはじめた。

ガンガン半田付け。部屋に転がっていた25pin D-subのハウジングとフラット ケーブルの切れっぱしを加えて232Cとの接続ケーブルを作り、DCジャックを基 板上の余白に固定して完成。早速PCを起動してライターソフトを動かしてみる。

[IMAGE]プログラマ完成 ふむふむ。com1通信完了と。当然だが。

そして次にまっさらのPIC16F84をセットしてBrankチェックだ。!!!買って きたばかりのくせにNot Brankだとー!何々、Vppが低いと読み書きに失敗する 場合があるだと。無負荷で測った時はちゃんと15V出てたんだがなぁ。読みな がらテスターをあててもやっぱり15Vは出てる。うーむ。しばし基板とにらめっ こ。

いーや、書いてみよー。「成功」。なんだ。出来るじゃねーか。

念の為、昔1レール買ったけどその後全く使っていない7セグLEDを1,2,3,4,5と 光らせるsoft/hardをちょろっと作ってみる。おお。ちょっと感動。18pinのマ イコンか〜。開発環境も安く揃うし。ディジタルな趣味の電子工作にとっては 革命的なデバイスだなぁ。

[IMAGE]完成したKBCONV 表 [IMAGE]完成したKBCONV 裏
さて、それではKBCONVの製作だ。ICソケットやセラロックを一つづつしか買っ てこなかったため、テスト用の基板から7セグを外して〜という具合。また、 基板も長い間空気中に放置されていたため、ランドの酸化が激しい上に半田が 安物なのでのりが悪い。せめてフラックスとリムーバを買っておけばなぁ。

やっと完成。トラ技の誌面の写真ほどは詰め込まなかった。取り敢えずミスの 無い製作を優先だ。なんとなれば、もう1度改めて作り直してもそう大したこと ではないし。

[IMAGE]PICに帯を噛ます 今はもう使われていないPC9801VM2のキーボードを用意。 CQ出版社からgetして きたKBCONV.HEXを16F84に焼き込んでソケットにセット。安全に抜けるよう に紙をセロテープで補強した帯をかますのを忘れない。挿抜ツールなんか持っ てないからなぁ。

PCに接続しON!流石にHDDから常用環境を起動する度胸はない。FDDから裸のDOS が起動するのを待つ

ほうほう。動く動く。面白い。98のキーボードでサクサク入力できるよ。良し 良し。これでハードは完璧だな。

後はちょろっとソースを改変するだけだだだだ。


SOFTな着陸

まずはパリティ生成の削除とキーマップの変更だな。 ざっとソースを眺めたと ころ、これだけでも結構動くはずだ。ふむふむ。PICって35しか命令がないの か。「条件分岐」は条件による次命令スキップとgotoを組み合わせたりする訳 ね。Z,C懐かしいフラグ。

資料はPICプログラマキットに附属していた命令セットの概要 が記載されたB4 1枚のコピーとKBCONVのソース、窓の杜から引っ張ってきた milkeyのソースである。推測と附属の16F84シミュレータでのテストで少しづ つながらなんとなく理解していく。

無造作に第1弾が出来る。おそるおそるテスト。今度も裸のDOS起動Floppyだ。

キーを押してみる。おお!文字が出る。あれれ、止まらない。ビープ音。コマ ンドラインじゃテストには適さないなぁ。仕方無くgetchしてそのコードを printfするテストプログラムを作り、autoexec.batで起動することにする。

どうもちゃんとBreakコードがPC側に届いていないようだ。おかしいなぁ。ひょっ としてMiNTキーボードからちゃんとBreakコードが出ていない?どーすっか。ロ ジアナとかプロトコルアナライザとかICEなんてのがありゃ〜一発のはずだけ どなぁ。しゃーねーから空いたI/Oピンの出力をテスタで観察するか。ふむふ む 。一応MakeもBreakもMiNTキーボードから受け取っているな…なんでだろう。

どう考えても分からん。うううう。ソースを追う。あれ、これじゃぁ Make/Breakが逆じゃねーか。記事を読む。ううん。記事の言ってる事とソース が語る事が違う。一路図書館へ。PC98のテクニカルハンドブックで確 認。やはりソースが正しい。

記事に振り回されたが、1命令書き加えるだけで正しい動作に。

後はSHIFT/CAPS/CTRL等の特殊キーの為のコードの処理を書き換えor削除すれば OK。少しの変更で問題無しの筈。楽勝楽勝。そしてアセンブル、書き込み。さ て、テストだ。

ふむふむ。SHIFTもきくしCAPS/CTRLもOKと。出来た出来た。

最後の仕上げとしてLEDのコントロールだな。やっぱCaps LockとScroll Lock の時にはちゃんとLEDが光らないと。

[IMAGE]ちゃんと光るインジケータ indicator set/resetコマンド処理ルーチンにLEDの点灯/消 灯のコードを加える。Scroll Lock/Num Lockがどのbitなのかは資料がなかっ たが、CAPSがbit2なのでbit0と1だとアタリをつける。

ついたついた。起動時にNum Lockが点灯するのは正常に動作してる証。Capsも 効くよねぇ〜。あれ、駄目だ。ううむ。

試行錯誤の末、MiNTキーボードへのLEDコントロール命令は適当なwaitを置か ないとうまくいかない事が分かる。ソフトでやってるシリアル送信に問題があ るのか、MiNTキーボードの仕様によるのかは不明だが、とにかく1ms程度の waitをかますことで解決。

仕上げに返すキーボードIDをUS101キー(41abh)に。これで私もASCIIキーボー ドユーザーさ。


  1. 本文は筆者の特定環境での実験結果を報告するものであり、一般にその結 果を保証するものではありません。
  2. この内容により生じる如何なる損害に対しても筆者は責任を負いません。
  3. 本文中の商品名は一般に登録商標です。
御意見も御希望も受け付けてはいませんが、筆者へのmailはこちら