Hi!
______________O\_/_________________________________\_/O______________
case 0x38:
{
UWORD cntry = lr.AL;
-
- if (cntry == 0)
- cntry = (UWORD) - 1;
- else if (cntry == 0xff)
if (cntry == 0xff)
cntry = lr.BX;
if (0xffff == lr.DX)
{
/* Set Country Code */
if ((rc = DosSetCountry(cntry)) < 0)
goto error_invalid;
}
else
{
+ if (cntry == 0)
+ cntry--; /* -1 */
/* Get Country Information */
if ((rc = DosGetCountryInformation(cntry, FP_DS_DX)) < 0)
goto error_invalid;
/* HACK FIXME */
if (cntry == (UWORD) - 1)
cntry = 1;
/* END OF HACK */
lr.AX = lr.BX = cntry;
}
}
break;
_____________________________________________________________________
O/~\ /~\O
- first bug: for SetCountry (DX==-1) AL shouldn't be fixed (AL==0 -> error).
My patch above fixes this.
- second bug: code inside "HACK FIXME" always returns 1 as country code for
AL=0 on input. Don't know how to easy fix this.
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel