SPA:WN (Structured Programming Automated: Warnier Notation) is being
distributed in the free-ware mode.  We are not attempting to copy
protect it or to limit its distribution by any sales agreement.  We do
ask that if you use the program in any productive activity that you send
money (we suggest $50.00 per user machine, but more or less is welcome) to:

      Kansas State University Research Foundation
      Fairchild Hall
      Manhattan, KS  66506

You'll be supporting research in a deserving and not very rich
institution as well as providing recompense for a fairly long
development process.  You may copy this distribution disk for other
interested persons, but be sure to include this file.  If you enhance
this product or incorporate it into another product for sale, make
suitable arrangements with the Research Foundation.

Three listing files (.LST) appear on this disk.  They represent three
different attempts to explain what SPA:WN is all about to three
different user audiences.  WARNINTR.LST is for people unfamiliar with
the concepts of structured programming and hierarchical top-down design.
Its purpose is to set the context for the use of SPA:WN and to provide
some specific examples of structured constructs in a variety of
languages.  WARNCMS.LST is for users of SPA:WN under CMS on our
mainframe machine.  It concentrates mostly on mechanics, but provides a
good FORTRAN language example.  Some of its details are irrelevant to
microcomputer users.  WARNIEEE.LST is the text of a paper submitted to
(but not published by) IEEE Transactions on Software Engineering.  It is
more of an academic overview of the program, its operation, and its
utility.  The examples alluded to in the IEEE paper are supplied in the
other two listings.

From these three descriptions, you should be in a position to make
effective use of the SPA:WN system.  A SUMMARY.USE file won't make m uch
sense until the longer descriptions are read.  In addition to this disk,
you'll need a printer and enough memory and disk space to meet the
program's requirements.

Three different forms of the PWARN (for PASCAL WARNIER) program are
provided.  The .COM file is executable code.  The .PAS file is Turbo
PASCAL source code employed to produce the .COM file.  The .WAR file is
the source code for the program in the form of SPA:WN input.  If you
'SPAWN PWARN' the *.PUN file will (almost) be the PWARN.PAS file.  [The
comments (8*...*8) surround code fragments to be excluded for Turbo
PASCAL and included for PASCAL 8000, and the comments (T*...*T) surround
code fragments to be included for Turbo PASCAL and excluded for PASCAL
8000.  Proper enabling/disabling (e.g. by global edit commands) of these
fragments produce exactly PWARN.PAS or its PASCAL 8000 counterpart.]

The SPAWN.BAT file facilitates the execution of the program.  It is
invoked by issuing 'SPAWN filename' where filename is the name of a file
(extension must be .WAR) which is an input stream constructed for
SPA:WN.  This batch file defines the set of output files (.ECH for the
echo and diagnostic, .DIA for the diagram, .PUN for any target language
source code, and .SRC for any reordered SPA:WN input).  A CLEANUP.BAT
file is provided to erase this same set of output files.  Invoke it with
'CLEANUP filename'.

The RODGERS.WAR is an example input file, syntactically correct in the
view of SPA:WN, which may be useful in practicing the use of the SPAWN
command and observing its results.  The FORTRAN program produced from
RODGERS has never been compiled, so you may find horrible FORTRAN errors
in it. 'SPAWN RODGERS' runs in a 256K machine with 120K of free disk
space.

Running 'SPAWN PWARN' will fail (as provided) if you employ a 360K
floppy disk -- the total volume of the output files exceeds 360K.  This
could be repaired by editing SPAWN.BAT to direct files to different
disks. 'SPAWN PWARN' runs all right (as delivered) using a hard disk
system with 600K or so of free space.  [PWARN has a number of constants
defined which could be changed to alter output page dimensions.
However, there has been little or no testing of alternative parameter
combinations, and there can be no guarantee that you will succeed in
attempts to redefine the output page dimensions of Warnier diagrams.
A separate little description of these parameters and how to modify
them appears as WARNPRM.LST.]

The size of Warnier diagram which can be run depends upon the amount of
memory in your computer system.  The entire diagram is held in memory
while PWARN runs, so very large diagrams cannot be run in systems with
small memories. 'SPAWN PWARN' runs for sure in 512K and smaller diagrams
(like RODGERS.WAR) run in 256K machines.  We don't know the details of
the function of space requirement vs. diagram size, or the minimum
machine size to run 'SPAWN PWARN'.  It is good practice to keep your
Warnier diagrams small, so any memory limitations should be gratefully
accepted as a sign that your diagrams should be subdivided.

Information about bugs and other comments may be sent to:

     Kenneth Conrow, Manager, User Services
     University Computing Facilities
     Cardwell Hall
     Kansas State University
     Manhattan, KS  66506         (913)532-6311


