(2709)
2709:
konnoさん版 拡張 *Funckey 出力
投稿者:
おうら
2007/09/03(月) 18:43
コメント数 1
今日は勢いよく書いてます。こんばんわ、おうらです。
さて、konnoさん版になってから *Funckey の拡張が行われました。
編集モード(s=0 SYS_EDIT)以外でもファンクションキーが出るようになったと
ドキュメント http://tamaneko.world.coocan.jp/VZK.TXT
にも書かれてます。
しかし、dosemu 上で実行したところ 編集モード以外(s!=0)ではファンクションキーの表示が行われませんでした。いろいろとトレースしていったところ keyibm.asm の checkfkey プロッシージャにおいて call checkfp → cmp cs:fp_on,0 → jz → ret となっていました。
keyibm.asm 521行目の fp_on 変数の定義をみると 0 で初期化。しかし、grep FEP_ vz.inc として出てくる値を見ると FEP_ON equ 0 で FEP_OFF equ 1,... となっています。どうやら 初期値から FEP が ON と誤判定していたようです。
試しに fp_on の初期値を FEP_OFF にしてみました。そうすると dosemu 上で FEP を組み込めない環境での Vz でも、一行入力モード(s=1 SYS_GETS),ファイラーモード(s=3 SYS_FILER), 一文字入力モード(s=4 SYS_GETC)でのファンクションキー出力は行われました。
fp_on 変数は FEP_OFF が初期値であって欲しいと思いました。
逆に言うと、DOSモード(s=2 SYS_DOS)ではファンクションキーの表示が行われません。トレースして行くと、DOSモード時には checkfkey が呼ばれてないことが判りました。dos.asm に grep してみると getdoskey, setdoskey は呼ばれています。一方で idle と名の付くサブルーチンはコールされてませんでした。なるほど keyibm.asm の idle5 で SYS_DOS の判定をしているのに、ここには通らない様子。罠です。
っと、今日はここまでで頭がいっぱい。トレースはここまでにすることにしました。
ということで、また何か見つけたら書き込もうと思います。
- No.2709 -
このTreeへ
[リストへもどる]
soft
(2709)
2714:
Re: konnoさん版 拡張 *Funckey 出力
投稿者:
konno
2007/09/04(火) 00:52
2709 番 おうら さんへのコメント
おうらさん、連続の解析ありがとうございます。
> fp_on 変数は FEP_OFF が初期値であって欲しいと思いました。
ちょっと忘れていましたが、これはFEPとの連携を試行錯誤していたときに
追加したものですね。副作用が多いなら無くした方が良いかもしれないですが、
とりあえず、初期値に 1 を入れてみますね。
> 逆に言うと、DOSモード(s=2 SYS_DOS)ではファンクションキーの表示が行われません。トレースして行くと、DOSモード時には checkfkey が呼ばれてないことが判りました。dos.asm に grep してみると getdoskey, setdoskey は呼ばれています。一方で idle と名の付くサブルーチンはコールされてませんでした。なるほど keyibm.asm の idle5 で SYS_DOS の判定をしているのに、ここには通らない様子。罠です。
う〜む、これって、DOSのキー入力ルーチンでしたっけ? ここは調べてみます。
別のところで呼ばれているような気がしますが。
コマンドラインでのFキー表示自体は出来ていたんですが、スクロール制御が
分からなかったので今まで無効にしていました。
- No.2714 -
このTreeへ
コメント元:2709 へ
[リストへもどる]
soft