395 |
mateuszvis |
1 |
|
446 |
mateuszvis |
2 |
=== SVARCOM vs FREECOM ===
|
395 |
mateuszvis |
3 |
|
|
|
4 |
|
|
|
5 |
The FreeCOM project is an impressive piece of software, but there are a few
|
|
|
6 |
things that I do not like about it. SvarCOM is my attempt at addressing these
|
|
|
7 |
things.
|
|
|
8 |
|
|
|
9 |
|
446 |
mateuszvis |
10 |
=== MEMORY FOOTPRINT =========================================================
|
395 |
mateuszvis |
11 |
|
|
|
12 |
FreeCOM is not suitable for low-memory machines. It takes about 55K of
|
|
|
13 |
conventional memory when XMS is unavailable. XMS being a 386+ thing, FreeCOM
|
|
|
14 |
is a poor fit for pre-386 machines. There is the KSSF hack, but it is a kludge
|
|
|
15 |
with many limitations. As pointed out by one of the FreeCOM authors, FreeCOM
|
|
|
16 |
is designed with 21'st century machines in mind and not IBM PC compatibles.
|
|
|
17 |
|
|
|
18 |
SvarDOS does not rely on XMS and performs runtime swapping that works on any
|
|
|
19 |
IBM PC compatible machine.
|
|
|
20 |
|
|
|
21 |
|
446 |
mateuszvis |
22 |
=== NLS RESSOURCES ===========================================================
|
395 |
mateuszvis |
23 |
|
440 |
mateuszvis |
24 |
FreeCOM requires custom NLS ressources. While the vast majority of FreeDOS
|
|
|
25 |
programs use a single "standard" (CATS), FreeCOM uses a different approach
|
|
|
26 |
with NLS strings built into the binary. This makes it necessary to distribute
|
|
|
27 |
as many binary blobs as there are supported languages. Another consequence is
|
|
|
28 |
that FreeCOM is unable to switch its language dynamically (ie. following
|
|
|
29 |
changes made to the LANG environment variable). It also makes the translation
|
|
|
30 |
more difficult.
|
395 |
mateuszvis |
31 |
|
440 |
mateuszvis |
32 |
SvarDOS uses CATS-style translations in a precompiled form and loads the
|
|
|
33 |
strings that match the LANG variable.
|
395 |
mateuszvis |
34 |
|
|
|
35 |
|
446 |
mateuszvis |
36 |
=== CODE COMPLEXITY ==========================================================
|
395 |
mateuszvis |
37 |
|
|
|
38 |
FreeCOM is a complex beast: it aims for compatibility with multiple compilers
|
|
|
39 |
and supports many embedded features. This makes the code uneasy to follow and
|
|
|
40 |
changes require careful testing on all supported compilers and all possible
|
|
|
41 |
build variants.
|
|
|
42 |
|
440 |
mateuszvis |
43 |
SvarDOS, on the other hand, is meant to be simple and universal. It is
|
|
|
44 |
compiled with OpenWatcom only, which makes a ton of IFDEF's go away. It also
|
|
|
45 |
does not integrate extra features that can be reasonably implemented through
|
|
|
46 |
external tools (typically: DOSKEY). It strives to reimplement the baseline
|
|
|
47 |
functionality of MS-DOS 5/6.
|
395 |
mateuszvis |
48 |
|
|
|
49 |
|
446 |
mateuszvis |
50 |
=== NON-FREE LICENSE =========================================================
|
395 |
mateuszvis |
51 |
|
|
|
52 |
FreeCOM code is released under the terms of a license that restrains the
|
|
|
53 |
freedom of its users due to its virality (GPL).
|
|
|
54 |
|
|
|
55 |
SvarCOM is released under the terms of a liberal and permissive (MIT) license
|
|
|
56 |
that does not impose limitations on how users may or may not use it.
|
|
|
57 |
|
|
|
58 |
|
446 |
mateuszvis |
59 |
====================================================================== EOF ===
|