KM-Z80 mini α version
2012年12月23日
KM-Z80 mini (PIC32MX150F128Bを使った、MZ-80K互換マイコン)最初の公開バージョン
一号機。期待通りの大きさに仕上げることができた。真ん中少し左の黒いICが、PIC32MX150F128B、その右、シルバーの箱がPS/2キーボードコネクタで、その下がビデオ及びサウンド出力用のコネクタ。あと主立った部品としては、一番左に8 MHzの水晶発振子、その少し上にPICkit3用のコネクタ。
回路図は、以下の通で、ほぼ決まり。
(C3, C4, C5はセラミックコンデンサーを使用のこと)
今後修正する可能性があるのは、発振子周り。ただし、2号機では水晶発振子ではなく、stand-aloneの発振器を用いることになる可能性が高い。安定した水晶発振は難しく、今回のものも試行錯誤で何とか発振するようになったが、ちょっとしたことですぐ発振が停止することがあるようだ。このあたりは、かなり吟味しないといけないことのようだし、あまりうまく行かないのなら、安定した発振器を使うのが確実。
使用ピンの割り振りを吟味して、後にPIC32MX250F128B(USBが使える)に移行することがスムーズにできるようにしてある。あと、RB0-RB7を開けてあるので、将来的にはMZ-80Kの中でこのI/Oポートを読み書きできるようにする予定。
Z80 CPUのエミュレーション部分は初め 1 MHz ぐらいでしか動いていなかったが、いろいろと改良を施した結果、現在のコードではほぼ 2 MHz で動くようになった。ただし、当初計画していた正確な 2 MHzでの動作はできなかった。これは、ビデオ信号など他の仕事にPICのリソースのかなり(4割ほど)を取られてしまうために、Z80のエミュレーションに回せる時間が足りなくなっているためである。40 MPISのDIP-PIC32MXでは、この辺が限界だと思われる。
MZ-80Kの機能のうち、大部分は実装した(RAMは、24K bytesを実装; GOTO$1200で、KM-BASICが使用可能)。まだ実装できていないもののうち、主なものはカセットテープインターフェースのみになった。上に述べたとおり、Z80 CPUが 2 MHz で正確に動いているわけではないので、テープからのデーターの読み取り部分と書き込み部分は、モニタープログラムを改変する必要があると思われる。
興味がおありの方は、こちらからダウンロードしてみてください。ライセンスは、とりあえず転載不可とします。ちゃんと出来上がったら、可能な部分はLGPLにして公開する予定です。
(バージョン0.3は、こちら)
一号機。期待通りの大きさに仕上げることができた。真ん中少し左の黒いICが、PIC32MX150F128B、その右、シルバーの箱がPS/2キーボードコネクタで、その下がビデオ及びサウンド出力用のコネクタ。あと主立った部品としては、一番左に8 MHzの水晶発振子、その少し上にPICkit3用のコネクタ。
回路図は、以下の通で、ほぼ決まり。
(C3, C4, C5はセラミックコンデンサーを使用のこと)
今後修正する可能性があるのは、発振子周り。ただし、2号機では水晶発振子ではなく、stand-aloneの発振器を用いることになる可能性が高い。安定した水晶発振は難しく、今回のものも試行錯誤で何とか発振するようになったが、ちょっとしたことですぐ発振が停止することがあるようだ。このあたりは、かなり吟味しないといけないことのようだし、あまりうまく行かないのなら、安定した発振器を使うのが確実。
使用ピンの割り振りを吟味して、後にPIC32MX250F128B(USBが使える)に移行することがスムーズにできるようにしてある。あと、RB0-RB7を開けてあるので、将来的にはMZ-80Kの中でこのI/Oポートを読み書きできるようにする予定。
Z80 CPUのエミュレーション部分は初め 1 MHz ぐらいでしか動いていなかったが、いろいろと改良を施した結果、現在のコードではほぼ 2 MHz で動くようになった。ただし、当初計画していた正確な 2 MHzでの動作はできなかった。これは、ビデオ信号など他の仕事にPICのリソースのかなり(4割ほど)を取られてしまうために、Z80のエミュレーションに回せる時間が足りなくなっているためである。40 MPISのDIP-PIC32MXでは、この辺が限界だと思われる。
MZ-80Kの機能のうち、大部分は実装した(RAMは、24K bytesを実装; GOTO$1200で、KM-BASICが使用可能)。まだ実装できていないもののうち、主なものはカセットテープインターフェースのみになった。上に述べたとおり、Z80 CPUが 2 MHz で正確に動いているわけではないので、テープからのデーターの読み取り部分と書き込み部分は、モニタープログラムを改変する必要があると思われる。
興味がおありの方は、こちらからダウンロードしてみてください。ライセンスは、とりあえず転載不可とします。ちゃんと出来上がったら、可能な部分はLGPLにして公開する予定です。
(バージョン0.3は、こちら)