Re: [Freedos-kernel] Announce: COUNTRY.SYS
Ciao, Eduardo, We strive for MS-DOS compatibility, and MS-DOS, PC-DOS, PTS-DOS, OS/2, Windows 9x and Windows NT all use the same format that is so well described in the RBIL tables 2619-2622. So I chose that. IMHO, the COUNTRY.SYS format does not affect compatibility, as the information is accessed through DOS interrupts. But not everybody installs FreeDOS from the installer and uses all its external commands / files. I've always strived to make the kernel a drop-in replacement of the MS-DOS kernel (apart from Windows support). So, it now works with HIMEM.SYS, SMARTDRV.EXE *and* COUNTRY.SYS of MS-DOS! ;-) It doesn't yet work with the menu stuff of MS-DOS, but who knows, perhaps this will be changed... Actually, one of the reasons I chose that format is that I needed to test my COUNTRY= code with a COUNTRY.SYS file that is *really* correct, and what more correct than the Windows 98 COUNTRY.SYS? Only *after* ensuring that the code works right, I composed our COUNTRY.ASM and fixed its bugs to make it compatible with the *already* correct code. Could I do it otherwise? If we had an already existing COUNTRY.SYS - yes, but debugging *both* code *and* data is far beyond my abilities... ;-) Besides, the RBIL describes the COUNTRY.SYS format of MS-DOS/PC-DOS/PTS-DOS/OS2/Win9x/WinNT rather well, and we always try to follow the RBIL in our kernel work (which is even written in our docs). DR-DOS, for instance, uses a different one. DR-DOS has never been 100% MS-DOS compatible, which is one of our goals, albeit we'll never reach it, of course, but... the only true goal is the unreachable one ;-) I think that FreeDOS is already much more MS-DOS compatible than DR-DOS. (This is not to say that DR-DOS is bad, no! ;-) I won't hide that I prefer Steffen's format, as I've already implemented NLSFUNC using that but, if we finally go for the MS format, we should consider to expand it to include a Yes/No table (for int 21.65.23), which is a nice addition in Steffen's version. It is pretty straightforward, but it will invalidate the use of COUNTRY.SYS files from those OSes in FreeDOS (apart from legal and/or ethical issues). As far as I can understand (and I don't understand it very much), Steffen's format is similar to that of DR-DOS, which isn't well described in the RBIL. I think that the Yes/No character can be used only in *fully* translated, complete versions of FreeDOS. Besides, there are other responses like Abort, Retry, Ignore, Fail? that are not covered there. Therefore, such characters are much better translated along with the strings. So, until we have *fully* translated version of FreeDOS (like German or Italian MS-DOS, for example), those configurable Yes/No characters are unusable. As for ethical and/or legal obstacles, I don't see any. The Russians of PhysTechSoft use it in their PTS-DOS and nobody has sued them yet. Do you think that if Microsoft had even the slightest chance to win, they wouldn't sue them? Remember how Adobe Systems (the little Microsoft ;-) sued Dmitry Sklyarov of ElComSoft, Russia. At the time of the announce of PTS-DOS, MS-DOS wasn't yet killed by Microsoft, so it was a direct competitor. FreeDOS can't be a competitor of something that Microsoft killed by their own hands. FreeDOS *cannot* be compared with Linux in this context, as Linux *is* a direct competitor of the Windows NT family, which Microsoft won't kill soon ;-) A presto, Lucio --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Hello, All that MS does - enclose _public_ information into own file format. What is permitted for Zeus, is not permitted for mortals! :-( That's exactly what I meant when I wrote that Microsoft are the biggest thefts. Even their first Basic interpreter was from public domain sources. Not speaking about QDOS - MS-DOS, Lattice C - Microsoft C, VMS - NT, and so on. Thus, I don't think that this is beyond fair use to reuse this public information. Violation (probably!) if we use original MS files and/or their format, but layouts are not property of MS. Their COUNTRY.SYS format is safe to use, because PTS-DOS and OS/2 also use it and nobody has sued PhysTechSoft or IBM yet ;-) I've never understood copyright well (and even think that copyright is anti-natural!) but I don't think that a file format or data structures can be copyrighted at all. Regards, Lucho --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Lucho wrote: We strive for MS-DOS compatibility, and MS-DOS, PC-DOS, PTS-DOS, OS/2, Windows 9x and Windows NT all use the same format that is so well described in the RBIL tables 2619-2622. So I chose that. IMHO, the COUNTRY.SYS format does not affect compatibility, as the information is accessed through DOS interrupts. DR-DOS, for instance, uses a different one. I won't hide that I prefer Steffen's format, as I've already implemented NLSFUNC using that but, if we finally go for the MS format, we should consider to expand it to include a Yes/No table (for int 21.65.23), which is a nice addition in Steffen's version. It is pretty straightforward, but it will invalidate the use of COUNTRY.SYS files from those OSes in FreeDOS (apart from legal and/or ethical issues). Regards, Eduardo. --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
[Freedos-kernel] Announce: COUNTRY.SYS
Hello, At http://linux.tu-varna.acad.bg/~lig/freedos/kernel/ are a kernel patch collection (CVSPATCH.TXT) and binaries (KERNEL.SYS and COUNTRY.SYS) that add COUNTRY.SYS file support to the kernel and move the hard-coded country data from the kernel where it belongs - to a separate COUNTRY.SYS file, as in all other DOSes. The COUNTRY.SYS file format is the same used in MS-DOS, PC-DOS, PTS-DOS, OS/2, Windows 9x and Windows NT, and is described in the Ralf Brown Interrupts List (tables 2619-2622). The so modified kernel has also been successfully tested with the CONFIG.SYS file of Windows 98 (MS-DOS 7.10). Some more countries were added. Note that COUNTRY.SYS is still under 2 KB versus 30 KB for MS-DOS 7.10 because it consists of only CTYINFO data and doesn't have any uppercase and filename tables. Of course, if (when) such information is added to COUNTRY.SYS later, the kernel code to read it can easily be added too. The aforementioned patch also moves the copyright message from the kernel to the AUTOEXEC.BAT file where it can be enjoyed for as long as needed, instead of appearing for only 3 seconds during bootstrap. (This may not be accepted but I'll never understand why. You know I'm a copyright illiterate or at least ignorant.) The patch also modifies EXEFLAT.C so it can process kernels without any relocations and make the kernel independent from the loading segment in this case. (Of course the kernel still needs to be loaded at segment 60h. Those 3 bytes the patch adds to the stub allow for future kernels, independent from the loading segment. I think 3 bytes aren't a high price to pay for that.) CVSPATCH.TXT contains other small optimisations too. Enjoy! Lucho --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Lucho, impressive progress. Though I don't use any COUNTRY/codepage/keyboard_layout things myself, this can be quite usefull. I can imagine Aitor being happy, for example. He does a lot with these things. Now only NLSFUNC is missing (in progress by Eduardo Casino)? btw, no source for your country.sys provided (or did I not look good enough?) Bernd --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Hello Eduardo, Lucho, Steffen, everybody, we should have some discussion to determine which COUNTRY.SYS format we should use in FreeDOS. 1'st let me state that I never used NLSFUNC, so I may be the wrong person. 2'nd, all I needed for FreeDOS was 24 hour time/european date, and I implemented it in the kernel.sys (rather then in some external COUNTRY.SYS), because it requires only a few bytes (for the current supported date,time, currency,...) and is hardly worth the requirement of an extra COUNTRY.SYS. this changes IMO, if uppercasing tables etc. are supported for many countries, but not sooner; and I think that moving the date/time functionality to *require* COUNTRY.SYS is a step in the wrong direction (even if it suits lucho in his attempts to get a few byte smaller kernel) In fact, I've had a working NLSFUNC for some weeks now. The only thing it needs for general availability is a kernel with functions 2f.1226 to 2f.1229. Actually, it works with the implementation of these functions that I posted to this list (I modified NLSFUNC to avoid running out of stack as Bart suggested) and it even works calling to the int21 equivalents (saving the caller stack and switching to a local one before calling int21). Congratulations. I still don't understand why this should be done from inside DOS; in real life you'll have an external utility NLSFUNC SET LANGUAGE GREEK or similar that can use any desired method, and doesn't have to rely on fancy kernel internal calls/IOCTLS/etc. I may be wrong with that, though. Another problem is that it does _not_ uses the MS COUNTRY.SYS format, but the one that Steffen Kaiser designed when he was implementing the NLS support for the kernel. The advantages are that it was designed with the kernel NLS structures in mind and that there are also utilities to convert to/from a text (source) format. IMO that's not a disadvantage. We can't use MS country.sys anyway, and there are hardly many third party COUNTRY.SYS's floating around we must be compatible with. I'd prefer a different country.sys format alltogether, with smaller size in mind. It doesn't has to be xxZIP'ed (due to relative large decoding code size), but you get get a significant amount of compression by some 'this toupper table is almost the same as the table before with the expection of characters 187-192 and 205-119, differences follow' not difficult to implement, and worth the effort IMO. just my 2 cents tom Regards, Eduardo. --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel -- Best regards, Tom Ehlert mailto:[EMAIL PROTECTED] +49-241-79886 --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Hi, tom ehlert escribió: Hello Eduardo, Lucho, Steffen, everybody, we should have some discussion to determine which COUNTRY.SYS format we should use in FreeDOS. 1'st let me state that I never used NLSFUNC, so I may be the wrong person. Well, neither do I because as I never change codepages once DOS is loaded, I use the formally incorrect but practical MODE CON CP SEL= instead of NLSFUNC/CHCP. However, I appreciate that 1) NLSFUNC was marked (with no opposition so far) as pre-1.0 2) Eduardo's attempt has shown some other small lacks in kernel that are being addressed (by him and by other person), so that's good :) 2'nd, all I needed for FreeDOS was 24 hour time/european date, and I implemented it in the kernel.sys (rather then in some external COUNTRY.SYS), because it requires only a few bytes (for the current supported date,time, currency,...) and is hardly worth the requirement of an extra COUNTRY.SYS. this changes IMO, if uppercasing tables etc. are supported for many countries, but not sooner; and I think that moving the date/time functionality to *require* COUNTRY.SYS is a step in the wrong direction (even if it suits lucho in his attempts to get a few byte smaller kernel) I agree, but perhaps Eduardo means that he is taking steps in order to use the WHOLE information (including the collating/capital/lowercase tables), but with a COUNTRY.SYS format which is not the same as MS but the same than Steffen uses with LOAD_UNC and such. My personal opinion is that, up to copyright issues, I guess that it is better to use the MS format, because otherwise we don't have the collating/uppercase/lowercase tables except for American English and for German, but not for other formats. In fact, I've had a working NLSFUNC for some weeks now. The only thing it needs for general availability is a kernel with functions 2f.1226 to 2f.1229. Actually, it works with the implementation of these functions that I posted to this list (I modified NLSFUNC to avoid running out of stack as Bart suggested) and it even works calling to the int21 equivalents (saving the caller stack and switching to a local one before calling int21). Congratulations. I still don't understand why this should be done from inside DOS; MS compatibility: this is the way MS-NLSFUNC works (see RBIL's: Int 2F/AX=1226h, http://www.ctyme.com/intr/rb-4406.htm). Another problem is that it does _not_ uses the MS COUNTRY.SYS format, but the one that Steffen Kaiser designed when he was implementing the NLS support for the kernel. The advantages are that it was designed with the kernel NLS structures in mind and that there are also utilities to convert to/from a text (source) format. IMO that's not a disadvantage. We can't use MS country.sys anyway, and there are hardly many third party COUNTRY.SYS's floating around we must be compatible with. I'd prefer a different country.sys format alltogether, with smaller size in mind. It doesn't has to be xxZIP'ed (due to relative large decoding code size), but you get get a significant amount of compression by some 'this toupper table is almost the same as the table before with the expection of characters 187-192 and 205-119, differences follow' not difficult to implement, and worth the effort IMO. Yes, but as I mentioned, the problem is that, how do we get collating tables, etc for other countries than US and Germany? We could rely on user's efforts to create those tables, but this can be quite laborious (provided that, for copyright issues, the COUNTRY.SYS of the competitors are distributable). Aitor --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Hello Aitor, Yes, but as I mentioned, the problem is that, how do we get collating tables, etc for other countries than US and Germany? We could rely on user's efforts to create those tables, but this can be quite laborious (provided that, for copyright issues, the COUNTRY.SYS of the competitors are distributable). well - we get it the same way that the MS COUNTRY information was collected - BY MANUAL EFFORT BY HOWEVER DOES IT - paid or not. using MS COUNTRY.SYS isn't an option other COUNTRY.SYS's simply don't exist. and IMO the way that all your 100+ keyboard tables were obtained is - even if it *might* not be strictly illegal - certainly far beyond any means of 'fair use' simply sort of 'disassembling' some work that MS has done, and pretending this is our work, is hardly anything I appreciate. so I would really dislike this continued in country.sys. IMO, if it's important to have south guinean keybors support/collating tables, some south guinean local should provide these tables. and if nobody provides these tables - fine. but ripping of MS(DOS/Windows/WinNT) these tables is really something I dislike. BTW: all MKEYB tables were created manually (AFAIK; at least if I did them) it would be easy to write a compiler/interpreter to make (X)keyb tables usable in MKEYB as well; I simply don't like the tables. tom --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
On Sun, 22 Aug 2004, Aitor Santamaría Merino wrote: Yes, but as I mentioned, the problem is that, how do we get collating tables, etc for other countries than US and Germany? We could rely on user's efforts to create those tables, but this can be quite laborious Probably best to have a look at the locale tables in Linux. If one can make an automatic conversion from there it would go a long way (probably not 100% MS compatible but is that desirable for collation algorithms? -- they've probably changed themselves too). On Linux we have in /usr/share/i18n/locales a file called iso14651_1 which has the Unicode collating table (you can search the internet for iso 14651). That on its own would go a long way (good enough for English, German, Dutch, Italian -- Spanish has some exceptions with ch and ll, Lithuanian has y between i and k). Then some individual country/language combinations do a few modifications on that. e.g. a fragment of bg_BG: LC_COLLATE % We have made the following changes to the basic collation scheme in % the file iso14651_t1: % 1. The Cyrillic script is first in the order. % 2. The non-Bulgarian Cyrillic letters are sorted according to % their transliteration with Bulgarian Cyrillic letters. copy iso14651_t1 reorder-after 9 CYR-A CYR-BE CYR-VE CYR-GHE [...] It's still a lot of work but it's not that the information itself isn't there. Bart --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
Re: [Freedos-kernel] Announce: COUNTRY.SYS
Hi Bart, Thanks for pointing out! Actually I ignore if Linux works with some notion similar to codepges at all (I once tried to port a single ASCII chart drawing program from DOS to Linux and found out lots of blanks #219 in the table. If Unicode is the only collating table present, as you say this would have the quite a lot of work to do to create the suitable Unicode collating table, then remapping according to the particular codepage. Good that at least the info is there. Anyway, I just want to make it clear that I am not for having MS compatible COUNTRY.SYS files per se, and I don't mind at all if there is a non-compatible format for COUNTRY.SYS (just all the same that MS-MODE won't work with the final FD-DISPLAY.SYS), but I was just trying to find out the (legal) way to get the maximum data with minimum effort. Aitor Bart Oldeman escribió: On Sun, 22 Aug 2004, Aitor Santamaría Merino wrote: Yes, but as I mentioned, the problem is that, how do we get collating tables, etc for other countries than US and Germany? We could rely on user's efforts to create those tables, but this can be quite laborious Probably best to have a look at the locale tables in Linux. If one can make an automatic conversion from there it would go a long way (probably not 100% MS compatible but is that desirable for collation algorithms? -- they've probably changed themselves too). [...] --- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 ___ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel