Re: [Freedos-kernel] Re: [Freedos-cvs] kernel/kernel config.c,1.89.2.10,1.89.2.11 inthndlr.c,1.87.2.10,1.87.2.11

2004-12-29 Thread Arkady V.Belousov
Hi!

30-Дек-2004 00:35 Arkady V.Belousov wrote to
freedos-kernel@lists.sourceforge.net:

>> Remove hack in Int 21h AH=38h, revert bad change in _CmdInstall
>> +++ inthndlr.c29 Dec 2004 19:27:31 -  1.87.2.11
>> -  rc = DosGetCountryInformation(cntry, FP_DS_DX);
>> -  if (rc >= SUCCESS)
>> -  {
>> -/* HACK FIXME */
^

 Note: keyword here not "hack", but "fixme". Code below should return
correct current code in AX and BX instead built-in 1...

>> -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);
>>  }

 ...but:

AVB>  Bug: INT 21/38 should return country code in AX and BX when CF=0, even
AVB> if initially there was AL=0 or AL=-1. New code returns wrong value when
AVB> 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


[Freedos-kernel] Re: [Freedos-cvs] kernel/kernel config.c,1.89.2.10,1.89.2.11 inthndlr.c,1.87.2.10,1.87.2.11

2004-12-29 Thread Arkady V.Belousov
Салям!

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