These are the sources for the Amiga port of LOGO.

I have only included those files which are specifically required to
construct the AMIGA version of this program.  Files required for
other versions (GIGI / TEK / ADM etc terminals) can be found in the
original Usenet posting of these sources.

I've pre-YACCed the original "logo.y" to form "y.tab.c", included here.

I have re-written "splithelp.c" to do a better job of splitting up the
"logoman" documentation file.

A new file, "amiga.c", contains most of the AMIGA-specific code.

I did this port using Manx 3.4a, and did use some functions (fexecl, etc.)
specific to this compiler/runtimes; you'll have to do some work if you're
using Lattice.

The "makefile" is for Manx 3.4a.

===========================================

Work that needs to be done.

1. Turtle graphics.  I'm somewhat embarrassed that I didn't do a better
   job.  C'mon, this is an AMIGA!  (speech, music, etc?)

2. Runnable from WorkBench.  I almost got this to work, but ran into
   problems with the "dos", "chdir", and "edit" commands playing together
   properly.  

3. I never REALLY tested the cbreak stuff to any great degree.

4. Math.  I briefly tried using MANX and AMIGA double math, but things
   started to break.  The original UNIX version trapped SIGFPE, but we
   don't here.  The program will catch /0 errors, but I fear other kinds
   of math errors may cause a blowup.

5. Keyboard signal trapping.  I've sort of simulated a UNIX "signal()"
   function to catch SIGQUIT and SIGINT (ctrl-C and ctrl-D).  We do a
   SetExcept() to catch these keys.  The original UNIX program used a
   longjmp() out of it's signal handler; we simply cannot do that on the
   AMIGA.  So, I set a flag and look in getchr() and yylex().  Maybe the
   flag needs to be checked in other places??

6. More testing.

=============================================

- scott evernden





