395 |
mateuszvis |
1 |
|
446 |
mateuszvis |
2 |
=== SVARCOM vs FREECOM ===
|
395 |
mateuszvis |
3 |
|
|
|
4 |
|
473 |
mateuszvis |
5 |
SvarCOM is a DOS command interpreter (shell), similar to COMMAND.COM in MS-DOS
|
|
|
6 |
and FreeCOM in FreeDOS. But why not using FreeCOM in the first place?
|
|
|
7 |
|
395 |
mateuszvis |
8 |
The FreeCOM project is an impressive piece of software, but there are a few
|
|
|
9 |
things that I do not like about it. SvarCOM is my attempt at addressing these
|
522 |
mateuszvis |
10 |
issues through a completely new implementation. SvarCOM is composed of
|
473 |
mateuszvis |
11 |
entirely original code and does not borrow any code from MS-DOS or FreeCOM.
|
395 |
mateuszvis |
12 |
|
|
|
13 |
|
446 |
mateuszvis |
14 |
=== MEMORY FOOTPRINT =========================================================
|
395 |
mateuszvis |
15 |
|
|
|
16 |
FreeCOM is not suitable for low-memory machines. It takes about 55K of
|
|
|
17 |
conventional memory when XMS is unavailable. XMS being a 386+ thing, FreeCOM
|
|
|
18 |
is a poor fit for pre-386 machines. There is the KSSF hack, but it is a kludge
|
|
|
19 |
with many limitations. As pointed out by one of the FreeCOM authors, FreeCOM
|
|
|
20 |
is designed with 21'st century machines in mind and not IBM PC compatibles.
|
|
|
21 |
|
473 |
mateuszvis |
22 |
SvarCOM does not rely on XMS and performs runtime swapping that works on any
|
1025 |
mateusz.vi |
23 |
IBM PC compatible machine. Its resident size is about 2K.
|
395 |
mateuszvis |
24 |
|
|
|
25 |
|
446 |
mateuszvis |
26 |
=== NLS RESSOURCES ===========================================================
|
395 |
mateuszvis |
27 |
|
1799 |
mateusz.vi |
28 |
FreeCOM requires custom NLS resources. While the vast majority of FreeDOS
|
440 |
mateuszvis |
29 |
programs use a single "standard" (CATS), FreeCOM uses a different approach
|
|
|
30 |
with NLS strings built into the binary. This makes it necessary to distribute
|
|
|
31 |
as many binary blobs as there are supported languages. Another consequence is
|
|
|
32 |
that FreeCOM is unable to switch its language dynamically (ie. following
|
|
|
33 |
changes made to the LANG environment variable). It also makes the translation
|
1799 |
mateusz.vi |
34 |
process more difficult.
|
395 |
mateuszvis |
35 |
|
1799 |
mateusz.vi |
36 |
SvarCOM uses CATS-style translations (through SvarLANG) and supports dynamic
|
|
|
37 |
language changes through the %LANG% environment variable.
|
395 |
mateuszvis |
38 |
|
|
|
39 |
|
446 |
mateuszvis |
40 |
=== CODE COMPLEXITY ==========================================================
|
395 |
mateuszvis |
41 |
|
|
|
42 |
FreeCOM is a complex beast: it aims for compatibility with multiple compilers
|
|
|
43 |
and supports many embedded features. This makes the code uneasy to follow and
|
|
|
44 |
changes require careful testing on all supported compilers and all possible
|
|
|
45 |
build variants.
|
|
|
46 |
|
473 |
mateuszvis |
47 |
SvarCOM, on the other hand, is meant to be simple and universal. It is
|
440 |
mateuszvis |
48 |
compiled with OpenWatcom only, which makes a ton of IFDEF's go away. It also
|
|
|
49 |
does not integrate extra features that can be reasonably implemented through
|
|
|
50 |
external tools (typically: DOSKEY). It strives to reimplement the baseline
|
|
|
51 |
functionality of MS-DOS 5/6.
|
395 |
mateuszvis |
52 |
|
|
|
53 |
|
446 |
mateuszvis |
54 |
=== NON-FREE LICENSE =========================================================
|
395 |
mateuszvis |
55 |
|
|
|
56 |
FreeCOM code is released under the terms of a license that restrains the
|
|
|
57 |
freedom of its users due to its virality (GPL).
|
|
|
58 |
|
|
|
59 |
SvarCOM is released under the terms of a liberal and permissive (MIT) license
|
504 |
mateuszvis |
60 |
that does not impose limitations on how users may or may not use the software,
|
|
|
61 |
it only asks for credits to be provided where credit is due.
|
395 |
mateuszvis |
62 |
|
504 |
mateuszvis |
63 |
I am aware that this section, and its slightly provocating title, may trigger
|
522 |
mateuszvis |
64 |
reactions from GPL enthusiasts. Let me explain with more words. I enjoy
|
504 |
mateuszvis |
65 |
creating software and I publish it for others to use for free. Should someone
|
|
|
66 |
wish to extend SvarCOM with an extra feature and decide not to publish the
|
|
|
67 |
source code along with the modified version, that's fine by me. My code is
|
|
|
68 |
still open and free. Theirs is not, but its their work, so I find it fair that
|
522 |
mateuszvis |
69 |
they have the freedom to decide how to distribute it. I certainly do not want
|
504 |
mateuszvis |
70 |
to impose my views on others.
|
395 |
mateuszvis |
71 |
|
504 |
mateuszvis |
72 |
|
446 |
mateuszvis |
73 |
====================================================================== EOF ===
|