FreeDOS v. MS-DOS compatibility

It's always worth reading the comments posted by Matthias Paul. Matthias has quite an extensive background with DOS, and has a close history with DR-DOS. So I immediately stopped to read this note from Matthias about compatibility with MS-DOS:

I have to agree and disagree. For me, compatibility comes just after robustness and flexibility and before code optimization issues. But still, if these features will get implemented in FreeDOS some find day, they should be implemented both ways IMHO. Implemententing it only in the MS-DOS style would at least "hurt" me. Why? Compatibility. [;-)]

It has been DR DOS 3.41 (maybe earlier, I havenīt re-checked it right now) which introduced [D]CONFIG.SYS ?"optional_text"directive=... queries eons before a similar thing was added to MS-DOS and PC DOS. It also has been DR DOS, this time 6.0, which introduced boot menus and SET directives two years before they showed up in MS-DOS 6.0 and PC DOS 6.1. DR DOS boot menus are still far more powerful by concept and implementation today (for some of the details have a look at the NWDOSTIP.TXT file in the MPDOSTIP.ZIP archive available on my web-site), although the MS way of doing is easier to set up, admitted...

It has always been Microsoft who deliberately tried to break compatibility with existing standards whereever possible, hence they introduced DOS=HIGH instead of HIDOS=ON, DEVICEHIGH instead of the long established HIDEVICE, INSTALLHIGH instead of HIINSTALL, LOADHIGH instead of HILOAD, and so on. (Beyond the scope of just configuration directives I could list probably several hundred details in the DR DOS vs. MS-DOS context following that same general rule.) Embrace, extend, and destroy.

Today (most of this since 1992, the remainder since 1997), DR DOS supports both ?directive= and directive?= and with the sole exception of MS-DOS style boot menus (which were planned as an additional layer on top of the DR DOS menu system, but unfortunately were not implemented in 7.03) also all the other play-on-words of configuration directives by Microsoft.

Personally I find the ?directive syntax and HIxxx directives much easier to edit and maintain in configuration files than the reverse and if you try to save space in the kernel by merging strings, you can fold directives like HIDEVICE,0 over DEVICE,0 but not DEVICEHIGH,0 over DEVICE,0. Given the large amount of such directives this can really save some memory. There actually was a reason why this has been implemented this way originally. (I also think itīs easier to remember, but this might only be my personal favour.)

Nowadays, I suggest - just like Arkady - to support it both ways to maximize compatibility, which should not cause too much bloating in FreeDOS.