
表示にアクションをつけてみよう - その1 -
表示にアクションをつけてみよう - その1 -
ただ文字を表示させるだけでは、つまらないですよね。 そこで、次は表示に、アクションをつけてみましょう。 このページでも、256X64dotの表示モジュールを使用した場合を例にあげます。
スクロール表示をさせてみよう
まずは、スクロールから試してみましょう。 「macro操師」"ヘルプ"のScrollを参考にしてください。
プログラム8
Sub Start()
Cursor 0 , 0
Cls
SetFont 16X32
KanjiOn
Print "アクション"
Sleep 4000 / 14 '・・・①
Cursor 256 , 0 '・・・②
Print "スクロール" '・・・③
Scroll 8 , 256 , 1 '・・・④
Sleep 2000 / 14
End Sub
このプログラムを実行すると、"アクション"という文字が表示されて、"スクロール"という文字が右から流れてきて、左端で停止します。
プログラムの仕組
8-①(Sleep 4000 / 14)は、処理を一定時間止める命令です。 Sleep 1にすると約14msec処理が止まりますので、Sleep 4000 / 14にすると"アクション"という表示が約4sec止まります。
8-②(Cursor 256 , 0)でカーソルを右に256dotずれた位置にあわせます。 256dotずれた位置だと、はみ出しているのではないかと思ってしまいそうですが、実は見えている画面の裏側に「非表示エリア」というのがあります。 そこに"スクロール"という文字をしまっておいて、画面を徐々に左側にシフトさせるのです。
各表示モジュールの表示メモリは
モジュールタイプ | 表示エリア | 非表示エリア | 全表示メモリ |
256X16dot | 256dot | 1792dot | 2048X16dot |
256X64dot | 256dot | 256dot | 512X64dot |
384X32dot | 384dot | 640dot | 1024X32dot |
512X32dot | 512dot | 512dot | 1024X32dot |
です。
8-④(Scroll 8 , 256 , 0)はスクロールさせる命令です。
Scroll shift , repetition , speed
です。
shiftの部分で、1回でどれだけシフトさせるか定義します。

シフトの方向は、上から下、右から左です。 また、表示メモリは、縦8dotずつでグループになっています。
プログラム8は縦64dotを仮定していますので、(64 / 8 =) 8と定義すれば、1回のシフトでちょうど左に1dotずれることになります。 64とすると8dotずれます。 同様の考えで、縦16dotの場合は2、縦32dotの場合は4と定義すると、左に1dotシフトします。
そしてrepetitionで何回シフトさせるかを定義します。 例えば、縦64dotでshiftが8の場合はrepetitionが256だと、左に256dot移動します。 そのため、8-②~④で"スクロール"という文字が、1画面分移動し、左端に停止するのです。
ためしに8-④を
Scroll 8 , 768 , 1
としてみてください。 表示エリアが256dot、非表示エリアが256dot、表示エリア(2回目)が256dot、合計768dotですので、スクロールは、1回目でサイドアウトして、2回目で左端停止します。
また、
Scroll 64 , 32 , 1
とすると、とても早いスクロールになりました。 これは1回のシフトでたくさん移動するためです。 1回で8dot左にずれることになります。 そして、8dotのシフトが32回ですから、全部で8 X 32 = 256dotスクロールすることになります。
speedの部分で、1回シフトする時間を定義します。 その時間は約speed×約14msecになります。 この部分は、省略可能です。省略すると1と同じ(約14msec)です。
※Sleep、Scrollで時間を定義する場合、256X16dot、256X64dot、512X32dotの表示モジュールは、1にすると約14msec止まります。 384X32dotの場合は約13msec、256X128dotの場合は約16msecです。)