今回は、Laboratoryテーマ12「「Ctrl」+「STOP」が押されたか調べたい」です。
Laboratoryの続きは3DダンジョンRPG完成後と言っていたのですが、マウス動かなくてストレスですので、気分転換も兼ねて追加した簡単なテーマを全部一気に。
現実逃避ともいう…。
マシン語を起動させると、プログラムが終了するまで中断させることは出来ません。
そこで、BASICと同じように「Ctrl」+「STOP」が押されたらプログラム中断するように、メインループに組み込んで使います。
今回は特に難しいことはありません。
ただ、そういう機能があることを知らないと、結構面倒臭いことをしないといけないので、機能を紹介します。
MSXには、どのMSXでも必ず動作するプログラムが作れるように「BIOS」(バイオス、Basic Input Output System)というサブルーチン群が用意されています。
そのBIOSに「Ctrl」+「STOP」が押されたか調べるサブルーチンが用意されています。
BIOSの使い方は簡単で、必要なデータを所定のレジスタに設定し、目的に応じたBIOSをコールするだけです。
ラベル名 | アドレス | 変化するレジスタ | 使い方 |
BREAKX | &H00B7 | AF | コールした時、「Ctrl」+「STOP」が押されていればCyフラグがセット、押されていなければCyフラグがリセットされる。 |
これまでの私自作のサンプルでも、当たり前のように使っています。
410行で、「Ctrl」+「STOP」が押されたか調べ、押されていればBASICに返ってきます。
では、次回はLaboratoryテーマ13「「GRAPH」キーが押されたか調べたい」です。