今回はマシン語のデバッグ方法を書きたいと思います。
このweb講座もいろいろな話をしてきました。
もうそろそろ、プログラミングに挑戦している方もいるのではないかと思います。
そこで、今回はマシン語のブレイクポイントのやり方を説明します。
マシン語のデバッグで部分的にプログラムが動作しているかを
確認することがあります。
マシン語を実行した後にBASICへ戻るとBASICプログラムの
動作に変わり、レジスタとフラグの情報が変わってしまいます。
PC言語ではブレイクポイントを指定して設定することでできますが、
マシン語の場合は常にマシン語を実行しているので、
ブレイクポイントの範囲をアドレスで指定します。
今回は重要なところなので赤でやってみました。
いつものようにインラインで書きアセンブラを実行します。
PASS2にEndAddress 0004と表示されますね。
次にマシン語モニタで配置するアドレスを指定します。
*RA000
今回はブレイクポイントですから、A000H+0004H=A004Hとなります。
Gコマンドの第二オプションに加えます。
*GA000,A004
これでA004Hで中断した時の情報が表示されました。
Aレジスタが3EH、CP 3EHですから、SZ HのZフラグが1になります。
PNCのCフラグは0ですね。
青画面を赤画面にしてみましたが、この赤はやはり安っぽい赤ですね。
MSX1の画面はパソコンが普及し始めた時代で、画面が赤になったり青になったりすることが
大変珍しいものでした。当時はグリーンディスプレイが多かったですからね。
これからはMSX2の配色で画面を飾るほうがよさそうです。
ファイナルファンタジーなどゲームの流行の色を見ると金属的なメタル色という感じがします。
メタル色の含まれていないゲームは何か古びたイメージがするんですね。
そんなところで、赤は深い赤とメタルのエッジできめていけば、グッとよい画面でしょうね。
そうすると、太字は論理演算で画像をかぶせただけでこんな欲張りな画面イメージになりました。
入力しながらフラグとかラベルを調べたりとちょっとおもしろいかもしれません。
次回はPSET.ASMの16ビットレジスタの加算のモジールを検証していきます。
勉強をするついでにお伝えできればと思います。そういえば、
16ビットで加算できることを知らないで8ビットで加算していきましたね。
★16ビット演算命令を使って加算処理を作る
http://www.geocities.jp/fullmsx2/u-yan/mon-basic.html
※コメント投稿者のブログIDはブログ作成者のみに通知されます