Hi

for Germany COUNTRY.SYS reports "." (dot) for the time separator, when
it should be ":" (colon).

I noticed the error in FD 1.3 RC2 and FD 1.2, when using:

        !COUNTRY=049,,C:\FDOS\BIN\COUNTRY.SYS

in FDCONFIG.SYS.

I didn't test FD 1.1.

FD 1.0 behaves differently: Although it reports 001 for the current
country code (BX on return from AX=3800h, int21h), the time separator is
correct.

I tracked the error down to:

Bad data:
de_850 cnf  49,850,DMY,"E","U","R",0,0,".",",",".",".",1,2,_24; Germany
    Tom
de_858 cnf  49,850,DMY,0D5h,   0,0,0,0,".",",",".",".",1,2,_24; Germany
de_437 cnf  49,437,DMY,"E","U","R",0,0,".",",",".",".",1,2,_24; Germany

Good data:
de_850 cnf  49,850,DMY,"E","U","R",0,0,".",",",".",":",1,2,_24; Germany
    Tom
de_858 cnf  49,858,DMY,0D5h,   0,0,0,0,".",",",".",":",1,2,_24; Germany
de_437 cnf  49,437,DMY,"E","U","R",0,0,".",",",".",":",1,2,_24; Germany

In HELP -> "country" (not "country.sys") it is stated correctly as ":".

If you don't patch 850 to 858 COUNTRY.SYS doesn't load with:

        !COUNTRY=049,858,C:\FDOS\BIN\COUNTRY.SYS

because 49 858 are no valid combination.

This is how I patched current COUNTRY.SYS to make it work:
00003984: 2E 3A
00003995: 52 5A
000039A4: 2E 3A
000039C4: 2E 3A


And I think, for Austria the time separator should also be ":". (see
lines 3075-3077 of COUNTRY.ASM)

***************************************************************************

I just found a second data error.
If you use:

        !COUNTRY=049,437,C:\FDOS\BIN\COUNTRY.SYS

loading COUNTRY.SYS aborts with error "could not find country info for
country ID 49".

I fixed this by patching:
0000041B: 5A B5
0000041C: 03 01

***************************************************************************

A third data error is regarding the "Space between value and currency
symbol" bit. It is reported as NO for codepage 437 and codepage 850. It
should be YES, because the symbol is "EUR" then.
For codepage 858 symbol is "€", so NO is correct here.

I fixed this by patching:
00003986: 01 03
000039C6: 01 03

***************************************************************************

Fourth error (?)
German MS-DOS 6.22 and Windows XP SP3 report ";" as the data-list separator.

I didn't find, where this is defined. So no patch from me.


As this mail and patch list got (and took) longer than expected, I'm
attaching a diff file.

Maybe someone with access to the kernel sources can integrate this fix.
Thanks in advance!

***************************************************************************

By the way:
To study the error and practice DOS programming I wrote a little tool to
show country information as reported by AX=3800h/INT 21h in some
"obscure" Pascal dialect from Japan called Cabezon.
The EXE file is currently available at
<https://www.bttr-software.de/tmp/COUNTRY.ZIP>.
I can provide source code too, if anyone is interested, but may be
currently of little use, because it depends on my expanded run-time
library for Cabezon, which is still pre-beta code.

Output will be similar to:
#####
Country code       : 49
Date format        : 0001h (dd mm yy)
Time format        : 01h (Bit 0: 24-hour clock = YES)
Thousands separator: .
Decimal separator  : ,
Date separator     : .
Time separator     : :
Data-list separator: ,
Currency symbol    : EUR
Currency format    : 01h (Bit 0: Currency symbol follows value = YES
                          Bit 1: Space between value and currency symbol
= NO
                          Bit 2: Currency symbol replaces decimal point
= NO)
Currency precision : 2
Case map routine   : 00D8:11EF
#####

Cheers,
Robert
-- 
              +++ BTTR Software +++
     Home page: https://www.bttr-software.de/
DOS ain't dead: https://www.bttr-software.de/forum/
--- COUNTRY-orig.ASM    Sun Jun 26 21:05:00 2011
+++ COUNTRY.ASM Thu Jan 23 20:04:53 2020
@@ -192,11 +192,11 @@ __pl_858 dw 12, 48,858,0,0
         dd _pl_858
 __de_858 dw 12, 49,858,0,0
         dd _de_858
 __de_850 dw 12, 49,850,0,0
         dd _de_850
-__de_437 dw 12, 49,858,0,0
+__de_437 dw 12, 49,437,0,0
         dd _de_437
 __ar_858 dw 12, 54,858,0,0
         dd _ar_858
 __ar_850 dw 12, 54,850,0,0
         dd _ar_850
@@ -3088,13 +3088,13 @@ no_865 cnf  47,865,DMY,"K","r",  0,0,0,"
 no_850 cnf  47,850,DMY,"K","r",         0,0,0,".",",",".",":",2,2,_24; Norway
 no_858 cnf  47,858,DMY,"K","r",         0,0,0,".",",",".",":",2,2,_24; Norway
 pl_852 cnf  48,852,YMD,"Z",88h,         0,0,0,".",",","-",":",0,2,_24; Poland  
 Michal
 pl_850 cnf  48,850,YMD,"P","L","N",0,0,".",",","-",":",0,2,_24; Poland
 pl_858 cnf  48,858,YMD,"P","L","N",0,0,".",",","-",":",0,2,_24; Poland
-de_850 cnf  49,850,DMY,"E","U","R",0,0,".",",",".",".",1,2,_24; Germany        
    Tom
-de_858 cnf  49,850,DMY,0D5h,   0,0,0,0,".",",",".",".",1,2,_24; Germany
-de_437 cnf  49,437,DMY,"E","U","R",0,0,".",",",".",".",1,2,_24; Germany
+de_850 cnf  49,850,DMY,"E","U","R",0,0,".",",",".",":",3,2,_24; Germany        
    Tom
+de_858 cnf  49,850,DMY,0D5h,   0,0,0,0,".",",",".",":",1,2,_24; Germany
+de_437 cnf  49,437,DMY,"E","U","R",0,0,".",",",".",":",3,2,_24; Germany
 ar_850 cnf  54,850,DMY,"$",    0,0,0,0,".",",","/",".",0,2,_24; Argentina
 ar_858 cnf  54,858,DMY,"$",    0,0,0,0,".",",","/",".",0,2,_24; Argentina
 ar_437 cnf  54,437,DMY,"$",    0,0,0,0,".",",","/",".",0,2,_24; Argentina
 br_850 cnf  55,850,DMY,"C","r","$",0,0,".",",","/",":",2,2,_24; Brazil
 br_858 cnf  55,858,DMY,"C","r","$",0,0,".",",","/",":",2,2,_24; Brazil
_______________________________________________
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to