今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル Re^5: 十分割ジャンプマクロの問題点 &Id
投稿日: 2020/10/19(月) 18:56
投稿者konno
 番 号 9861    9860 番 konno さんへのコメント    コメント数 1

> テストするときに十分割ジャンプマクロを使ったら不具合が出たためです。

オリジナルのVZで十分割ジャンプを使うと VTDOS が落ちてしまいます。
60k 程度のファイルなら落ちませんが、100k越えでは落ちます。
VZ.DEF や、VZ2.DEFを色々見直しましたが直りませんでした。
私はこれで混乱してしまい、PCの状態まで疑ってしまいました。

&t で追ってみると、&Id (ロング整数除算)で落ちています。
&Id を STKHLP で見てみたら、オリジナルVZではバグで暴走することがあると。
なんと、十分割ジャンプでVTDOSが落ちたのは、&Id のせいでした。(>_<)

2000年ごろのVZマクロは、既に高橋版が前提になっていたのね。(^^;

試しに
	&Im(pr,n) &Id(pr,10)		;ファイルサイズをn/10分割

の乗算、除算の順番を入れ替えて

	&Id(pr,10)			;除算 ファイルサイズをn/10分割
	&Im(pr,n) 			;乗算

除算、乗算に入れ替えてみたら、300kくらいまではOKになりました。精度も変わらない感じです。
でもそれ以上の大きなファイルだとやっぱりVTDOSが落ちてしまいます。

で、対策としてめざら資源の VZ Macro FAQ「ファイルの中間点に移動するには」から

     &g("Jump n/10") n=r, (n<0 || n>10)?. &s #_ n=(ln/10)*n, &#J(n) &d

このルーチンを oVZ 分岐用に頂きました。m(__)m
精度は多少落ちますが、1Mくらいまでのファイルなら近いところまでジャンプできます。
1M以上ではファイル末尾に飛んでしまいますが、VZが落ちることはありません。
数値が32767までしか使えないからでしょう。
高橋版以前のVZは検証用にしか使いませんが、安全対策として入れました。


    - No.9861 一括表示へ   -   コメント元:9860 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
9850.SHADOW.DEF 関連の備忘録 - konno 20/10/15-01:14
  ┗9854.Re: SHADOW.DEF 関連の備忘録 - めざら 20/10/16-00:02
   ┗9857.Re^2: SHADOW.DEF 関連の備忘録 - konno 20/10/16-21:59
    ┗9859.Re^3: SHADOW.DEF 関連の備忘録 - めざら 20/10/17-12:59
     ┗9860.Re^4: SHADOW.DEF 関連の備忘録 - konno 20/10/18-20:34
      ┗9861.Re^5: 十分割ジャンプマクロの問題点 &Id - konno 20/10/19-18:56
       ┗9862.Re^6: 十分割ジャンプマクロの問題点 #O - konno 20/10/20-20:46

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]