MC68EZ328 DragonOne SBCでモニタプログラムが動きました

Electronics

DRAMのおかげで8MByteという広いメモリ空間ができました。まずはモニタプログラムを載せて自由自在にコントロールできるようにしてみますが、その前にシリアル入出力の確認を進めます。

Hello Worldを表示してみる

MC68EZ328のUART送信レジスタに文字コードを書き込むことで、シリアルターミナルに文字を表示することができます。テストプログラムをアセンブルし生成されたSレコードからBレコードに変換したあとに、ブートローダーで読み込ませて実行します。ソースはGitHubにコミットしておきました。

実行結果は以下のようになりました。

エコーバックをしてみる

次は入力の確認です。UART受信レジスタに読み込んだ文字をそのままUART送信レジスタに出力します。キーボードから入力した文字がそのままターミナルに表示されるはずです。

実行結果は以下のようになりました。

モニタプログラムを移植してみる

シンプルで移植が容易な68000用のモニタプログラムをGitHubで探したところ手頃なものが見つかりました。2015年にHayden Kroepfl (ChartreuseK)さんが自作の68Kブレッドボードコンピュータ用に作成したもののようです。

ROM用のモニタですが、アドレスを変更すれば、RAMでも動かせるはずです。入出力も1文字出力と1文字入力だけなので、先ほどテストしたルーチンをそのまま組み込めば良さそうです。このソースはEASy68K用なので簡単にアセンブルもできました。

移植したモニタをSレコードからBレコードに変換したあとに、ブートローダーで読み込ませたところ無事モニタが起動しました。メモリチェック機能もあるようです。

メモリダンプ、メモリ書き換え、プログラム実行という機能しかありませんが、まずは十分な内容です。

BBUGの方式に比較して表示速度も速くストレスがなくなりました。今回は最低限の修正しか行っていないので、メモリチェックの範囲の変更や、Sレコードの読み書き機能など拡張の余地はあるので、余力があればチャレンジしてみようと思います。

テストプログラムのソースや実際に動くBレコードはGitHubにあげておきました。

次はいよいよフラッシュメモリへの書き込みテストです。

タイトルとURLをコピーしました