KM-Z80 midi 制作中
2019年7月15日
KM-Z80 の新しいシリーズ、midiを制作中。
特徴は、以下の通り:
1)Sharp MZ-80K 互換機
2)PIC32MX270F256Bを使用した、1チップ設計
3)USB メモリーを使って、プログラムのロードとセーブが可能
4)キーボードを内蔵しており、外付けキーボード(PS/2など)が不要
5)NTSC ビデオ出力(モノクロ;40x25文字)
6)将来的に、液晶表示にも対応予定
7)将来的に、MachiKania BASICも実行可能予定
今回の設計では、MZ-80Kと全く同じ横16個・縦5個のキーボードを実装し、48K RAMのフル装備で、USB メモリーによりプログラムを読み書き出来る仕様とした。いつもの通り、1チップでZ80のエミュレーション・ビデオ信号作製・キーボード読み取り・音出力まで全てこなす事を目指した。何とかDIP-28の石に収まっている。
回路図は以下の通り(クリックで拡大表示)。
(注:2019/08/03 回路図を微修正しました。緑LEDをRB0に繋がず、トランジスターを介してRB1に繋ぐようにしました。)
(注:2019-08-24 ver 0.3以降では、回路図が微修正されています。RB5とRB15の機能が入れ替わっているので、ご注意ください。)
(ver 0.4の記事を参照して下さい。)
なお、冒頭の写真ではキーボード部分が紙に印刷されたフェイクの様にも見えるが、紙の下は次の写真のようにタクトスイッチが並んでいて、ちゃんとキーボードとして機能する。
8つの信号線で78個のタクトスイッチの押下を判断するため、抵抗を用いて様々な電圧を作製し、それをA/Dコンバーターで読み込む事にした。何とか信号線の数が8本におさまり、かつ、誤作動無く動いている。PIC32のプログラムではキーボード読み取りに多少の時間がかかるが、それ用のルーチンはNTSCビデオシグナルの為の待ち時間を利用して実行しているため、パフォーマンスに影響することなく実装出来ている。また、今回の実装ではNTSCビデオシグナルの作製部分のコードを1から書き直し、表示のブレが全くない綺麗な表示にする事が出来た。
7月15日現在、とりあえずMZ-80Kが、ほぼ実機通り動くようになった。プログラムのロードとセーブは、カセットテープインターフェースの代りに、USB メモリーが使えるので、実機よりスピーディーで便利になっている。また、電源投下後にすでにKM-BASICがロードされているので、「GOTO$1200」とすれば、すぐにBASICが使用出来る仕様(いつもの通り)。
今後の予定としては、次のような事を考えている。
1)MZ-80Kミニチュア版のような格好いい筐体を作製
2)キーボード部のカバーを、紙から3Dプリンター製のものに変えて使いやすく
3)NTSCビデオだけでなく、液晶(ILI9341)にも対応
4)MachiKania BASICも使用出来るようにする
5)CP/Mも使用出来るようにする
バージョン 0.1 は、GitHubにてダウンロード出来ます。
(ver 0.4の記事を書きました。そちらもご参照ください。)
特徴は、以下の通り:
1)Sharp MZ-80K 互換機
2)PIC32MX270F256Bを使用した、1チップ設計
3)USB メモリーを使って、プログラムのロードとセーブが可能
4)キーボードを内蔵しており、外付けキーボード(PS/2など)が不要
5)NTSC ビデオ出力(モノクロ;40x25文字)
6)将来的に、液晶表示にも対応予定
7)将来的に、MachiKania BASICも実行可能予定
今回の設計では、MZ-80Kと全く同じ横16個・縦5個のキーボードを実装し、48K RAMのフル装備で、USB メモリーによりプログラムを読み書き出来る仕様とした。いつもの通り、1チップでZ80のエミュレーション・ビデオ信号作製・キーボード読み取り・音出力まで全てこなす事を目指した。何とかDIP-28の石に収まっている。
回路図は以下の通り(クリックで拡大表示)。
(注:2019/08/03 回路図を微修正しました。緑LEDをRB0に繋がず、トランジスターを介してRB1に繋ぐようにしました。)
(注:2019-08-24 ver 0.3以降では、回路図が微修正されています。RB5とRB15の機能が入れ替わっているので、ご注意ください。)
(ver 0.4の記事を参照して下さい。)
なお、冒頭の写真ではキーボード部分が紙に印刷されたフェイクの様にも見えるが、紙の下は次の写真のようにタクトスイッチが並んでいて、ちゃんとキーボードとして機能する。
8つの信号線で78個のタクトスイッチの押下を判断するため、抵抗を用いて様々な電圧を作製し、それをA/Dコンバーターで読み込む事にした。何とか信号線の数が8本におさまり、かつ、誤作動無く動いている。PIC32のプログラムではキーボード読み取りに多少の時間がかかるが、それ用のルーチンはNTSCビデオシグナルの為の待ち時間を利用して実行しているため、パフォーマンスに影響することなく実装出来ている。また、今回の実装ではNTSCビデオシグナルの作製部分のコードを1から書き直し、表示のブレが全くない綺麗な表示にする事が出来た。
7月15日現在、とりあえずMZ-80Kが、ほぼ実機通り動くようになった。プログラムのロードとセーブは、カセットテープインターフェースの代りに、USB メモリーが使えるので、実機よりスピーディーで便利になっている。また、電源投下後にすでにKM-BASICがロードされているので、「GOTO$1200」とすれば、すぐにBASICが使用出来る仕様(いつもの通り)。
今後の予定としては、次のような事を考えている。
1)MZ-80Kミニチュア版のような格好いい筐体を作製
2)キーボード部のカバーを、紙から3Dプリンター製のものに変えて使いやすく
3)NTSCビデオだけでなく、液晶(ILI9341)にも対応
4)MachiKania BASICも使用出来るようにする
5)CP/Mも使用出来るようにする
バージョン 0.1 は、GitHubにてダウンロード出来ます。
(ver 0.4の記事を書きました。そちらもご参照ください。)