しらいです。

In article <cn1rrk$eg9$1@news.aitai.ne.jp>,
Y.Shibata <linux_yhjp@yahoo.co.jp> wrote:
>自己レスです

>ターミナルの設定でバッファサイズ(画面の行数)を26行に変更したら一応解決で
>きました。
>(24や25では不具合が起きます。)

 それは一時的なことでしょう。25 行の設定で接続すると、その
時点での画面行数が最大行数として termcap 設定に反映します。
その後 telnet 設定を 26 行に設定することで、termcap 的には最
終行の存在を検知出来ないので、最終行直前までしか使わずに動作
するということです。
 その証拠に、最初から 26 行の設定にしておいて接続すると、以
前と全く同じ症状が現れることと思います。


>TERM設定は、すでにvt100になっていました。

 実はこれが誤りの元となっています。接続時に現れるダイアログ
で「ターミナルの種類(T):」に「ansi」又は「ANSI」を選んでみて
下さい。正しく表示が行なわれる筈です。
 DEC vt100 端末には自動マージン機能という特殊な機能が実装さ
れており、多くの vt100 互換端末はこの機能を emulate している
のですが、Windows の telnet.exe にはこの機能が存在しません。

 自動マージン機能とは、最終行の最終桁を越えて文字を描画した
場合に画面全体をスクロールさせるか否かを、その文字が表示可能
文字か否かに応じて自動的に判断する機能です。
 表面的な現象としては、最終行の最終桁ぎりぎりに何か文字を表
示させてもスクロールが発生しないという機能ですね。この機能が
実装されていないと、勝手に画面がスクロールされてしまう訳です。

 Linux を含む UNIX の termcap database には当然 vt100 端末
のこの特徴が登録されており、接続時に「vt100」を名乗った時点
で自動マージン機能を前提とした挙動が各アプリに指定されます。
 FDclone も同様で、vt100 端末なら自動マージン機能があるもの
と思って、最終行最終桁に平気で文字を表示する訳ですが、telnet.
exe は実はこの機能がなくて意図しないスクロールが発生してしま
うという訳です。

 なので、これはアプリ側の不具合ではなくて、vt100 emulation
が不完全である telnet.exe の不具合なんです。これ以外にもおか
しな挙動が多いので、telnet.exe は vt100 互換端末としては使え
ないと思った方が良いでしょう。

# BSD 系だと /etc/termcap を ~/.termcap に copy して vt100
#entry から「xn」を削除するという手もあるのですが、Linux は
#terminfo ベースなので悩ましいところですね。
# vt100 の terminfo ソースを拾ってきて eat_newline_glitch
#を削除してから tic に通したものを ~/.terminfo 以下に置いて
#やればいいんだと思いますけど、これだけの説明でピンと来ない
#ようならやめといた方がいいでしょう。

-- 
                                               しらい たかし