Салям!
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.c29 Dec 2004 19:27:31 - 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 (0x == 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