Adding Appendix 1
[mudman.git] / md / environment.md
index b30763e2ee778500f81b662cf2b490de34375a9f..ca5bc6832be7fa843b983f807c33da94e7345dae 100644 (file)
@@ -1,11 +1,9 @@
-# The Muddle Programming Environment
-
-By P. David Lebling
+% The Muddle Programming Environment
+% P. David Lebling
+% May 1980
 
 MIT Technical Report 294
 
-May 1980
-
 Laboratory for Computer Science  
 Massachusetts Institute of Technology  
 545 Technology Square  
@@ -16,26 +14,31 @@ Cambridge, Massachusetts 02139
 This book was originally published in the United States in 1980
 without a copyright notice and without subsequent registration with
 the U.S. Copyright Office within 5 years. Doing at least one of those
-[was a requirement of United States copyright law at that
-time](http://copyright.cornell.edu/resources/publicdomain.cfm). This
-book is therefore in the public domain in the United States for
+was a requirement of United States copyright law at that time [^1].
+This book is therefore in the public domain in the United States for
 failure to comply with the required formalities. This means you're
 free to download, modify and redistribute this book. People outside of
 the United States must check the copyright laws of their country
 before downloading or redistributing.
 
+[^1]: <http://copyright.cornell.edu/resources/publicdomain.cfm>
+
 # Introduction
 
-The Muddle language is described in "The Muddle Programming Language",
-but in addition to the language itself, there is a rich and varied
-collection of software written in the language which facilitates the
-writing of programs and systems of programs in Muddle. The information
-describing this programming environment has been contained in various
-documents, some out of print or out of date, and in supplemental disk
-files describing changes and additions. Some of the packages of
-functions used to deal with Muddle code have never been formally
-documented. This manual brings together some of that scattered
-documentation.
+The Muddle language is described in "The Muddle Programming Language"
+[^2], but in addition to the language itself, there is a rich and
+varied collection of software written in the language which
+facilitates the writing of programs and systems of programs in Muddle.
+The information describing this programming environment has been
+contained in various documents, some out of print or out of date, and
+in supplemental disk files describing changes and additions. Some of
+the packages of functions used to deal with Muddle code have never
+been formally documented. This manual brings together some of that
+scattered documentation.
+
+[^2]: S. W. Galley and Greg Pfister.
+      *The Muddle Programming Language*.
+      MIT Laboratory for Computer Science, 1979.
 
 The document's purpose is to flesh out the description of the language
 contained in "The Muddle Programming Language", giving a fuller
@@ -454,8 +457,17 @@ or debugging systems, to more sophisticated aids such as `DEBUGR` and
 debugging.
 
 It should be noted that, in addition to the editors discussed below,
-RMODE and EMACS, TECO based text editors, understand much of the
-syntax and many of the conventions of Muddle programs.
+RMODE [^3] and EMACS [^4], TECO based text editors, understand much of
+the syntax and many of the conventions of Muddle programs.
+
+[^3]: P. David Lebling, R. V. Baron and Bruce K. Daniels.
+     *RMODE: A Real-time Edit Facility*.
+     Technical Report SYS.04.07-1, MIT LCS Programming Technology
+Division, October 1977.
+
+[^4]: Richard M. Stallman.
+     *EMACS*.
+     Technical Report 519, MIT AI Laboratory, August, 1979.
 
 ## 3.1. Pretty-Printing
 
@@ -792,9 +804,9 @@ Causes application of the function R to 5.
 
 #### 3.2.1.2. The Ampersand Printer
 
-Your current position is displayed by "ampersand printing' (see
+Your current position is displayed by "ampersand printing" (see
 section 3.1.3). This consists of printing any object on a single line
-by using the character & (ampersand) to mean "There's more stuff
+by using the character `&` (ampersand) to mean "There's more stuff
 here."
 
 The ampersand printer used in `EDIT` is much like the standard one,
@@ -1180,7 +1192,9 @@ the `X`. To move the substructure again you have to `X` again.
 `I*` is somewhat incompatible with `CURSOR`s. Cursors in Imbedded
 structures will sometimes disappear.
 
-`GO` **cursor** `Go` `GO` takes a *cursor* (normally the `LVAL` of an
+`GO` **cursor**  
+`Go`  
+`GO` takes a *cursor* (normally the `LVAL` of an
 `ATOM` previously given as an argument to `CU`) and `GO`es to that
 position. If the *cursor* is illegal (not in the current top-level
 structure), an error message will be printed and you will remain in