MSX2+ で採用された YJK 自然画 SCREEN 12・19268色 の表示を行います。
とはいっても全色を 1 画面できれいに表示するのは難しいので、
Y を固定にして、横を J、縦を K で変化するようにしました。
J・K が主に色相となるので、このような表示になります。
110 の C の値が Y に対応します。0*8~31*8 で変化させて試してみて下さい。
下に Y の値 3 種類を並べました。
RGB の色が分かる人は、この表示で YJK と RGB との対応が
なんとなく理解できる人もいるのではないでしょうか。
特に青(RGB での B)の扱いが特殊な点に注意を要します。
SCREEN 11 で表示したい場合は次を変更します。Y の変更は 0*16~15*16 です。
110 C=7*16:'Y*16
120 SCREEN 11
SCREEN 10 は COLOR 0~15 を通常の色コードで扱っているため、
YJK の線画は VPOKE を使う必要があります。
SCREEN 11・12 は COLOR 0~255 で、
VPOKE と同じ値で PSET・LINE 等を扱えます。
この方法を利用し、同じ値になる部分を
LINE で縦に線画する事で少し高速化しています。
実際他の多色データからプログラムで変換させるのが理想で、
YJK で直接線画するのは難しい仕組みだと改めて感じます。
自然画モード YJK で解説を入れました。
MSXPen では Alt+T で線画を速くできます。(最高 x8)
特に MSX2+ 実機だと表示に時間を要するので、
z88dk を用いて C 言語で作成してみました。
表示後、スペースキーで終了し、BASIC へ戻ります。
zcc +msx -lndos -create-app -subtype=disk -bn yjkcolor yjkcolor.c
YJKCOLOR.MSX が生成したマシン語の実行ファイルです。
BASIC より BLOAD"YJKCOLOR.MSX",R で実行します。