2013.6.27
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第427回]


●ESCシーケンスをエミュレート(2)

前回は文字を着色指定するエスケープシーケンスをZB3DOS.EXEに組み込みました。
昨日は時間がありませんでしたので、とりあえず色指定のエスケープシーケンスだけを組み込みましたが、せっかくそこまでしたのですから、本日も多忙な中で時間を割きまして、カーソル移動のエスケープシーケンスも組み込んでしまいました。

落ち着いてテストプログラムを組んでいる時間がありませんでしたので、とりあえず簡単なプログラムをBASICで作りました。
こちらがBASICのテストプログラムです。

    10 CLS 
    20 'esc test
    30 FOR B%=0 TO 7
    40 FOR A%=0 TO 9
    50 PRINT A%;
    60 NEXT A%
    70 NEXT B%
    80 FOR A%=1 TO 23
    90 PRINT A%
   100 NEXT A%
   110 PRINT CHR$($1B);"=(6(1)y=8,x=22";
   120 PRINT CHR$($1B);"[3A(2)up3";
   130 PRINT CHR$($1B);"[12C(3)right12";
   140 PRINT CHR$($1B);"[7B(4)down7";
   150 PRINT CHR$($1B);"[47D(5)left47";
   160 PRINT CHR$($1B);"[1B(6)down1**1234567890";
   170 PRINT "abcdefghijklmnopqrstuvwxyz";
   180 PRINT CHR$($1B);"[10D(7)";CHR$($1B);"[K(8)";

上のプログラムを実行した結果です。


今回新たに組み込んだカーソル移動のエスケープシーケンスです。
ESC[K   カーソル位置から行末までをクリア
ESC[nA  カーソルを上にn行移動
ESC[nB  カーソルを下にn行移動
ESC[nC  カーソルを右にn桁移動
ESC[nD  カーソルを左にn桁移動

ついでですので今までに組み込んだエスケープシーケンスも下に整理しておきます。

ESC=YX 
カーソルを左上隅を(0,0)とするとき座標(y,x)に移動する。ただしY=y+20H、X=x+20Hの文字コードの文字で示す。
たとえば(5,8)なら
ESC=%(
になる。%=25H、(=28H。

ESC[2J  画面クリア

ESC[30m  文字色を黒に指定
ESC[31m  文字色を赤に指定
ESC[32m  文字色を緑に指定
ESC[33m  文字色を黄に指定
ESC[34m  文字色を青に指定
ESC[35m  文字色をマゼンタに指定
ESC[36m  文字色をシアンに指定
ESC[37m  文字色を白に指定
ESC[39m  文字色を標準色に戻す

ESC[40m  背景色を黒に指定
ESC[41m  背景色を赤に指定
ESC[42m  背景色を緑に指定
ESC[43m  背景色を黄に指定
ESC[44m  背景色を青に指定
ESC[45m  背景色をマゼンタに指定
ESC[46m  背景色をシアンに指定
ESC[47m  背景色を白に指定
ESC[49m  背景色を標準色に戻す

ワンボードマイコンでCP/Mを![第427回]
2013.6.27upload

前へ
次へ
ホームページトップへ戻る