WX3(dos/v版)のエコー入力を 75 桁に固定するパッチ by あじゃ(- aja -) ■■件名:WX3(dos/v) エコー入力を 74 桁固定に■■ あじゃ(- aja -)といいます。 WX3 Ver3.05 dos/v 版を愛用しています。 ●お願い● WX3 の未確定文字列を描画する範囲を横 75(あるいは 74)桁、縦 50 行に固 定するパッチ情報を教えていただけないでしょうか。 V-TEXT のモード切り替えで dos 画面を標準の 80 桁 ×25 行以外に変更した 場合、WX3 のエコー入力で表示される未確定文字列は、その桁×行数を自動的 に取得して画面描画する仕様になっていると思います。 そこで、 WX3 が V-TEXT の API を使って画面の桁・行数を取得するルーチン を切り離し、75(あるいは 74)桁、50 行の固定値を書き込んでしまうことは できないでしょうか(もっと欲をいえば、横桁だけ固定値を書き込み、縦行数 は元の通り V-TEXT の API で取得できたほうが使い勝手はいいのですが)。 手元の関係デバイスの一覧は↓の通りです。 WXK.SYS 13,424 97-05-20 3:05 WXKC.SYS 64,593 97-05-20 3:05 WX3D.SYS 13,986 97-05-20 3:05 WX3.SYS 43,107 97-05-20 3:05 WX3TX.SYS 13,554 95-01-11 3:00 WX3TM.SYS 20,019 95-01-11 3:00 上のお願いをした背景は次の通りです。 Torry さん作の V-TEXT ドライバー DspSS.com が備えている多くの画面モー ドのうちの以下のものを使い、 VZエディター+自作縦書き編集マクロ(0Ah を疑似改行および疑似行間に使った禁則、行間空き編集マクロ)+WX3 の組み 合わせによる縦書き編集を実現したい。 >50行, 80桁, 8x16/16x16dot, 8x16/16x16dot,800x600dot 縦書き/仮想画面 >50行, 80桁, 8x16/16x16dot, 8x16/16x16dot,800x600dot 横倒し/仮想画面 しかし、上の画面モードは SVGA(800× 600)の dos 画面を 800× 640 の仮 想画面として拡張しているため、WX3 の未確定文字列の一部(全角3文字分) が画面外へはみ出してしまいます。そのため、ちょっとした文章の手直しなら ともかく、いちから文章を書くのはかなりきついものがあります。 そこで、先に記したように WX3 にパッチを当て、 桁数(および行数)を固定 してしまえば快適に使えるようになるのではないかと考えた次第です。 もちろん、パッチ情報を教えていただいた場合、自己責任で運用しますし、カ ーソルは横・縦の固定値の範囲外へは行かないように使います(自作マクロの 仕様でもあるのですが)。 快適な縦書き編集環境を実現するというのは、わたしにとってVZを使ううえ での最後で最大の悲願であります。どうかよろしくお願いいたします。 もし上記のようなパッチ情報が教えていただけたあかつきには、 NIFTY の FGALDC フォーラムで、わたしと同様に WX3+VZ+ DspSS.com を使っている 数多く(と言っていいんだろうか (^^;)のユーザーが感激のあまり号泣しま くることは間違いありません (T^T) (※A.I.SoftのRumbaさんからは、そのようなパッチ情報は無いとの回答あり。) ■■件名:Re:WX3(dos/v) エコー入力を 74 桁固定に■■ やっぱり無理なお願いだと思ってました(笑) とりあえず、以下のように変更したところ、希望通りの動作をするようになり ました。これで dos 窓でも快適な縦書き編集ができるようになりました。 WX3.SYS 43,107 97-05-20 3:05 ファイルを比較しています : f:\wx3\WX3.SYS と f:\wx3\75\wx3.sys 00007357: 88 B4 00007358: 26 4B 00007359: A8 88 0000735A: 0F 26 0000735B: 3C A8 0000735C: 11 0F 0000735D: 75 EB アドレス 7353 から始まる Int 10h AH=0Fh のサブルーチンで、桁数に固定値 75 を書き込み、 ビデオモードの判定のうち、 モード 11 の部分をつぶして (^^; 辻褄を合わせました。 というわけで、上の改変をマネしようと思う方への注意。 ・ビデオモード 11 にして WX3 で入力を行った場合には何が起こるかわから ない (^^; ・桁数 1〜75 以外のところから入力を始めると画面描画が乱れる。 ・上のパッチ当ての結果、 君、 もしくは君のメンバーに・・・じゃなくて (^^;・・・いかなる事態が起ころうと、わたし及び A.I.Soft は一切関知しな いからそのつもりで。 >ご愛用ありがとうございます。 古い話になりますが、 御社が dos 版 WX3 Ver 3.05 のリビジョンを本当に出 されたときは感激しました。関係スタッフの皆様に感謝いたします。 今後も、 VZが使えなくなるまで(流通する文字コードの主流が Unicode に なるまで?)WX3 を使い続けます。 ■■補足■■ WX3.sys が V-TEXT の API を使って画面の桁数、 行数を取得するルーチンは 以下のようになっている。 4C43:7352 C3 RET 別のサブルーチンの終わり 4C43:7353 B40F MOV AH,0F 桁・行を取得するルーチンの始まり 4C43:7355 CD10 INT 10 4C43:7357 8826A80F MOV [0FA8],AH 4C43:735B 3C11 CMP AL,11 4C43:735D 7504 JNZ 7363 4C43:735F B003 MOV AL,03 4C43:7361 EB4E JMP Short 73B1 4C43:7363 3C12 CMP AL,1 2 4C43:7365 7410 JZ 7377 4C43:7367 3C52 CMP AL,52 4C43:7369 740C JZ 7377 4C43:736B 3C53 CMP AL,53 4C43:736D 7408 JZ 7377 4C43:736F 3C72 CMP AL,72 4C43:7371 7404 JZ 7377 4C43:7373 3C82 CMP AL,82 4C43:7375 7504 JNZ 737B 4C43:7377 B004 MOV AL,04 4C43:7379 EB36 JMP Short 73B1 4C43:737B 3C73 CMP AL,73 4C43:737D 7410 JZ 738F 4C43:737F 3C71 CMP AL,71 4C43:7381 740C JZ 738F 4C43:7383 3C84 CMP AL,84 4C43:7385 7408 JZ 738F 4C43:7387 3C86 CMP AL,86 4C43:7389 7404 JZ 738F 4C43:738B 3C8C CMP AL,8C 4C43:738D 7504 JNZ 7393 4C43:738F B002 MOV AL,02 4C43:7391 EB1E JMP Short 73B1 4C43:7393 3C02 CMP AL,02 4C43:7395 7414 JZ 73AB 4C43:7397 3C03 CMP AL,03 4C43:7399 7410 JZ 73AB 4C43:739B 3C70 CMP AL,70 4C43:739D 740C JZ 73AB 4C43:739F 3C83 CMP AL,83 4C43:73A1 7408 JZ 73AB 4C43:73A3 3C85 CMP AL,85 4C43:73A5 7404 JZ 73AB 4C43:73A7 3C8B CMP AL,8B 4C43:73A9 7504 JNZ 73AF 4C43:73AB B001 MOV AL,01 4C43:73AD EB02 JMP Short 73B1 4C43:73AF B000 MOV AL,00 4C43:73B1 A2AA0F MOV [0FAA],AL 4C43:73B4 B300 MOV BL,00 4C43:73B6 B8021D MOV AX,1D02 4C43:73B9 CD10 INT 10 4C43:73BB 1E PUSH DS 4C43:73BC 684000 PUSH 0040 4C43:73BF 1F POP DS 4C43:73C0 A08400 MOV AL,[0084] 4C43:73C3 1F POP DS 4C43:73C4 02C3 ADD AL,BL 4C43:73C6 98 CBW 4C43:73C7 40 INC AX 4C43:73C8 C3 RET 桁・行を取得するルーチンの終わり これを以下のように改変した(★の部分が変更箇所)。 4C43:7353 B40F MOV AH,0F 4C43:7355 CD10 INT 10 4C43:7357 B44B MOV AH,4B ;★固定値75(4B) 4C43:7359 8826A80F MOV [0FA8],AH ;★ 4C43:735D EB04 JMP Short 7363 ;★ 逆アセンブルには清十郎さん作の「i8086-Pentium(MMX) 拡張 デバッガ EXDEB Ver.1.85」を使用させていただきました。 また、参考文献として、 「はじめて読む8086」 PC DOS J7.0/Vに付属の「PC DOS J6.1/V BIOS インターフェース技術 解説書」オンライン版 を使用しました。 [ A.I.Soft 「e言葉.com」の「WX2/3 掲示板」 に投稿した記事 (2001/04/03 および 2001/04/06) を改稿] ---------------------------------------------------------------------- ★追記0-1★(2004/10/04) ホームページ移転に伴い、文書末尾のURLを変更した。 ====================================================================== Copyright (C) 2001-2002 あじゃ(- aja -) 著作権者に許可なく転載・転送することを禁じます。 HomePage URL: http://homepage2.nifty.com/aja/ ======================================================================