Re: [Freedos-devel] Country information in FreeDOS
Hi, after comparing the wikipedia codepage 850 and 852 information, I have the impression that the sort / upcase tables for 852 would differ from the 850 case at the following points: 85, 86, 88, 8a, 8b, 8d, 8f 91, 92, 95 to 98, 9b, 9c, 9d, 9f a4 to a9, ab, ac, ad b7, b8, bd, be d0, d2, d4, d5, d8, dd, de e3 to e8, ea, eb, ee f0, f9 This might be useful to create some 042-852.unf file based on 049-850.unf and then compile the hc and up files somehow (HOW?). By the way, our current nls_hc.asm DIFFERS from our 001-437.hc! asm file, actually compiled into the kernel: segment CONST2 extern _CharMapSrvc:wrt DGROUP hc files, to let the user drop in 001 or 049: segment _DATA extern _CharMapSrvc:wrt TGROUP Of course, you can also edit config.c to get only the date, time, number and currency stuff fixed without fixing the sort and upcase tabs and you can - probably preferred - also use a kernel which supports country sys data files, such as the one from "unstablx.zip" of 1.0 ... Eric -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel
Re: [Freedos-devel] Country information in FreeDOS
Hi! > I will do some more tests later whether also other country dependend > functions (like thousands separator, currency format...) are affected > but I suppose these functions don't properly work too. They do - date and number format are country-controlled in apps such as our command.com and our text editor edit :-p > Anyway, they are rarely needed - only important ones are > these around upcase converting. That depends on what your app does! Many "DOS countries" mainly use ASCII and maybe a few accented chars, but for example Cyrillic DOS users will definitely enjoy case and collating (sortorder) tables for their charsets... > I am using kernel version 2038pre/2036 svn > [version Jul 28 2007 compiled Oct 21 2007] This and normal 2036 / 2038 use built-in country info, as said. The "unstable / devel" kernel 2037, however, handles country data files. You can try that one... As far as I remember, there were no official updates for the 2037 kernel since FreeDOS 1.0, so bugs fixed in the "normal" kernel since 1.0 will not be fixed in 2037 yet but still it works well enough so you can give it a try. > The dynamic loading of Country.sys will be the definitive > solution, of course, but it takes much time. It probably does not - while 2037 rewrites much of the whole country handling, you can alledgedly rip out the built-in countries of 2036 / 2038 and throw in the country data file handling of 2037, as long as it is sufficiently bug-free. However, that makes you depend on having a data file around. I would be happy if some developer could COMBINE both styles into one patch for 2038 which ALLOWS data files without FORCING you to use them. In particular, date / time / number formats being available as built-in to those who cannot or do not want to load a country sys data file would be very nice... > Can you before it will be done add the > hardcoded support also for 042,852 setting? > (non Cyrillic east europe) Can you give an exact but ASCII explanation of what has to be changed for that? I mean if you would type the special chars directly in an email, you cannot be sure they will look as intended for everybody on the list. Confusingly, the country definitions of the 2036 / 2038 kernel seem to be not in nls* or nls/* but in config.c for the "normal" things: German, Dutch, Finnish, Polish, Ukrainian, Russian, Bulgarian, Japanese and Spanish are built-in as far as default codepage number, date format, number format, currency format and currency name are concerned, all indexed by country number... HOWEVER, apparently only ONE codepage can be built-in at a time as far as the OTHER properties are concerned, and only German 850 and American 437 are supported, USA being what you get when you fetch a precompiled kernel. This is what the nls*.* and nls/*.* files do and this is what the 2037 country sys datafile load does much better. In case you were wondering, differences are at how the chars 82, 83, 85, 88 to 8d, 93 to 98, 9b, a0 to a3, c6, d0, d5, e4, e7 and ec are upcased in codepage 850 (some are upcased into their unaccented form by the way). In codepage 437, they are not alphabetic and not upcased. The date, time and currency settings also differ, but as said, those are built-in for several languages while the upcase table and collating tables are only built-in for a single codepage, as is the "yes no character" (either Y N or J N here). This is because the tables are big and this is why the better solution for sort/upcase country support is indeed loading a country sys data file. I am sure Tom can send you a "German upcase" precompiled kernel from his collection :-). Then you can check if it works as expected at least for codepage 850. You should also check the 2037 devel / unstable kernel in FreeDOS 1.0, maybe somebody knows the right URL for the zip of exactly that precompiled version? Maybe it is that one... :-) The zip contains 2 kernels (with and without FAT32 support) so just copy one over your kernel dot sys file to "switch to unstable". There is also a country sys data file (27 kB!) and a special SYS. Both normal and "unstable" SYS do work for both kernels, but "special SYS" has extra experimental features built-in... Give the whole thing a try here: www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/pkgs/unstablx.zip > BTW: Did you add the recent Rayer's fixes into kernel to > be it able to boot on cheap notebooks? I reply to that one in a separate thread... Eric -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel
Re: [Freedos-devel] Country information in FreeDOS
> I will do some more tests later whether also other country dependend > functions (like thousands separator, currency format...) are affected but I > suppose these functions don't properly work too. whatever you suppose - thousands separator, currency format, date format, time format should be working in 36 and 38 kernel. > Anyway, they are rarely > needed - only important ones are these around upcase converting. obviously, the implementer of the partial country code found the date and time format *much* more important then some obscure upcase support, as this requires different charactersets anyway (which weren't available at this time) > The dynamic loading of Country.sys will be the definitive solution, of > course, but it takes much time. Can you before it will be done add the > hardcoded support also for 042,852 setting? (non Cyrillic east europe) > BTW: Did you add the recent Rayer's fixes into kernel to be it able to boot > on cheap notebooks? sorry, what fixes ? solving which problem, anyway ? Tom -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel
Re: [Freedos-devel] Country information in FreeDOS
I will do some more tests later whether also other country dependend functions (like thousands separator, currency format...) are affected but I suppose these functions don't properly work too. Anyway, they are rarely needed - only important ones are these around upcase converting. I am using kernel version 2038pre/2036 svn [version Jul 28 2007 compiled Oct 21 2007] The dynamic loading of Country.sys will be the definitive solution, of course, but it takes much time. Can you before it will be done add the hardcoded support also for 042,852 setting? (non Cyrillic east europe) BTW: Did you add the recent Rayer's fixes into kernel to be it able to boot on cheap notebooks? -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel
Re: [Freedos-devel] Country information in FreeDOS
Hi! > I want to ask whether is planned to fix the country infos through > functions INT21h/AX=65xxh in 1.1 release. > Now it doesn't properly work ant it is quite painful. The biggest > problem are the unsupported lower-upper case converting tables. > (f.e. INT21h/AX=6521h works badly) What else is broken in COUNTRY? > Even loading the COUNTRY.SYS (country=042,852, > c:\freedos\bin\country.sys) doesn't help This is because you do not actually load it ;-) Only the unstable / testing / devel branch of the kernel (2037) has country.sys loading ability yet, the stable kernel (2038) uses a built-in table of country properties which is limited somewhat... It would be optimal to port the 2037 country code while preserving the ability to use built-in data for people who do not need case advanced country data so those people can still get along without needing a separate country.sys file at boot :-). The relevant SVN releases, see freedos.org source code in the orange navbar on top of the page, are in unstable 2035-dev / 2037: 1261 country bugfix 1023 very mixed patches including country handling see also: Lucho inthndlr / country.asm / config.c and intr.asm lseek... and Eduardo country.asm for the uppercase and collating tables related patch in stable: 1142 country bugfix ...and maybe others... :-) Eric -- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword ___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel
[Freedos-devel] Country information in FreeDOS
I want to ask whether is planned to fix the country infos through functions INT21h/AX=65xxh in 1.1 release. Now it doesn't properly work ant it is quite painful. The biggest problem are the unsupported lower-upper case converting tables. (f.e. INT21h/AX=6521h works badly) Even loading the COUNTRY.SYS (country=042,852,c:\freedos\bin\country.sys) doesn't help :-(-- This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword___ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel