BIOS!よく聞きます。
詳しい意味は最近知りました;
マシン語では必要になってくるというか、使うととても便利なもの
だそうです。
MSXのROMには、BASICインタープリタとBIOSが入っています。
BASICインタープリタは、BASICプログラムを翻訳しMSXで動くように
するもの。(BASICは、いちいち翻訳しているから遅い)
BIOSは、画面に文字を出したり、キーボードが押されているか調べたり、
様々な仕事を実行します。
そのBIOSルーチンをコールしてやれば、音を出したり、文字を画面に出したり
できるそうです。
マシン語なんて、とても単純な命令しかないし、どうやってゲームをつくるの
だろう?とても大変ではないんだろうか?と
不思議でしたが、BIOSルーチンを利用していたんですね!
勉強リポートが、アセンブラの命令文が LD しかやっていない状態で、
BASICの中でマシン語を使うってことをやり始めて大丈夫か?と
思われたかもしれません。
BASICゲームに使うマシン語は、とても簡単なBIOSルーチンが中心なのです!
もちろん他の命令文も使いますが、それほど難しくないようです。
BIOSの使い方
BIOSルーチンは、決められたアドレスをコールするだけで使用できます。
例えば、
CALL 00C0H
とすれば、ビープ音がでます!
おお、簡単!
そんな単純なものだけではなくて、
画面に文字(1文字のみ)を表示するは
CALL 00A2H
です。
その時、どんな文字を表示できるのか?ですが、
Aレジスタに入っているキャラクターコードを表示します。
だいたいがこんな感じみたいで、いくつかのレジスタに入っている値を
利用して、ある機能を実現しているようです。
返り値がある場合は、結果が、あるレジスタに入れられたりします。
だからとりあえず簡単なものは、LDでレジスタに値をいれることができれば、
BIOSルーチンは使うことができるのです!
BASICゲームでマシン語を使う場合に一番使いたいBIOSルーチンは、
1.VRAMからメモリへブロック転送する
2.メモリからVRAMへブロック転送する
です。
これができるとスクロールとか、画面をぱっと表示することができるはずです。
とりあえずはこれができるのが一番の目標です。
マシン語の中でも、BIOSを使うのは簡単そうです。
はやく、実装したい〜。
今日のところはここまでにしておきます。
では〜。
駿河屋
MSX1。
Canon製。メモリが64kバイトもあります。
スポンサーリンク