一括表示

− 野ざらし言 −

[5226] Does your "Dir /P" work?

文太 2022/12/28(Wed) 00:59

 年末に連発で申し訳ありません。僕も、年末年始は、通信を離れて(m.gannさんも
正月くらいゆっくりしたら? と仰ってましたよね)、ゆっくりしようと思っていた、
思っているのです。が、何これ? という事態。


 VTDOS @ Win7 です。

>Dir /P が効かないようです。僕だけ?

 しょうがないから
>Dir /S | more
 としました。ダメです!

ちなみに、MS謹製のmore.comは
C:\Windows\System32
にあり、これでダメ

としきさん作成の more.com が c:\bin にあったのですが、こっちでもダメ。

>Dir /S >c:\kek.txt
 として、結果は得たのですが、そんなものでしょうか?

[5228] パイプはOK, moreがNG

文太 2022/12/28(Wed) 11:17
[5226]へのコメント
 もしかして、コマンドラインの記述(pathの通し方、more.com検索の順番)を
間違えたか、と思い、追試。

>dir /S | C:\Windows\System32\more
 結果はダダダダダ、と全部羅列。
 やっぱりダメです。more.comが効いていません。

C:\>dir | cgrep "www"
2022/12/28  00:56    <DIR>          www
 パイプは機能しているようです。この「パイプ+グレップ」はものすごくよく
使うから、問題が起ころうはずがない、と思っていた。

 コンソール画面を管理する何かがうまくないのかな?


>Dir /P (page出力)
とか
>Dir | more

 って、けっこう使いますよね?

[5231] Re: パイプはOK, moreがNG

としき 2022/12/28(Wed) 23:04
[5228]へのコメント http://toshiki.la.coocan.jp/
dir /p が動かないということは何か別の問題があるのかもしれませんが。
moreの単体試験ということであれば、例えば

type test.txt | more

とか

more < test.txt

とか

more test.txt

なんていうのを試してみたらどうでしょうか。
どこかの誰かの作った妖しいmoreだと対応していない構文もあるかもしれませんが、OS純正のmoreなら、確かどれも通ったはず。
あとは、pathの通し方を失敗していて、VTDOSでは古いDOS用のmoreでないと動かないのに新しいほう(親OS)のmoreが起動しようとしてしまっている、とか。

[5232] Re^2: パイプはOK, moreがNG

文太 2022/12/29(Thu) 00:30
[5231]へのコメント
としきさん

 ありがとうございます。でも、むくれてます。
 vtdos環境のせいなのでしょう。MS謹製のmore.comもまともに機能しません。

>moreの単体試験ということであれば、例えば
>type test.txt | more

 vtdos環境では上が機能しません。
 としきさんの more.comは、
--- MORE ---
 とばかり言います。

>type c:\t.text | C:\Windows\System32\more

 は、「コマンドプロンプト」(純正DOS窓環境)では、効きます。
 文字化けしてるけど。

 vtdos環境の特殊性ということだと思います。
 僕、この環境にまったく強くないので、今頃、そんなこと言ってんの?
と言われても、はい、そうなんですよ、苦手なんですよ、としか言いようが
ないです。
 きっとXPのDOS窓(ntvdm)では、大丈夫なんでしょう。

 こういうことが起こったときには、素直にリダイレクトすることと
いたしましょう。


追記:まあ当たりまえなのですが、「コマンドプロンプト」窓で、最初に
結果が欲しかったことを試したら、素直に結果をくれました。

>dir c:\www /S /P

Press any key to continue . . .

 画面、止まるよぉ!

[5233] Re^3: パイプはOK, moreがNG

としき 2022/12/29(Thu) 14:29
[5232]へのコメント http://toshiki.la.coocan.jp/
一つだけ。

>  vtdos環境のせいなのでしょう。MS謹製のmore.comもまともに機能しません。

MS製のmoreって、DOS6あたりの付属のものを使っていますよね?
一方、VTDOSって何かのcommand.comを持ってきていると思うのですが、それとのバージョンの不一致ってありませんか?
つまり、freedosなんかのcommand.comを使っていました、という可能性。
まず、VTDOSで使っているcommand.comのバージョンを確認してください。
次に、more.comのタイムスタンプを確認してください。
このあたりの話をきちんと記載していただかないと、「それは確かにそうなるよ」といった反応を返せる可能性のある人でさえ返事をしづらいかと。
とにかく、文太さんの書かれたことって、必要な情報が少なすぎるんですよ。
いや、情報量は多いんですが。
例えば、「MS謹製のmore.com」にだって種類は多い、とか。

[5235] Re^4: パイプはOK, moreがNG

文太 2022/12/29(Thu) 15:34
[5233]へのコメント

