Once you type `$` and all brackets are correctly paired and nested,
the current contents of the input buffer go through processing by
-three functions successively: first `READ`, whcih passes its output to
+three functions successively: first `READ`, which passes its output to
`EVAL` ("evaluate"), which passes its output to `PRINT`, whose output
is typed on the terminal.
undisturbed.
Then `PRINT` saw that its input was of `TYPE` `FIX`, and printed on
-the terminal the decimal characer representation of the corresponding
+the terminal the decimal character representation of the corresponding
integer.
2.4. Example (TYPE FLOAT) \[1\]
met. Instead, the right-hand column will be used to state just what
`READ` thought the input in the left-hand column really was.
- -------------------------------------------------------------------------------------
+ ----------------------------------------------------------------------------------
Input Explanation
- --------------------------- ---------------------------------------------------------
+ --------------------------- ------------------------------------------------------
`ABC$` an `ATOM` of `PNAME` `ABC`
`abc$` an `ATOM` of `PNAME` `abc`
`ONE`.
`ab(cd$` an `ATOM` of `PNAME` `ab`, followed by the start of
- something else (The something else will contain an `ATOM`
- of `PNAME` beginning `cd.`)
+ something else (The something else will contain an
+ `ATOM` of `PNAME` beginning `cd.`)
- `12345A34$` an `ATOM` of `PNAME` `12345A35` (If the A had been an E,
- the object would have been a `FLOAT`.)
- -------------------------------------------------------------------------------------
+ `12345A34$` an `ATOM` of `PNAME` `12345A35` (If the A had been an
+ E, the object would have been a `FLOAT`.)
+ ----------------------------------------------------------------------------------
#### 2.6.3.3. (Backslash) in ATOMs
error, but because commenting is needed: `PRINT` doesn't do it full
justice.
- ---------------------------------------------------------------------------------
+ ------------------------------------------------------------------------------
Input Explanation
- ------------------------ --------------------------------------------------------
+ ------------------------ -----------------------------------------------------
`a\ one\ and\ a\ two$` one `ATOM`, whose `PNAME` has four spaces in it
`1234\56789$` an `ATOM` of `PNAME` `123456789`, which `PRINT`s as
`\123\`, with a space on the end
`\\$` an `ATOM` whose `PNAME` is a single backslash
- ---------------------------------------------------------------------------------
+ ------------------------------------------------------------------------------
Chapter 3. Built-in Functions
=============================
5
The first number after the application `FORM` was typed out by the
-`PRINT`; the second is the value of the applcation.
+`PRINT`; the second is the value of the application.
Remembering that `LVAL`s of `ATOM`s **not** in argument `LIST`s are
not changed, we can reference them within `FUNCTION`s, as in
"characters"
represents a `STRING` of ASCII text. A `STRING` containing the
-chatacter `"` (double-quote) is represented by placing a `\`
+character `"` (double-quote) is represented by placing a `\`
(backslash) before the double-quote inside the `STRING`. A `\` in a
`STRING` is represented by two consecutive backslashes.
The indicator `"ARGS"` can appear in an argument `LIST` with precisely
the same syntax as `"TUPLE"`. However, `"ARGS"` causes the `ATOM`
-following it to be bound to a `LIST` of the remaining **unevaluted**
+following it to be bound to a `LIST` of the remaining **unevaluated**
arguments.
`"ARGS"` does not cause any copying to take place. It simply gives you
The following table tells which `SUBR`s can be used with which modes,
where `OK` indicates an allowed use:
- -------------------------------------------------------------------------------------------------------------------------------------------------------
- "READ" "PRINT" "READB" "PRINTB", "PRINTO" mode / SUBRs
- -------------------- ---------------------- ---------------------- ---------------------------------------------- -------------------------------------
- OK OK `READ` `READCHR` `NEXTCHR`
- `READSTRING` `FILECOPY`
- `FILE-LENGTH LOAD`
+ -------------------------------------------------------------------------------------------------------------------------------------------------
+ "READ" "PRINT" "READB" "PRINTB", "PRINTO" mode / SUBRs
+ -------------------- --------------------- --------------------- -------------------------------------------- -----------------------------------
+ OK OK `READ` `READCHR` `NEXTCHR`
+ `READSTRING` `FILECOPY`
+ `FILE-LENGTH LOAD`
- OK OK\* `PRINT` `PRIN1` `PRINC` `IMAGE`
- `CRLF` `TERPRI` `FILECOPY`
- `PRINTSTRING` `BUFOUT` `NETS`
- `RENAME`
+ OK OK\* `PRINT` `PRIN1` `PRINC` `IMAGE`
+ `CRLF` `TERPRI` `FILECOPY`
+ `PRINTSTRING` `BUFOUT` `NETS`
+ `RENAME`
- OK `READB` `GC-READ`
+ OK `READB` `GC-READ`
- OK `PRINTB` `GC-DUMP`
+ OK `PRINTB` `GC-DUMP`
- OK OK OK `ACCESS`
+ OK OK OK `ACCESS`
- OK OK OK OK `RESET`
+ OK OK OK OK `RESET`
- OK OK `ECHOPAIR`
+ OK OK `ECHOPAIR`
- OK `TTYECHO` `TYI`
- -------------------------------------------------------------------------------------------------------------------------------------------------------
+ OK `TTYECHO` `TYI`
+ -------------------------------------------------------------------------------------------------------------------------------------------------
`*` PRINTing (or `PRIN1`ing) an `RSUBR` (chapter 19) on a `"PRINTB"`
or `"PRINTO"` `CHANNEL` has special effects.
The next one to four arguments to `OPEN` specify the file involved. If
only one `STRING` is used, it can contain the entire specification,
according to standard operating-system syntax. Otherwise, the
-string(s) are intepreted as follows:
+string(s) are interpreted as follows:
*name1* is the first file name, that part to the left of the space (in
the ITS version) or period (in the Tenex and Tops-20 versions). The
*element-number: type interpretation*
- ---------------------------------------------------------------------------------------------------------
- element-number type interpretation
- --------------------------- ------------------ ----------------------------------------------------------
- -1 `LIST` transcript channel(s) (see below)
+ ----------------------------------------------------------------------------------------------------
+ element-number type interpretation
+ -------------------------- ------------------ ------------------------------------------------------
+ -1 `LIST` transcript channel(s) (see below)
- \* 0 varies device-dependent information
+ \* 0 varies device-dependent information
- \* 1 `FIX` channel number (ITS) or JFN (Tenex and Tops-20), `0` for
- internal or closed
+ \* 1 `FIX` channel number (ITS) or JFN (Tenex and Tops-20), `0`
+ for internal or closed
- \* 2 `STRING` mode
+ \* 2 `STRING` mode
- \* 3 `STRING` first file name argument
+ \* 3 `STRING` first file name argument
- \* 4 `STRING` second file name argument
+ \* 4 `STRING` second file name argument
- \* 5 `STRING` device name argument
+ \* 5 `STRING` device name argument
- \* 6 `STRING` directory name argument
+ \* 6 `STRING` directory name argument
- \* 7 `STRING` real first file name
+ \* 7 `STRING` real first file name
- \* 8 `STRING` real second file name
+ \* 8 `STRING` real second file name
- \* 9 `STRING` real device name
+ \* 9 `STRING` real device name
- \* 10 `STRING` real directory name
+ \* 10 `STRING` real directory name
- \* 11 `FIX` various status bits
+ \* 11 `FIX` various status bits
- \* 12 `FIX` PDP-10 instruction used to do one I/O operation
+ \* 12 `FIX` PDP-10 instruction used to do one I/O operation
- 13 `FIX` number of characters per line of output
+ 13 `FIX` number of characters per line of output
- 14 `FIX` current character position on a line
+ 14 `FIX` current character position on a line
- 15 `FIX` number of lines per page
+ 15 `FIX` number of lines per page
- 16 `FIX` current line number on a page
+ 16 `FIX` current line number on a page
- 17 `FIX` access pointer for file-oriented devices
+ 17 `FIX` access pointer for file-oriented devices
- 18 `FIX` radix for `FIX` conversion
+ 18 `FIX` radix for `FIX` conversion
- 19 `FIX` sink for an internal `CHANNEL`
- ---------------------------------------------------------------------------------------------------------
+ 19 `FIX` sink for an internal `CHANNEL`
+ ----------------------------------------------------------------------------------------------------
N.B.: The elements of a `CHANNEL` below number 1 are usually invisible
but are obtainable via `<NTH <TOP channel> fix>`, for some appropriate
eventually returns `"DONE"`. First, however, it `READ`s and `EVAL`s
every Muddle object in the file pointed to by *input*, and then
-`CLOSE`s *input*. Any occurrences of rubout, ^@,\ ^D, \^L, etc., in
-the file are given no special meaning; they are simply `ATOM`
+`CLOSE`s *input*. Any occurrences of rubout, ^@, ^D, \^L, etc., in the
+file are given no special meaning; they are simply `ATOM`
constituents.
*look-up* is optional, used to specify a `LIST` of `OBLIST`s for the
<ECHOPAIR terminal-in:channel terminal-out:channel>
returns its first argument, after making the two `CHANNEL`s "know
-about each other" so that rubout, ^@,\ ^D and \^L on *terminal-in*
-will cause the appropriate output on *terminal-out*.
+about each other" so that rubout, ^@, ^D and \^L on *terminal-in* will
+cause the appropriate output on *terminal-out*.
### 11.8.2. TTYECHO
depends on the `PRIMTYPE` of *structured*: `LOCL` for `LIST`, `LOCV`
for `VECTOR`, `LOCU` for `UVECTOR`, `LOCS` for `STRING`, `LOCB` for
`BYTES`, `LOCT` for `TEMPLATE`, and `LOCA` for `TUPLE`. If *N* is
-greated than `<LENGTH structured>` or less than `1`, or an `OFFSET`
+greater than `<LENGTH structured>` or less than `1`, or an `OFFSET`
with a Pattern that doesn't match *structured*, an error occurs. The
locative is unaffected by applications of `REST`, `BACK`, `TOP`,
`GROW`, etc. to *structured*.
a `FIX`, may be given as an argument to `NTH` or `PUT` and may be
applied to arguments. The only difference is that the `STRUCTURED`
argument must match the Pattern contained in the `OFFSET`, or an error
-will resuly. Thus:
+will result. Thus:
<SETG FOO <OFFSET 1 '<CHANNEL FIX>>>$
%<OFFSET 1 '<CHANNEL FIX>>