技術情報

AVR用Cソース

 いわゆるWinAVRでコンパイルしています。Makefileでビルド実行してますが、作り方が甘いのでヘッダファイルを修正しただけではコンパイルしてくれません。Cソースは2本あって、その概要は次のようになっています。

 起動直後に実行されるプログラムで、本体プログラムをEPCS4(コンフィグROM)から読み出してブロックRAMに書き込み、ポート0を叩きます。このポートは起動直後のみリセットポートとして動くようになっています。リセットされるとROMが消えてそれまでのRAMがROMとして接続され、次のmzmain.cのプログラムが実行されるようになります。
 コンパイルして得られた.hexファイルは、QuartusIIのユーティリティで1行2バイトの変則HEXファイル(Altera HEXフォーマットというらしい)に変換しています。
 通常MZ-700の裏で実行されるプログラムです。キー入力でメニュー表示して動作する部分と、テープやフロッピーのようにバックグラウンドで動いてMZ-700のペリフェラルとして動作する部分があります。リアルタイムOSで動かすと楽そうなんですが、プログラムが大きくなりそうで普通に組んでいます。
 FATファイルシステムへのアクセスのためにえるむで公開されているFatFsを組み込んでいます。入手した時期の問題でVer.0.3を使用しています。
 コンパイル後、MZ用ROMデータなどといっしよにsrec_catプログラムで連結されてQuartusIIのプロジェクトに転送されます。これをQuartusIIのユーティリティで合成後のFPGAデータと合体させれば1chipMSXにダウンロード可能な.pofファイルになり、さらにこれをpof2pldコマンドによってPLDLOADコマンドでロード可能な.pldファイルを作れます。

(C) Nibbles Lab. 2007