LISPUSERS PACKAGES SUMMARY

     The original source for this file is
{ERIS}<LISPUSERS>LISPUSERS.TTY.
     This file is a summary of all files on <LISPUSERS>, and is a good
document to read if you are unfamiliar with the many LISPUSERS
packages available to you.  The paragraphs below summarize each
LISPUSERS package or auxiliary file in 6 lines or less.
     A similar library, <LISP>LIBRARY>, is offered by Xerox
LISPSUPPORT, and is documented by <LISPCORE>LIBRARY>LISPLIBRARY.TTY.
Contributors to LISPUSERS are encouraged to edit this file whenever
they contribute or modify a package on <LISPUSERS>.  Rules: (1) Only
edit entries you own--i.e.  you are the AUTHOR of the corresponding
source code.  (2) Stay within your 6 line limit. (3) File
alphabetically.


			LISPUSERS PACKAGES SUMMARY

ACTIVEREGIONS	Package for specifying that certain regions of a
window be sensitive to button activity of the mouse.  Regions are
highlighted when mouse button is down and associated function for an
active region is invoked when mouse button is released.

ANIMATE.  This small package contains functions for moving a
non-rectangular bitmap smoothly around the screen, ways of using these
to get big cursors, and bitmaps for a large arrow and a hand to be
used as large cursors.

AREDIT	Tool for submitting, viewing, & editing Lisp ARs (action
requests/Interlisp bug reports) from within Interlisp.  Type (AR.FORM)
to create a form for Getting, Putting, & Submitting ARs.

ARITHMAC	Arithmetic macros for use with Interlisp-10 and the
DECL package for a variety of arithmetic functions (ADD1, QUOTIENT,
RAND, etc.). Not useful (except for backward compatibility) for
Interlisp-D.

BIZGRAFIX	Pie & bar chat, line graph creation.

BLACKOUT	(Blackout text interval) makes a back window the size
of the screen and bounces a square around on it, like DMT, etc. Good
for servers. Text and interval default to "Type Key" and NIL (=
forever) if not given.

BROWSER Mastersope's SHOW PATHS output is displayed as a directed
graph showing calling hiarchy from a function.  Buttoning a node of
the graph allows user to print, edit, or DESCRIBE the function.

BLTDEMO	Implements Smalltalk graphics demo in Interlisp.  Spinning
star, bouncing ring & box.  Call: (BOUNCE X Y) where X and Y are
velocities defaulting to 3.  Box shows whatever is near cursor.
Interseting recursive effects can be seen if you move the cursor near
the box.

BQUOTE	Backquote punctuation.  Enables backquote (character 96) and
commas to be used to construct lists similar to CLISP's <, !, !!, and
> operators only better.  Readmacros and prettyprintmacros make
backquote easy to use.  Also offers PQUOTE's functionality.

CALENDAR A calendar/appointment-reminder program.  Displays any year,
month or day.  Messages alert you at predetermined time, or can
optionally be mailed (via Lafite) to any desired recipients.  CALL:
(CALENDAR).

CHUNK-MENU	Permits the creation and use of pop-up menus for long
lists of items.  User sees one "chunk" of the list at a time.  Menu
items at top and bottom allow user to move forward and backward to
other chunks.

COLORUTILITIES	Functions to aid color programming.  Allows for color
windows, color menus (pop-up and active), and interactive color bitmap
editing.  Must have COLOR.DCOM and COLORPATCH.DCOM loaded first.

COMHACK Advises CLISPIF and CLISPFOR to allow comments anywhere in ifs
and for loops.  Can be used to provide similar facility for other CLISP
words.

CROCK 	Function for creating and manipulating an analog face clock.
Menu allows user to change style of clock.  Call: (CROCK REGION).

DATETIME	Date/Time Parser.  Various types of date/times:
datetime, multipledatetimes, duration, qualifieddatetime.  Parser and
functions for manipulating date/times.

DEDITK Adds single button method for combining the most frequently
combined pairs of BI/BO and BEFORE/AFTER/DELETE/REPLACE in DEDIT -
Load and call (DEDITK).

DPRESS	Disassemble PRESS.  Functions to disassemble PRESS files.
Used by PRESSTOIP.

DRAWFILE	Two functions for converting DRAW-format files
(produced by Alto DRAW program) to and from lisp figure
data-structures.  Supports spline curves, text, and color.

