home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / SWISS.ZIP / SWISS.TXT < prev    next >
Encoding:
Text File  |  1985-01-05  |  30.8 KB  |  1,055 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                   =====================================================
  18.  
  19.                                     SWISS ARMY KNIFE
  20.  
  21.                   BASIC Programming Tools for the IBM Personal Computer
  22.  
  23.  
  24.                                       Version 1.0.0
  25.  
  26.                   =====================================================
  27.  
  28.                            Copyright (C) 1984, John R. Layman.
  29.                                   All rights reserved.
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.          Layman & Layman
  53.          1344 Blair House
  54.          Columbus, OH  43220
  55.  
  56.          CompuServe 75216,3557
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.          Swiss Army Knife                                         User's Guide
  70.  
  71.  
  72.  
  73.  
  74.  
  75.                                     Table of Contents
  76.  
  77.  
  78.  
  79.                               Introduction                     2
  80.  
  81.                               Description of ALIAS utility     3
  82.  
  83.                               Description of STRIP utility     4
  84.  
  85.                               Description of LIST utility      6
  86.  
  87.                               Description of XREF utility      7
  88.  
  89.                               Description of BOXER program     9
  90.  
  91.                               Operating Instructions          10
  92.  
  93.                               Error Messages                  12
  94.  
  95.                               User-supported Concept          14
  96.  
  97.                               Permission to Copy              15
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.          29-Dec-84                                                Page 1 of 15
  131.  
  132.  
  133.  
  134.  
  135.          Swiss Army Knife                                         User's Guide
  136.  
  137.  
  138.  
  139.                                       INTRODUCTION
  140.  
  141.  
  142.          The Swiss Army Knife is an aid to BASIC programming on the IBM PC and
  143.          look-alikes.  Its blades are utility programs which provide:
  144.  
  145.                               program compaction
  146.                               line optimization
  147.                               alias substitution
  148.                               formatted program listing
  149.                               cross-reference generation
  150.  
  151.  
  152.          These tools allow you to:
  153.  
  154.          * dramatically improve the performance of your programs.
  155.  
  156.          * write larger programs than are possible using BASIC alone.
  157.  
  158.          * program using meaningful variable names and sound programming style
  159.            without being penalized by the BASIC interpreter.
  160.  
  161.          * print neatly formatted program listings, including an optional
  162.            cross-reference of critical program elements.
  163.  
  164.  
  165.          In short, this is the basic tool kit for BASIC programming.
  166.  
  167.  
  168.          The utilities which make up The Swiss Army Knife are written in BASIC
  169.          and compiled with the IBM BASIC Compiler.  They are readily portable
  170.          to any system which uses Microsoft's GW-BASIC, and because the source
  171.          code is available to users, you can tailor them to suit any special
  172.          need you may have.  You will find the internals to be of superior
  173.          quality; professional software, available in "user-supported" form.
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.          05-Jan-85                                                Page 2 of 15
  197.  
  198.  
  199.  
  200.  
  201.          Swiss Army Knife                                         User's Guide
  202.  
  203.  
  204.  
  205.                                           ALIAS
  206.  
  207.  
  208.          You can use ALIAS to replace long variable names with short aliases.
  209.          Doing so improves the performance of an interpreted BASIC program
  210.          without sacrificing the clarity of its source form.  Using ALIAS to
  211.          rename variables is particularly effective when you run it prior to
  212.          compacting and optimizing the program using the STRIP utility.
  213.  
  214.  
  215.          To use ALIAS you must prepare a list of the variable names you wish
  216.          to change and the aliases which are to be given.  You may rename all
  217.          variables, or just a select few.  You may also assign the same alias
  218.          to more than one variable.  This flexibility allows you to tune the
  219.          performance of your program.  It also permits you to leave certain
  220.          names unchanged (such as those in COMMON), or to separately process
  221.          segments of a program which are to be MERGEd at execution time.
  222.  
  223.  
  224.          The alias list is an ASCII text file.  Each line in the file contains
  225.          a variable name and its alias (an "alias pair").  For example:
  226.  
  227.                                   ITEM.DESCRIPTION$=D$
  228.  
  229.          is an alias pair which instructs the utility to substitute the alias,
  230.          D$, for every occurrence of the string name, ITEM.DESCRIPTION$.
  231.  
  232.  
  233.          An alias may be a literal, rather than a variable name.  This allows
  234.          you to replace variables with constants, such as:
  235.  
  236.               TRUE=-1   or   ARRAY.SIZE=500   or   PROGRAM$="PAY010 vn 1.0"
  237.  
  238.          This capability is useful for both interpreted and compiled programs.
  239.          The BASIC Compiler often generates considerably more efficient and
  240.          concise code when literals are used.
  241.  
  242.  
  243.          ALIAS has the following characteristics and restrictions:
  244.  
  245.          * The alias list may be in any sequence.
  246.  
  247.          * The utility is unable to differentiate between subscripted and
  248.            unsubscripted variables of the same name.
  249.  
  250.          * You are responsible for ensuring that aliases do not violate any
  251.            variable naming scheme which uses the DEFINT, DEFSNG, DEFDBL, or
  252.            DEFSTR instructions, and that the alias list contains no errors of
  253.            explicit typing (e.g. ADDRESS$=A!).
  254.  
  255.          * At termination, a line count and byte length are displayed for both
  256.            input and output files.  The length shown is that of the ASCII
  257.            text; not the size of the tokened form of the program.
  258.  
  259.  
  260.  
  261.  
  262.          05-Jan-85                                                Page 3 of 15
  263.  
  264.  
  265.  
  266.  
  267.          Swiss Army Knife                                         User's Guide
  268.  
  269.  
  270.  
  271.                                           STRIP
  272.  
  273.  
  274.          STRIP is a program compactor.  It condenses a BASIC program so that
  275.          it will load and execute more efficiently and require less disk
  276.          space.  By using STRIP, you can write well-organized, well-formatted
  277.          programs without being penalized by the overhead inherent in inter-
  278.          preted execution.  You can also use this utility to reduce the size
  279.          of compiled BASIC programs.
  280.  
  281.  
  282.          You normally compact a program after you have tested it and are ready
  283.          to place it into production.  The compaction process is similar to
  284.          compilation in that it produces an "object" version of the program
  285.          which is distinct from the "source" version.  Compaction is most
  286.          effective when you assign aliases beforehand using the ALIAS utility.
  287.  
  288.  
  289.          No special preparation is required to make a program compactable, but
  290.          you must observe one restriction: do not use comment lines as the
  291.          destination of line-referencing statements such as GOTO or GOSUB.
  292.          The reason for this restriction is explained below.
  293.  
  294.  
  295.          STRIP condenses a program by removing insignificant spaces, words,
  296.          and symbols.  Full comment lines are deleted, and comments or REMs
  297.          which appear at the right of a line are discarded.  Notice that full
  298.          REM lines are left in place so that they can be used as pseudo tags
  299.          (the destination of line-referencing statements), or for permanent
  300.          remark text such as a copyright notice.  Note that the term "comment
  301.          line" is used here to mean only those remark lines which are defined
  302.          by the single quote (apostrophe) character.
  303.  
  304.  
  305.          STRIP includes an optional line optimization feature.  This feature
  306.          combines the lines in a program, wherever possible, to reduce its
  307.          overall size.  The BASIC interpreter uses an efficient scheme for
  308.          managing program lines, and it is not particularly sensitive to the
  309.          number of lines in a program.  The primary advantage of optimization
  310.          lies in reducing the size of a program rather than in improving its
  311.          performance.  Some options of the BASIC Compiler generate extra code
  312.          for each program line, so it is frequently advantageous to optimize a
  313.          program prior to compiling it.
  314.  
  315.  
  316.          STRIP has these additional characteristics and restrictions:
  317.  
  318.          * References to nonexistent lines are considered legitimate and are
  319.            ignored.  This makes it possible for you to independently compact
  320.            program fragments and subroutines.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.          05-Jan-85                                                Page 4 of 15
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.          Swiss Army Knife                                         User's Guide
  334.  
  335.  
  336.  
  337.          * Those BASIC instructions which are normally used only in the direct
  338.            mode (e.g. AUTO, EDIT, LIST, LLIST, RENUM) are not recognized as
  339.            line referencing statements.  STRIP may eliminate lines which are
  340.            referred to by these statements if you optimize a program which
  341.            includes them.
  342.  
  343.          * The line optimization feature increases the run time of the utility
  344.            because it requires a preliminary pass of the source program.
  345.  
  346.          * Line optimization will not combine DATA statements, even when they
  347.            adjoin.  The DATA keyword will be repeated for each statement.
  348.  
  349.          * The anomalous syntax of the DATA statement is ignored.  Any series
  350.            of spaces that occur within an alphanumeric data constant which is
  351.            not surrounded by quotes will be reduced to a single space.  You
  352.            can avoid this by always using quotes for such constants.
  353.  
  354.          * At termination, a line count and byte length are displayed for both
  355.            input and output files.  The length shown is that of the ASCII
  356.            text; not the size of the tokened form of the program.
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.          05-Jan-85                                                Page 5 of 15
  395.  
  396.  
  397.  
  398.  
  399.          Swiss Army Knife                                         User's Guide
  400.  
  401.  
  402.  
  403.                                            LIST
  404.  
  405.  
  406.          LIST produces a formatted program listing which you can control by
  407.          observing certain source code conventions.  These are:
  408.  
  409.          * If the first line of the program is a REM of 40 characters or less,
  410.            the text of the REM is used as a page heading.  Otherwise, the file
  411.            name is used.
  412.  
  413.          * REM lines and comment lines which contain a caret (^) as the first
  414.            comment character are preceded by a page change.
  415.  
  416.          * REM lines and comment lines are printed in bold-face on standard
  417.            IBM dot matrix printers or compatibles.
  418.  
  419.          * Comments can be boxed using frames of line graphics characters in
  420.            the configuration (shown as ASCII values):
  421.  
  422.                                  [218][196]...[196][191]
  423.                                  [179]  text here  [179]
  424.                                  [192][196]...[196][217]
  425.  
  426.            These boxes print size-as, double-width, or compressed, depending
  427.            on the length of the comment line.  If it fits within 80 positions
  428.            with the framed portion enlarged, the box is printed double-width
  429.            (the remainder of the line prints at normal pitch).  If the line is
  430.            between 80 and 132 characters long, the entire line is compressed.
  431.            Otherwise, the line prints at normal pitch.
  432.  
  433.            Boxes can be printed only on standard IBM dot matrix printers or
  434.            compatibles.  Original IBM 80cps and Epson MX80 printers without
  435.            the Graftrax option cannot print the actual frame characters.  For
  436.            these printers, LIST translates the displayable frame characters
  437.            into their printable counterparts.
  438.  
  439.  
  440.          LIST splits long lines at rational breaking points and indents the
  441.          continuation according to the indentation of the base of the line.
  442.          It does not impose any indentation or formatting scheme.  When you
  443.          edit a long line so that there is enough white space at the breaking
  444.          point to naturally indent the continuation, LIST will print the line
  445.          just as it appears when listed by the interpreter.
  446.  
  447.  
  448.          At run time, you can stipulate that line numbers are to be aligned on
  449.          their units position (i.e. right-justified as 5-digits).
  450.  
  451.  
  452.          LIST and XREF may automatically be run in tandem, producing a single
  453.          output file.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.          05-Jan-85                                                Page 6 of 15
  461.  
  462.  
  463.  
  464.  
  465.          Swiss Army Knife                                         User's Guide
  466.  
  467.  
  468.  
  469.                                           XREF
  470.  
  471.  
  472.          XREF produces a cross-reference listing of the variable names and
  473.          line numbers used in a program.  Optionally, you can expand this
  474.          listing to include reserved words and/or literals.
  475.  
  476.  
  477.          XREF has the following characteristics and restrictions:
  478.  
  479.          * If the first line of the program is a REM of 40 characters or less,
  480.            the text of the REM is used as a page heading.  Otherwise, the file
  481.            name is used.
  482.  
  483.          * Symbols print in emphasized mode and references print in compressed
  484.            mode on standard IBM dot matrix printers or compatibles.
  485.  
  486.          * Each category of symbols is listed separately (i.e. variable names,
  487.            line numbers, reserved words, numeric literals, string literals).
  488.  
  489.          * Line numbers appear with a "#" prefix and are correctly ordered in
  490.            numeric sequence (e.g. #50 precedes #100).  Numeric literals appear
  491.            in alphabetic sequence (e.g. 100 precedes 50).
  492.  
  493.          * BASIC instructions which are normally used only in direct mode are
  494.            not recognized as reserved words or line referencing statements.
  495.            These include AUTO, EDIT, LIST, LLIST, RENUM, and the like.
  496.  
  497.          * Unary minus (negation) is not recognized.  References to a negative
  498.            numeric literal will appear as references to the absolute value of
  499.            the literal.
  500.  
  501.  
  502.          There is no restriction on the size of the subject program.  If the
  503.          internal data structures used to develop the cross-reference become
  504.          saturated, XREF will open scratch files on the default drive to hold
  505.          the overflow.  Since disk accesses noticably degrade the throughput
  506.          of the utility, you may wish to operate from a RAM disk when creating
  507.          a voluminous cross-reference.  (The capacities of the current version
  508.          are: symbol tree = 200, reference list = 2,000.  These permit XREF to
  509.          be run on a 64k machine.  You may wish to enlarge the arrays which
  510.          comprise these data structures to take advantage of more memory.)
  511.  
  512.  
  513.          XREF can automatically be run in tandem with LIST, producing a single
  514.          output file.
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.          05-Jan-85                                                Page 7 of 15
  527.  
  528.  
  529.  
  530.  
  531.          Swiss Army Knife                                         User's Guide
  532.  
  533.  
  534.  
  535.                                      RESERVED WORDS
  536.  
  537.  
  538.          To distinguish between variable names and reserved words, XREF uses a
  539.          reserved word list.  The list is external to the utility so that you
  540.          can modify it to adapt to changes in BASIC or for your own special
  541.          purposes.
  542.  
  543.  
  544.          The list supplied with XREF is for BASIC Release 2.0.  It includes
  545.          such words as TIMER and WINDOW, which were not reserved in earlier
  546.          versions.  It also includes ABSOLUTE, a word reserved only by the
  547.          BASIC Compiler.  The list purposely excludes the names of BASIC's
  548.          special variables; these include ERR, ERL, DATE$ and TIME$.  You may
  549.          add these to the list if you don't wish them to be listed as variable
  550.          names.
  551.  
  552.  
  553.          The list resides in the file named XREF.RSV.  This is a simple ASCII
  554.          text file which you can display using the DOS TYPE command.  You can
  555.          also edit this file using EDLIN or any other text editor which can
  556.          handle DOS files.  The list is required to be in alphabetic order and
  557.          is limited to a maximum of 175 words in the delivered version of the
  558.          program.
  559.  
  560.  
  561.          While it is possible for you to tailor the reserved word list, there
  562.          are potential undesirable side-effects to changing the list.  XREF's
  563.          lexical scan is not driven by a formal syntax, and its ability to
  564.          recognize context can be damaged when certain key words are removed
  565.          from the list.  The effects of such damage could range from subtle
  566.          (e.g. inability to determine the sense of the ambiguous word AS) to
  567.          quite severe (e.g. unrecognized DATA statements).  Clearly, it is
  568.          safest to use the list as supplied.  If you do decide to alter the
  569.          list, be certain to preserve a copy of the original as a precaution.
  570.          And remember that it is more blessed to add than to delete.
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.          05-Jan-85                                                Page 8 of 15
  593.  
  594.  
  595.  
  596.  
  597.          Swiss Army Knife                                         User's Guide
  598.  
  599.  
  600.  
  601.                                           BOXER
  602.  
  603.  
  604.          You can use BOXER to frame your program comments.  Framed comments
  605.          (or "boxes") are an effective, professional way to present program
  606.          preambles, module headings, copyright notices, and the like.  The
  607.          LIST utility recognizes these boxes and prints them in normal, double-
  608.          width, or compressed mode, depending on their size (refer to LIST for
  609.          a detailed description of these print conventions).
  610.  
  611.  
  612.          BOXER accepts a single line of text and constructs a five-line series
  613.          of comments which contains the framed text.  By manipulating these
  614.          lines with the BASIC editor, you can enlarge the frame to any size.
  615.  
  616.  
  617.          You must run BOXER from the BASIC interpreter.  The program asks for
  618.          the starting line number, the line numbering increment, and the text
  619.          string.  There is no default starting line number, so you must enter
  620.          the number of the first line.  The default increment is 10.  If you
  621.          do not enter any text, the program will construct a frame which can
  622.          accomodate 60 characters per line.
  623.  
  624.  
  625.          When BOXER terminates, it clears itself from memory.  You must then
  626.          move the cursor to each line, in turn, and press the [Enter] key to
  627.          actually place the lines into the interpreter's program space.  Once
  628.          all of the lines have been entered, they can be SAVEd or MERGEd with
  629.          your source program.
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.          05-Jan-85                                                Page 9 of 15
  659.  
  660.  
  661.  
  662.  
  663.          Swiss Army Knife                                         User's Guide
  664.  
  665.  
  666.  
  667.                                  OPERATING INSTRUCTIONS
  668.  
  669.  
  670.          The utilities in The Swiss Army Knife deal with ASCII text files, not
  671.          with BASIC's shorthand tokened form.  Input program files must have
  672.          been written to disk using the ",A" variant of the SAVE command, and
  673.          it is necessary to LOAD and SAVE an output file to convert it to
  674.          tokened BASIC.
  675.  
  676.  
  677.          All source lines must be acceptable to the BASIC interpreter.  The
  678.          BASIC Compiler language extensions are not recognized.
  679.  
  680.  
  681.          The utilities (except for BOXER) are invoked from the DOS prompt, and
  682.          use the same conventions for command line and switch settings as are
  683.          used in other standard language facilities such as the assembler and
  684.          the BASIC Compiler.  A command line may consist only of the name of
  685.          the called utility, or it may include a list of the file names to be
  686.          used and/or switch settings to invoke optional features.
  687.  
  688.  
  689.          When all files are not explicitly specified in the command and the
  690.          file list ends with a semicolon, the remaining unspecified files will
  691.          default without further prompting.  When the file list does not end
  692.          with a semicolon, the utilities will prompt for the unspecified
  693.          files.  A null source file name will always result in a prompt.
  694.  
  695.  
  696.          The switches are never prompted for, but may be appended to the
  697.          command line or to any file specification entered in response to a
  698.          prompt.
  699.  
  700.  
  701.          Because of the limitations of IBM's BASIC Compiler, the utilities do
  702.          not recognize path names.  A disk files must reside in the current
  703.          directory of its particular disk.  A device name may be substituted
  704.          for a file name.  The utilities require that device names be ended
  705.          with a colon (e.g. PRN:).  COMn: files are not supported.
  706.  
  707.  
  708.          When specifying print ouptut from LIST and XREF, it may be necessary
  709.          to indicate a printer type.  The default type is 0, which is treated
  710.          as a crude device having only a Form Feed capability.  The original
  711.          IBM 80cps printer and MX80 (without Graftrax) are printer type 1.
  712.          The IBM graphics printer and later Epson models are printer type 2.
  713.          There is no configuration facility for setting a standard printer
  714.          type.  Types other than zero must be specified each time one of these
  715.          utilities is run.  You can avoid this inconvenience by setting up a
  716.          batch file to call these utilities, with the appropriate printer type
  717.          specified in the batch command which calls the program.
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.          05-Jan-85                                               Page 10 of 15
  725.  
  726.  
  727.  
  728.  
  729.          Swiss Army Knife                                         User's Guide
  730.  
  731.  
  732.  
  733.                                    COMMAND LINE FORMATS
  734.  
  735.          ---------------------------------------------------------------------
  736.  
  737.          ALIAS <source>,<destination>,<aliases>
  738.  
  739.  
  740.          Switches:            none
  741.  
  742.          Source default:      entry.ASC
  743.          Destination default: entry.BAS
  744.          Alias file default:  entry.AKA
  745.  
  746.          ---------------------------------------------------------------------
  747.  
  748.          STRIP <source>,<destination>/O
  749.  
  750.  
  751.          Switches:            O - optimize lines
  752.  
  753.          Source default:      entry.ASC
  754.          Destination default: entry.BAS
  755.  
  756.          ---------------------------------------------------------------------
  757.  
  758.          LIST <source>,<printout>/n/A/X/R/L
  759.  
  760.  
  761.          Switches:            n - printer type (0..2)
  762.                               A - align line numbers
  763.                               X - print cross-reference
  764.                               R - include reserved words in cross-reference *
  765.                               L - include literals in cross-reference *
  766.                                   * (X switch unnecessary with R and/or L)
  767.  
  768.          Source default:      entry.ASC
  769.          Printout default:    LPT1:
  770.  
  771.          ---------------------------------------------------------------------
  772.  
  773.          XREF <source>,<printout>/n/R/L
  774.  
  775.  
  776.          Switches:            n - printer type (0..2)
  777.                               R - include reserved words in cross-reference
  778.                               L - include literals in cross-reference
  779.  
  780.          Source default:      entry.ASC
  781.          Printout default:    LPT1:
  782.  
  783.          ---------------------------------------------------------------------
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.          05-Jan-85                                               Page 11 of 15
  791.  
  792.  
  793.  
  794.  
  795.          Swiss Army Knife                                         User's Guide
  796.  
  797.  
  798.  
  799.  
  800.                                      ERROR MESSAGES
  801.  
  802.  
  803.          Error messages are, for the most part, identical to the messages
  804.          produced by the BASIC interpreter.  The errors fall into three
  805.          classes, shown below by example:
  806.  
  807.  
  808.          1)  Disk not ready.  Correct condition; then press any key:
  809.  
  810.              This is an example of a correctable condition.  You should
  811.              correct the fault and press a key to re-attempt the failed
  812.              operation.  You may also enter Ctrl/Break to abort the program.
  813.  
  814.  
  815.          2)  Bad file mode.  Unrecoverable.
  816.  
  817.              This is an example of a condition that cannot be corrected while
  818.              the utility is loaded.  The program will self-abort.  You must
  819.              correct the problem before retrying the utility.  In the example
  820.              above, you would have to convert the tokened program to an ASCII
  821.              text file.
  822.  
  823.  
  824.          3)  Error 2 at 6450.  Unrecoverable.
  825.  
  826.              This is an example of an unexpected error.  Such errors are fatal
  827.              and may indicate a bug in the utility.  If you should encounter
  828.              such a failure, please mail a written description of your problem
  829.              to Layman & Layman.  Please include your name, address, and phone
  830.              number, along with any pertinent supporting information.
  831.  
  832.  
  833.          The following non-standard errors may also occur.  All are Class 2.
  834.  
  835.  
  836.          Bad switch.
  837.  
  838.              An unexpected switch appears in the DOS command line.
  839.  
  840.  
  841.          Unrecognized line format.
  842.  
  843.              A source line has been encountered which does not have the form
  844.              of an interpretive BASIC line.  The progress monitor display
  845.              shows the point at which the error occurred.
  846.  
  847.  
  848.          Line out of sequence.
  849.  
  850.              Source line numbers are not in sequence.  The progress monitor
  851.              display indicates the location of the error.
  852.  
  853.                                                       (continued on next page)
  854.  
  855.  
  856.          05-Jan-85                                               Page 12 of 15
  857.  
  858.  
  859.  
  860.  
  861.          Swiss Army Knife                                         User's Guide
  862.  
  863.  
  864.  
  865.  
  866.                                ERROR MESSAGES (continued)
  867.  
  868.  
  869.          Alias pair format error.
  870.  
  871.              An entry in the alias file does not have the expected A=B form.
  872.  
  873.  
  874.          Alias table saturated.
  875.  
  876.              The limit of 3,000 aliases has been exceeded.
  877.  
  878.  
  879.          Break table saturated.
  880.  
  881.              The optimizers limit of 9,000 referenced lines has been exceeded.
  882.  
  883.  
  884.          Too many words.
  885.  
  886.              The limit of 175 reserved words has been exceeded.
  887.  
  888.  
  889.          Word out of sequence.
  890.  
  891.              The reserved word list is not in alphabetic order.
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.          05-Jan-85                                               Page 13 of 15
  923.  
  924.  
  925.  
  926.  
  927.          Swiss Army Knife                                         User's Guide
  928.  
  929.  
  930.  
  931.  
  932.                                  USER-SUPPORTED SOFTWARE
  933.  
  934.          ---------------------------------------------------------------------
  935.               If you have received a copy of this suite of utility programs
  936.                             and have found it to be of value,
  937.                    your $35 contribution will be greatly appreciated.
  938.  
  939.                                      Layman & Layman
  940.                                  1344 Blair House Court
  941.                                    Columbus, OH 43220
  942.  
  943.            Whether or not you make a contribution, you are encouraged to copy
  944.                        the program for evaluation by other users.
  945.          ---------------------------------------------------------------------
  946.  
  947.          The Swiss Army Knife is part of the growing body of "user-supported"
  948.          software.  User-supported software is an experiment in distributing
  949.          computer programs, based on these principles:
  950.  
  951.          1.  The value and utility of software can best be assessed by the
  952.              user on his/her own system.
  953.  
  954.          2.  The creation of personal computer software should be encouraged
  955.              and supported by the computing community.
  956.  
  957.          3.  The copying of programs for evaluation should be encouraged,
  958.              rather than restricted.
  959.  
  960.          Under this concept, anyone may request a copy of user-supported
  961.          software by sending a blank, formatted diskette to the author, along
  962.          with a self-addressed, postage-paid return mailer.  A copy of the
  963.          software and documentation will be placed on the diskette and sent by
  964.          return mail.  (Note: two single-sided, double-density diskettes are
  965.          required to contain both object and source code).
  966.  
  967.          A second way to obtain an copy of the software is from a friend, a
  968.          computer club, or bulletin board.  After you have had an opportunity
  969.          to evaluate the software, you are trusted to either forward payment
  970.          to the author, or to discontinue use of the software.
  971.  
  972.          Free distribution of software and voluntary payment for its use
  973.          eliminates the normal costs of promotion and distribution.  Users
  974.          obtain quality software at reduced cost.  They try it out before
  975.          buying, doing so at their own pace, and in the comfort of their home
  976.          or office.  The best programs will survive and thrive, based purely
  977.          on their quality and usefulness.
  978.  
  979.          This honor system benefits the entire personal computer community.
  980.          If you believe in these ideals, your contribution is solicited to
  981.          help make them work.
  982.  
  983.          Please join the experiment.
  984.  
  985.  
  986.  
  987.  
  988.          05-Jan-85                                               Page 14 of 15
  989.  
  990.  
  991.  
  992.  
  993.          Swiss Army Knife                                         User's Guide
  994.  
  995.  
  996.  
  997.  
  998.          NOTICE:  The Swiss Army Knife is a proprietary software product of
  999.          Layman & Layman, protected under Title 17, USC, Copyrights.  Limited
  1000.          license is granted to users of this product to reproduce or transmit
  1001.          the software on a private, non-commercial basis for the purpose of
  1002.          evaluation by prospective users.  This license explicitly excludes:
  1003.  
  1004.          1.  distribution in a modified form.
  1005.  
  1006.          2.  distribution for consideration other than media or handling
  1007.              costs.
  1008.  
  1009.          3.  distribution in connection with any other product, except with
  1010.              the express written consent of Layman & Layman.
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.          05-Jan-85                                               Page 15 of 15
  1055.