FGALDC 15 /RE:18556 呪われていた原因判明 とりあえず、ソースを洗ってみたら、私のところで呪われていた原因は判明しま した。 まず、呪われていなかった vzt03a の filer.asm の抜粋。 test ah,FA_DIREC ;表示対象がディレクトリなら jnz sort3 ;とりあえずスキップ mov cl,ss:sortopt ; test cl,not SORT_DIR ;FS64 のビットが立っていないときに _ifn z ; pushm ; test cl,SORT_NAME+SORT_EXT ;名前ソートのビットが _ifn z ;立っていれば call byname ;名前でソート _else ;名前ソートのビットが立っていなくて test cl,SORT_NEW+SORT_OLD ;時刻ソートビットが _ifn z ;立っていれば call bytime ;時刻ソート _else ;FS64 のビットが立っていなくて ;名前ソートと時刻ソートのビットが ;立っていなければ call bysize ;サイズでソート _endif ; _endif ; popm ; ja sort4 ;FS64 のビットが立っていれば _endif ;←ここまでスキップ sort2: add si,type _dir ; jmp sort1 ; sort3: ; mov dx,type _dir ; test al,FA_DIREC ; jnz sort2 ; sort4: 次に、呪われていた vzt03i の filer.asm の抜粋。 test cl,SORT_DIR ;FS64 のビットが立っていて _ifn z ;かつ表示対象が test al,FA_DIREC ;ディレクトリならば jnz sortcmp9 ;ソートせずに終了 _endif ;FS64 かつディレクトリ以外かつ test cl,SORT_NAME+SORT_EXT ;名前ソートのビットが _ifn z ;立っていれば call byname ;名前でソートして jmps sortcmp9 ;終了 _endif ;FS64 かつディレクトリ以外かつ test cl,SORT_NEW+SORT_OLD ;時刻ソートのビットが _ifn z ;立っていれば call bytime ;時刻でソート _else ;FS64 かつディレクトリ以外かつ ;名前ソートと時刻ソートの ;ビットが立っていなければ call bysize ;サイズでソート _endif ; sortcmp9: popm ; ret ; sortcmp endp ; bysize が呼ばれる条件を比較してみればわかりますが、FS64 の時の条件がまる っきり反転してしまっています。 と言うわけで、私が入手すると、ソースレベルから呪われてしまうと言うことが 判明しました。とりあえず、解決策としては、 test cl,SORT_NAME+SORT_EXT の前の行の _endif を call bysize の次の行に持ってくる、といったところでしょうか。 ただ、それでほんとにいいのか、ということは検証していません。 なんか、絶対に副作用が出てきそうな気もします。 残った問題は、なぜ他の人のところでは呪われていないのか、ということの原因 究明でしょうか。ということで、後はお願いします。>DANNYさん                                  としき