> 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すると不明なエラーです.となり実行できないです。
> *が認識されてない?他にもあるかもです。
うちの環境では問題無いようですが、何が違うのでしょうね。