としきさん

 今ちょうど遊んでました。

>とにかく、文太さんの書かれたことって、必要な情報が少なすぎるんですよ。
>いや、情報量は多いんですが。

 おほほほほ。名言。そのとおり。
 なんですが、下に情報を書きますが、そもそもvtdosで使えるcommand.comって
けっこう制限つよくなかったでしたっけ? freedosのcommand.comその他って
使ったことないですし(Vzがまともに動くかも知らない。噂も耳に入ってない)、
割と「標準的」なcommand.com + more.comだと思うのですが。


C:\VTDOS>command.com
Microsoft(R) MS-DOS(R) Version 6.20
(C)Copyright Microsoft Corp 1981-1993.

more.com 20,992 2009-07-14 08:15 ;Win7 標準(他から持ってきてない)
 です。 ;in c:\windows\system32

>MS製のmoreって、DOS6あたりの付属のものを使っていますよね?
 というわけで、これは使っていません。


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

 typeコマンドがcommand.comの内部コマンドで、moreがWin32のものだから、
整合しない。こうなのか! と一瞬思いました。
 だとしたら、32bit Winアプリのtosfind とWin32 moreなら、vtdosでも、と
考えましたが、ダメです。うーん、vtdosの制限じゃないですかねぇ?

c:\0etxt>tosfind /n*.* |c:\windows\system32\more ;vtdos環境
 流れます。止まりません。

c:\0etxt>dir /s |c:\windows\system32\more ;vtdos環境
 流れます。止まりません。
 (もっとも、このdirコマンドもcommand.comの内部コマンドですね。
  「コマンドプロンプト」内のdir〔==cmd.exe内==〕とは違う)

 もちろん、c:\0etxt には、300個ぐらいのファイルが入っています。
 流れては困る環境です。


 こういう言い方は完全に不良的ですが、確認いただけたとしたら嬉しい
ですが、僕のWin7 32bitでダメなら、ダメなんですよねぇ。その制限を確定して
逃げる方法を考えてるだけなんですよねぇ。
 で、それが、誰かのお役に立てたなら、何かのきっかけになってくれたら
これはもう望外の幸福。棚から牡丹餅、です。

 もちろん、前回のtypeコマンドによるmoreの制限の確認法にしろ、やっぱり
基礎ができてる人は違うなぁ、ととっても感謝はしているのですが。
 憎まれ口をたたいているつもりは、ぜんぜん、ないですよ。

 さらに余計なこと。僕は、WinXP/Vista/7/8/10/11, 32bit and 64bitで、
vtdos環境なら、きっと同じなんだろ、と想像しています。しばしば外れるけど。

 (1)dir /p
 (2) ... | more
 は、効かない、と。

 ご存知のとおり、僕は、vtdos環境とあまり親和性が高くありません。
 強い関心はあんまりない、と言ってもいいのかも。どうせ、、、だから。
 ワイドディスプできないのが弱点ではあったけど、XPのNTVDMは偉かった
んだなぁ、と思っています。その時代のアメリカのDOS派の人たちからの評価も
高かったと、最近しりました。

[5237] Re^5: パイプはOK, moreがNG

としき 2022/12/29(Thu) 17:53
[5235]へのコメント http://toshiki.la.coocan.jp/
うちの、例の挿入異常が発生する環境はWinXPのVTDOS1.22です。
このVTDOS1.22のドキュメントには

> 本格的に利用する場合はDOS6辺りのCOMMAND.COMを用意されることを強く推奨します。

と明記してあります。
なので、DOS6のcommand.comを入れてあります。
この環境で dir /p を行うと、きちんと一時停止が行われます。
また dir | more では一時停止が行われません。このときに使われるmoreはwhichコマンドによるとc:/windows/system32/more.comだそうです。

なお、私の作ったmoreは、文太さんのおっしゃるとおり、ひたすらキーボード待ちが繰り返されるだけで使い物になりませんでしたね。

> >MS製のmoreって、DOS6あたりの付属のものを使っていますよね?
>  というわけで、これは使っていません。

というわけで、これを使いましょう。
高い確率で、きちんと動くと思います。
あるいは、妖しくないフリーウェアをvectorあたりで調達するとか。

[5238] DOS6.2's more.com

文太 2022/12/29(Thu) 20:30
[5237]へのコメント
としきさん

 ありがとう。それだけの情報で、なぜ「高い確率で」とか
言えたのかは、あの、場数とか経験知とかPC内部についての
勘みたいなのが、ぜんぜん、ぜんぜん、おたくとは、まったく、
違うの、と返ってきそうだけど、おほほほほ。
 嘆いてみるものですねぇ。

 多謝、ありがとう。うふふ。more 効くよ、悪いね。
