Салям!

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
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to