ちょっと Tea Time!? なんちゃってVT100ターミナルを作成する(番外編) 2025.9.11
現在、昔懐かしCPM80を独立して動かせるように、MZ80化計画が進行しています。
その中で、キーボードについては廉価なメカニカルキーボードを改造して、RS232(UART)出力ができるようになりました。
モニターについても、WVGAをつかって、WORDMASTERが最低動くようなVT100のESCシーケンスの組み込みを、
本ちゃん前の準備運動で行いました。
せっかく、ここまでできたのだからMZ80計画の番外編として、なんちゃってVT100ターミナルも一つ仕上げておこうかと思います。
これがあれば、なにかと便利に使えるはずです。たとえばPICやPICOの動作確認用のターミナルなどです。
まあ、ほとんど作ることが主目的ですが。
何をどうする?
下記について行おうかと思っています。
1.全体の回路図の整理(一部、再製作も含む)
2.VT100のエスケープシーケンスの充実(いまは必要最小限)
3.キーボードとモニターの連結(今は個別で動いている)
とくに、3についてはキーボード出力のボーレイトは115200baudに固定しています。
これを1200〜460800くらいで可変にできればということです。まあ、1200baudなんて、
使いはしないかもしれません。また、460800なんて、まともに通信できるかなあ〜という心配もあります。
いずれにしても、キーボードの出力baudを変更したのなら、モニター側の受信Baudも同時に
変更できるようにしておく必要があります。そこで、両者の結合が必要です。
現状のままでは、モニターとキーボードは独立して動くことになるので、ボーレイトは固定です。
今回の製作で、モニタのタッチパネルをつかって、全体のボーレイトの変更を検討です。
朝令暮改?
モニターからキーボードの通信速度の変更を考えていましたが、
キーボードを単独で使う可能性も考えて、キーボード側で通信速度が変えられるように
変更です。折角なので、使わない[ALT]を活用です。
「CTRL」 + [ALT] + [1] : 115200baud
「CTRL」 + [ALT] + [2] : 38400baud
「CTRL」 + [ALT] + [3] : 19200baud
「CTRL」 + [ALT] + [4] : 9600baud
「CTRL」 + [ALT] + [5] : 2400baud
「CTRL」 + [ALT] + [6] : 1200baud
最高速度は115200baudでいいでしょう。これ以上速くてもZ80がついて来られませんからね。
ということで、変更後のソースです。 keyboard_uart_47Q43_v10.c (後でバグ判明し、修正しています)
キーボード側の回路図については、キーボードの改造ページに記載しておきましょう。
#こちらに、ソフトの最新版を入れています。
モニター(表示)側の回路図 2025.9.11
回路図を書き直しです。ホスト(CPM80)との接続コネクタならびに、キーボードとの接続コネクタを追加した形になっています。
3.3Vの電源はDCDCを使いました。このDCDCですが、面倒なことに電圧調整VRの設定が最初は最大近くになっています。
電源投入してから電圧を調整しようとしたら、火を吹きそうです。最初に最小値(しかも一番右回しいっぱいと逆)にしておく必要があります。
モニター側の回路図を書き直しました。
モニター基板にあわせて、再製作です。
秋月のユニバーサル基板に実装です。部品点数は多くはありません。
半田面の配線も少な目です。
モニター(WVGA)に接続してときに、基板がすべて隠れるようにしました。
モニター基板の上側に必要なコネクタやスイッチ(BOOT,RESET)がアクセスできるようにしています。
いい感じになってきました
CPM80(ホスト)、モニター、キーボードを接続して動かします。
これで一応完結したマイコンになりました。
これで独立したマイコンになりました。
しかし、改めて61キーの英語版キーボードを叩いてみると、感が狂います。
ブラインドタッチはあまりできないけど、ダブルコロン「:」を打つときは、日本語キーボードでは、
単に「:」を押せばいいのですが、英語版だとSHIFTキーも必要です。その他もすこし、
キーの配列が違うので、戸惑ったりします。
さて、あとはソフトの充実です。その前に、モニターのフレームとスタンドが必要だなあ〜。
流石に基板のままというわけにはいかないでしょう。
やっつけ仕事!
アクリルの端材があるので、それをつかってやっつけ仕事ですがモニターの固定台をつくりましょう。
で、必要なのがアクリル用の接着剤ですが、久しくつかっていなかったので、箱をあけて取り出したら、
見事に蒸発しています。ほとんど使っていなかったのになあ〜。
この接着剤って、無茶苦茶揮発性が高くて、蓋を開けたら樹脂の中蓋がポンと勝手に吹き飛ぶくらいです。
面倒でも、使わないときは冷蔵庫に保管しなくちゃいけないなあ〜。
とりあえず、急ぎAMAZONで注文です。
久しぶりに箱をあけたら、接着剤が完全に蒸発していました。
アクリルのプレートにWVGAと制御基板を共に固定するのですが、両者がコネクタで
結合されていますので、穴の位置あわせが必要です。最初は、手作業として穴を大き目に
すればいいかなあ〜と思いましたが、RS232の配線の取り出し穴も必要なので、
CADで作図です。これをつかえば、穴位置はum単位で制御できますから、
ボルトの穴径もギリギリであけることができます。
図面作成が終わったら、さっそくアクリル板の切り出しです。
ちょっと面倒でしたが、CADで穴位置を作図です。
一番面倒なプレート材の切り出しができました。
あとは適当に支持板を切り出して、接着剤をつかって組み立てです。
こんな感じで、WVGAの固定台ができました。
ピッタシと収まりました。
2枚の基板の固定ネジ位置もバッチリです。
-
WVGAの固定台があると、位置も少し高くなるので見やすくなりました。
ソフトはまだまだだあ〜
WORDMASTER自体は問題なく使えるようになりましたが、キャラクターベースのレトロゲーム
をやると、やはり少し表示が異なる部分がでるようです。エスケープシーケンスだけではなく、
ASCII CODE自体のコード解釈もできるようにしないといけないようです。しかし、「垂直タブ」
なんて、つかうなよ〜という感じがしないわけではありません。
あと、高速に連続文字表示をさせると受信バッファーが溢れます。
受信バッファーは1000バイト用意していましたが、思いっきって100kB程度確保してもいいかもです。
まだまだ、完成にはほど遠いなあ〜。
(つづく)