VT100 の Wrap処理

通常、文字を一文字出力する場合、

1. 現在のカーソル位置に文字を出力する
2. カーソル位置を次の桁に移動する
という事が行われます。この動作をカーソルが行末に有る場合にそのまま適用 すると、以下のようになります。(自動改行有効時)
1. 現在のカーソル位置(行末)に文字を出力する
2. 現在のカーソル位置が最下段(次の行が無い)場合は一行スクロールして空行を作る
3. 次の行の先頭にカーソルを移動する

実際にこのような動作をする端末も有るのですが、この動作だと画面の右下に 文字を出力するのが難しいという 問題が有ります。

その為 VT100 ではカーソルが行末に有る時の文字出力の動作が以下のように なっています。

1. 現在のカーソル位置(行末)に文字を出力する
2. カーソル位置は行末のまま変更しない
この状態でさらに一文字出力すると、
3. 現在のカーソル位置が最下段(次の行が無い)場合は一行スクロールする
4. 次の行の先頭にカーソルを移動する
5. 現在のカーソル位置(次の行の先頭)に文字を出力する
6. カーソルを次の桁に移動する

というように、自動改行の発生を行末の文字の次の文字の出力時に遅延させると いう動作をします。