SC-3000 BASIC(1)
2023.03.28
BASICプログラムを学ぶためにMSXのサンプルを参考にしながら打ち込んでみました。スプライト表示ができる単純なものです。がおもわぬ課題を見つけてしまいました。MAG命令を使ってスプライトの種類を指定するのですが値を変更しても効果がありません。例えばMAGに2を設定すると1ドットが2ビットで表示されるのでスプライトは2倍の大きさになるはずです。しかし、1ドットは1ビットのままです。ためしにエミュレータで実行してみるとちゃんと2倍の大きさになりました。うーん、これはVDPプログラムになにかしらの問題があるのかもしれません。他にもなにか課題があるのかもしれませんので、BASICのプログラムを通じて調査していきたいと思います。プログラムはこんな感じです。
100 M=2
110 SCREEN 2,2:CLS:MAG M
120 COLOR 15,4,(1,1)-(255,191),4
130 CURSOR 10,10:PRINT CHR$(17);"MAG";M
140 PATTERN S#0,"0E1D1F1F0E0810E0"
150 FOR I=0 TO 31
160 X=RND(1)*240:Y=RND(1)*176:C=RND(1)*15
170 GOSUB 200
180 NEXT I
190 GOTO 190
200 SPRITE I,(X,Y),0,C
210 RETURN

100 M=2
110 SCREEN 2,2:CLS:MAG M
120 COLOR 15,4,(1,1)-(255,191),4
130 CURSOR 10,10:PRINT CHR$(17);"MAG";M
140 PATTERN S#0,"0E1D1F1F0E0810E0"
150 FOR I=0 TO 31
160 X=RND(1)*240:Y=RND(1)*176:C=RND(1)*15
170 GOSUB 200
180 NEXT I
190 GOTO 190
200 SPRITE I,(X,Y),0,C
210 RETURN
