From: Alex S. Crain
Subject: Re: Lisp Archives
Date: 
Message-ID: <3007@umbc3.UMBC.EDU>
	My, my. Mondo responses on this one, I wish all my queries were so
so fruitful. Most of the responses were "please forward an info ...", so here
it is:

Arun Welch offers:
> The two that I know of are rascal.ics.utexas.edu and
> tut

Which is nice, but the award goes to  Jamie Zawinski <···@teak.berkeley.edu>, 
who replied with:
> That was me.  FTP to spice.cs.cmu.edu (128.2.254.139), log in as "anonymous",
> any password, cd to /usr/jwz/public/ (in one step, /usr/jwz/ and /usr/ are
> not accessible) and get the file "_readme.text".
> .cis.ohio-state.edu. Tut's mostly got Interlisp/Xerox Medley stuff.

I did, let me tell you, christmas came early this year! here's the _readme.text
file, ftp & enjoy.

			-*- Mode:Text -*-


This file has short descriptions of the files in this directory.
Most of the files have better descriptions in comments at the top.

In the following list, if a file names are preceded by special chars
indicating their portability:

  *  means portable Common Lisp;

  +  means enough of the code is portable Common Lisp to be runnable in any
     Lisp, but contains TI Explorer dependencies, usually graphics or a wizzy
     user interface.  These parts are (usually) easy to reimplement, and if
     you do so, you should send the code to me so nobody else will need to.

  -  means the code is Explorer specific, and you probably can't run it
     without hacking on it, but it would be easy or medium-easy to port
     to a new implementation.  (And if you do so...)

  <space>  means it's really really Explorer specific.  It might be of use
     on a Symbolics, but who knows.  For other implementations there's really
     no point, unless you just want to read it or something.

If a file is also preceded by a ! then I think it is way cool and everybody
should use it all the time.  (Just trying to help you prune your search...)

The file _recent-changes.text describes recent additions and
modifications to this archive.  If you have any useful or interesting
Lisp code that you would like me to add to this archive, send mail to
···@spice.cs.cmu.edu or ···@teak.berkeley.edu.

Since most of this code was developed on TI Explorers, and since the Explorer
editor (Zmacs) supports multiple fonts, some of the source code contains
font-change information, which will make the code unreadable on non-Explorer
Lisps.  If you have this problem, use the code in "strip-explorer-fonts.lisp"
to remove the font-change codes.

If you find things in this archive useful, send me your name and I will 
add you to a mailing list announcing new and wonderful things that arrive.


 - ANDREW-DATASTREAM	Code to read and display multimedia bulletin boards
			in the CMU Andrew datastream format.  The bboard-
			reader part of this isn't quite finished yet, but
			the parser/displayer works pretty well.

   APROPOS-PROPERTY	Defines a function for finding symbols with a given
			property (or with properties whose names match a
			given pattern).

 * AUDIO-TAPE		Code for generating PostScript to print tape labels.
 - AUDIO-TAPE-INTERFACE	A friendly ZMACS interface to the above code.
			See AUDIO-TAPE.TEXT for documentation.

   BIBTEX-MODE		A ZMACS major mode for editing BibTeX bibliography
			databases.  By Kenneth Traub.

   BIFF			Puts a little mailbox icon in your wholine.  The 
			little flag will go up when you have mail.  Requires
			the file BIFF-FONT.XLD in this directory.

 * BIG-DICTIONARY.TXT	An ISpell-format dictionary for use with the spelling
			checker in the PUBLIC; directory.  I created this 
			dictionary by merging the dictionary from CSC.TI.COM
			with two others I found at CMU.  It has about 60,000
			words, I think.

 * BIG-DICTIONARY.TXT.Z	A compressed version of the above, which may or may
			not be more convenient for you to transfer.

   BIT-ARRAY-EDITOR	A more recent version of the bit array editor from
			the PUBLIC; directory.  By Clint Hyde.

