電子趣味の部屋

電子系のガジェットやアプリ開発等の趣味の話題を書いてます

CASIO VX-4 でグラフィック表示

前回CASIO VX-4のメモリを増設してからちょっと遊んでみました。
SHARP PC-G850Vと違い、実行モードとプログラムモードの区別がないので、ソースを書いてそのまま"RUN"で実行できるところが良いです。表示文字数は少ないもののMSXのBASICのように扱うことができます。

VX-4はグラフィックの描写の命令はありませんが、ユーザ定義の文字パターンを定義することができます。
ユーザが定義できるの文字パターンは4文字分(キャラクターコード:252~255)しかありませんが、一度表示したものはスクロールをしない限りパターン定義を変えてもそのまま表示し続けるため、これを上手く利用するとグラフィックを描くことができます。

試しに下のようなソースコードを描いてみました。

10 CLS
20 DEFCHR$(252)="00040C142444"
30 LOCATE 1,1
40 PRINT CHR$(252)
50 DEFCHR$(252)="4424140C0400"
60 LOCATE 2,1
70 PRINT CHR$(252)
80 DEFCHR$(252)="00003C242424"
90 LOCATE 3,1
100 PRINT CHR$(252)
110 DEFCHR$(252)="2424243C0000"
120 LOCATE 4,1
130 PRINT CHR$(252)
140 DEFCHR$(252)="7C82AAAA827C"
150 LOCATE 5,1
160 PRINT CHR$(252)
170 IF INKEY$="" THEN GOTO 170

キャラクターコード252の文字に対してパターン定義を変えながら表示してます。
これを実行すると下の画像のように表示されます。
何かキーを押すと終了します。


パターン定義について

キャラクターコード:252~255に対して文字パターンを定義することができます。
1文字は縦8ドット、横6ドットで構成されます。
パターン定義はDEFCHR$命令を使い、縦8ドット毎にビットを定義して16進数6バイトを12文字で定義します。
例えば先ほどの三角形の左半分の定義の場合


□□□□□□
□□□□□■
□□□□■□
□□□■□□
□□■□□□
□■■■■■
□□□□□□
□□□□□□

1列目=00000000b=00h
2列目=00000100b=04h
3列目=00001100b=0Ch
4列目=00010100b=14h
5列目=00100100b=24h
6列目=01000100b=44h

このパターンをキャラクターコード252の文字に定義する場合
DEFCHR$(252)="00040C142444"

となります。

今までVX-4はただのコレクションでしたので普通にプログラムを組んだのは初めてでした。
色々わかると楽しくなってきます。