プログラミングを勉強しよう!

Scratch, MSX-basic, Javascript, python, c/c++ etcs.....

<msx-basic> screen1で、縦スクロールを実装する方法。

 

10 print chr$(27);"H";chr$(27);"L";

20 print "好きな文字列。。。。。。。。。。"

30 goto 10

(解説)

chr$(27)はエスケープシーケンスの始まりの約束ごと。

その次に;と一緒に文字をつけると、約束の機能を果たす。

 

chr$(27);"H" はカーソルをhome位置に移動させる機能。

chr$(27);"L" はカーソルの上に一行挿入する機能。

 

したがって、これを合体させて使うことによって、縦スクロールを実装することができるのである。

 

後はprintする文字をvpokeを使って好きな形に変更して、printさせれば、立派な縦スクロール・マップになるはず。ただし、当然ながら、8ドット単位のスクロールになる。

 

screen1で横スクロールさせる方法はまだ、わからない。もし知ってる人がいれば、ぜひ教えてください。

 

ちなみに、msx2+ machineからはsetscroll命令を使えば、横スクロールができるけど、連続スクロールできるのは一応画面2個分しかできない構文になっているので、3個以上分連続スクロールさせるには、工夫が要りそう。しかし、これは上記の縦スクロール法と違い、8ドット単位ではなく、1ドット単位でもスクロールができるので、非常になめらか。

 

<表>エスケープシーケンス

f:id:loveandpeace2:20200321153335p:plain