LISPUSERS PACKAGES SUMMARY The original source for this file is {ERIS}LISPUSERS.TTY. This file is a summary of all files on , 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, LIBRARY>, is offered by Xerox LISPSUPPORT, and is documented by LIBRARY>LISPLIBRARY.TTY. Contributors to LISPUSERS are encouraged to edit this file whenever they contribute or modify a package on . 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} you can use the DEF lispxmacro to define FOO: as {RED}. 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 ) starts it up. , if non-NIL, will replace the "Interlisp-D" logo; and , 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.