[HOME]  [リストへもどる]
一括表示

  QVIEW.DEF 再履修 - konno 18/10/01-01:39 No.8173
  ┣ &z()メモリエラーの解消 - konno 18/10/02-00:38 No.8174
  ┗ Re: QVIEW.DEF 再履修 - konno 18/10/09-00:36 No.8259

(8173) 8173QVIEW.DEF 再履修  投稿者:konno   2018/10/01(月) 01:39
   コメント数 2

台風が直撃でまだ強風が吹いていますが・・・

QVIEW.DEF は、ファイラーでカーソル位置のファイルの中身を表示してくれる
高橋さんの超絶マシン語マクロです。
和生さんがファイラーコマンドを通してくれるように改造してくれて以来
愛用しています。

私もLFNの改造して、VZマクロの部屋に UP したのが、QVIEW_K.LZH 06-09-03
それが、いつの間にか不具合が出るようになって使わなくなっていました。

2015年からまた弄り始めていましたが、不具合は解消せず。
諦めかけていたところ、今回のカレンダーマクロの不具合で VZIBMJ.COM 
を戻したんですが、不具合は解消せず。

それで、色々弄っているうちに、#W で表示が直ったような気がしたので
もしかしたら、ファイラーで &z を使った時の不具合かもと思い

76 ^J [F09] "行挿入"
;	?.
	(s==3)?{ &z("QVIEW") #W #W >* }		; QVIEW.DEF  3681
	(s>0)?.

このように、&z の後に、#W #W ファイラーウインドウの切り替え2回で元に
戻してから >* でマクロ実行させたら、正常になりました。げげ。
これは、pn..37~.0-, ; pathbufクリア と同じ効果を得ているということか。

(s==3)?{ rr-, &z("QVIEW") pn..37~.0-, >* }  ;pn..37~.0-,: pathbufクリア

これでももちろん正常に動作しました。
#U ディレクトリ再読み込みでは駄目。
fv^=4,#V のファイラー再表示でも駄目でした。


私は高橋版VZが出た当初から愛用していたので、ファイラーで &z を使った
時の不具合は直っているものと思っていました。
それで、ずっと &z で使っていたわけです。

いつから不具合があったのか。
Windows7のころか。
VTDOSのころか。
今となっては調べる気もしませんが、今日の結論としては
ファイラーマクロを &z で呼ぶときは pathbuf クリアせよ、ですね。


      - No.8173 -    このTreeへ           [リストへもどる] pre

(8173) 8174&z()メモリエラーの解消  投稿者:konno   2018/10/02(火) 00:38
    8173 番 konno さんへのコメント

今回の話の流れから、古のFGALDCの玉手箱を発掘しました。
以下に伝説の老師の至言を全引用します。


> 05118/05182 ********  m.gann           &z()メモリエラーの解消
> (15)   97/03/01 21:59                     コメント数:1

 高橋さん、みなさん
 ずいぶんと化石な話しだけど。^^;

 メインメモリを使い切った際の、&z()がEMSを使う場合のトラブル:
 ・EMSを解放しないため、フリー領域がどんどん減少する
 ・ページフレームが書き戻されないため、ファイラーおよびEMS利用の
  テキスト編集画面が乱れたり、マクロが誤動作したりする

 その解消方法:(#01275より。#00754以降に関連コメント)

》      wm.21=wm.2=16,                  ;by.H.Takahashi
》      &z(p) (wm.21&$F0)??{
》              r[,
》              (sm)?&Em(fz)?&Em(wa..10)
》              (wm||s-3)??{#U (fg.0)?{#> #U #> }}
》              r],
》      }
》      (r)?>e


 しかし..、メインメモリが半端に逼迫し、かつ巨大マクロファイルの場合、
 ファイルの一部しか読み込まない、VZ元々の問題はそのまま残る..。
 (saki... さんの stkhelp.def内でも指摘されている)


 そこで、もう一つの選択肢として、

;------ 予備メインメモリを確保し使う(&z君にはEMSを終生使わせない)-----
・&z()がEMSを使う際に起きる問題の解消
・メインメモリ逼迫時も、マクロファイルサイズ約 32KBまで対応(Bf88時)
 (ファイルサイズは先頭から末尾の「*」行までをいう。それ以降に記載され
 たコメントなどは関係しない。例えば stkhelpは約 22KBとなる)
・$d00は Bfデッドライン 52KB(J5.00/V: 49KB, 5.00A: 39KB)のパラグラフ数
 (Bfは起動時この値に換算される。Bf構成:Bf52+fsize(KB)+Bl(KB))
・Sk+はどのみち使えない(常駐時)
・EMSを使用しない場合にも効果
・wm==0問題は wmの常駐時初期化で対処

        bf[$d00, &z(ptr) bf], >*        ;by Sk-, Bf88, ..


 チェックよろしく。m(^^)m
 m.gann


引用ここまで ------------------------

さて、私の bf は、この書き込みを見ていたのか、bf88 になっていました。
つまり、command.com の常駐サイズ分をこれで吸収していたために、不具合が
出ていなかったのではないかと。
XP以降、command.com の常駐サイズが変わったために、bf88 で吸収しきれなく
なったのではないかというのが一つの仮説。

私がXPになったのは、2003年から。
その当時は特に不具合を感じなかったが、どこかに歪みが出ていたのかもですね。
とおもったのだけれども、
        bf[$d00, &z(ptr) bf], >*        ;by Sk-, Bf88, ..

こういう使い方をするという前提だと、違う話なのかなぁ。

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

(8173) 8259Re: QVIEW.DEF 再履修  投稿者:konno   2018/10/09(火) 00:36
    8173 番 konno さんへのコメント

またぎレスになりますが、#8258 で書いた記事から

> 結果的には出来たのだけれど、QVIEW で、MSDOS Player ごと落ちるファイルが
> あるみたい。(>_<)
> VTDOS は大丈夫だけど、そのファイルはQVIEWではバイナリと認識しているみたい。

さて、SJISのテキストファイルが何故 QVIEW ではバイナリと認識するのか。
そのファイルは、NETサーフィンで落とした文章データで、ブラウザでSJISの
テキストに変換したんですが、HTMLの残骸が結構残ってたりするんですよね。
以前にも書きましたが、テキストに変換する精度が悪い場合があるという事。

その時気が付いたんですが、そのファイルには、ヌル文字 "^@" があったんです。
私は、これだ!! と、ピンときましたね。

QVIEW.DEF は、ファイルを丸ごと読んで書式を整えて表示していると思われます。
そのとき、ヌル文字やコントロールコードなどを含んでいたらバイナリと判断して
いるのではないかと思われます。

QVIEW で、MSDOS Player ごと落ちるファイルは、このヌル文字の処理で落ちて
いるのではないかと想像しました。
QVIEW.DEF のその処理の部分はマシン語なので、実際はどこで落ちているかは
わからないですが。

QVIEW で見てみると、結構ヌル文字を含むテキストファイルがありましたね。
そのまま編集してヌル文字削除できるので、QVIEW は便利。

また、拡張子が TXT で、UTF8 コードだと、QVIEW で化け文字になるので、
そのまま拡張子を TXU に変更して、作業継続できるので、QVIEW は色々
役に立つ優れものマクロです。(^_^)


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