RE: Compilers needed for FreeDOS ? Lets talk about compatibility instea

"Christopher M. Gibbs" <[email protected]> Wed, 6 Nov 2002 09:10:43 -0500
Newsgroups gmane.os.freedos.devel
Message-ID <[email protected]>
I have had problems with subst, and went to using swsubst (which I believe is included with FreeDOS).  It has worked just fine...

-----Original Message-----
From: Eric Auer [mailto:[email protected]]
Sent: Tuesday, November 05, 2002 7:04 PM
To: [email protected]
Cc: [email protected]
Subject: [fd-dev] Compilers needed for FreeDOS ? Lets talk about
compatibility instead...




Hi, you have asked what is needed to "compile FreeDOS". Well, this
greatly depends upon WHAT part of FreeDOS you want to compile. Many
of the C programs can be compiled using Turbo C (free download after
becoming a member of the Borland community - for free - at borland.com)
or Watcom C (kind of bigger, but also free, I think. Check the link page
on www.freedos.org). Sometimes, for example for the kernel (the program
which runs as very first part of FreeDOS after boot up, first the boot
sector and then the kernel.sys file itself), you need an assembler, like
the free NASM (also linked from FreeDOS.org, I think).

A few programs are written in Pascal or even "stranger" languages (for
example one of the keyboard drivers). Some are using non-free assemblers
for their assembly language part, so if you want to modify them, you need
to have that assembler (for example some memory drivers).

However, in almost all cases, you can simply use the BINARY versions to
run and just READ the sources for your curiosity :-). Only if you want
to fine-tune or improve a package you actually need to compile it yourself.
Some packages could be compiled with a buggy compiler or in a way that
makes them run only on a 286 or 386 or above, but I think those cases are
VERY rare (actually, I would like feedback on this - please do not mail
about packages that are MEANT to run only on at least this-or-that CPU).

Finally, I would like to remind all of you that it is always interesting
to hear about some software that does not yet run with FreeDOS, especially
if you can figure out WHY this is the case. If you are good in C, you could
for example analyze why the CSAP directory sorter from www.simtel.net does
not like us ;-)). Please try to avoid reporting known problems, here a list
of some:

- FreeDOS cannot use long file names in some native way, but some DOS programs
  (some of them part of FreeDOS) can. However, you need a driver to be loaded,
  and those drivers do not usually support long filenames on network drives.
- FreeDOS cannot provide EMS and protected mode at the same time yet: Try to
  use XMS instead, or use the emm386 of another DOS, for example the free-for-
  noncommercial-use DR-DOS. For a related reason, you can only have UMB if you
  either have a chipset supported by UMBPCI and its cousins or do not need
  protected mode.
- For some unknown reason, FreeDOS or at least its memory drivers are not
  compatible with MS SMARTDRV. Use the cache of some other DOS or the less
  efficient LBAcache of FreeDOS (working on that ;-)).
- Turbo C++ 3 seems to run unstable (protected mode issue?). However, it is
  listed as being compatible.
- Descent only runs with DR emm386 in the exotic DPMI=ON mode, seems to be
  an incompatibility of the DPMI that comes with Descent itself with FreeDOS.
- The 3d game that came bundled with my 3d graphics card crashes when I switch
  to 3d mode. No idea at all why. It is even possible that my card is broken,
  I have not used 3d mode at all for a long time (card is Virge DX 4 MB PCI).
- Some older programs simply run too fast on newer PCs, or even crash just
  because your PC is too fast (e.g. more than 180 MHz). This is not a bug of
  FreeDOS, the only thing you can do is fix the timing of the old programs.
- MS Windows 3.x does not run with FreeDOS. It almost runs, but always crashes
  way too soon. I am not sure if anybody currently investigates that.
- subst/join do not like me, do not ask me why. Also, it is a known lacking
  feature that DIR cannot sort. However, you can use DRL or LS instead of DIR.
- The BASIC system has no big similarity to GWBasic or QBasic of MS, so do not
  be surprised if your programs do not run out of the box or even not at all.
- SCANDISK and DEFRAG currently perform poor to unusable, but they aare worked
  on currently, so there is hope :-).
- Printing graphics screens and loading other fonts is not properly supported
  yet. There are some tools that partially solve this, others are worked on.
- You can find other known bugs via the BugTrack link on the FreeDOS homepage.

This list may seem long, but there is definitely a longer list of programs
that do not only work with FreeDOS but were even made FOR it. Most common
DOS programs run fine for me, which means:
find /dos/ -iname '*.sys' -o -iname '*.sys'|sed -e 's_^.*/\([^/]*\)$_\1_g'|sort|uniq -c|sort -n|wc -l
     54
different system drivers and kernel versions (well, have to subdract quite
a few that I never use anyway, for example shareware ones, NJRAMD etc.),
146 batch files, 577+743 com+exe programs,
so in total some 1500 applications. Of course, most of the time I only use
at most 100 of them. However, I do not expect a big percentage of problematic
cases if I would try them all one after another. I think I have developed a
certain feeling what FreeDOS incompatible software looks like, so I am not
often hit by surprisxing incompatibilities.

I hope you did not get too annoyed by me bending the topic from compiling
to compatibility.

Eric

PS: As FreeDOS is quite DOSsy, you at least do not need to (re-) compile
programs for FreeDOS for compatibility reasons. FreeDOS also - one could
say - only supports ONE hardware platform, which means one reason less to
recompile. No big choice of exotic "global" drivers -> yet another reason
less. No libraries either, usually. All the reasons which make you prefer
to "optimize by compilation" on Unix systems in some cases are not that
important for DOS. Well, I am a bad example. I have > 95% binary packages
on Linux as well, and only compile in cases where I need very recent versions
or especially adapted versions for my system.

----------
list options/archives/etc.: http://www.topica.com/lists/fd-dev
unsubscribe: send blank email to: [email protected]