2019/07/05 stdio.h だけで CLS・LOCATE 相当は可能

引き続き z88dk 情報。

 

z88dk ではテキスト関連は ANSI や VT100 のコンソールとして整えてあります。

つまり、コントロールコードやエスケープシーケンス(ESC)を使えるようにしてあります。

 

カーソル移動(LOCATE)は ESC=キャラクターコード 27 として ESC[y;xH です。
この時の x・y 座標は左・上が 1 になります。また H は大文字なのに注意して下さい。

 

CLS は空白を埋め尽くせば良いのですが、

次の各座標を指定して 1 文字ずつ消していくのは遅いです。サンプルしてわかりやすいようにこの方法です。

各行ごとで 24 文字空白が理想かもしれません。

本当は左上に置いて 144 文字が理想ですが、z88dk で横幅を誤って認識している不具合が判明しました。

モノクログラフィック graphics.h を使うのであれば、clg() があります。
ポケコンはテキスト・グラフィック共有なので、テキストも clg() で画面クリアされます。

 

zcc +g800 -create-app -clib=g850 -o text.ihx text.c

追加 2019/07/23

いろいろとプログラムを作成していたところ、テキスト表示がおかしくなるケースがあり、

不具合として報告しました。GitHub issue #1241

後にテキストの横幅を誤って認識していると判明し、それを報告した結果、修正が入り、改善しています。

Nightly Build 20190723 より正常になっています。

これ以降であれば左上から 144 文字空白クリアも有効です。