(6549)
6549:
VTDOS1.41
投稿者:
konno
2014/06/14(土) 22:08
コメント数 2
VTDOS1.41+CKWV7を現在使用中ですが、2度致命的エラーで落ちました。
2014-06-11 23:24:51 VZIBMJ(1954) 1954:2975 '致命的エラー: 一般保護例外 0xc0000095 0x00413FE5'
2014-06-14 21:55:26 VZIBMJ(1954) 1954:2975 '致命的エラー: 一般保護例外 0xc0000095 0x00413FE5'
まだ原因再現の特定までいってないですが、コンソールの編集で
IME使用中にファイラーオープンしようとしたときに落ちたような。
私の環境が問題なのかもしれません。
- No.6549 -
このTreeへ
[リストへもどる]
soft
(6549)
6551:
Re: VTDOS1.41+CKWV7 で C:\ の入力
投稿者:
konno
2014/06/14(土) 22:44
6549 番 konno さんへのコメント コメント数 1
VTDOS1.41+CKWV7 で、IME使用中に、IME ON のままで、半角の
C:\
を入力すると、IMEが OFF になりますね。
うちの環境だけかもですが。
高橋版VZ + オリジナルVZ.DEF でも同じになります。
オリジナルVZ + オリジナルVZ.DEF も同様ですが、IMEの自動制御が効かないようですね。
この違いは高橋さんがDOS窓でFEP制御できるようにしてくれたからかな。
- No.6551 -
このTreeへ
コメント元:6549 へ
[リストへもどる]
soft
(6549)
6553:
Re^2: VTDOS1.41+CKWV7 で C:\ の入力
投稿者:
10♯
2014/06/15(日) 20:29
6551 番 konno さんへのコメント コメント数 1
これは僕の環境ではVTDOS以外でも同じ結果になります。
IMEの仕様というか設定じゃないですかね。
- No.6553 -
このTreeへ
コメント元:6551 へ
[リストへもどる]
soft
(6549)
6555:
Re^3: WinIMEで C:\ の入力モード設定
投稿者:
konno
2014/06/15(日) 21:36
6553 番 10♯ さんへのコメント
> これは僕の環境ではVTDOS以外でも同じ結果になります。
> IMEの仕様というか設定じゃないですかね。
IMEの設定でした。
IMEのツール、プロパティ、和英混在入力タブに
「対象文字列を自動で英数に変換する」と言う項目があり、
\\ 直接入力モード
C:\ 直接入力モード
となっていました。
この「直接入力モード」を例えば「一時的に半角英数モード」に変更すれば
IMEがOFFにならないですね。
おさわがせしました。
- No.6555 -
このTreeへ
コメント元:6553 へ
[リストへもどる]
soft
(6549)
6552:
Re: VTDOS1.41
投稿者:
10#
2014/06/15(日) 16:35
6549 番 konno さんへのコメント コメント数 1
除算オーバーフローが起こっているようです。
現状VTDOSは0除算エラーをエミュレートしていますが、
除算オーバーフローを想定していません。
どう対応するかは検討課題とさせていただきますが、
通常このエラーは16bitコードの不具合に起因するため、
被除数の上位バイト/ワードに問題がないか確認をお勧めします。
- No.6552 -
このTreeへ
コメント元:6549 へ
[リストへもどる]
soft
(6549)
6554:
Re^2: VTDOS1.41
投稿者:
konno
2014/06/15(日) 21:26
6552 番 10# さんへのコメント コメント数 1
> 除算オーバーフローが起こっているようです。
> 通常このエラーは16bitコードの不具合に起因するため、
> 被除数の上位バイト/ワードに問題がないか確認をお勧めします。
げげ、もしかして、VZ ・・・なのか・・・
私のVZ.DEFの問題?・・・まだ続いているのかも。
外部コマンドで、WGREP を繰り返し使用している状況が多いので
コマンドラインの不安定さがまだあるのかもですね。
確認と言っても全然わからないですが。
- No.6554 -
このTreeへ
コメント元:6552 へ
[リストへもどる]
soft
(6549)
6556:
Re^3: VTDOS1.41
投稿者:
10#
2014/06/16(月) 00:37
6554 番 konno さんへのコメント コメント数 1
仮にファイラー絡みとするなら、
フォルダーの内容がFAT時代の想定を超えてきているとかないですか?
大量にファイルがあったりとか、超大容量のファイルがあったりとか、
やたら長いファイル名があったりとか。
僕が使ってるk07s3のファイラーは、ファイル名が長かったり、
ファイルサイズの桁数が多いとき、表示が異常になることがあります。
(system32とか)
VZのソースフォルダーで grep div *.asm すれば問題箇所の候補は列挙できます。
divに先立って、clr dxやclr ahなどがある場合は99%白です。
リンク時のmapファイルがあれば、VTDOSが表示しているアドレスから、
ソースの箇所を推測できるかもしれません。
symdebの逆アセンブルでも前後の表示は可能と思われます。
- No.6556 -
このTreeへ
コメント元:6554 へ
[リストへもどる]
soft
(6549)
6557:
Re^4: VZの除算オーバーフロー
投稿者:
konno
2014/06/17(火) 00:11
6556 番 10# さんへのコメント コメント数 1
> 仮にファイラー絡みとするなら、
> フォルダーの内容がFAT時代の想定を超えてきているとかないですか?
> 大量にファイルがあったりとか、超大容量のファイルがあったりとか、
> やたら長いファイル名があったりとか。
量は多めですが、該当するような状況は無いと思います。
Win7のフォルダのセキュリティなどが影響することって無いですよね。
> 僕が使ってるk07s3のファイラーは、ファイル名が長かったり、
> ファイルサイズの桁数が多いとき、表示が異常になることがあります。
> (system32とか)
長すぎるファイル名は、お尻をカットしていると思います。
ファイルサイズの桁数が多いと横にはみ出しますよね。
表示だけでVZの動作には影響ないですか。
> VZのソースフォルダーで grep div *.asm すれば問題箇所の候補は列挙できます。
> divに先立って、clr dxやclr ahなどがある場合は99%白です。
うう、結構あるので見当もつきません。
> リンク時のmapファイルがあれば、VTDOSが表示しているアドレスから、
> ソースの箇所を推測できるかもしれません。
アドレスって
VZIBMJ(1954) 1954:2975
この 2975 でしょうか。
VZ.MAP で近いのは
0000:256A FX_NEXTPOOL
0000:2977 GETPOOLP
これはfiler.asmのこのへんかな。
;----- Set home position -----
;--> CX :files
fsethome proc
mov ax,cx
cwd
div bx
push ax
mov bx,hfiles
mov ax,[bp].fl_home
cwd
div bx
pop dx
sub dx,ax
mov al,[bp].fl_wsy
cbw
cmp dx,ax
_if l
mov [bp].fl_home,0
_endif
ret
fsethome endp
;--- Get pool pointer ---
;<--
; DX:BX :pool ptr
public getpoolp
getpoolp proc
mov bx,[bp].fl_bcsr
getpoolp1:
mov ax,type _dir
mul bx
add ax,[bp].fl_pooltop
mov bx,ax
mov dx,[bp].fl_seg
cmp bx,[bp].fl_poolend
ret
getpoolp endp
> symdebの逆アセンブルでも前後の表示は可能と思われます。
debug しか使ったことが無くて、しかもだいぶ忘れてますが
VTDOS|C:\VZ\K07T2>debug VZIBMJ.COM
-u 2960
3D99:2960 8B4610 MOV AX,[BP+10]
3D99:2963 99 CWD
3D99:2964 F7F3 DIV BX
3D99:2966 5A POP DX
3D99:2967 2BD0 SUB DX,AX
3D99:2969 8A4615 MOV AL,[BP+15]
3D99:296C 98 CBW
3D99:296D 3BD0 CMP DX,AX
3D99:296F 7D05 JGE 2976
3D99:2971 C746100000 MOV WORD PTR [BP+10],0000
3D99:2976 C3 RET
3D99:2977 8B5E0C MOV BX,[BP+0C]
3D99:297A B81600 MOV AX,0016
3D99:297D F7E3 MUL BX
3D99:297F 034602 ADD AX,[BP+02]
-q
なにか外していそうですね。もしかして256足しましたっけ。
- No.6557 -
このTreeへ
コメント元:6556 へ
[リストへもどる]
pre
(6549)
6558:
Re^5: VZの除算オーバーフロー
投稿者:
10#
2014/06/17(火) 01:20
6557 番 konno さんへのコメント コメント数 1
VTDOSの問題箇所を調べてみましたら16bit除算でした。
VZのソースで、先立つcwd や clr dx が見当たらない divは
disp.asmに集中していますね。
参考になりますか?
- No.6558 -
このTreeへ
コメント元:6557 へ
[リストへもどる]
soft
(6549)
6559:
Re^6: VZの除算オーバーフロー
投稿者:
konno
2014/06/19(木) 23:48
6558 番 10# さんへのコメント コメント数 1
10#さん
> VTDOSの問題箇所を調べてみましたら16bit除算でした。
> VZのソースで、先立つcwd や clr dx が見当たらない divは
> disp.asmに集中していますね。
参考になります。
VTDOS|C:\VZ\K07T2>WGREP -t -i -k vcb "div" *.*
------------------ DISP.ASM
DISP.ASM 591: div bx ;ax=(dx,ax)/bx dx=(dx,ax)%bx
DISP.ASM 648: div bx
DISP.ASM 745: div bx
DISP.ASM 788: div bx
DISP.ASM 978: div bx
disp.asmにはこれだけあります。
;--- Indicator bar ---
indibar2:
DISP.ASM 591: div bx ;ax=(dx,ax)/bx dx=(dx,ax)%bx
最初の所は自作の拡張インジケータバールーチンです。
オリジナルのルーチンを流用して見よう見まねで80桁に拡張しました。
一番怪しいかもですが、見てもわからないです。
indibar:
DISP.ASM 648: div bx
こちらがオリジナルのインジケータバールーチンです。
time2: msdos F_GETTIME ; int 21h 2ch dh=秒
DISP.ASM 745: div bx
これは時計表示ルーチンです。
数値の範囲が変わることは無いでしょうからここはシロ?
sysparm2: ;##k08d
DISP.ASM 788: div bx
これはテキストサイズかな。VZの動作範囲内なら問題ないですよね。
;--- Display Line header ---
DISP.ASM 978: div bx
これは行番号表示ですね。私は普段表示させてないので違うと思います。
ふと思ったんですが、下記のルーチンでも使われてるんですね。
ここは問題は起こりえないですか。
------------------ SPRINTF.INC
SPRINTF.INC 245: div bx
SPRINTF.INC 248: div bx
- No.6559 -
このTreeへ
コメント元:6558 へ
[リストへもどる]
pre
(6549)
6560:
Re^7: VZの除算オーバーフロー
投稿者:
10♯
2014/06/20(金) 20:52
6559 番 konno さんへのコメント コメント数 1
sprintf.incは基数で割った余りを基数で割っているので、これは問題無いでしょう。
disp.asmの最後のdivは直前にclr dxがあるため問題ないと思われます。
それ以外はすべてgetcurptrの戻り値を処理してるようですね。
current ptrがtext sizeを大幅(2^16倍以上)に上回らない限り問題ないと思われます。
current ptrやtext sizeは、たぶんそのまんまの意味だと思うんですが、
current ptrがtext sizeを上回るような可能性はありますか?
- No.6560 -
このTreeへ
コメント元:6559 へ
[リストへもどる]
soft
(6549)
6561:
Re^8: VZの除算オーバーフロー
投稿者:
konno
2014/06/23(月) 00:44
6560 番 10♯ さんへのコメント
> sprintf.incは基数で割った余りを基数で割っているので、これは問題無いでしょう。
そうなんですか、勉強になります。
> current ptrがtext sizeを大幅(2^16倍以上)に上回らない限り問題ないと思われます。
> current ptrやtext sizeは、たぶんそのまんまの意味だと思うんですが、
> current ptrがtext sizeを上回るような可能性はありますか?
うう、全然わからないです。
エラーの出た状況がコンソールとコマンドライン、ファイラーの行き来なので
また出たらお知らせします。
- No.6561 -
このTreeへ
コメント元:6560 へ
[リストへもどる]
soft