On Sun, 7 Mar 2004, Luchezar Georgiev wrote:

> The following log comment is slightly incorrect:
>
> >     prf.c
> > Log Message:
> > Borland C (unlike Turbo C) didn't like this pseudo register use.
>
> Actually, *both* Turbo and Borland C didn't like it!

This is strange. The old code has been there for ages even when we
compiled with Turbo C by default. I see:

0010    B8 00 0E                  mov       ax,0x0e00
0013    0B 46 04                  or        ax,0x4[bp]

which should be correct since the high byte should be 0.

Ahh. Some calls to put_console most likely sign extend the byte then. That
should be corrected as well then. Anyway the new code is one byte smaller.

> After some fiddling with debug kernels and the very old (1987!) but
> excellent STEPDOS Int 21 tracer (http://www.chiphead.de/pages/stdos.htm),
> I come up the following patch which fixes the bug.

> --- cvs/kernel/kernel/dosnames.c      2003-06-15 20:57:02.000000000 +0200
> +++ src/kernel/kernel/dosnames.c      2004-03-07 14:02:30.000000000 +0200
> @@ -113,6 +113,8 @@
>       {
>         if (*filename != '\0')
>           return DE_FILENOTFND;
> +      if (nDirCnt <= 3)         /* "D:\" (D=drive) */
> +        return DE_NFILES;       /* root has no '.' */
>         memset(fcbname, '?', FNAME_SIZE + FEXT_SIZE);
>         return nDirCnt;
>       }

Thanks! -- I'll have a closer look since I remember similar issues.

Bart



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to