![](https://blogimg.goo.ne.jp/user_image/72/ac/c8205d068e152095eb79325bff799edb.jpg)
前回からヘルプを入れたチュートリアル風のアセンブラシステム制作に挑戦しています。
MSXにはSCREEN8では00~FFまで色をVRAMで表示させることができます。
よくMSX2でVRAM128KBという表示を見たことがありますね。
でも「RAMが64KBって何で少ないんだろう?」と思ったことがあります。
64KBは0000h~FFFFhまでのエリアなんです。8ビット機で計算の限界というわけです。
VRAMは64KB以下を切り替えて動作させています。
これがページでSCREEN5以降ではVRAM128KBをフル活用できます。
そこで、64KBを画像、64KBをデータとして使っていけることになります。(たぶん)
とりあえず、FULLMSXサイトにあるZ80の変換表のテキストから
MSXでヘルプメッセージを入力して作って、
アセンブラアシスタントの男の子と女の子を選択できる画面を作って
今はこの画面の制作になります。
VRAMの9000hから入力方式は16進数をデフォルトにしてみましょう。
9000hから9008hくらいの限られた範囲になっていますが、
次のページへとりあえず、進むようになっています。
アドレスの表示とニーモニックとマシン語の作成ができました。
入力が終わった行は暗くしてみました。構文はデタラメですが、
Z80のマシン語コード雰囲気はこんな感じになります。
例えばLD BC,nnの場合は正しくは
レジスタペアにすうちをいれます。というふうに表示します。
ここでEnterキーを押すとこのnnを入力するコンソールが出ます。
ここでhという16進数の指定の表示が出ます。
BCレジスタに数値をいれる命令のオブジェクトが決まったので
数値を入れるオペランドの設定に入ります。
将来的にはアスキーキャラクタのcとか
バイナリのbとか選択できるようにしたいです。
アセンブラではD000hを0D000hというきまりがありますが、
ここではD000と入力するとオートフォーマットされます。
このようにD000がZ80のマシン語コード化すると
00D0とリトルエンディアンになっているところもわかってくる。
こんなことも★
デモ版からテスト版に変えていきました。
ヘルプもこのようにチュートリアルのような感じが出てきました。
使った感じはオペコードがわかっていれば
思った命令が出てくるところがあります。
LDで検索するとLDが山のようにヒットしますので、
時間がかかります。
とは言ってもこのプログラムができれば
ハンドアセンブルよりも、かなりラクです!
※コメント投稿者のブログIDはブログ作成者のみに通知されます