On 6/11/06, Arkady V.Belousov <[EMAIL PROTECTED]> wrote:
> Hi!
>
> 11-Июн-2006 02:47 [EMAIL PROTECTED] (Blair Campbell) wrote to
> [EMAIL PROTECTED]:
>
> BC> +++ goxy.c 11 Jun 2006 02:47:05 -0000 1.3
> BC> - regs.h.dh = y - 1;
> BC> - regs.h.dl = x - 1;
> BC> - int86(0x10, ®s, ®s);
> BC> + regs.r_ax = 0x0200; /* set cursor position */
> BC> + regs.r_dx = ( ( y - 1 ) & 0xFF ) | ( ( x - 1 ) >> 8 );
>
> Bug! Should be replaced by
>
> regs.r_dx = (((y-1) & 0xFF) << 8) | ((x-1) & 0xFF);
>
Note that this is surrounded by #if 0... (it's not even used )
> But much better (much more size efficient) to revert back to int86().
>
> BC> + _AH = 0x02;
> BC> + _DH = ( y - 1 );
> BC> + _DL = ( x - 1 );
> BC> + _BX = 0;
> BC> + geninterrupt( 0x10 );
>
> This adds more incompatibility and prevents (future) porting to OW.
> :(
So? whoever did that would probably have to heavily modify OW's clib anyways...
> BC> +++ mk_rddir.c 11 Jun 2006 02:47:05 -0000 1.5
> BC> @@ -17,22 +17,32 @@
> BC> int lfn_mrc_dir(const char *path, int func)
> BC> - if (checkDriveSupportsLFN(getdisk() + 'A'))
> BC> - func = (func >> 8) + 0x7100;
> BC> - r.r_ax = func;
> BC> + r.r_ax = 0x7100 | func;
>
> (1)
>
> BC> + r.r_dx = FP_OFF( path );
> BC> r.r_ds = FP_SEG(path);
> BC> + r.r_flags = 1;
> BC> + intr( 0x21, &r );
>
> Again bug: you have no ways to pass _your_ Carry flag value into
> interrupt through int*() functions.
But it works.
>
> BC> + return( ( r.r_flags & 1 ) ? -1 : 0 );
>
> This is same, as "return -(r.r_flags & 1);"
>
> BC> +#define mkdir(x) lfn_mrc_dir(x,0x39)
>
> (2) Why not use explicitly 0x7139 and thus simplify (1)?
Because it works.
>
> BC> +#ifdef FEATURE_LONG_FILENAMES
> BC> +int mk_rd_dir( char *param, int lfnfunc, char *fctname )
> BC> + if((rv = lfn_mrc_dir( argv[0], lfnfunc )) != 0)
>
> Same here.
>
> BC> +++ timeset.c 11 Jun 2006 02:47:05 -0000 1.3
> BC> - r.h.ch = t->hour;
> BC> - r.h.cl = t->minute;
> BC> + r.r_cx = t->hour | t->minute;
>
> Wrong replacement!
>
> BC> - r.h.dh = t->second;
> BC> - r.h.dl = t->hsecond;
> BC> + r.r_dx = t->second | t->hsecond;
>
> Wrong replacement!
>
> BC> +++ prprompt.c 11 Jun 2006 02:47:05 -0000 1.4
> BC> #include <stdio.h>
> BC> +#undef putchar
>
> This is bad action and not recommended by standard. Especially, you
> change prototype (your putchar() expects pointer instead character)!
>
> BC> +++ keyprsd.c 11 Jun 2006 02:47:05 -0000 1.3
> BC> + if (r.r_flags & 0x40)
> BC> return 0;
> BC> else
> BC> return 1;
>
> return (r.r_flags & Zero_FLAG) == 0;
>
> BC> +++ cd_dir.c 11 Jun 2006 02:47:05 -0000 1.7
> BC> +int _Cdecl lfn_mrc_dir( const char *name, int function );
>
> Bug! In mk_rddir.c there is not same prototype!
Since _Cdecl is automatic in Turbo C, it _IS_ the same prototype.
And ESPECIALLY (please) do not call things bugs that don't even warn
and that work perfectly.
>
> BC> +++ vcgetch.c 11 Jun 2006 02:47:05 -0000 1.3
> BC> + char ch[ 1 ];
> BC> + ch[ 0 ] = cgetchar();
> BC> + write( 1, isprint(ch[ 0 ]) ? ch : " ", 1 );
> BC> + write( 1, "\b", 1 );
>
> static char ch2 [2] = " \b";
> unsigned char ch = cgetchar();
> if (!isprint (ch)) ch = ' ';
> ch2 [0] = ch;
> write (1, ch2, 2);
>
> BC> fflush(stdout);
>
> Same bug: mixing FILE* and handle-oriented IO and placing write()
> before fflush().
>
> BC> +++ farread.c 11 Jun 2006 02:47:05 -0000 1.3
> BC> +unsigned DOSreadwrite(int fd, void far *buffer, unsigned size,
> BC> + unsigned short func );
>
> Prototypes should be present _in one place_ (somewhere in headers)!
Well, the prototype is present, and since it's only used in two
places, it hardly warrants being put in a header.
>
> BC> +++ cmdinput.c 11 Jun 2006 02:47:05 -0000 1.6
> BC> static void outc(char c)
> BC> {
> BC> - putchar(c);
> BC> +// putchar(c);
> BC> + write( 1, &c, 1 );
>
> Wow! Why in so many places use write(), whereas there is defined
> outc()?!
It happens to be static
>
>
> _______________________________________________
> Freedos-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freedos-devel
>
--
Fall is my favorite season in Los Angeles, watching the birds change
color and fall from the trees.
David Letterman (1947 - )
See ya
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel