[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる] [リストへもどる]

一括表示


  MSDOS Player 10/24版 - shadow 24/10/24-13:55 No.11562
 ┣ Re: MSDOS Player 10/24版 - konno 24/10/24-16:35 No.11563
 ┃┃┣ Re^2: MSDOS Player 10/24版 - shadow 24/10/24-17:11 No.11564
 ┃┃┣ Re^3: MSDOS Player 10/24版 - たけだ 24/10/24-17:52 No.11565
 ┃┃┃ ┗ Re^4: MSDOS Player 10/24版 - konno 24/10/24-19:26 No.11568
 ┃┃┗ Re^3: MSDOS Player 10/24版 - konno 24/10/24-19:06 No.11567
 ┃ ┗ Re^2: MSDOS Player 10/24版 - たけだ 24/10/24-17:55 No.11566
 ┃ ┗ Re^3: MSDOS Player 10/24版 - konno 24/10/24-19:28 No.11569
 ┃  ┗ DOS画面再描画されない原因は? - konno 24/10/25-14:45 No.11570
 ┃   ┣ Re: DOS画面再描画されない原因は? - としき 24/10/26-00:38 No.11571
 ┃   ┃ ┗ Re^2: DOS画面再描画されない原因は? - konno 24/10/26-22:24 No.11573
 ┃   ┗ Re: DOS画面再描画されない原因は? - たけだ 24/10/26-10:59 No.11572
 ┃    ┣ Re^2: DOS画面再描画されない原因は? - konno 24/10/26-22:26 No.11574
 ┃    ┗ Re^2: DOS画面再描画されない原因は? - たけだ 24/10/26-22:28 No.11575
 ┃     ┗ Re^3: DOS画面再描画されない原因は? - konno 24/10/26-23:57 No.11576
 ┃      ┗ Re^4: DOS画面再描画されない原因は? - たけだ 24/10/27-06:20 No.11577
 ┃       ┗ Re^5: DOS画面再描画されない原因は? - konno 24/10/27-15:48 No.11578
 ┃        ┗ Re^6: DOS画面再描画されない原因は? - たけだ 24/10/28-00:36 No.11579
 ┃         ┣ Re^7: DOS画面再描画されない原因は? - konno 24/10/28-14:31 No.11580
 ┃         ┃ ┗ Re^8: DOS画面再描画されない原因は? - shadow 24/10/28-19:42 No.11581
 ┃         ┃ ┗ Re^9: DOS画面再描画されない原因は? - konno 24/10/28-22:47 No.11583
 ┃         ┗ Re^7: DOS画面再描画されない原因は? - たけだ 24/10/29-07:05 No.11585
 ┃          ┣ Re^8: DOS画面再描画できました! - konno 24/10/29-08:40 No.11586
 ┃          ┃ ┗ Re^9: DOS画面再描画できました! - shadow 24/10/29-12:08 No.11588
 ┃          ┣ Re^8: DOS画面再描画されない原因は? - shadow 24/10/29-12:06 No.11587
 ┃          ┗ Re^8: DOS画面再描画されない原因は? - たけだ 24/10/29-14:20 No.11591
 ┃           ┗ Re^9: DOS画面再描画されない原因は? - konno 24/10/29-15:33 No.11592
 ┃            ┗ AH=FEh INT10h の判定法は - konno 24/10/31-21:07 No.11605
 ┃             ┗ Re: AH=FEh INT10h の判定法は - たけだ 24/10/31-22:19 No.11606
 ┃              ┗ Re^2: AH=FEh INT10h の判定法は - konno 24/10/31-23:25 No.11608
 ┗ Re: MSDOS Player 10/24版 - たけだ 24/10/31-23:17 No.11607
  ┣ Re^2: MSDOS Player 10/31版 - konno 24/11/01-00:34 No.11609
  ┃ ┗ Re^3: MSDOS Player 10/31版 - たけだ 24/11/01-00:57 No.11610
  ┃ ┗ Re^4: MSDOS Player 10/31版 - konno 24/11/01-15:51 No.11611
  ┃  ┗ DIR もんどうはくだけない - konno 24/11/03-00:29 No.11616
  ┃   ┗ Re: DIR もんどうはえいえんのささやき - としき 24/11/03-15:54 No.11618
  ┃    ┗ Re^2: DIR もんどうはえいえんに - konno 24/11/03-18:13 No.11620
  ┃     ┗ Re^3: 豚に真珠、としきにDIR もんどう - としき 24/11/05-00:30 No.11621
  ┗ Re^2: MSDOS Player 10/24版 - shadow 24/11/01-19:35 No.11612

(11562) 11562MSDOS Player 10/24版  投稿者:shadow   2024/10/24(木) 13:55
   コメント数 2

10/20版でちょっとした不具合があったので報告ついでにvz常駐の検討をお願いしたところ対応していただけました。
うちで常駐確認したのは次のcommand.comです。
FreeCOMJ 0.82 PL3 VTDOS 対応パッチ ;以前から常駐OK
Windows 98
以下はMSDOS Playerで-v(バージョン指定)が必要です
PC DOS J6.30/V			;-v6.3
PC DOS J7.0/V(PC DOS 2000)	;-v7.0
MS DOS 6.2/V			;-v6.2

私のチェックは甘いのでkonnoさん、皆さん試してください。
タケダ様対応ありがとうございます。
      - No.11562 -    このTreeへ           [リストへもどる] pre


(11562) 11563Re: MSDOS Player 10/24版  投稿者:konno   2024/10/24(木) 16:35
    11562 番 shadow さんへのコメント    コメント数 2

> 10/20版でちょっとした不具合があったので報告ついでにvz常駐の検討をお願いしたところ対応していただけました。

そうだったのですか、ありがとうございます。
更新内容を張りますね。

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

2024/10/24
INT 21h, AH=0Fh/10h/11h/12h/13h/16h/17h/23h/29hを修正しました。
FCBを使ったサービスで失敗したときに、拡張エラーコードを設定するようにしました。
V6.22のCOMMAND.COMで、DIR実行時にエラーが表示されなくなっています。
INT 21h, AH=4Eh/AX=714Ehを修正しました。
最初のエントリが見つからないときに、適切なエラーコードを返すようにしました。

