Am 09.06.2010, 21:04 Uhr, schrieb Pat Villani <p...@freedos.org>:

> This is something we are definitely interested in.  Contact me direct to
> discuss it.
>
> Pat Villani
> FreeDOS project Coordinator

Hello Pat,

Thanks for your very quick reply and for your interest in the projects,
I wrote about. My idea with LCC was, to have a small and also fast
C-Compiler for DOS, which conforms to the ANSI-C standard. LCC is a very
good candidate for this. My intention was, to circumvent the usage of the
GAS assembler. Personally I'm quite used to the ATT assembler syntax, but
most other people - especially those who want to learn C-programming - are
not. I took the UNIX sources from Hanson's website and reworked the code
generator quite a bit. Now it produces pretty assembly source, which is
much more readable than the original. All the other parts from DJGPP are
well known. I also tuned NASM a little bit for this task, because I only
wanted two output formats: DOS binaries (flat com files) and COFF bianries
for the LD linker. All the other formats were left out. So this assembler
version is quite small and well tuned to be used with LCC. The binary
output is useful for smaller standalone projects in assembler.

Because LCC does not know anything about "pragma's" and stuff like that,
I had to work on the GCC header files too. Now, mostly everything compiles
with LCC which GCC also accepts. The only difference is, that LCC is very
strict about the ANSI-C standard. People who are used to program for GCC in
a more or less relaxed manner have to be more careful, if they want the  
code
to be compiled with LCC. But I think, this fact is very helpful for  
beginners,
because they learn better, how to correctly use the C standard.

The VESA library was directly ported from my own GCC graphics library. I  
only
had to change some small things in the initialization of the VESA mode,  
because
I had to circumvent the usage of GCC's __attribute__ pragma. After this,  
the
complete library was compiled by LCC with no problems. I think, this  
library
could also be a good source for people who are new to this subject, because
the library is a strict 2D-library but nevertheless it has some interesting
features like very fast polynomial and also rational bezier curves. If  
users
look at the code, they can add their own routines and play around with  
graphic
programming. The library also has mouse support and it uses fonts, cursors  
and
patterns, which I ported to DOS from original Macintosh resources.

-----------------------------------

The EiC interpreter was another project, which layed around my table for  
quite a
long time. In the beginning, I was not able to compile it successfully  
under
DOS. It had many files with long file names and also an extremely strange  
set of
interdependent makefiles and it was obviously never written by Ed. Breen  
to be
compiled for DOS. Then I took up the sources again and carefully took out  
all
UNIX and POSIX things. I wanted to get completely rid of any dependency on
"unistd.h" or "termios.h". This was not as easy as I thought, but at the  
end I
managed it. Because EiC was intended as an "interactive" C-Interpreter,  
Ed. had
implemented many functions, which were only useful for this interactive  
mode.
What I wanted, was a simple but complete, command driven C-Interpreter for  
DOS.
It should work as easy as any Basic-Interpreter.

The first working version of EiC was simply text based. After testing it,  
I was
convinced that it might be useful for many more users. I'm not quite sure,  
why
Ed. Breen vansished completely from the internet community, but after  
trying to
contact him - contacting other developers - and searching the WEB, I gave  
up.
I wanted to get his OK for my DOS adaption of his interpreter. Now, the  
sources
are freely available on Souceforge, so I think there is no problem with the
licence. Ed's sources had a so called Artistic License, which was similar  
to
the GPL from GNU. My version therefore has the standard GNU GPL licence.

The graphic library is basicly the same as the one, which comes with LCC.
So you can now interpret or compile the same sources with either EiC or  
LCC.
I also ported the EiC interpreter to Mac-OS7 up to Mac-OS9 (68k and  
PowerPC)
and to Atari and Magic-C. Under MacOS, I use MPW as a very convenient  
shell for
EiC. I can compile C sources with Apple's C-compiler (or with GCC) and also
interpret them with EiC.

I never understood, why this interpreter was only less known by many  
people.
It is blasting fast - even in graphics mode you can see differences in the
performance only if lengthy calculations or pixel based drawings have to be
done. Normally there is no delay, compared to compiled code. The  
documentation
is exceptional well done and very complete. So I decided to do it the same  
way
and write my own library documentation with TeX.

I think that EiC is the perfect learning tool for the C language, because  
you
can safely write and test your code, get meaningful messages in case of  
errors
and one can easily call it from an editor like q.exe or fed.exe.

----------------------------------------

I hope, this lengthy mail was informative to you.
Let me know about it.

Detlef Reimers


Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to