> 取り敢えず新バージョンを出してみました。
ありがとうございます。試してみました。
> INT 16h, AH=13hと、ATOKのINT 6Fhの処理を、DOSVAXJ3に寄せています。
> また、$IBMAFNT/$IBMADSP/$IBMAIASが組み込まれているふりをするようにしてみました。
INT 16h, AH=13h の方は機能していないようです。
> INT 16h, AX=1300h で WinIME が OFF になるのはVZマクロで確認できました。
これは同じく効いているようですが。
機能の詳細を教えてもらえるとありがたいです。
ATOKのINT 6Fhの方は、VZATOK版ではある程度うまく動くようになりました。
ただ、編集モード以外で [ESC] を押すと IME が ONになってしまうのが想定外でした。
私の説明が不正確だったせいで、IMEを自動復帰させているように思います。
これはVZ側が FEPの状態を覚えていて、必要に応じて VZが ON/OFF させているのでした。
なので、[ESC] を押すと IME が OFFになるようにして、その後はVZが制御する形がいいと思います。
VZは DBCS mode をチェックしているようですが関係あるでしょうか。
SCRNIBM.ASM 2592:
;--- Check DBCS mode --- ; ##156.132
checkDBCS proc
IFDEF US
mov dbcs,FALSE ;0
ELSE
IFDEF IBM
pushm <bp,ds,es>
clr si
msdos 63h,0
mov al,FALSE ;0
tst si
_ifn z
tstw [si]
_ifn z
IFDEF IBMAX
clr bl
bios_v 50h,1
cmp bl,01h
mov al,TRUE
_if e
mov al,FALSE ;0
_endif
ELSE
mov al,TRUE ;1
ENDIF
_endif
_endif
mov dbcs,al
popm <es,ds,bp>
ENDIF
ENDIF
ret
checkDBCS endp
KEYIBM.ASM 1588:
;--- Is DBCS mode? ---
public isDBCS
isDBCS proc
IFDEF US
add sp,2
clc
ELSE
IFDEF IBM
extrn dbcs :byte
tstb dbcs
_if z
add sp,2
clc
_endif
ENDIF
ENDIF
ret
isDBCS endp