[comp.sys.amiga] Fish disk index + maintenance software

mwm@violet.berkeley.edu.UUCP (01/16/87)

This seems to have gotten lots, so here's a repost. Enclosed is a shar
archive with an alphabetical index of all the software on the first 46
Fish disks (all I have at the moment), plus software (mostly CLI
scripts) for semi-automatically adding new disks to the index. See the
README file for a description of both the index and how to use the
software.

Unless there is a great outpouring of requests, I don't plan on
posting updated versions of the Index; you should have everything you
need to create updated versions on your own.

	<mike


#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	Index
#	README
#	c
#	check
#	check.broken
#	check.edit
#	check.nopipe
#	d
#	detab.c
#	disk
#	disk.edit1
#	disk.edit2
#	disk.nopipe
#	setup
#	sort
#	sort.edit
#	sort.nopipe
# This archive created: Fri Jan 16 02:05:41 1987
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'Index'" '(27653 characters)'
if test -f 'Index'
then
	echo shar: "will not over-write existing file 'Index'"
else
sed 's/^	X//' << \SHAR_EOF > 'Index'
	X13     3dsolids1.bas            
	X33     3dstars         3d version of Leo's "stars" program (also on this disk).
	X27     ABdemos         Amiga Basic demos.  NewConvertFD creates .bmaps from
	X36     Acp             A copy program with filename expansion and argument
	X13     addbook.bas              
	X32     Address         Extended address book written in AmigaBasic.
	X29     AegisDrawDemo   Demo disk of the Aegis Draw program.  This is the
	X40     Ahost           Amiga terminal emulator featuring ANSI terminal emulation,
	X13     alg1.bas                 
	X13     algebra.bas              
	X2      alib            Object module librarian.
	X34     Alint           Support files for Gimpel lint to make it useful on the
	X17     Alive!          Digitized images
	X13     amgseq1.bas              
	X13     amiga-copy.bas           
	X12     amiga3d         Shows a rotating 3 dimensional solid "Amiga sign".
	X14     amiga3d         Shows a rotating 3 dimensional solid "AMIGA" sign.
	X1      amigademo       Graphical benchmark for comparing amigas.
	X18     AmigaDisplay    Yet another variation of a terminal emulator program.
	X40     AmigaMonitor    Dynamically display the state of the machine, including
	X1      amigaterm       Terminal emulation program with xmodem upload/download
	X20     AmigaToAtari    Source code for an Amiga to Atari ST object code format
	X41     AmigaVenture    A program which allows you to write your own Infocom-style
	X39     AnsiEcho        Some commands written in assembler.  Includes an
	X40     Arc             The ubiquitous compressing archiver program that
	X26     Archx           Yet more programs for bundling up text files and
	X40     AreaCode        Program which decodes area codes into state and locality.
	X12     ArgoTerm        Yet another terminal emulator program.  However, this
	X12     arrow3d         Shows a rotating 3 dimensional wire frame arrow.
	X35     ASendPacket     Example program for sending multiple packets asynchronously
	X18     Ash             Prerelease version of a C-shell like shell program.
	X46     Asm             A shareware macro assembler, submitted by the author.
	X28     Backgammon      Another game in AbasiC by the author of Monopoly.
	X1      balls           Simulation of the "kinetic thingy" with balls on strings
	X13     band.bas                 
	X4      banner          Prints horizontal banner (across screen).  From Decus
	X13     basic.bas                
	X43     BasicBoing      An AmigaBasic program which shows animation by page
	X43     Bbm             Demo copy of B.E.S.T. Software's Business Management
	X30     Bbs             A BBS for the Amiga (BBS-Amiga Version 1.1).
	X43     BbsList         A list of Bulletin Board Systems which support the
	X14     beep            Source for a function that generates a beep sound, like
	X4      bgrep           Another grep like utility, also using the Boyer-Moore
	X33     Bigmap          Program which demonstrates how to use the low-level
	X4      bison           A replacement for unix "yacc" command.  This is from
	X19     BlackJack       A line oriented (no graphics) blackjack game.
	X34     Blink           A linker written as a replacement for Alink.  Fully
	X40     Blink           A linker written as a replacement for Alink.  Fully
	X15     Blobs           A simple graphics program, reminiscent of the unix "worms"
	X4      bm              A grep like utility using the Boyer-Moore algorithm.
	X13     bounce.bas               
	X13     box.bas                  
	X13     brickout.bas             
	X18     Browser         A program that lets you wander around a file tree and
	X34     Browser         Updated version of the browser program released on disk
	X34     Btree           Routines to implement a B-tree algorithm and several
	X34     Btree2          Previous (original) version of btree routines.
	X26     C-kermit        Port of the popular "kermit" program, a flexible
	X34     Calendar        Appointment calendar that lets you visually add and
	X32     Calendar        Calendar/diary program written in AmigaBasic.
	X13     cancav.bas               
	X13     cancav1.bas              
	X13     canvas.bas               
	X13     cardfi.bas               
	X13     cardfi.correct           
	X13     cardfi.startup           
	X43     Cc              C compiler frontends for Manx and Lattice C, developed
	X2      cc              Unix-like frontend for Lattice C compiler.
	X29     Cc              Version of the Unix like C compiler frontend program,
	X3      cforth          A highly portable forth implementation.  Lots of goodies.
	X13     charstrip.bas            
	X46     CheckModem      A program which provides for executing other programs
	X13     circle.bas               
	X15     Clock           A simple digital clock program designed to be small and to
	X36     Clock           Updated version of the clock program released on disk
	X45     Clue            Clue board game.  Nice.
	X13     colorcircles.bas         
	X13     colorcircles1.bas        
	X1      colorful        Shows off use of hold-and-modify mode.
	X6      compress        Compress reduces the size of the named files using
	X10     conquest        You control an interstellar empire, decide which star
	X24     Conquest        You control an interstellar empire, decide which star
	X5      cons            Console device demo program with supporting macro routines.
	X35     ConsoleWindow   Example program for finding the intuition pointer to an
	X43     Copper          A copper list disassembler.  Dumps the contents of a
	X13     Copy.abc                 
	X40     Cosmo           An "asteriods" clone.  Suggested $6 donation.
	X28     Cpp             This is a copy of the Decus cpp, ported to the Amiga.
	X28     Cribbage        Another game in AbasiC by the author of Monopoly.
	X36     Csh             Csh like alternative to the CLI, with changes to
	X24     Csh             Second release of a csh-like alternative to the
	X41     Csh             Version 2.03 of Matt's Csh-like shell.  Executable only.
	X38     CSquared        Implementation of Circle Squared algorthm from Sept '86
	X13     cubes1.bas               
	X13     cutpaste.bas             
	X6      dadc            A digital computer impersonating an analog clock
	X13     date.bas                 
	X15     Dazzle          An eight-fold symmetry dazzler program.  Really pretty!
	X33     Dbuf.gels       Sample program that demonstrates the animation routines
	X2      dbug            Macro based C debugging package.  Machine independent.
	X41     Dbug            Macro based C debugging package.  Machine independent.
	X10     dehex           Simple little program to convert hex format file into
	X14     dex             Program to extract documentation in a human readable
	X40     Dg210           Data General D-210 Terminal emulator.  Suggested $12
	X1      dhrystone       Dhrystone benchmark program.
	X36     DietAid         Diet planning aid to allow the user to compile lists
	X14     dimensions      Programs to demonstrate three and four dimensional graphics.
	X35     DirUtil         Nice little program to wander around directory tree
	X40     DirUtil         Nice little program to wander around directory tree using
	X35     DirUtil2        Another variant of dirutil.
	X27     Disassem        A simple 68000 disassembler.  Reads standard Amiga
	X33     DiskMapper      Displays sector allocation of floppy disks.
	X20     DiskSalv        Program to recover files from a trashed AmigaDOS disk.
	X39     Display         Graphics display program to display HAM images from a
	X13     dog star data            
	X13     dogstar.bas              
	X40     DOSHelper       Windowing program to print help information about various
	X32     DosPlus1        First volume of CLI oriented tools for developers.
	X32     DosPlus2        Second volume of CLI oriented tools for developers.
	X1      dotty           Source to the "dotty window" demo on the Workbench disk.
	X11     dpslide         A slide show program for displaying graphic images
	X13     dragon.bas               
	X13     draw.bas                 
	X39     Driver          Demo device driver in source.  Functions as a RAM disk
	X41     DualPlayField   An example of using a dual-playfield screen, using a
	X27     DvorakKeymap    Example of a keymap structure for the Dvorak keyboard
	X13     dynamictriangle.bas      
	X36     Echo            An improved echo command with options to control
	X46     Egad            A gadget editor from the Programmers Network.  Very
	X13     Eliza.abc                
	X13     eliza.bas                
	X29     Enough          A new CLI execute file command that tests for various
	X13     ezspeak                  
	X13     ezterm.bas               
	X3      ff              A very fast text formatter, controlled exclusively by
	X35     FileRequester   A very nice file requester module for lattice C programs,
	X14     filezap         An updated version of the file zap utility first released
	X10     filezap         Patch program for any type of file.  Executable only,
	X13     fillibuster.bas          
	X30     FineArt         This is a collection of works from some of the best
	X15     Fish            "A demo program which runs an AnimOb in a double buffered
	X36     FixHunk         A program to modify executable files to allow them to
	X10     fixobj          Strip extraneous garbage off end of object files
	X38     FixObj          Strip extraneous garbage off the end of object files
	X36     Fm              File mapper program.  Uses trackdisk device to grab
	X30     FontEditor      Does what the name implies, edits font's.
	X13     fractal.bas              
	X13     fractal7.bas             
	X13     fractalrep.bas           
	X13     fractalrep1.bas          
	X1      freedraw        A small "paint" type program.  Free drawing, boxes,
	X5      freemap         Creates a visual diagram of free memory.  Comes with
	X13     fscape.bas               
	X1      gad             "Fun with Gadgets".  Demonstration program for use
	X41     GetFile         A very nice file name requester.  Unlike the earlier
	X14     gfxmem          An updated version of the graphical memory display
	X1      gfxmem          Graphical memory usage display program.  Watch your
	X14     gi              Converts DPaint brush files to C source files "necessary
	X13     gomoku.bas               
	X3      gothic          Gothic banner printer.  Prints DOWN the page, rather
	X4      grep            Decus grep (Get Regular Expression and Print).  Useful
	X13     gstest.bas               
	X13     gstest1.bas              
	X7      Hack            This is Version 1.0.1. Executables only.
	X8      Hack            This is Version 1.0.1. Sources for executables on disk 7.
	X25     Hack            This is Version 1.0.1E., with Amiga graphics enhancements.
	X13     haiku.bas                
	X13     haikucont.bas            
	X13     hal9000.bas              
	X1      halfbrite       Sample program that demonstrates "Extra-Half-Brite"
	X13     halley.bas               
	X38     Handler         An example that implements an AmigaDos Handler (device)
	X20     Hash            Small example program that computes the AmigaDOS directory
	X13     HauntedM.bas             
	X20     Hd              Hex dump utility using some ideas from Mike Higgin's
	X1      hello           Demonstrates creation of a simple window, "hello world".
	X13     hidden.bas               
	X38     Hp-10c          Program that mimics an HP-10c (Hewlett Packard calculator),
	X27     Hypocycloids    An electronic Spirograph inspired by an article in
	X12     IconExec        Associates a series of CLI commands with an icon
	X44     Icons           Some miscellaneous icons for your viewing pleasure.
	X10     iff             Routines to read and write iff format files.  Includes
	X16     iff             The Amiga Developers IFF disk
	X38     IffDump         Two programs for manipulating IFF files.  IFFENCODE grabs
	X12     images          Miscellaneous DPaint and digitized pictures, in iff
	X5      input.dev       In combination with hander.interface.asm (supplied),
	X43     InstIFF         A program which converts sampled sound files from the
	X19     JayMinerSlides  These are the Amiga slides produced/used by Jay Miner
	X46     Jive            A filter program which transforms its standard input
	X13     join.bas                 
	X5      joystick        Shows how to set up the gameport device as a joystick.
	X13     jpad                     
	X38     Jsh             A simple command line interpreter drawing on features from
	X4      kermit          This is an absolutely ancient kermit, who's only
	X5      keyboard        Sample program to demonstrate direct communications with
	X19     Keymap_Test     A program to test the keymapping routines and find
	X36     KickBench       Instructions and programs for creating and using a
	X1      latffp          Shows how to access the Motorola Fast Floating Point
	X41     LatticeXref     A cross reference listing of all symbols defined in the
	X5      layers          Shows use of the layers library, used by Intuition to
	X10     ld              I presume this stands for "list directory".  Lists
	X12     ld4             Another directory listing program using some graphics
	X22     Lemacs          Microemacs version 3.6 as enhanced and supported
	X34     Less            Like Unix "more", only better, with forward and
	X36     Lex             A program (not to be confused with the Unix lex program
	X31     Life            Executes the cellular automata game of LIFE in the
	X41     Lines           A line drawing demo program, reminiscent of the "sparks"
	X27     LinesDemo       A demo program which illustrates the use of proportional
	X19     LockMon         Find file locks.  Useful for discovering if programs
	X13     loz.bas                  
	X10     ls              Minimal implementation of UNIX ls.  Demonstrates
	X32     MacView         Allows viewing of a standard MacPaint picture file in
	X35     MacView         Allows viewing of standard MacPaint picture files in
	X45     Make            Another version of make that seems to be more complete
	X2      make            Subset of "unix" make command.  Useful, but does not have
	X2      make2           Another make subset command.
	X4      mandel          A Mandelbrot set program.
	X13     mandel.bas               
	X13     mandelbrot               
	X5      mandelbrot      Latest and greatest mandelbrot program.  New features
	X31     Mandelbrot      Latest version of Robert French's mandelbrot program,
	X21     Mandelbrot      Thomas Wilcox's Mandelbrot Set Explorer disk.
	X20     MandelBrots     Some mandelbrot images submitted for the "mandelbrot
	X18     MC68010         Complete information package for upgrading an Amiga
	X27     MemExpansion    Schematics and directions for building your own homebrew
	X33     MemView         Program which sets up a direct window into RAM, thus
	X13     menu.bas                 
	X13     menu1.bas                
	X30     MenuEditor      Create and edit menus, saving the result as either
	X42     mg              Micro Emacs with GNU command structure and lots of mouse support
	X6      microemacs      An upgraded version of microemacs originally distributed
	X23     microemacs      Full sources for v30, all ports
	X2      microemacs      Small, relatively portable version of emacs.  Has
	X28     MileStone       Another game in AbasiC by the author of Monopoly.
	X13     minipaint.bas            
	X24     Modula-2        A pre-release version of the single pass Modula-2
	X9      moire           Draws moire patterns in black and white in a borderless
	X15     Monopoly        A really nice monopoly game written in AbasiC.
	X5      mouse           Shows how to set up the gameport device as a mouse so
	X13     mouse.bas                
	X13     mouse1.bas               
	X13     mousemove.bas            
	X6      mult            Mult reads the input comparing adjacent lines.  In the
	X18     Multidim        Lets you rotate a 2 to 6 dimensional "cube" on the
	X20     MultiTasking    Tutorial and example program for multitasking at the Exec
	X9      MVP-FORTH       Mountain View Press Forth, version 1.00.03A.
	X31     MxExample       Example of mutual exclusion gadget handling.
	X46     My.lib          A binary only copy of Matt's alternate runtime library.
	X4      MyCLI           Another CLI for the AMIGA.
	X34     NewFonts        Set of 28 new Amiga fonts.
	X44     NewIFF          Some new iff material dealing with sampled voice
	X38     NewStat         Replacement program for the AmigaDOS STATUS command.  Prints
	X33     Oing            Displays a window full of little bouncing balls.
	X15     OkidataDump     Okidata ML92 driver and WorkBench screen dump program.
	X5      one.window      Produces a window with a console attached.  Does graphics
	X13     Orthello.abc             
	X28     Othello         Another game in AbasiC by the author of Monopoly.
	X13     Othello.abc              
	X20     Pack            Program to strip extraneous whitespace from C programs
	X40     PagePrint       Prints text files with date/time header, page breaks, and
	X1      palette         Sample program for designing color palettes.
	X5      parallel        Demonstrates access to the parallel port.
	X13     patch.abc                
	X14     pdterm          A simple terminal emulator that does ANSI or DEC VT-100
	X22     Pemacs          Microemacs as enhanced by Andy Poggio.  New features
	X13     pena.bas                 
	X11     pictures        Miscellaneous DPaint and digitized pictures, in iff
	X45     Pictures        Miscellaneous pictures selected from dozens of pictures
	X18     PigLatin        Tired of the "say" command?  This one will translate
	X13     pinwheel.bas             
	X29     Player          Animation player for Aegis Animator.  Received directly
	X35     Plop            Short, simple, no-frills IFF reader program, and
	X15     Polydraw        A drawing program written in AbasiC.
	X15     Polyfractals    A fractal program written in AbasiC.
	X35     PopCLI          Provides a simple way of starting another CLI at any
	X40     PopCLI          Provides a simple way of starting another CLI at any
	X43     PopColours      Lets you change the Red/Green/Blue components of any
	X2      portar          Portable archiver.  Used to bundle text file up into a
	X20     PortHandler     A sample Port-Handler program that performs
	X34     Pr              A background print utility with several options for
	X5      print.support   Printer support routines.  Currently won't compile,
	X5      printer         Shows how to open and use a printer, does a screen dump
	X5      proctest        Sample code to create a process, set up message ports,
	X9      proff           Another text formatting program.  This one is significantly
	X46     ProffMacros     Subset implementations of the Berkeley "ms" and System V
	X26     Ps              A program to display process priorities and another
	X32     Puzzle          Simulation of puzzle with moving square tiles.
	X13     qbox.bas                 
	X35     QuickCopy       Three versions of quickcopy, a nice little full disk
	X31     RamSpeed        Program to measure raw memory speed, comparing internal
	X20     Random          Random number generator in assembly.  Much faster than
	X13     random-circles.bas       
	X44     RayTracePics    Ray tracing pictures, some of which appeared on disk
	X5      region          Demonstrates how a drawing area can be split into linked
	X34     Requester       A file name requester that looks like the one used in
	X1      requesters      Sample program and documentation for building and
	X38     Reversi         Program to play reversi game.  Version 6.1.
	X13     rgb.bas                  
	X13     rgbmenu.bas              
	X13     rgbmenu1.bas             
	X13     rgbtest.bas              
	X13     rickstest.bas            
	X3      roff            A "roff" type text formatter, roughly following
	X13     ror                      
	X13     Rord.bas                 
	X29     Rubik           An animated Rubik's cube program based on Barry Whitebook's
	X13     sabotage.bas             
	X27     SafeMalloc      Ever have a program that corrupts it's own memory?  Well,
	X13     salestalk.bas            
	X5      samplefont      A sample font that produces clubs, hearts, spaces, and
	X6      scales          Demonstrates use of the Audio functions in the ROM to
	X27     ScienceDemos    Some science demos.  Sidereal is a tutorial program which
	X33     ScreenDump      Dumps rastport of highest screen/window to printer.
	X18     Scrimper        Short for "SCReen IMage PrintER".  A screen dump utility
	X35     ScrollPf        Creates and displays a 400 by 300 by 2 bit plane
	X33     Sdb             Simple database program, originally released on a
	X35     SendPacket      General purpose subroutine to send AmigaDos packets.
	X5      serial          Demonstrates access to the serial port.  Requires an
	X31     Set             Replacement for the Manx "set" command (to set or
	X12     SetAlternate    Merge the images from two icons to produce one icon with
	X41     SetFont         A program to change the font used in a workbench screen.
	X9      setlace         Program to toggle interlace mode on and off.
	X20     SetMouse2       Program to set the mouse port to either the left port or
	X6      setparallel     Allows the CLI user to dynamically change any particular
	X6      setserial       Allows the CLI user to dynamically change any particular
	X12     SetWindow       Define window to be used for IconExec'ed commands
	X13     shades.bas               
	X13     shapes.abc               
	X28     Shar            A program which can pack and unpack archives compatible
	X14     shell           A simple csh style shell with history and some other
	X32     ShowHAM         Program to display HAM (Hold And Modify) mode images
	X13     shuttle.bas              
	X5      singlePlayfield Creates and displays a 320 by 200 by 2 bit plane
	X13     sketchpad.bas            
	X9      skewb           Not quite sure what this is supposed to be, it was
	X37     Smalltalk       A port of the Arizona Little Smalltalk system.
	X32     Solitaire       Two new ABasiC games, Canfield and Klondike.  
	X6      sortc           A quicksort based sort program, using separate driver
	X13     sp.bas                   
	X13     spaceart.bas             
	X9      sparks          Graphics demo that draws a "moving pathway", adding
	X13     speak.bas                
	X1      speech          Sample speech demo program.  Stripped down version of
	X13     speech.bas               
	X5      speech.demo     A much simplified version of speechtoy.  Also includes
	X13     speecheasy.bas           
	X20     SpeechTerm      Terminal emulator that can speak the received text.
	X1      speechtoy       Another speech demo program.  Cute.  You have to see this
	X5      speechtoy       Latest and greatest version of Dave's cute speech demo
	X13     spell.abc                
	X13     spell.bas                
	X13     spelling.bas             
	X13     sphere.abc               
	X13     sphere.bas               
	X32     Spin3           Simple program that creates spinning cubes and transforms
	X13     spiral.abc               
	X13     spiral.bas               
	X43     SpriteClock     A very simple clock that uses a sprite as it's display
	X40     SpriteEd        Lets you simultaneously edit two sprite pairs to form
	X35     SpriteMaker     Program which lets you paint sprites and then converts
	X33     Sproing         Same as Oing but includes sounds of balls colliding with
	X10     sq.usq          Squeeze and unsqueeze, from the CPM world.  Works, but
	X33     Stars           Displays a screen full of stars, reminiscent of a view
	X12     StarTerm        Another terminal emulator program.  ASCII and XMODEM
	X30     StarTerm        Starterm version 3.0.  Very nice telecommunications
	X43     STEmulator      Turns your Amiga into an Atari ST (sort of).  Be sure
	X29     StringLib       A public domain reimplementation of the Unix string
	X6      stripc          Strips comments and extraneous whitespace from C source
	X13     striper.bas              
	X28     SuperBitMap     An example program that shows how to use ScrollLayer,
	X13     superpad.bas             
	X13     suprsphr.abc             
	X32     Sword           Sword of Fallen Angel.  Text adventure game written
	X13     talk.bas                 
	X20     Ted             Demo version of an editor that has since been
	X14     termcap         A (mostly) unix compatible implementation of a termcap
	X13     terminal.bas             
	X13     terminal3.bas            
	X33     TermPlus        Yet another variant of Michael Mournier's AmigaTerm
	X13     termtest.bas             
	X5      text.demo       Sample program that asks AvailFonts() to make a list of
	X5      timer           Simple timer example program.  Includes dynamic
	X13     tom.bas                  
	X13     tom2.bas                 
	X13     topogrpy.bas             
	X13     toybox                   
	X1      trackdisk       Demonstrates use of the trackdisk driver.  Useful example
	X5      trackdisk       Demonstrates use of trackdisk driver.  Useful example of
	X35     Tracker         Program which converts a boot-load disk (I.E. a kickstart
	X32     Trails          Cute little program that leaves a trail behind the
	X31     Tree            Draws a recursive tree (green leafy type, not files).
	X10     trek73          A Star Trek game.  This one is just crying out to
	X13     triangle.bas             
	X35     TriClops        Very nice graphics oriented 3-D space invasion game.
	X35     Tsize           A simple utility to print directory tree sizes.  Displays
	X36     TunnelVision    Another fine ABasiC game from David Addison.  This is
	X31     TxEd            Latest demo version of Microsmith's text editor, TxEd.
	X13     uart.bas                 
	X26     UnHunk          Tool to process the Amiga "hunk" loadfile format.
	X35     UnIfdef         Useful program for removing ifdef'ed sections from a file
	X45     Update          Used to update an older working disk with files from a
	X38     UUdecode        Programs to encode/decode binary files for transmittal
	X46     ValSpeak        A filter program which transforms its standard input
	X36     Vc              Visicalc-like spreadsheet calculator program.
	X31     VDraw           Drawing program, based on freedraw, but now transformed
	X38     Vdraw           Drawing program, based on freedraw, but now transformed
	X44     ViewILBM        Reads an ILBM file and displays as a screen/window
	X38     VoiceFiler      Voice filer program for Yamaha DX series synthesizers.
	X29     Vt100           A vt100 emulator program with Kermit and Xmodem file
	X33     Vt100           Release 2.0 of Dave's version of AmigaTerm.
	X36     Vt100           Version 2.2 of Dave's vt100 emulator program including
	X41     Vt100           Version 2.3 of the ever popular vt100 terminal program.
	X35     Vttest          Program to test compatibility of vt100-compatible
	X43     WBrun           A program designed to allow any program to be invoked from
	X13     wheels.abc               
	X45     WhereIs         Program which searches a disk for the first or multiple
	X43     Wild            Two versions of Unix shell style wildcard matching routines.
	X38     Window          Sample program which shows how to create a DOS window
	X40     X-Spell         A spelling checker to proofread text files and then allow
	X13     xeno1.bas                
	X13     xenos.abc                
	X31     Xicon           Contains two programs; Xicon which lets you use icons to
	X3      xlisp           A nice little lisp implementation.  Compiles and links
	X39     Xlisp           Small lisp type interpreter, binary only (source to
	X18     Xlisp1.6        A very nice little lisp for those that want to study the
	X13     xmodem                   
	X13     XmoStriper.abc           
	X2      xrf             C cross reference utility.  Originally from Decus C
	X36     YaBoing         A game program demonstrating hardware sprite usage,
	X10     yachtc          Dice game.
SHAR_EOF
if test 27653 -ne "`wc -c < 'Index'`"
then
	echo shar: "error transmitting 'Index'" '(should have been 27653 characters)'
fi
fi
echo shar: "extracting 'README'" '(6708 characters)'
if test -f 'README'
then
	echo shar: "will not over-write existing file 'README'"
else
sed 's/^	X//' << \SHAR_EOF > 'README'
	XThis disk consists of an Index of the Fish disks (:Index), the
	Xreadme.list#n files from those disks (:lists), and lists of what's on
	Xeach disk (:files), and software that can be used to add new lists
	X(:s). It also has 1) the one piece of non-AmigaDOS software you'll
	Xneed in binary form (:c/detab), and enough thing to make copying new
	XFish disk, and then including them in the index easy (in :c).
	XFinally, there are edit scripts (<name>.edit) used by the above
	Xscript, and an input file used by check (check.broken).
	X
	XThe Index has the following format:
	X
	X	<disk number>	<Program name>	<comments>
	X
	XThe list is sorted alphabetically, not by disk number (though
	Xthat wouldn't be hard to generate). The comments are, for the
	Xmost part, the first line of the program description from the
	Xlist.readme#n files. As such, they may not be complete, though
	Xthey should be accurate. Since disk #13 didn't have any such
	Xcomments, and I don't hack much basic, none are provided.
	X
	XSince the index was mechanically generated, there are liable to
	Xbe errors in it. I'd appreciate hearing about them. You can send
	Xelectronic updates to me at the address below. (Actually, I hope
	Xthat Fred Fish gets this stuff, and starts distrbuting verified
	Xcorrect versions in the future!)
	X
	XThe provided scripts are:
	X
	Xsetup	- just makes some assignments for the other disks, and
	X	  adds :c to your path.
	X
	Xd	- just run diskcopy from df0: to df1:. Used in making copies
	X	  of the fish disks.
	X
	Xc	- copies things from a Fish disk in df0: to the correct
	X	  place on this disk.
	X
	Xcheck	- checks the :files directory to verify that everything
	X	  in it is actually from the disk it claims to be from.
	X
	Xdisk	- Takes things from the :lists directory, puts them in
	X	  the correct format for the index, and adds them to a
	X	  temporary file.
	X
	Xsort	- Takes the output from the disk scripts, and sorts it
	X	  into the Index.
	X
	XIn useage, you should first execute setup (there's a copy of
	Xexecute on the disk, called :c/x) with a single symbol as an
	Xargument; for instance "execute df1:s/setup df1:". This will tell
	Xyou what else should be on df1: (or ram: or fish_Index:, or
	Xwherever you put it), assign some symbols, including s: to :s,
	Xand put :c in your path, so that you can reference the rest of
	Xthe scripts by "x <script>."
	X
	XAfter this, you should run the "c" script for all disks you wish
	Xto add to the index (running them more than once won't hurt).
	XJust to make making copies easier while you do this, you can find
	Xdiskcopy in :c/d. C should be told the number of the Fish disk
	Xyou think is in drive df0:, and will tell you what number it
	Xactually got. For instacne, if Fish disk 34 is in df0:, you'd say
	X"x c 34", and it'd report back "readme.list34". If it's wrong,
	Xdon't worry about it; just make sure you rerun x with the correct
	Xnumber for this disk, and for the disk you told it the first time
	Xif you plan on adding it to the index this time.
	X
	XIf you're not sure that things are correct at this stage, you can
	Xrun the "check" script; just "x check". It'll report if anythings
	Xbroken. You'll then need to examine the files :lists/#, with #
	Xbeing the numbers of the disks you added, to see which are still
	Xbroken. If you aren't going to add that disk (or it's already in
	Xthe index), just delete it and rerun check. If you are going to
	Xadd that disk, put it in drive 0: and rerun c.
	X
	XAfter that, the script disk needs to be run once for each disk to
	Xbe added to the list, once again with the disk number as an
	Xargument. For instance, if you've already c'd in disk 34, 35 and
	X36, and wish to add them to the index, you'd issue (in no
	Xparticular order), "run x disk 34", "run x disk 35", and "run x
	Xdisk 36".  This doesn't do any checking; it assumes things are
	Xright.
	X
	XNote that you HAVE to get these right. Running a disk twice will
	Xcause duplicate entries in the index. You can start over by
	Xdeleteing t:index.unsorted, and then running the correct set of
	Xdisk commands.
	X
	XThis leaves a file (normally in ram) of all the entries on the
	Xnew disks. At this point, you should edit the file
	Xt:index.unsorted by hand, delete any extraneous material, and
	Xcorrect any comments. You can then add them to the index (sorted)
	Xby doing "run x sort".  It will add them to the index
	X(carefully), and then clean things up.
	X
	XComments on the scipts:
	X
	XThese scripts have been written both to be readable, and to be as
	Xportable as possible. Keywords are used in almost all cases, and
	Xyou should be able to make heads and tails of them even if you
	Xaren't very familiar with the CLI (of course, you should be
	Xfamiliar with SOME command language). The portabiliy was enhanced
	Xby carefully *NOT* using any tools that aren't provided on the
	XAmigaDOS disks unless absolutely vital. The one case where this
	Xwas violated was the detab program. I may put the source on this
	Xdisk; the binary is in :c. Those of you that get the index &
	Xsoftware through an ASCII-only source will definitely have the
	Xsource.
	X
	XThe second violation of the portability rule is in using pipes.
	XYou should be able to live without them by using
	X<scriptname>.nopipe, or renaming that to <scriptname> after
	Xrenaming <scriptname> to <scriptname>.pipe; most were munged up
	Xfrom the piped versions. Since the piped version run MUCH faster,
	Xthey are highly recommended.
	X
	XFinally, the scipts take care not to mangle old files when
	Xworking on new versions. Most notably, it is possible for the
	Xedit scripts in disk to break (correction: they *do* break,
	Xmostly on disks that aren't Fish collections, but are copies of
	Xsome other PD disk), thus leaving everything waiting on them
	Xhanging. This includes the output file for the end of the pipe.
	XTo keep from clobbering real output files, these are always
	Xcopied over after the pipe has finished. The usuall thing to do
	Xis to get a CLI prompt (which is why you "run" the disk script)
	Xexamine the file Fish:lists/#, where # is the number of the disk
	Xyou just tried to do. If it's obviously in the "not a collection"
	Xformat, just skip it, and add it to the t:index.unsorted file by
	Xhand. If you need to reboot to reclaim the memory of the
	Xprocesses stuck in the pipe, you should copy t:index.unsorted to
	Xpermanent storage, then put it back after you reboot and execute
	Xsetup.  Disk.nopipe is usefull for debugging these if it's not
	Xobvious what's going on. It outputs the edit command just before
	Xit issues it, so you can type it without the "ver nil:" option,
	Xand it will tell you exactly what it thought was wrong. Of
	Xcourse, you have to understand edit error messages.
	X
	XYou can, of course, change the assignments from the defaults in
	Xsetup. If you do, you're on your own; but it can make things much
	Xeasier!
	X
	X	Good luck,
	X	<mike
	X	mwm@berkeley.edu
	X	ucbvax!mwm
	X
SHAR_EOF
if test 6708 -ne "`wc -c < 'README'`"
then
	echo shar: "error transmitting 'README'" '(should have been 6708 characters)'
fi
fi
echo shar: "extracting 'c'" '(124 characters)'
if test -f 'c'
then
	echo shar: "will not over-write existing file 'c'"
else
sed 's/^	X//' << \SHAR_EOF > 'c'
	X.KEY num/a
	Xcopy df0:readme.list<num> Fish:lists/<num>
	Xlist >Fish:files/<num> df0: quick
	Xsearch Fish:files/<num> readme.list
SHAR_EOF
if test 124 -ne "`wc -c < 'c'`"
then
	echo shar: "error transmitting 'c'" '(should have been 124 characters)'
fi
fi
echo shar: "extracting 'check'" '(163 characters)'
if test -f 'check'
then
	echo shar: "will not over-write existing file 'check'"
else
sed 's/^	X//' << \SHAR_EOF > 'check'
	Xrun search >pipe:search-out from Fish:files search readme.list
	Xrun edit from pipe:search-out to pipe:execute-in with s:check.edit ver nil:
	Xexecute pipe:execute-in
SHAR_EOF
if test 163 -ne "`wc -c < 'check'`"
then
	echo shar: "error transmitting 'check'" '(should have been 163 characters)'
fi
fi
echo shar: "extracting 'check.broken'" '(85 characters)'
if test -f 'check.broken'
then
	echo shar: "will not over-write existing file 'check.broken'"
else
sed 's/^	X//' << \SHAR_EOF > 'check.broken'
	Xelse
	Xecho "A disk is misnumbered; check t:search-out to see which one"
	Xquit 20
	Xendif
SHAR_EOF
if test 85 -ne "`wc -c < 'check.broken'`"
then
	echo shar: "error transmitting 'check.broken'" '(should have been 85 characters)'
fi
fi
echo shar: "extracting 'check.edit'" '(90 characters)'
if test -f 'check.edit'
then
	echo shar: "will not over-write existing file 'check.edit'"
else
sed 's/^	X//' << \SHAR_EOF > 'check.edit'
	X0(f/../; n; dtb/list/; e/list/ /; p; e//IF/; ep/../ EQ/; #; cl//; n; i+s:check.broken+)
	Xw
SHAR_EOF
if test 90 -ne "`wc -c < 'check.edit'`"
then
	echo shar: "error transmitting 'check.edit'" '(should have been 90 characters)'
fi
fi
echo shar: "extracting 'check.nopipe'" '(176 characters)'
if test -f 'check.nopipe'
then
	echo shar: "will not over-write existing file 'check.nopipe'"
else
sed 's/^	X//' << \SHAR_EOF > 'check.nopipe'
	Xsearch >t:search-out from Fish:files search readme.list
	Xedit from t:search-out to t:execute-in with s:check.edit ver nil:
	Xexecute t:execute-in
	Xdelete t:search-out t:execute-in
SHAR_EOF
if test 176 -ne "`wc -c < 'check.nopipe'`"
then
	echo shar: "error transmitting 'check.nopipe'" '(should have been 176 characters)'
fi
fi
echo shar: "extracting 'd'" '(20 characters)'
if test -f 'd'
then
	echo shar: "will not over-write existing file 'd'"
else
sed 's/^	X//' << \SHAR_EOF > 'd'
	Xd from df0: to df1:
SHAR_EOF
if test 20 -ne "`wc -c < 'd'`"
then
	echo shar: "error transmitting 'd'" '(should have been 20 characters)'
fi
fi
echo shar: "extracting 'detab.c'" '(1318 characters)'
if test -f 'detab.c'
then
	echo shar: "will not over-write existing file 'detab.c'"
else
sed 's/^	X//' << \SHAR_EOF > 'detab.c'
	X/*
	X * detab - nice, simple detabber. Just for grins (why hasn't this
	X *	been writen?).
	X */
	X
	X#include <stdio.h>
	X
	Xvoid
	Xmain(argc, argv) char **argv; {
	X	register short	c, current_position = 1 ;
	X 	register FILE	*input_file, *output_file ;
	X	
	X	if (argc != 3) {
	X		fprintf(stderr, "useage: %s from_file to_file\n", argv[0]) ;
	X		exit(20) ;
	X		}
	X	if ((input_file = fopen(argv[1], "r")) == 0) {
	X		fprintf(stderr, "%s: Can't open %s\n", argv[0], argv[1]) ;
	X		exit(20) ;
	X		}
	X	if ((output_file = fopen(argv[2], "w")) == 0) {
	X		fprintf(stderr, "%s: Can't open %s\n", argv[0], argv[2]) ;
	X		exit(20) ;
	X		}
	X	/* Ready, set, go! */
	X	while ((c = fgetc(input_file)) != EOF) {
	X		if (c == '\n' || c == '\r') current_position = 0 ;
	X		else if (c == '\t') {
	X			c = ' ' ;
	X			while ((current_position & 7) != 7) {
	X				if (fputc(c, output_file) == EOF) {
	X					fprintf(stderr, "%s: Error writing to %s\n",
	X							argv[0],	argv[2]) ;
	X					exit(20) ;
	X					}
	X				current_position += 1 ;
	X				}
	X			}
	X		if (fputc(c, output_file) == EOF) {
	X			fprintf(stderr, "%s: Error writing to %s\n",
	X					argv[0],	   argv[2]) ;
	X			exit(20) ;
	X			}
	X		current_position += 1 ;
	X		}
	X	if (fclose(input_file) != 0)
	X		fprintf(stderr, "%s: Error closing %s\n", argv[0], argv[1]) ;
	X	if (fclose(output_file) != 0)
	X		fprintf(stderr, "%s: Error closing %s\n", argv[0], argv[2]) ;
	X	}
SHAR_EOF
if test 1318 -ne "`wc -c < 'detab.c'`"
then
	echo shar: "error transmitting 'detab.c'" '(should have been 1318 characters)'
fi
fi
echo shar: "extracting 'disk'" '(466 characters)'
if test -f 'disk'
then
	echo shar: "will not over-write existing file 'disk'"
else
sed 's/^	X//' << \SHAR_EOF > 'disk'
	X.KEY num/a
	Xif exists t:index.unsorted
	X	copy from t:index.unsorted to t:in
	Xelse
	X	copy from nil: to t:in
	Xendif
	Xrun edit from Fish:lists/<num> to pipe:edit with s:disk.edit1 ver nil:
	Xrun edit from pipe:edit to pipe:edit-out with s:disk.edit2 ver nil:
	Xrun echo >pipe:edit-com "0(e//<num>	/; n ); w"
	Xrun edit from pipe:edit-out to pipe:join-in with pipe:edit-com ver nil:
	Xjoin t:in pipe:join-in as t:index.tmp
	Xcopy t:index.tmp to t:index.unsorted
	Xdelete t:in t:index.tmp
SHAR_EOF
if test 466 -ne "`wc -c < 'disk'`"
then
	echo shar: "error transmitting 'disk'" '(should have been 466 characters)'
fi
fi
echo shar: "extracting 'disk.edit1'" '(57 characters)'
if test -f 'disk.edit1'
then
	echo shar: "will not over-write existing file 'disk.edit1'"
else
sed 's/^	X//' << \SHAR_EOF > 'disk.edit1'
	Xdf /	/; 0(f b/	/; d )
	Xbf /=======================/; 0d
	Xw
SHAR_EOF
if test 57 -ne "`wc -c < 'disk.edit1'`"
then
	echo shar: "error transmitting 'disk.edit1'" '(should have been 57 characters)'
fi
fi
echo shar: "extracting 'disk.edit2'" '(15 characters)'
if test -f 'disk.edit2'
then
	echo shar: "will not over-write existing file 'disk.edit2'"
else
sed 's/^	X//' << \SHAR_EOF > 'disk.edit2'
	X0(f p//; d )
	Xw
SHAR_EOF
if test 15 -ne "`wc -c < 'disk.edit2'`"
then
	echo shar: "error transmitting 'disk.edit2'" '(should have been 15 characters)'
fi
fi
echo shar: "extracting 'disk.nopipe'" '(620 characters)'
if test -f 'disk.nopipe'
then
	echo shar: "will not over-write existing file 'disk.nopipe'"
else
sed 's/^	X//' << \SHAR_EOF > 'disk.nopipe'
	X.KEY num/a
	Xif exists t:index.unsorted
	X	rename t:index.unsorted as t:in
	Xelse
	X	copy from nil: to t:in
	Xendif
	Xecho "edit from Fish:lists/<num> to t:edit with s:disk.edit1 ver nil:"
	Xedit from Fish:lists/<num> to t:edit with s:disk.edit1 ver nil:
	Xecho "edit from t:edit to t:edit-out with s:disk.edit2 ver nil:"
	Xedit from t:edit to t:edit-out with s:disk.edit2 ver nil:
	Xecho >t:edit-com "0(e//<num>	/; n ); w"
	Xecho "edit from t:edit-out to t:join-in with t:edit-com ver nil:"
	Xedit from t:edit-out to t:join-in with t:edit-com ver nil:
	Xjoin t:in t:join-in as t:index.unsorted
	Xdelete t:in t:edit t:edit-out t:edit-com t:join-in
SHAR_EOF
if test 620 -ne "`wc -c < 'disk.nopipe'`"
then
	echo shar: "error transmitting 'disk.nopipe'" '(should have been 620 characters)'
fi
fi
echo shar: "extracting 'setup'" '(447 characters)'
if test -f 'setup'
then
	echo shar: "will not over-write existing file 'setup'"
else
sed 's/^	X//' << \SHAR_EOF > 'setup'
	X.key fish/a
	Xecho "<fish> should contain the following directories:"
	Xecho "	files	- output of a 'list quick' on each fish disk."
	Xecho "	lists	- the readme.list#n files for fish disk #n."
	Xecho "	s	- the index twiddling scripts."
	Xecho "	c	- place for non-standard binaries (currently sortc)"
	Xecho "See the script 'c' to see how the lists and files directories are created."
	Xecho ""
	Xassign Fish: <fish>
	Xassign s: Fish:s
	Xassign t: ram:
	Xpath fish:c add
SHAR_EOF
if test 447 -ne "`wc -c < 'setup'`"
then
	echo shar: "error transmitting 'setup'" '(should have been 447 characters)'
fi
fi
echo shar: "extracting 'sort'" '(499 characters)'
if test -f 'sort'
then
	echo shar: "will not over-write existing file 'sort'"
else
sed 's/^	X//' << \SHAR_EOF > 'sort'
	X; delete things as soon as we done, just to save space.
	Xif exists t:index.unsorted
	X	run stack >pipe:stack
	X	run edit from pipe:stack to pipe:stack-com with s:sort.edit ver nil:
	X	run join t:index.unsorted fish:index as pipe:detab
	X	run detab pipe:detab pipe:index
	X	stack 50000			; Gimme ROOM!
	X	sort pipe:index to t:Index.t colstart 7
	X	execute pipe:stack-com		; Now put things back
	X	copy from t:Index.t to Fish:Index
	X	delete t:index.t t:index.unsorted
	Xelse
	X	echo "Hey, nothing out there to sort!"
	Xendif
SHAR_EOF
if test 499 -ne "`wc -c < 'sort'`"
then
	echo shar: "error transmitting 'sort'" '(should have been 499 characters)'
fi
fi
echo shar: "extracting 'sort.edit'" '(37 characters)'
if test -f 'sort.edit'
then
	echo shar: "will not over-write existing file 'sort.edit'"
else
sed 's/^	X//' << \SHAR_EOF > 'sort.edit'
	Xdtb /is/; e/is/stack/; e/ bytes//
	Xw
	X
SHAR_EOF
if test 37 -ne "`wc -c < 'sort.edit'`"
then
	echo shar: "error transmitting 'sort.edit'" '(should have been 37 characters)'
fi
fi
echo shar: "extracting 'sort.nopipe'" '(474 characters)'
if test -f 'sort.nopipe'
then
	echo shar: "will not over-write existing file 'sort.nopipe'"
else
sed 's/^	X//' << \SHAR_EOF > 'sort.nopipe'
	X; delete things as soon as we done, just to save space.
	Xif exists t:index.unsorted
	X	stack > t:stack
	X	edit from t:stack to t:stack-com with s:sort.edit ver nil:
	X	delete t:stack
	X	join t:index.unsorted fish:index as t:in
	X	detab t:in t:out
	X	delete t:in
	X	stack 50000			; Gimme ROOM!
	X	sort t:out to t:Index.t colstart 7
	X	execute t:stack-com
	X	copy from t:Index.t to Fish:Index
	X	delete t:Index.t t:out t:stack-com t:index.unsorted
	Xelse
	X	echo "Hey, nothing out there to sort!"
	Xendif
SHAR_EOF
if test 474 -ne "`wc -c < 'sort.nopipe'`"
then
	echo shar: "error transmitting 'sort.nopipe'" '(should have been 474 characters)'
fi
fi
exit 0
#	End of shell archive