「コマンドプロンプト」窓とか行かないよ、面倒だから。うふ。


MS謹製 MS-DOS 6.2 の more.comです
more.com  2,845  1994-12-20  06:20


C:\>dir |more

 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 0A1E-F410 です

 C:\ のディレクトリ

2022/12/28  23:05    <DIR>          0
2022/12/28  00:50             4,814 0000.txt
2022/12/29  18:07               312 00aa.bat
2022/09/01  01:05    <DIR>          01
2022/12/10  00:00               592 01.pas
2022/10/22  21:41    <DIR>          0c
2022/12/29  15:07    <DIR>          0etxt
2022/11/16  04:16               143 0paper.txt
-- More --					;切り貼りしてますから
2022/10/22  21:34    <DIR>          0qb		;フィクションです。
2022/08/24  16:31    <DIR>          0try
2022/12/29  18:02           369,201 aaa.txt
2022/12/11  18:51               508 abc.txt
2022/10/02  02:13             2,707 ascii.txt
2016/09/30  12:09    <DIR>          ATOK8

 きったねぇ、ルートディレクトリ。ATOK8とか、要らないん
ですけど。

 さすが。としきさ〜〜〜ん、ステキ。だーい好き。

>この環境で dir /p を行うと、きちんと一時停止が行われます。
 これは気になりますけど、more のほうが汎用性が広い。
 ごおつくばりにならない主義。

[5239] 外部コマンド

文太 2022/12/29(Thu) 21:02
[5238]へのコメント
 独り言です。

 ふと、他にDOS6から持ってきたい外部コマンド(ファイル)ってあるか?
と思いました。まさか、Format.exeをもってこようとは思わないが、僕は平気で
md.exeを使うバッチファイルをWinMEでもWin7でも書いてきたな、、、とか。
 とくに持ってきたいものはない、という結論。

 下に特にニュースはないです。Format, more, diskcopy etc ... なリストが
なかったかな、と。以下はノートン先生。DOS 2 ぐらいの時代の本より。変わって
ません、何も。

   External commands are no different from any program files that you
create or buy. From one point of view the external commands are truly a
part of the operating system, especially the ones that you couldn't use
your system without -- such as FORMAT. But from another point of view, the
external commands are just auxiliary programs -- just utilities, which are
handy, but not actually the operating system itself. The difference
between an external DOS command and an ordinary program is a matter of how
you think of it -- as a part of DOS or not -- and not anything fundamental.

   外部コマンドは、あなたが作成したり購入したりするプログラム・ファイルと
何ら変わりはありません。特に、FORMAT のような外部コマンドは、それ無しでは
システムを使用することができないものです。しかし、別の見方をすれば、外部コ
マンドは単なる補助プログラム、つまり便利なユーティリティに過ぎず、実はオペ
レーティング・システムそのものではないのです。DOSの外部コマンドと普通のプ
ログラムの違いは、それをDOSの一部と考えるかどうかの問題であって、根本的な
ものではありません。

(1行目、2行目の繋がりは悪いですね>DeepL)

[5240] Re: DOS6.2's more.com

konno 2022/12/30(Fri) 01:26
[5238]へのコメント
> MS謹製 MS-DOS 6.2 の more.comです
> more.com  2,845  1994-12-20  06:20

