キーボードを接続
2012年4月16日
MZ80Kレプリカに、PS/2キーボードを接続し、動作を確認した。これで一応、入力と出力の両方を持つ、コンピューターの基本的な形は出来上がったことになる。
MZ80Kのキー配列は、今のPCのJIS配列(106など)に近いのだが、残念ながら手元にはUS-ASCII(101)のものしかない。そこで、MZ80Kのキー配列を印刷して、キートップに貼り付けることにした。これがなかなか、雰囲気がよく出て、気に入っている。MZ80Kのキー配列データーは、Enriさんのページからいただいた。この方が発信なさっている情報は、かなり参考にさせていただいている。感謝。
最近は、デスクトップPCへ接続するキーボードと言えば、USBインターフェースのものが主流であるが、今回は少し古いPS/2形式のものを選択した。USBホストドライバーの組み込みをマスターすれば、USBのものも使えるように改変する可能性はある。
当初、8255をエミュレートしているPIC18F14K22にPS/2キーボードを接続する予定であった。しかし、この石はZ80からの指令がいつ来るかわからず、連続して指令が来た場合にそちらの処理に忙しくて他の仕事が出来なくなる可能性がある。加えて、PCとのUSB接続用にもう一つ石を追加する予定であったので、PS/2キーボードとの連絡は、その新しい石(PIC18F14K50)に行わせることにした。PIC18F14K22とPIC18F14K50との間は、シリアルで通信を行う。PICはシリアル通信用の回路を内蔵しているので、シリアル通信に費やされるCPUのリソースは最小限で済む。現在のMZ80Kレプリカの姿は、下のとおり。
唯一開いていた左上のスペースに、PIC18F14K50を設置した。もうこれ以上、新たな石を追加するスペースはなくなったが、回路としては完成に近づいているので、大丈夫だろう。
早速、接続したキーボードから文字を打ち込んでみた。「HELLO MZ80K WORLD!」 「MZ80K ノ セカイヘ ヨウコソ!」と打ち込んでみると、興味深い画面に。
どうやらこのモニターは、メモリダンプとメモリへの書き込み機能を持っているらしい。「MZ80K」と入力した際の最初の「M」が、メモリダンプ命令だと認識されたようだ。プログラムを実行する「GOTO」命令も使えるはず。ということは、マシン語を用いたプログラムの作成と実行なら可能になったということになる。I/Oポートは丸々開いているし、色々遊べるかもしれない。
ところで、もともとPIC18F14K22は内臓のRCオシレーターで動かしていたのだが、実行速度の精度に不安を覚えたので、Z80との通信を確実に行わせる目的で、PIC12F683から出る16MHzのクロックで動かすことにした。これにより、赤/緑LEDを接続するポートがなくなったが、この2色LEDについては後でよく考えて、必ず実装するようにしたいと思っている。
さあ、次はカセットテープインターフェース部分の実装だ。
MZ80Kのキー配列は、今のPCのJIS配列(106など)に近いのだが、残念ながら手元にはUS-ASCII(101)のものしかない。そこで、MZ80Kのキー配列を印刷して、キートップに貼り付けることにした。これがなかなか、雰囲気がよく出て、気に入っている。MZ80Kのキー配列データーは、Enriさんのページからいただいた。この方が発信なさっている情報は、かなり参考にさせていただいている。感謝。
最近は、デスクトップPCへ接続するキーボードと言えば、USBインターフェースのものが主流であるが、今回は少し古いPS/2形式のものを選択した。USBホストドライバーの組み込みをマスターすれば、USBのものも使えるように改変する可能性はある。
当初、8255をエミュレートしているPIC18F14K22にPS/2キーボードを接続する予定であった。しかし、この石はZ80からの指令がいつ来るかわからず、連続して指令が来た場合にそちらの処理に忙しくて他の仕事が出来なくなる可能性がある。加えて、PCとのUSB接続用にもう一つ石を追加する予定であったので、PS/2キーボードとの連絡は、その新しい石(PIC18F14K50)に行わせることにした。PIC18F14K22とPIC18F14K50との間は、シリアルで通信を行う。PICはシリアル通信用の回路を内蔵しているので、シリアル通信に費やされるCPUのリソースは最小限で済む。現在のMZ80Kレプリカの姿は、下のとおり。
唯一開いていた左上のスペースに、PIC18F14K50を設置した。もうこれ以上、新たな石を追加するスペースはなくなったが、回路としては完成に近づいているので、大丈夫だろう。
早速、接続したキーボードから文字を打ち込んでみた。「HELLO MZ80K WORLD!」 「MZ80K ノ セカイヘ ヨウコソ!」と打ち込んでみると、興味深い画面に。
どうやらこのモニターは、メモリダンプとメモリへの書き込み機能を持っているらしい。「MZ80K」と入力した際の最初の「M」が、メモリダンプ命令だと認識されたようだ。プログラムを実行する「GOTO」命令も使えるはず。ということは、マシン語を用いたプログラムの作成と実行なら可能になったということになる。I/Oポートは丸々開いているし、色々遊べるかもしれない。
ところで、もともとPIC18F14K22は内臓のRCオシレーターで動かしていたのだが、実行速度の精度に不安を覚えたので、Z80との通信を確実に行わせる目的で、PIC12F683から出る16MHzのクロックで動かすことにした。これにより、赤/緑LEDを接続するポートがなくなったが、この2色LEDについては後でよく考えて、必ず実装するようにしたいと思っている。
さあ、次はカセットテープインターフェース部分の実装だ。