Салям! 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