INT 2Fh, AX=0502hで拡張エラーメッセージを返すようにしました。
パラメータエラーの筈なのですが、COMMAND.COMは拡張エラーを期待しているようです。
INT 2Fh, AX=122Eh, DL=00h/02h/04h/06hで取得するエラーテーブルを追加しました。
ただし全種類共通で、中身の空っぽな単一のテーブルを参照しています。
またDL=01h/03h/05h/07hでエラーテーブルのアドレスを変更できるようにしました。

プロセス起動時のメモリ確保のコードを整理しました。
コンベンショナルメモリが不足の場合、常に自動的にUMBを使用するようにしました。
COMモデルの起動時に、64KBのメモリの空きがないときに失敗するようにしました。
プロセス終了時に、開放するメモリのMCBが壊れている場合に修復するようにしました。

INT 2Fh,AX=4810hのサポートを廃止しました。
DOSKEYの1行入力ですが、従来よりDOSKEYは未インストール扱いとなっています。
Windows 98のCOMMAND.COMがインストールチェック無しに使っていたため、
一応サポートしてましたが、VZの常駐の妨げになっていたため廃止することにしました。

Windows 98のCOMMAND.COM上で、VZを常駐した状態でバッチファイルを実行すると、
バッチファイルから子プロセスを起動するとき、コンベンショナルメモリの空きが
0になってしまう問題が発生しています。
常駐時は、VZ.BAT経由ではなくVZIBMJ.COMを直に起動するようにしてください。
(V6.22のCOMMAND.COMだとそのような問題は発生しないのですが…)

MS-DOS Playerの起動時に、スペース入りのargvを渡された場合、仮想マシンに渡す
コマンドラインにダブルクォーテーションで括って追加するようにしました。

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

> うちで常駐確認したのは次のcommand.comです。
> FreeCOMJ 0.82 PL3 VTDOS 対応パッチ ;以前から常駐OK
> Windows 98
> 以下はMSDOS Playerで-v(バージョン指定)が必要です
> PC DOS J6.30/V			;-v6.3
> PC DOS J7.0/V(PC DOS 2000)	;-v7.0
> MS DOS 6.2/V			;-v6.2

Win95(v7.00) や Win98ME(v8.00) も出来ますね。MSDOS6.22(v6.22) も出来ました。
DOS5 が無いので誰か試してくれるとありがたいです。
まさか NT 2Fh,AX=4810h がVZ常駐の邪魔をしていたとは思いもしませんでした。(>_<)

私はVZ常駐するとすぐに VMAP を見る癖があって、見てみたら、なんと!

***** Memory Arena Trashed!

と表示されて、umbからメインメモリのエリアが表示されません。
直後のコンソールの表示も何かおかしい気が。表示がダブってる?

meu で見ると、空きメモリが200以上に分断されて見えます。
zmap を起動したら固まってしまいました。
それ以外は普通に動作しているようです。

武田さんにメールで報告しました。ついでに、#11551 の件も報告しました。
VZはDOS画面を保存していて編集画面などからコマンドラインに降りた時にDOS画面再描画していると思い出したので
MS-DOS Player で何も表示されないのは画面消去しているのかなと思ったのです。
この時非常駐VZではプロンプトが表示されますが、常駐VZではプロンプトも表示されないのも関連があるかも。

      - No.11563 -    このTreeへ    コメント元:11562 へ [リストへもどる] pre


(11562) 11564Re^2: MSDOS Player 10/24版  投稿者:shadow   2024/10/24(木) 17:11
    11563 番 konno さんへのコメント    コメント数 2

> ***** Memory Arena Trashed!
X8MAPでみるとEMSもVZで使ってるけどVMAPは表示なしですね。

> この時非常駐VZではプロンプトが表示されますが、常駐VZではプロンプトも表示されないのも関連があるかも。
私も報告してたのですが常駐画面の件は対応されてなかったので先ほど画像添付で再度確認依頼しました。正常、異常画像を比べてvmapの結果に気づいた次第です。

      - No.11564 -    このTreeへ    コメント元:11563 へ [リストへもどる] soft


(11562) 11565Re^3: MSDOS Player 10/24版  投稿者:たけだ   2024/10/24(木) 17:52
    11564 番 shadow さんへのコメント    コメント数 1

すみません、昨晩の更新で大ポカして、MCBのチェーンが壊れてました。
取り急ぎバイナリを更新しておきましたので、再ダウンロードをお願いいたします。

(今日はたまたま所要で定時で帰宅してました)
      - No.11565 -    このTreeへ    コメント元:11564 へ [リストへもどる] soft


(11562) 11568Re^4: MSDOS Player 10/24版  投稿者:konno   2024/10/24(木) 19:26
    11565 番 たけだ さんへのコメント

> すみません、昨晩の更新で大ポカして、MCBのチェーンが壊れてました。
> 取り急ぎバイナリを更新しておきましたので、再ダウンロードをお願いいたします。
> (今日はたまたま所要で定時で帰宅してました)

素早い対応ありがとうございます。いただきました。
問題無く動作しています。DOS6.2 でVZ常駐出来て嬉しいです。
本当にありがとうございました。

      - No.11568 -    このTreeへ    コメント元:11565 へ [リストへもどる] soft


(11562) 11567Re^3: MSDOS Player 10/24版  投稿者:konno   2024/10/24(木) 19:06
    11564 番 shadow さんへのコメント

> X8MAPでみるとEMSもVZで使ってるけどVMAPは表示なしですね。

