Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

Patch for DOSLFN 0.40e (Users)

posted by Japheth Homepage, Germany (South), 04.09.2011, 03:14

> Apparently there's another bug (regression) discovered by Juan on
> comp.os.msdos.djgpp
> (re: DJGPP 2.04 w/ MS-DOS 6.22 + DOSLFN 0.40e):
>
> > I have found my old FreeDOS CD and installed DOSLFN 0.40c.
> > With this driver everthing works on MSDOS. Stepping into
> > the filelength() code shows that the 0.40e version does
> > not set the CF when it returns from 0x71A6 call while 0.40c
> > does so that it jumps directly into the 0x4201 code instead
> > of returning an EOVERFLOW.

I don't think this is a bug in DOSLFN, it is almost certainly a bug in DPGJJ - as usual.

Why? Because it's known and old hat that DOSLFN does NOT support function 71A6h:

DOSLFN.ASM itself:


verteiler:      DVT     39h,lfn_mkdir   ;w DS:DX
                DVT     3Ah,lfn_rmdir   ;w DS:DX
                DVT     3Bh,lfn_chdir   ;r DS:DX
                DVT     41h,lfn_unlink  ;w DS:DX       CX SI
                DVT     43h,lfn_attr    ;? DS:DX BL    CX SI DI
                DVT     47h,lfn_pwd     ;r DS:SI DL
                DVT     4Eh,lfn_ffirst  ;r DS:DX ES:DI CX SI
                DVT     4Fh,lfn_fnext   ;r BX    ES:DI    SI
                DVT     56h,lfn_move    ;w DS:DX ES:DI
                DVT     60h,lfn_name    ;r DS:SI ES:DI CX
                DVT     6Ch,lfn_creat   ;? DS:SI    BX CX DX DI
                DVT    0A0h,lfn_volinfo ;- DS:DX ES:DI BX CX DX
                DVT    0A1h,lfn_fclose  ;r BX
;--- entry 0A6h ( get file info by handle ) is missing
                DVT    0A7h,lfn_timeconv;- DS:SI       BX CX DX
                DVT    0A8h,lfn_genshort;- DS:SI ES:DI DX
                DVT    0AAh,lfn_subst   ;- DS:DX BH(=0,1,2) BL(=LW)
                db      0


or DOSLFN.TXT

THAT WILL PROBABLY NEVER WORK:

* functions around SUBST, AL=AAh        ("query subst" is available)
* file creation from server, AL=A9h
* retrieve handle information, AL=A6h
* reset drive, AL=0Dh


That's why calling this function must be done very carefully. See HX, DKRNL32, file GETFINFO.ASM:


        mov ebx, handle
        mov edx, pFileInfo
        mov ax,71A6h            ;this is NOT implemented in DOSLFN!!!
        stc
        int 21h
        jnc exit
        cmp ax,7100h
        jnz error


And my suspicion is that DGVJJ does NOT call this function "very carefully".

---
MS-DOS forever!

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 332 users online (0 registered, 332 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum