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
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel