home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / d / doslogo.zip / LOGOROOT.ZIP / README < prev    next >
Text File  |  1990-06-06  |  10KB  |  173 lines

  1. Unix Logo Interpreter
  2.     Lincoln-Sudbury Regional High School
  3.  
  4. -----
  5. This is release 3.1 of Unix Logo.  Release 1 was the one on the first 1982
  6. Usenix tape.  Release 2 was sent by me (BH) directly to only a few sites.
  7. This release is much like release 2 in capabilities and syntax, but has
  8. been rearranged internally somewhat to make the process of installation
  9. on a new system a bit easier.  One major new feature in release 3 is the
  10. pause facility, which allows interactive debugging in the local context
  11. of an error.  More on this below.  Release 3.1 differs from 3 only in a
  12. few bug fixes and in what is left out under the SMALL option.
  13.  
  14. I would like to thank Don Martin and his students at the College of Marin,
  15. who have found huge numbers of obscure bugs in Logo and therefore helped
  16. make this release much more reliable than it would otherwise have been.
  17. -----
  18.  
  19. Logo is a programming language for education.  It is, I think, unquestionably
  20. the best introductory learning language now available, because it combines
  21. the ease of an interactive language (like BASIC, otherwise terrible) with
  22. the power and structure of a procedural language (like Pascal, not bad once
  23. you get past the details of editing and compiling and loading and semicolons
  24. and does var go before or after const).  If you aren't convinced, read the
  25. book "Mindstorms" by Seymour Papert.  It doesn't matter how old your
  26. students are.
  27.  
  28. This directory contains an interpreter for the Logo programming language.
  29. The interpreter is written in C and YACC, and runs under Unix(TM) version 7.
  30. It has been exported also to Vax 4BSD and to Idris on a PDP-11.  This program
  31. is based on a Logo interpreter originally written at the Boston Children's
  32. Museum; the present version is very much improved in its capabilities.  On
  33. the other hand, the original version ran in a 64Kb address space; this version
  34. requires split I/D on the PDP-11.  (It can be run on a smaller 11 by turning
  35. on the definition of SMALL in logo.h, but with hardly any recursion allowed.
  36. This configuration just barely works and is not recommended.  If someone with
  37. such a system wants to tune it up and send me the results, please do.  SMALL
  38. eliminates the pause feature (pause, continue, errpause, etc.) and the
  39. property list feature (pprop, gprop, etc.) as well as using short ints and
  40. floats instead of long ints and doubles.)
  41.  
  42. The file "logoman" in this directory is an nroff-format reference manual. It's
  43. very terse; you should really learn Logo from some other manual and use this
  44. one just to learn about idiosyncracies.  There are also two smaller
  45. documentation files, "applediff" for people accustomed to Apple
  46. Logo, and "olddiff" for people accustomed to the first LSRHS release.
  47.  
  48. Users of the first release of LSRHS Logo (the one on the Usenix 82.1 tape)
  49. will find the present version more robust and also more featureful.  Its
  50. syntax is much like that of Apple Logo, which should be helpful to people
  51. with Apples as well as real computers.  Line numbers have been flushed,
  52. except for use with the go command.  The kludgy re-entrant use of the YACC
  53. parser has been eliminated.
  54.  
  55. The enclosed makefile should manage to compile this Logo with no errors.
  56. You will have to make some modifications for local conditions, most notably
  57. in the area of turtle graphics.  Most installation dependencies have been
  58. collected at the beginning of the file logo.h which is included in all
  59. compilations.
  60.  
  61. TURTLE GRAPHICS.  You must #define symbols in logo.h for the kind(s) of
  62. display hardware you support.  Also, if you have a graphics terminal which
  63. is not one of the ones already supported in this release, you'll have to
  64. add some code to turtle.c to support it.  The enclosed turtle.c
  65. knows about six kinds of graphics hardware:
  66.     1) Terrapin floor turtles, connected via DR11-K interfaces.
  67.     2) Atari 800 personal computers, running a special terminal program.
  68.     3) DEC GIGI graphics terminals.
  69.     4) Retrographics boards (known to work with ADM-5 terminals,
  70.         maybe also for other Retrographics products).
  71.     5) Tektronix 4014 storage tube displays (with severe restrictions
  72.         because of their inability to erase selectively).
  73.     6) Sun Microsystems workstations.
  74. The files ./*.i contain terminal-specific code which is #included in the
  75. compilation of turtle.c if the corresponding terminal is #defined in logo.h.
  76. The code for floor turtles is done very differently and is not separated into
  77. a .i file because, alas, it's not so modular.  If you have neither graphics
  78. terminals nor floor turtles, you should turn on the NOTURTLE definition in
  79. logo.h to eliminate the turtle primitives.
  80.  
  81. DEFAULT EDITOR.  The "edit" command in Logo does not use an editor built
  82. into Logo itself.  Instead, it forks and runs your favorite editor in a
  83. new process.  If you have an EDITOR variable in your environment, it uses
  84. that editor (it tries with /bin, /usr/bin, and nothing prepended).  If not,
  85. it uses the editor specified in the EDT definition in logo.h.  This is
  86. "emacs" in the version as distributed.
  87.  
  88. INPUT WAITING TEST.  The "keyp" operation depends on a system call to
  89. check for characters waiting to be read from the keyboard.  If you are
  90. running a Berkeley-derived Unix, this will work correctly.  If not, but
  91. you have your own such system call, edit procedure keyp() in logoaux.c
  92. to use your own version.
  93.  
  94. FILENAME FORMAT.  Each Logo procedure is stored in a file called <name>.lg
  95. in the current working directory.  Under standard Unix, this allows names
  96. of procedures to be up to eleven letters long.  VMS filenames can only be
  97. nine letters.  The parameter NAMELEN in logo.h should be adjusted.  (Note:
  98. depending on when you got your version of Eunice, it may allow real Unix
  99. filenames, in which case you needn't worry about this.)
  100.  
  101. THE PAUSE FEATURE.  New in this release is the ability to pause on an error
  102. inside a procedure, so you can examine the context interactively.  The
  103. pause feature distinguishes SIGINT and SIGQUIT, which were treated identically
  104. in earlier releases.  In the normal distribution, SIGQUIT returns to toplevel,
  105. whereas SIGINT causes a pause.  The problem is with Eunice, which doesn't
  106. provide SIGQUIT because VMS doesn't have enough interrupt characters.
  107. Therefore, the standard distribution allows pausing but not quitting to
  108. toplevel, although you can say "toplevel" while paused.  If you'd rather
  109. have quitting be the default, as in previous releases, interchange the
  110. definitions of PAUSESIG and OTHERSIG in logo.h; there are also commands
  111. to allow the user to make this switch dynamically.
  112.  
  113. (Eunice users:  Until just recently, an obscure bug in Eunice had the effect
  114. that when you type ^C you don't see a prompt until you hit return.  The switch
  115. called EUNICE in logo.h enables a workaround for this bug.  Dave Kashtan has
  116. now fixed the underlying problem, but not necessarily in the version you have.
  117. If you get too few prompts, turn on the #define EUNICE; if too many prompts,
  118. turn it off.)
  119.  
  120. The pause feature is very new and required major modifications to the
  121. error handling mechanism.  You may well find bugs.  Please let me know
  122. about them, with as simple a failing situation as possible.
  123.  
  124. -----
  125. INSTALLATION etc.
  126.  
  127. Saying "make install" after you compile your Logo will install Logo in
  128. /bin/logo and will also set up two directories:
  129.     /usr/lib/logo    Library routines written in Logo for general use
  130.                 Also stuff for edit and pots commands.
  131.     /usr/doc/logo    Excerpts from the manual for the "describe" command
  132. The files in these directories are copied, not moved; you can delete the
  133. originals if you prefer.  See the makefile.  These directories must have
  134. the names shown here, although you can put logo itself somewhere other than
  135. /bin if you prefer.
  136.  
  137. There are three C source files included here which are not part of the Logo
  138. interpreter itself.  One, logohead.c, is used to compile the program
  139. /usr/lib/logo/logohead which is used for the pots command.  Another,
  140. splithelp.c, is part of the makehelp shell script which is used to generate
  141. the online help messages from the manual.  The third C file,
  142. dr11k.c, is a device driver for version 7 for a DEC DR11-K used to interface
  143. Terrapin floor turtles (you get two per DR11-K) to the PDP-11.  The interface
  144. costs much more than the turtles!
  145.  
  146. INCOMPATIBILITY WITH RELEASE 2.  (This release is VERY incompatible with
  147. release 1; see the file olddiff for details.)  To be compatible
  148. with VMS restricted filenames, to run under Eunice, the names of files used
  149. to store Logo procedure definitions have been changed from foo.logo to
  150. foo.lg (some installations have a version of release 2 in which the name
  151. foo.log is used, but that looks too much like a log file from a batch job;
  152. the new version seems more Unixy anyway).  If you prefer to keep the old
  153. convention of .logo names, turn on the definition of EXTLOGO in logo.h.
  154.  
  155. Check your makefile to be sure it refers to "y.tab.c" and "y.tab.o" on
  156. Unix, "ytab.c" and "ytab.o" on Eunice.  (Again, some versions of Eunice
  157. use the real Unix filenames.)
  158.  
  159. If you have questions about this Logo, there are two places to write for help.
  160. On the east coast, try
  161.     Computer Department
  162.     Lincoln-Sudbury Regional High School
  163.     390 Lincoln Road
  164.     Sudbury, MA  01776
  165. On the west coast, try
  166.     Brian Harvey
  167.     2456 Hilgard Av #406
  168.     Berkeley, CA  94709
  169. %%%%% ./library/beep.lg %%%%%%
  170. to beep :n
  171. hitoot :n
  172. end
  173.