Subversion Repositories SvarDOS

Rev

Rev 1025 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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 ===