                                 SQHELP
                                 ======


SQHELP is an external  procedure  to  be  used  by  SIMULA  applications
programs  to  provide  a  conversational help facility.  SQHELP reads an
ordinary sequential .HLP file  and  presents  it  to  the  user  at  the
conversational terminal.

By giving a search word as input to SQHELP, SQHELP is directed  to  list
only those lines in the .HLP file which either contain this search word,
or are close to a line containing this search word.

The search word can either be input by the user himself at the terminal,
or  it  can  be given in the applications program, e.g. to get different
help messages in different program contexts.

You declare SQHELP in your program as
EXTERNAL BOOLEAN PROCEDURE SQHELP;

Description of the parameters to SQHELP:

BOOLEAN PROCEDURE sqhelp(helpfile,selector,height,width);
VALUE helpfile, selector;
TEXT helpfile, selector; INTEGER height, width;

HELPFILE is a text containing a file specification.  If no extension  is
given,  .HLP is assumed.  First SQHELP will try to find the file in your
own area.  If not there, SQHELP will search for the file  on  the  HLP:,
DOC: and SYS: areas (in this order) on your computer.

SELECTOR is a search word.  Only lines surrounding lines containing this
search  word  will be displayed to the user.  If SELECTOR is NOTEXT, the
user will be asked to provide a search word.  If  he  does  not  provide
any, the whole help file will be displayed to him.

HEIGHT is the number of lines in each chunk of text which will be  shown
to  the  user.  If a page (segment of input file between succeeding form
feed characters) is longer than this, it will be  divided  into  smaller
chunks.   After  each  chunk,  the  user  will  be  given  the option to
discontinue typing of the help file.  If pages contain more than  HEIGHT
lines,  then  only  lines  less than HEIGHT/2 lines above or below lines
containing the search word will be displayed to the user.

With display terminals, HEIGHT should be one less  than  the  number  of
lines on the screen.

WIDTH, the line length, must be at least as long as the longest line  in
the help file, otherwise you may get an error interrupt.

Example of use (assuming that you are using SAFEIO):

     request("Enter speed",nodefault,realinput(x,TRUE),"",
     sqhelp("Racing","Speed",19,80));

This example means that if the user types ? on his terminal,
sqhelp will search for pages containing the word SPEED
in the file RACE.HLP.

The following EXTERNAL declarations are necessary in programs
using SQHELP:

     EXTERNAL TEXT PROCEDURE conc, rest, scanto, from, upcase;
     EXTERNAL REF (infile) PROCEDURE findinfile;
     EXTERNAL BOOLEAN PROCEDURE dotypeout, sqhelp;
     EXTERNAL INTEGER PROCEDURE search;

                          [END OF SQHELP.HLP]

