=== kl.def v0.53 === DOSVAXJ3 と VTDOS 用の表示行数切替えマクロです。 各自の環境に合わせてカスタマイズしてください。(^^; ・#if 文で DOSVAXJ3 と VTDOS 用に分けているので、高橋版以降専用です。 ・コマンドラインと編集画面で使えるようになっています。 ・シフト実行で、未更新の画面パラメータを合わせます。  単独で切り替えコマンドを使った時やコンソール画面で合っていない時に使います。 ・VTDOSの切り替えはコンソールのゴミが出ないようにしたので複雑になっています。 *m 80 ^KL "表示行数切替え" ;2025-03-11 v0.53 ; (wt>=4)?. t=wt,(wt>=2)?{ &#Y(0) } #if 98 #66 . ;#else ; &z("lxdspd") >* #endif (s==1 || s>2)?. k=ks&1, ;窓モードなら終了 (k==1)?{w[=vp.26, sx[-, &09 .} ;シフト実行で表テキストの設定調整 cx0, &s #if AXJ3 ; DOSVAXJ3 ※環境変数 VZSYM=AXJ3 を指定 (vp.26==106)?{&08 &00 &09 .} ;VT4の106*29行→vgaの80*25行 (vp.26==80&&lc<=25)?{&08 &01 &09 .} ;80*25行→80*44行 (vp.26==80)?{&08 &02 &09 .} ;VTの80*44行→VT2の128*44行 (vp.26<=128)?{&08 &03 &09 .} ;VT2の128*44行→VT3の160*44行 (vp.26>128)?{&08 &04 &09 .} ;VT3の160*44行→VT4の106*29行 ks-, $697.0=(dz[=vz)*0, dz], :k &k (r)? >k ;:k &k (r)? >k &m("key bufr clr") . 00: &?("chev jp >nul") #m &d w[=80, ; vga 640x 480 文字 80×25 01: &?("chev vt >nul") #m &d w[=80, ; svga 800x 600 文字 100×37 02: &?("chev vt2 >nul") #m &d w[=128, ; xga 1024x 768 文字 128×48(44) 03: &?("chev vt3 >nul") #m &d w[=160, ; sxga 1280x1024 文字 160×64(44) 04: &?("chev vt4 >nul") #m &d w[=106, ; sxga24 1280x1024 文字 106×42(29) #endif #if VTDOS ; VTDOS ※環境変数 VZSYM=VTDOS を指定 (vp.26>=136)?{&08 &00 &09 .} ;136*35行→80*25行 (vp.26==80 && lc<=25)?{&08 &01 &09 .} ;25行→80*35行 (vp.26<110)? { cx1, &08 &02 &09 .} ;80*35行→110*26行 ※ Win32 bug (vp.26<=110)?{&08 &03 &09 .} ;110*26行→136*35行 (vp.26<=136)?{&08 &04 &09 .} ;136*35行→168*39行 . ;Int 2F/AX=7476h/BX=0005h 画面サイズの変更 00: w[=80, dx=$5019, &05 ; 80*25 01: w[=80, dx=$5023, >05 ; 80*35 02: &00 cx0, w110, dx=$6E23, >05 ; 110*26 6e1a ※ Win32 bug 03: w[=136, dx=$8823, >05 ; 136*35 04: w[=168, dx=$A827, >05 ; 136*35 05: ax=$7476, bx=$0005, &i($2F) ; Int 2F/AX=7476h/BX=0005h (cx==0)?{(wa==0)? &?("%c",$0a)} ; #m の代わりに LF で改行しない #endif ; 共通 08: sx[-, (s!=2)? #E ;コマンドラインに 09: (wa)?? { (s==2)?{ ;編集テキストが無ければ ep[-, #[ #[ ep], w], sx], .} } ;[ESC]2回で整えて終了 (s==2)? {ep[-, #[ ep], } sx], ;編集モードに(シフト実行時はスルー) &10 (wb)?{&s #W &10 #W } w], &d ;表/裏テキストの桁,行数調整 10: we=w, wa.55=w, wa.56=lc-2, wa.57=lc-3, wv=w>>1, wh=lc>>1, kx=lx, (t>=2)?{ &#Y(t) &d } * 25-08-19 v0.53 Wt4以上 縦分割なら何もしない 23-04-26 v0.52 DOSVAXJ3での切り替えの不具合に対応 23-04-24 v0.5 VTDOSでの切り替えでコンソールのゴミが出ないように 23-04-22 v0.41 wv wh の画面分割パラメータ合わせた 23-04-21 v0.4 VTDOSのFコール版 23-04-21 v0.35 VTDOSのWin32バグ発覚、修正版 23-04-21 v0.34 wa.55 〜 wa.57 合わせアンダーラインカーソルも正常に 23-04-20 v0.2 VTDOS用も作ってみた。 23-04-08 v0.1 DOSVAXJ3用にとりあえず作ってみた。