DWIMLOAD	Package does what (SETQ DWIMLOADFNSFLG T) does but
faster.  It doesn't use LOADFNS and so doesn't need to do UPDATEFILES,
etc.

EDITBITMAP	Interface for manipulating bitmaps.  Includes access
to Interlisp-D EDITBM as well as shifting, rotation, inverting,
interchanging black and white, and adding a border.  Also works on
cursors.

EDITFONT	Gives the user functions for creating and editting
DISPLAY fonts which can be read and written as STRIKE font files.
Includes: EDITFONT, BLANKFONTCREATE, READSTRIKEFONTFILE, and
WRITESTRIKEFONTFILE.

EDITHIST	An extension to Interlisp's file package that
permanently preserves the history of new versions of files.  Every
time a file is remade, a new entry containing DATE, AUTHOR, FILE,
CHANGES, & COMMENTS info is added.

EDITMACROS Some useful (tty-based) editor macros; includes COPY and 
SWITCH with syntax like basic MOVE command, and IFY for converting 
CONDs into clisp's "if".

EMACS	A very small subset of EMACS (text editor developed at MIT)
built on top of TEDIT.  Will probably grow into greater completion
when the demise of MAXC becomes imminent.  Call: (EMACS FILE).

EMACSUSER	Package defines a variety of functions amenable to
creating a programming environment where the user does his coding in
EMACS (the MACLISP/EMACS style of coding versus the Interlisp file
package style of coding).  Loads BQUOTE & SETF.

EXEC	This small package allows the user to create extra EXEC windows
in which to do EVALQTing.  A new EXEC window may be created in either
of two ways.  The user may either do (EXEC) or button the EXEC menu
item added to the background menu.

EXECFNS Package emulates TOPS-20-style "logical names".  Instead of
typeing {RED}<FOODIRECTORY> you can use the DEF lispxmacro to define
FOO: as {RED}<FOODIRECTORY>.  Lispxmacros TY, CONN & KD and fns
INFILE, OUTFILE, INFILEP, OUTFILEP, & COPYFILE are modified/advised to
expand logical names.  The lispxmacro DEF? can be used to see what
logical defs are currently defined.

FACEINVADER	A game.  The object of the game is to shoot the
bouncing 'face' before it overruns your base.  Call: (FI
INSTRUCTIONS?).

FASTLOAD	Function to load a file without file package overhead
or changes to history list.  Otherwise like (LOAD FILE T)--old
definitons are simply overwritten.  Call: (FASTLOAD FILE).

FASTNAMEFIELD	Code which speeds up UNPACKFILENAME, FILECOMS,
NAMEFIELD, and FILENAMEFIELD at the expense of some space.  Values
from these fns are stored in a hash table so that calls with old args
cost only a table lookup.

FILEINDEX	Functions makes an index file (default is to the line
printer).  The inex file will have a table of contents which will list
all the functions in alphabetical order and a sequence number of where
that function is in the files.  Call: (FILEINDEX FILELST OUTPUTFILE).

FONTN 	Contains font definitions for fonts FONT1, FONT2, etc., which
are utilized by the printout for commands of the form .FONT 1, .FONT
2, etc.

GEV	GEV display editor/inspector.  Related to GLISP (somehow).

GEVDEMO	Demo file for GEV.

GLISP	Compiler for GLISP, object oriented form of lisp.

GRCALLS	Allows fast graphing of the calling hiarchy of both
interpreted and compiled code, whether or not the source code is
available, thus allowing examination of both user and system functions.

GRAPHER	Functions and an interface for laying out, displaying and
editting graphs.  Supports node labels, directed and undirected
graphs, and straight line links.

HASHFILE	Package is intended to provide a mechanism to dump any
lisp data structure onto premanent storage with no dependency on the
usual PRINT/READ mechanism.  Recursive structures, shared pointer
structures, and user datatypes handled.

HEADLINE	Three functions for manipulating windows containing
headlines: HEADLINE, BILLBOARD, and CLOSEHEADLINES.  Useful for
titling a screen image or leaving message on screen while away.

HISTMENU	Provides simple way to access Interlisp history list
using menu.  REDO, UNDO, FIX, and ?? selected items.  Call:
(HistoryMenu histMenuLength histMenuPosition).

ICON	Cedar icon windows for shrinking windows.  Icons: Document,
FileCabinet, Envelope, People, Map, Printer, Calendar, QuestionMark,
TV, BriefCase, ToolBox, Envelopes, Person, NotePad, Squirrel, MailBox,
Lecturer, Scroll.

