
        XX X
      XXXXXX    X
     XXX  XX   XX
     XX       XXX
     XX      XXXXXX  XXX  XX   XXX   XXX  XXXXX    XXXX
     XXX       XX     XXXXXXXX  XX    XX    XX      X
      XXXX     XX     XXX  XXX  XX    XX     XX    X
       XXXX    XX     XX        XX    XX      XX  X
         XXX   XX     XX        XX    XX       XXX
          XX   XX     XX        XX    XX        XX
          XX   XX     XX        XX    XX       X XX
     XX  XXX   XX   X XX        XXX  XXX      X   XX
     XXXXXX     XXXX  XX         XXXXXXXXX   X     XX
     X XX        XX  XXXX          XX XXX  XXXX   XXXXX   version 1.1


             a graphical editor for flowcharts


                  ****  **** *   *  ***          
                   *  * *    ** ** *   *
                   *  * ***  * * * *   *
                   *  * *    *   * *   *    
                  ****  **** *   *  ***

__________________________________________________________________________



a Brief Description
===================

With Strux, you can easily design "normal" and Nassi-Shneiderman flowcharts.
The flowcharts can be saved as sourcecode in any progamming language
(user definable) and you can quickly complete it to form a well structured,
well documented and executable program.
Furthermore, you can use Strux to read sourcecode written in "Pascal" or
"C" and show it as a flowchart. This is perfect for understanding other
people's programs and will also help you to find bugs in your own programs !
The flowcharts can be saved as IFF-pictures or be printed. For each function
of the program, a help text can be displayed while working with Strux.

As Strux is programmed according to the Commodore® styleguide and uses
many features of Workbench 2.0, 

        Kickstart/Workbench version 2.04 or higher is required !



----------------------------------------------------------------------

Strux is a commercial program. This Demo will give you an impression 
of the full version.

With the full version, you will get a printed manual (54 pages) with
many examples and a tutorial. As a registered user, you also get help 
and updates at a low prices.

The price is 110,- DM including postage.

Please add 10,- DM for air mail, if desired. (not necessary within Europe)



How to order ?
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Send your orders to this address:

  PCP Hard- & Software
  Andreas Günther
  Alfener Weg 10
  D-33100 Paderborn
  Germany

Phone: +49 5251 63412
Fax:   +49 5251 67124
email: guenther@uni-paderborn.de


