[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
3.1 Transmitters | ||
3.2 Receivers | ||
3.3 File Access | ||
3.4 Terminal Access |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
type | ||
show |
Note: If there is a variable named PRINTDEPTHLIMIT
with a nonnegative
integer value, then complex list and array structures will be printed
only to the allowed depth. That is, members of members of... of members
will be allowed only so far. The members omitted because
they are just past the depth limit are indicated by an ellipsis for each
one, so a too-deep list of two members will print as [... ...].
If there is a variable named PRINTWIDTHLIMIT
with a nonnegative integer
value, then only the first so many members of any array or
list will be printed. A single ellipsis replaces all missing data
within the structure. The width limit also applies to the number of
characters printed in a word, except that a PRINTWIDTHLIMIT
between 0 and 9
will be treated as if it were 10 when applied to words. This limit
applies not only to the top-level printed datum but to any substructures
within it.
See section printdepthlimit , printwidthlimit
If there is a variable named FULLPRINTP
whose value is TRUE
, then
words that were created using backslash or vertical bar (to include
characters that would otherwise not be treated as part of a word) are
printed with the backslashes or vertical bars shown, so that the printed
result could be re-read by Logo to produce the same value. If
FULLPRINTP
is TRUE
then the empty word (however it was created) prints
as ||
. (Otherwise it prints as nothing at all.)
See section fullprintp .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
PRINT thing PR thing (PRINT thing1 thing2 ...) (PR thing1 thing2 ...)
command. Prints the input or inputs to the current write stream (initially the screen). All the inputs are printed on a single line, separated by spaces, ending with a newline. If an input is a list, square brackets are not printed around it, but brackets are printed around sublists. Braces are always printed around arrays.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TYPE thing (TYPE thing1 thing2 ...)
command. Prints the input or inputs like PRINT
, except that no newline
character is printed at the end and multiple inputs are not separated by
spaces. Note: printing to the screen is ordinarily line buffered;
that is, the characters you print using TYPE
will not actually appear on
the screen until either a newline character is printed (for example, by
PRINT
or SHOW
) or Logo tries to read from the keyboard (either at the
request of your program or after an instruction prompt). This buffering
makes the program much faster than it would be if each character
appeared immediately, and in most cases the effect is not disconcerting.
To accommodate programs that do a lot of positioned text display using
TYPE
, Logo will force printing whenever SETCURSOR
is invoked. This
solves most buffering problems. Still, on occasion you may find it
necessary to force the buffered characters to be printed explicitly;
this can be done using the WAIT
command. WAIT 0 will force printing
without actually waiting.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SHOW thing (SHOW thing1 thing2 ...)
command. Prints the input or inputs like PRINT
, except that if an input
is a list it is printed inside square brackets.
See section print .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
readlist | ||
readword | ||
readrawline | ||
readchar | ||
readchars | ||
shell |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READLIST RL
reads a line from the read stream (initially the keyboard) and outputs
that line as a list. The line is separated into members as though it
were typed in square brackets in an instruction. If the read stream is
a file, and the end of file is reached, READLIST
outputs the empty word
(not the empty list). READLIST
processes backslash, vertical bar, and
tilde characters in the read stream; the output list will not contain
these characters but they will have had their usual effect. READLIST
does not, however, treat semicolon as a comment character.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READWORD RW
reads a line from the read stream and outputs that line as a word. The
output is a single word even if the line contains spaces, brackets, etc.
If the read stream is a file, and the end of file is reached, READWORD
outputs the empty list (not the empty word). READWORD
processes
backslash, vertical bar, and tilde characters in the read stream. In
the case of a tilde used for line continuation, the output word does
include the tilde and the newline characters, so that the user program
can tell exactly what the user entered. Vertical bars in the line are
also preserved in the output. Backslash characters are not preserved in
the output.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READRAWLINE
reads a line from the read stream and outputs that line as a word. The
output is a single word even if the line contains spaces, brackets, etc.
If the read stream is a file, and the end of file is reached, READRAWLINE
outputs the empty list (not the empty word). READRAWLINE
outputs the
exact string of characters as they appear in the line, with no special
meaning for backslash, vertical bar, tilde, or any other formatting
characters.
See section readword .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READCHAR RC
reads a single character from the read stream and outputs that character
as a word. If the read stream is a file, and the end of file is
reached, READCHAR
outputs the empty list (not the empty word). If the
read stream is the keyboard, echoing is turned off when READCHAR
is
invoked, and remains off until READLIST
or READWORD
is invoked or a Logo
prompt is printed. Backslash, vertical bar, and tilde characters have
no special meaning in this context.
See section readlist .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READCHARS num RCS num
reads num characters from the read stream and outputs those characters
as a word. If the read stream is a file, and the end of file is
reached, READCHARS
outputs the empty list (not the empty word). If the
read stream is the keyboard, echoing is turned off when READCHARS
is
invoked, and remains off until READLIST
or READWORD
is invoked or a Logo
prompt is printed. Backslash, vertical bar, and tilde characters have
no special meaning in this context.
See section readlist , readword
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SHELL command (SHELL command wordflag)
Under Unix, outputs the result of running command as a shell command.
(The command is sent to ‘/bin/sh’, not ‘csh’ or other alternatives.)
If the command is a literal list in the instruction line, and if you want a
backslash character sent to the shell, you must use \\
to get the
backslash through Logo’s reader intact. The output is a list containing
one member for each line generated by the shell command. Ordinarily
each such line is represented by a list in the output, as though the
line were read using READLIST
. If a second input is given, regardless
of the value of the input, each line is represented by a word in the
output as though it were read with READWORD
. Example:
to dayofweek output first first shell [date] end
This is first first
to extract the first word of the first (and only)
line of the shell output.
Under MacOS X, SHELL
works as under Unix. SHELL
is not
available under Mac Classic.
Under DOS, SHELL
is a command, not an operation; it sends its input to a
DOS command processor but does not collect the result of the command.
Under Windows, the wxWidgets version of Logo behaves as under Unix (except
that DOS-style commands are understood; use dir
rather than ls
).
The non-wxWidgets version behaves like the DOS version.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
setprefix | ||
prefix | ||
openread | ||
openwrite | ||
openappend | ||
openupdate | ||
close | ||
allopen | ||
closeall | ||
erasefile | ||
dribble | ||
nodribble | ||
setread | ||
setwrite | ||
reader | ||
writer | ||
setreadpos | ||
setwritepos | ||
readpos | ||
writepos | ||
eofp | ||
filep |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETPREFIX string
command. Sets a prefix that will be used as the implicit beginning of
filenames in OPENREAD
, OPENWRITE
, OPENAPPEND
,
OPENUPDATE
, LOAD
, and SAVE
commands. Logo will put the
appropriate separator character (slash for Unix, backslash for DOS/Windows,
colon for MacOS Classic) between the prefix and the filename entered by the
user. The input to SETPREFIX
must be a word, unless it is the empty list, to
indicate that there should be no prefix.
See section openread , See section openwrite , See section openappend , See section openupdate , See section load , See section save .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
PREFIX
outputs the current file prefix, or [] if there is no prefix.
See section setprefix .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
OPENREAD filename
command. Opens the named file for reading. The read position is initially at the beginning of the file.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
OPENWRITE filename
command. Opens the named file for writing. If the file already existed, the old version is deleted and a new, empty file created.
OPENWRITE
, but not the other OPEN
variants, will accept as input
a two-element list, in which the first element must be a variable
name, and the second must be a positive integer. A character
buffer of the specified size will be created. When a SETWRITE
is
done with this same list (in the sense of .EQ, not a copy, so
you must do something like
? make "buf [foo 100] ? openwrite :buf ? setwrite :buf [...] ? close :buf
and not just
? openwrite [foo 100] ? setwrite [foo 100]
and so on), the printed characters are stored in the buffer;
when a CLOSE
is done with the same list as input, the characters
from the buffer (treated as one long word, even if spaces and
newlines are included) become the value of the specified variable.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
OPENAPPEND filename
command. Opens the named file for writing. If the file already exists, the write position is initially set to the end of the old file, so that newly written data will be appended to it.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
OPENUPDATE filename
command. Opens the named file for reading and writing. The read and
write position is initially set to the end of the old file, if any.
Note: each open file has only one position, for both reading and
writing. If a file opened for update is both READER
and WRITER
at the
same time, then SETREADPOS
will also affect WRITEPOS
and vice versa.
Also, if you alternate reading and writing the same file, you must
SETREADPOS
between a write and a read, and SETWRITEPOS
between a read
and a write.
See section reader , writer , setreadpos , setwritepos
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CLOSE filename
command. Closes the named file. If the file was currently the reader or writer, then the reader or writer is changed to the keyboard or screen, as if SETREAD [] or SETWRITE [] had been done.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ALLOPEN
outputs a list whose members are the names of all files currently open. This list does not include the dribble file, if any.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CLOSEALL (library procedure)
command. Closes all open files. Abbreviates FOREACH ALLOPEN [CLOSE ?]
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ERASEFILE filename ERF filename
command. Erases (deletes, removes) the named file, which should not currently be open.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
DRIBBLE filename
command. Creates a new file whose name is the input, like OPENWRITE
,
and begins recording in that file everything that is read from the
keyboard or written to the terminal. That is, this writing is in
addition to the writing to WRITER
. The intent is to create a transcript
of a Logo session, including things like prompt characters and
interactions.
See section openwrite , writer
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
NODRIBBLE
command. Stops copying information into the dribble file, and closes the file.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETREAD filename
command. Makes the named file the read stream, used for READLIST
, etc.
The file must already be open with OPENREAD
or OPENUPDATE
. If the input
is the empty list, then the read stream becomes the keyboard, as usual.
Changing the read stream does not close the file that was previously the
read stream, so it is possible to alternate between files.
See section readlist , openread , openupdate
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETWRITE filename
command. Makes the named file the write stream, used for PRINT
,
etc. The file must already be open with OPENWRITE
, OPENAPPEND
, or
OPENUPDATE
. If the input is the empty list, then the write stream
becomes the screen, as usual. Changing the write stream does
not close the file that was previously the write stream, so it is
possible to alternate between files.
If the input is a list, then its first element must be a variable
name, and its second and last element must be a positive integer; a
buffer of that many characters will be allocated, and will become the
writestream. If the same list (same in the .EQ
sense, not a copy)
has been used as input to OPENWRITE
, then the already-allocated
buffer will be used, and the writer can be changed to and from this
buffer, with all the characters accumulated as in a file. When the
same list is used as input to CLOSE
, the contents of the buffer
(as an unparsed word, which may contain newline characters) will
become the value of the named variable. For compatibility with
earlier versions, if the list has not been opened when the SETWRITE
is done, it will be opened implicitly, but the first SETWRITE
after
this one will implicitly close it, setting the variable and freeing
the allocated buffer.
See section print , openwrite ; openappend ; openupdate
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READER
outputs the name of the current read stream file, or the empty list if the read stream is the terminal.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
WRITER
outputs the name of the current write stream file, or the empty list if the write stream is the screen.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETREADPOS charpos
command. Sets the file pointer of the read stream file so that the next
READLIST
, etc., will begin reading at the charposth character in the
file, counting from 0. (That is, SETREADPOS 0 will start reading from
the beginning of the file.) Meaningless if the read stream is the
keyboard.
See section readlist .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETWRITEPOS charpos
command. Sets the file pointer of the write stream file so that the
next PRINT
, etc., will begin writing at the charposth character in the
file, counting from 0. (That is, SETWRITEPOS 0 will start writing from
the beginning of the file.) Meaningless if the write stream is the
screen.
See section print .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
READPOS
outputs the file position of the current read stream file.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
WRITEPOS
outputs the file position of the current write stream file.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
EOFP EOF?
predicate, outputs TRUE
if there are no more characters to be read in
the read stream file, FALSE
otherwise.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
FILEP filename FILE? filename (library procedure)
predicate, outputs TRUE
if a file of the specified name exists and can
be read, FALSE
otherwise.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
keyp | ||
cleartext | ||
setcursor | ||
cursor | ||
setmargins | ||
settextcolor | ||
increasefont | ||
settextsize | ||
textsize | ||
setfont | ||
font |
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
KEYP KEY?
predicate, outputs TRUE
if there are characters waiting to be read from
the read stream. If the read stream is a file, this is equivalent to
NOT EOFP. If the read stream is the terminal, then echoing is turned
off and the terminal is set to cbreak
(character at a time instead of
line at a time) mode. It remains in this mode until some line-mode
reading is requested (e.g., READLIST
). The Unix operating system
forgets about any pending characters when it switches modes, so the
first KEYP
invocation will always output FALSE
.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CLEARTEXT CT
command. Clears the text window.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETCURSOR vector
command. The input is a list of two numbers, the x and y coordinates of a text window position (origin in the upper left corner, positive direction is southeast). The text cursor is moved to the requested position. This command also forces the immediate printing of any buffered characters.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CURSOR
outputs a list containing the current x and y coordinates of the text cursor. Logo may get confused about the current cursor position if, e.g., you type in a long line that wraps around or your program prints escape codes that affect the screen strangely.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETMARGINS vector
command. The input must be a list of two numbers, as for SETCURSOR
.
The effect is to clear the screen and then arrange for all further
printing to be shifted down and to the right according to the indicated
margins. Specifically, every time a newline character is printed
(explicitly or implicitly) Logo will type x_margin spaces, and on every
invocation of SETCURSOR
the margins will be added to the input x and y
coordinates. (CURSOR
will report the cursor position relative to the
margins, so that this shift will be invisible to Logo programs.) The
purpose of this command is to accommodate the display of terminal
screens in lecture halls with inadequate TV monitors that miss the top
and left edges of the screen.
See section setcursor .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETTEXTCOLOR foreground background SETTC foreground background
command (wxWidgets only). The inputs are color numbers, or RGB color lists, as for turtle graphics. The foreground and background colors for the textscreen/splitscreen text window are changed to the given values. The change affects text already printed as well as future text printing; there is only one text color for the entire window.
Command (non-wxWidgets Windows and DOS extended only). The inputs are color
numbers, as for turtle graphics. Future printing to the text window will use
the specified colors for foreground (the characters printed) and background
(the space under those characters). Using STANDOUT
will revert to the default
text window colors. In the DOS extended (‘ucblogo.exe’) version, colors in
textscreen mode are limited to numbers 0-7, and the coloring applies only to
text printed by the program, not to the echoing of text typed by the user.
Neither limitation applies to the text portion of splitscreen mode, which is
actually drawn as graphics internally.
See section standout .
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
INCREASEFONT DECREASEFONT
command (wxWidgets only). Increase or decrease the size of the font used in the text and edit windows to the next larger or smaller available size.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETTEXTSIZE height
command (wxWidgets only). Set the "point size" of the font used in
the text and edit windows to the given integer input. The desired
size may not be available, in which case the nearest available size
will be used. Note: There is only a slight correlation between these
integers and pixel sizes. Our rough estimate is that the number of
pixels of height is about 1.5 times the point size, but it varies for
different fonts. See SETLABELHEIGHT
for a different approach used for
the graphics window.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TEXTSIZE
(wxWidgets only) outputs the "point size" of the font used in the text
and edit windows. See SETTEXTSIZE
for a discussion of font sizing.
See LABELSIZE
for a different approach used for the graphics window.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
SETFONT fontname
command (wxWidgets only). Set the font family used in all windows to the one named by the input. Try ‘Courier’ or ‘Monospace’ as likely possibilities. Not all computers have the same fonts installed. It’s a good idea to stick with monospace fonts (ones in which all characters have the same width).
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
FONT
(wxWidgets only) outputs the name of the font family used in all windows.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on December 27, 2019 using texi2html 5.0.