IGNORECHAR 	Permits characters to be defined in a read table as
"ignorable"--neither delimiting atoms, nor appearing inside them.
Example: If "#" has syntax class IGNORE, then (CO#NS 'A 'B) returns (A
. B). Not verified to work in Interlisp-D.

IMAGEDEMO	Color graphics demo.  Call: (IMAGEDEMO).

IMTEDIT	Is a program built on IMTRAN that translates IM format files
to formatted Tedit text streams.

IMTRAN	Is the original program LISPSUPPORT uses for translating from
IM format to TEX source files (not too useful for most people).  See
IMTEDIT.

INMENU Functions to support interactive menus for program interaction.
Similar to the standard pop-up menus except that arguments are
compatible with INTTY and does not lock out other processes.

JARGON ... N random broken definitions from the imfamous hacker's dictionary, 
snarfed from MIT-AI.  (The globalvar JARGON.FILE.LOCATION points to the 
database file.)  Starts up on load, or type (JARGON.READ)

KAL	Kaleidoscope demo.  Call: (KAL).  Control with middle button menu.

LABEL	Implements Lisp 1.5 LABEL construct.  Example: (name a b)
appearing in the forms of (LABEL name args . forms) will recursively
apply the function specified by the LABEL.

LANDPRESS	Allows landscape printing of ASCII text files on press
printers (e.g., Dovers).  Function LANDPRESS produces same product as
MAKEPRESS, only printed sideways on the page allowing for wider
output.

LCROCK 	Puts a digital/analog clock in the unused area of the LOGOW. 
      (START.LCROCK <myLogo> <Position>) 
starts it up.  <myLogo>, if non-NIL, will replace the "Interlisp-D" 
logo; and <Position>, if non-NIL, will be the lower-left corner (NIL 
means to use the position of the existing logo window).  The glovalvar
CROCKUPDATERATE.MS is the number of milliseconds between automatic updates.

LOADFILES	Function to help in loading groups of files.  Call:
(LOADFILES DIR FILES EXT LDFLG PRINTFLG).  Value of LOADFILES is a
list of the files actually loaded.

LSET	List SETs.  Functions for operating on sets implemented as
lists.  Contains functions for union, intersection, and subtraction.
Functions to unify an element with a list, setify a list, and test if
a list is a subset of another list are also included.

LUPINE	 implementation of Cedar Remote Procedure Call generator.

MACWINDOW	Advises SHRINKW and EXPANDW to produce a zooming
effect by showing the outline of their window arguments as they shrink
or grow.

MAILOPS 	Functions for poking into and "scavenging"
Laurel/Lafite/...  mail files.  See MAILOPS.tty.

MAKEGRAPH	Package built on GRAPHER which helps user create
graphs by walking through them.  Each point in the walk (node in the
graph) is characterized by a datum/state pair.  Motion is defined by a
state transition function and checking whether a node has already been
visited.  Do (MAKE.GRAPH.EXAMPLE) for an example.

MATHFNS	Higher mathematical functions not already provided by
Interlisp.  Includes additional trigonometric functions, logarithmic
functions, hyperbolic functions, mathematical constants, and macros
and functions for complex arithmetic.

MSGLAFITE	Converts a MSG mail file (e.g., on MAXC or SU-BBOARDS)
to a Lafite readable mail file.  Call: (ConvertMsgToLafite MsgFile
LafiteFile)

MOUSECONFIRM	Contains function and cursor definition to be used for
confirming potentially dangerous or computationally expensive menu
selections.  Replaces cursor with little mouse image and waits for
confirming click.  Call: (MOUSECONFIRM PROMPTSTRING).

MULTIFILEINDEX	Like SINGLEFILEINDEX, but also indexes records,
parameters, etc.  Works across several files and is userful for
indexing a whole "system" of files. [May be superseded by the "new"
SINGLEFILEINDEX of mid-1984]

MULTIMENU	Package which allows user to create a number of menus
or windows to be associated with a main window.  Example application:
an editor whose commands (menu driven) are a function of the item
selected in the editor window.  Contextually inappropriate menus
disappear and appropriate menus are highlighted.

MULTIW	Contains functions necessary for a hiarchical window
environment.  Windows that belong to other windows will move, close,
shrink, and open when their super window does.

MULTIW-DEMO	Demos MULTIW package.

