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

一括表示

  VZのステータスライン消しマクロは危険です! - konno 25/10/29-15:32 No.12589
  ┗ ステータスバーやファンクションバーを消すオプション - konno 25/10/31-18:20 No.12591
(12589) 12589VZのステータスライン消しマクロは危険です!  投稿者:konno   2025/10/29(水) 15:32
   コメント数 1

緊急です!

最近 DOSVAXJ3で VZのステータスライン消しマクロが上手く動かないので軟式さんに
聞いてみたら、このマクロが DOSのメモリを壊していることがわかりました。

wa.54=0, でテキストを VRAM 0行目にずらすのですが、元々 0行目にあった
ステータスバーは 1行上にズレて表示していますが見えていないだけです。
つまり、VRAMの先頭の上の別のメモリに上書きしていたのです。

今まで気が付かなかったのは、VRAMの直前のメモリがたまたま空いていたからで
MS-DOS Playerの場合はそこに何らかのデータがあるので、強制終了してしまいます。

ということでこの技を使ったマクロは大変危険なので今後使わないように願います。
私が使っていて覚えている公開マクロは

break98.def
break_k.def
FUNKIE.DEF
hanabi5.def
hanabi6.def

くらいですかね。ほとんどゲーム関係なので、これが使えないのは惜しいです。
このほかにもあるかもですので、気が付いた方はお知らせください。m(__)m

      - No.12589 -    このTreeへ           [リストへもどる] soft


(12589) 12591ステータスバーやファンクションバーを消すオプション  投稿者:konno   2025/10/31(金) 18:20
    12589 番 konno さんへのコメント

軟式さんからメールでこのようにご教授をいただきました。

> おそらくステータスバー表示の座標を元に計算した仮想 VRAM のアドレ
>スが DOSVAXJ3 の場合は画面右下になり、落ちたり固まったりする環境で
>は DOS のワークを壊すような位置を示したりしているのだと思います。
> VZ 側は計算時にオーバーフローのチェックをしていないと思われます。

なるほど、VRAM領域外のメモリに書き込まなければ問題ないのなら VZ.COMで
ステータスバーやファンクションバーを表示させないオプションを仕込んだら
いいのではないかと考え、やってみました。

・OF ファンクションキーを消して行数を増やします。
こんなオプションが以前からあったのですが、実際はうまく機能してませんでした。
この古いルーチンを消して、新しくステータスバーやファンクションバーを消す
オプションとしました。

● OF  ステータスバーやファンクションバーを消すオプション ※ 2025-10-31〜
    Of+1: ステータスバーを消す
    Of+2: ファンクションバーを消す
    Of 3: ステータスバーとファンクションバーを消す
    ※ 安全策として wa.54=0 の時はステータスバーを描画させないようにした

これにより VRAM領域外のメモリに書き込むことは無くなりました。
また、意図しないで wa.54=0 になった時の安全策を入れることで以前のマクロを
そのまま実行させても大丈夫になりました。
wa.54 はテキストの描画開始位置で、2画面にすると値が変わります。
wa.54=0 の時はステータスバーを描画させないようにしたので副作用もほぼ無いです。

今後は 公開しているKVZシリーズに仕込んで、KVZを使えば安全にステータスバー消し
出来るアピールして、みなさんにKVZを使ってもらえるように努力します。

新発想の解決策の切っ掛けをご教授いただきありがとうございました。

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