Subversion Repositories SvarDOS

Rev

Rev 522 | Rev 1025 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 522 Rev 974
1
 
1
 
2
                         === SVARCOM vs FREECOM ===
2
                         === SVARCOM vs FREECOM ===
3
 
3
 
4
 
4
 
5
SvarCOM is a DOS command interpreter (shell), similar to COMMAND.COM in MS-DOS
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?
6
and FreeCOM in FreeDOS. But why not using FreeCOM in the first place?
7
 
7
 
8
The FreeCOM project is an impressive piece of software, but there are a few
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
9
things that I do not like about it. SvarCOM is my attempt at addressing these
10
issues through a completely new implementation. SvarCOM is composed of
10
issues through a completely new implementation. SvarCOM is composed of
11
entirely original code and does not borrow any code from MS-DOS or FreeCOM.
11
entirely original code and does not borrow any code from MS-DOS or FreeCOM.
12
 
12
 
13
 
13
 
14
=== MEMORY FOOTPRINT =========================================================
14
=== MEMORY FOOTPRINT =========================================================
15
 
15
 
16
FreeCOM is not suitable for low-memory machines. It takes about 55K of
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
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
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
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.
20
is designed with 21'st century machines in mind and not IBM PC compatibles.
21
 
21
 
22
SvarCOM does not rely on XMS and performs runtime swapping that works on any
22
SvarCOM does not rely on XMS and performs runtime swapping that works on any
23
IBM PC compatible machine.
23
IBM PC compatible machine. It's resident size is about 2K.
24
 
24
 
25
 
25
 
26
=== NLS RESSOURCES ===========================================================
26
=== NLS RESSOURCES ===========================================================
27
 
27
 
28
FreeCOM requires custom NLS ressources. While the vast majority of FreeDOS
28
FreeCOM requires custom NLS ressources. While the vast majority of FreeDOS
29
programs use a single "standard" (CATS), FreeCOM uses a different approach
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
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
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
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
33
changes made to the LANG environment variable). It also makes the translation
34
more difficult.
34
more difficult.
35
 
35
 
36
SvarCOM uses CATS-style translations and supports dynamic language changes
36
SvarCOM uses CATS-style translations and supports dynamic language changes
37
through the %LANG% environment variable.
37
through the %LANG% environment variable.
38
 
38
 
39
 
39
 
40
=== CODE COMPLEXITY ==========================================================
40
=== CODE COMPLEXITY ==========================================================
41
 
41
 
42
FreeCOM is a complex beast: it aims for compatibility with multiple compilers
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
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
44
changes require careful testing on all supported compilers and all possible
45
build variants.
45
build variants.
46
 
46
 
47
SvarCOM, on the other hand, is meant to be simple and universal. It is
47
SvarCOM, on the other hand, is meant to be simple and universal. It is
48
compiled with OpenWatcom only, which makes a ton of IFDEF's go away. It also
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
49
does not integrate extra features that can be reasonably implemented through
50
external tools (typically: DOSKEY). It strives to reimplement the baseline
50
external tools (typically: DOSKEY). It strives to reimplement the baseline
51
functionality of MS-DOS 5/6.
51
functionality of MS-DOS 5/6.
52
 
52
 
53
 
53
 
54
=== NON-FREE LICENSE =========================================================
54
=== NON-FREE LICENSE =========================================================
55
 
55
 
56
FreeCOM code is released under the terms of a license that restrains the
56
FreeCOM code is released under the terms of a license that restrains the
57
freedom of its users due to its virality (GPL).
57
freedom of its users due to its virality (GPL).
58
 
58
 
59
SvarCOM is released under the terms of a liberal and permissive (MIT) license
59
SvarCOM is released under the terms of a liberal and permissive (MIT) license
60
that does not impose limitations on how users may or may not use the software,
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.
61
it only asks for credits to be provided where credit is due.
62
 
62
 
63
I am aware that this section, and its slightly provocating title, may trigger
63
I am aware that this section, and its slightly provocating title, may trigger
64
reactions from GPL enthusiasts. Let me explain with more words. I enjoy
64
reactions from GPL enthusiasts. Let me explain with more words. I enjoy
65
creating software and I publish it for others to use for free. Should someone
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
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
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
68
still open and free. Theirs is not, but its their work, so I find it fair that
69
they have the freedom to decide how to distribute it. I certainly do not want
69
they have the freedom to decide how to distribute it. I certainly do not want
70
to impose my views on others.
70
to impose my views on others.
71
 
71
 
72
 
72
 
73
====================================================================== EOF ===
73
====================================================================== EOF ===
74
 
74