(12589)
12589:
VZのステータスライン消しマクロは危険です!
投稿者:
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