おお、DOS6.2 の more.com は VTDOSでそのまま使えるんですね。
それでは他のバージョンではどうなのか気になって、試してみました。
久しぶりに Win98ME のリブレットを立ち上げて more コマンドを探しました。
C:\Windows\COMMAND\ の中にコマンド類が有りました。探してしまった。(^^;

実行結果は
VTDOS|D:\DOS\98FD62>dir | more-w98
MS-DOS のバージョンが正しくありません.
Win98MEは駄目でした。

パソピア16のDOS2.1では
VTDOS|D:\DOS\98FD62>dir | more2
MORE: Incorrect DOS version
駄目ですね。

以下が各種 more の実行結果です。

1987/05/18  08:00       282 MORE2.COM    NG  DOS2.1
1987/10/23  00:00       319 MORE3.COM    OK  DOS3        25行固定
1988/05/02  02:56    18,358 MORE-to.EXE  NG  TOOLS       最初の一時停止のみ正常
1994/12/08  06:20     2,757 MORE98.COM   OK  PC98DOS6.2
1997/05/01  00:00       490 more-t.com   NG  tosiki
1998/05/29  19:00     2,896 MORE-p7.COM  OK  PCDOS2000
2000/06/08  17:00    12,151 MORE-w98.COM NG  Win98ME

NECの DOS6.2 でも問題ないということは、標準入出力を使用しているのでしょうね。
あとは DOS5 と Win95 で試したいところですね。

[5241] Re^2: DOS6.2's more.com

としき 2022/12/30(Fri) 02:09
[5240]へのコメント http://toshiki.la.coocan.jp/
> それでは他のバージョンではどうなのか気になって、試してみました。

おそらく、導入しているcommand.comとの組み合わせも関係すると思う。
NGとなったmoreのバージョンにあわせたcommand.comを持ってくれば、OKになる場合もあるのではないかなぁ。
あと、バージョンがIncorrect系のメッセージを食らった場合は、それこそ、秘伝のコマンドであるsetverを使ってみるとか。

[5242] setver!

文太 2022/12/30(Fri) 03:01
[5241]へのコメント
>それこそ、秘伝のコマンドであるsetverを使ってみるとか。

 すげえ、そうなる?

 としきさんの、
PC98:
;
;30BIOS CHECK
;
 なソースを眺めてみた(try looking)ところでした。なんで、

;------------------------------------------------------------------------------
;MORE.ASM
;------------------------------------------------------------------------------
_CODE		SEGMENT	BYTE PUBLIC 'CODE'
		ASSUME CS:_CODE,DS:_CODE,ES:_CODE
		ORG	100H

 では、ダメだったんだろう、と。
 arrow asmか。ちょっと見栄えが違うぞ。

 なんで、としきさんは、あの勘が働いたんだろう?
 確信はなかったろうけど、「高い確率で」そうだろう、と想像できた。


 konnoさんも、ありがとう。

 moreは、copy以上の基本です。基本の上の応用がいろいろあるんですが。
 Software Tools 愛読者の文太でした。st.txt, st_pas.txt.

 ありがとうございます。ほんとに。
 少し嬉しい、けっこう嬉しい。
 愛。はーと。

 あ、としきさんのサイトに、more.asm ありますよ。
 実務派の僕としては、結果が出たから、もう、すごく嬉しい、なのですが。
 2022年も、けっこう頑張ったから、いい年でした! VWXのバグ、4つ見つけたし。
 ありがとうございました。m(__)m

[5243] Re: setver! というか>皆様

めざら 2022/12/30(Fri) 11:38
[5242]へのコメント http://mezala.la.coocan.jp/
いろいろバタバタと掃除やゴミ出しに明け暮れているうちに(いや,実際には内容についていけてないです,正直遠い記憶の彼方の裏側)解決かしら。

よい年だったと言えることは,何よりですね。
社会一般はとにかく酷いと言わざるを得ないような年でしたが,個人的にはわたしもそれほど悪くない年でした。ボランティア活動が存外充実していたので。

まだちょっと早い気もいたしますが……
今年もお世話になりました,来年もよろしくお願い致します。>皆様
年末年始に事故のないことを祈ります。お酒もほどほどに(笑)。

[5244] 永遠のDOS少年

文太 2022/12/30(Fri) 13:05
[5243]へのコメント
 あるいは、setver。
 あるいは、お金はかからないが時間はかかる人生。


C:\0etxt>dir |more		;more 意味なし。記念。

 C:\0etxt のディレクトリ

2022/12/29  21:46    <DIR>          asm
2022/12/30  00:48    <DIR>          basic
2022/12/24  00:04    <DIR>          c
2022/12/24  00:05    <DIR>          dos
2022/12/29  01:03    <DIR>          fortran
2022/12/24  00:02    <DIR>          other
2022/12/25  02:04    <DIR>          pascal
2022/12/24  00:04    <DIR>          sed
2022/12/21  22:57       703,193     st.txt
2022/12/19  22:53       734,181     st_pas.txt


C:\0etxt\fortran>dir |more

C:\0etxt\fortran のディレクトリ

2022/12/29  01:03       114,760     for9095.txt
2022/12/21  12:51       495,822     for_hlp.txt
2022/12/23  23:57       361,026     for_nasa.txt
2022/12/24  13:23       406,688     ms_for80.txt
2022/12/23  23:35       612,497     rao_fort.txt
2022/12/25  12:33       337,956     sun_fort.txt


C:\0etxt>head -15 st.txt

Good Programming is not learned from 
generalities. but by seeing how significant 
programs can be made clean, easy to read, 
easy to maintain and modify, human engineered,
efficient and reliable by the application 
of common sense and good programming practices.
Careful study and imitation of good programs 
leads to better writing.

Kernighan 
Plauger


C:\0etxt>head -15 st_pas.txt

Software Tools in Pascal

Brian W. Kernighan 
  Bell Laboratories 
  Murray Hill, New Jersey
P. J. Plauger 
  Whitesmiths, Ltd. 

ADDISON-WESLEY PUBLISHING COMPANY 

Copyright 1981 

Good Programming is not learned from 
generalities. but by seeing how significant 
.....

-----------------------------------------------------------
(fiction or edit, included above)


https://vetusware.com/
https://winworldpc.com/home
http://old-dos.ru/
https://www.pcjs.org/
https://archive.org/search.php?query=undocumented&sin=TXT

 僕もロシア語なんて読めませんよ。
 皆さま、よいお年を。

[5246] 秘伝継ぎ足しだれソース

konno 2022/12/30(Fri) 19:17
[5242]へのコメント
>  あ、としきさんのサイトに、more.asm ありますよ。
>  実務派の僕としては、結果が出たから、もう、すごく嬉しい、なのですが。

2015年に masm用にしてアセンブルした more-k も同じ結果でNGだったのです。(^^;

 more2.com をソーサーで逆汗してみました。
 
MORE2		proc	far
  
start:
		mov	ah,30h			; '0'
		int	21h			; DOS Services  ah=function 30h
						;  get DOS version number ax
		xchg	ah,al
		cmp	ax,314h			; ★ ah3 al$14 = 20  = ver 3.20
;		je	loc_1			; Jump if equal
		jae	loc_1			; ★ 3.20以上なら正常処理
		mov	dx,offset data_11	; (4E93:01FC=4Dh)
		mov	ah,9
		int	21h			; DOS Services  ah=function 09h
						;  display char string at ds:dx
		int	20h			; Program Terminate
loc_1:


げげ、Ver3.20用だったの!!
どうやらこれは J3100 用だったようです。嘘吐いてごめんなさい。m(__)m
それで、3.20 専用になっていたので、それ以降に修正したら正常に動作しました。


秘伝のたれ?

# うちの秘伝のソースは30年継ぎ足した部位舌湯だぜ
  BBSだれソースも19年継ぎ足して複雑な味わいなんでぇ。
  なに、虫が入ってるって? お代はいらねえよ。

[5249] Re: 秘伝継ぎ足しだれソース

文太 2022/12/31(Sat) 12:40
[5246]へのコメント
konnoさん

>2015年に masm用にしてアセンブルした more-k も同じ結果でNGだったのです。(^^;
>more2.com をソーサーで逆汗してみました。

 えーと、more-kとmore2の関係は何でしょう? 同じもの? 違うもの?

>それで、J3100, 3.20 専用になっていたので、それ以降に修正したら正常に動作しました。

 vtdos環境で、DOS6.2のmoreのように動くmore2 or more-kがあるということですか?
 よろしかったらソースを公開していただけますか。何に引っかかっていたのか、知りたいのです。

 もちろん、「公開」する場合、dos version checkは入れるものなのでしょうけど、自分用なら、IBM系のみの使用環境なら、そして、dos2とか使わないなら dos ver checkって不要ですよね?

 秘伝ダレの話に繋がらなくて、すいません。(^^;

[5252] Re^2: 秘伝継ぎ足しだれソース

konno 2022/12/31(Sat) 19:10
[5249]へのコメント
すみません、また間違えていました。

> >2015年に masm用にしてアセンブルした more-k も同じ結果でNGだったのです。(^^;

これは、2018年のことでした。m(__)m

>  えーと、more-kとmore2の関係は何でしょう? 同じもの? 違うもの?

more-k は としきさんの more のソースをmasm用に調整したものです。
> 1997/05/01 00:00 490 more-t.com NG tosiki
これと中身は一緒です。

more2 は、
> 1987/05/18 08:00 282 MORE2.COM NG DOS2.1
これですが、実は DOS3.2 でした。
色々間違いが多くて申し訳ない。m(__)m

この2つのソースを比べると共通点が多いので参考になりそうです。

>  vtdos環境で、DOS6.2のmoreのように動くmore2 or more-kがあるということですか?
>  よろしかったらソースを公開していただけますか。何に引っかかっていたのか、知りたいのです。

上記のごとく、問題点はまだわかっていません。
パイプの標準入力とキー入力待ちの標準入力が混線しているような気がしますが。

>  秘伝ダレの話に繋がらなくて、すいません。(^^;

まあ冗談ですから。だれソースは、誰ソースに引っ掛けています。(^^;

[5253] Re^3: 秘伝継ぎ足しだれソース

文太 2022/12/31(Sat) 20:23
[5252]へのコメント
くくくくく。

>more2 は、
> 1987/05/18 08:00 282 MORE2.COM NG DOS2.1
>これですが、実は DOS3.2 でした。
>色々間違いが多くて申し訳ない。m(__)m

 何に謝れられているのか、120%くらい分からない、、、。くくくく。

>>  秘伝ダレの話に繋がらなくて、すいません。(^^;
>まあ冗談ですから。だれソースは、誰ソースに引っ掛けています。(^^;

 これがもう最高。1200%ぐらい分からない。はい、世界は100%謎です。
 ロシア語以上に難解です。

[5248] Re: setver!

としき 2022/12/31(Sat) 01:20
[5242]へのコメント http://toshiki.la.coocan.jp/
> なんで、
>
> ;------------------------------------------------------------------------------
> ;MORE.ASM
> ;------------------------------------------------------------------------------
> _CODE SEGMENT BYTE PUBLIC 'CODE'
> ASSUME CS:_CODE,DS:_CODE,ES:_CODE
> ORG 100H
>
>  では、ダメだったんだろう、と。

ごめんなさい、ここ、文太さんが何を疑問に思っているのかが理解できない。
ここだけ変えればOKになるような気がする、とか、思われたのでしょうか。
私にとっては遠い記憶の彼方なんですが、文太さんの中ではどのような表記にするべきだと思われたのでしょうか。

>  なんで、としきさんは、あの勘が働いたんだろう?
>  確信はなかったろうけど、「高い確率で」そうだろう、と想像できた。

これは、経験で、としか言いようがない。
具体的には、文字列検索での経験。
世の中、様々なgrep系のツールがありますよね。
私は、速度とかオプションとか様々な面で不満もありますが、一番手になじんでいるという意味で、常用はwgrep。そういえば、PC-98の時代はdgrepもそこそこ使っていたはずだけど、最近はほとんど使っていない。なんでだろう。
ただ、私、wgrepって、ドキュメントにもありますが、環境変数を指定して.cfgファイルの設定で、デフォルトでサブディレクトリを再帰的に検索するようにしています。この前提で、サブディレクトリ以下を検索したくない、カレントディレクトリだけを検索したいというときにどうするか。
オプションで明示的に指定するのが筋なんでしょうが、それも面倒でねぇ。
結果、再帰的に検索しないgrepを使ってしまうことが多い。wgrepよりもコマンドが1文字短いということもありますし。
ところがこれ、何が原因かわかりませんが、なぜかvtdosが不安定になることがあって。
そこで、grepの代わりにDOS純正のfindを使うわけなのですが。
このとき、command.comとのバージョンの不一致ではまったことがあったわけなんですよ。
単にそのときのことを記憶していただけ、ということ。
もしかしたら最新のvtdosでは、私のはまった不具合も解消されているかもしれませんけどね。
遠い日の思い出です。

[5250] find!

文太 2022/12/31(Sat) 12:41
[5248]へのコメント
としきさん

>ごめんなさい、ここ、文太さんが何を疑問に思っているのかが理解できない。
 すいません、違う方向に想像を引っぱってしまったみたい。
 疑問は、この下で回答いただいたように、なぜ勘が働いたのか? です。
 2回ソースを引用したのは、2回目、あ、(当たり前だけど)アセンブラ用の擬似命令の書式が違う、と気づいたから。意味不明。
 moreの基本構造を知りたくて眺めました。いまでも、Win7's more と DOS6's moreの違いや、としき製あるいはkonno製のmoreをvtdos@Win7で動かすようにする、といった野心はありません。引っかかってしまったので、興味がなくはないですが。
 それに、30(90)行バイオスのバーチェックとかなければ(IBM決め打ちなら)とても素直なコードになるはずですし。
 フィルターの基本。
 僕としては、dos ver checkも要らない。

CRT_LINE DB 18H
CRT_WIDTH DB 50H

 ここの取得だけ、ちゃんとできればいい。

>ここだけ変えればOKになるような気がする、とか、思われたのでしょうか。
 この野心は、もともと(今も)ないです。
 しかし、command.comとの通信において、、、とは、、、。
 原理はいまでも分からないぞ。

 でも、としきmoreは、-- more -- を出力するので、バーチェックで引っかかってるわけではないですよね。本文をバッファに入れるあたりでこけてる?
 止まらないmoreは、バッファからの出力でこけてる、みたい、、、。変なこけかただよなぁ?

>これは、経験で、としか言いようがない。
 とっても良くわかる説明でした。詳細に書いてくれてありがとうございます。
 似た経験があったわけですね。
 そして、find, fgrepを思い出させてくれました。(y|c|iz)grepですが、'$'みたいなメタ文字を検索するのが、大変で。fgrepを使えばよかったんだ! find (STにも違う形で登場する)、それは持ってくる価値があるかも! 両者、どう違う?

 なぜかwgrepとは接点がない。アーカイブファイルの検索とか言うからだよなぁ。
 でも、wgrepを逆アセすれば、vwxのエンジンの部分は解析できますね。
 エンジン、常駐部、Vzとの通信部分、API部分、これを腑分けできたら、何かが進むかも。
 いつか、やるぞ!
 天国で、wgrepの逆アセをやってそう、、、。vwxはまだ?

[5251] Re: find!

としき 2022/12/31(Sat) 13:55
[5250]へのコメント http://toshiki.la.coocan.jp/
ソースの部分の話はわかりました。

>  でも、としきmoreは、-- more -- を出力するので、バーチェックで引っかかってるわけではないですよね。

直感的には、行数列数の取得がうまく行っていないのではないかと。
大ハズレかもしれませんがね。
とりあえず、きちんと行数列数が取得できているかどうかを確認したい。
そういうコードは簡単に書けるはず。
ちなみに、文太さんのところでもできる、私のmoreを使った面白い実験。

ゼロバイトのファイル
1バイト(半角1文字)のファイル
2バイト(半角2文字)のファイル
2バイト(全角1文字)のファイル
2バイト(改行文字のみ)のファイル

をそれぞれ作って、私のmoreに食わせてみてください。
なんとなく面白い結果が出ると思います。

>  (y|c|iz)grepですが、'$'みたいなメタ文字を検索するのが、大変で。

ygrepとcgrepって、あんまり覚えていない。
評価だけはしたと思うけど、していないかも。
izgrepは、私からしたら高機能すぎるということで使いませんでした。
私、そんな高機能・多機能な検索はしません。
そして、高機能なソフトは遅い、という偏見があるものですから。
実際はそんな事はないのですけどね。
でも、存在しているけど使わない機能は少ないほど良い、という変な思い込みはぬぐいきれない。

>  天国で、wgrepの逆アセをやってそう、、、。vwxはまだ?

wgrepのソースって、どこかにないんでしょうかね。

[5254] Re^2: find!

文太 2022/12/31(Sat) 20:25
[5251]へのコメント
C:\>tmore < 02.txt	;2byte "ab"

a--- MORE ---
b--- MORE ---

 以下略。分かりませーん。何やってんの? バッファリング、できてないよ。
誰がこんなひどいこと、するの?
 落ち着いたら、違うことをちょっと考える予定です。忙しい3が日って嫌ですね。
 あと数時間でアケオメか。やれやれ。

[5255] Re^3: find!

としき 2022/12/31(Sat) 21:53
[5254]へのコメント http://toshiki.la.coocan.jp/
>  以下略。分かりませーん。何やってんの? バッファリング、できてないよ。

バッファリング、かもしれませんが。
例えば、行桁が正しく取得できていなかったとしたら。
つまり、画面行数を0行と誤取得していたら。
1文字出力した段階で行数超過、プロンプト表示となるはずです。
なるんじゃないかなぁ、そういうように作るのが普通。
ソースを読んでいないので違うかも。

[5256] Re^4: find!

文太 2023/01/01(Sun) 00:19
[5255]へのコメント
としきさん

>バッファリング、かもしれませんが。
>例えば、行桁が正しく取得できていなかったとしたら。

 なるほど、そういうことか。少しだけ見えました。でも、なんでvtdos環境だけダメなの? それはエミュレーションが完全ではないからです、かな。
 途中に入っているcommand.comは飛ばして?
 表示BIOS系? DOS/V?

 だって、としきmore、色んな環境で使ってきたけど、ダメなのここだけなんですよ。
 この辺りで、僕は、けっ、とか、なってしまう。
 粘着質でないのは、たしか。
 反省せよ。っていうか、すこしぐらい反省してもいいと思うぞ >己

 違う方向とは、> | < のこと。tr.exe 由来。

 Undoc DOS 2nd には、そういうタイトルの節があり、1st にはないんだ、という発見があったりして。1st ed. のほうが、一般的には、ぜんぜんいいです。初版が翻訳されなかった、とは、、、残念。ST 話に近い。
 2nd は、DOS末期(Win9x 初期)のあがき。あのぉ、マシンのパフォーマンスが上がってるんで、それ、意味のない技術だと思うよ(恐竜的進化)、なんてのが目白押しで。
 まあ、DOSの限界まで、なのかな?
 めざらさんがこの本にあまり興味を持てなかったのは、理解できました。

 あは!
 2nd, p.627, "Command Line Redirection and Pipes" in Chap 10, "Command Interpreters."

< | > は、DOS2 以来、command.com の仕事。
 1つ疑問解消です。意味不明でしょう。


 あの本であれ、あっちの本でそっち、などなど。うーん、あんまり良くないぞ。

 2023年は、どんな年になるのだろう?
 いい年にしましょうね! がんばりすぎず、しかし、意志は貫く。こつこつ積み重ねる。時間は降り積もるもの。

 たしかに、2022年は、全体にとんでもない年でしたが。
 Love & Peace. 世界が安全で安心な場所でありますように。
 戦争とかやってる場合じゃないんだけど。


 あ、ぶっ倒れそうになったときの報告文章はよかったですよ。ぐわんぐわんと、きました。
 文章は人生の実感が基礎だな、と大事な基礎を再確認させていただきました。
 ありがとうございます。

 さて、2023年です。

[5257] Re^5: find!

konno 2023/01/01(Sun) 00:39
[5256]へのコメント
> >例えば、行桁が正しく取得できていなかったとしたら。
>
>  なるほど、そういうことか。少しだけ見えました。でも、なんでvtdos環境だけダメなの? それはエミュレーションが完全ではないからです、かな。

まさしくこれが原因だったようです。
私の掲示板 #10443 にIBM専用修正を書きました。
恐らくIBMの機種判別以前にジャンプしてしまっていると思われます。

私が弄ったのはやはり2015年でした。
2018年にも弄って、挫折していた模様です。(^^;

2022年の積み残しということで。

[5245] Re^3: DOS6.2's more.com

konno 2022/12/30(Fri) 18:56
[5241]へのコメント
> NGとなったmoreのバージョンにあわせたcommand.comを持ってくれば、OKになる場合もあるのではないかなぁ。

VTDOSは、command.comのVerが6〜7までしか対応していないので、この案は駄目ですね。

> あと、バージョンがIncorrect系のメッセージを食らった場合は、それこそ、秘伝のコマンドであるsetverを使ってみるとか。

DOS6.22 の setver.exe を使ってみましたが、DOS2.1 とか DOS8.1 とかは範囲外で駄目みたいです。

VTDOSの設定で
> ---- vtd_ver.cfg ---- バージョン指定
> SETVER互換のコマンド毎のDOSバージョンを指定します。
ここに
more2.com 2.10
more-w98.com 8.10
とか入れてみたけどやっぱり範囲外なのかな。

Win10 の more.com は
> ---- vtd_nrdr.cfg ---- Win32コンソールリダイレクト抑制実行ファイル指定
ここに入れてみましたが、TOOLS のと同じ挙動になりました。
結局DOS6〜DOS7の more.com を使うのがいいようです。

[5234] 大掃除(別解)

文太 2022/12/29(Thu) 14:51
[5232]へのコメント
「コマンドプロンプト」窓にて。
(c:\windows\system32へは、ふつうパスが通っていると思う)

c:\www\>c:\bin\tosfind /n*.* |more

/ C:\www /
C:\www\00.bat ;md 01, 02 ... 21 IN
C:\www\01
C:\www\02
C:\www\03
C:\www\04
C:\www\05
C:\www\06
C:\www\07
C:\www\08
C:\www\09
C:\www\10
C:\www\11
C:\www\12
C:\www\13
C:\www\14
C:\www\15
C:\www\16
C:\www\17
C:\www\18
C:\www\19
C:\www\20
C:\www\21
C:\www\editfile
C:\www\01\test.txt ;made today for testing

24 files in 22 dirs.

 いえ、こういうやり方もあるなぁ、と。余計な情報がなくていいかも。
行数が少ないぶん、|more が要らない場合も多いかも。
 要は、これらのフォルダが空であることを確認したかっただけなのです。

 ぐちゃぐちゃ頻繁に使う作業フォルダです。
 面倒なときには、エクスプローラで\01...\21をごっそり捨てます。
 そして、00.batできれいなフォルダ群(ディレクトリ群)を再生させます。

 ヒストリーは効くみたいなので、「コマンドプロンプト」ももっと有効に
使おう、と思いました。


c:\0etxt>c:\bin\tosfind /n*.* |more

/ C:\0etxt /
C:\0etxt\asm
C:\0etxt\basic
C:\0etxt\c
C:\0etxt\dos
C:\0etxt\fortran
C:\0etxt\other
C:\0etxt\pascal
C:\0etxt\sed
C:\0etxt\st.txt
C:\0etxt\st_pas.txt
C:\0etxt\vb



311 files in 14 dirs.

 なんてことに、すぐになっちゃう人なので。

[5236] more.comテスト

文太 2022/12/29(Thu) 16:54
[5231]へのコメント
 あまり意味ないと思ったけど、いちおう。結果は、予定どおり、今までどおり。

(1) type test.txt | more
(2) more < test.txt
(3) more test.txt

 以上3つのテストを「コマンドプロンプト」窓環境とVTDOS環境で試験する。
 more.comは、Win7標準のもの。c:\windows\system32 にふつう存在するもの。

 【結果】
 コマンドプロンプト窓 (1)(2)(3)とも OK.
 VTDOS環境       (1)(2)(3)とも NG. 止まらず流れる。

 DOS6のMS謹製moreでやってみたら? たぶんダメじゃない?
 「コマンドプロンプト窓」を使いましょう!

↑ このページの先頭