Салям!
29-Дек-2004 19:27 [EMAIL PROTECTED] (Luchezar Georgiev) wrote to
[EMAIL PROTECTED]:
> Remove hack in Int 21h AH=38h, revert bad change in _CmdInstall
> +++ inthndlr.c 29 Dec 2004 19:27:31 -0000 1.87.2.11
> case 0x38:
> {
> - UWORD cntry = lr.AL;
> -
> - if (cntry == 0xff)
> - cntry = lr.BX;
> + if (lr.AL != 0xff)
> + lr.BX = lr.AL;
Bug: INT 21/38/DX=-1 doesn't changes BX, as stated by RBIL. Same for
INT 21/38/DX#-1, when CF on output is set.
> if (0xffff == lr.DX)
> {
> /* Set Country Code */
> - rc = DosSetCountry(cntry);
> + rc = DosSetCountry(lr.BX);
> }
> else
> {
> - if (cntry == 0)
> - cntry--;
> /* Get Country Information */
> - rc = DosGetCountryInformation(cntry, FP_DS_DX);
> - if (rc >= SUCCESS)
> - {
> - /* HACK FIXME */
> - if (cntry == (UWORD) - 1)
> - cntry = 1;
> - /* END OF HACK */
> - lr.AX = lr.BX = cntry;
> - }
> + rc = DosGetCountryInformation(lr.BX ? lr.BX : NLS_DEFAULT,
> FP_DS_DX);
> }
Bug: INT 21/38 should return country code in AX and BX when CF=0, even
if initially there was AL=0 or AL=-1. New code returns wrong value when AL=0
or -1 - in this case there will _not_ returned requred country code.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
Freedos-kernel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel