home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / busi / ezhelp.zip / USERS.DOC < prev    next >
Text File  |  1990-03-15  |  57KB  |  1,578 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                               EZhelp Reference
  23.  
  24.                                 version 1.0
  25.  
  26.                          A Shareware reference tool
  27.  
  28.  
  29.                   (C) Copyright Brain Child Systems, 1990
  30.  
  31.                             All rights reserved
  32.  
  33.  
  34.  
  35. Table of contents - EZhelp Reference
  36.  
  37.  
  38.  
  39. I.   Introduction to EZhelp                        1
  40.  
  41.    A. What's EZhelp?                               1
  42.  
  43.    B. EZhelp features                              2
  44.  
  45.    C. Three easy steps                             2
  46.  
  47.    D. Defining reference use                       3
  48.  
  49.  
  50. II.  Writing text                                  3
  51.  
  52.    A. Forming an outline                           3
  53.  
  54.       1. Example outlines                          4
  55.  
  56.    B. Creating topics                              6
  57.  
  58.       1. Topic Descriptions                        6
  59.  
  60.       2. Menu Groups                               6
  61.  
  62.       3. Example reference                         7
  63.  
  64.    C. Entering reference text                      9
  65.  
  66.       1. Reference file layout                     9
  67.  
  68.       2. Guidelines                                10
  69.  
  70.  
  71. III. Compiling text                                11
  72.  
  73.    A. Command line                                 11
  74.  
  75.    B. Reporting                                    12
  76.  
  77.  
  78. IV.  Using EZhelp                                  13
  79.  
  80.    A. Memory needed                                13
  81.  
  82.    B. Starting from within your application        13
  83.  
  84.    C. Command line                                 13
  85.  
  86.       1. Examples                                  14
  87.  
  88.       2. Using Showcolo.exe                        15
  89.  
  90.       3. Error messages                            15
  91.  
  92.  
  93.    D. Distribution                                 16
  94.  
  95.    E. Source code                                  16
  96.  
  97.    F. Registering                                  17
  98.  
  99.    G. Enhancements                                 17
  100.  
  101.    H. Quick summary                                18
  102.  
  103.  
  104. Appendix A
  105. Installing EZhelp Reference
  106.  
  107. Appendix B
  108. EZhelp developer's overview
  109.  
  110. Appendix C
  111. EZhelp developer's function
  112. reference
  113.  
  114.                                                       Page  1
  115.  
  116. I. Introduction to EZhelp
  117.  
  118.   A. What's EZhelp?
  119.  
  120.      EZhelp is a shareware product designed as a tool for writers or
  121.   programmers who need a simple help system to use stand-alone,
  122.   link with existing software, or use as an on-line reference.
  123.   You can easily create a window driven help system with new or
  124.   existing texts, and registered users may distribute EZhelp with
  125.   them free of charge.
  126.  
  127.      In addition to the executable version of EZhelp, source code
  128.   is available to developers who wish to incorporate EZhelp into
  129.   their applications. For more information, see the section on
  130.   Registering on page 17.
  131.  
  132.      This user's documentation is also organized into an EZhelp text
  133.   file, and you can see how the program works by typing "EZ" at the
  134.   DOS prompt to begin.
  135.  
  136.      Since this is version 1.0 of the program, any feedback you have
  137.   would be valued. There are many possible features that could be
  138.   added, and this will depend on what you ask for. If you try the
  139.   program and have an opinion, drop us a line!
  140.  
  141.  
  142.   EZhelp consists of three programs:
  143.  
  144.    EZcomp.EXE     -  A text compiler program that creates
  145.                   an index on help reference files you have
  146.                   created. This index file describes where topics
  147.                   begin and end within the text.
  148.  
  149.    EZhelp.EXE     -  The program that uses the help file and
  150.                   the index created with the compiler to drive
  151.                   the windows and text display.
  152.  
  153.    Showcolo.EXE   -  A utility to display colors and their values, to
  154.                   assist in choosing colors for menus and windows.
  155.  
  156.     You will need a text editor or word processor to create your text
  157.     files with. There are a few issues to be aware of when using a word
  158.     processor. For more information, check the section on Entering Text
  159.     on page 9. You will be more successful with this package if you
  160.     follow the hints on organizing your topics. More information can
  161.     be found in the Forming Outline section on page 3.
  162.  
  163.   _________________________________________________________
  164.   EZhelp Reference
  165.   (C) Copyright 1990, Brain Child Systems.
  166.   All rights reserved.
  167.  
  168.                                                       Page  2
  169.  
  170.   B. EZhelp features
  171.  
  172.          *  Pop-up menus - EZhelp menus automatically position
  173.                on the screen, and anchor to previous menus. All
  174.                backgroung screen areas are saved and restored
  175.                when the menu or window is removed.
  176.  
  177.          *  Fast display - EZhelp uses optimized functions to keep
  178.                the screen display and update as fast as possible.
  179.  
  180.          *  Sizeable text window - You can specify the size of the
  181.                help text window, ranging from 4 lines to 23 lines.
  182.  
  183.          *  Choice of colors  - You can specify the colors of the
  184.                menus, highlight bar, and text on the command line
  185.                when you start EZhelp.
  186.  
  187.          *  Choice of line style - You can specify the border line
  188.                style that EZhelp is to use.
  189.  
  190.          *  Start at any menu level - You can start EZhelp at any
  191.                menu level or menu group using a command line option.
  192.  
  193.          *  Jump directly to any help topic - You can jump directly
  194.                to the help text of any topic in any menu - avoiding
  195.                the display of the menu.
  196.  
  197.          *  Optional sorting of topics - You can easily organize
  198.                your menu topics by a predetermined order, or have
  199.                them sorted and displayed alphabetically.
  200.  
  201.          *  Flexible use - Topic sections within your help text
  202.                do not need to be in the same order as menu items
  203.                are to appear. The EZcomp text compiler locates
  204.                all menu items in your text automatically.
  205.  
  206.          *  Reference report - A reference report is available as
  207.                a command-line option with EZcomp, the text compiler.
  208.                This report lists all menus, topics, and links between
  209.                menus. Line numbers are also shown in the report,
  210.                to aid you in locating topics in your help text file.
  211.  
  212.          *  Free program updates - All registered users will be
  213.                notified of updates, and can obtain free updates for
  214.                one year, less shipping and media costs.
  215.  
  216.  
  217.   C. Three easy steps
  218.  
  219.      There are three steps to creating your own menu-driven help
  220.   reference text. First, working from a broad outline, organized
  221.   like a table of contents or hierarchical chart, write out Topic
  222.   Descriptions associated with each item of help text, and insert
  223.   them into the reference file using a text editor or word processor.
  224.   Next, compile the reference file using EZcomp, which creates an
  225.   index file to be used with the text.
  226.  
  227.                                                       Page  3
  228.  
  229.      After the index has been created on the reference file, you
  230.   can test the menus and display of each topic using EZhelp. You can
  231.   try the various options available when EZhelp is started, until
  232.   you have the menus and windows like you want them.
  233.  
  234.      If you already have specific text written (on disk), you should be
  235.   able to easily insert Topic Descriptions based on an existing table
  236.   of contents. This will serve as a complete reference of the entire
  237.   application or manual. The following section should be read
  238.   beforehand, to pinpoint the type of functions that EZhelp should
  239.   perform.
  240.  
  241.  
  242.  
  243.   D. Defining reference use
  244.  
  245.      Before sitting down to write out the Topic Descriptions for
  246.   use in the reference file, you should give some thought to the type
  247.   of use the reference will be needed for. A few specific questions you
  248.   can ask are:
  249.  
  250.      1) Is the reference to be organized around existing user's
  251.         documentation, or should it conform more closely to the
  252.         application itself?
  253.  
  254.      2) Is the reference to be used for field-level help, where menus
  255.         do not display, and the help text displays directly?
  256.  
  257.      3) Do you prefer a single-level menu or multiple-level menus
  258.         leading to the topic?
  259.  
  260.      4) How large is the window to be used with the text?
  261.  
  262.  
  263.      These questions will have an impact on the relation between the
  264.   menu topics you create and the behavior of the menus when the program
  265.   is running. You can create menus to accomodate all of the above
  266.   needs, all within the same reference file.
  267.  
  268.  
  269. II. Writing text
  270.  
  271.   A. Forming an outline
  272.  
  273.      Writing an outline is the essential first step to creating
  274.   the reference. It helps to begin with the most general subjects,
  275.   and narrow the subjects into sub-topics and further sub-topics.
  276.   The outline itself should have no more than sixteen levels of
  277.   sub-topics.
  278.  
  279.      The outline will show the relationships of menus in your
  280.   reference. You should define your menus in terms of the type of
  281.   reference you want to create, whether it is to contain a complete
  282.   topic index with multiple menu layers, or just field-level help.
  283.  
  284.                                                       Page  4
  285.  
  286.   Following is a simple example of an outline for a reference file
  287.   example, with three levels of topics:
  288.  
  289.    Outline example 1:            As organized in an EZhelp
  290.    Methods of transportation     Reference file
  291.  
  292.  
  293.    I.   Land                     Land, Water, and Air will be
  294.                                  assigned menu number 1.
  295.       a. Car
  296.       b. Bicycle                 Car, Bicycle, and feet will
  297.       c. Feet                    be assigned menu number 2.
  298.  
  299.    II.  Water
  300.  
  301.       a. Speedboat               Speedboat, Yacht, and Jet ski
  302.       b. Yacht                   will be assigned menu
  303.       c. Jet Ski                 number 3.
  304.  
  305.    III. Air
  306.  
  307.       a. Airplanes               Airplanes and Hot air ballon
  308.                                  will be assigned menu
  309.          1. Prop plane           number 4.
  310.          2. Glider
  311.          3. Jet                  Prop plane, Glider, and Jet
  312.                                  will be assigned menu
  313.       b. Hot air baloon          number 5.
  314.  
  315.  
  316.      This outline example would be useful to create a reference modeled
  317.   after users documentation, or where the topic is too complex to cover
  318.   with one choice.
  319.  
  320.                                                       Page  5
  321.  
  322.   Following is another example with the same topics, reorganized into
  323.   single-level menus.
  324.  
  325. Outline example 2:               As organized in an EZhelp
  326. Methods of transportation        Reference file
  327.  
  328.  
  329. a. Land                          The assignment of menu numbers
  330. b. Water                         would be the same in this
  331. c. Air                           example. The difference here
  332.                                  is that all menus are single
  333. a. Car                           level, and the associated
  334. b. Bicycle                       reference would display after
  335. c. Feet                          the topic is chosen.
  336.  
  337. a. Speedboat                     This outline would be most
  338. b. Yacht                         useful when a general
  339. c. Jet Ski                       reference of a page or less
  340.                                  should be given on a topic.
  341. a. Airplanes
  342. b. Hot air baloon                This type of outline can
  343.                                  also be used to accomodate
  344. a. Prop plane                    field-level help topics
  345. b. Glider                        where the menu is not
  346. c. Jet                           displayed.
  347.  
  348.  
  349.      The next section, Creating Topics, shows how to create Topic
  350.   Descriptions from a general outline, and how you can create menu
  351.   groups of Topic Descriptions to use as complete references,
  352.   single-level menus, and field-level displays.
  353.  
  354.                                                       Page  6
  355.  
  356.   B. Creating Topics
  357.  
  358.   Topic Descriptions
  359.  
  360.      The Topic Descriptions to be displayed in the pop-up menus can
  361.   be created from the outline. The topic itself is a line of
  362.   text that is inserted in your document, just above the point
  363.   where the help text begins for that topic.
  364.  
  365.   The topic consists of a topic name and three additional
  366.   parameters:
  367.  
  368.   {{  Topic Name,    Menu No.,    Menu Order,     Next Menu  }}
  369.  
  370.       * {{ - double brackets placed in the text will begin
  371.         a topic definition. A topic definition is ended with
  372.         another set of brackets }}.
  373.  
  374.       * Topic Name - you may use up to fifteen characters for the
  375.           topic, beginning with the first non-blank character
  376.           after the brackets.
  377.  
  378.       * Menu No. - this will identify the group of topics which
  379.           are to be shown on the same menu. The outermost menu,
  380.           or most general, should begin with 1 as a rule.
  381.  
  382.       * Menu Order - this will specify the order of the topic
  383.           among the other topics in the menu, from top to bottom.
  384.           If you wish the menu topics to be sorted alphabetically,
  385.           use 0 for the order number in each topic in the menu.
  386.  
  387.       * Next Menu - if this topic leads to another topic
  388.           sub-menu, use the sub-menu number. If this topic leads
  389.           to the help text (the help text follows the topic in the
  390.           document), use 0.
  391.  
  392.  
  393.      Following this paragraph is a sample set of topic definitions
  394.   for a reference describing methods of transportation. Note that the
  395.   reference text for topics would be inserted after the topics where
  396.   the Next Menu parameter is equal to zero, but for clarity, the text
  397.   is omitted here.
  398.  
  399.  
  400.  
  401.   Menu Groups
  402.  
  403.  
  404.      Menu groups allow you to duplicate topic names, or offer the same
  405.   topic in different ways. The examples in the section on Forming an
  406.   outline will be used here to create the Topic Descriptions for a
  407.   reference on Methods of Transportation.
  408.  
  409.                                                       Page  7
  410.  
  411.   Example reference file: Transpor.txt
  412.   Subject: Methods of transportation
  413.  
  414.   EZhelp Topic Descriptions
  415.   for reference Transpor.txt
  416.  
  417.    {{ Land,             1, 1, 2  }}
  418.    {{ Water,            1, 2, 3  }}    menu 1, 3 topics
  419.    {{ Air,              1, 3, 4  }} ____________________
  420.  
  421.    {{ Car,              2, 1, 0  }}
  422.    {{ Bicycle,          2, 2, 0  }}    menu 2, 3 topics
  423.    {{ Feet,             2, 3, 0  }} ____________________
  424.  
  425.    {{ Speedboat,        3, 1, 0  }}
  426.    {{ Yacht,            3, 2, 0  }}    menu 3, 3 topics
  427.    {{ Jet ski,          3, 3, 0  }} ____________________
  428.  
  429.    {{ Airplanes,        4, 1, 5  }}    menu 4, 2 topics
  430.    {{ Hot air baloon,   4, 2, 0  }} ____________________
  431.  
  432.    {{ Prop plane,       5, 1, 0  }}
  433.    {{ Glider,           5, 2, 0  }}    menu 5, 3 topics
  434.    {{ Jet plane,        5, 3, 0  }} ____________________
  435.  
  436.  
  437.   In menu number 1, topic "Land" defines the following menu, number 2.
  438.   Also in menu 1, topic "Water" defines next menu 3, and topic
  439.   "Air" defines next menu 4. Topic "Airlines" defines a third menu
  440.   level, 5.
  441.  
  442.      This group of Topic Descriptions above fits the hierarchical
  443.   type of outline, which most closely matches user's documentation.
  444.   But suppose that this structure is not sufficient at all times. At
  445.   certain places in your application, you want the topic "Land" to lead
  446.   directly to a reference text window, instead of a sub-menu with Land
  447.   topics.
  448.  
  449.      All you would need to do is add another menu, perhaps identical
  450.   to menu 1 defined above, but give it another menu number:
  451.  
  452.    {{ Land,             10,   1, 0  }}
  453.    {{ Water,            10,   2, 0  }}    menu 10, 3 topics
  454.    {{ Air,              10,   3, 0  }} ____________________
  455.  
  456.      You could place these definitions anyplace in the reference file,
  457.   and follow the topic "Land" with the associated help text. The
  458.   example above would allow "Water" and "Land" to lead directly
  459.   to help text rather than another menu, because the Next Menu
  460.   parameter is zero.
  461.  
  462.                                                       Page  8
  463.  
  464.      Later, when you want to access the topic "Land" in menu 1 or menu
  465.   10, you can start EZhelp and specify the startup menu number. If topic
  466.   "Land" in menu 10 corresponds to a field level help item, that is,
  467.   you don't want a menu to show, but to go directly to the display of
  468.   the reference text, you can call EZhelp specifying the startup menu
  469.   number and the topic to jump directly into.
  470.  
  471.   * Starting at the default menu, number 1
  472.  
  473.      EZhelp Transpor.txt
  474.  
  475.   This will start EZhelp with Transpor.txt, which contains the above
  476.   Topic Descriptions, and begin at the default menu number, 1. In this
  477.   example, the menus and reference text of menu 10 will not be
  478.   accessible.
  479.  
  480.   * Starting at a specific menu number
  481.  
  482.      EZhelp Transpor.txt -M10
  483.  
  484.   This will start EZhelp at menu 10, showing all three topics of the
  485.   menu. All other menus would not be accessible.
  486.  
  487.   * Jumping directly to a topic
  488.  
  489.      EZhelp Transpor.txt -M10 -J1 -S4
  490.  
  491.   This will start EZhelp at menu 10, but instead of showing the
  492.   other topic of menu 10, the reference text below topic "Land" would
  493.   display directly, in a text window of 4 lines.
  494.  
  495.   NOTE: If you choose to enter zero for each Menu Order parameter
  496.   in the Topic Description line, you cannot use the -J option to
  497.   jump directly to a topic.
  498.  
  499.   _________________________________________________________
  500.   If you like, you can start the above examples using the DOS batch
  501.   files EX1.BAT, EX2.BAT, and EX3.BAT supplied with the diskette.
  502.   The full set of EZhelp command-line options are described in more
  503.   detail on page 13.
  504.  
  505.      As the above examples show, you can create isolated menus within
  506.   the reference text for different purposes. The next section,
  507.   Entering text, shows the general layout of the reference file,
  508.   including Topic Descriptions.
  509.  
  510.                                                       Page  9
  511.  
  512. C. Entering text
  513.  
  514.   Reference file layout
  515.   ----------------------------------
  516.  
  517.     This is the basic layout of an EZhelp Reference file:
  518.  
  519.     +---------------------+
  520.     |.beginning of file   |
  521.     |                     |
  522.     |Comments (a)         |  (a) Optional comments may be placed
  523.     |                     |    at the beginning of the file, until
  524.     |Topic definition (b) |    the first Topic definition.
  525.     |                     |
  526.     |Accompanying text (c)|  (b) A topic definition line should
  527.     |                     |    always be followed with Accompanying
  528.     |Topic definition (b) |    text unless another menu is to
  529.     |                     |    follow.
  530.     |Accompanying text (c)|
  531.     |                     |  (c) The accompanying text will be
  532.     |Topic definition (b) |    assumed to continue until the next
  533.     |                     |    topic definition is found, or the
  534.     |Accompanying text (c)|    end of the file is reached.
  535.     |                     |
  536.     |.end of file         |
  537.     +---------------------+
  538.  
  539.  
  540.      It helps to use the first part of the reference file for comments,
  541.   before the first topic definition. Take a moment to examine
  542.   Transpor.txt with your text editor. At the top, you'll see a table
  543.   where information on the topics and menus is kept. This is useful as
  544.   an overview of the reference text once you have begun to write.
  545.  
  546.   Additional comments
  547.  
  548.      You can create additional comment sections in your reference file
  549.   by defining a Topic Description with a menu number that is never
  550.   used. For example, you could designate 199 to be a menu number that
  551.   indicates a comment section:
  552.  
  553.     {{ dummy menu, 199, 0, 0 }}
  554.  
  555.   All comments after this Topic Description and before another Topic
  556.   Description would not be displayed (assuming that you never start
  557.   EZhelp with menu 199 as the startup menu).
  558.  
  559.                                                       Page 10
  560.  
  561.   Guidelines for Topic
  562.   Descriptions and reference text files
  563.  
  564.     An EZhelp Reference file MUST conform to these guidelines:
  565.  
  566.     1) Carriage return/line feed  (CR/LF):
  567.  
  568.           A carriage return/line feed pair must terminate every line in
  569.        the file. What this means for text written with many commercial
  570.        word processors (Microsoft Word, Wordperfect, others) is that it
  571.        will likely be neccessary to press the return key at the end of
  572.        each line, rather than letting the line wrap around.
  573.  
  574.           One way to tell if your word processor generates the CR/LF at
  575.        the end of each line is to use the DOS "TYPE" command to view the
  576.        text file on the screen. If the text is not indented as you would
  577.        see it in the word processor, then you will need to press return
  578.        at the end of each line.
  579.  
  580.  
  581.           Avoid using the tab key in the text. Instead, indent using
  582.        the space bar. All text formatting commands used by your
  583.        word processor (bold, underline, etc.) should be avoided also,
  584.        if your word processor cannot save a file unformatted. The
  585.        finished reference that you want to use as an EZhelp file must
  586.        be saved unformatted.
  587.  
  588.  
  589.     2) Completeness of Topic Descriptions
  590.  
  591.           Each Topic Description must have a complete set of elements.
  592.        This includes an opening set of brackets, a Topic Name and
  593.        comma, Menu Number and comma, Menu Order and comma,
  594.        Next Menu, and a closing set of brackets. An incomplete Topic
  595.        Description could cause the compiler to hang up.
  596.  
  597.     3) Line length:
  598.  
  599.           A line must be 74 characters or less. If the line is longer
  600.        than 74 characters, unexpected results may occur. One common
  601.        result is when the entire page shifts up by one line. Take care
  602.        to follow this guideline.
  603.  
  604.     4) Recompiling:
  605.  
  606.           The reference file must be recompiled after each time
  607.        it is modified. If it is not recompiled, the help text displays
  608.        will overlap, and the topic definition line may be visible on
  609.        the screen.
  610.  
  611.                                                       Page 11
  612.     5) File size
  613.  
  614.           The reference file may be as large as the unused memory on
  615.        your system, up to 640k. This should not be a limitation, but
  616.        if you need to know how much memory you have available, run
  617.        the DOS Chkdsk command.
  618.  
  619.     6) Number of menus and topics
  620.  
  621.           You may create up to 255 menus, with a maximum of 100 topics
  622.        in each menu. The maximum number of menu levels is 16.
  623.  
  624.  
  625.  
  626. III. Compiling text
  627.  
  628.      An index file is created for each reference file before it used
  629.   with EZhelp. The index file keeps information on the topics and menus,
  630.   and uses it to find the topic's text in the reference file. The
  631.   index file name is automatically created using the first part of the
  632.   reference file name and adding ".hnx" as the extension. The index file
  633.   will be placed in the same subdirectory as the text file.
  634.  
  635.      "myfile.txt",  when compiled, creates an index "myfile.hnx".
  636.  
  637.       +--------+        +---------------+       +---------+
  638.       |        |        |               |       |         |
  639.       |  Text  |----->  |  EZcomp.exe   |-----> |  Text   |
  640.       |  file  |----->  |  (compiler)   |-----> |  index  |
  641.       |        |        |               |       |         |
  642.       +--------+        +---------------+       +---------+
  643.  
  644.  
  645.   A. Command line
  646.  
  647.  
  648.   EZcomp MYFILE.TXT [-pu] [-ps]
  649.  
  650.  
  651.        From the DOS prompt, enter the following command to compile
  652.     a help text file:
  653.  
  654.     EZcomp MYFILE.TXT
  655.  
  656.     The compiler runs for a moment, creates the index "myfile.hnx"
  657.     using the text file "myfile.txt", and returns to the DOS prompt.
  658.  
  659.     To compile the text and print an unsorted report of the topics,
  660.     enter this command:
  661.  
  662.     EZcomp MYFILE.TXT -pu
  663.  
  664.     To print a sorted report of the topics, substitute "-ps" on the
  665.     command line, or include both "-pu" and "-ps" for both reports.
  666.  
  667.                                                       Page 12
  668.  
  669.   B. Reporting
  670.  
  671.  
  672.   Topic report
  673.  
  674.      Shown below is a portion of the topic report generated by
  675.   EZcomp.exe. The reference file used was EZhelp.txt. The report
  676.   can be printed sorted or unsorted using the command line options.
  677.   If you give each topic a number in the Menu Order parameter of the
  678.   Topic Description line, the report will be identical whether sorted
  679.   or unsorted.
  680.  
  681.    ----------------------------------------------------------------------
  682.    EZcomp v1.0    Reference Index report, unsorted: ezhelp.txt   Page  1
  683.    ----------------------------------------------------------------------
  684.  
  685.    Menu    Menu                     Next   Line    Line
  686.    number  order   Topic            menu   number  count   Offset  Size
  687.    ------  -----  ---------------   -----  ------  ------  ------  ------
  688.         1      1  What's EZhelp?                8      91     244    2779
  689.         1      2  3 easy steps                 99      22    3051     462
  690.         1      3  Writing text          2     121       4    3541      35
  691.         1      4  Compiling text        3     125       4    3604      35
  692.         1      5  Using EZhelp          4     129       4    3667      35
  693.         1      6  Registering                 133      70    3730    2923
  694.         1      7  ---------------             203       2    6681       4
  695.         1      8  CharityWare?                205      47    6713    2135
  696.  
  697.   Items in the report
  698.  
  699.      Menu number, Menu order, Next menu, Topic - These are the same as the
  700.         parameters entered in the Topic Description. Note that if zero
  701.         is entered as the Next Menu parameter, blanks will show on the
  702.         report.
  703.      Line number - This is the line in the reference file where the topic
  704.         is found.
  705.      Line count - This is the total number of lines of the reference text
  706.         of the topic, including the Topic Description line.
  707.      Offset - This is the offset in bytes, from the beginning of the
  708.         file, where the Topic Description begins.
  709.      Size - This is the total number of bytes of the reference text of
  710.         the topic, including the Topic Description line.
  711.  
  712.                                                       Page 13
  713.  
  714. IV. Using EZhelp
  715.  
  716.  
  717.   Memory needed
  718.  
  719.      EZhelp menus and help text windows allocate and release memory
  720.   as they are used. The amount of memory required will depend on the
  721.   size and levels of the menus. The .EXE version of the program will
  722.   use up to 64k. If there is no free memory to allocate, the program
  723.   will exit. If the error message flag (see Command line below) is
  724.   set on, an error message will display. The EZhelp .OBJ libraries use
  725.   less than 7k when linked into your applications.
  726.  
  727.   Starting EZhelp from
  728.   within your application
  729.  
  730.      You can start EZhelp from within your applications and arrange the
  731.   menus and help to complement your program's operation. If you are a
  732.   C user, you can link in the EZhelp libraries, and if you are using dBASE,
  733.   you can use the Run command to use the .EXE version. If your language of
  734.   choice has a facility to start another DOS program while your program is
  735.   running, then you can use EZhelp.
  736.  
  737.      All screens are restored to their original state before EZhelp
  738.   exits, and EZhelp will return error codes to your program to indicate
  739.   if it terminated abnormally. This design keeps your program in
  740.   control. dBASE users may not be able to detect returned error codes,
  741.   however.
  742.  
  743.  
  744.   Command line
  745.  
  746.     EZhelp MYFILE.TXT [-Mnn -Jnn -Wnn -Bnn -Snn -Tnn -E ]
  747.  
  748.     where...
  749.  
  750.     MYFILE.TXT   The name of a text reference file to be used. Up to
  751.                  40 characters may be used for the full path and file
  752.                  name. The index MYFILE.HNX is assumed to reside in
  753.                  the same subdirectory.
  754.  
  755.     -Mnn         The number of the menu to start at. The program will
  756.                  begin by displaying the Topic Descriptions for that
  757.                  menu, as defined in MYFILE.TXT. All subsequent menus
  758.                  from the point of the startup menu will be accessible.
  759.                  The default startup menu is number 1.
  760.  
  761.     -Jnn         The number of the topic in the startup menu to display
  762.                  directly. If the -Jnn option is used, the menu will not
  763.                  be shown, and the help text for topic -Jnn in menu
  764.                  -Mnn will display.
  765.  
  766.                                                       Page 14
  767.  
  768.     -Wnn         A number to define the color of the menu window borders,
  769.                  non-highlighted menu items, and the help text display.
  770.                  If a number is not specified, the default is 7, white.
  771.  
  772.     -Bnn         A number to define the color of the menu highlight bar.
  773.                  The the default is 30, yellow on blue.
  774.  
  775.     -Snn         A number to define the size (in lines) of the help text
  776.                  window display. The minimum window size is 4, and the
  777.                  maximum is 23. The default is 23 lines.
  778.  
  779.  
  780.     -Tnn         A number to define the menu and help text window
  781.                  borders. The different styles available and their
  782.                  numbers are show below. The default is 1.
  783.  
  784.  
  785.               ┌───┐          ╒═══╕          ╔═══╗          ╓───╖
  786.               │ 1 │          │ 2 │          ║ 3 ║          ║ 4 ║
  787.               └───┘          ╘═══╛          ╚═══╝          ╙───╜
  788.  
  789.               single line    single on      double line    double on
  790.                              sides, double                 sides,
  791.                              on top                        single on
  792.                                                            top
  793.  
  794.               ▓▓▓▓▓          ▒▒▒▒▒          ░░░░░          ▄▄▄▄▄
  795.               ▓ 5 ▓          ▒ 6 ▒          ░ 7 ░          ▌ 8 ▐
  796.               ▓▓▓▓▓          ▒▒▒▒▒          ░░░░░          ▀▀▀▀▀
  797.  
  798.  
  799.                . . . . . . .  special characters . . . . . . .
  800.  
  801.  
  802.     -E           This option will turn error messages on. The default is
  803.                  no error messages. When you are initially developing
  804.                  the reference, you should run with this option on, to
  805.                  trap any errors. If an error condition occurs, the
  806.                  message will display until you press a key.
  807.  
  808.  
  809.   Examples
  810.  
  811.      1) EZhelp MYFILE.TXT
  812.  
  813.         Start MYFILE.TXT at menu 1, use all defaults.
  814.  
  815.      2) EZhelp MYFILE.TXT -M4 -J7 -S15
  816.  
  817.         Jump directly to the display of topic 7 in menu 4. Use a
  818.         text display window of 15 lines.
  819.  
  820.                                                       Page 15
  821.  
  822.      3) EZhelp MYFILE.TXT -W1 -E
  823.  
  824.         Start MYFILE.TXT at menu 1, using a window color of blue.
  825.         Turn error messages on.
  826.  
  827.  
  828.      Note: The order of the options specified is not critical.
  829.  
  830.  
  831.   Using Showcolo.exe
  832.  
  833.      A utility program, Showcolo.exe, is included with this program
  834.   to allows you to view color values that can be used by the program.
  835.  
  836.  
  837.      To start at the DOS prompt, type SHOWCOLO. The menu box will
  838.   display at the bottom of the screen. Use the arrow keys to change the
  839.   foreground or background of the border or bar where the marker is
  840.   positioned. To move the marker, press Tab or Return. The values
  841.   displayed for each color correspond to the color that will be shown
  842.   when EZhelp is started with that value.
  843.  
  844.  
  845.   Error messages
  846.  
  847.      There are four error conditions that can be encountered. The
  848.      following list describes each:
  849.  
  850.      * EZhelp... help file not found.
  851.  
  852.           The help reference file was not located in the path specified
  853.        in the filename parameter. If no path is specified, the file is
  854.        assumed to reside in the same directory as EZhelp.exe.
  855.  
  856.      * EZhelp... index file not found.
  857.  
  858.           The index file was not located in the same directory as the
  859.        help reference file.
  860.  
  861.      * EZhelp... insufficient memory.
  862.  
  863.           EZhelp could not allocate the memory required for the index,
  864.        menu or help window.
  865.  
  866.      * EZhelp... topic not found.
  867.  
  868.           EZhelp could not find the chosen topic in the reference file.
  869.        If EZhelp was started with the -J parameter, perhaps the number
  870.        was incorrect. If this error occurs without the -J parameter,
  871.        the Next Menu specified in the Topic Description chosen may be
  872.        incorrect, or the Next Menu may not exist in the reference file.
  873.  
  874.                                                       Page 16
  875.  
  876.   D. Distribution
  877.  
  878.      Unregistered and registered users may distribute copies of this
  879.   Shareware package for the trial use of others, and we encourage you
  880.   to do so. Source code purchased by registered users may not be
  881.   distributed for the trial use of others.
  882.  
  883.      A reasonable "disk fee" or postage fee may be charged for the
  884.   distribution of this package, but that fee is not to exceed US $7.50
  885.   under any circumstances without the written consent of Brain Child
  886.   Systems.
  887.  
  888.      Registered users may bundle EZhelp.exe with their own applications
  889.   and distribute unlimited copies. If a registered user distributes
  890.   EZhelp.exe, the file name may not be changed. Registered users may
  891.   also link EZhelp object files into their applications without further
  892.   obligation.
  893.  
  894.  
  895.   E. Source code
  896.  
  897.       EZhelp source code is available for Turbo C compilers, and the
  898.    source code for EZcomp is also included. This includes source for
  899.    the small memory model and instructions on the few simple changes
  900.    necessary to convert to other memory models. Support for Microsoft
  901.    C is being added and will be available in the next version. For
  902.    current pricing information, see the order form (ORDER.DOC).
  903.       Source updates will be available at half their original cost,
  904.    for two years, plus media and postage costs. When an update becomes
  905.    available, registered users will be notified.
  906.  
  907.  
  908.       If you have a special need that is not met by EZhelp, or an idea
  909.    for an enhancement, send a note with details. There is a chance that
  910.    the feature may have been included in an updated version. If not, we
  911.    will do our best to make good use of your valuable suggestions.
  912.    For a list of the currently planned enhancements for version 1.1,
  913.    see page 17.
  914.  
  915.                                                       Page 17
  916.  
  917.   F. Registering
  918.  
  919.      EZhelp is a shareware product, and may be used for a reasonable
  920.   trial period free of charge. What defines a reasonable trial period?
  921.   You may evaluate the package for 30 days, which should be enough
  922.   time to decide if you would like to continue using it.
  923.  
  924.      The basic registration fee is $25. This fee includes a diskette
  925.   with all EZhelp executable files, Turbo C object file libraries for
  926.   all memory models, a user's guide on the diskette, and free updates
  927.   for one year, less media and postage costs. After one year, registered
  928.   users can obtain updates for half of the original fee.
  929.      Documentation on each function is also included with basic
  930.   registration, for application developers. Source code updates can be
  931.   obtained for half of the original price.
  932.  
  933.      To print out a copy of the registration form, use this DOS command:
  934.  
  935.      TYPE ORDER.DOC > PRN
  936.  
  937.  
  938.   Disclaimer
  939.  
  940.   This program is sold without any express or implied warranties
  941.   whatsoever. Because of the diversity of conditions and hardware under
  942.   which this program may be used, no warranty of fitness for a
  943.   particular purpose is offered. The user is advised to test the
  944.   program thoroughly before relying on it. The user must assume the
  945.   entire risk of using the program. Any liability of seller or author
  946.   will be limited exclusively to product replacement or refund of the
  947.   purchase price.
  948.  
  949.  
  950.   G. Enhancements
  951.  
  952.      Here is a list of enhancements that are being considered for
  953.   version 1.1 of EZhelp. The ones with an asterisk are most likely to
  954.   be included in the next version.
  955.  
  956.  
  957.      * Additional help window messages
  958.      * Single-line scrolling
  959.      * Single-letter menu selection
  960.      * Hands-free Demo mode
  961.        Menu names at the top left of each menu
  962.        Front end with text editor
  963.        More startup options
  964.        Help text printing
  965.  
  966.  
  967.  
  968.  
  969.                                                       Page 18
  970.  
  971.   H. Quick summary
  972.  
  973.  
  974.   Topic definitions
  975.  
  976.    {{  Topic Name,   Menu No.,   Menu Order, Next Menu  }}
  977.  
  978.       1 - 15 chars   all of the     0 for sort on     0 for display
  979.       ended with a   topics in      topic name;    text to follow;
  980.       comma    a menu have Other - use    Other - display
  981.                the same #  order chosen      the next menu
  982.  
  983.  
  984.   Compiling text
  985.  
  986.      EZcomp MYFILE.TXT [-pu] [-ps]
  987.  
  988.  
  989.      Note: Use your own help text file in place of MYFILE.TXT. Use
  990.            the -pu and -ps options to print a report on the text file
  991.            topics, unsorted or sorted.
  992.  
  993.  
  994.   Running EZhelp
  995.  
  996.      EZhelp MYFILE.TXT [-Mnn -Jnn -Wnn -Bnn -Snn -Tnn -E ]
  997.  
  998.      -Mnn    menu number
  999.      -Jnn    jump to topic in menu
  1000.      -Wnn    window color
  1001.      -Bnn    bar color
  1002.      -Snn    window size
  1003.      -Tnn    window style
  1004.      -E      turn on error messages
  1005.  
  1006.                               Appendix A
  1007.                      Installing EZhelp Reference
  1008.                                    
  1009.  
  1010.      To install EZhelp Reference onto another drive, enter the
  1011.      following commands at the DOS prompt.
  1012.  
  1013.       First, set the DOS prompt to the drive where the EZhelp
  1014.       files reside.
  1015.  
  1016.       A:                         (get the source drive prompt)
  1017.  
  1018.       Then, start the installation batch, giving the source drive
  1019.       and the drive where the files are to be installed.
  1020.  
  1021.       INSTALL X Y                (where X is the letter of the source
  1022.                                  drive and Y is the letter of the
  1023.                                  destination drive.
  1024.  
  1025.  
  1026.   For example, if you want to install EZhelp on your C drive, enter
  1027.  
  1028.       INSTALL A C
  1029.  
  1030.  
  1031.      This installation batch will create two subdirectories on
  1032.   the destination drive, \EZHELP and \EZHELP\TCLIB.
  1033.  
  1034.       \EZHELP subdirectory contents
  1035.  
  1036.          EZhelp.exe           command line executable module
  1037.          EZcomp.exe           reference compiler
  1038.          Showcolo.exe         color display utility
  1039.          EZhelp.txt           EZhelp user's reference
  1040.          EZhelp.hnx           EZhelp user's index
  1041.          Transpor.txt         Example reference
  1042.          Transpor.hnx         Example index
  1043.          Anchor.txt           Example reference
  1044.          Anchor.hnx           Example index
  1045.          Users.doc            User's documentation
  1046.          Order.doc            Order form
  1047.          Install.bat          Installation batch
  1048.          EZ.bat               Batch to start user's reference
  1049.          Ex1.bat              Batch to start example 1
  1050.          Ex2.bat              Batch to start example 2
  1051.  
  1052.       \EZHELP\TCLIB subdirectory contents
  1053.  
  1054.          EZT.LIB              tiny model
  1055.          EZS.LIB              small model
  1056.          EZC.LIB              compact model
  1057.          EZM.LIB              medium model
  1058.          EZL.LIB              large model
  1059.          EZH.LIB              huge model
  1060.  
  1061.  
  1062.       \EZHELP\SRC subdirectory contents
  1063.  
  1064.          EZhelp.h             EZhelp header file
  1065.          Yourprog.c           Sample application with EZhelp link
  1066.  
  1067.   If you purchased source code, the source files below will also be
  1068.   installed in the \EZHELP\SRC subdirectory:
  1069.  
  1070.          EZhelp.c             command line executable source
  1071.          EZ_help.c            application linkable source
  1072.          EZhelp1.c            EZhelp function source
  1073.          EZhelp2.c            Toolbox function source
  1074.          EZcomp.c             Reference compiler source
  1075.  
  1076.  
  1077.                               Appendix B
  1078.                           EZhelp developer's
  1079.                                Overview
  1080.                                    
  1081.    This appendix deals with the library files and setting up to
  1082. link to your application. There are six library files contained in
  1083. the \TCLIB subdirectory on the EZhelp diskette. These library files
  1084. contain the .OBJ files in each memory model, for Turbo C.
  1085.  
  1086.          EZT.LIB              tiny model
  1087.          EZS.LIB              small model
  1088.          EZC.LIB              compact model
  1089.          EZM.LIB              medium model
  1090.          EZL.LIB              large model
  1091.          EZH.LIB              huge model
  1092.  
  1093.    The .OBJ files contained in each .LIB file have the same names,
  1094. so if you intend to extract the .OBJs files for linking, take care
  1095. not to mix the files from each library.
  1096.  
  1097.          EZHELP.OBJ           command line startup
  1098.          EZ_HELP.OBJ          function call startup
  1099.          EZHELP1.OBJ          EZhelp functions
  1100.          EZHELP2.OBJ          Toolbox functions
  1101.  
  1102.  
  1103.    There are two ways you can link the required functions into your
  1104. application. If you use the integrated environment and project files,
  1105. include EZ_HELP.OBJ, EZHELP1.OBJ, and EZHELP2.OBJ in your project
  1106. file.
  1107.    If you use TLINK, Borland's command line linker, name the
  1108. library to use as in the following example, which assumes that the
  1109. EZhelp diskette is in the A drive. This example links in the small
  1110. memory model, using an application's object file, YOURPROG.OBJ, and
  1111. the Turbo C object file c0s.obj. The EZhelp library file EZS is
  1112. included, along with the Turbo C libraries cs.lib, maths.lib, and
  1113. emu.lib.
  1114.  
  1115.    tlink \tc\lib\c0s YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZS
  1116.    \tc\lib\cs \tc\lib\maths \tc\lib\emu
  1117.  
  1118. Note: The entire command was broken into two lines for clarity.
  1119.  
  1120. To link for other memory models, you must specify the correct
  1121. Turbo C memory model objects and libraries.
  1122.  
  1123. Tiny model
  1124.  
  1125.    tlink \tc\lib\c0t YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZT
  1126.    \tc\lib\cs \tc\lib\maths \tc\lib\emu
  1127.  
  1128. Small model
  1129.  
  1130.    shown in example above
  1131.  
  1132. Compact model
  1133.  
  1134.    tlink \tc\lib\c0c YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZC
  1135.    \tc\lib\cc \tc\lib\mathc \tc\lib\emu
  1136.  
  1137. Medium model
  1138.  
  1139.    tlink \tc\lib\c0m YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZM
  1140.    \tc\lib\cm \tc\lib\mathm \tc\lib\emu
  1141.  
  1142. Large model
  1143.  
  1144.    tlink \tc\lib\c0l YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZL
  1145.    \tc\lib\cl \tc\lib\mathl \tc\lib\emu
  1146.  
  1147. Huge model
  1148.  
  1149.    tlink \tc\lib\c0h YOURPROG.OBJ,YOURPROG.EXE,,A:\TCLIB\EZH
  1150.    \tc\lib\ch \tc\lib\mathh \tc\lib\emu
  1151.  
  1152.  
  1153.      The libraries are configured to allocate memory for that
  1154.   specific memory model. The allocation calls used in each
  1155.   model are:
  1156.  
  1157.          EZT.LIB              malloc()
  1158.          EZS.LIB              malloc()
  1159.          EZC.LIB              malloc()
  1160.          EZM.LIB              farmalloc()
  1161.          EZL.LIB              farmalloc()
  1162.          EZH.LIB              farmalloc()
  1163.  
  1164.   If you purchased source code, you will have to change the
  1165.   malloc() calls with farmalloc() calls, and the free() calls
  1166.   to farfree() calls, to compile in the Medium, Large, and
  1167.   Huge memory models. There are 11 places in the code where
  1168.   the calls are found, as listed below:
  1169.  
  1170.   Source file   malloc()                  free()
  1171.   -----------   -----------------------   ---------------------
  1172.   EZ_HELP.C     line  49,  50,  71        line 118, 119, 120
  1173.   EZHELP.C      line 133, 134, 157        line 188, 189, 190
  1174.   EZHELP1.C     line 121, 131, 551, 553   line 223, 224, 253,
  1175.                                                256, 643, 644
  1176.   EZHELP2.C     line 188                  line 225
  1177.  
  1178.  
  1179.                               Appendix C
  1180.                           EZhelp developer's
  1181.                           function reference
  1182.  
  1183.    This appendix lists the major functions of the EZhelp system.
  1184. Only one function from these listed here is needed to call EZhelp
  1185. from another application. This function is ez_help. Because of its
  1186. emphasis, it is listed first. The remainder of the functions are
  1187. grouped into two sections, EZhelp and Toolbox. The several that may be
  1188. useful in any application are listed in the Toolbox section. The rest
  1189. of the functions are useful only within the EZhelp system, and are
  1190. grouped together at the end.
  1191.  
  1192.  
  1193. Toolbox functions
  1194.  
  1195. ez_help              File: EZ_help.obj
  1196. --------------------------------------
  1197.  
  1198.  
  1199. int ez_help(ezhelp_env *env)
  1200.  
  1201. This is the function to link into your application to call
  1202. EZhelp. The function requires that you declare a ezhelp_env structure
  1203. and fill it with any startup options needed. This fields of this
  1204. structure are defined in EZhelp.h.
  1205.  
  1206. ezhelp_env  pointer to an ezhelp_env structure declared
  1207.             in your calling program. env->start_menu should
  1208.             be set with the character value of the startup
  1209.             menu. For example, if you were to start EZhelp
  1210.             at menu number 10, you would include this line
  1211.             in your program before calling ez_help:
  1212.  
  1213.             env.start_menu = (char)10;
  1214.  
  1215.             Additional options may be set in ezhelp_env
  1216.             structure env before calling ez_help. For
  1217.             further examples, see the sample program
  1218.             Yourprog.c and header file EZhelp.h.
  1219.  
  1220. Returns:       An integer indicating an exit (error) code is
  1221.             returned to the calling program. The possible
  1222.             exit codes are:
  1223.       
  1224.             50 insufficient memory
  1225.             51 topic not found
  1226.             53 reference file not found
  1227.             54 reference index not found
  1228.  
  1229.  
  1230. calculate_framemem   File: EZhelp2.obj
  1231. --------------------------------------
  1232.  
  1233. Calculate the amount of memory needed for a menu
  1234. buffer, including the outer window and color character, with one extra
  1235. space on each side of each side of topics, and one extra line above
  1236. the first topic.
  1237.  
  1238. void calculate_framemem(int *framemem, menu_env *mnptr,
  1239.                         ezhelp_env *env, int scrn)
  1240.  
  1241. framemem    pointer to the integer which will be set
  1242.             in this function with the calculated
  1243.             memory requirement
  1244. mnptr       pointer to current menu status buffer
  1245. env         pointer to environment buffer
  1246. scrn        current menu level
  1247.  
  1248.  
  1249. getkey               File: EZhelp2.obj
  1250. --------------------------------------
  1251.  
  1252. Get a key from the keyboard buffer and return the scan codes
  1253. in two characters passed to the function
  1254.  
  1255. void getkey(char *key, char *asct)
  1256.  
  1257. key         pointer to char
  1258. asct        pointer to char
  1259.  
  1260. Returns:    Contents of AH register returned in key,
  1261.             contents of AL register returned in asct.
  1262.  
  1263.  
  1264. hidecursor           File: EZhelp2.obj
  1265. --------------------------------------
  1266.  
  1267. void hidecursor()
  1268.  
  1269. Remove the cursor from the screen.
  1270.  
  1271.  
  1272. monochrome           File: EZhelp2.obj
  1273. --------------------------------------
  1274.  
  1275. int monochrome()
  1276.  
  1277. Test for a monochrome monitor.
  1278.  
  1279. Returns:    TRUE if a monochrome monitor is found
  1280.             FALSE if any other monitor is found
  1281.  
  1282.  
  1283. putframe             File: EZhelp2.obj
  1284. --------------------------------------
  1285.  
  1286. Putframe will allocate the memory to build a screen
  1287. buffer, fill it with the window in the style and color
  1288. specified, then place it on the screen. The memory is
  1289. released before return.
  1290.  
  1291. void putframe(char botype, char bocolo, int balong,
  1292.             int bahigh, int xcoord, int ycoord)
  1293.  
  1294. botype      which window style (1 - 8)
  1295. bocolo      color of window frame
  1296. balong      number of chars from left to right
  1297. bahigh      number of lines from top to bottom
  1298. xcoord      upper left x coordinate
  1299. ycoord      upper y coordinate
  1300.  
  1301.  
  1302. showcursor           File: EZhelp2.obj
  1303. --------------------------------------
  1304.  
  1305. void showcursor()
  1306.  
  1307. Return the cursor to the screen.
  1308.  
  1309.  
  1310. sizecursor           File: EZhelp2.obj
  1311. --------------------------------------
  1312.  
  1313. This function will set the cursor size to 0 lines,
  1314. or reset it back to 1 line, as is the default.
  1315.  
  1316. void sizecursor(int on)
  1317.  
  1318. on          if 0, set cursor lines to 0, else set
  1319.             cursor line to 1.
  1320.  
  1321.  
  1322. EZhelp functions
  1323.  
  1324.  
  1325. count_topics         File: EZhelp1.obj
  1326. --------------------------------------
  1327.  
  1328. Count the total number of topics in a menu,
  1329. put the results in mnptr->lblset. Put the number
  1330. of the first menu in the set, from the beginning
  1331. of the index, in mnptr->frst_lbl.
  1332.  
  1333. int count_topics(indextype *txptr,
  1334.                menu_env *mnptr, ezhelp_env *env)
  1335.  
  1336. txptr       pointer to help text index
  1337. mnptr       pointer to current menu status buffer
  1338. env         pointer to environment buffer
  1339.  
  1340.  
  1341. drive_bars           File: EZhelp1.obj
  1342. --------------------------------------
  1343.  
  1344. This function controls the menu display and selection. The
  1345. major functions performed are:
  1346.  
  1347.    * memory requirements calculated, memory allocated
  1348.    * topics loaded from index into screen buffer
  1349.    * memory allocated for underlying screen area, and filled
  1350.    * menu window placed on screen
  1351.    * topics placed within window boundaries
  1352.    * highlight bar control
  1353.  
  1354. int drive_bars(int *last_keypress, indextype *txptr,
  1355.             menu_env *mnptr, ezhelp_env *env)
  1356.  
  1357. last_keypress  1 if return was the last keypress before this
  1358.             function was called. This variable is also set
  1359.             by this function.
  1360. txptr       pointer to help text index
  1361. mnptr       pointer to current menu status buffer
  1362. env         pointer to environment buffer
  1363.  
  1364. Returns:    0 if escape is pressed
  1365.             1 if return pressed and another menu level exists
  1366.             2 if return pressed an no more menu levels exist
  1367.             other by error code
  1368.  
  1369. Returns:    error codes
  1370.  
  1371.  
  1372. drive_help           File: EZhelp1.obj
  1373. --------------------------------------
  1374.  
  1375. This function performs the outer control of the menus and
  1376. help display:
  1377.  
  1378.    * calls the other functions that seek and load
  1379.       topics for display and selection.
  1380.    * increments and decrements the menu-level pointer
  1381.    * call show_helptext when it is appropriate to
  1382.       display help text.
  1383.  
  1384. int
  1385. drive_help(FILE *F_help, menu_env *mnptr,
  1386.             indextype *txptr, ezhelp_env *env)
  1387.  
  1388. F_help      reference file pointer
  1389. mnptr       pointer to current menu status buffer
  1390. txptr       pointer to help text index
  1391. env         pointer to environment buffer
  1392.  
  1393.  
  1394. give_exit_msg        File: EZhelp1.obj
  1395. --------------------------------------
  1396.  
  1397. Display an error message to the screen, if
  1398. env->show_errors is TRUE
  1399.  
  1400. void
  1401. give_exit_msg(int whicherror, ezhelp_env *env)
  1402.  
  1403. whicherror  integer of the message to display
  1404.             (see function ez_help for a list
  1405.             of possible error codes)
  1406. env         pointer to environment buffer
  1407.  
  1408.  
  1409. insert_nulls         File: EZhelp1.obj
  1410. --------------------------------------
  1411.  
  1412. Read through the help text in the buffer, inserting
  1413. a NULL on the line feed character after n line feed
  1414. characters have been counted, where n is the window
  1415. size, in lines.
  1416.  
  1417. void insert_nulls(char *text, int *num_pages,
  1418.                   indextype *txptr, ezhelp_env *env)
  1419.  
  1420. text        char pointer to the buffer containing the
  1421.             help text
  1422. num_pages   pointer to integer. This variable will
  1423.             bet set in this function with the number
  1424.             of pages of the help text.
  1425. txptr       pointer to help text index
  1426. env         pointer to environment buffer
  1427.  
  1428.  
  1429. load_help            File: EZhelp1.obj
  1430. --------------------------------------
  1431.  
  1432. Loads the help text topic from the reference file at
  1433. the offset contained in txptr
  1434.  
  1435. int load_help(FILE *help_file, char *text, int *num_pages,
  1436.                indextype *txptr, ezhelp_env *env)
  1437.  
  1438. text        pointer to the help text
  1439.             (filled in this function)
  1440. help_file   pointer to the help text file
  1441. num_pages   pointer to integer, to be set with
  1442.             the number of pages of text
  1443. txptr       pointer to help text index
  1444. env         pointer to environment buffer
  1445.  
  1446. Returns:    Zero is returned on success.
  1447.  
  1448.  
  1449. load_topics          File: EZhelp1.obj
  1450. --------------------------------------
  1451.  
  1452. Read all of the topics of a given menu into a
  1453. buffer, back to back
  1454.  
  1455. void load_topics(int *dash, indextype *txptr,
  1456.                   char *lbltxt, menu_env *mnptr,
  1457.                   ezhelp_env *env)
  1458.  
  1459. dash        pointer to a flag indicating if line
  1460.             is all dashes
  1461. txptr       pointer to help text index
  1462. mnptr       pointer to current menu status buffer
  1463. lbltxt      pointer to buffer area to receive topics
  1464. env         pointer to environment buffer
  1465.  
  1466.  
  1467. next_page            File: EZhelp1.obj
  1468. --------------------------------------
  1469.  
  1470. Rewind or fast forward to the next page of text.
  1471.  
  1472.  
  1473. void
  1474. next_page(int which_way, char *text, int *done)
  1475.  
  1476. which_way   if 0, rewind; else fast forward
  1477. text        pointer to the help text
  1478. done        pointer to integer of the total
  1479.             number of character rewound
  1480.             or fast forwarded. This variable is
  1481.             set in this function.
  1482.  
  1483.  
  1484. seek_topic           File: EZhelp1.obj
  1485. --------------------------------------
  1486.  
  1487. Read through the help text index to match the topic contained in
  1488. mnptr. The first two characters of mnptr->menulink must be filled
  1489. with Menu Number, Menu Order values. If env->jump_to is non-zero,
  1490. the second character of mnptr->menulink will be set to that value.
  1491. Mnptr->topic must also be filled with the topic name.
  1492.  
  1493. int seek_topic(menu_env *mnptr, int *mnunum,
  1494.                indextype *txptr, ezhelp_env *env)
  1495.  
  1496. mnptr       pointer to current menu status buffer
  1497. mnunum      number of the topic in the index, from the
  1498.             start of the index
  1499. txptr       pointer to help text index
  1500. env         pointer to environment buffer
  1501.  
  1502. Returns:    TRUE if topic found in index
  1503.             Returns FALSE otherwise
  1504.  
  1505.  
  1506. show_helptext        File: EZhelp1.obj
  1507. --------------------------------------
  1508.  
  1509. This function controls the display of the help reference text.
  1510. The major functions performed are:
  1511.  
  1512.    * memory allocated for the entire topic
  1513.    * memory allocated for underlying screen area, and filled
  1514.    * topic read into buffer from file, page nulls inserted
  1515.    * all underlying screens are restored for each menu level
  1516.    * help window displayed, help reference displayed
  1517.    * PGUP and PGDN through text
  1518.  
  1519. int show_helptext(FILE *F_help, indextype *txptr,
  1520.                   menu_env *mnptr, ezhelp_env *env)
  1521.  
  1522. F_help      reference file pointer
  1523. txptr       pointer to help text index
  1524. env         pointer to environment buffer
  1525.  
  1526. Returns:    error codes
  1527.  
  1528.  
  1529. show_next_menu       File: EZhelp1.obj
  1530. --------------------------------------
  1531.  
  1532. This fnction will attempt to locate a menu number in the index
  1533. based on the char value contained in mnptr->menulink[0]. If the
  1534. menu is found, the function drive_bars is called to display it.
  1535.  
  1536. int show_next_menu(int *last_keypress, indextype *txptr,
  1537.                   ezhelp_env *env, menu_env *mnptr)
  1538.  
  1539. last_keypress  1 if return was the last keypress before this
  1540.             function was called. This variable is also set
  1541.             by this function.
  1542. txptr       pointer to help text index
  1543. env         pointer to environment buffer
  1544. mnptr       pointer to current menu status buffer
  1545.  
  1546. Returns:    error code if menu not found
  1547.  
  1548.  
  1549. show_windowmsg       File: EZhelp1.obj
  1550. --------------------------------------
  1551.  
  1552. Place the page number and keystroke command
  1553. message at the top of the help text window. The variables
  1554. curset and num_pages are used to determine if the message
  1555. should contain PGUP, PGDN, both, or neither.
  1556.  
  1557. void show_windowmsg(int curset, int num_pages,
  1558.                      ezhelp_env *env)
  1559.  
  1560. curset      current page of text
  1561. num_pages   total number of pages in text
  1562. env         pointer to environment buffer
  1563.  
  1564.  
  1565. unroll_menus         File: EZhelp1.obj
  1566. --------------------------------------
  1567.  
  1568. void unroll_menus(int scrn, menu_env *mnptr)
  1569.  
  1570. Restore each menu level underlay to the screen
  1571. starting with the current screen level.
  1572.  
  1573. scrn        menu level (1 - 16)
  1574. mnptr       pointer to current menu status buffer
  1575.  
  1576.  
  1577.  
  1578.