この X8MAP ってどこにあるのか検索しても出ませんでした。
仕方ないので VECTOR の一番人気のメモリマップを落としてみたら X8MAP でした。(^^;
これはいいですね、CPUの表示も出来て便利です。

VTDOS 		CPU   :  80286 
MS-DOS Player	CPU   :  [Neko Project]F:M:R=6:7:2   PenPro 以降 + 80x87
DOSVAXJ3	CPU   :  [GenuineIntel]F:M:R=4:0:2      468 以降 + 80x87

DOSVAXJ3 の 468 以降 は 486 でしょうかね。(^^;

> 私も報告してたのですが常駐画面の件は対応されてなかったので先ほど画像添付で再度確認依頼しました。正常、異常画像を比べてvmapの結果に気づいた次第です。

げげ、ダブってしまいましたね。(^^; でもこれで対応してもらえたらありがたいです。

      - No.11567 -    このTreeへ    コメント元:11564 へ [リストへもどる] pre


(11562) 11566Re^2: MSDOS Player 10/24版  投稿者:たけだ   2024/10/24(木) 17:55
    11563 番 konno さんへのコメント    コメント数 1

VZを非常駐の状態で[Esc]Eをすると、ちゃんと黄色いプロンプトが表示されると思います。
常駐モードのときだけ変な感じですね。
テキストVRAMのシャドウバッファに画面を書き戻した後、実画面に反映するサービスを
呼んでいないのかもしれません。後日確認してみます。

      - No.11566 -    このTreeへ    コメント元:11563 へ [リストへもどる] soft


(11562) 11569Re^3: MSDOS Player 10/24版  投稿者:konno   2024/10/24(木) 19:28
    11566 番 たけだ さんへのコメント    コメント数 1

> テキストVRAMのシャドウバッファに画面を書き戻した後、実画面に反映するサービスを
> 呼んでいないのかもしれません。後日確認してみます。

その辺のことはわからないのでよろしくお願いいたします。

      - No.11569 -    このTreeへ    コメント元:11566 へ [リストへもどる] soft


(11562) 11570DOS画面再描画されない原因は?  投稿者:konno   2024/10/25(金) 14:45
    11569 番 konno さんへのコメント    コメント数 2

VZの問題なので、自分でもちょっと見てみました。

SCRNIBM.ASM  1367行目 DOS画面保存? これを呼ぶ前にDOS画面クリアしているのか?
;--- Get dos/current screen ---
	public	getdosscrn
getdosscrn proc
	call	is_dossilent
	call	getgvseg
	mov	di,dosscrn
	clr	si
	call	getscrn
	ret
getdosscrn endp

SCRNIBM.ASM  1443行目 DOS画面描画? ここか、この後でDOS画面クリアしているのか?
;--- Put dos/current screen ---
	public	putdosscrn
putdosscrn proc
	call	is_dossilent
	mov	msgon,0
	call	resetfp			; ##155.79
	mov	savef,FALSE
	call	setdosVM
	mov	si,dosscrn
	clr	di
	call	getgvseg
	call	putscrn
IFDEF DOSV
	call	vrefreshscrn		; DOSVでVRAM画面を表示させる?
ENDIF
IFNDEF J31
	call	resetpalette
ENDIF
clrfkey:
	mov	fkeymode,0
pdos9:	ret
putdosscrn endp


MAIN.ASM 1503:	call	getdosscrn
OPEN.ASM 267:	call	getdosscrn

DOS.ASM 267:	call	putdosscrn
MAIN.ASM 1564:	call	putdosscrn
OPEN.ASM 266:	call	putdosscrn


MAIN.ASM 1503:	call	getdosscrn
;--- Enter the editor ---
;<-- CY :out of memory
	public	enter_vz
enter_vz proc				; DOS画面で[Enter]押したときに呼ばれる?
	movseg	ds,ss
	movseg	es,ss
	call	check_vwx
	call	getdosscrn
	call	setdoswindow
	call	setint24
	call	getcurdir

OPEN.ASM 267:	call	getdosscrn
close1:					; 編集画面からコマンドラインに降りた時か?
	call	putdosscrn		; getdosscrn の前に呼んでいるのは何故?
	call	getdosscrn
	call	setcmdwindow
	call	setdoswindow


DOS.ASM 267:	call	putdosscrn
;--- Exec from editor ---
	public	se_command
se_command proc
	tstb	cs:cmdlinef
_ifn z
quit1:	jmp	quit_vz
_endif
	movseg	ds,ss
	call	putdosscrn
・・・・
	call	enter_vz		; この後でこれが呼ばれる?


MAIN.ASM 1564:	call	putdosscrn
;--- Quit editor ---
	public	quit_vz
quit_vz proc
	call	ld_wact
_if z
	call	clrstack		; ##100.09
	mov	gends,INVALID
	test	syssw,SW_INIOPT
  _ifn z
	call	load_iniopt
  _endif
_endif
	movseg	ds,ss
	call	write_logtbl
	call	putdosscrn		; 
	call	setfnckey
	tstb	tsrflag				; 常駐VZか?
	jmpln	z,quit_tsr
	call	setdoskey
	call	setdoscsr
	call	resetfp


こんなところでしょうか、コメントは想像で適当に付けたものです。
私にはこれ以上はわからないです。

      - No.11570 -    このTreeへ    コメント元:11569 へ [リストへもどる] pre


(11562) 11571Re: DOS画面再描画されない原因は?  投稿者:としき   2024/10/26(土) 00:38
参照先:http://toshiki.la.coocan.jp/
    11570 番 konno さんへのコメント    コメント数 1

> SCRNIBM.ASM 1367行目 DOS画面保存? これを呼ぶ前にDOS画面クリアしているのか?

> SCRNIBM.ASM 1443行目 DOS画面描画? ここか、この後でDOS画面クリアしているのか?

それこそ、デバッガでブレークポイントを設定してみるのが手っ取り早いかも。
ん〜、SYMDEB?
Vzマクロの&tよりも強力だと思う。使ったことないけど。

      - No.11571 -    このTreeへ    コメント元:11570 へ [リストへもどる] soft


(11562) 11573Re^2: DOS画面再描画されない原因は?  投稿者:konno   2024/10/26(土) 22:24
    11571 番 としき さんへのコメント

> それこそ、デバッガでブレークポイントを設定してみるのが手っ取り早いかも。
> ん〜、SYMDEB?
> Vzマクロの&tよりも強力だと思う。使ったことないけど。

私は DEBUG も SYMDEB も使いこなせないんですよ。(;_;)
かわりに putdosscrn や dispprmpt を別の場所で呼んでみたら少し発見がありました。
武田さんからレスがあったので、そちらに書いてみます。

      - No.11573 -    このTreeへ    コメント元:11571 へ [リストへもどる] soft


(11562) 11572Re: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/26(土) 10:59
    11570 番 konno さんへのコメント    コメント数 2

INT 10hでブレークして見てみましたが、DOS画面の復帰云々というよりも、
[ESC]Eで、黄色いプロンプトを通り過ぎて、直にCOMMAND.COMに行っている感じです。
その辺のモード遷移の問題のような気がします。
      - No.11572 -    このTreeへ    コメント元:11570 へ [リストへもどる] soft


(11562) 11574Re^2: DOS画面再描画されない原因は?  投稿者:konno   2024/10/26(土) 22:26
    11572 番 たけだ さんへのコメント

> INT 10hでブレークして見てみましたが、DOS画面の復帰云々というよりも、
> [ESC]Eで、黄色いプロンプトを通り過ぎて、直にCOMMAND.COMに行っている感じです。
> その辺のモード遷移の問題のような気がします。

見ていただきありがとうございます。私も VZのソースを弄って VZの挙動を見てみました。
	call	dispprmpt
これをコメントにすると非常駐VZのプロンプトは出なくなりましたが常駐VZでは挙動が変わりませんでした。
どうやら常駐VZのプロンプトは command.com が出しているようです。
つまり常駐VZの場合、ここは通っていないのかも。
それでこんどは putdosscrn をあちこちに入れてみたけどどうも VRAMの内容をゲット出来てないような気がしてきました。
次はその辺を追っかけてみたいんですが、はたして出来るやら。

      - No.11574 -    このTreeへ    コメント元:11572 へ [リストへもどる] pre


(11562) 11575Re^2: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/26(土) 22:28
    11572 番 たけだ さんへのコメント    コメント数 1

[ESC]Eの後、非常駐の場合はINT 21h, AH=19hや47hで現在のディレクトリを取得して、
プロンプトを表示する方向に進むのですが、
常駐したVZを呼び出した場合は、INT 21h,AH=50hで現在のプロセスIDを変更したりと、
如何にもVZを終わらせてコマンドプロンプトに戻ろうとしている感じです。

多分、以下のところでcs:cmdlinfの値によってquit_vzに飛んでるのかと。

;--- Exec from editor ---
	public	se_command
se_command proc
	tstb	cs:cmdlinef
_ifn z
quit1:	jmp	quit_vz
_endif
      - No.11575 -    このTreeへ    コメント元:11572 へ [リストへもどる] pre


(11562) 11576Re^3: DOS画面再描画されない原因は?  投稿者:konno   2024/10/26(土) 23:57
    11575 番 たけだ さんへのコメント    コメント数 1

> 多分、以下のところでcs:cmdlinfの値によってquit_vzに飛んでるのかと。

私もそこまでは追っかけました。その先で
	call	putdosscrn
があるので、VRAMのDOS画面復帰してプロンプトも一緒に表示しているのだと思います。
ところが MS-DOS Player ではそれが表示されないのです。
なので getdosscrn がちゃんとDOS画面を保存出来ているか、保存できてないなら何故なのかを知りたいのです。

      - No.11576 -    このTreeへ    コメント元:11575 へ [リストへもどる] pre


(11562) 11577Re^4: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/27(日) 06:20
    11576 番 konno さんへのコメント    コメント数 1

INT 21hで表示された文字は、必ずしもVRAMに反映されていないので、
その辺が原因かもしれません。
何か対策を考えてみますが、今日からしばらく忙しくなりますので、
対応には時間がかかるかと思います。
      - No.11577 -    このTreeへ    コメント元:11576 へ [リストへもどる] soft


(11562) 11578Re^5: DOS画面再描画されない原因は?  投稿者:konno   2024/10/27(日) 15:48
    11577 番 たけだ さんへのコメント    コメント数 1

> INT 21hで表示された文字は、必ずしもVRAMに反映されていないので、
> その辺が原因かもしれません。

なるほど、そういうこともありますか。

> 何か対策を考えてみますが、今日からしばらく忙しくなりますので、
> 対応には時間がかかるかと思います。

お忙しいところ対応していただいて申し訳ないです。
ありがとうございました。

      - No.11578 -    このTreeへ    コメント元:11577 へ [リストへもどる] soft


(11562) 11579Re^6: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/28(月) 00:36
    11578 番 konno さんへのコメント    コメント数 2

DOS/Vなので、テキストはグラフィック画面に描画されていて、
VZのDOS画面の退避・復帰もグラフィックVRAMが対象になってるみたいですね。

MS-DOS Playerは、仮想テキストVRAMに書き込まれた内容を、INT 10h, AH=FFhで
グラフィック画面ではなくコンソールにテキストとして書き込んでいるので、
そもそも食い合わせが悪いです。

グラフィックVRAMの読み書きをコンソールの読み書きに挿げ替えるとかの手段も
無くはないと思いますが、そこまでしてまで対応する利点が少ないというか、
グラフィックVRAMの領域を廃して、その分をコンベンショナルメモリに回しているので、
それを止めるのは勿体ないというか。。。

すみません、本件はギブアップです(苦笑)
      - No.11579 -    このTreeへ    コメント元:11578 へ [リストへもどる] soft


(11562) 11580Re^7: DOS画面再描画されない原因は?  投稿者:konno   2024/10/28(月) 14:31
    11579 番 たけだ さんへのコメント    コメント数 1

> DOS/Vなので、テキストはグラフィック画面に描画されていて、
> VZのDOS画面の退避・復帰もグラフィックVRAMが対象になってるみたいですね。

なるほど、VRAMを見れば何かわかりそうですね。
MS-DOS Player のVRAMは v.com で見ると
VRAM Address       = F800:0000 (Real VRAM)
と出るので、DUMPマクロで見てみたら、編集画面では表示されている文字が見えました。
ところがコマンドラインで見るとVRAMが全部スペースで埋まり初期化かCLS状態になっているようです。
他のDOSエミュではコマンドラインでもVRAMの文字が表示されていました。
どうやらこの違いが原因のようです。

> MS-DOS Playerは、仮想テキストVRAMに書き込まれた内容を、INT 10h, AH=FFhで
> グラフィック画面ではなくコンソールにテキストとして書き込んでいるので、
> そもそも食い合わせが悪いです。

そうなのですか、そのあたりはわからないので自分なりに考えてみました。
DOSは本来コンソールでコマンドを解釈、実行してその結果はコンソールに吐き出されるのですよね。
その文字はVRAMに書き込まれてパソコンの画面に表示されますよね。
つまりコマンドラインにいても画面に文字が表示されている時はVRAMに文字があるはずだと思います。
実際他のDOSエミュではコマンドラインでもVRAMの文字が表示されていました。
ところがMS-DOS Playerではそれがスペースで埋められているのです。
なので、もしかしたら MS-DOS Player ではコマンドが実行された時にVRAMの文字消去しているのではないかと思ったのです。
DOSVではVRAMの文字消去しても、フラッシュだかしないと画面に反映しないそうなので。

MS-DOS Player のソースをちょっと覗いてみたら、VRAMの初期化らしいところはありました。
void clear_scr_buffer(WORD attr)
これはあちこちで呼ばれているようですが、どこがコマンドラインかとか全くわかりませんでした。
全然わかってないので間違っていたらごめんなさいです。

> すみません、本件はギブアップです(苦笑)

VZはコンソール画面が使えるので問題ないです。対応していただいて感謝してます。
常駐VZでコマンドラインに降りた時にプロンプトが見えないのはちょっとだけ不便に感じます。(^^;

今思いついたのですが、VRAMの画面最下行だけ消去しないようにしたらもしかしてプロンプト表示しませんかね。
自分でコンパイル出来れば試したいところですが今の自分は色々頭が回らないもので。
色々対応していただきありがとうございました。

      - No.11580 -    このTreeへ    コメント元:11579 へ [リストへもどる] pre


(11562) 11581Re^8: DOS画面再描画されない原因は?  投稿者:shadow   2024/10/28(月) 19:42
    11580 番 konno さんへのコメント    コメント数 1

> なので、もしかしたら MS-DOS Player ではコマンドが実行された時にVRAMの文字消去しているのではないかと思ったのです。
> DOSVではVRAMの文字消去しても、フラッシュだかしないと画面に反映しないそうなので。
以下もその影響かな?
vz常駐後DOSコマンド実行してvz -zで常駐解除してcls後にvz非常駐起動するとvz -zだけ再描画されますね。

別件で以下の方が気になったりしてます。
内臓コマンドでDEL *.txtすると不明なエラーです.となり実行できないです。
*が認識されてない?他にもあるかもです。

      - No.11581 -    このTreeへ    コメント元:11580 へ [リストへもどる] soft


(11562) 11583Re^9: DOS画面再描画されない原因は?  投稿者:konno   2024/10/28(月) 22:47
    11581 番 shadow さんへのコメント

> vz常駐後DOSコマンド実行してvz -zで常駐解除してcls後にvz非常駐起動するとvz -zだけ再描画されますね。

どうも VRAM画面の最下行だけ表示が残っているように見えますね。
MS-DOS Player のソースは x64版はVC++2017でビルド出来るというので、コンパイルしてみたら出来ました。

void clear_scr_buffer(WORD attr)
{
//	for(int y = 0; y < scr_height; y++) {
	for(int y = 0; y <= scr_height; y++) {		//クリア行1行増やしても変わらない?
		for(int x = 0; x < scr_width; x++) {
//			SCR_BUF(y,x).Char.AsciiChar = ' ';	//この2行をコメントにしたら
//			SCR_BUF(y,x).Attributes = attr;		//コマンドと改行は残るようになった
		}
	}
}

このように修正してみました。
クリア行1行増やしたつもりでも変わらないようです。どこか間違っているのかも。
また、2行をコメントにしたらコマンドと改行は残るようになりました。
この辺が関係しているように思われますが、これ以上はわからないです。

> MS-DOS Playerは、仮想テキストVRAMに書き込まれた内容を、INT 10h, AH=FFhで
> グラフィック画面ではなくコンソールにテキストとして書き込んでいるので、

やはりこの辺を解明できないと駄目みたいですね。

> 別件で以下の方が気になったりしてます。
> 内臓コマンドでDEL *.txtすると不明なエラーです.となり実行できないです。
> *が認識されてない?他にもあるかもです。

うちの環境では問題無いようですが、何が違うのでしょうね。

      - No.11583 -    このTreeへ    コメント元:11581 へ [リストへもどる] pre


(11562) 11585Re^7: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/29(火) 07:05
    11579 番 たけだ さんへのコメント    コメント数 3

取り急ぎです。

http://takeda-toshiya.my.coocan.jp/msdos/msdos_test.7z
      - No.11585 -    このTreeへ    コメント元:11579 へ [リストへもどる] soft


(11562) 11586Re^8: DOS画面再描画できました!  投稿者:konno   2024/10/29(火) 08:40
    11585 番 たけだ さんへのコメント    コメント数 1

> 取り急ぎです。
> http://takeda-toshiya.my.coocan.jp/msdos/msdos_test.7z

武田さん、ありがとうございます。試してみました。
最初テスト版に入れ替えても何も変わらないように見えましたが
DUMPマクロで VRAM $B800:0 を見たらそこに入っていました。

それで、CHEJ 02 を実行したら、VRAMが B8000 になって、DOS画面の履歴が表示されるようになりました。
そのあとは普通のモードでDOS画面が表示されるようになりました。\(^^)/ ヤッタ-
最初変わらないように見えたのはメモリのキャッシュのせいかもしれませんね。
対応していただきありがとうございました。m(__)m

      - No.11586 -    このTreeへ    コメント元:11585 へ [リストへもどる] soft


(11562) 11588Re^9: DOS画面再描画できました!  投稿者:shadow   2024/10/29(火) 12:08
    11586 番 konno さんへのコメント

konnoさん、粘り強い対応お疲れ様です。
ありがとうございました。
      - No.11588 -    このTreeへ    コメント元:11586 へ [リストへもどる] soft


(11562) 11587Re^8: DOS画面再描画されない原因は?  投稿者:shadow   2024/10/29(火) 12:06
    11585 番 たけだ さんへのコメント

武田さん、試しました。
ほぼ改善されてるようです。
ありがとうございました。
      - No.11587 -    このTreeへ    コメント元:11585 へ [リストへもどる] soft


(11562) 11591Re^8: DOS画面再描画されない原因は?  投稿者:たけだ   2024/10/29(火) 14:20
    11585 番 たけだ さんへのコメント    コメント数 1

変更内容としては、テキストVRAMの読み取り時に、現在表示されているコンソールの内容を返すようにしました。

正式なリリースはまた後日にでも。
      - No.11591 -    このTreeへ    コメント元:11585 へ [リストへもどる] soft


(11562) 11592Re^9: DOS画面再描画されない原因は?  投稿者:konno   2024/10/29(火) 15:33
    11591 番 たけだ さんへのコメント    コメント数 1

> 変更内容としては、テキストVRAMの読み取り時に、現在表示されているコンソールの内容を返すようにしました。

武田さん、ありがとうございます。
朝は寝ぼけてたので、今別のPCで確認してみました。
MS-DOS Player は B8000h の CGA VRAM領域に書き込んでいるように見えます。
そして、VZは起動時のDOS画面のみ再描画しているように見えます。画面クリアの場合もあるようです。

v.com で見ると 
VRAM Address       = F800:0000 (Real VRAM)
この領域には文字が書き込まれていない(クリアされている?)、VZはここを見ているのではないかと思います。

CHEJ 02  で謎のCGAモードにすると
VRAM Address       = B800:0000 (Real VRAM)
このモードでは完全にDOS画面を再描画してくれますが、日本語は化けています。

MS-DOS Player が F8000h の VRAM領域に書き込んでくれたら完璧な動作になるような気がします。

USモードでは VRAM が B8000h になると思いますが、
CHEJ US  で USモードにすると
VRAM Address       = F800:0000 (Real VRAM)
このようになるので、この辺の調整も必要かなと感じます。
確認してもらえたらありがたいです。

      - No.11592 -    このTreeへ    コメント元:11591 へ [リストへもどる] pre


(11562) 11605AH=FEh INT10h の判定法は  投稿者:konno   2024/10/31(木) 21:07
    11592 番 konno さんへのコメント    コメント数 1

v.com でVRAMの判定がエミュ3種で違っているのが気になって、
どう判定しているのか逆汗してみました。
ソーサーでも全部は逆汗できず、SYMDEB でアセンブルした部分を張ります。

2AA1:0145 6A40           PUSH   40                            ;'@' 
2AA1:0147 07             POP    ES 
2AA1:0148 BEA603         MOV    SI,03A6                 ; 09[00]
2AA1:014B 26A04900       MOV    AL,ES:[0049]            ; Video mode
2AA1:014F 32E4           XOR    AH,AH 
2AA1:0151 8904           MOV    [SI],AX                 ; [si]=00xx  vmode
2AA1:0153 26A14A00       MOV    AX,ES:[004A]            ; 桁数
2AA1:0157 894402         MOV    [SI+02],AX              ; [si+2]= column
2AA1:015A 26A08400       MOV    AL,ES:[0084]            ; 行数 line
2AA1:015E 32E4           XOR    AH,AH 
2AA1:0160 40             INC    AX 
2AA1:0161 894404         MOV    [SI+04],AX              ; [si+4]= line+1
2AA1:0164 26A18500       MOV    AX,ES:[0085]            ; font H
2AA1:0168 894406         MOV    [SI+06],AX              ; [si+6]= font H
2AA1:016B 6800B8         PUSH   B800                    ; B800h
2AA1:016E 07             POP    ES                      ; ES=B800h
2AA1:016F 33FF           XOR    DI,DI                   ; DI=0
2AA1:0171 26833DFF       CMP    Word Ptr ES:[DI],-01    ; [B800:0]=ffffh なら ES=A000h
2AA1:0175 7508           JNZ    017F                    ; not FFFF --> 017f jump
2AA1:0177 6800A0         PUSH   A000                    ; A000h
2AA1:017A 07             POP    ES                      ; ES=A000h
2AA1:017B 83440804       ADD    Word Ptr [SI+08],+04    ; [si+8]=[si+8]+04
  017f:
2AA1:017F B4FE           MOV    AH,FE                   ; ah=FEh   擬似テキストバッファ先頭アドレス取得
2AA1:0181 CD10           int    10                      ; int 10h, 擬似テキストバッファ先頭アドレス取得
2AA1:0183 8C440A         MOV    [SI+0A],ES 
2AA1:0186 897C0C         MOV    [SI+0C],DI 
2AA1:0189 8CC0           MOV    AX,ES 
2AA1:018B 3C00           CMP    AL,00 
2AA1:018D 7404           JZ     0193 
2AA1:018F 83440E05       ADD    Word Ptr [SI+0E],+05 

2AA1:0193 BBDC02         MOV    BX,02DC 
2AA1:0196 E83800         CALL   01D1 
2AA1:0199 B8004C         MOV    AX,4C00 
2AA1:019C CD21           INT    21 


これでわかったことは、CGA VRAM B800h の先頭2バイトが 'FF FF' かどうかチェックしてるんですね。
え? と思って、DOSVAXJ3 のコマンドラインで DUMPマクロで見たら
B800h から 8000h の間が FFh で埋まっていました。

VTDOS は B800h から 00h で埋まってる、というか、ゴミもあるので普通のメモリ領域のようです。

MS-DOS Player は B800h から 1C20h の間が 20h 17h で埋まっていました。
つまり、MS-DOS Player だけ B800h の領域をVRAMとして初期化しているということでしょうか。
これを踏まえて私の理解を纏めると

DOSVAXJ3
VRAM Mode          = APA                        ; B800h == FF FF の時
VRAM Address       = C679:0000 (Virturl VRAM)   ; 仮想VRAM と認識

VTDOS
VRAM Mode          = A/N                        ; B800h != FF FF == 00 00 の時
VRAM Address       = D000:0000 (Real VRAM)      ; リアルVRAM と認識

MS-DOS Player
VRAM Mode          = A/N                        ; B800h != FF FF == 20 17 の時
VRAM Address       = F800:0000 (Real VRAM)      ;リアルVRAM と認識し、B800h が仮想VRAMとなる?

もしもこの考えが合っているとしたら、B800h を FF,FFか 00,00 で初期化すれば うまくいきそうな気がします。
その場合、仮想VRAMは、上のチェックルーチンを見ると、 VGA A000h に設定すれば良さそうに思えます。
VTEXTは画面モードは03で、実際は 70h になっていますが、03 は本来 CGA モードだと思うので
この辺の辻褄をうまく合わせてやればいいのかなと素人考えで思いました。

武田さん、この考えどう思いますでしょうか。
      - No.11605 -    このTreeへ    コメント元:11592 へ [リストへもどる] pre


(11562) 11606Re: AH=FEh INT10h の判定法は  投稿者:たけだ   2024/10/31(木) 22:19
    11605 番 konno さんへのコメント    コメント数 1

MS-DOS Playerでは、CGAのテキストモード(03h)を基本としています。
B8000hがVRAMの先頭で、文字コード、アトリビュートが交互に80x25文字分続きます。
MDAもサポートしており、この場合はB0000hがVRAMの先頭となります。

ハード的にはCGA/MDAで、ただし漢字などマルチバイト文字が表示できるという、
ちょっと変な構成になっています。

VRAMの先頭がA0000hになるのはグラフィックモードの場合です。
MS-DOS Playerはコンソールアプリですので、グラフィックモードは使いません。
グラフィックVRAMはなしで、AFFFFhまではコンベンショナルメモリに回しています。

      - No.11606 -    このTreeへ    コメント元:11605 へ [リストへもどる] soft


(11562) 11608Re^2: AH=FEh INT10h の判定法は  投稿者:konno   2024/10/31(木) 23:25
    11606 番 たけだ さんへのコメント

武田さん、お返事ありがとうございます。

> MS-DOS Playerでは、CGAのテキストモード(03h)を基本としています。
> B8000hがVRAMの先頭で、文字コード、アトリビュートが交互に80x25文字分続きます。
> MDAもサポートしており、この場合はB0000hがVRAMの先頭となります。
>
> ハード的にはCGA/MDAで、ただし漢字などマルチバイト文字が表示できるという、
> ちょっと変な構成になっています。
>
> VRAMの先頭がA0000hになるのはグラフィックモードの場合です。
> MS-DOS Playerはコンソールアプリですので、グラフィックモードは使いません。
> グラフィックVRAMはなしで、AFFFFhまではコンベンショナルメモリに回しています。

うーん、これを聞くと今回の案は難しそうですね。
やっぱり諦めます。ありがとうございました。

      - No.11608 -    このTreeへ    コメント元:11606 へ [リストへもどる] soft


(11562) 11607Re: MSDOS Player 10/24版  投稿者:たけだ   2024/10/31(木) 23:17
    11562 番 shadow さんへのコメント    コメント数 2

ここ最近の諸々を反映した新バージョンをリリースしました。
DEL *.OBJだけでなく、REN *.OBJ *.BINとかも出来るようになってます。
      - No.11607 -    このTreeへ    コメント元:11562 へ [リストへもどる] soft


(11562) 11609Re^2: MSDOS Player 10/31版  投稿者:konno   2024/11/01(金) 00:34
    11607 番 たけだ さんへのコメント    コメント数 1

> ここ最近の諸々を反映した新バージョンをリリースしました。
> DEL *.OBJだけでなく、REN *.OBJ *.BINとかも出来るようになってます。

武田さん、更新ありがとうございます。

-----------------------------------------------------------
024/10/31
CGA/MDAのテキストモードのVRAM、または仮想テキストバッファを読むことで、
コンソール画面の表示内容を取得できるようにしました。
VZエディタで[ESC]Eでプロンプトに降りた時、DOS画面が復帰するようになっています。

INT 21h, AH=13h/17hで、ワイルドカードを含むファイル名をサポートしました。
FCBを使ったファイルの削除およびリネームのサービスです。
MS-DOS V6.22のCOMMAND.COMのDEL/RENコマンドで使われていました。

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

直前のレスで諦めましたとか書いたら入れ違いになったのですね。(^^;
DOS画面復帰は、CHEJ 02 の CGAモードの時でしょうか。
このモードではDOS画面の漢字文字化けは無くなりましたがVZの画面の漢字が化けます。

ともあれ諸々改善できたので嬉しいです。
ありがとうございました。

# 今夜はハローWinのプレゼントだぁ。\(^^)/

      - No.11609 -    このTreeへ    コメント元:11607 へ [リストへもどる] soft


(11562) 11610Re^3: MSDOS Player 10/31版  投稿者:たけだ   2024/11/01(金) 00:57
    11609 番 konno さんへのコメント    コメント数 1

私はCHEJは特に使用していませんが、vzはint10h ah=fehで取得した仮想テキストバッファのアドレスの、f8000hを読みに来ているようです。
書き込み時も、同じアドレスに書き込んで、int10h ah=ffhで画面に反映してるのではないかと。
      - No.11610 -    このTreeへ    コメント元:11609 へ [リストへもどる] soft


(11562) 11611Re^4: MSDOS Player 10/31版  投稿者:konno   2024/11/01(金) 15:51
    11610 番 たけだ さんへのコメント    コメント数 1

> 私はCHEJは特に使用していませんが、vzはint10h ah=fehで取得した仮想テキストバッファのアドレスの、f8000hを読みに来ているようです。
> 書き込み時も、同じアドレスに書き込んで、int10h ah=ffhで画面に反映してるのではないかと。

私もそう思います。
ところがコマンドラインでは f8000h がスペースで埋まり、b8000h に文字が見えるのです。
DOS画面の保存、復帰のタイミングは VZしかわからないので、VZですり替え出来ないかやってみました。
scrnibm.asm 1483行あたり

getscrn	proc
	pushm	<ds,es>
	mov	es,ax
	mov	ds,dsp.@seg

	push	ax		; ##k 241101  MS-DOS Player
	mov	ax,ds		; ds は
	cmp	ax,0f800h	; VRAM F800h か?
	jnz	mpmod		; 違うならJUMP
	cmp	cs:os_win,7	; MS-DOS Playerか?
	jnz	mpmod		; 違うならJUMP
	mov	ax,0b800h	; CGA VRAM にすり替え  'ク^@ク'  b8h (00h b8h)
	push	ax		; 'P' 50h
	pop	ds		; ds:si(ソース) --> es:di
mpmod:	pop	ax		;

IFNDEF IBM
cpyscrn:

ここにコメント行を追加して VRAMアドレスのすり替えをしたら保存・復帰が出来ました。\(^^)/ ヤッタ-
MS-DOS Player の判定に失敗することが有るので見直して公開したいと思います。
安全対策を2重にしているので問題ないでしょう。
将来 B8000hが変わるとヤバいので、その時は VZ.COMを開いて 'ク^@クP' を検索してアドレスを書き換えます。(^^;
^@ は実際はヌル文字です。(^^;;

      - No.11611 -    このTreeへ    コメント元:11610 へ [リストへもどる] pre


(11562) 11616DIR もんどうはくだけない  投稿者:konno   2024/11/03(日) 00:29
    11611 番 konno さんへのコメント    コメント数 1

必要があって DIR を取ろうと思ったら、各種DOSエミュでみんな書式が違うんですね。
ちょっと比べてみました。

VTDOS	MSDOS 6.20	DIRは内蔵  LFNのみの表示
2011/02/16  20:35               616 FGAL.DEF
2004/06/21  00:46             3,104 fgaldc_14_8086.log

DOSVAXJ3		内蔵 SFNと LFN両方表示
FGAL     DEF                616 2011-02-16 20:35 FGAL.DEF
FGALDC~1 LOG              3,104 2004-06-21  0:46 fgaldc_14_8086.log

MS-DOS Player	MSDOS 6.20
FGAL     DEF           616 11/02/16   20:35
FGALDC~1 LOG         3,104 04/06/21    0:46

MS-DOS Player	FreeCom 7.00
FGAL     DEF           616  11/02/16 20:35
FGALDC~1 LOG         3,104  04/06/21  0:46

MS-DOS Player	Win95 〜 Win98ME
FGAL     DEF           616  11/02/16  20:35 FGAL.DEF
FGALDC~1 LOG         3,104  04/06/21   0:46 fgaldc_14_8086.log

今回は SFNのみの表示が欲しいので MS-DOS PlayerのDOS6.2かFreeCom かな。
と思ったら、MS-DOS Player + FreeComで dir > file とやったら、改行が 0Ah でした。(>_<)
VTDOSで確認しようとしたら > が効かないし、FreeCom ってやっぱり癖が強いようですね。

      - No.11616 -    このTreeへ    コメント元:11611 へ [リストへもどる] pre


(11562) 11618Re: DIR もんどうはえいえんのささやき  投稿者:としき   2024/11/03(日) 15:54
参照先:http://toshiki.la.coocan.jp/
    11616 番 konno さんへのコメント    コメント数 1

ひそひそ。

> 必要があって DIR を取ろうと思ったら、各種DOSエミュでみんな書式が違うんですね。
> ちょっと比べてみました。

うろ覚えで申し訳ないのですが。
VTDOSってcommand.comを差し替えられたような気がします。
もし私の記憶が確かなら、MS-DOS Playerと同じ結果が得られるようにできるのでは
ないかなぁ。
あと、DOSVAXはDOSのエミュレータではなくてマシンのエミュレータだと思い込んで
いたのですが、これは私の認識が妖しい、ないしはおかしい、かも。

      - No.11618 -    このTreeへ    コメント元:11616 へ [リストへもどる] soft


(11562) 11620Re^2: DIR もんどうはえいえんに  投稿者:konno   2024/11/03(日) 18:13
    11618 番 としき さんへのコメント    コメント数 1

> VTDOSってcommand.comを差し替えられたような気がします。
> もし私の記憶が確かなら、MS-DOS Playerと同じ結果が得られるようにできるのでは
> ないかなぁ。

くだけた話かもですが、#11616 で書いています。
> VTDOS	MSDOS 6.20	DIRは内蔵  LFNのみの表示
DIRは VTDOS内蔵のものなのですよね、なので FreeCom の問題かどうか確認するために
> VTDOSで確認しようとしたら > が効かないし、FreeCom ってやっぱり癖が強いようですね。
VTDOSで FreeComを入れたのですが、環境領域が不足して動作が不安定みたいだったのです。
それでリダイレクトが動かなかったので確認できなかったのです。
どなたか確認できる人いませんかね。

> あと、DOSVAXはDOSのエミュレータではなくてマシンのエミュレータだと思い込んで
> いたのですが、これは私の認識が妖しい、ないしはおかしい、かも。

確かにDOSBOXベースでマシンをエミュレートしているので、PCエミュレータとなるでしょうか。
でも最近のは内蔵DOSで直接DOSエミュレート出来るので、DOSエミュというのも間違いではないかと。

      - No.11620 -    このTreeへ    コメント元:11618 へ [リストへもどる] pre


(11562) 11621Re^3: 豚に真珠、としきにDIR もんどう  投稿者:としき   2024/11/05(火) 00:30
参照先:http://toshiki.la.coocan.jp/
    11620 番 konno さんへのコメント

対義語は「ネコにちゅ〜る」かな。

> くだけた話かもですが、#11616 で書いています。
> > VTDOS	MSDOS 6.20	DIRは内蔵  LFNのみの表示

どうやら話がすれ違っているらしい。
私、VTDOSの仕様を忘れてしまっているのですが、たしかSHELL指定ができましたよね。
なので、これを指定すればそっちのDIRが使われると思っていました。
そして、これを指定しなかった結果が#11616、と思い込んだわけです。そこで、これ
の指定でcommand.comを他のものに差し替えてみれば、というのが#11618。
だけど、

> DIRは VTDOS内蔵のものなのですよね、なので FreeCom の問題かどうか確認するために

ということは、VTDOSではSHELLを指定しても内蔵DIRが使われる、ということのよう
ですね。

どうも大変失礼しました。

      - No.11621 -    このTreeへ    コメント元:11620 へ [リストへもどる] pre


(11562) 11612Re^2: MSDOS Player 10/24版  投稿者:shadow   2024/11/01(金) 19:35
    11607 番 たけだ さんへのコメント

> ここ最近の諸々を反映した新バージョンをリリースしました。
> DEL *.OBJだけでなく、REN *.OBJ *.BINとかも出来るようになってます。
武田さん、ありがとうございます。
      - No.11612 -    このTreeへ    コメント元:11607 へ [リストへもどる] soft