風船

 

ふっ、ふっ、ふうせんぅ~~~🎈😍←風船大好き

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 版もあります。


風船 version 2 C 言語版

上の BASIC 版風船に加えて、次を実現しています。

  • MSX2 以降の VDP 縦スクロール機能を用いてスムーズな表示にしています。
  • 縦幅を 212 ドット(26.5 行)にしています。

常に VRAM の複数バイトを一度に切り替える必要があるため、

さすがに BASIC では遅くなってしまうので、
z88dk を使用して C 言語で生成し、マシン語で動作させています。

 

zcc +msx -lndos -create-app -subtype=disk -bn balloons balloons.c

 

BALLOONS.MSX が生成したマシン語の実行ファイルです。
BASIC より BLOAD"BALLOONS.MSX",R で実行します。

スペースキーで終了し、BASIC に戻ります。


風船 version 2 MSX-DOS .com 版

これを見て、「MSX-DOS の実行ファイルだとスクリーンセーバになるのでは?」
と思った人のいるのでは?……はい、そう思って BALLOONS.COM も作成しました。

 

しかし、MSX-DOS では 0100h から実行ファイルが入りますが、
MSX の BIOS も同じ番地にあります。

そのためそのままでは動作せず、MSX-DOS 向けにプログラムの改修を行っています。

また、任意のキーでプログラムを終了できるようにしてあります。

 

ソースファイル GitHub Gist