前回にもちょっとふれましたが、BASICプログラムをROM化できるのを知ったのでSDカードからの起動にチャレンジしたくなりました。BASICプログラムは様々なワークエリアの書き換えを行いながら実行されるので、マシン語のように単純にロードして実行というわけにはいきません。ワークエリアに正しい値を入れてから、BASICの実行エントリへ飛ぶ必要があります。BASICの内部動作に関してはあまり詳細な情報が . . . 本文を読む
前回、ATmega328Pを使ったSDカード読み書きデバイスのソフトウェアが完成しました。作った目的はz88dkでコンパイル後に作られるcas形式のファイルを手早く実行したかったからです。z88dkは多機能でMSXの場合、カセットやフロッピー以外にROMカートリッジを作るためのromファイルも出力できます。このromファイル、MSXのフラッシュカートリッジなどを持ってなければ利用価値はないと思って . . . 本文を読む
前回でSDカード読み書きの部分が完成したので、最後にファイルのリネームと削除ルーチンを追加します。今回追加するコマンドは以下の2つです。SDファイルのリネーム IPL R "旧ファイル名","新ファイル名"SDファイルの削除 IPL K "ファイル名"このコマンドのプログラム自体は難しいものではないのですが、Arduino IDEのSDライブラリにはリネーム機能がないのでファイルを別名でコ . . . 本文を読む
前回までにMSXとATmega328Pの送受信ルーチンが完成したので、いよいよ肝心なATmega経由でのSDカード読み書きを実装していきたいと思います。プログラムの前に決めておかなければならないのが、読み書きするファイルのフォーマットをどうするかです。一番行いたいことは、PCにインストールされているz88dkで作成したプログラムをそのままSDに書き込んでMSX側で実行させるということなので、z88 . . . 本文を読む
前回MSXのBASICコマンドのフックを書き換えて、BASICコマンドで自作のプログラムを実行できるようにしました。そこで前回のプログラムにATmega328Pとの送受信ルーチンを実装して、ATmega経由でのSDカード読み書きを行えるようにしたいと思います。まずはATmega328Pとの配線ですが、以前に送受信テストをしたときと同じです。デバッグのためにOLEDもそのまま接続してあります。さらに . . . 本文を読む