!  BOLD-LOCK		Code for using the Bold Lock and Italic Lock keys on
			the Explorer keyboard.  This defines a Zmacs minor-
			mode, "Bold-Lock Mode", which automatically changes
			the current font to correspond to the state of the 
			keys.  See the file BOLD-LOCK.TEXT for documentation.
			(This code is FAR superior to the code in the file
			SYS:PUBLIC;FONT-LOCK-KEYS.LISP from TI release 6!
			It "knows" that hl12b is the bold version of hl12,
			instead of always using font #n for bold, etc)

   BREAKOUT		The Atari game.  Works in color or monochrome.

 - CHANGELOG		Code for automating the changelog process - it 
			defines a ZMACS command, COM-INSERT-CHANGELOG, which
			moves the cursor to the end of the current buffer's
			changelog, and inserts the current date and user ID.  
			END moves the cursor back to its original position.

   CHOOSE-COLOR		Redefines the Profile color requester menu to display
			the colors on the menu, along with their names.

   CLEAR-RINGS		Clear the output history, command history, and kill
			rings to free up memory.  By David Forster.

   COLORBARS		Displays standard video colorbars on a color monitor.

   COMPARE-WINDOWS	Zmacs command like the GNU command.  By David Forster.

   COMPILE-MACRO-CALLERS  Compile all callers in the current buffer of a 
			prompted-for macro.

   COMPRESS		Paul Fuqua's port of the Unix 'compress' program.

 - COMPRESS-POSTSCRIPT	Code that converts a bitmap to PostScript, compressing
			the encoded data using run-length encoding.  This makes
			it print much faster.  The PostScript half is portable,
			the Lisp half is Lispm specific.

 * CONX			Given a body of text, this code will collect a word-
			occurance histogram and generate random sentences.
			Better than Zippy!  Written by Skef Wholey.

   DESCRIBE-DEFSTRUCT-DIFF  Given two structs of the same type, points out the
			differing slots.  By David Forster.

!  DESCRIBE-SYMBOL	Alters DESCRIBE so that it doesn't say so much about
			NIL, and so that describing a symbol which names
			a DEFSTRUCT describes that kind of structure.

 + DICTIONARY-CLIENT	Code for talking to the Webster's Dictionary server on
			pasteur.berkeley.edu.  Defines Zmacs commands that will
			give you the dictionary definition of any word; bold
			words in the def are mousable, and clicking on them
			gives you their definitions.  Mostly portable.

 + DICTIONARY-CLIENT-MIT  Same idea as DICTIONARY-CLIENT, but this one works 
			with the Webster protocol used by mintaka.lcs.mit.edu.
			By John Nguyen.

!- DOMAIN-STUBS/	This directory contains a Domain Stub Resolver for
			the explorer, written by Bjorn Victor.  With this, you
			don't need to have every host you ever want to contact
			in your network namespace - if there is a reference to
			an unknown host, an Arpa nameserver is contacted, and
			a namespace entry is built for that host (including
			exported services, system type, etc). Very cool.
			Don't forget to get the subdirectories of this as well.

   EDIT-NEWSRC		For use with the code in the NEWS/ directory - lets
			you edit your list of newsgroups like Edit Buffers.

!  EDIT-PRINT-QUEUE	Extends the PEEK utility to have an Edit Print Queue
			command, which allows the user to alter the state of
			the print queue on the local machine or a remote 
			print server.  Must be loaded on both machines.
			The remote-machine part of this code depends on the
			file PRINTER-REQUESTS-PATCH.LISP, also in this
			directory.

   EPSILONS		The Zmacs code for writing diagram lines to files
			is severely broken.  This is the fix.  

   EVALSERVER		Defines a server which allows evaluation of arbitrary 
			forms on a remote machine.  Returns the result.

   FGREP		Searches for a string in a file.  Can show the 
			line with that string, or the paragraph.  
			Case-sensitive, no pattern matching.

!  FINGER		Patches the finger daemon to print out more 
			information, which is obtained from the namespace.  So
			if someone fingers ····@explorer" and "foo" isn't 
			logged in to "explorer", the person calling finger will
			still be told "foo"'s real name, office number, etc.
			If there is a file called "explorer:foo;plan.text", 
			that file will be dumped.  This pathname can be 
			overridden on a user-by-user basis.  Also does phonetic
			matching, so misspelled names still work.

 - FIREWORKS-JWZ	A simple fireworks simulation.  Works as a screensaver.
 - FIREWORKS-PEZARIS	A different fireworks simulation.  Both of these are
			different from the one in the SYS:PUBLIC; directory.

   FONT-BITMAPS		Given a bitmap and a rectangle in it, store that image
			into some character of a font (creating or adjusting
			the font as necessary).  Useful for creating 
			replacements for the TI-LOGO font.

   FONTS/		This directory contains TI versions of most of the
			fonts distributed with X11r3; these fonts were created
			with the code in READ-BDF-FONT.LISP in this directory.
			There are four compressed "tar" archives here;
			uncompress them with the Unix "uncompress" program,
			and then extract the XLD files from each of them with
			tar, as in "tar -vxf <filename.tar>"
			  _README.TEXT:  Long listing of tar file contents.
			  FONTS-ADOBE.TAR.Z:  Times, Helvetica, Courier, 
			   Schoolbook, Symbol, and Charter in 8,10,14,18,24.
			  FONTS-ANDY.TAR.Z:   The Andrew fonts.
			  FONTS-MAC.TAR.Z: Fonts from Bmug and Info-Mac.
			  FONTS-X.TAR.Z: X10 fonts: cursor, xtrek, 8x13, etc.
			The Adobe and X fonts are the same as the fonts which
			are present in the SYS:X11M.FONTS.75DPI; directory
			of TI release 6, but the names are different, and
			they don't have lots of X-server info on their plists.

   GENERATE-ETC-HOSTS	Code to generate a UNIX /etc/hosts or /usr/lib/aliases
			file from an Explorer namespace.  Also code to show
			the machines in the Explorer namespace sorted by IP
			or CHAOS addresses, or alphabetically.

 - GREP			Searches for files containing given strings.  Doesn't
			do regexp comparisons, though; it uses the and/or 
			syntax that APROPOS uses.

 - GREYNETIC		Draws random grey (or color!) rectangles on the 
			screen or a window.  Very fast.

 - HELIX		A neat graphics hack by John Nguyen.  Screensaver.

 - HOPALONG		Draws pretty fractal patterns.  Uses color if
			available.

 - HYPERCUBE	        Spins a hypercube under keyboard control.  Color.
			Works as a screensaver.

 * IFF/			This directory contains code for reading and 
			displaying Amiga picture files, playing Amiga sound
			files, reading Sculpt-Animate 3D files, and 
			displaying scaled fonts which are stored in the SA3D
			format.  See the file iff/_readme.text for details.

   IMAGEN-PATCHES	Some patches to the TI's Imagen print driver.
			By John Nguyen.

   INSPECTOR-CONFIG	Defines two new inspector configurations, which have
			larger history windows, and have all of the 
			scrollbars at the left edge of the screen (big win).

 - INTERFERENCE		Interactively frobbing circular interference patterns.

   KEYMAP		Allows arbitrary remapping of the (raw) TI keyboard.

   LISP-SCRIBBLE	Makes Mouse-Left and Mouse-Middle on Lisp Listeners
			draw and erase lines, for doodling purposes...

!  LIVE-LISTENER	Alters the Lisp Listeners, typeout windows, and break
			loops to make everything printed with PRIN1 or PRINC
			be mousable, much like Symbolics listeners.  Kind of
			like a hybrid Listener/Inspector.

!  LOAD-PATCH		If LOAD is called on a pathname or string whose TYPE 
			component is not specified, and the source version is 
			newer than the binary, then the behavior is 
			controlled by a variable, whose value is :SOURCE,
			:BINARY, or :QUERY.

 * LOGICAL-PATHNAMES	An implementation of Explorer-like logical pathnames
			for Vax Lisp and CMU Common Lisp.  By David Forster.

   LOST-CONNECTION-HACK	Scenario: you have a long-running program reading from
			a multi-megabyte file on a different machine.  Someone
			reboots the remote machine on which the file lives.
			Shafted?  No.  This code will reopen the file, and 
			bash on the dead stream object enough that you can
			proceed with the connection invisibly reestablished!
			Just go down the stack and reinvoke READ-CHAR.

!  MAIL-ABBREV		When the point is the TO: or CC: fields of a send-mail
			buffer, word-abbrev mode is automatically on.  Defines
			a function for automatically generating send-mail-mode
			word-abbrevs from the :USER class of the namespace.
			Saves much typing, avoids much bounced mail.

!  MAIL-CLASSES		The Zmacs mailer doesn't have mail classes, but it does
			handle multiple saved-mail files; this defines some 
			read-mail commands that relieve you of the burden of
			remembering and typing mail file names, letting you
			use symbolic names instead.

   MAIL-APPEND		Defines a new editor command, Append Message to File,
			for use in Read Mail Mode.

!  MAIL-FONT-PATCH	Various redefinitions that cause the Mail Reader to
			allow multi-font messages.  This interacts well with
			the code in both BOLD-LOCK.LISP and MAIL-APPEND.LISP

!+ MANDELBROT		Window-based utility for exploring the Mandelbrot
			fractal set.  Uses a quad-tree approach to generating
			the image, and is bat-out-of-hell FAST.

 + MAZE			Code for generating and displaying random mazes.
			Works as a screensaver.

   MEMORY-MONITOR	Memory-consumption graph; by John Nguyen.

   MINOR-MODES-HACK	If you hate the interation between *INITIAL-MINOR-
			MODES* and buffer switching, this is for you.

 * MKSYS		A portable Common Lisp 'make' utility with a more sane
			syntax than DEFINE-SYSTEM.

   MODE-LINE-PERCENT	Adds a percent through file notation to the ZMACS mode
			line.

 - MODEM-H19		Code to simulate a Heath 19 terminal, talking to a 
			modem on the local machine's serial port.

!  MOUSE-RECORD		Code for recording and playing back mouse and keyboard
			activity.  The system cannot tell the difference 
			between  playback and an actual user moving an actual 
			mouse.

   MULT-MAIL-DOMAINS	Patches things so that all mail domains are searched,
			not just the first one.  By Eric Karlson.

 - NARRATE		You give it a number, and it reads it in english.  
			Requires the file NARRATE-SAMPLES.XLD in this 
			directory.

!- NATIONAL-DEBT	Display the current US national debt in the wholine.
			Updated every second.

   NEWS/		An NNTP netnews reader that runs in Zmacs.
			This is the same as the one on CSC.TI.COM.
			More current version in Rel6 public directory.

   NEWS-FILTER		A ``kill file'' utility for the code in the NEWS/
			directory.  By David Forster.

!  NEWS-FONTS		Makes the header fields of a news article be in a
			different font, thus easier to read. Other patches too.

!+ NSA-FILTER		Makes the world just a little bit safer for democracy.

!  PATHNAME-MODS	Some incredible functionality extensions to 
			Explorer pathnames, by James Rice and Rich Acuff.
			Lets you do things like 
			"LM: FOO; (and L* (not LOGIN-INIT)).LISP"
			to match L*.LISP except LOGIN-INIT.LISP

 + PHONEGEN		Given a phone-mnemonic, return the phone number; or,
			given a phone number generate every possible mnemonic.
			Or, given a phone number, generate every possible
			mnemonic that is a real word (requires the spelling
			dictionary to be loaded).

 * PHONES		These two files comprise a mouse-based phone number
   PHONES-INTERFACE	and address database program.  Many kinds of searches
			are possible.  Mousing on a network address tosses
			you into a mail buffer; mousing on a postal address
			tosses you into an editor buffer with a Scribe
			letter template begun; and much more.

!  PIPE-STREAM		Defines a general pipe utility, sort of like in Unix.
			Also Includes a patch to Zmacs so that when you visit
			a file whose name ends in ".Z", the file will be 
			uncompressed as it is read - this part requires the
			code from the file COMPRESS.LISP in this directory.

   PRINTER-REQUESTS-PATCH  Various enhancements/fixes to the TI print request
			code. See the comments at the top of the file.
			Do not load this along with the LPR code in REXEC/.

   PROCESS-MONITOR	Load-average graph; by John Nguyen.

   PS-FONT-MAP		The default TI->PostScript font map is scaled so that
			the right side of the page is at 80 columns.  This
			file defines a function that lets you adjust that
			(scaling the font map as a whole).  This file also
			adds the Adobe fonts (fromt the FONTS/ directory of
			this archive) to the font map.

 - QATTRACTION		A neat graphics hack by John Nguyen; swirling
			qix-like forms.  Screensaver.

 - QIX			Half-done implementation of the QIX video game.
			Works as a demo... feel free to finish it!
			There's some interesting code here for dividing 
			regions into rectangles.

 - QUAD-TRIANGLE	A neat graphics hack by John Nguyen; symetrical
			qix-like forms.  Screensaver.

   RAINBOW		Color monitor only - displays a scrolling rainbow 
			pattern on the whole screen using colormap cycling.

 - READ-BDF-FONT	Translates X Windows or Andrew font files to TI
			screen-fonts.  There are over 600 such fonts included
			with the X11r3 distribution, about half of which are
			included here in the FONTS directory.

 * READ-ANDREW-RASTER	Reads Andrew Toolkit image bitmaps.
 * READ-SUN-RASTER	Reads Sun Raster file bitmaps.
 * READ-X11-RASTER	Reads and writes X10 or X11 format (C source) bitmaps.

   REBOOT		Defines a function, REBOOT, which does the same thing
			as calling SI:SHUTDOWN, and then doing 
			Meta-Control-Meta-Control-Rubout.

!  REDEFINITION-PATCH	Redefines QUERY-ABOUT-REDEFINITION so that it will 
			time out to a default answer after N seconds.  
			Unattended compiles which get a redefinition query 
			will eventually continue.

   RESERVATIONS		Code for reserving time on an Explorer; useful if you
			share a machine with several people.  Will warn the
			logged-in user when their time is almost up, and will
			complain at anyone logging in when someone else is
			scheduled.  By David Forster.

 - REXEC/		Code that implements the RSHELL, REXEC, and LPD
			protocols.  This means that you can print files from
			an Explorer to a printer on a Unix machine.
			This does *not* get along with the code in 
			EDIT-PRINT-QUEUE and PRINTER-REQUESTS-PATCH.

 - ROCKS		A neat graphics hack by John Nguyen; something like
			the Sun JumpDemo - this one's an asteroid field.

 - RORSCHACH-SCREENHACK	Draws random inkblot-like patterns.  Screensaver.

!  SAMPLE-EDITOR	A window-based utility for recording, modifying, and
			saving digitally recorded sound.

 - SCHOOL-OF-FISH	A neat graphics hack by John Pezaris.  A group of
			guppy-like fish schooling around very realistically.
			Requires the font in FISHES-FONT.XLD in this directory.

!  SCREENSAVER-PATCHES	Various improvements to the version of the 
			ScreenSaver from SYS:PUBLIC;SCREEN-SAVER-MIT.  Makes
			it work in color, among other things (some might say
			"makes it work, period").

 - SCRIBE-MODE		Defines a minor mode which is to .MSS files what
			Electric Font Lock Mode is to .LISP files.  See the
			file SCRIBE-MODE.TEXT for documentation.

 - SEARCH-FILES		Another GREPalike, this one by David Forster.

   SENDMAIL-FINGER	When you send mail from Zmacs, the addresses and hosts
			printed will be mousable; clicking on them will fire 
			up FINGER in a popup window.

   SHOW-COMTAB		Code to display and search Zmacs comtabs.

 * SOUNDEX		Code for recognising similar words.  By David Forster.
			This is what FINGER.LISP uses for phonetic matching.

   SPACE-WAR		A one or two player space battle game.  By John Nguyen.
   SPACE-WAR-NET	A multi-player version of the above that works over
			the network.  Both of these require the file
			SPACE-DUEL-FONT.XLD, also in this directory.

   SPELLER-ADDITIONS	Enhancements to the code in SYS:PUBLIC.SPELLER; -
			See the file SPELLER-ADDITIONS.TEXT for documentation.

   SPIN			Graphics hack by John Pezaris; kind of like ROCKS but
			the objects follow spiral trajectories.

   SPLINE-SCREENHACK	Bounces a spline around the screen.  Screensaver.

 * STRIP-EXPLORER-FONTS CommonLisp code to strip out Explorer font-change
			information from a source file.  Some of the code in
			this directory has font information in it, so if you
			want to use it on another machine, you need to filter
			the code through this first.

   SUBDIR		Some code for walking directory trees - includes a
			function like the Unix 'du' program.

   SYMBOL-HELP		Makes the keyboard that comes up with Symbol-Help
			display the current font instead of the default font.

 + TALK/		This directory contains code for translating english
			text to phonetics, and speaking it using the D/A
			converter.  The speaking part doesn't quite work;
			the translation part is portable Common Lisp.
			See the file talk/_readme.text for details.

   TALKSERVER		Sets up a server for recording sound on the local host
			and playing it on a remote machine - "want to go to 
			lunch?"

   TELNET-NEWLINE-FIX	When telnetting in to a TI from a Unix machine, you
			cannot type Newline - so there is no way to complete
			a READ-LINE.  This fixes that.

   TERM-N-FIX		It is possible to see old notifications with the 
			PRINT-NOTIFICATIONS function - but if you saw the
			notifications with Terminal-N (because they were
			deferred, as by a screensaver) then once you have
			viewed them they are gone.  This fixes that.

   TETRIS		The dropping-blocks game; this has a two-player
			competition mode as well.  By John Nguyen.  Requires
			the file TETRIS-FONT.XLD from this directory.

   TIMER-QUEUE		A 'cron' like facility; more efficient than spawning
			a process for some applications.  By Dan Cerys.

   UNIX-MANUAL		Defines "Meta-X Manual Entry" to contact a unix machine
			and (with REXEC) look up an entry in the unix manual.
			The manual entry is put into a buffer, with some minor
			fontification (headings are bold, and underlining is
			turned into italics).  Requires the code in the REXEC/
			subdirectory of this archive.

 + UUMAPS		Code for parsing the UUCP map files; includes an
			almost-working 'pathalias' program.

   UWM-INTERFACE	For use with the KSL desktop; gives a 'uwm'-like 
			window management facility.  By John Nguyen.

 * VIDEO-TAPE		Code for generating pretty PostScript labels for
			video tapes.  This should have a whizzy UI like
			AUDIO-TAPE does, but...

   VOICEMAIL		A very simpleminded voicemail system.  Requires
			the code in EPSILONS.LISP and MAIL-FONT-PATCH.LISP.

   WHOIS		Given a user ID, looks up info in the namespace and 
			tells you about the user - real name, home host, 
			address, etc - in a pretty format.  This is obsoleted
			by the better code in FINGER.LISP.

 * WRITE-PBM-RASTER	Write a section of a bitmap to a PBM file.  (PBM is
			the common file format of a collection of image format
			conversion tools by Jef Poskanzer.)

   ZWEI-AUTOSAVE	An auto-save mode for Zmacs.  By John Nguyen.  Requires
			the file TIMER-QUEUE.LISP from this directory.

!  ZWEI-METHOD-DOCUMENTATION  Redefines the Describe Function (and Show 
			Arglist) commands to be much more clever.  Describing
			SEND really describes the method being sent; it's
			clever about sends to SELF; describes all submethods
			of a generic function; and lots more.  See the
			documentation in the file.

   ZWEI-UNKNOWN-FONTS-PATCH  If you visit a file which has a Fonts: field in
			its -*- line which refers to a font which does not
			exist on your system, Zmacs dives into the debugger.
			This redefines things so that a *warning* is printed,
			and the default font is substituted for the bad one.
			This is very useful if someone (like me) uses custom
			fonts that someone else (like you) doesn't have.



#################################		:alex.
#Disclamer: Anyone who agrees   #    University of Maryland Baltimore County
#with me deserves what they get.#	····@umbc3.umbc.edu
#################################