ふっ、ふっ、ふうせんぅ~~~🎈😍←風船大好き
RUN すると様々な色の風船が飛びます。
MSX は VPOKE で 256 文字全てのキャラクターを変更できます。
SCREEN 1 の場合、コード×8~コード×8+7 を置き換えます。
更に SCREEN 1 では 8 文字おきに色を変更できます。
&H2000+コード÷8 で、値は文字色×16+背景色です。
そのため、風船の丸い部分はは 8 文字おきに置き換えてあります。
COLOR 1 の黒を背景にして 2~15 を風船の色に使っています。
MSX2 以降であれば COLOR=(1,R,G,B) を使っても良いですね。
IchigoJam BASIC/C 言語・IchigoLatte(javaScript)/Ruby/FORTH・
IchigonQuest 版もあります。
上の BASIC 版風船に加えて、次を実現しています。
常に VRAM の複数バイトを一度に切り替える必要があるため、
さすがに BASIC では遅くなってしまうので、
z88dk を使用して C 言語で生成し、マシン語で動作させています。
zcc +msx -lndos -create-app -subtype=disk -bn balloons balloons.c
BALLOONS.MSX が生成したマシン語の実行ファイルです。
BASIC より BLOAD"BALLOONS.MSX",R で実行します。
スペースキーで終了し、BASIC に戻ります。
これを見て、「MSX-DOS の実行ファイルだとスクリーンセーバになるのでは?」
と思った人のいるのでは?……はい、そう思って BALLOONS.COM も作成しました。
しかし、MSX-DOS では 0100h から実行ファイルが入りますが、
MSX の BIOS も同じ番地にあります。
そのためそのままでは動作せず、MSX-DOS 向けにプログラムの改修を行っています。
また、任意のキーでプログラムを終了できるようにしてあります。