NOTEPAD	Allows user to do artwork at bitmap level in NOTEPAD windows.
Trajectories: sketch, line, circle, ellipse, open curve, closed curve.
Objects/editting: text, are of screen, shade rectangle, fill, edit
area.  Style: brush, use mask, mask, use grid, grid, use symmetry,
point of symmetry, text font, shade.

NOTEPAD-CORESTYLES	Used by NOTEPAD.

NQUEENS	Solves N Queens problem.  How to place N queens on a chess
board so that they don't attack each other.  Graphics demo.  Call:
(NQUEENS N).

ODOMETER	Functions for creating and manipulating a horizontal
sequence of small windows containing digits resembling a car's
odometer (mileage gauge).  Digits scroll into place as if digit wheel
is turning.  Call: (ODOCREATE #DIGITS FONT PLACE) where #DIGITS is the
number of digit wheels desired.  Fns: ODOCLOSE, ODOCREATE, ODODEC,
ODOINC, ODOOPEN, ODOPUT, ODOSET, & ODOVAL.

PACMAN  Game.  Runs in b/w or color.  CALL: (PACMAN).

PAGEFULLCTRL	Useful for controlling the scrolling behaviour of the
TTYDISPLAYSTREAM window.  PAGEFULLFN is advised to continue scrolling
(rather than inverting the window and waiting for a space to be typed)
unless the CTRL key is held down.

PAGEHOLD	Redefines the default PAGEFULLFN, and provides hooks for
making individual non-TTYDISPLAYSTREAM windows scrollable.  Scrolling 
is "held" for up to PAGE.WAIT.SECS seconds, during which time an attached
"button" on the window softly flashes, and then the hold is"released".  
Holding down either SHIFT key will continue the "hold" (i.e., prevent 
"release"); letting up on either SHIFT key will "release" the "hold".

PATCHUP Facilitates making patch files when there is multiuser
interaction on a system.  Designed to allow dumping of a patch file
containing changes from a number of files.

PEANO	Peano curves graphics demo.  CALL: (PEANODEMO LEVEL SCALE).

PERFORMTRAN	Adds CLISP word perform to record package.  Rumored to
be described in Interlisp Reference Manual (GKW).

PERMSTATUS	Function used in conjunction with WHENCLOSE package to
make a file "permanently" open in the sense that as much of its status
as possible will be restored when a sysout is resumed.  Described in
Interlisp Reference Manual.

PLAY	Offers Interlisp-D users a disciplined way to play simple
musical melodies on Xerox 1108 machines.  (PLAY.DEMO) demos the PLAY
package.  Main functions: PLAY.NOTES, PLAY.MELODY, PLAY.KEYBOARD.

PRESSTOIP	PRESS TO InterPress.  Converts PRESS files to
INTERPRESS files.  Call: (PRESS.TO.IP PRESSFILE IPFILE).

PRINTL	Function which prints circular list structures.  Described in
Interlisp Reference Manual.

PROFILETOOL	Creates a specialized InspectorWindow for enumerating
and changing variables, etc.  Useful for creating a graphical
interface to attributes of any "package" written in Interlisp.

PROMPTREMINDERS 	User can be periodically reminded of important 
things by messages which are aggressively winked and flashed in a
window (or on primary output for non-D machines).  May supersede the
REMIND package;  See PROMPTREMINDERS.tty/.press for fuller documentation.

QIX ... Makes "floating fish" (like the Qix video game) that run around in
the window.  (QIX.PLAY n) makes N Qix in a screen sized window.
(QIX.GROW dismissflg) sets up one Qix in (WHICHW).  Dismissflg tells whether
the new process will give up its time slice or not (T = do dismiss every
cycle).  Qixs follow the window border and thus reshaping the window
can be amusing.

READACFONTFILE	Make FONTDESCRIPTORS from *.ac font files (eg. Star
font files)

REDUCE		Old partial implementation of the REDUCE algebraic
manipulation system, including differentiation etc.

REMEVALCLIENT	"Client" side of an EVALSERVER implemented using RPC.

REMEVALSERVER	"Server" side of an EVALSERVER implemented using RPC.

REMIND	Facility for scheduling LISP events to take place at a
specified later time.  Reminders are stored on REMINDERS.LISP on
user's directory and an entry on AFTERSYSOUTFORMS causes them to be
loaded via LOADREMINDERS which may also be put in user's init file.
[See note on PROMPTREMINDERS above]

RPC	Remote Procedure Calls.  Implements Cedar RPC transport
mechanism allowing Interlisp-D to export services to or import
services from remote machines.

SAMPLER	Graphics demo ("from Upstate New York").

SETF	SET Field.  MACLISP SETF-style record accessing.  E.g.,
(r.f d) => (fetch (r f) of d) & (setf (r.f d) v) => 
(replace (r f) of d with v).  Less verbose than CLISP fetch & replace,
but without the drawbacks of packing record accesses into atoms as
with CLISP infixes ":" and ".".

SHOW	Adds a LISPXMACRO SHOW that will prettyprint value of
preceding history events with syntax similar to ?? and REDO.  Also
defines functions SHOW and IT.

SIGNAL	CEDAR/MESA-like signal mechanism.  Allows signals to be
raised, caught, examined, resumed, or exited.

SIMPLEFNS	Some simple functions.  Fns: COMBINATIONS, DKILL,
DKILLQ, FILE, FIRSTPART, IFF, KILL, LEAVES, SEARCH, SINGLES,
STRINGSUBST, SUPSETP, UNATTACH.

SIMPLIFY	Tools for symbolic simplification of Lisp forms.

SKIPTRAILER	A trivial package that modifies the FILERDTBL so that
Bravo trailers (i.e. sequences between ↑z and carrieage-return) will
be ignored.

SNAPSCROLL ... Advises snapw so that snapshot windows are scollable when 
reshaped.  This is very useful for snapping large lists and reading through 
them in smaller screen spaces. (See SNAPSCROLL.TED)

SOLITAIRE	The card game Solitaire (graphics demo).  Call:
(SOLO).

SPACEWINDOW	Puts a small "Space Allocation" window on screen.
Shows a bar-chart of the amounts of the four types of memory space
that have been allocated (fixed data, variable data, atoms, pnames).
Display is updated every 60 seconds.

SPY	Is a tool that helps you find out where your program is
spending its time. SPY gathers statistics by periodically interrupting
the running program, and looking back on the stack. SPY then will
display the timing information graphically, using the GRAPHER package.

STOCKICONS	Use with ICONW.  A collection of stock icon windows
suitable for use with ICONW.

STYLESHEET	Package which allows user to create a block of menus
which pop up all at once and don't go away until the user has dealt
with all the menus in the block and indicated that he is done.

SYSTAT	Redefines the CONTROL-T interrupt channel to put up a graphic
display instead of the usual type out.  Leftbuttoning SYSTAT.WINDOW
does an immediate Update.  Middlebuttoning SYSTAT.WINDOW gives user
choice among Quickly mode, Slowly mode, Updating, Deactivating, and
Reactivating.

TESTPAT	Test pattern(?).  Doesn't work.

TMENU	Provides: (1) Interactive menus intended for reducing typing.
Selected menu items are inserted into the TTY inpu buffer.  (2)
Windowshades that make windows "roll up" when not in use.  (3) Two
functions for managing PROMPTWINDOW.

TRACEIN	Facility for very low level tracing/stepping.  Options: step,
evaluate, finish, trace, prettyprint form, prettyprint value, retry,
exit with value to be returned, break.  Evalhook and watch modes of
operation.

TRAJECTORY-FOLLOWER	Provides a function which causes a snake to
crawl along a trajectory.  Trajectory is specified by a set of KNOTS
and a CLOSED flag.

TSET	Transor package.  LISP-toISP translator intended to help the
user who has a program coded in one dialect of LISP and wishes to
carry it over to another.  Described in Interlisp Reference Manual.

TTY	Simple set of functions, including prompted read, for
interacting with the TTY.  Easy to create programs that respond to
"commands" or sequenced entry with a varied amount of prompting for
input.

TTYIO 	Selective input fns: ASKFLE, ASKFN, ASKINT, ASKITEM, ASKITEMS,
ASKRL, ASKYN.

TWOD	A two-d graphics package.  Rather Siggraph-esque.

TXDT	Collection of Interlisp functions designed for those who wish
to build text editors in Interlisp.  Inserting, deleting, searching
and manipulating text in buffers.  Undoable modifications.  Provisions
for fonts.

WAM ... WindowActionMenu.  Attaches a menu to the side of a window which 
iconically represents various actions that can be taken on the target window.  
(See WAM.TED)

WINDOWACCESS	Contains ACCESSFNS for all the standard window
properties, allowing user to write code using fetch and replace
instead of WINDOWPROP function calls.