Hi!
30-Дек-2004 15:59 [EMAIL PROTECTED] (Luchezar Georgiev) wrote to
[EMAIL PROTECTED]:
> +++ inthndlr.c 30 Dec 2004 15:59:38 -0000 1.87.2.12
> @@ -959,7 +958,6 @@
> DosMemLargest(&lr.BX);
> if (DosMemCheck() != SUCCESS)
> panic("MCB chain corrupted");
> - goto error_exit;
> }
> lr.AX++; /* DosMemAlloc() returns seg of MCB rather than data */
> break;
Bug: in case of not enough memory, INT21/48 should return error code 8
and size of largest available block in BX; now in case of error there will
be anyway returned "success" and garbage in AX.
> @@ -970,7 +968,6 @@
> {
> if (DosMemCheck() != SUCCESS)
> panic("MCB chain corrupted");
> - goto error_exit;
> }
> break;
Bug: in case of wrong segment, INT 21/49 should return error code 9;
now in case of error anyway will be returned "success".
> @@ -990,7 +987,6 @@
> #endif
> if (DosMemCheck() != SUCCESS)
> panic("after 4a: MCB chain corrupted");
> - goto error_exit;
> }
> lr.AX = lr.ES; /* Undocumented MS-DOS behaviour expected by BRUN45! */
> break;
Bug: same, as for INT 21/48.
(BTW, although RBIL says about error code 7 ("MCB destroyed"), which
may be returned, FD in this case just hangs (through panic()). I think, this
is good behavior, but don't know how this is compatible to MS-DOS).
> @@ -1204,9 +1199,7 @@
> case 0x09:
> rc = remote_printredir(lr.DX, Int21AX);
> CLEAR_CARRY_FLAG();
> - if (rc != SUCCESS)
> - goto error_exit;
> - break;
> + goto short_check;
I don't sure, if this replacement is valid - unfortunately, remote_*()
calls are too indirect and I can't check, if rc>0 values are returned at all
and treated (or not) as "error".
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Freedos-kernel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel