[HOME]  [現在掲示板へもどる] [ツリー表示]   
過去ログ  番号順 全部表示   FGALVZ   

10587/10586 BQO00549  konno            Re: vzk07v6 ソースも UP
( 1) 23/03/01 00:32 10586へのコメント(さん) コメント数:2
ソースの差分も UPしました。
差分の取り方を忘れてしまって、後回しになってしまいました。(^^;


10588/10586 BQO00549  konno            WinNT系のコマンドライン問題解決の方法
( 1) 23/03/01 01:03 10587へのコメント(konnoさん) コメント数:1
#10581 からの話題ですが

> これを見て閃きました。command.com をフックさせなければいいのではないかと。
> FreeCOM と DOSVAXJ3 の環境では、zp はゼロになります。フック出来ていないのです。
> それなのに問題なく動作しているので、WinNT系でも同じくフックさせなければどうなる?
> 
> で、やってみました。
> 正しい位置を検索するのは難しいですが、わざと失敗させるのなら簡単です。(^^;

実際のソースでは

	mov	bx,cs:tpafreep		; MAIN.ASM 318:GDATA tpafreep, dw, 0 ; ZP
	tst	bx
	jnz	alloc8
	mov	di,0600h
;	mov	di,0380h		;0600h ##k07vt2b
	mov	cx,400h			;300h 1.60 ; win95
	cmp	byte ptr cs:os_win,5	; ##k 230225  WinNT系DOS窓なら ZP を 0 に 
	je	winnt			;
	cmp	ah,5			; ##16
	jae	alloc1
;	mov	bx,0465h
;	cmp	ah,5			; ##156.96  ##157.xx  DOS 5.0
;	je	alloc8
	pop	es
	push	es
	mov	di,0200h
;	mov	cx,500h ;100h		;##k07f
winnt:	mov	cx,100h			;##k07v6c


コメントの多さが試行錯誤を物語っていますが、このルーチンの肝はここです。

	cmp	byte ptr cs:os_win,5	; ##k 230225  WinNT系DOS窓なら ZP を 0 に 

os_win とは、VZkで追加したオプション ow で、この数値が 5 なら WinNT系の DOS5 です。
VTDOS なら、AH に 1、AL に DOSのメジャーバージョン(DOS6.2なら 6 )となります。

Win98ME		ow:8h	MSDOS 8.0
Win2000		ow:5h	DOS 5.0
WinXP		ow:5h	DOS 5.0
VTDOS		ow:106h	MSDOS 6.2
MS-DOS Player	ow:7h	FreeCOM 7.0
DOSVAXJ3	ow:0	DOS 7.0 相当?

どうやら DOSVAXJ3 は、アイドル推し(コール)してないようですね。(^^;
CPU負荷が他のエミュより若干高く見えるのは関係あるかしらん。

 ax1680h  INT2fh  で判定しているもので。(^^;


10589/10586 BNY00646  shadow           Re^2: vzk07v6 ソースも UP
( 1) 23/03/01 09:14 10587へのコメント(konnoさん) コメント数:1
お疲れ様です。
ソースは高橋版への差分でしょうか?
確認していただければ幸いです。

10590/10586 BQO00549  konno            Re^3: vzk07v6 ソースも UP
( 1) 23/03/01 14:49 10589へのコメント(shadowさん) コメント数:1
> ソースは高橋版への差分でしょうか?

はい、ソースも高橋版への差分です。
ソースを別フォルダにコピーして、カレントにして、そこに 差分.com を置いて実行です。

久しぶりというか、色々忘れているので、問題あれば教えてください。


10591/10586 BNY00646  shadow           Re^4: vzk07v6 ソースも UP
( 1) 23/03/01 17:24 10590へのコメント(konnoさん) コメント数:2
実行した結果を貼り付けますね。
正しい差分が作成できてないと思われます。

C>K07V6_S.COM
WSP self update 1.50 amaproワキチ

xscr.asm 完了!
block.inc 完了!
sprintf.inc 完了!
std.inc 完了!
vz.inc 完了!

1999/05/29  14:20             7,097 xscr.asm
1991/12/16  01:57             1,460 block.inc
2004/05/29  11:21             5,476 sprintf.inc
2023/02/11  04:18             8,962 std.inc
2023/02/28  22:33            19,582 vz.inc


10592/10586 BNY00646  shadow           Re^5: vzk07v6 ソースも UP
( 1) 23/03/01 17:47 10591へのコメント(shadowさん) コメント数:1
UPされている圧縮ファイルのサイズが小さいですねぇ。

3,406 K07V6_S.LZH

10593/10586 BQO00549  konno            Re^5: vzk07v6 ソース駄目でした。m(__)m
( 1) 23/03/01 21:15 10591へのコメント(shadowさん)
> 実行した結果を貼り付けますね。
> 正しい差分が作成できてないと思われます。

ああ、すみません、全く確認していませんでした。m(__)m
とりあえずあがっているのは削除します。


10594/10586 BQO00549  konno            K07v6 ソース再アップ
( 1) 23/03/02 17:46 10586へのコメント(さん) コメント数:1
K07v6 ソースの差分を再アップしました。
差分作成が上手くいかず、時間がかかってしまいました。(^^;

K07v6_s.lzh を解凍すると

K07v6s1.com    53,125 
k07v6s2.com    19,451 

この2つの自己差分ファイルになります。
新規フォルダを作成し、高橋版最終 T03K2 のソースを全てコピーし
そこにこの2つの自己差分ファイルを入れて、カレントにし、実行します。


10595/10586 DGF01024  めざら           Re: vzk07v6 UPしました
( 1) 23/03/02 20:17 10586へのコメント(さん) コメント数:1
参照先:http://mezala.la.coocan.jp/
更新を有難うございます。
高橋版(VZIBMJ.COM 1999-12-21 60,888bytes)への差分ですよね。

差分が当たらないなぁ……何か勘違いしてるのかも。

10596/10586 BQO00549  konno            Re^2: vzk07v6 UPしました
( 1) 23/03/02 21:31 10595へのコメント(めざらさん) コメント数:1
> 更新を有難うございます。
> 高橋版(VZIBMJ.COM 1999-12-21 60,888bytes)への差分ですよね。

はい、そうです。T03K2 です。

> 差分が当たらないなぁ……何か勘違いしてるのかも。

うちでは問題なく出来ました。VTDOS + VZK07v6 の環境です。
高橋版VZ と差分ファイルを同じフォルダに置いて、カレントにして、差分.com を実行です。
2023/02/28  22:34    62,768 vzibmj.com
が出来ます。


10597/10586 BNY00646  shadow           Re: K07v6 ソース再アップ
( 1) 23/03/02 22:13 10594へのコメント(konnoさん)
お疲れ様です。
ソース差分当てれました。
このソースから62,768 vzibmj.comもできました。
有難うございました。

10598/10586 DGF01024  めざら           Re^3: vzk07v6 UPしました
( 1) 23/03/02 23:00 10596へのコメント(konnoさん)
参照先:http://mezala.la.coocan.jp/
カレントにしていませんでした(^o^;

62,768bytes 2023-02-28 22:34 の VZIBMJ.COM がめでたく出来ました。
お騒がせ致しました。m(_'_)m


10599/10586 BQO00549  konno            Re^6: vzk07v6 ソースも UP
( 1) 23/03/02 23:31 10592へのコメント(shadowさん)
> UPされている圧縮ファイルのサイズが小さいですねぇ。
> 3,406 K07V6_S.LZH

これには参りました。(>_<)
最初はVZKが悪いのかと疑いましたが、高橋版でも同じでした。
次に VTDOS とかエミュの環境を変えたり色々変えてみても駄目で。
wsp.com の実行結果が

VTDOS|C:\VZ\UP>WSP -A c:\vz\vz16\T03K2\view.asm c:\vz\K07v6\view.asm K07v6s
K07v6s.WUP に差分データを結合します.

0.....10.....20.....30.....40.....50.....60.....70.....80.....90....100(%)
=======================*******=*======**==============**===*===========  完了

VTDOS|C:\VZ\UP>WSP -A c:\vz\vz16\T03K2\block.inc c:\vz\K07v6\block.inc K07v6s

ファイルが存在しないか,ファイルの入出力にエラーが発生しました.

VTDOS|C:\VZ\UP>WSP -A c:\vz\vz16\T03K2\sprintf.inc c:\vz\K07v6\sprintf.inc K07v6s
K07v6s.WUP を作成します.


どうもここのエラーで新規作成に戻っているようです。
ファイル内容か実行ファイルが壊れているかもと疑いましたがシロでした。
さて、この後私の取った行動はどれでしょう。

 1.問題が解決するまで寝ないで頑張った。
> 2.色々頑張ったが解決できなくて、諦めて寝た。
 3.解決できなくて絶望し、窓を開けてノートPCを思い切りエイっと・・・


さて、翌日になって、wsp のドックを読んだら

> 作成する差分ファイルの大きさはいくら大きくても結構ですが、結合する差分データは60KB以内でなければなりません。

・・・もしかして、差分ファイルが60kを超えてエラーになっている?
だって、前回の k07t01 の差分ファイルは
 36,197  k07t01s.com
まだまだ余裕があったのに、今回の修正でそんなに変わったというのか。

それで、差分ファイルを2つに分けてやって、やっと出来ました。

2023/03/02  16:40    53,125 K07v6s1.COM
2023/03/02  16:41    19,451 k07v6s2.com

この2つを合計すると、73728bytes (クラスタ)。こんなにあるとは・・・・


# 思えば遠くへ来たもんだ・・・・


10600/10586 DGF01024  めざら           Re: vzk07v6 UPしました
( 1) 23/03/03 16:18 10586へのコメント(さん) コメント数:1
参照先:http://mezala.la.coocan.jp/
試用レポートです。

SL 起動後にも変更可能なのですね。+1 +2 とも正常に動作しています。

RF こちらも起動後に変更可能。#75#82 とも正常な動作を確認しました。

気づいたことがあります。
Rf- のとき,長いファイル名のテキスト…例えば「wforum(000).css」…を開くと,ステータスラインには長いファイル名で表示されます。そして,#82 で…例えば「wforum(000).csss」…長いファイル名でリネームすると,「WFORUM(000).CSSS」のようにすべて大文字になります。こののち #75 で保存すると短いファイル名が長いファイル名側に影響せず,すべて大文字の長いファイル名で保存されます。(短いファイル名は WFORUM~1.CSS と相対的名称になります)

こういう現象は想定内でしたか?
(こうして欲しいとか,こうあらねばならぬ…ということでなく,単なる興味です)

あと,OT 新設の関係で SL は廃止されたと以前アナウンスされたと思いますが,復活 SL と OT の関係はどのように考えればよいでしょうか。マクロキーみたいな後優先とか便利な仕組みはないと思いますので,念のために伺いたいと思いました。


10602/10586 BQO00549  konno            Re^2: vzk07v6 Rf- にバグ
( 1) 23/03/03 21:41 10600へのコメント(めざらさん) コメント数:1
> Rf- のとき,長いファイル名のテキスト…例えば「wforum(000).css」…を開くと,ステータスラインには長いファイル名で表示されます。そして,#82 で…例えば「wforum(000).csss」…長いファイル名でリネームすると,「WFORUM(000).CSSS」のようにすべて大文字になります。こののち #75 で保存すると短いファイル名が長いファイル名側に影響せず,すべて大文字の長いファイル名で保存されます。(短いファイル名は WFORUM~1.CSS と相対的名称になります)

これは不味いですね、元々 Rf+ は、SFNでも大文字小文字を区別したいから作ったのです。
ロング名なら、Rf- でも大文字小文字を区別しないといけませんね。バグです。
これは直します。
バグ報告ありがとうございました。m(__)m


> あと,OT 新設の関係で SL は廃止されたと以前アナウンスされたと思いますが,復活 SL と OT の関係はどのように考えればよいでしょうか。マクロキーみたいな後優先とか便利な仕組みはないと思いますので,念のために伺いたいと思いました。

え、えーと、OT は無くなっていますね。(^^;
k07o-k07q と k08o-k08q まではありますが、それ以降は廃止したようです。(^^;
説明書きに残ったままでした。申し訳ない。m(__)m

SL も OT 廃止に伴って復活したということです。
元の高橋版ではフラグだったのを、変数に変えています。

説明書の VZK.TXT も、VZK.DOC に変えて更新しますのでしばしお待ちを。m(__)m


10606/10586 DGF01024  めざら           Re^3: vzk07v6 Rf- にバグ
( 1) 23/03/04 10:33 10602へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
> 元々 Rf+ は、SFNでも大文字小文字を区別したいから作ったのです。

 「SFNの長さに納まるLFN」と解釈してよいでしょうか。

 konnoさんご自身としては「バグ」という認識なのですね。
 「仕様」としても影響はないと思ったのですが,そのような認識であれば,敢えて報告しておいてよかったです。(いつもろくにレポートできていないので)

> ロング名なら、Rf- でも大文字小文字を区別しないといけませんね。バグです。

 ここはちょっとわかりませんでした。
 デフォルトなら環境依存でよいのではないですか?
 VTDOS環境でLFNがなんとなく通ってしまうという仕様の延長線上ですよね。
 (環境が関係ないのなら別ですけど……)

> え、えーと、OT は無くなっていますね。(^^;

 あ,あら(^^; 意外な展開……

> 元の高橋版ではフラグだったのを、変数に変えています。

 Rf は konnno さんの独自拡張ですよね。高橋版の LF と混同しやすいけれど。

 自分なりの解釈で版の詳細を追記しました。↓ 錯誤の有無をご確認ください。
 http://mezala.la.coocan.jp/vz/history/verdetail.html#k07v6


10612/10586 BQO00549  konno            Re^4: vzk07v6 Rf- にバグ
( 1) 23/03/05 01:29 10606へのコメント(めざらさん) コメント数:1
>  「SFNの長さに納まるLFN」と解釈してよいでしょうか。

まあそんな感じのような・・・いやいや
●RF+ : SFNファイラー( LF- )でも LFN リネーム対応、SFNでも大文字小文字区別
これが仕様だったはず。(^^;

>  konnoさんご自身としては「バグ」という認識なのですね。
>  「仕様」としても影響はないと思ったのですが,そのような認識であれば,敢えて報告しておいてよかったです。(いつもろくにレポートできていないので)

いや、ロング名が大文字に勝手に変換されたら困りますよね。
SFNの時は大文字小文字を区別する感覚が無かったかもですが。
私が考えていた仕様としては

VZT.DOC
●LF+ : LFN 対応ファイラー
●ファイラーコマンド #N #R #D は lf+ 時のみ LFN になります

VZK.DOC
●RF+ : SFNファイラー( LF- )でも LFN リネーム対応、SFNでも大文字小文字区別

●SL : ステータスライン表示オプション
    0:time 1:free 2:ロングファイル名でオープン、表示 3:sl1+sl2
    編集モードで [ESC]P [ESC]S がロング名(大文字小文字区別)になる。
    ※ Win9x、WinXP、MS-DOS Playrは sl2は対応していないので指定しない。
    ※ この機能は VTDOS と DOSVAXJ3(lfn_space=true) のみ対応。

元々は、RF フラグだけでステータスライン表示も兼ねていたのを無理やり分離したので
実際使ってみると、RF+ だけでもステータスラインがLFN表示になりますね。まあいいか。
MS-DOS Playr でも出来そうな気がして弄ってみたんですが、どうも無理っぽいです。
とりあえず MS-DOS Playr は諦めて修正版をアップしようかな。

> > ロング名なら、Rf- でも大文字小文字を区別しないといけませんね。バグです。
>
>  ここはちょっとわかりませんでした。
>  デフォルトなら環境依存でよいのではないですか?

上に書いたように、ロング名は、"Windows98ME” のように大文字小文字を使い分ける
のが普通でメリットでもあるので、 ここは勝手に変えたら駄目ですよね。

>  あ,あら(^^; 意外な展開……

いい加減で本当に申し訳ないです。

>  自分なりの解釈で版の詳細を追記しました。↓ 錯誤の有無をご確認ください。
>  http://mezala.la.coocan.jp/vz/history/verdetail.html#k07v6

えーとですね

> Rf:長いファイル名への対応を拡張し,編集モードで #75(#S:ファイルのセーブ) #82(ファイル名の変更) コマンドに対応.

RF はファイラーだけで、編集モードでは使えないという仕様だと思っていたのですが、今はあやふやになっています。(^^;
とりあえず、あやふや版をアップするかな。(゚゜)☆\(--#)バキッ


10623/10586 BQO00549  konno            Re^5: vzk07v6 Rf- バグ直ったかも
( 1) 23/03/13 23:42 10612へのコメント(konnoさん)
> RF はファイラーだけで、編集モードでは使えないという仕様だと思っていたのですが、今はあやふやになっています。(^^;
> とりあえず、あやふや版をアップするかな。(゚゜)☆\(--#)バキッ

とりあえず、あやふや版をアップするかな、と思っていたんですが
編集モードでスペース入りの LFNリネームに対応したら、今度は Tra_TAG.def が動かない。(>_<)
試行錯誤しているうちにぐちゃぐちゃになってわけわかになってしまいました。(;_;)

変更履歴をきちんとやっていなかったので、基本に帰って(何度目?)履歴ごとの違いを一覧にしました。
それで気が付いたのは、編集モードでスペース入りLFNリネームと Tra_TAG.def は、相容れない動作だったと。
なんてこった。(T_T)

しかたがないので、OPEN.asm #82 のルーチンにフラグを入れてやっと両立出来ました。(^^;
あとは、SL の動作が合わないのを、text.asm を入れ替えたら直ったので、これで完成か。
中身は継ぎはぎでわけわかですが、やれやれです。(^^;


10624/10586 BQO00549  konno            vzk07v6h UP
( 1) 23/03/15 00:21 10586へのコメント(さん) コメント数:3
vzk07v6h UPしました。

k07v6 (2023-02-28〜03-14)
 ・k07t5 までの機能は全部取り込んであると思います。
 ・Rf+ DOS窓SFNファイラーでも #R でロングファイル名変更(大文字小文字区別)
    バッファの制限により、パスの長さ約80文字以上ではSFNとなる。
 ・Sl ステータスライン表示オプション変更 0:time 1:free 2:LFN View open 3:sl1+sl2
  sl2 ならステータスラインでロング名表示 (Win9x、WinXP、MS-DOS Playrは sl2は指定しない)
 ・編集モード [ESC]P [ESC]S でロングファイル名変更(大文字小文字区別)
  ※ この機能は VTDOS と DOSVAXJ3(lfn_space=true) の場合に正常動作します。
 ・WinNT系のDOS窓コマンドラインの安定化 (検証中)
 ・[ESC]i ファイル挿入時のVZの不具合を修正してみた (検証中)
  VTDOS でのラップアラウンドエラーを回避しています。
  ※BL1024*3 だとファイル内容が壊れます。(全てのVZで起こるバグなのでこの設定は危険)
   詳細は掲示板を読んでください。不具合を見つけたら掲示板に報告願います

 ダウンロード  vzk07v6h.lzh ver1.60k07v6h (2023-03-14版 再アップ) new!
    ソース 2023-03-14 再アップ  K07V6Hs.lzh new!


10625/10586 DGF01024  めざら           Re: vzk07v6h UP
( 1) 23/03/15 09:36 10624へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
お疲れ様です。早速試用したところ,下記のようになっています。
(まだ SL だけの確認だけですが…)

> ・Sl ステータスライン表示オプション変更 0:time 1:free 2:LFN View open 3:sl1+sl2

現状では,常に 2 が立っているように見えます。
また,0と1が上記と逆転しています。(これは本来望ましい仕様かとは思いますが)
2 のときは free+LFN で,3 のときは time+LFN なので1が(矛盾なく)立っています。

製品版は free なので,0 free +1 time +2 LFN表示 というのがしっくりきますが。
(高橋版は「作成者の趣味」で異論を受け付けず 0 time ですけどね)

10626/10586 BNY00646  shadow           Re: vzk07v6h UP
( 1) 23/03/15 15:48 10624へのコメント(konnoさん) コメント数:1
ご苦労様です。

VZK07V6H.COM の差分を当てて出来たのは62,870 vzibmj.com でした。
ソースから出来たのは 62,854 vzibmj.com でした。
3月4日から3月14日版へのアップデートで変更されてるのは次のファイルでした。
2023/03/05  20:59             6,402 char.asm
2023/03/13  22:54            63,753 filer.asm
2023/03/11  23:50             8,932 filer2.asm
2023/03/13  22:20            36,737 open.asm

> あとは、SL の動作が合わないのを、text.asm を入れ替えたら直ったので、これで完成か。
text.asmは変更されていると思ってたけど日付は違うけど内容は同じでした。

何かが違うようです。

10627/10586 BQO00549  konno            Re^2: vzk07v6h UP
( 1) 23/03/15 16:53 10625へのコメント(めざらさん) コメント数:1
> 現状では,常に 2 が立っているように見えます。

え、そうですか? 私の環境では、SLが 0,1 では、ショート名でオープン表示されていると思うのですが。

> また,0と1が上記と逆転しています。(これは本来望ましい仕様かとは思いますが)
> 2 のときは free+LFN で,3 のときは time+LFN なので1が(矛盾なく)立っています。
> 製品版は free なので,0 free +1 time +2 LFN表示 というのがしっくりきますが。
> (高橋版は「作成者の趣味」で異論を受け付けず 0 time ですけどね)

げげ、0と1を高橋版と入れ替えていたみたいです。すっかり忘れていました。(^^;
では、オプションの意味を

・Sl ステータスライン表示オプション変更 0:free 1:time 2:LFN View open 3:sl1+sl2

こう変えてしまってもいいでしょうか。(^^;
でもオリジナルと高橋版と私家版で表示がコロコロ変わるのは混乱しそう。(^^;


10628/10586 BQO00549  konno            Re^2: vzk07v6h ソース差し替え
( 1) 23/03/15 17:16 10626へのコメント(shadowさん) コメント数:1
> VZK07V6H.COM の差分を当てて出来たのは62,870 vzibmj.com でした。
> ソースから出来たのは 62,854 vzibmj.com でした。

ああ、またポカをやっていました。(>_<)
類似のフォルダがいくつもあるので古い方を使ってしまっていました。
申し訳ないです。m(__)m

2023/03/15  16:31            50,394 K07V6Hs.lzh
ソース 2023-03-15 再再アップ(^^;
しましたので差し替えてください。m(__)m


# やばい! SL2 を設定していないと上書きセーブでも大文字になってしまうのか。(>_<)
  うう、一度やったらもう止められなくなってしまう、、、中毒症状がぁ、、、


10629/10586 DGF01024  めざら           Re^3: vzk07v6h UP
( 1) 23/03/16 08:15 10627へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
あれ?…と思って開き直して初めてオプションの意味を理解しました。
オプションの値を変更して #] を実行したから書き換わるというものではないと。
ごめんなさい。えらいカン違いしていました。(^o^ゞ

> ・Sl ステータスライン表示オプション変更 0:free 1:time 2:LFN View open 3:sl1+sl2
> こう変えてしまってもいいでしょうか。(^^;

ご随意にお願いします。だって,SL は kVZ で追加されたオプションですから。
(こちらもカン違いしていましたが,高橋版は time 固定でしたね)
わたしとしては,感覚としてしっくりくるので大歓迎です。
konno さんが混乱しなければ良いのではないかと思います。

10630/10586 BQO00549  konno            Re^4: vzk07v6h UP
( 1) 23/03/17 01:23 10629へのコメント(めざらさん)
> あれ?…と思って開き直して初めてオプションの意味を理解しました。
> オプションの値を変更して #] を実行したから書き換わるというものではないと。

オープン時にロング名でオープンなので、そういうことです。

> > ・Sl ステータスライン表示オプション変更 0:free 1:time 2:LFN View open 3:sl1+sl2
> > こう変えてしまってもいいでしょうか。(^^;
>
> ご随意にお願いします。だって,SL は kVZ で追加されたオプションですから。
> (こちらもカン違いしていましたが,高橋版は time 固定でしたね)

げげげ、SLは自分が作ったオプションでしたか、私は2重に勘違いしていました! m(__)m

> わたしとしては,感覚としてしっくりくるので大歓迎です。
> konno さんが混乱しなければ良いのではないかと思います。

ではこのままということでよろしくです。(^^;


10631/10586 BNY00646  shadow           Re^3: vzk07v6h ソース差し替え
( 1) 23/03/17 12:45 10628へのコメント(konnoさん) コメント数:1
> ソース 2023-03-15 再再アップ(^^;
> しましたので差し替えてください。m(__)m
有難うございます、頂きました。

> # やばい! SL2 を設定していないと上書きセーブでも大文字になってしまうのか。(>_<)
>   うう、一度やったらもう止められなくなってしまう、、、中毒症状がぁ、、、
私的には最初の版でもOKです。

10633/10586 BQO00549  konno            Re^4: vzk07v6h ソース差し替え
( 1) 23/03/17 18:12 10631へのコメント(shadowさん)
> 私的には最初の版でもOKです。

最初の版は、ロング名で表示は出来ていますが、[ESC]P でファイル名を変更すると
全部大文字になってしまうので使い物になりません。
今の版でも誤動作するマクロがあるかもしれませんので、気が付いたらご報告願います。


10637/10586 DGF01024  めざら           Re: vzk07v6 UPしました
( 1) 23/03/17 22:05 10586へのコメント(さん) コメント数:2
参照先:http://mezala.la.coocan.jp/
VTDOS 環境ですが,300KB ほどの比較的大きなファイルをちょうど今編集していて,
clppst.exe+clppst.def による [ESC]I 様態(*)の作業を行って気が付きましたが,
ラップアラウンドエラーが出る状況になっています。テンポラリファイルエラーも
出ました。現在の版の k07v6h と 前の版の k07v6d で発生を確認しました。

ファイルは 300KB 弱ですが,2,100行強,長い行もありますが,割に普通です。

k07t5 に差し替えると,上記のラップアラウンドエラーは発生しなくなりました。
現在の作業はこの版で乗り切ろうと思います。
k07t5 でもテンポラリファイルエラーが出やすいサイズなので,分割作業かしら。

(*)clppst.def は巨大ブロックコピー機能を使っています。

お手元でのテストが必要なら,当該ファイルのコピーをお渡しできます。


10640/10586 CRG00666  文太             Re^2: vzk07v6 UPしました
( 1) 23/03/18 01:38 10637へのコメント(めざらさん)
めざらさん

>出ました。現在の版の k07v6h と 前の版の k07v6d で発生を確認しました。
>ファイルは 300KB 弱ですが,2,100行強,長い行もありますが,割に普通です。
>k07t5 に差し替えると,上記のラップアラウンドエラーは発生しなくなりました。

 ありがとうございます!
 違う話だと思うけど、僕も、それに近いことに悩まされています。



10642/10586 BQO00549  konno            Re^2: vzk07v6 のバグ?
( 1) 23/03/18 02:09 10637へのコメント(めざらさん) コメント数:1
> VTDOS 環境ですが,300KB ほどの比較的大きなファイルをちょうど今編集していて,
> clppst.exe+clppst.def による [ESC]I 様態(*)の作業を行って気が付きましたが,
> ラップアラウンドエラーが出る状況になっています。テンポラリファイルエラーも
> 出ました。現在の版の k07v6h と 前の版の k07v6d で発生を確認しました。
> ファイルは 300KB 弱ですが,2,100行強,長い行もありますが,割に普通です。

出ましたか、これは再現して調べたいです。

> k07t5 に差し替えると,上記のラップアラウンドエラーは発生しなくなりました。

げげ、今の版は暫定版なので仕方がないですが、k07t5 って結構前のだっけ?

> (*)clppst.def は巨大ブロックコピー機能を使っています。
> お手元でのテストが必要なら,当該ファイルのコピーをお渡しできます。

是非お願いします。メールででも。m(__)m
バグの絞り込みが出来るかもしれません。
再現手順も詳しくお願いします。


10649/10586 BQO00549  konno            VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/18 16:24 10642へのコメント(konnoさん) コメント数:3
めざらさんからテストデータをメールでいただきました。
ありがとうございます。

> > VTDOS 環境ですが,300KB ほどの比較的大きなファイルをちょうど今編集していて,
> > clppst.exe+clppst.def による [ESC]I 様態(*)の作業を行って気が付きましたが,
> > ラップアラウンドエラーが出る状況になっています。テンポラリファイルエラーも
> > 出ました。現在の版の k07v6h と 前の版の k07v6d で発生を確認しました。

VTDOSのEMS環境ではデータが壊れるのを確認しました。他のVZも同様でした。
ラップアラウンドエラーやテンポラリファイルエラーは出ていません。
VTDOS.CFG の設定で
SCASB_MODE=1
にしているのも影響しているかもしれません。

試しに EMS環境で
SCASB_MODE=0
にしてみましたがラップアラウンドエラーやテンポラリファイルエラーは出ませんでした。
ファイル内容は壊れます。

> > k07t5 に差し替えると,上記のラップアラウンドエラーは発生しなくなりました。

これは環境による差異と思われます。
VTDOSで EMSを使わない XMS環境ではデータが正常に処理出来ました。他のVZも同様です。
VTDOSで EMSも XMSも使わない環境でもデータが正常に処理出来ました。他のVZも同様。

やはり、VTDOSには、EMSのバグがあるように思われます。
めざらさんは、EMSメインの設定なのではないでしょうか。

VTDOS には、メモリ拡張オプションがいくつかありますが、これも動作不良の原因の可能性があります。
私は何度か不具合を経験して、拡張オプションを全て止めました。
作者様も使っていないそうです。(^^;

私の今のVZ環境をだしておきます。

---------- option.lst --------------------- 2023/03/18 (Sat) 13:56 --------
 DOSV  VZt  VZk  z+  St-  vw+  zk-
 
 Bt64     Bf5632   Bo32768  EM128    XM16384  Bm380    Ba4      Hs256
 Hf256    Hx128    Ha92     Hw128    Bl8192   Bc1024   Bu256    Bv256
 
 SW2   TC12  WD0   We134 PG0   RS3   Ta8   Tb4   Ci4   Co2   WL1
 LC35  VM0   CA52  Sr39  Qt1   Qc20  Qw0   RM0
 
 Dl-  Dc+  Dt+  De+  Ds+  Db-  Dn-  Du+  Df+  Dp-  Dh+  Dg+  Dr+  Dj+  Dv+
  
 Ei+  Es+  Ez-  Eb+  Eu-  Et+  Eh-  Ew-  Ec+  Ex-  En-  Ev+  Ek-  Ea-  RO-
 Ej-  Eo-  El-
 
 RX-  ZH-  Sx+  Se+  Sd+  Sk-  Sy-  YN-  Sn-  Sq-  FP+  FR+  FK+  FQ+  Sz-
 
 Sc-  Nd+  Vb+  Sv-  Tv+  YM-  CH-  Hp-  Hp-  lf-  Is-  Da+  Nf+
 Ce0      ml + mc*  Ys$09  Yo$0E  Yr$0B
---------- End of option.lst ----------------------------------------------


他でも書いていますが、VTDOS+VZでは
XM1
EM12
などとするのが安全です。
EM0 でもメモリを食うものの、VZのスワップも無くなるのでより安全かもしれません。

めざらさんのデータを使って、10#さんに VTDOSのEMSがVZで不具合が出る件を報告してもいいですか。
さすがにここまで不具合事例が出ては、10#さんに対応をお願いした方がいいと考えます。
対応してくれるかどうかはわかりませんが。


10652/10586 BQO00549  konno            Re: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/18 21:30 10649へのコメント(konnoさん) コメント数:1
> VTDOS には、メモリ拡張オプションがいくつかありますが、これも動作不良の原因の可能性があります。
> 私は何度か不具合を経験して、拡張オプションを全て止めました。
> 作者様も使っていないそうです。(^^;

過去ログを見たら、これは2014年ごろで、2018年ごろの #8006 の10#さんの発言

> 最近はXMSもEMSもフルでVTDOSもTPAEXT=1で使ってます。

XMSもEMSもフルで指定した場合、VZは XMS を優先に使用します。XMSを使い切るまで EMSは使われません。
この環境なら安定するはずですね。(^^;
メモリ拡張オプションの不具合も、もしかしたら EMSが原因だったりして。

ということで、今の私のVTDOS.CFG は
TPAEXT=1
TPALOW=1
を復活させました。VZの起動バッチには
$XSET vzsym=NOQ  VTDOS
を仕込み、vz.def には

#if VTDOS	; VTDOS
XM1
EM0
SW1
#nedif

こうしてEMSを使わず XMS だけにしてコード領域のスワップを止めました。
それでも VMAP では

09CB <--    1  222080  vzibmj 1.60v -z /vz.def    00 1B 21 29 3F
4004-E7FE   1  688032  <free>

これだけメモリが空いています。余裕ですね。


10653/10586 DGF01024  めざら           Re: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/18 21:34 10649へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
EMS 関連ですかぁ……
メモリだと対処のしようがないですもんねぇ。

手元で,そのあたりの設定をいじって試してみたところ,
-EM0 -XM1 を指定した状態で割に安定しているように見えます。
ありがとうございます。

なお,あのデータは昨日既に公開済にしているものなので,問題ありません。
オープンドキュメントって個人情報入っているのかな?
まぁ,レジストしてるわけだし…

10654/10586 BQO00549  konno            Re^2: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/18 23:41 10653へのコメント(めざらさん) コメント数:1
> 手元で,そのあたりの設定をいじって試してみたところ,
> -EM0 -XM1 を指定した状態で割に安定しているように見えます。

XMSで問題なく動いているならやっぱり EMS 絡みだったのでしょうね。

私はODSデータを LibreOffice で読んで、全選択でコピーして ClpPst.def で新規ファイルに貼り付けました。
それを、TSV データとテキスト比較マクロで比較して完全一致を確認しました。
もう一つ、新規ファイルを開いて、[ESC]I で TSVデータを挿入して、元のデータと比較して完全一致を確認しました。

EMS環境では、複数のVZで確認し、全てデータが不一致になりました。
VZのコード領域っぽい文字列が混ざるので、EMSのスワップ自体が危険と感じました。

ずっと使ってきて今頃こういう事例が出てくるのは、ブロック移動関連のルーチンが怪しいのかも。
ClpPst.def では EK+ のようなので、EK では無いのか、[ESC]I との共通点は #B #y #i あたり?

> なお,あのデータは昨日既に公開済にしているものなので,問題ありません。

ありがとうございます。公開データなら問題なさそうですね。
では 10#さんにメールしてみますね。


10655/10586 CRG00666  文太             Re: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/18 23:43 10649へのコメント(konnoさん) コメント数:2
konnoさん、あるいは、めざらさん

 ありがとうございます。どうもそれっぽいぞ、という気がしています。

 で、そのデータ(ファイル)の壊れ方というのを、簡単に説明して
いただけませんか。

 僕のところで、4,5回起こったのは、vtdos窓が落ちる、というのでは
なく、まさしく「ファイルが壊れる」だったのです。
 こちらでの壊れ方は、ファイルの途中が抜ける、あらぬところのファイルが
変な箇所に挿入される、ファイル末が消失する。こんな感じなのですが。
 文字化けとかバイナリを見てるみたいな気持ちの悪い画面はない。

 僕のところは、比較的大きなファイルです。

masttasm.txt 1,897,832 2023-03-17 16:35

 たとえば、こんなの。1MB以上かその近辺ぐらいのサイズです。

 で、上のようなファイルで、ちまちま文字化けその他を退治してるときに
ファイルに壊れられると、「ほんと嫌になっちゃう」なので、それで例の

c:\0etxt\
c:\0etxt2\

 とバックアップフォルダを作ることにしていたのです。

 違う話でしょうかね?
 EMSかぁ。ありがたいんだけどなぁ。ないとほんと困るのだけど。

 じつは、僕はこれが vtdos 環境のみで起こるのかどうか、よく分かりません
でした。WinMEで起こったことがない、と思う自信はなかった。
 他のミスオペレーションによるファイル破壊の可能性もありましたから。可能性
というより、実際にそれはあったと思う。

 ただ思い出していたのは、niftyの過去ログを壮絶に整理していたとき(切った
貼ったの連続。nifsort もビシバシ=スワップありコマンドライン。awkで1記事
1ファイルにするとかもした=1200個ファイルのアウトプット)、こんなこと、
起こらなかったよ、ということ。

 とりあえず、vtdos環境では、konnoさん設定でいってみます。
 やだよ、ファイル壊れるの。




10665/10586 CRG00666  文太             Re^2: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/19 15:56 10652へのコメント(konnoさん) コメント数:1
konnoさん

 とりあえず、これでしばらく様子をみます。

#if VT		;VTDOS
XM1
EM0
#endif		;#10652 by konno, #nedif になってますよ。

 主たる作業場を、やはり WinME に戻すことにもしました。


>vz -z
XMSを最大 16384 KB使用します


173E <--    1  223520  vz 1.60t -z                00 1B 21 29 3F
4DD1-9FFE   1  336592  <free>	;少ねえぞ。

----- EMS ver4.0 (frame: C000h) -----       ----- XMS ver2.00 -----
handle pages   size  name                   HMA used: 63 KB by DOS
------ ----- ------  --------               EMB free: 32767 KB
     1     2    32k  for Vwx!	;これも本当は少し気になるのだけど。


10666/10586 CRG00666  文太             ファイル中身の破損
( 1) 23/03/19 16:00 10655へのコメント(文太さん) コメント数:1
 なぜそんなファイルの壊れ方に気づけるのか?
 質問にお答えします。

 編集処理をしてファイルサイズがどかっと変化したら、まず気づきます
(そのためのバックアップ)。

 もっと細かい場合を、現在作成中の_MASTERING TURBO ASSMBLER_ のetext 
をサンプルに具体的に説明します。etextは、以下のような体裁になっています。


=============== SAMPLE STARTS =================

---------------------	★タイトルページ

     MASTERING TURBO ASSMBLER, Second Edition
     by Tom Swan, SAMS PUBLISHING
     Copyright 1995 by Tom Swan

---------------------	★目次

Contents		;目次は大事です。全体が掴めます。Windows Program-
			;ming も OOP も、ほぼ必要ありませんから。

Part I Programming with Assembly Language
1  Introduction
Learning Assembly Language				4	;ページ数
Advantages of Assembly Language				7	;いちおう重要

<skip>

Index							870

---------------------

---------------------[End of Page 3]--------------------	★本文始まり
4							;オリジナル・ページ
							;番号が上にある場合
Learning Assembly Language 				;もある。

I remember when I discovered assembly language. The nearest I've come to
experiencing the same elation was the day I first balanced a two-wheeler,
wiggling my way down our street, my father's thumb no longer snagging my
belt, my fear of falling melting like bee's wax in the sun.
<skip>

---------------------[End of Page 4]--------------------	★本文続く

<skip, skip, skip>

869								★890pages
---------------------[End of Page 869]---------------------	★の本
								★索引
Index

Symbols
, (commas), macro parameters, 303 				;キーワードと
! (exclamation point), macro string characters, 307 		;ページ数
% (percent sign), expression evaluate operator, 306 		;いちおう重要
%NOLIST command, 331 

870
---------------------[End of Page 870]---------------------	★索引続く

<Index, skip, skip, skip>

Z
zero (string instructions), 138

890
---------------------[End of Page 890]---------------------	★書籍終わり

=============== SAMPLE ENDS =================


(0)
etextの全体像(構造的骨格)は上のとおり。

(1)
890
---------------------[End of Page 890]---------------------
 は、OCRソフトが自動でつけるページフッタ。
 上の行の890が、オリジナル書籍に入っていたページ番号。
 これは完成形。ページ番号は化けたり、スペースが入っていたり色々ある。
 ページフッタは、中身以外は機械のように正確に付く。

(2)
---------------------[End of Page 3]--------------------	★本文始まり
4
 のように、オリジナル・ページ番号がページの上、前ページフッタの次行に
置かれていることもある。

(3)
 この [End of Page X] は、最初、現実を反映していないのが普通。Prefaceとかで、
xxiii のようなローマ数字が使われるから。OCRは、pdfの1ページから番号を振る
 このズレは、手作業あるいは、order.def by mikome で直します。
 現在位置がすぐさま確認できないと、オリジナルpdfとの照合が困難になるから。
 この照合は、いっぱい必要です。プログラム・リストや表、図は、そもそも
データ的に崩れているのが普通。
 目次、索引のページ数データ(ふつう健全)が「いちおう重要」なのも、この
ページフッタと整合させたいから。キーワードですぐ飛べない場合もある。

(4)
 (3)の作業が正確に終了したら、「890」の行は削除。要らない情報は、できる
かぎり掃除して除去する。もちろん、「890」と「End of Page 890」が正確に一致
していることを確認してから。

(5)
 しかし編集作業中、いろいろ起こる。だから、>cgrep "End of Page" through filter.def
は、頻繁に行う。>cgrep -A1 -B1 "End of Page" (ページフッタ前後行も) も頻繁。

 とうぜん
---------------------[End of Page 1]--------------------
---------------------[End of Page 2]--------------------
---------------------[End of Page 3]--------------------
 なんてのが、永遠と続く結果が得られる。
                 ^ ここにカーソルをおいて、numchk.defもする。

(6)ガーン!

 Page 123 - Page 134 が消失してる!
 Page 231 - Page 239 が Page 155 の前に来てる!
 作業前は、健全だったのに!


 なんで素直にpdfで書籍を書籍として読み、本質であるアセンブラのお勉強に
励まないのですか? pdfは、WinMEでさえ読みづらく、DOSではまったく
読めないからです。検索もジャンプもうまくいかない場合が多い。
 あと、あと、あと、テキスト・フェチだからです。機械を使っている
=使われているというのが、快感だから。



10667/10586 BQO00549  konno            Re^2: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/20 00:38 10655へのコメント(文太さん) コメント数:1
>  で、そのデータ(ファイル)の壊れ方というのを、簡単に説明して
> いただけませんか。

入れ違いに成りましたが、#10654 の説明でよろしいでしょうか。

>  じつは、僕はこれが vtdos 環境のみで起こるのかどうか、よく分かりません
> でした。WinMEで起こったことがない、と思う自信はなかった。
>  他のミスオペレーションによるファイル破壊の可能性もありましたから。可能性
> というより、実際にそれはあったと思う。

VZのバグも、[ESC]I マクロで新たに発覚しましたね。
EK- #B で、CP ズレなどが起きることがある。
BL3072 あたりでは致命的なエラー  BL8192 あたりで CP ズレ?

そして、BL1024 あたりで、VTDOSのEMS環境だけ、内容が壊れる。
これがおそらくVTDOSのEMSのバグではないかと疑われたのです。

>  とりあえず、vtdos環境では、konnoさん設定でいってみます。
>  やだよ、ファイル壊れるの。

それが良いと思います。


10669/10586 BQO00549  konno            Re^3: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/20 00:41 10665へのコメント(文太さん) コメント数:1
> #endif		;#10652 by konno, #nedif になってますよ。

げげ、何処かで打ち間違えて、そのままコピーして使っていました。(>_<)
直そうとしたら、"#eedif" にしちゃってるし。(^^;
そういえば、わなまさんは "#ifend" とやっていたような。
5文字なら通るみたいに言っていたような気がします。(^^;

> 173E <--    1  223520  vz 1.60t -z                00 1B 21 29 3F
> 4DD1-9FFE   1  336592  <free>	;少ねえぞ。

10#さんも
> > 最近はXMSもEMSもフルでVTDOSもTPAEXT=1で使ってます。
こう言っているので、TPAEXT=1 を設定すれば良いと思います。

>      1     2    32k  for Vwx!	;これも本当は少し気になるのだけど。

これも TPAEXT=1 を設定すれば余裕ですよ。(^_^)


10670/10586 BQO00549  konno            VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 01:39 10654へのコメント(konnoさん) コメント数:2
> ありがとうございます。公開データなら問題なさそうですね。
> では 10#さんにメールしてみますね。

10#さんにメールして、お返事をもらえました。
確認してもらったのですが、予想外の結果でした。

> まず、僕の環境でXMSのみ、EMSのみの環境でテストしてみましたが、
> EMSでは正常に貼り付ける事が出来ました。
> XMSの場合ではマクロが正常に終了せず、CLPPST.TMPがVZに残った
> 状態で中断しました。
> 続いてclppst.defによる貼り付けでは無く、メモ帳に貼り付けて保存した
> ファイルを[ESC]Iで挿入した場合正常に保存されました。

私のテストでも、EMS環境で、BT32 などの場合は正常に処理されたようでした。
めざらさんのデータだけでは検証には不十分なようです。

としきさん
検証のためには、としきさんの生ログデータが最適だと思います。
10#さんにメールで送ってもかまわないでしょうか。

検証用のスレッドを立てたいと思います。


10671/10586 CRG00666  文太             Re^4: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/20 01:52 10669へのコメント(konnoさん) コメント数:2
konnoさん

 色々とありがとうございます。

>そういえば、わなまさんは "#ifend" とやっていたような。
>5文字なら通るみたいに言っていたような気がします。(^^;
 僕の記憶では、cmos版では文字数、高橋版以降でちゃんと文字チェック
だったと思います。ソースでご確認ください。

>これも TPAEXT=1 を設定すれば余裕ですよ。(^_^)
 うーん、vtdos.cfgですね、設定してみました。それを止めたうっすらと
した記憶が、、、。
 もう、この場所は、あくまで実験なのだ、何が起こるか分からないのだ、という
覚悟です。

 思ったのですが、10#さんは、やっぱりマクロを使わない人だったのだと
思う。だから、「そんな使い方、あるわけないだろう」というvtdosの設計に
なっている、、、。
 ま、EMSが主題なわけですが。ただ、テンポラリーファイルが絡んじゃう
からなぁ。
 16MBまで行けるVzでも、1MBのテキストもきっと編集したことないの
でしょう。プログラマなら、ふつう。常識的な使い方。

 で、10#さんは、そんなVzのどこに魅力を感じたのだろう?
 macro.asm, expr.asm が、Vzの本丸だと、現在、思い込んでいます。
 そうでなければ、mifesでも秀丸でもいいんじゃないの?
 そもそもDOSにこだわる必要があるの???

 R・ダンカンの名著とされる「_Advanced MS-DOS Programming_のお世話になった」
と言ってたから、DOSの深みにはまっちゃったのかな? 若気のいたり。
Win98時代。NT/2000 の姿がちらりちらりな時代。



10672/10586 CXB00940  としき           Re: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 01:56 10670へのコメント(konnoさん) コメント数:1
参照先:http://toshiki.la.coocan.jp/
> 検証のためには、としきさんの生ログデータが最適だと思います。
> 10#さんにメールで送ってもかまわないでしょうか。

かまいません。
機微な部分は改竄済みですし、それ以外は公開されている情報ですから。


10673/10586 CRG00666  文太             Re^3: VTDOSのEMS環境は避けた方がいいです。
( 1) 23/03/20 02:05 10667へのコメント(konnoさん)
konnoさん

>入れ違いに成りましたが、#10654 の説明でよろしいでしょうか。

 よろしいとは言えませんが、これ、違う話だ、と思っています。
 僕にスワップは関係ないし、Vzのコード領域がデータと混ざることは
ないです。この辺を確認したくて、#10666で、あんなに長々書いたのですね。

 うーん、filter.defで、Vz内部ラップアラウンドが起こっているか、
置換処理(テキストバッファくずれ?)なのかなぁ?
 とりあえず、WinMEできっちり見定めます。見定められなかったら、幸運。

 vtdosでのEMSかXMSか、どうかどうか、なんとかしてください。
 m(__)m



10674/10586 DGF01024  めざら           Re: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 10:35 10670へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
予想外ですね……まるで逆(EMS ・ XMS)とは思いもよりませんでした。
とくに clppst.def 異常終了で clppst.tmp が残ったままという現象は,
わたしのところでは EM1・XM0 のときに発生します。(ここ正反対)

環境って,そんなに違うのですかね。TPAEXT=1 は一貫して設定していますし,
BT は(かつての LX 以外は)昔からずっと 64(最大)でした。

ふつうに使えるかどうかわかりませんが,
個々の環境.DEF をインクルードして,環境の共有をすることを提案します。

方法としては,(非常駐バッチで起動することが前提になってしまいますが)
個々の環境の値を - あじゃ - さんの opt_lst.def で出力したものを
(tVZ dVZ kVZ で追加されたオプションを追加する必要があるかも)
マクロファイルに加工して保存したファイルを各人が準備・共有。
バッチを一度終了して,VZ +m.def -bm20000 のようにして起動してテスト。
(bm の空きが 1000 くらいあれば bm の指定は不要かと思います)

いかがでしょう。


10675/10586 CRG00666  文太             TPAEXT=1
( 1) 23/03/20 12:16 10671へのコメント(文太さん)
--- vtdos.cfg ---
DISKFREE=K
USECMD=1
UMB=1
SCASB_MODE=1
TPAEXT=1
-----------------

173E <--    1  223520  vz 1.60t -z                00 1B 21 29 3F
4DD1-E7FE   1  631504  <free>

----- EMS ver4.0 (frame: E800h) -----       ----- XMS ver2.00 -----
handle pages   size  name                   HMA used: 63 KB by DOS
------ ----- ------  --------               EMB free: 32767 KB
     1     2    32k  for Vwx!
  free  2046 32736k

 こんな感じになりました。m(__)m
 怖いのは怖いけど。

 皆で同じ環境をつくって調査する、ということなら、データ等お送り
ください。clppest.exe(def) の話は、まったくついて行けておりませんが。



10676/10586 BQO00549  konno            Re^2: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 13:42 10672へのコメント(としきさん)
> > 検証のためには、としきさんの生ログデータが最適だと思います。
> > 10#さんにメールで送ってもかまわないでしょうか。
> かまいません。
> 機微な部分は改竄済みですし、それ以外は公開されている情報ですから。

ありがとうございます。
これから再現手順とか色々纏めてメールで送ります。
昨日は気力が尽きてしまったもので。(^^;


10677/10586 BQO00549  konno            Re^2: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 14:41 10674へのコメント(めざらさん) コメント数:1
> 予想外ですね……まるで逆(EMS ・ XMS)とは思いもよりませんでした。
> とくに clppst.def 異常終了で clppst.tmp が残ったままという現象は,
> わたしのところでは EM1・XM0 のときに発生します。(ここ正反対)

私もビックリしました。
やはり再現条件は揃えないと駄目なんですね。
めざらさんのデータでは
VZT 高橋版で BT64 BL8192 SW0 で常用DEFで ClpPst.def 方式で実行したら、正常でした。
同じ条件で、[ESC]I マクロでは内容破壊、サイズが小さくなりました。
BT32 にして、[ESC]I マクロでは正常に処理出来ました。

これでは特定は難しいですね。
としきさんのデータは今まで色々検証してきているので、プロが見れば特定できる可能性があると思います。

> ふつうに使えるかどうかわかりませんが,
> 個々の環境.DEF をインクルードして,環境の共有をすることを提案します。

これはいいですね。
とりあえずは、オリジナルのVZ.DEFを、DS+ と変更し、VZO.DEF として送ります。
DS+ でファイルサイズが表示されるので、比較するまでもなくテキスト破壊がわかります。
オリジナルは、BT64 BL2048 SW3 で、[ESC]I マクロでは内容破壊、サイズが小さくなります。

BL128 〜 2048 の範囲では、VTDOS+EMS環境だけが異常になります。
SW0 BT32 でも異常になりました。

VZ /vzo  で起動します。(VZは各種VZを指定可)


10678/10586 DGF01024  めざら           Re^3: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/20 22:34 10677へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
> VZ /vzo  で起動します。(VZは各種VZを指定可)

それでもよいのですけれど,わたしが言いたかったのは,

= m
* O
Bt64
Bf64
Bo32
EM0
XM1
SW3
RM0
;; 以下,省略。
*

みたいなファイルをそれぞれの環境で作って共有すれば,
どこに問題があるのかを解明するヒントになるんじゃないかなと。


10680/10586 BQO00549  konno            Re^4: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/21 01:22 10678へのコメント(めざらさん) コメント数:1
> みたいなファイルをそれぞれの環境で作って共有すれば,
> どこに問題があるのかを解明するヒントになるんじゃないかなと。

なるほど、オプションリストのメモリ関連だけを DEF 形式にするようなものですね。
各自の常用環境で問題が出れば、直ぐにオプションがわかって試せますね。
そういう情報はドシドシあげてほしいですね。


10682/10682 BQO00549  konno            VTDOS+EMS+VZでの不具合検証
( 1) 23/03/21 13:13 コメント数:3
VTDOS+EMS+VZでの不具合検証スレを立てました。
きっかけは #10637 の、めざらさんの不具合報告からです。

> > VTDOS 環境ですが,300KB ほどの比較的大きなファイルをちょうど今編集していて,
> > clppst.exe+clppst.def による [ESC]I 様態(*)の作業を行って気が付きましたが,
> > ラップアラウンドエラーが出る状況になっています。テンポラリファイルエラーも
> > 出ました。現在の版の k07v6h と 前の版の k07v6d で発生を確認しました。

VTDOSのEMS環境ではデータが壊れるのを確認しました。他のVZも同様でした。
ラップアラウンドエラーやテンポラリファイルエラーは出ていません。

> > k07t5 に差し替えると,上記のラップアラウンドエラーは発生しなくなりました。

これは環境による差異と思われます。
VTDOSで EMSを使わない XMS環境ではデータが正常に処理出来ました。他のVZも同様です。
VTDOSで EMSも XMSも使わない環境でもデータが正常に処理出来ました。他のVZも同様。
つまり、テンポラリファイルのみ使用でも問題が出なかったのです。

めざらさんの環境とこのデータの関係については別に検証が必要と思われます。
それはともかく、私はVTDOS+EMS+VZでの不具合は問題と感じて、10#さんにメールで報告してみました。
その結果は予想外でした。

> まず、僕の環境でXMSのみ、EMSのみの環境でテストしてみましたが、
> EMSでは正常に貼り付ける事が出来ました。
> XMSの場合ではマクロが正常に終了せず、CLPPST.TMPがVZに残った
> 状態で中断しました。
> 続いてclppst.defによる貼り付けでは無く、メモ帳に貼り付けて保存した
> ファイルを[ESC]Iで挿入した場合正常に保存されました。

私のテストでも、EMS環境で、BT32 などの場合は正常に処理されたようでした。
めざらさんのデータだけでは検証には不十分なようです。
それで更なる検証のために、としきさんの生ログデータを使わせてもらいました。
それについては次回以降からやります。


10683/10682 BQO00549  konno            現状のVTDOSを安全に使用する為の設定
( 1) 23/03/21 13:15 10682へのコメント(konnoさん)
現状のVTDOSを安全に使用する為の設定です。
XMSもEMSもフルで指定した場合、VZは XMS を優先に使用します。XMSを使い切るまで EMSは使われません。
この環境ならまあまあ安定するはずですが、EMSを使用した場合の挙動は保証されません。
メモリ拡張オプションの不具合も、もしかしたら EMSが原因だった可能性もあります。

ということで、今の私のVTDOS.CFG は
TPAEXT=1
TPALOW=1
を復活させました。VZの起動バッチには
$XSET vzsym=NOQ  VTDOS
を仕込み、vz.def には

#if VTDOS	; VTDOS
XM1
EM0
SW1
#endif

こうしてEMSを使わず XMS だけにしてコード領域のスワップを止めました。
vwx.com も EMSを使うので、不安なら起動オプションで、Z1 にすれば良いでしょう。
それでも VMAP では

07D6 <--    1   20944  vwx 1.08b -z1 -v2 -x1 -l6
0E21 <--    1  222080  vzibmj 1.60v -sw2 -z       00 1B 21 29 3F
445A-E7FE   1  670272  <free>

これだけメモリが空いています。余裕ですね。
コンソールやファイラーでEMSを使いたいなら、EM4 は必要です。
ある程度EMSが欲しいなら、EM128 (2M)くらいならほとんど問題ないかと思います。
オリジナルVZでは、#if VTDOS が効かないので、EM128 は残してあります。


10684/10682 BQO00549  konno            検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/21 13:18 10682へのコメント(konnoさん) コメント数:2
としきさんのデータは今まで色々検証してきているので、プロが見れば特定できる可能性があると思います。
みんなで共有できる共通の検証環境として、10#さんに、としきさんのデータと VZO.DEF を送りました。

 添付ファイルは

2022/03/03 01:00 170,335 0007.cgi	オープンするファイル
2022/03/02 23:04 132,553 0007.cg	[ESC]I で挿入するファイル
2022/03/03 19:11 302,888 0007-i.cgi	正常な結果ファイル(比較用)
2023/03/20 14:45  15,980 vzo.def	オリジナルVZ.DEF  DS+ に変更

まずは、オリジナルのVZ.DEFを、DS+ と変更し、VZO.DEF とします。
DS+ でファイルサイズが表示されるので、比較するまでもなくテキスト破壊がわかります。
オリジナルは、BT64 BL2048 SW3 で、[ESC]I マクロでは内容破壊、サイズが小さくなります。

BL128 〜 2048 の範囲では、VTDOS+EMS環境だけが異常になります。
SW0 BT32 でも異常になりました。


検証手順は

VZ /vzo  で起動します。(VZは各種VZを任意に指定)

170k の 0007.cgi をオープンする

[ESC]I で132k の 0007.cg を挿入する ファイルサイズは、302,888 になる
この時点でファイルサイズが違っていたら内容が壊れています。

ファイルサイズが同じなら、^QR でカーソルをテキスト先頭に
302k の比較用 0007-i.cgi をオープンして、[F04] で分割して [Shift][F03] で比較する
「一致しました」というメッセージが出たら、正常です。


この検証で興味深いのは、BL の値で結果が変わることです。
BL128 〜 2048 の範囲では、VTDOS+EMS環境だけが異常になります。 ※他のVZ環境では全て正常になる
BL1024*3(3072)のあたりでは、ファイルサイズが変わって致命的なエラー ※VZのバグ
BL1024*8(8192)のあたりでは、CP ズレが起こり、ブロックが入れ替わります。 ※VZのバグ

もしかしたら、1か所のルーチンの不具合でこの3つの不具合が起こっている可能性もあるかもです。


10685/10586 DGF01024  めざら           Re^5: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/21 13:51 10680へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
> なるほど、オプションリストのメモリ関連だけを DEF 形式にするようなものですね。

セクション * Option にあるもの全部です。メモリ関連だけではありません。

10686/10586 BQO00549  konno            Re^6: VTDOSのEMS環境は更なる検証が必要
( 1) 23/03/21 21:23 10685へのコメント(めざらさん)
> > なるほど、オプションリストのメモリ関連だけを DEF 形式にするようなものですね。
> セクション * Option にあるもの全部です。メモリ関連だけではありません。

げげ、そうなると何ページかに渡ることになりますね。
大きなデータは、テスト掲示板のほうにお願いします。
#test75 のように、#test に発言番号を続けるとリンクできますので。


10687/10682 BQO00549  konno            それは1年前の野ざらし言から始まった
( 1) 23/03/21 22:55 10684へのコメント(konnoさん)
今回の問題が見つかったきっかけは、1年前の野ざらし言の書き込みからでした。
関連しそうなツリーや記事のリンクを張っておきたいと思います。

野ざらし言#4609.ファイルの挿入 - としき 22/02/05-18:33 
★ 全てはこのツリーから始まった。非常に長いツリーです。


野ざらし言#4700.ファイルの挿入とオプションの値 - としき 22/05/03-22:43
★ 非常に長いツリーです。

野ざらし言#4753  konno
 &t トレースでは ek-, の時 #i の挿入でカーソル位置がズレたように見えたので。

野ざらし言#4784  添付ファイルは konno
2022/03/03 01:00 170,335 0007.cgi オープンするファイル
2022/03/02 23:04 132,553 0007.cg [ESC]I で挿入するファイル
2022/03/03 19:11 302,888 0007-i.cgi 正常な結果ファイル(比較用)

野ざらし言#4800  行ブロックズレはマクロのせい? konno
トレースで見ると、3回目の #i のブロックペースト後が問題です。
 Ek- の時カーソル位置更新しますが、その位置が1文字ズレて改行の所になります。
本来なら行頭にくるはずなんですが、1文字ズレることがあるんですね。

野ざらし言#4835 めざら
現象から言えば,確かに #< があることで論理行が入れ替わるということになりますが,不具合の根本的な因子はそこではないと思います。
以前にもちょこと書きましたが,#< にはページングにおける KY (保存されたY位置)を更新する効果があって,ヒトの目線のズレ修正に貢献していると考えているのですが,c.mosさんとしては「美しい動作」というのが脳裏にあって #< を使っていたのではないかと想像しています。(まるきり外してるかも)

野ざらし言#4840 としき
> 異常挿入を起こす0007.cgiの冒頭からの真の最小のファイルサイズ
見つけました。
27932バイトでは異常発生、27931バイトでは正常挿入。

野ざらし言#4892  Blの指定可能な値について めざら
bl 34452 / pq..148==$776A, pq..149==$FDFE
bl 34453 メモリが足りません.
512バイトの緩衝領域+2バイトを前方(最上位メモリ)に確保しさえすれば,大きなラインバッファの「確保」は可能。ただし,正常に使用可能かは不明。

野ざらし言#4883 としき
上記の、異常挿入を起こす最小サイズとしては27932バイトなわけですが、元のファイルではその部分はちょうど2バイト文字の真ん中に当たります。なので、2バイト文字の区切りで1文字増やした27933バイトのファイル、これに0007.cgファイルを挿入しようとすると当然、異常挿入になります。この場合、ファイル末尾は「気」という文字です。
ところが、同様に0007.cgiファイルのこの行の「気」の文字の次に改行を入れたファイルを作り、このファイルを開きなおして0007.cgファイルを挿入しても、正常挿入。ところが、そこにさらにもう1バイト、何でもいいけど半角文字を追加して保存して開きなおし、0007.cgファイルを挿入しようとするとそれは見事に異常挿入。
不思議だ、なぜ2バイトずれる。


野ざらし言#4711.ファイル挿入(1) 1.60製品版 - めざら 22/05/07-21:13 
★ 非常に長いツリーです。

野ざらし言#4934 なんというか、なかなか面白い結果となりました。 としき
特に面白いと思ったのは、あとから0007.CGファイルを読み込ませるとき、先に開いて
いたファイルのサイズとBlの値によって、きれいに挙動が変化する部分。すなわち、
以下のところですね。
先に開いていた  Blの値
ファイルのサイズ 8191  8192  8193  
27931バイト   正常 正常 異常
27932バイト   正常 異常 異常
27933バイト   異常 異常 異常
また、Blを16384まで大きくすれば常に正常挿入になるかと思ったけどそうはならない、
という部分もなかなか興味深いところ。

野ざらし言#4995 これの続きを試してみました。 としき
先に開いていた  Blの値
ファイルのサイズ 8190  8191  8192  8193  8194
27930バイト                        正常  異常
27931バイト         正常 正常 異常
27932バイト         正常 異常 異常
27933バイト   正常  異常 異常 異常
27934バイト      異常

野ざらし言#4997] EM の値で [ESC]i の挙動が変わる konno 2022/09/03(Sat) 18:24
何気なく、EM1024 を、EM12 とか小さくしてみたら [ESC]i の症状が良くなったみたいです。
それで、EMの値を変えて色々試してみました。
EM1017 を超えるとNG で、EM1010 ならほとんどのVZ環境で問題改善するようです。
今まで同じVTDOSでも私の環境で [ESC]i の挙動が良くなかった原因が分かった気がします。

★ EM1024-1017=7  16k*7=112k  つまり、XMSは112kでそれ以上はEMSが使われて異常が出たと考えられる
★ EM1024-1010=14 16k*14=224k つまり、XMSは224kでそれ以上はEMSが使われる
★ この時点で、VTDOSのEMSの挙動に気づかなかったのが悔しいです。


10688/10586 CRG00666  文太             Re: ファイル中身の破損
( 1) 23/03/22 01:14 10666へのコメント(文太さん) コメント数:2
 別にとりわけ意図も希望もなく、説明を分かりやすく書き直しておきます。
 1MBのファイルがある。1000本のページフッタが中に入っている。
「ページ番号つき」フッタには、Page 1 から Page 1000 まで番号がつく。
 だいたい1KB ごとに番号のついた線が入っているということ。

 そして、

《1MB file》
------------------------
------------------------
AAA
------------------------
------------------------
BBB
------------------------
------------------------
CCC
------------------------
ZZZ
------------------------

↓

《1MB file》
------------------------
------------------------
AAA
------------------------
CCC				;移動
------------------------
------------------------
BBB
------------------------
------------------------
				;消失


 vtdos環境で、上のようなことが起こったらしい。起こったのは事実ですが。
 EMS を使い、スワップをさせないVz設定で起こった。
 「Vz内部のラップアラウンド?」と書いたのは、行番号がワード値を
超えていたから filter.defがバグった? と思ったから。超えていませんでした。
 WinMEで、同じような処理をかなりやりましたが、何も起こらないみたい。
 気のせいかもしれません。−−−20回はバックアップファイルとの照合を
しました。

 それで、めざらさんのところで発現したのと(clppest.exe & clppest.defがらみ)
と同じ原因? と思ったのでした。
 たぶん原因は違うだろうと考えています。残念ながら、何かのオペレーション・
ミスだったのだろうと考えています。ただ、vtdos環境では、この作業はもう
しません。(嫌われそうですが)WinMEだと、VzとDOSが速いんです。


10689/10586 CRG00666  文太             inst.asm
( 1) 23/03/22 01:29 10671へのコメント(文太さん) コメント数:1

>>そういえば、わなまさんは "#ifend" とやっていたような。"
>>5文字なら通るみたいに言っていたような気がします。(^^;"
> 僕の記憶では、cmos版では文字数、高橋版以降でちゃんと文字チェック
>だったと思います。ソースでご確認ください。

 高橋版では、「ブロック IF 文」のネストができます。
 cmos版では、テーブルを置いて、確かに文字数で分岐させています。
 ちょんと読みきれたわけではありませんが、inst.asm の両者を読み比べると
「高橋さん、やっぱ、読みきってるわ」と思うと思います。全面書き換えだった。
 あそこにデータ入れて処理した c.mosさんにも、感じいったけど。すごい発想。



10690/10586 BQO00549  konno            vzk07v6h バグあり、使用中止してください
( 1) 23/03/22 17:36 10624へのコメント(konnoさん) コメント数:1
vzk07v6h バグがありました。

EMSのみで BL1024 の時、MS-DOS Player や DOSVAXJ3 でも不具合が出ました。
他のVZでは、MS-DOS Player や DOSVAXJ3 では不具合が出ません。
vzk07v6h のバグでした。

公開を停止しますので、使用も中止してください。
確認不足でした。
ご迷惑をおかけして申し訳ありません。

10691/10586 BQO00549  konno            Re^2: スワップとEMSとBT
( 1) 23/03/22 22:26 10688へのコメント(文太さん)
>  vtdos環境で、上のようなことが起こったらしい。起こったのは事実ですが。
>  EMS を使い、スワップをさせないVz設定で起こった。

VZのスワップ機能ってどういう動作だっけ? 私はキチンと把握していませんでした。
VZ1.6のマニュアルP158を見ると
コマンドラインでコマンド実行時にメモリを空けるためにVZの使用メモリの一部をEMSなどに退避させることみたいですね。

EMS環境では、SW0 でもEMSはテキストのテンポラリファイルとして使用されます。
EMS のWikipediaによると

>   "EMSマネージャ"を通じてメモリ空間の取得・開放、バンク切り換え等を行う。
>   16KBytes単位でバンク切替を行い、これをページと呼ぶ。
>   8086でアクセス可能な1Mbytesの範囲内に"ページフレーム"区画を設ける。
>   ページフレームは、ほとんどの場合4ページ = 64Kバイト(バージョン4.0)の連続した領域。
>   EMSマネージャは、要求のあったページをページフレームに出現させる。
>   そのため、各種操作は隠蔽され、ユーザは気にする必要が無い。
>   対応するメモリ総量は32Mバイト(2048ページ)まで。
>   主な版として3.2, Enhanced EMS 3.2, 4.0がある。4.0では特にWindows 2.x向けの拡張を行った。

つまり、64k を超えるテキストは、EMSメモリに展開され、16k〜64kの物理メモリとの間で常にメモリ転送されていると。
VZの BT は、16〜64 まででしたね、私はこれで、BT が物理メモリの窓の大きさなのだということに気が付きました。(^^;
例のバグバグVZは、BT32以下にすると駄目みたいです、いつも BT64 で使っていたので気が付きませんでした。
このVZは蟲探しの良い教材になりそうですね。(゚゜)☆\(--#)バキッ


10692/10586 BQO00549  konno            Re: inst.asm
( 1) 23/03/22 22:32 10689へのコメント(文太さん)
>  高橋版では、「ブロック IF 文」のネストができます。
>  cmos版では、テーブルを置いて、確かに文字数で分岐させています。
>  ちょんと読みきれたわけではありませんが、inst.asm の両者を読み比べると
> 「高橋さん、やっぱ、読みきってるわ」と思うと思います。全面書き換えだった。
>  あそこにデータ入れて処理した c.mosさんにも、感じいったけど。すごい発想。

文太さん、ソースで確認してくれたのですね、ありがとうございます。
私はこれからふかい海に潜ってソナーで敵の蟲を探しに行きます。
無事に浮上出来るかわかりません。(^^;


10693/10586 CRG00666  文太             Re^2: ファイル中身の破損
( 1) 23/03/23 00:37 10688へのコメント(文太さん)
いちおうkonnoさん宛なのですが、ここに補足説明。

>vtdos環境で、上のようなことが起こったらしい。起こったのは事実ですが。
 ったく、訳が分からない書き方をするな。
 うーん、今振り返ってみても、本当にVTDOSが原因なのかは分かりません。
 WinMEでは起こっていないと思うけど。
 僕はここ1〜2か月、五月雨にしかVzでテキスト編集とかしてませんでした。
 入力主体(論文を書く、翻訳をする、プログラムを書く)だとガシガシ、
コマンドを連発で繰り出したりしませんよね(主にWinME 真剣環境)。ちまちま
キー入力。
 連発はetext作成なんて場面での「編集」のときです。これがね、記憶曖昧
なんだなぁ。

 でも、だいたいその期間に(疲れてるとき)、Win7=VTDOSで、この現象に
気がついた。
 VTDOSが原因か分からないけど、VTDOS環境で起きた可能性は高いです。
 対象が、でかいファイルであること。

> EMS を使い、スワップをさせないVz設定で起こった。
 これはママです。
 ただし、ビッグニュース! これはVzk 最新版でなく、k07t01という相当古い
版で起こりました。ですから、今回のめざらさん発見のパターンとは原因が違う
ことが想像されています(注)。kVz の版を変えても、きっと起こる。原因が何
にしろ。僕の場合は。

> 「Vz内部のラップアラウンド?」と書いたのは、行番号がワード値を
>超えていたから filter.defがバグった? と思ったから。超えていませんでした。

 これワケワカだ、という人がいるかもしれないので。
 ふつうのfilter.defの使い方は、filterです >filter <a.txt >b.txt。
 ただし、ブロックしてシフト起動すると元ファイルの該当部分を直接書き換えます。
こういうことができるマクロです。で、その部分に引っかかったのかなぁ、と少し
思った。これ、ガシガシやってますから。
 というわけで、まだ、このラインを(vz.com or filter.defが原因)、捨てては
いません。

 とにかく、うーん、ゆっくり行きましょう!
 失敗しなければ成功しない。失敗しつづける覚悟。老人に必要なのはこれです!
いつか勝利の雄たけびをあげるために。大谷のように、ダルビッシュのように。
(彼らは老人でないけど)誰にむかって言ってんだ。自らを鼓舞しております。
 cmosさんだって、泣きたいときあったはずですよ。

 しかし、95年あたりのYushiさんデビューの頃、テキスト構造体が明らかに
されていた頃(上村さん主導)のログをちら読みしましたが、このエディタ、ほんと
深い! 知らない変数、たくさん! 演算子の優先順位(評価の順番と仕組み)とか
テキスト表示の仕組みとか(by Emmett)もあったし。たしかにテキスト構造体に
(すら)ワケワカなの、けっこうありますよね。
 それでも、読んでたら、「あ、これ、できるようになりたい。どんなマクロに
すればいい?」とか、しっかり思いつく!

 死ぬまでVz! こればっか。

(注)大事でもなんでもないのですが。EMSが原因だったら(テンポラリーファイル
の破壊)、めざらさんのと同根、となり、VTDOSが原因となるのかな、VTDOSではEMSは
最小限に、とかなるのかと思いました。が、10#さんが「XMSだと起こるけど???」
と回答してくれたあたりで、もう何が何だか、、、となりました。



10694/10682 CRG00666  文太             Re: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/24 00:06 10684へのコメント(konnoさん) コメント数:1
 我々(僕以外の我々)が追っていたものとは関係ないだろうと思います。
 ま、しっかし、偉いなぁ、皆さま

 SVCのログです。

>03472/03472 xxxxxxxx  tanosan          ちょっとしたバグなど(やや長文)
>( 2)   94/01/05 15:48
>
> ◎「カーソル位置へ挿入」マクロで、挿入するファイルの最後の行長が 
>    wd の整数倍で、末尾に改行がないとき(つまり、#_ でジャンプした
>    先が ct==0 && lh!=0 のとき)、その行が読み込まれません。次の修
>    正でOK。
> 
>	#b #_ (ct)?{ #> #m #x }
>         ↓  #x は不要
>	#b #_ (ct|lh)?{ #> #m }

 もちろん偶然です。グレップすらしていません。
 [ESC]I って、ほんと色々あったのねぇ。上村さんのinsfile.defを『強化書』
の頃から(たぶん)、使っているから、えー、そういうのあったんだ、程度の認識
なのですが。

 ただ、filter.defは、似たようなことをしてたわけですよ。



10695/10586 DGF01024  めざら           Re: vzk07v6h バグあり、使用中止してください
( 1) 23/03/24 13:53 10690へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
vzk07v6h は既に公開停止とのことですが,追加情報です。

実は発生条件が今ひとつ確定できていなくて,安易に報告しにくいのですが,
ヒストリバッファが壊れるという現象が起きています。(07t02では発生しない)

■ひとつの再現例
自分の似非GREP(http://mezala.la.coocan.jp/vz/workshop/msearch.html#esegrep)で,
【R._ラジオ小劇場】あるいは【R..ラジオ小劇場】などと検索文字列を入力し実行すると
入力した検索文字列が【R-/ラジオ小劇場】のような変な化け方をします。
ps をそのまますり替えずに使っているのでバッファのアドレス等の問題ではありません。
ただし,マクロでなく手元で RX+ として #F 窓に上記の文字列を入力しても化けません。
トレースすると,化けるタイミングとしては,入力窓を閉じた直後に既に化けていました。
少し前の版 k07v6d でも,【R訃ラジオ小劇場】と似たような化け方をしました。

この現象は,vzk07t02 や vzt では発生しないので,07v* で新入りのバグのようです。

マクロでヒストリバッファを使ったときだけ化けるというのは初めての経験なので,
再現条件が特定のマクロだけという心許ない状況ですが,とにかくご報告まで。
撤回版としても,以降の版に引きずるとまずいので,ともかく報告に及びました。


10696/10586 BQO00549  konno            Re^2: vzk07v6h バグあり、使用中止してください
( 1) 23/03/24 18:28 10695へのコメント(めざらさん)
> 実は発生条件が今ひとつ確定できていなくて,安易に報告しにくいのですが,
> ヒストリバッファが壊れるという現象が起きています。(07t02では発生しない)

う、そうなんですか、バグバグで申し訳ないです。m(__)m

> 自分の似非GREP(http://mezala.la.coocan.jp/vz/workshop/msearch.html#esegrep)で,
> 【R._ラジオ小劇場】あるいは【R..ラジオ小劇場】などと検索文字列を入力し実行すると
> 入力した検索文字列が【R-/ラジオ小劇場】のような変な化け方をします。
> ps をそのまますり替えずに使っているのでバッファのアドレス等の問題ではありません。
> ただし,マクロでなく手元で RX+ として #F 窓に上記の文字列を入力しても化けません。
> トレースすると,化けるタイミングとしては,入力窓を閉じた直後に既に化けていました。
> 少し前の版 k07v6d でも,【R訃ラジオ小劇場】と似たような化け方をしました。

これは詳細ですね、非常に参考になります。ありがたいです。

> この現象は,vzk07t02 や vzt では発生しないので,07v* で新入りのバグのようです。
> マクロでヒストリバッファを使ったときだけ化けるというのは初めての経験なので,
> 再現条件が特定のマクロだけという心許ない状況ですが,とにかくご報告まで。
> 撤回版としても,以降の版に引きずるとまずいので,ともかく報告に及びました。

ご指摘が無ければ気が付かずにずっとバグ入りのままだったと思います。
教えてくださり、ありがとうございました。


10697/10682 BQO00549  konno            Re^2: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/24 20:33 10694へのコメント(文太さん) コメント数:2
> > ◎「カーソル位置へ挿入」マクロで、挿入するファイルの最後の行長が 
> >    wd の整数倍で、末尾に改行がないとき(つまり、#_ でジャンプした
> >    先が ct==0 && lh!=0 のとき)、その行が読み込まれません。次の修
> >    正でOK。
> > 
> >	#b #_ (ct)?{ #> #m #x }
> >         ↓  #x は不要
> >	#b #_ (ct|lh)?{ #> #m }

こ、これは・・・
確か、[ESC]i マクロの不具合の件で、野ざらし言に書き込んでいたと思います。
「#x は不要」で検索したら、過去ログにありました。
野ざらし言#4612 から、野ざらし言#4617 で 2022/02/13 の発言で

> この元ネタを探してみたんですが見つけられませんでした。
> 私の思い込みで勝手に変えちゃったのかもしれません。
> T.Tanomura さん、不確かなもので名前を挙げてしまいすみませんでした。m(__)m

探せなくて、こう書いていたんですが、SVC でしたか・・・
この会議室は、バグ報告の宝庫ですねぇ、この発言だけでも他に
-------------------------------------------------------------------
 ◎FD からの子プロ起動時に !Open がトレースモードに入る現象ですが、
    必ず、!Open の最初のキーワードを実行し、2番目のキーワードの実
    行に入るところでトレースモードになるようです。1.6 の標準 DEF で
    は「?ts=」で止まります。こうした事情から考えられる原因はありま
    せんか?
 
 ◎常駐-解放-常駐を行うと、解放したはずの VZ が居座っていることが
    あります(再現条件不明)。これは VZ 側の問題でしょうか、それと
    も用法に問題があるのでしょうか?
 
   2536 <--    1   96800  vz 1.60  -em30 -z
   3CD9 <--    1    3840  vz 1.60  -em30 -z          06 21 29
   3DCA-A000   1  402272  <free>
 
 ◎ファイル名入力窓で、すでにファイル名+スペースを入力した状態で
    ヒストリーをさかのぼると、「->17EE」のようなものまで単独で再現
    されてしまいます。
 
 ○ファイル名入力窓のための仕様だと思いますが、カーソルの直前がス
    ペースのとき、文字列ヒストリー中のすべての文字列が再現されてし
    まいます。コマンドラインも文字列入力窓も共通。この動作を、ファ
    イル名入力窓に限定することはむずかしいですか?
 
 ○Ds+ で表示される文字コードが、^M で 0D0Ah になります。ちなみに、
    0ah のときは問題ありません。
 
 ○^M が[EOF]に‘吸収’されてしまいます。例えば、ファイルを新規に
    開いて「123^M456」と入力しても「123456[EOF]」としか表示されず、
    ファイルには「123456^M」のように順序が狂った形でセーブされてし
    まいます。
-------------------------------------------------------------------
 これだけあるんだもの。(^^;

>  ◎常駐-解放-常駐を行うと、解放したはずの VZ が居座っていることが
>    あります(再現条件不明)。これは VZ 側の問題でしょうか、それと
>    も用法に問題があるのでしょうか?

この現象、最近 MS-DOS Player + FreeCOM 環境で起こっています。VZの版は関係ないかも。
普通、常駐解除すると、プロンプトカーソルがアンダーラインのようになるのに、そうならない時があるのです。
その時に一度 [ESC] を押すと、^[ と出て、常駐解除出来たのかと思いますがもう一度 [ESC] を押すと、VZの入力窓が出るのです。
割り込みベクタの書き戻しとかが上手くいってないのかなぁ。

>  ただ、filter.defは、似たようなことをしてたわけですよ。

同じかわかりませんが、手持ちの filter.def にはこんなルーチンがありますね。

10:	; overwrite
	(fb)? {
		ek[+,
		#W xc[, #y
		#W #^ #< #i #b #_ #y #^ #<
		#W #b #i r], (r==-1)? #B
		ek],
		(0)

なんだか [ESC]i マクロによく似ていますね。
#B も使っているし、もしかして xc[, を r], に戻してその値で #B 使っている?
確か、xc もバグがあったような。
これは怪しいですね。どうでしょ >めざらさん


10698/10682 CRG00666  文太             Re^3: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/24 22:49 10697へのコメント(konnoさん)
 はい、そうなんです、filter.def。でもね、、、。

http://mezala.la.coocan.jp/vz/notes/vars.html

xc	v1.6		ブロック範囲比較変数
値	カーソル位置(cp)と選択開始位置(tblkp)との比較
-1	cp < tblkp
0	cp == tblkp
1	cp > tblkp

※比較はオフセット値で行われるため,常に正しいというわけではない。
64KBの敷居をまたぐ可能性がある時に正確な比較をするためには,
カーソル位置のロングポインタ(マークで使用)を用いる必要がある。
-------------------------------------------------------------------

 少なくともこれに引っかかったとは思えないんですよねぇ。
 そんなに運は悪くないだろうと。処理対象(範囲)が大きくない、が
より客観的で合理的な根拠ですが。
 64KB。またしてもテキストバッファの限界値。
 セグメントの境界だものね。???

 .com ファイルの制限、これも。

vzo.com  57,694  1993-12-06  02:00	;cmos
vz.com   62,184  2018-10-17  19:11	;konno 一杯ま近ですよ。



10699/10682 BQO00549  konno            Re: VTDOS+EMS+VZでの不具合検証
( 1) 23/03/24 22:54 10682へのコメント(konnoさん) コメント数:2
良い知らせと悪い知らせがあります。

10#さんとのやりとりで私が上手く伝えられなくてどうなることかと思いましたが
再現が出来たと朗報がありました。
それとともに、新たなVZのバグが発覚したようです。

メールの返信の内容を貼り付けます。
-----------------------------------------------------------

>試験をやり直した結果再現しました。

おお、再現出来ましたか、よかったです。

>余談になりますが、僕の試験で把握出来た事をお伝えします。
>まずこの現象はEk+では再現されないようですが、この場合は前回僕がお伝えした結果になります。
>それから、試験をパスした(一致した)状態で窓替え(F2)を行ってすぐ比較を行うと相違が出ます。
>これはMS-DOS上のオリジナル版でも出ます。

試験をパスした(一致した)状態で窓替え(F2)を行ってすぐ比較を行うと相違が出るのですか。
この現象は知りませんでした。やはり検証不足だったようです。

MS-DOS Player や DOSVAXJ3 でも同じ現象になりました。
[F02]の後の比較マクロで6か所文字化けが出ますが、これは VZ のバグだと思われます。

思い当たるルーチンが有るので修正したVZで試してみました。
MS-DOS Player や DOSVAXJ3 では、文字化けが無くなり、正常になりました。
VTDOS では、やはり内容が変わっています。
10#さんのおかげで、一歩前進出来たみたいです。ありがとうございます。

>この事を踏まえ調査を行うつもりです。

よろしくお願いいたします。
私ももっと検証を進めたいと思います。

-----------------------------------------------------------

ということで、調査をしていただけるのはうれしい知らせですが
比較で一致しても直後に[F02]窓替えで再比較すると文字化けが出るという新たなVZのバグが発覚しました。
これは、BL1024 か BL2048 の時だと思われるので、BLの影響で長い行の途中に改行が入るのではないかと想像しました。

過去記事の
#10322:Bl3072 の大穴が塞がったかも  投稿者:konno   2022/10/11(火) 21:59 

> Bl3072 では 3700bytes を超えるところで改行が入っていました。
> ソースに改行を挿入するところがあるはずだと当たりをつけて
> 「,LF」で検索すると、それらしいところが TEXT.ASM にありました。
> 
> fread	proc
> 中略 410行目
> 	cmp	si,di
> 	jne	read3
> 	mov	byte ptr [si-1],LF
>   _break
> read3:	cmp	byte ptr [si-1],LF
> _until e
> 	clz
> 	ret
> read9:	stz
> read_x:	ret
> 
> 
> ここの
> 	mov	byte ptr [si-1],LF
> があやしいと思い、色々試したところ 
> 
> 	cmp	si,di
> 	jne	read3
> 	stc					;★##k 221011 キャリーをセット
> 	jmps	read9x				;★ ゼロフラグをクリアしてリターン
> ;	mov	byte ptr [si-1],LF		;★ Bl3072 の時 3700bytesで強制改行(実行しない)
>   _break
> read3:	cmp	byte ptr [si-1],LF
> _until e
> read9x:	clz					;★ ゼロフラグをクリアしてリターン
> 	ret
> read9:	stz
> read_x:	ret
> 
> 
> このように変更したら、Bl3072 で改行文字化けが無くなりました。

これを思い出し

	cmp	si,di
	jne	read3
	jmps	read9x				;★ ゼロフラグをクリアしてリターンへ
	mov	byte ptr [si-1],LF
  _break
read3:	cmp	byte ptr [si-1],LF
_until e
;	clz
read9x:	clz					; or	sp,sp = zf0 cf0
	ret

このようにシンプルに修正したVZでは、文字化けも無く正常処理出来ました。
今までは余計なところまで弄ってエンバグしていたようです。
正常動作するVZは、だいぶ前に戻ってしまいました。
今まで積み上げてきたものが全部崩れてしまった感じです。(^^;


# まるで賽の河原で石積みをしているような・・・ だって私、VZの亡者ですから。


10700/10682 DGF01024  めざら           Re^3: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/25 10:35 10697へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
> 確か、xc もバグがあったような。
> これは怪しいですね。どうでしょ >めざらさん

怪しいというわけではないのかと…。xc の件は,バグと言うより仕様だと思いますが,
マニュアルに警告が書いてないのでバグ扱いが妥当かもしれませんけどね。
(一応,cp と tblkp とあるけれど,それだけだとソース読める人とかが対象)

なお,filter.def マニュアルには,「64KBをこえる大きなブロックは扱えません。」と
明記してあるので,ローカル 10: のルーチンが巨大ブロックに対応していなくても
それは仕様であってバグではありません。もちろん VZ のバグとの関係もありません。

#i の戻り値を xc の値で上書きしているのは,その振る舞いを見越しているわけで,
これまた VZ マクロらしい無駄のない動作だと思います。

・ブロック処理は,下から上に向かったブロック(xc==-1)の方が速度的に有利
・その場合でも処理後のカーソル位置をテキスト末尾に移動
…という感じかなぁ…
そのへんは,改造するほど入れ込んでいる文太さんに聞いた方が的確かと。

10701/10682 CRG00666  文太             Re^4: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/25 11:54 10700へのコメント(めざらさん) コメント数:2
 特に何も聞かれてないと思いますが。
 何もできない、ほぼ何も考えられない(知識が足りない)という感じですが。

 (1)原因は、vtdosか、vz.comか、filter.defか。??? どれも可能性あり。
 (2)>filter.def マニュアルには,「64KBをこえる大きなブロックは扱えません」
とあり、
 これは、xcの件。しかし64KBを超えるファイルでテンポラリーファイルとかテキスト
バッファが絡んだら? これは、きっとvz.comがらみの事柄。
 (3)こういう場合、経験とか実体験とか統計的に無意味だろうと思いますが、
それでもいまのところWinMEでは経験していない(と思う)。

 とにかく、(1)としきログ、(2)clppestがらみ、(3)filter.def文太がらみ
では、(3)に圧倒的に発現条件についての情報が足りません。再現できません。
 さらに、この3つがどれだけ重なった、関係した事態なのかも分からない、、、。

 新しい情報みたいにみえて、misleading な事柄でした、おそらく。

 他意はないですが、いちおうお伝えしておくと、(僕の読解力のせいだろうと
思うのですが)、(2)について、僕は何の話だかまったく分かっていません。



10702/10682 DGF01024  めざら           Re^5: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/25 13:28 10701へのコメント(文太さん) コメント数:1
参照先:http://mezala.la.coocan.jp/
>  とにかく、(1)としきログ、(2)clppstがらみ、(3)filter.def文太がらみ

> (2)について、僕は何の話だかまったく分かっていません。

ごめんなさい。不具合の発生したファイルを提供したので,細かな手順などはすべて
端折ってしまいましたから,わたしと konno さん以外は見えなくて当然です。

せっかくだから補足しますと,自分のコンテンツで「ラジオドラマ資源」なるものが
ありまして,これの一年単位の番組基本情報ページがあるわけです。1950年代は
わりとラジオドラマの放送が多くて,それなりのサイズのテキストになります。
先日のファイルが 300KB 弱で,2,100行強,ラインバッファを超える1行はありません。
この一年分のデータは,スプレッドシートで複写した TSV で,クリップボードに転送。
このとき手作業でファイルに落とすことなく,愛用の clppst を使って貼り付けます。
そして,貼り付けたタイミングでエラーが発生したわけです。300KB 弱ありますから,
当然,巨大ブロックを挿入する [ESC]I と同様のマクロコードが clppst.def にあります。

具体的に,上記の手順でした。
再現条件は EMSを使用,clppst.def 実行,64KBを超えるテキスト,です。
としきファイルと異なるのは,ラインバッファを超える行がないこと。たぶんそのくらい。
(↑ これ,ウソです。としき兄のご指摘(#10703)がありました。)

10703/10682 CXB00940  としき           Re^6: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/25 14:11 10702へのコメント(めざらさん) コメント数:1
参照先:http://toshiki.la.coocan.jp/
> としきファイルと異なるのは,ラインバッファを超える行がないこと。

めざらさんの提供されたファイルの一番長い行って、何バイトくらいですか?
私の提供したファイルでは、確か7000バイトに満たないくらいだったはず。
そして私の場合、Blは8192に設定してあって、ラインバッファを越えていないはず
なのに異常動作が発生したという認識です。
この辺、何か私の認識誤りか確認ミスがあったかな。
いまになってそういったことが発覚したとなると、かなり困ったことです。


10704/10682 DGF01024  めざら           Re^7: 検証、[ESC]I マクロでとしきさんの生ログデータの情報
( 1) 23/03/25 16:07 10703へのコメント(としきさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
あらら,実際のファイルで調べもしないで適当なこと言っちゃいました。
すみません.

わたしのファイルだと,急拵えしたこんなマクロで 1600バイトほどと表示されました。
1 ^\ "" ?.
	a-,
	#^ #<
 :l	; ---- main loop ----
	cp[,
	#> r=cp-0],
	(r>a)?a=r,
	#d (r)??>l
	&m("%u",a)
 :z	; ---- exit ----
	&d #] .

うちのラインバッファも 8192 取ってるので,断然余裕ですが。


10705/10682 CRG00666  文太             ゴミ
( 1) 23/03/25 16:48 10704へのコメント(めざらさん) コメント数:1
 awkだとどう書くんだっけ? と。ちゃんと忘れてました。

--- maxlen.awk ---
{ if (maxlen < length) 		# length()が推奨されているらしい
	maxlen=length 
	}
END { print maxlen }
------------------

C:\>jgawk -f maxlen.awk c:\0etxt\asm\tbook\mast_td.txt
141
 問題まったくないですね。すっかり安全志向。

 ただ、どっかでkonnoさんが、bl の値により、挙動(結果)が違う、
と書かれていたので、それの再検証からいくかな等々、いちおう真剣に
考えてはいます。BL=8192 bytes これには、実用上、問題は何もない
と思っていますが。

 タネをしこんで厨房に立ち、カレーを作り始める(時間がかかる。時間を
かけると美味しい)。そしたら、とらじさんのように、なるへそ、
そう攻めてみるか、とか思いつくのかなぁなんて思ったけど、別に何も
思いつきませんでした。カレー作りに夢中になっただけだった。
 (「どこどこ」開発中の会話より。doko2.defを相当ひさしぶりに動かした。
   いえいえ、キーの格納のされ方もすごいです)

 あ、こういうのゴミ発言って言うんでしたよね。

追伸でなく本題:clppst.defの件、発現条件は分かりました。10#さんからの
回答の意味も少しわかりました。多謝>めざらさん。



10706/10682 BQO00549  konno            xc のバグと対策
( 1) 23/03/25 18:29 10701へのコメント(文太さん) コメント数:1
xc のバグといえば、あむのさんの対策を思い出します。
CODEX.DEF で検索しましたが、BL2048 だと CODEX.DEFが起動しない! まいった。(>_<)
BL4096 なら起動できたので、以下に引用します。(^^;

-----------------------------------------------------------
> 06847/06847 xxxxxxxx  あむの           xc にはご注意!
> (15)   97/07/10 07:56  06827へのコメント

 変数 xc にはよく知られたバグがあります。
 
    (1)  32,767 byte の前後にかかる後ブロック(注)で xc の値が 0 となる
        
        ファイル   32767      65536     65K+32767       (byte)
        +------------+----------+--- .... ---+---------- ......
                  ・========*               ・====*
                    blk                     blk
                                        (*印がカーソル位置)
 
        本来ならば xc == 1 。
        
    (2) 文字境界ブロック (mb==2) 限定のバグ
        ・ファイル先頭行にブロックがかかること。
        ・前ブロック(注)であること。
        ・カーソルカラム数がブロック終端のカラム数(wa..51)より小さい。
 
        この場合、xc の値が 0 となる。(本来はxc == -1)
        
        (例) ファイル先頭
        +-------------------------------+
        |   *===========================|
        |======・    blk                 |
        |                               |
                    (*印がカーソル位置)
        
    (注)  前ブロック      カーソルがブロックの前の場合(xc:-1)
            後ブロック      カーソルがブロックの後の場合(xc:1)
 
 ですから、上記バグの条件にあたらないことが明確ならば、xc は有用です
が、それ以外の場合には使わない方が良いかと思います。
 
            *               *               *
 
 xcの代替手段としては、マーク機能(&#M(n))をブロック前後で使って、その
マークの値を比較するというのが一般的ですが、これまたちょっと問題を孕ん
でいます^^;。
 というのは、純正Vzには、ロング整数を比較する&Lcという関数にも著名
なバグがあって、使えないのです(榊原さん版Vzは修正されています)。
 
 というわけで、自力ですると、例えばこんな↓ふうになります。
 FGALPK Mes13 #02168 94/12/17 y.mikome さん ご紹介の方法に若干手抜き
したものです。
 
=Test
カーソルをブロックの前にする。
マーク#0  wa+126 (wa..63,wa..64)
マーク#1  wa+130 (wa..65,wa..66)
* M
89 ^\ ""
    ?.(mb)??.
    #M #B &#M(1) #B p$8000,     ;ブロック前後でマークする(位置は元に)
    (wa..64 > wa..66 || (wa..64 == wa..66 && p+wa..63 > p+wa..65) )?#B
*

ここまで -----------------------------------------------------------
 
私は xc を使ったこともなく、よくわかっていなかったのですが
今このマクロを見ると、なんとなく読める気がします。(気の精)

# 読める! 私にも読めるぞぉ! ララァ

06858番の発言では
-----------------------------------------------------------

 あ、いえ、ブロックのサイズの問題ではないのです。ファイルサイズとブロ
ックの位置の問題なんです。
 百聞は一見に如かず、ということでこの↓マクロを実行して xc の値を確か
めて下さい。
 
=Test
巨大なファイル(例えばログファイル)上で実行して下さい。
* M
80 ^\ ""
    ?.mb0,&d
    &Im(wa+126,0) wa..63=$7FFF,
    #U #< #b #> #d
    &m("xc:%d",xc)
*
 
 また、幸い?なことにバグは xc==0 のときだけのようですから、その時は
実行させず、警告メッセージを出すだけにしても良いかもしれませんね(特に
今回のマクロの場合は、バグでない xc==0 の時も実行させる必要もなさそう
ですから)。

ここまで -----------------------------------------------------------

これを踏まえて、気が向いたら調べてみたいですね。(無責任モード)


10707/10682 BQO00549  konno            Re: BL8192 は #BでCPズレの可能性
( 1) 23/03/25 18:41 10705へのコメント(文太さん)
>  ただ、どっかでkonnoさんが、bl の値により、挙動(結果)が違う、
> と書かれていたので、それの再検証からいくかな等々、いちおう真剣に
> 考えてはいます。BL=8192 bytes これには、実用上、問題は何もない
> と思っていますが。

みなさん BL8192 でお使いのようですね。
過去の [ESC]i マクロでとしきデータの行長は BL8192 以下でしたが、CPズレでブロックが入れ替わったという記憶が。
EK- で #B を繰り返し使うと CP ズレが起こることがある、と私は感じました。
今は BL8192 でも安心できない気がするので、検証を続けているのです。
バグが特定できれば回避して運用するのは可能だと思うので、みなさんの情報が頼りです。


10708/10682 BQO00549  konno            Re^2: 良い知らせ
( 1) 23/03/25 18:48 10699へのコメント(konnoさん)
VTDOS BBS で、10#さんからのお知らせがありました。

> 原因が判明したので遠からず修正可能です。
> リリースまでもう少し頂きます。

うれしいです。\(^^)/ ヤッタ-
ありがとうございます。
気長にお待ちしています。


10709/10709 DGF01024  めざら           【乞検証】現環境で出来なくなったこと
( 1) 23/03/26 11:12 コメント数:2
参照先:http://mezala.la.coocan.jp/
みなさまにお願いがあります.掲題のとおりの検証です.
各人の環境で以下の2点の現象が生じるかどうか教えてください.
(手元での発生条件がよくわからないのです)

(1) to Filer
60 \[CR] "" ?. #O #m	;to filer	;H_ear
コマンドライン専用コマンド #98 と操作を合わせるために v1.5 時代から使用.
このマクロを現環境で実行すると,#O #25 の動作になる.
ところが,GPD MicroPC の VTDOS 環境では所期のファイラが起動.訳がわからない.

どの版から発生しているかというと,下記のとおり.
2009/12/12 k07s5 ok
2010/01/04 k07t ok
---------------------------< ここが境界と思われるが上記のとおり確証得られず
2010/03/01 k07t01 NG (GPD MicroPC では ok !?)
2022/11/13 k07t02 NG


(2) mp0で次検索(少し長いです.ごめんなさい)
;= ^QF.def = H_ear mp0常用者のいきなり検索・次検索
55 ^QF "" ?. k20&ks, mp[, (ks&1)?{ &j(10) }
	#F &Cr &j(-1)
	(r)?{ mp], . }
	&s (k)?#r ?#c >01
35 ^R "" ?. (ks&1)??{ #r . } c-, >00
36 ^C "" ?. (ks&1)??{ #c . } c+, >00
0:	&s mp[=2, &o(#r+c) >>
1:	(r)?{ &o(#c-(cm-35)) &b(2) } mp], &d
	(r)?{ &m(19) }
	   ?{ &m("%c",cm+'÷' ) }	; ▲▽ (59:^_)('∞':↑↓)
;------ end of ^QF.def ------

マクロ 55 は正常動作だが,35,36が動作しない.
これは VTDOS 環境で発生しており,高橋版でも同じ.

VTDOS 環境では,@A 等の [Alt]+[英字] キーでコマンド/マクロを実行すると
Windows が警告音を鳴らしてくる.この現象と同根か?

お時間よろしきときに,お試しください.>みなさま

10710/10709 CRG00666  文太             Re: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/26 14:58 10709へのコメント(めざらさん) コメント数:1
=== Macrotmp by B ===; vtdos & k07t01
* M

36 ^E "" ?. (ks&1)?{ &m("shift") } ?{ &m("non-shift") } .

*

 面白いマクロだった! 使い方に習熟するのに時間がかかるだろうけど。
 あまりにあまりな基本動作なので。もらっちゃおう!
 ただ、上が効きませんでした。
 わお、^D なら効く!
 これ、重大問題だ。今晩、純DOSとWinMEでやります。
 ^C だけなの?

^A	OK
^B	OK
^C		NG
^D	OK
^E		NG	shift で秀丸起動!
^F	OK
^G	OK
^H	OK
^I			2 stroke key registered 問題ないと思う。
^J	OK
^K			2 stroke key registered ふだん使ってるから。
^L	OK
^M	OK
^N			2 stroke key registered
^O			2 stroke key registered
^P	OK
^Q			2 stroke key registered
^R	OK
^S	OK
^T	OK
^U	OK
^V	OK
^W	OK
^X	OK
^Y	OK
^Z	OK

 ^Cと^E がおかしい、という結果でした。Vzの版の問題なのですか?
 シフト付き^Cと^Eを、僕はふだん使ってなかったから気づきませんでした。
 さらなる調査希望。

追記:^Eですが、秀丸が何を開けたかというと、コンソールファイルと思しい。

-------------------------------------------------------------------------
VTDOS Version 1.53 Copyright (C) 2009-2017 by 10#  Build[Sep  5 2017]
 以下略
-------------------------------------------------------------------------
 こんなの。
 VTDOS 版が古いです。怠惰です。
 vtdos.exe & vz.com の両方に関わってしまってる?

 おお、ファイル名は、0f5a1dbc.txt.(秀丸を閉じようとした)
 c:\Users\xxx\AppData\Local\Temp\0f5a1dbc.txt だそうです。windows の tmp
ディレクトリですね。




10711/10709 CRG00666  文太             Re^2: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/26 15:25 10710へのコメント(文太さん) コメント数:1
=== Macrotmp by B ===; on VTDOS & k07t01
;(1)
* M

60 \[CR] "" ?. #O #m	;to filer		;H_ear, OK

;(2)

55 ^QF "" ?. k20&ks, mp[, (ks&1)?{ &j(10) }	;OK, shift IME ON OK
	#F &Cr &j(-1)
	(r)?{ mp], . }
	&s (k)?#r ?#c >01

35 ^R "" ?. (ks&1)??{ #r . } c-, >00
36 ^C "" ?. (ks&1)??{ #c . } c+, >00
0:	mp[=2, &o(#r+c) >>			;shift, str srch
1:	(r)?{ &o(#c-(cm-35)) &b(2) } mp], &d
	(r)?{ &m(19) }				;「文字列が見つかりません」
	   ?{ &m("%c",cm+'÷' ) }	; ▲▽ (59:^_)('∞':↑↓)

*


 ずいぶんと先走り、端折った書き方をしたので。少しちゃんと。

 上のマクロ 60 番に、僕の環境では問題ありませんでした。ふだん \[CR] は
デフォの #n で、これにも、上の60 番マクロにも、同機能をふだん実現する
マニュアル操作の「#O #m」も問題なし。

 55 番マクロ、問題なし。
 35 番マクロ、シフトもノンシフトも問題なし。
 36 番マクロ、シフトに問題あり。よって前発言の調査となりました。



10712/10709 CRG00666  文太             ゴミ2
( 1) 23/03/26 15:43 10711へのコメント(文太さん) コメント数:1

see #10541
 いえいえ、
>VTDOS Version 1.53 Copyright (C) 2009-2017 by 10# Build[Sep 5 2017]

 最新版でした。バーアップしたんだった。
 で、新版が来ると。EMSがフィックスされて、もしかしたら、ほぼ1年越し
の問題が解決されるかもしれないと。イエイ! そしてまたまた新しい問題が
見つかると。ふにゃ。



10713/10682 CRG00666  文太             Re: xc のバグと対策
( 1) 23/03/26 15:47 10706へのコメント(konnoさん) コメント数:1
konnoさん

 情報、ありがとうございます。
 ただ、古いですね。32KB 近辺のバグは除去されていると思しいです。
 で、マーク4バイトX2で対策しようかとも思っているのですが、昨晩
深みにはまってしまい、、、。
 僕以外気にしてない、そして、本当の原因はここじゃない、というあたりで
逃避行動に出ています。

 とにかく、情報多謝です。当たり前でしょうけれど、ロングの比較は、
高橋版(榊原版)から、符号なしに統一されフィックスされているはずです。



10714/10709 CRG00666  文太             on WinME
( 1) 23/03/26 22:45 10712へのコメント(文太さん)
 すべてのテストを正常にパスしました。vz.comもまったく同一のものです。
 VTDOS環境、というかもしかしたら、Win7 (OS) のなせる技でしょうか。
 もしかしたら、一部、その英語キーボード付きマシンの特殊性?

 なお、先ほど、^\E を再びやったら、今回は、164c11bc.txtをオープンした。
これってもしかして、Vzが作るテンポラリーファイルでしょうか? Windows
以降で、ファイル名をユニークにした奴?
 中身は、前回と同じく、vtdos 起動時のコンソールファイルの中身。でも
Vz起動前ですから(vtdos, vz起動バッチの順)、そんなものがVzの
テンポラリーファイルの「中」に書き込まれるというのは、相当に変ですね。

 なお、うちでは、.txtが「秀丸」に関連付けされているから秀丸でした。
 164c11bc.txtみたいなのをオープンせよ、という命令がOSに送られている
のだと思います。

 純DOSのテストは要らない、という判断です。
 konnoさんが手元で検証(確認)できたら、10# さんに報告してくれると助かり
ます。

 alt のテストは以下。ごめんなさい(謝ることはない)問題なしです。


=== Macrotmp by B ===; vtdos & k07t01
*M

36 @A "" ?. (ks&1)?{ &m("shift") } ?{ &m("non-shift") } .

<cut>

36 @Y "" ?. (ks&1)?{ &m("shift") } ?{ &m("non-shift") } .
36 @Z "" ?. (ks&1)?{ &m("shift") } ?{ &m("non-shift") } .;これだけwindowsに登録
							;されてるアプリに取られるけど
*							;正常です。ホットキー。
							;警告音、鳴りません。

 Windows 7 Professional Service Pack 1 (32 bit) がOSです。							



10715/10709 BQO00549  konno            Re: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/26 23:27 10709へのコメント(めざらさん) コメント数:2
> (1) to Filer
> 60 \[CR] "" ?. #O #m	;to filer	;H_ear

これは単独のマクロにして試しましたが、私の環境では、全てファイラーが開きました。
VZの種類もEMSも関係ないように思われました。DEF のオプションとか環境変数とか?
わかりません。

> (2) mp0で次検索(少し長いです.ごめんなさい)
> ;= ^QF.def = H_ear mp0常用者のいきなり検索・次検索

これは VTDOSではシフト実行が上手くいかないようですね。MS-DOS Player などでは問題なし。

ふと思いついて

> 35 ^R "" ?. (ks&1)??{ #r . } c-, >00
> 36 ^C "" ?. (ks&1)??{ #c . } c+, >00
      ↓
35 ^R "" ?. k=ks&1, (k)??{ #r . } c-, >00
36 ^C "" ?. k=ks&1, (k)??{ #c . } c+, >00

このように、変数に入れたら、VTDOSでも上手く動きました。
思うに、最近のCPUは速すぎて、シフトチェックのタイミングが微妙なのかと。
この辺の調整は可能なのかもしれませんが、要望したほうが宜しいですかねぇ。
シフトチェックは変数を介したほうが確実とどこかで見たような気が。

> VTDOS 環境では,@A 等の [Alt]+[英字] キーでコマンド/マクロを実行すると
> Windows が警告音を鳴らしてくる.この現象と同根か?

[Alt]+[英字] キーはWindowsで予約されている場合がありますからねぇ。
DOSを優先にするオプションとかあったかなぁ。


10716/10709 CRG00666  文太             Re^2: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/26 23:50 10715へのコメント(konnoさん) コメント数:2
konnoさん

 以下は、普通に行きますか?

=== Macrotmp by B ===;
* M

36 ^C "" ?. k=ks&1, (k)?{ &m("shift") } ?{ &m("non-shift") } .
36 ^E "" ?. k=ks&1, (k)?{ &m("shift") } ?{ &m("non-shift") } .

*


10717/10682 BQO00549  konno            Re^2: xc のバグと対策
( 1) 23/03/26 23:54 10713へのコメント(文太さん) コメント数:1
>  ただ、古いですね。32KB 近辺のバグは除去されていると思しいです。

高橋さんが直してくれてたんですか、ありがたいですね。
あとは、#B を繰り返し使うと CP がズレたりするのではないかと私は疑っています。
#B を使わないようにマクロを修正できれば安心できるのですが。

>  で、マーク4バイトX2で対策しようかとも思っているのですが、昨晩
> 深みにはまってしまい、、、。

すみません、余計なことを言ってしまったようで・・・


10718/10709 BQO00549  konno            Re^3: ks&1 は変数に入れたほうが確実
( 1) 23/03/27 00:05 10716へのコメント(文太さん) コメント数:1
>  以下は、普通に行きますか?
> 36 ^C "" ?. k=ks&1, (k)?{ &m("shift") } ?{ &m("non-shift") } .
> 36 ^E "" ?. k=ks&1, (k)?{ &m("shift") } ?{ &m("non-shift") } .

はい、VTDOSで普通に表示されます。
文太さんのところでも問題ないですよね?
やはりカッコに入れると上手く動かないんですかね。

STKHLP にありました。

> ※常にその時点のキーの状態を示すため、SHIFT 押下げで動作を
>  変更するマクロでは、最初に k=ks&1 のように保存しておく。

やはりこのほうが確実ということでしょうね。


10719/10682 CRG00666  文太             Re^3: xc のバグと対策
( 1) 23/03/27 00:21 10717へのコメント(konnoさん)
konnoさん

 あっちの結果報告を待っています。m(__)m
 ちょっとビックリしたので。

(xc について)
>高橋さんが直してくれてたんですか、ありがたいですね。

(ロング関数について)
--- vzt.doc ---
◎榊原版Vzより移植
●&Lc・&Id のバグ修正。また、全ての long 演算を符号なしに統一しました。
---------------
 少なくともこっちは、榊原さんですね。
 xc については、32KBは初耳で(現象確認できず)、64KBは、めざらさんが
仰っていたとおり、「仕様」でしょう。対策法も確立してるし。
 高橋さんのvzt.docには記載なし。

>あとは、#B を繰り返し使うと CP がズレたりするのではないかと私は疑っています。
 マクロイドとしては、これは困るんですよねぇ。2023年になって、まだこんな
ことを言ってる、、、。としきさん事例ですよね。あれは何なんだろう?

>#B を使わないようにマクロを修正できれば安心できるのですが。
 それは、たぶん、ほぼムリ。本質からずれますが、僕は、ブロックを下からした
ことなんてほぼないのです。すると、ほぼ自動的に、#B する。

>>  で、マーク4バイトX2で対策しようかとも思っているのですが、
>すみません、余計なことを言ってしまったようで・・・

 いえいえ、konnoさんにしては珍しく、他人(ひと)のお尻を叩いている。
 はい、叩かれてるなぁ、という自覚はあります。
 が、暇をみつけて、他のマクロをやってます、、、。オレ、かなり頭が悪いらしい
という自覚がふつふつ。場合分けができない!



10720/10709 CRG00666  文太             Re^4: ks&1 は変数に入れたほうが確実
( 1) 23/03/27 00:26 10718へのコメント(konnoさん)
konnoさん

>文太さんのところでも問題ないですよね?
 あります!

>やはりカッコに入れると上手く動かないんですかね。
 k に保存してもダメです。

 あいかわらず、^\E では、秀丸です!
 まいったぁぁぁぁ。

 僕のところでは(vtdos環境)、^\C と ^\E だけなので、それを避ければ
いいのですが。何だか、奇妙な制限のつく環境になってるなぁ。



10721/10709 DGF01024  めざら           Re^2: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 14:16 10715へのコメント(konnoさん)
参照先:http://mezala.la.coocan.jp/
> シフトチェックは変数を介したほうが確実とどこかで見たような気が。

うーん,でも,押しっぱなしなのに ks が変わらないとしたら変ですよね。
右シフトとか左シフトとかも何かあるのかなぁ……


to Filer の方は,版とは関係がなさそうで,いよいよ闇の中です。
確かに外部マクロに切り出すと問題がなかったりするのに,
内部マクロとして記述すると「動かない」ではなく「変な動き」。

記述の場所を変えてみるとかしてみるか……
ありえないとは思いつつも,前後の改行コードが変だったりして。


10722/10709 DGF01024  めざら           Re^3: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 18:54 10716へのコメント(文太さん) コメント数:2
参照先:http://mezala.la.coocan.jp/
きゃー! うちも [Shift][Ctrl]E でコンソールファイルみたいなテキストファイルが
notepad(メモ帳)でオープンされたし。うわー,コマンドラインでやったことが全部ある。
ぜんぶ見えてるの,恥ずかしー。(笑)
これ VTDOS の隠しコマンドか何かでしょうかね。

^C は両方とも non-shift だと思ったら,直前のメッセージがそのままっぽいです。
k=ks&1, &t としてみたら,トレースにも入らないです。つまり,無効キー。
^E も同様にしてみたら,やはりトレースする前に例のテキストオープン。



10723/10709 BNY00646  shadow           Re^4: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 19:49 10722へのコメント(めざらさん) コメント数:2
> これ VTDOS の隠しコマンドか何かでしょうかね。

VTDOS.TXTより引用

■ホットキー

通常モード時に次のキーに機能が割り当てられています。
キーアサインはvtdos.cfgで変更できます。

Ctrl+Alt+PageUp	バックログモードへ移行
Ctrl+Alt+.	カレントディレクトリーでWindowsシェルを起動
Shift+Ctrl+C	バックログをクリップボードへコピー
Shift+Ctrl+E	バックログの内容でエディターを起動
Shift+Ctrl+F	カレントディレクトリーでファイラーを起動

これですね。


10724/10709 DGF01024  めざら           Re^4: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 20:51 10722へのコメント(めざらさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
ksmiru.def 実行してみたら,うちのシフトキーは左右とも 3 だった。。。

何故だろう。謎だ。

= ksmiru.def =
* m
89 ^\ "ksを見る";システム変数 ks の変化を見る
	?.
:A	a=ks,
	(i8){pu.i--='1'-(a&1<<(7-i))!, }	;ビット表示
	&m("ks= %3d $%02x %8s",a,a,pu)
:B	(a-ks)?>A				;ks が変化したか?
	&k (r-$1B)?>B				;ESCが押されてない?
	&m("終了")
*




10725/10709 BQO00549  konno            Re^5: 原因はVTDOSのバックログ機能だった
( 1) 23/03/27 20:58 10723へのコメント(shadowさん)
> これですね。

おお、さすが shadowさん、私はそこまで気が回りませんでした。
私の VTDOS.CFG は
NO_BACKLOG=1
このように、バックログ機能を無効にしていたので気が付かなかったのですね。(^^;


10726/10709 DGF01024  めざら           Re^5: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 21:01 10723へのコメント(shadowさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
shadow さん,ありがとうございます!

> Shift+Ctrl+C	バックログをクリップボードへコピー
> Shift+Ctrl+E	バックログの内容でエディターを起動

これですね。全然隠しじゃなかった。
おかげでスッキリしました。 m(_'_)m

10727/10709 CRG00666  文太             Re^6: 【乞検証】現環境で出来なくなったこと
( 1) 23/03/27 21:07 10726へのコメント(めざらさん) コメント数:1
shadowさん、めざらさん、

>これですね。
 ですね! ちゃんと.doc 読め。
 サーンクス! ありが10匹!
 vtdos.txt、読みまーす!

NO_BACKLOG=1
 これで、^\C & ^\E 復活。

Ctrl+Alt+.	カレントディレクトリーでWindowsシェルを起動
 これはいけるかも。"explorer here" なんですけどね。「カレント」を
編集画面で一生懸命見るのだろうか? そんなマクロを書いたことがある記憶。
どうせファイラへ行くんだろうなぁ。



10728/10709 CRG00666  文太             ゴミ3
( 1) 23/03/27 21:18 10727へのコメント(文太さん)
 ゴミ・シリーズ、お気に入りみたい。

>「カレント」を編集画面で確認するのか?

--- vz.def ---
* T テキストウィンドウ
"Open File: <$pd> [Now $wc]",76
--------------

 と設定してあると、ファイル・オープン窓の上に見えますね。
 #O で、リターンでやっぱりそのままファイラに行っちゃいそうですけど。
カレントを調節するために。ぐるぐる、ぐるぐる。



10729/10709 BQO00549  konno            Re^5: KS のシフトチェックの値
( 1) 23/03/27 22:51 10724へのコメント(めざらさん) コメント数:1
> ksmiru.def 実行してみたら,うちのシフトキーは左右とも 3 だった。。。
> 何故だろう。謎だ。

VTDOS での値ですか?

> = ksmiru.def =

これいいですね。
        無入力 左シフト 右シフト
VTDOS      32   35    35
MS-DOS Player  0    3     1
DOSVAXJ3    32   35    33
Win98ME DOS窓  32   35    33

私の環境ではこうなりました。
これは、純DOS と Win窓環境の違いでしょうか。
VTDOS だけ左右が同じなんですね。仕様なのでしょうか。
実用上問題は無いですが、気になりますね。

そういえば、VTDOS環境になってから、(ks&3)? が上手く動かなくて、変数に代入するようになったような。
VTDOSは、(KS&3)? ではシフトチェックの値取得が上手くいかない時があるのでしょうか。

この辺、ダメもとで 10#さんにメールしてみようかな。


10730/10682 BQO00549  konno            EK+ で BL3072 の時の挙動
( 1) 23/03/28 00:41 10699へのコメント(konnoさん)
[ESC]i マクロの検証では、EK- で BL3072 の時は、全ての環境で NG になりました。
EK+ で BL3072 の時の挙動を確認したら、10#さんの環境が再現出来たようです。

VTDOS+高橋版VZで EMS環境で EK+, BL3072 の時、正常処理されました。
[F02]の後の比較マクロで6か所相違が出ます。修正VZでは一致します。
これは、XMS環境でも同じでした。

オリジナルVZでは、EMS環境でも XMS環境でもラップアラウンドエラーで、VZが落ちます。

MS-DOS Player と DOSVAXJ3 では、EMS環境でも XMS環境でも NG になりました。
試した全てのVZでファイルサイズが増える同じ壊れ方でした。

EK+ で BL3072 の時 VTDOS だけが正常処理されるとは、ビックリです! (゚゚;)


# このあたりに時空の歪みの境界があるのでしょうか。(@.@)


10731/10709 DGF01024  めざら           Re^6: KS のシフトチェックの値
( 1) 23/03/28 22:04 10729へのコメント(konnoさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
ksmiru.def は榊原さんのナイスな小物マクロです。

konno さんの環境は常に Numlock が立ってるのですね。
もしかして,本体連動しないテンキーとか接続していたりします?
(それか,デスクトップのフルキーボードって Numlock 立ってるのでしたっけ?)

     無入力 左シフト 右シフト
VTDOS   0    3     3
所期の値 0    3     1

> この辺、ダメもとで 10#さんにメールしてみようかな。

ホットキーの事例もあることだし,まずは皆さまのコメントを待ちましょうか。(笑)


10732/10709 BQO00549  konno            Re^7: KS のシフトチェックの値
( 1) 23/03/29 02:50 10731へのコメント(めざらさん) コメント数:1
> ksmiru.def は榊原さんのナイスな小物マクロです。 

そうだったのですか、2進数の表示は凄いと思いました。読めないし。(^^;

> konno さんの環境は常に Numlock が立ってるのですね。
> もしかして,本体連動しないテンキーとか接続していたりします?
> (それか,デスクトップのフルキーボードって Numlock 立ってるのでしたっけ?)

富士通の10キー付ノートPCです。Numlock が無いと使えないのです。
そうか、$20  32 は、Numlock が立っていたのですね。全然気が付きませんでした。
このマクロでの数値は

STKHLP IBM版表示 VTDOS MSDOSPlayer DOSVAXJ3
  +1 :R[Shift]   3   1     1
 +3 :L[Shift]   3   3     3
 +4 : [Ctrl]   4   4     4
 +8 : [Alt]    8   8     8
 +16: [ScLk]            16
 +32: [NmLk]   32        32
 +64: [Caps]            64
 +128: [Ins]            128


DOSVAXJ3 の [Caps] は、1度押しでIME起動、2度目以降は [Caps]ON 表示のままになります。
他のエミュでは、IME に取られるのか、表示が出ないですね。

この KS の値は、AH02 INT16h BIOSコールの値とほぼ同じですが、シフトだけ違います。
	ax$0200,&i($16) k=ax,&m("key= %04x  %d",k,k%256)	;AH02h  shift check

STKHLP IBM版表示 VTDOS MSDOSPlayer DOSVAXJ3
  +1 :R[Shift]   3   1     1
  +3 :L[Shift]   3   2     2

これは、.vz1.5 の時の値ですね、1.6 ではvzが値を変更しているのかな。
AH12 INT16h BIOSコールは、AH02 の値とほぼ同じですが、違いもあります。

81 ^^  "keyshift?"
	?.
:a
;	ax$0200,&i($16) k=ax,&m("key= %04x  %d",k,k%256)	;AH02h  shift check
	ax$1200,&i($16) k=ax,&m("key= %04x  %d",k,k%256)	;AH12h  (enh) shift check
	&w(10)
	&k (r-$1B)?>a				;ESCが押されてない?
	&m("") &d .

*

AH12h (enh) shift check では、VTDOSで
  +16: [ScLk]  
key= 1000   0
このように、ah に 10h が入りますね。微妙な違いです。(^^;


> > この辺、ダメもとで 10#さんにメールしてみようかな。
> 
> ホットキーの事例もあることだし,まずは皆さまのコメントを待ちましょうか。(笑)

メールしちゃいました。(^^;
やっぱり WinAPIの仕様らしいです。

>Win32Consoleの仕様を理解して貰えれば話は早いのですが、
>VTDOSはDOSコマンドとWin32コンソールコマンドをシームレスに扱う為に、
>Win32ConsoleをUIとすることが第一要件になってます。
>DOSキー入力の元はCONIN$からのキーイベントで、シフト状態もこれから生成しています。
>これはキューイングされたイベントなのでリアルタイムなシフト状態という訳ではありませんが、
>概ねリアルタイムな物となります。
>このキーイベントの仕様としてシフトだけが何故か左右の区別がありません。
>この仕様に則った場合、コンソールでの貼り付けが利用可能になります。
>貼り付けをサポートするのもこの仕様を採用する理由ですが、貼り付けの仕様上、
>シフト状態がリアルタイムな物である事を保証するものではありません。

仕様ということで、あとは直に変数に代入することで問題なく使えると思います。


10733/10709 CRG00666  文太             Re^8: KS のシフトチェックの値
( 1) 23/03/29 13:27 10732へのコメント(konnoさん) コメント数:1
 無意味な報告ですが。WinAPI の仕様。うーん、この手のことまで
処理してくれるAPIがあるものなんだ、、、。

     無入力 左シフト 右シフト
VTDOS   0    3     3
WinME   0    3     1

 でした。上はめざらさんのほぼ丸写しですが、実験はちゃんとしてます。



10734/10734 BNY00646  shadow           VTDOS & VZでファイル名が異常
( 1) 23/03/29 20:56 コメント数:3
ファイル名に = が入っていると変な現象が起こります。
例えば
windowsで abc=.txt のファイルを作成
VTDOS で dir すると
abc=.txt 問題なし
vzを起動しfilerで見ると
abc_~1.txt
上記の表示になります。
Rename と ロングファイル名表示は問題ありません。
ショートファイル名で = の箇所が _~1 の表示になります。
全てのVZで同じことがおきます。
皆さんの環境ではどうなんでしょうか?


10735/10709 BQO00549  konno            Re^9: KS のシフトチェックの値
( 1) 23/03/29 22:31 10733へのコメント(文太さん) コメント数:1
>  無意味な報告ですが。WinAPI の仕様。うーん、この手のことまで
> 処理してくれるAPIがあるものなんだ、、、。

必ずしもDOSコールの上位互換ではないというところが、痛しかゆしですよね。(^^;

>      無入力 左シフト 右シフト
> VTDOS   0    3     3
> WinME   0    3     1
>  でした。上はめざらさんのほぼ丸写しですが、実験はちゃんとしてます。

確認頂きありがとうございます。やはり同じですね。


10736/10734 BQO00549  konno            Re: VTDOS & VZでファイル名が異常
( 1) 23/03/29 22:39 10734へのコメント(shadowさん) コメント数:1
> ファイル名に = が入っていると変な現象が起こります。

'=' は、ショートファイル名に使えない文字なのではないでしょうか。
純DOSエミュのNP2 で試すと、無効なパス名と怒られます。

これだけでは何なので、ネットで検索すると
http://elm-chan.org/docs/fat.html#lfn
こちらのサイトから引用すると
-----------------------------------------------------------
短いファイル名
短いファイル名では、8バイトまでのボディとオプションのドット(.)+3バイトまでの拡張子に制限される、いわゆる8.3形式のファイル名が使用できます。
パス名のトータル長は、3バイトのドライブ文字 + 64バイトのパス + 12バイトのファイル名の合計79バイトとなります。
ファイル名を構成する文字は、ASCII英数と一部のASCII記号$%'-_@~`!(){}^#&および拡張文字(非ASCII文字)の任意の組み合わせが可能です。

長いファイル名
LFNでは、255文字までのファイル名が使用可能です。
使用可能な文字は、SFNで使用可能な文字全てに+,;=[]が加わっています。
ドットはファイル名の中にいくつでも含めることができ、スペースもファイル名の任意の位置に挿入することができます。
ただし、ファイル名の末尾に来るドットやスペースは無効で、API入力の段階で除去・無視されます。
ファイル名の先頭に来るドットやスペースは有効ですが、UIによっては(たとえばWindowsコモンダイアログ)これらのファイル名を入力できません。
LFNエントリには、大文字変換は行わずに入力のままの形のUnicode(UTF-16)文字列として格納されます。
-----------------------------------------------------------
このように書いていました。

各種DOSエミュでは、'=' があるとロング名として扱っていると思われます。


10737/10734 CRG00666  文太             Re: VTDOS & VZでファイル名が異常
( 1) 23/03/29 23:16 10734へのコメント(shadowさん) コメント数:2
shadowさん

 あはははは。「確定申告」は必要だから困るんだよ、というのは分かる。
 でも、なんでまた、そのような冒険を?
 ほんとに必要なのですか?

 とにかく、DOS 6.2V のドコモバのVzファイラではファイルが作れません
でした。ここのcommand.com は、「Invalid keyword」と言っていました。

 ネットでは、「それは代入の意味になっちゃうから、クゥートに入れない
とダメなの」みたいな書き込みがありました。Win LFN 環境。
 なんだろう、パソコンに意味のある記号を裸でコマンドラインには書けない
みたいなニュアンスでした。

 vtdos環境だとVzファイラでファイルは作れるが、仰るとおり、a_b~1.txt
になりますね。LFN扱いなのでしょう。そしてその際、= -> _ 変換が
(見た目上?)入るのでしょうかね?
 a=b.txtを作ろうとしたときの話です。

 なお、秀丸からa=b.txtでファイル保存をしようとしたら、ちゃんと上書きを
尋ねてきました。a_b~1.txtが内部的に(?)a=b.txtと認識されているみたい
でした。

 もう迷宮入りみたいなものですが。以下、Win7 環境。

>dir a=b.txt (command.com)
  File Not Found

>dir a_b~1.txt (command.com)
2023/03/29  22:58                 5 a=b.txt

>dir a=b.txt (cmd.exe)
2023/03/29  22:58                 5 a=b.txt

>dir a_b~1.txt (cmd.exe)
2023/03/29  22:58                 5 a=b.txt

 とのことでした。(5 は 5 bytes)

 もちろん僕は詳しい仕組み(理屈)をまったく知りません。



10738/10709 CRG00666  文太             Re^10: KS のシフトチェックの値
( 1) 23/03/29 23:22 10735へのコメント(konnoさん)
konnoさん

 深追いしてもしょうがない話ですが。

STKHLP IBM版表示 VTDOS MSDOSPlayer DOSVAXJ3
+1 :R[Shift]   3   1     1
+3 :L[Shift]   3   3     3

 というのを見ると、そのAPI、C++か何かで書きなおせるん
だろうな、とか空想しました。
 MSDOSPlayer, DOSVAXJ3 の作者さんも、そのAPIを使ってますよね、
きっと。
 それより、上の調査、ありがとうございました。VTDOSしか使わない
にしても、他のエミュとの比較は有効ですね。自分ではしないのだけど、、、。
たしゃぁ〜 m(__)m



10739/10734 DGF01024  めざら           Re: VTDOS & VZでファイル名が異常
( 1) 23/03/30 08:39 10734へのコメント(shadowさん) コメント数:1
参照先:http://mezala.la.coocan.jp/
小文字で abc だからかな?と思い,エクスプローラで大文字の ABCD=.txt を作り,
確認したところ,ABCD_~1.TXT と表示された。あ,拡張子が小文字だった,と思って,
同様に ABCDE=.TXT を作ったところが,やはり ABCDE_~1.TXT と表示された。

という状況となりました。
これは,すごく古い vzk(例えば vzk5 とか)で同様になりますね。

「=」の制限は,cmd.exe にあるくらいで,ファイル名としては制限ないようです。


10740/10734 BNY00646  shadow           Re^2: VTDOS & VZでファイル名が異常
( 1) 23/03/30 08:39 10736へのコメント(konnoさん)
色々調べていただき有難うございます。

> 使用可能な文字は、SFNで使用可能な文字全てに+,;=[]が加わっています。
私が調べた使用可能な文字はLFNの方だったようです。
早とちりしていました。

10741/10734 BNY00646  shadow           Re^2: VTDOS & VZでファイル名が異常
( 1) 23/03/30 08:53 10737へのコメント(文太さん) コメント数:1
>  でも、なんでまた、そのような冒険を?
>  ほんとに必要なのですか?
と聞かれれば必要じゃないです。
興味本位です。

ブラウザで調べた情報をコピペしてエディターで一時保存しています。
保存するときに1行目がファイル名になるのでそのまま保存しているのですよ。
たまたま=が含まれていたのです。
清書のためVZで開くときに気づいたのでした。

10742/10734 BNY00646  shadow           Re^2: VTDOS & VZでファイル名が異常
( 1) 23/03/30 13:31 10739へのコメント(めざらさん)
> 「=」の制限は,cmd.exe にあるくらいで,ファイル名としては制限ないようです。
VTDOS.CFG設定のUSECMD=0|1
ビルトインコマンドの実行にCMD.EXEを利用します。とありました。
USECMD=0 に設定すると
VZの新規ファイル作成で abc=.txt を作ると
dirでもABC_~1.TXTと表示されました。
エミュレーターの仕様であることがわかったので良しです。


10743/10734 CRG00666  文太             Re^3: VTDOS & VZでファイル名が異常
( 1) 23/03/30 14:04 10741へのコメント(shadowさん) コメント数:1
shadowさん

 すばらしいですね!
 うん、LFN <-> SFN の話でなく、その情報管理システム。
 ワードですよね、1行目がとりあえずのファイル名になるの。
 そして、「一時保存」と「清書」のシステム。
 いやあ、何度も同じこと、グーグル先生にお聞きしておりますなぁ、という
場面はたしかにあり、どんどん消失してゆく記憶力にもかかわらず、道具立てで
解決にのぞむ根性にかけておりました。
 がんばります!


10745/10734 CRG00666  文太             事故レス
( 1) 23/03/30 14:49 10737へのコメント(文太さん) コメント数:1
 昨晩のテストがどうも奇妙な気がしてきたので、やり直しました。


--- (1)vtdos, usecmd=1, cmd.exe used
C:\>dir a_b~1.txt	;OK
2023/03/29  22:58                 5 a=b.txt

C:\>dir a=b.txt		;NG
ファイルが見つかりません	;でも、なんで日本語? command.com + biling.sys
				;で、日本語メッセージなのじゃなかったか?

C:\>dir "a=b.txt"	;OK
2023/03/29  22:58                 5 a=b.txt



--- (2)vtdos, usecmd=0, cmd.exe NOT used, command.com v.6.2 used
C:\>dir a_b~1.txt	;OK
A_B~1    TXT             5 23-03-29   22:58

C:\>dir a=b.txt		;NG
無効なキーワードです. -  a=b.txt

C:\>dir "a=b.txt"	;NG
パラメータの書式が違います. -  "a=b.txt"



--- (3)「コマンドプロンプト」窓 = cmd.exe
C:\>dir a_b~1.txt	;OK
2023/03/29  22:58                 5 a=b.txt

C:\>dir a=b.txt		;NG
File Not Found

C:\>dir "a=b.txt"	;OK
2023/03/29  22:58                 5 a=b.txt



 cmd.exeが変に見えるのは、クゥオートがないせいです。

 少しだけ追記。さっき、めざらさんあてに「cmd.exe、変ですか?」という主旨の
発言をアップし、そして削除しました。
 そこに書いたもう1つの点は、CUIのコマンドラインには、(たとえば引数の
区切りに半角スペースを使うなど)、そもそも制限条件があり、その影響で、
ファイル名とその扱い(クゥオートなど)にGUIにはない条件がでるのでは?
ということでした。

 全体に、上で納得しました。

追記:Vzファイラでも、lf+ にすれば、ちゃんと、「a=b.txt」と
   表示されました。

追記2:しつこいですねぇ。usecmd=1 環境です。vtdos窓です。

C:\>dir |more
だだだ、、、 cut
2023/03/29  22:58                 5 a=b.txt
だだだ、、、 cut

 コマンドラインで【その】ファイル名を指定したりしなければ、
ふつうに出ますね。これって驚くべきことなんだっけ? いえ、全体に
整合してると思います。






10746/10734 DGF01024  めざら           Re: 事故レス
( 1) 23/03/30 18:54 10745へのコメント(文太さん) コメント数:1
参照先:http://mezala.la.coocan.jp/
>  cmd.exeが変に見えるのは、クゥオートがないせいです。

そうですね。要するに,文太さんがおっしゃるとおり,空白入りファイル名と同様に
コマンドラインでは引用符で括らないとダメという話でしたね。直接の関係なし。

事故?


10747/10734 BQO00549  konno            ロング名のあれこれ
( 1) 23/03/30 19:33 10743へのコメント(文太さん) コメント数:2
皆さん盛り上がっていますね。
私もまとめ的に、エミュ三種の盛り合わせを。(^^;
各種DOSエミュで、DIR してみました。

VTDOS USECMD=1 VZk常駐/非常駐 MSDOS6.2  
 D:\01 のディレクトリ
2023/03/30  15:26                 0 MS=.txt
2023/03/30  15:26                 0 MSs=.txt
2023/03/30  15:36                 0 VT=.txt

VTDOS USECMD=0 VZk常駐/非常駐 MSDOS6.2  
 Directory of D:\01
MS_~1    TXT             0 23-03-30   15:26
MSS_~1   TXT             0 23-03-30   15:26
VT_~1    TXT             0 23-03-30   15:36

※ USECMD=0 だと、ショート名になるんですね、メッセージも英語に。(^^;


MS-DOS Player FreeCOM
 D:\01 のディレクトリ
MS_~1    TXT             0  23/03/30 15:26
MSS_~1   TXT             0  23/03/30 15:26
VT_~1    TXT             0  23/03/30 15:36


DOSVAXJ3
ディレクトリは D:\01\
MS=      TXT                  0 2023-03-30 15:26 MS=.txt
MSS=     TXT                  0 2023-03-30 15:26 MSs=.txt
VT=      TXT                  0 2023-03-30 15:36 VT=.txt
楽天01~1 TXT                 68 2023-02-19 22:51 楽天0123456789 01.txt

おや? 何か変ですね。
ショート名なのに "=" 表示になっています。

LFNでは、SFNで使用可能な文字全てに+,;=[]が加わっています。とありますが、
ファイル名に "=" を使うと、他のエミュではロング名として作成されますが、
DOSVAXJ3 では新規作成できません。

これは、作者様に、別件でメールしました。


# アイドル推しが増えるかもしれないの。嬉しい!!

# 「なんてったって アイドル」  と言えば、誰?


10748/10734 CRG00666  文太             Re^2: 事故レス
( 1) 23/03/30 21:10 10746へのコメント(めざらさん)
>事故?

(1) 昨晩のテストに間違いが含まれていた。
(2) 削除されためざらさん宛のレスに「cmd.exe、変?」「たしかに変ですね」
   というのが含まれていた。

 そんな事故でした。


10749/10734 CRG00666  文太             Re: ロング名のあれこれ
( 1) 23/03/31 00:39 10747へのコメント(konnoさん) コメント数:1
>私もまとめ的に、エミュ三種の盛り合わせを。(^^;
 あはははは。得意技!

>ショート名なのに "=" 表示になっています。
>これは、作者様に、別件でメールしました。
 僕は「仕様」でもいいんじゃない? と思いました。エミュ作家も
ほんと大変ですよね。
 僭越ですが、「konno組には仲間がいます」アピールにはなりますかね。
 ならんか?!


10750/10734 BQO00549  konno            Re^2: ロング名のあれこれ
( 1) 23/03/31 14:19 10749へのコメント(文太さん) コメント数:1
> >私もまとめ的に、エミュ三種の盛り合わせを。(^^;
>  あはははは。得意技!

これはマジな話、このエミュ三種で問題なくVZが動かないと滅茶苦茶悔しいから。(^^;

>  僕は「仕様」でもいいんじゃない? と思いました。エミュ作家も
> ほんと大変ですよね。

私なら仕様にして逃げたかもですが、プロはその辺妥協せずキッチリやりますからねぇ。(^^;

>  僭越ですが、「konno組には仲間がいます」アピールにはなりますかね。

これは大いに感じています。この1年の間でVZだけでも
としきさんは、[ESC]i マクロの問題提起し、それがきっかけで VZのバグをあぶり出せましたし
めざらさんは、同様の問題を ClpPst.def で提起し、それがきっかけで 10#さんにメール出来ましたし
文太さんは、「zp ってなに?」という問題提起し、それがきっかけで WinNT系の問題解決出来たかもだし
shadowさんは、ファイル名の "=" の問題提起し、それがきっかけで DOSVAXJ3の挙動が発見出来ましたし
よくこれだけ問題発見出来たものですね。(^^;

これらはいずれも私一人では解決できないことばかりでした。
みなさんの問題提起と沢山の検証のおかげで化学反応が起きたようです。
私はみなさんに導かれてか、引っ張られてか、やっとこさ先に進むことが出来たように思います。
何ミリかもしれませんが。


10751/10734 CRG00666  文太             Re^3: ロング名のあれこれ
( 1) 23/04/01 18:00 10750へのコメント(konnoさん)
 ムダに長文になりました。

>>私もまとめ的に、エミュ三種の盛り合わせを。(^^;
>これはマジな話、このエミュ三種で問題なくVZが動かないと滅茶苦茶悔しいから。(^^;
 「滅茶苦茶」に実感がこもってますね。いいです!
 助かってます!

>私なら仕様にして逃げたかもですが、プロはその辺妥協せずキッチリやりますからねぇ。(^^;
 あ、勝手に決めてる、、、。

>文太さんは、「zp ってなに?」という問題提起し、それがきっかけで WinNT系の
>問題解決出来たかもだし
 えーと、うーんと、、、。それはよかった、とにかく。
 ではありがたく、クレジットだけいただいておきます。スワップさせなければ、
不安定ではないような気もしますが。
 ただ疑問は、なぜそんなものに変数名を与えて外に出したのだろう? という
こと。マクロから状況を見るため? 書き換えに失敗したら落ちると思うんですけどね?
そうでもないのかな?

 そういえば、数日前に思ったのですが、vtdos自体は、最近おちていません。
 なんだろう? 最新版にしたのがよかったのか? vtdos.cfgがうまくはまったのか?
 あんまり使ってないからかなぁ? (。o゚)☆\バキ

>これらはいずれも私一人では解決できないことばかりでした。
 とはいえ、最後の(最初と途中もかもしれないけど)一押しはkonnoさんです!
 元に戻って。でも、エミュ作家だって、ユーザさんから反応がときにはあって
嬉しいものなのかもしれませんね。作って公開したら、やっぱ使って欲しいでしょうし。

>何ミリかもしれませんが。
 マジな話。
 体調に不安をかかえ(思い過ごしだろう)、残り時間のことをけっこうよく
考えています。そして、幸福とは何か、と。青年みたいに。
 で、出た結論は、自分の成長です。進化です。これ以上の、これ以外の幸福はない
な、と。ですから、1ミリでも2ミリでも前進は前進。幸福です。

 しっかし、1993年(僕のばあい)に発売になったエディタに2023年になって、
その環境を含め、まだこだわっている人たち、、、。あ、今年の12/6、30周年!
 幸せな人たちだ。モノを大事にする人たちだ。
 でも、天才の作品なんだもの、しょうがないじゃん。

 富士通 biblo WinMEノートのcmos電池が切れ始め、本格的にバラして交換する
しかないぞ、と算段をしています。デスクトップはその点、簡単。

 その後。SFNでファイルに「=」を「仕様」としてエミュレータが許すという
ことについて、つらつらと考えています。やっぱダメですね。作者は直すでしょう。
だって、そのファイル、SFNしか扱えない環境(DOSですね)では、、、どうなる
のでしょう? たとえばUSBメモリにコピーされたそのファイルをDOSで開こうと
したら。かなりナイスな発見だったかもしれませんね。
 純DOSな環境をお持ちの方が、世間にどれだけいるか分かりませんが。
 もっともエミュ作る人は、持ってそうですね。



10752/10734 CRG00666  文太             Re: ロング名のあれこれ
( 1) 23/04/01 21:07 10747へのコメント(konnoさん) コメント数:2
konnoさん

 えと、簡単なテストだと思うので、やってみていただけますか。
 まだ、つらつらしてるのです。
 清十郎のチュートリアルをざっとまた眺めてみたのですが、SFNとLFNの関係
というものがよく分からなくて。

> その後。SFNでファイルに「=」を「仕様」としてエミュレータが許すという
>ことについて、つらつらと考えています。やっぱダメですね。作者は直すでしょう。

 この辺りの件なのですが、DOSVAXJ3で、「a=b.txt」を作る。
 vtdosのファイラで、lf+ で、このファイルを見てみる。
 こんな実験です。

 いちおう混濁したまま書いてみると、
「a=b.txt」はLFN、これのSFNが「a_b~1.txt」(エイリアス)。これが正規の仕様。
 vtdos(LFN対応)で、「a=b.txt」を作れば、上の関係のまま表示される。
 「a=b.txt」がSFNとして作られたら、どうなる?

 こんな感じです。「a=b.txt」がSFN扱いだと、LFNも同じものになると思う。
でも、「a=b.txt」(SFN)なんてのは、DOSVAXJ3以外では許されないと思う。

 どうなりますでしょうか? 「ファイルがない」「ファイルが見えない」「存在が
確認できない」なのかなぁ、と思っているのですが。



10753/10734 BQO00549  konno            Re^2: ロング名のあれこれ
( 1) 23/04/01 23:50 10752へのコメント(文太さん) コメント数:1
>  この辺りの件なのですが、DOSVAXJ3で、「a=b.txt」を作る。
>  vtdosのファイラで、lf+ で、このファイルを見てみる。
>  こんな実験です。

#10747 で konno さんは言いました。

> ファイル名に "=" を使うと、他のエミュではロング名として作成されますが、
> DOSVAXJ3 では新規作成できません。

 「a=b.txt」がSFNとして作られたら、どうなる?
>  こんな感じです。「a=b.txt」がSFN扱いだと、LFNも同じものになると思う。
> でも、「a=b.txt」(SFN)なんてのは、DOSVAXJ3以外では許されないと思う。

#10736 で konno さんは言いました。

> '=' は、ショートファイル名に使えない文字なのではないでしょうか。
> 純DOSエミュのNP2 で試すと、無効なパス名と怒られます。

DOSVAXJ3 で '=' をショートファイル名に使おうとすると、これと同じになるということです。
おかわりいただけたでしょうか。

DIR でショート名に "=" が表示されたのは、バグだと思われます。

#10751
>  その後。SFNでファイルに「=」を「仕様」としてエミュレータが許すという
> ことについて、つらつらと考えています。やっぱダメですね。作者は直すでしょう。
> だって、そのファイル、SFNしか扱えない環境(DOSですね)では、、、どうなる
> のでしょう? たとえばUSBメモリにコピーされたそのファイルをDOSで開こうと
> したら。かなりナイスな発見だったかもしれませんね。

ここでは、なるほどなぁ、と思いました。(^^;


# もうおなかいっぱい。(^^;


10754/10734 CRG00666  文太             Re^2: ロング名のあれこれ
( 1) 23/04/01 23:51 10752へのコメント(文太さん) コメント数:1
konnoさん

 すいません、すっかり混乱しました。

--- 引用です ---
DOSVAXJ3
ディレクトリは D:\01\
MS=      TXT                  0 2023-03-30 15:26 MS=.txt
MSS=     TXT                  0 2023-03-30 15:26 MSs=.txt
VT=      TXT                  0 2023-03-30 15:36 VT=.txt
楽天01~1 TXT                 68 2023-02-19 22:51 楽天0123456789 01.txt

おや? 何か変ですね。
ショート名なのに "=" 表示になっています。

LFNでは、SFNで使用可能な文字全てに+,;=[]が加わっています。とありますが、
ファイル名に "=" を使うと、他のエミュではロング名として作成されますが、
DOSVAXJ3 では新規作成できません。
----------------

 DOSVAXJ3は、少なくとも F_Create において純DOSなんですね。
 だから作れない。
 上の表示自体がおかしいんですね。
 なんか迷宮に入ってしまいました。純DOSでは、「+,;=[]」はファイル名に
使えない。最初の定義どおりですね。
 作者さんは、ぜったい直しますね。右のLFN表示はあるのですから。



10755/10734 CRG00666  文太             Re^3: ロング名のあれこれ
( 1) 23/04/01 23:53 10753へのコメント(konnoさん)
konnoさん

 ちょうど入れ違いました。

>DIR でショート名に "=" が表示されたのは、バグだと思われます。

 はい、賛成です!

># もうおなかいっぱい。(^^;

 すいませんです。お手数をおかけしました。



10756/10734 BQO00549  konno            Re^3: ロング名のあれこれ
( 1) 23/04/03 20:44 10754へのコメント(文太さん)
>  DOSVAXJ3は、少なくとも F_Create において純DOSなんですね。
>  だから作れない。
>  上の表示自体がおかしいんですね。

だいたい合っていると思います。
あらためて確認してみたら、DOSVAXJ3 で新規作成は
DOSV=.TXT	NG
"DOSV=.TXT"	NG
'DOSV=.TXT'	NG
DOSVAXJ3=1.TXT	NG
1234567890.txt	OK	LFN作成成功

どうやら文字コードの範囲の問題のように思います。「+,;=[]」は全てダメみたいです。
修正版はもうすぐアイドルになって登場すると期待しています。(^^ゞ

#10755
どうやらおかわりはなしだったようで。(^^;


# 最近は少食なので、一杯で充分なのです。(^^;


10758/10586 BQO00549  konno            Re: WinNT系のコマンドライン問題解決の方法
( 1) 23/04/08 01:47 10588へのコメント(konnoさん)
#10588 の続きです。
記事で書き忘れていたのですが、ソースを見なおしていて思い出しました。
先のソースは前半で、後半の処理ルーチンが漏れていました。

dos.asm 1249行あたり
	mov	ax,cs
	cmp	byte ptr cs:os_win,5	; ##k 230225  NT系コマンドライン不具合対策
	je	winnt5			; ##k 
	tstw	es:[mcb_psp]		; ## この2行が		2010-2-10
	jz	chkmcb9			; ## 不要と思われる	by 10#
winnt5:	cmp	es:[mcb_psp],ax
chkmcb9:pop	es
	ret
checkmcb endp

ソースを公開した後にコメントを追加しているもので、見落としていたのです。(^^;
WinNT系なら2行をスキップするように変更したのですが、その2行に 10#さんのコメントが。(^^;
当時の記事を引用します。

-----------------------------------------------------------
#4999: Re^5: VTDOS v1.22 で分割画面で異常 投稿者: 10#   2010/02/10(水) 00:59

F_REALLOCが未割り当て領域エラーを返した場合の処理は省略されている模様。
検査用のローカルサブルーチンcheckmcbをレビュー。

該当箇所・DOS.ASM 1250付近
> checkmcb proc
>         push    ax
>         dec     ax
>         mov     es,ax
>         mov     al,es:[mcb_id]
>         cmp     al,'M'
> _ifn e
>         cmp     al,'Z'
>         jne     chkmcb9
> _endif
>         mov     ax,cs
>         tstw    es:[mcb_psp]	; ## この2行が
>         jz      chkmcb9	; ## 不要と思われる
>         cmp     es:[mcb_psp],ax
> chkmcb9:pop     es
>         ret
> checkmcb endp

呼び出し仕様「割り当て済みチェック」に対して、
「未割り当てを含む有効なMCBチェック」であることが判明。
この論理ではexpandfarが空き領域に対してF_REALLOCを
呼び出しうるため、不具合であると仮定。
問題箇所をコメントアウトしてVZをリビルド。

パッチ済みのVZで追試を行いました。
結果、SW3の時に画面分割を行っている場合は再現しましたが、
それ以外の場合は改善されている様子です。

-----------------------------------------------------------

このように、2010年当時に10#さんは既にVZの不具合部分を特定していたようなのです。
私はそれを忘れていて、たまたまWinNT系対策のためにそこをスキップさせたのでした。
恐らくそこの2行をコメントにしても問題ないどころか改善されていたかもしれないと思われます。

やっぱりプロのプログラマーは凄いですね。
10#さんはじめ、みなさまに感謝です。m(__)m