今回は、Laboratoryテーマ??12「「Ctrl」+「STOP」が押されたか調べたい」です。
現実逃避ともいう…。
マシン語を起動させると、プログラムが終了するまで中断させることは出来ません。
そこで、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」キーが押されたか調べたい」です。