How to pay ?
¯¯¯¯¯¯¯¯¯¯¯¯
Please send money by an "Eurocheque" drawn in DM, by postal money order
or cash.

   (If you wish to pay with other cheques, please add 15 DM
    because the bank charges this fee for honouring those checks. :( )



P.S.: Strux is also available with a german manual !

----------------------------------------------------------------------


Copyright
=========

Strux is copyrighted by Andreas Günther.
This demo version of the program may be freely distributed, but only
if ALL files are not changed in any way. This includes all contents of
the drawers "StruxDemo_english" and "StruxDemo_german". The package may 
be put into an archive in packed form (e.g. with "lharc").



Limitations of the Demo Version
===============================

- It is not possible to save flowcharts and Clips as Strux-files.
- A new block cannot be added to a diagram containing ten or more
  blocks. However, it is possible to load flowcharts of any size,
  so this demo version can be used as a viewer.
- Sourcecode files which are read by using the function "Project »
  Open » Text..." must not be longer than 2000 Bytes.




________________________________________________________________________
************************************************************************
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯




Introduction to Strux
=====================

To get from an idea to a complete program, several steps are necessary:

- specification of the idea (exact definition of desired functions and
  requirements)
- design of the program (development of an algorithm and the structure
  of the program)
- implementation (conversion into any programming language and at last
  into an executable program)

The flowchart editor Strux makes it easy to design the program structure
and helps with the step of the implementation in any programming language.

First, you can design the structure as a flowchart conveniently 
on your screen. Then you can save your design as a sourcecode  "skeleton",
which you can easily expand to an executable program.

Many programmers skip the design phase and try to implement the program
at once. However, this method brings you quickly into chaos and may
lead to errors.
On the other hand, if you design your program structure with Strux first,
you won't loose the survey, your programs will have less bugs and also
get some comments by the way.

Additionaly, flowcharts are perfect methods for the documentation and 
explanation of programs and algorithms, because they are independant 
of any programming language and can be clearly understood. (Even for
handling problems not associated with computers, you need algorithms.)

To understand an existing, perhaps uncommented program, it is helpful to
recognize the program structure. Therefore, Strux gives you the possibility
to read sourcecode written in Pascal or C and show it as a flowchart.




Using Strux
===========

First, some basic things about Strux are explained to introduce the 
main features of the program. More explanation to each function can
be found in the help texts, so this will be just a short description.
(In the printed manual, all functions are explained in detail, of course.)


Start
-----
The program can be started by double clicking the icon with the name 
"StruxDemo". Then, a window appears on the Workbench. This is the working 
area of Strux.
If you click on the zoom gadget of the window, its size will be
adjusted according to the visible size of the screen.


Quit Strux
----------
To quit the program, you can either select the menu item 
"Project » Quit Strux..." or click on the close gadget of the Strux
window.


Help
----
With Strux, you won't get that helpless feeling when you press the
help key and nothing happens...
Strux has a built in online help which can be popped up at any time.
To get help, do the following:

Help for menus or menu items:
  Select the menu item, but keep the right mouse button pressed and
  press the help key.

Help for windows:
  If the window is active, just press the help key.

Explanations of special terms:
  Click on the "Keywords" button in the bottom of the help window
  and select the desired term.

A window appears which shows the help text. You can scroll the text with 
the scroll bar on the right hand side. While the help window is displayed,
you can continue to work with Strux.
The help window can be closed at any time by clicking on its close gadget.


Loading a Flowchart
-------------------
Before proceeding with the following sections of this introduction, 
you should first load a sample flowchart. To do so, select the menu 
item "Project » Open » Strux-file". A standard filerequester appears.
Now, you can choose a flowchart and select the "Open" button.
The flowchart will be loaded and displayed.


Representations
---------------
A flowchart can be shown in three different representations. You can
switch between the three representations with the menu item 
"Settings » Diagram...". A window appears where you can
select a representation. Close the window with "Use".

Nassi-Shneiderman:
  graphical representation according to Nassi-Shneiderman
Flowchart:
  the common graphical representation of a flowchart
Pseudocode:
  textual representation in a pseudo language, where the different
  block types are described by keywords and the structure by indents.


Selecting a Block
-----------------
One block in the diagram is marked by reverse colors. This is the
"current block", it corresponds to the cursor in a word processor.
E.g. new blocks are always inserted below this block, the cut or copy
operations refer to this block etc.
To select a block (make it the "current block") you may simply click on
it with the mouse.
In blocks like selections or loops, the whole block with all branches
is marked and taken as the current block.

You also have the possibility to use the arrow keys to navigate through
the diagram.




The Clipboard
=============

Like in word processors, you can cut or copy parts of the flowchart and
paste them somewhere else. The most recent cut part is kept in the
clipboard until something new is cut or copied.
There are different independent clipboard units with numbers from 0
to 255. Normally, all programs use unit zero, so they can exchange
data among each other. If you do not want this, you can change the number.
(menu item "Settings » Program...")



Refinements
===========

To keep the survey over your design, Strux gives you the possibility to
use refinements. With that feature, you can define the function of a
block with an extra flowchart.
Example: If a block named "load file from disk" appears in a flowchart,
the text has all information needed at this point to understand the
flowchart. The loading of the file however includes several steps
(open the file, read it, close it, error handling etc.), which can be
defined in a refinement and are invisible from the currently displayed 
flowchart.

You may also use one refinement at different points in the flowchart.


Refine Block
------------
To refine the current block, select the menu item "Refinements » 
Refine Block".
A new flowchart appears on the screen with the name of the refined block
as the title. You can edit this flowchart with all the known functions
including further refinements. If a block already has a refinement, you 
can get into its refinement with a double click on the block.
A refined block is shown in bold letters if the menu option 
"Refinements » Show ?" is selected.
With the menu item "Refinements » Higher Level" you can get back to the
block that has been refined, with "Refinements » Top Level" you
immediately get to the top level of the flowchart.



Marking of Refinements
----------------------
With the menu item "Refinements » Show ?" you can select whether all refined 
blocks should be marked or not. All refined blocks are marked by showing 
their texts in bold letters. This has the the advantage of clearly seeing 
which blocks have refinements.

One refinement can be used for several blocks with the same name while
the flowchart of the refinement exists only once and is attached to
exactly one block. This block is called the "main refinement" and its text
is  written in another color. Only operations done with this block (Cut, 
Copy, Paste etc.) have influence on the refinement.


Set Main Refinement
-------------------
With the menu item "Refinements » Set Main Refinement", you can attach
the flowchart of the refinement to the current block. 
All operations done with this block (Cut, Copy, Paste etc.) now have 
influence on the refinement.





Saving as Sourcecode
====================

menu item: "Project » Save As » Text..."
The flowchart will be saved as ASCII-text. The translation of each block
type is defined in a "translation table". With the menu item "Settings »
Translation Table", you can open or define your individual translation
table.
With this feature, it is possible to save your flowchart as sourcecode
in any programming language. You get a "skeleton", which consists of the
program structure and from which you can easily complete the program.



Loading Sourcecode
==================

There is also the possibility to load sourcecode (in Pascal or C) as
a textfile and convert it to a flowchart. This flowchart can be edited
as usual.
First, select the menu item "Project » Open » Text...". A filerequester
appears where you can select the source file. You must also specify
the language of the source.
The text will be loaded now and a requester appears, in which all
parts of the program (procedures and functions) are listed. You can select
the part of the program to be loaded. The top item of this list is the
main part of the program if there is one.

Remember that the length of the loaded text must not exceed 2000 Bytes
to be loaded by this demo.
