VZの問題なので、自分でもちょっと見てみました。
SCRNIBM.ASM 1367行目 DOS画面保存? これを呼ぶ前にDOS画面クリアしているのか?
;--- Get dos/current screen ---
public getdosscrn
getdosscrn proc
call is_dossilent
call getgvseg
mov di,dosscrn
clr si
call getscrn
ret
getdosscrn endp
SCRNIBM.ASM 1443行目 DOS画面描画? ここか、この後でDOS画面クリアしているのか?
;--- Put dos/current screen ---
public putdosscrn
putdosscrn proc
call is_dossilent
mov msgon,0
call resetfp ; ##155.79
mov savef,FALSE
call setdosVM
mov si,dosscrn
clr di
call getgvseg
call putscrn
IFDEF DOSV
call vrefreshscrn ; DOSVでVRAM画面を表示させる?
ENDIF
IFNDEF J31
call resetpalette
ENDIF
clrfkey:
mov fkeymode,0
pdos9: ret
putdosscrn endp
MAIN.ASM 1503: call getdosscrn
OPEN.ASM 267: call getdosscrn
DOS.ASM 267: call putdosscrn
MAIN.ASM 1564: call putdosscrn
OPEN.ASM 266: call putdosscrn
MAIN.ASM 1503: call getdosscrn
;--- Enter the editor ---
;<-- CY :out of memory
public enter_vz
enter_vz proc ; DOS画面で[Enter]押したときに呼ばれる?
movseg ds,ss
movseg es,ss
call check_vwx
call getdosscrn
call setdoswindow
call setint24
call getcurdir
OPEN.ASM 267: call getdosscrn
close1: ; 編集画面からコマンドラインに降りた時か?
call putdosscrn ; getdosscrn の前に呼んでいるのは何故?
call getdosscrn
call setcmdwindow
call setdoswindow
DOS.ASM 267: call putdosscrn
;--- Exec from editor ---
public se_command
se_command proc
tstb cs:cmdlinef
_ifn z
quit1: jmp quit_vz
_endif
movseg ds,ss
call putdosscrn
・・・・
call enter_vz ; この後でこれが呼ばれる?
MAIN.ASM 1564: call putdosscrn
;--- Quit editor ---
public quit_vz
quit_vz proc
call ld_wact
_if z
call clrstack ; ##100.09
mov gends,INVALID
test syssw,SW_INIOPT
_ifn z
call load_iniopt
_endif
_endif
movseg ds,ss
call write_logtbl
call putdosscrn ;
call setfnckey
tstb tsrflag ; 常駐VZか?
jmpln z,quit_tsr
call setdoskey
call setdoscsr
call resetfp
こんなところでしょうか、コメントは想像で適当に付けたものです。
私にはこれ以上はわからないです。