home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 24b / keyboard.zip / SOFTCH.DOC < prev    next >
Text File  |  1986-08-14  |  86KB  |  1,917 lines

  1.  
  2.  
  3.  
  4.  
  5.            +---------------------------------------------------------+
  6.            |                                                         |
  7.            |                                                         |
  8.            |                        Soft-Touch                       |
  9.            |                                                         |
  10.            |              Installation/Operations Guide              |
  11.            |                   manual revision 2.03                  |
  12.            |                                                         |
  13.            |                                                         |
  14.            |                                                         |
  15.            |            Soft-Touch Version P2.03 - 03/12/86          |
  16.            |                                                         |
  17.            |           (C) Copyright 1986 - Martin D. Flynn          |
  18.            |                   All Rights Reserved                   |
  19.            |                                                         |
  20.            |                                                         |
  21.            |                                                         |
  22.            |                                                         |
  23.            | I encourage you to freely use, copy, and share this     |
  24.            | product with friends and associates.  If you decide to  |
  25.            | use this product, support the shared software marketing |
  26.            | concept by becoming a registered user.                  |
  27.            |                                                         |
  28.            |                                                         |
  29.            |                                                         |
  30.            |                                                         |
  31.            |                                                         |
  32.            |                     Martin D. Flynn                     |
  33.            |                        FlynnSoft                        |
  34.            |                      P.O. Box 5034                      |
  35.            |               Redwood City, Calif.  94063               |
  36.            |                     (415) 487-6482                      |
  37.            |                                                         |
  38.            +---------------------------------------------------------+
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.          -  I reserve the right to make improvements in the product
  52.             described in this manual at any time and without notice.
  53.  
  54.          -  The software described herein is a copyrighted LICENSE PROGRAM
  55.             and the property of Martin D. Flynn.
  56.  
  57.          -  This program is distributed as a shared software product.  You
  58.             may freely copy and share this product with your friends and
  59.             associates.  If you decide to use this product, I ask you to
  60.             become a registered user.
  61.  
  62.          -  Under no circumstances may this product be sold without the
  63.             express written permission of Martin D. Flynn.
  64.  
  65.          -  Please read the Terms and Conditions contained in the Appendix
  66.             for further details.
  67.  
  68.          -  Use of this product indicates your acceptance of these Terms and
  69.             Conditions.
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.       IBM is a registered trademark of the International Business Machines
  79.           Corporation.
  80.  
  81.  
  82.  
  83.  
  84.  
  85.                                 Table of Contents
  86.  
  87.  
  88.       Chapter 1: Introduction
  89.  
  90.          1.a)  Shareware concept
  91.  
  92.          1.b)  Description and Capabilities
  93.  
  94.          1.c)  PC system requirements
  95.  
  96.          1.d)  Special notation and Conventions
  97.  
  98.          1.e)  A word about "RAM-cram"
  99.  
  100.  
  101.       Chapter 2: Using Soft-Touch
  102.  
  103.          2.a)  Installing Soft-Touch
  104.  
  105.          2.b)  Soft-Touch parameters
  106.  
  107.          2.c)  Escape mode functions
  108.  
  109.          2.d)  Defining keystrokes from the keyboard
  110.  
  111.          2.e)  Saving defined keystrokes to a text file
  112.  
  113.          2.f)  Restoring keystrokes to the keyboard buffer
  114.  
  115.          2.g)  Using variable fields
  116.  
  117.          2.h)  Date and time functions
  118.  
  119.          2.i)  Nesting keystroke definitions
  120.  
  121.  
  122.       Chapter 3: Advanced Topics
  123.  
  124.          3.a)  Enhancing DOS batch file processing
  125.  
  126.          3.b)  Creating demonstration or instructional self running
  127.                programs
  128.  
  129.          3.c)  Program interface
  130.  
  131.  
  132.  
  133.  
  134.  
  135.       Appendices:
  136.  
  137.         A)  Special keystroke names
  138.  
  139.         B)  Keyboard scan codes
  140.  
  141.         C)  Error messages
  142.  
  143.         D)  Program License Agreement
  144.  
  145.         E)  Limited Warranty
  146.  
  147.  
  148.  
  149.  
  150.  
  151.            +---------------------------------------------------------+
  152.            |                                                         |
  153.            |                        CHAPTER 1                        |
  154.            |                      Introduction                       |
  155.            |                                                         |
  156.            +---------------------------------------------------------+
  157.  
  158.  
  159.       ======================================================================
  160.       1.a)  Shareware concept
  161.  
  162.       This version of Soft-Touch is distributed in the public domain with
  163.       the idea that you may freely use, copy, and share this product with
  164.       your friends and associates.
  165.  
  166.       You may review this product at your leasure to determine if you would
  167.       like to continue using it.  If you find it useful, and you decide to
  168.       use it, I encourage you to become a registered user of this product.
  169.       You may receive a single registered copy of Soft-Touch for $23, or
  170.       $20 each for two or more copies.
  171.  
  172.       Registration provides the following benefits:
  173.  
  174.          1.  Receive an upgraded version of Soft-Touch with the following
  175.              enhancements:
  176.                 - Increased keyboard buffer size to 25000 keystrokes.
  177.                 - Ability to save and restore to/from any file name.
  178.                 - Escape mode functions <PLAY>, <RCRD>, and <WAIT> have been
  179.                   implemented.
  180.                 - Assembler program interface examples.
  181.  
  182.          2.  Limited telephone support.
  183.  
  184.          3.  A $5.00 commission for each new registered user who provides
  185.              your registration number as a reference.
  186.  
  187.       You may recieve a registered copy of Soft-Touch by completing the
  188.       accomanying registration form and mailing it to the specified address.
  189.       Please make payment via C.O.D., check, or money order.  Call for
  190.       information regarding OEM and large quantity discount prices.
  191.  
  192.       The full assembler source for the enhanced version of Soft-Touch is
  193.       also available and may be purchased for $139.
  194.  
  195.       Whatever you decide about getting a registered version of Soft-Touch I
  196.       would appreciate hearing what you think about Soft-Touch and any
  197.       suggestions you may have.  Anyone who writes to me will be included on
  198.       my mailing list to be notified of any future enhancements or new
  199.       products.
  200.  
  201.  
  202.  
  203.  
  204.       Registration form:
  205.  
  206.  
  207.       Name.....:______________________________________________________
  208.  
  209.       Company..:______________________________________________________
  210.  
  211.       Address..:______________________________________________________
  212.  
  213.       City.....:_______________________ State:_____  ZIP:_____________
  214.  
  215.       Telephone:(_____) _____-_______
  216.  
  217.       Soft-Touch Version:_____._____  Registration ID#:_______________
  218.  
  219.       Comments:
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.       Payment:
  233.  
  234.         Send 1 Copy of enhanced Soft-Touch at $23.00         _____.___
  235.         (or)
  236.         Send ____ Copies of enhanced Soft-Touch at $20.00/ea _____.___
  237.  
  238.                                              C.O.D.     1.75 _____.___
  239.  
  240.                                              Shipping            1.50
  241.  
  242.                                              Calif Sales Tax _____.___
  243.  
  244.                                                        TOTAL _____.___
  245.       [ ] C.O.D.   [ ] Check enclosed
  246.  
  247.  
  248.  
  249.       Mail to .............. : Martin D. Flynn
  250.                                FlynnSoft
  251.                                P.O. Box 5034
  252.                                Redwood City, Calif.  94063
  253.                                (415) 487-6482
  254.  
  255.  
  256.  
  257.  
  258.  
  259.       ======================================================================
  260.       1.b)  Description and Capabilities:
  261.  
  262.       Soft-Touch is a powerful tool which allows you to customize your
  263.       keyboard to simplify the use of your various software applications.
  264.  
  265.       With Soft-Touch you can pre-define any lengthy series of keystrokes,
  266.       such as frequently used parameters, names, or phrases, and play them
  267.       back with just one or two keystrokes. These defined keystrokes can be
  268.       played back at any time within your application to perform your
  269.       customized function.
  270.  
  271.       You will be able to call up your spread sheet or word processor and
  272.       enter your often used parameters with only a single keystroke.  Which
  273.       enables you to spend less time with the details and get right to the
  274.       work, thus speeding up throughput and therefore productivity.
  275.  
  276.       Soft-Touch can be used to record all keystrokes entered during an
  277.       application so that they may be replayed at a convienient time for
  278.       demonstration or instructional purposes.  Soft-Touch can even allow
  279.       unattended operation for long running applications that require
  280.       keyboard input, thus creating an invaluable extension to batch file
  281.       processing.
  282.  
  283.       Soft-Touch contains many powerful features which allow you to take
  284.       full advantage of the programmability of your keyboard.  Some of the
  285.       Soft-Touch features are as follows:
  286.  
  287.           * ability to define over 90 single or double key operations.
  288.  
  289.           * playback functions which are able to return the current date and
  290.             time during a keystroke playback.
  291.  
  292.           * variable length data entry fields which can be entered during a
  293.             keystroke playback and later be recalled in a different portion
  294.             of the playback.  Thus allowing keystroke variables.
  295.  
  296.           * keystroke definitions may be referenced within other definitions
  297.             up to 5 levels deep for the regular version and 25 levels deep
  298.             for the enhanced version.
  299.  
  300.           * playback execution may be suspended and resumed at any time.
  301.  
  302.           * keystrokes may be viewed and executed from a work buffer before
  303.             actually defining them to a single or double keystroke.
  304.  
  305.           * an invaluable extension to batch file processing which allows
  306.             the keyboard buffer work area to be loaded with a series of
  307.             keystrokes with a Soft-Touch command issued within the batch
  308.             file.  These keystrokes are then available to any application
  309.             run after the buffer is loaded.
  310.  
  311.           * a screen saver option which can automatically switch off the
  312.             video portion of the display to avoid burning if there is no
  313.             keyboard activity for a pre-defined amount of time.
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.       ======================================================================
  321.       1.c)  PC system requirements:
  322.  
  323.       In order to take full advantage of the features of Soft-Touch, you
  324.       will need the following minimum hardware configuration:
  325.  
  326.          - An IBM PC, XT, or AT, or a 100% IBM compatable with at least 128k
  327.            or more.
  328.  
  329.          - At least one diskette drive.
  330.  
  331.          - PC DOS 2.0 or above.
  332.  
  333.  
  334.       ======================================================================
  335.       1.d)  Special notation and Conventions:
  336.  
  337.       A special notation will be used in this manual to identify functions
  338.       and keystrokes for which there is no single character representation.
  339.       Such functions and keystrokes have been given a short name which is
  340.       descriptive of its use and will be included within the brackets '<'
  341.       and '>'.
  342.  
  343.       An example of such a keystroke would be the HOME key.  To distinguish
  344.       the HOME key from the characters H-O-M-E, it will be included in
  345.       brackets to denote a single keystroke, in this case <HOME>.  The
  346.       control shift, caps shift, and alternate shift modes will be denoted
  347.       by the characters '^', '$', and '@', respectively, preceding the
  348.       descriptive key name.  Therefore control-HOME would be denoted as
  349.       <^HOME>.
  350.  
  351.       Comments within a string of keystrokes will start with a
  352.       left-bracket-asterisk '<*', and end at the first right bracket '>'.
  353.       The following lists a few example comments.
  354.  
  355.                     <* this is a comment >
  356.                     <* ---- this is also a comment ---- *>
  357.                     <*>
  358.  
  359.       A list of the special functions and keystrokes which are described in
  360.       this manner, and other advanced shift modes which are also available,
  361.       may be found in Appendix A.
  362.  
  363.  
  364.       ======================================================================
  365.       1.e)  A word about "RAM-cram":
  366.  
  367.       With the advent of numerous memory resident programs, there has
  368.       arisen a growing problem of conflicts among various memory
  369.       resident software packages.  This syndrome is sometimes known as
  370.       "RAM-cram".
  371.  
  372.       One possible problem is the requirement by more than one memory
  373.       resident program for the same "hot key" sequence (escape mode
  374.       sequence).  Another is a possible conflict in the use the same
  375.       software or hardware interrupts.
  376.  
  377.       Soft-Touch tries to help solve these problems with two setable
  378.  
  379.  
  380.  
  381.  
  382.       options.  First, the "hot key" sequence used to access the special
  383.       Soft-Touch functions may be changed if it is found that the "hot key"
  384.       sequence currently set conflicts with another memory resident program.
  385.       Second, Soft-Touch can be temporarily deactivated to allow running
  386.       programs which may not be compatable with Soft-Touch.
  387.  
  388.       These added features allow Soft-Touch a much greater flexibility when
  389.       installing it with other memory resident programs.
  390.  
  391.  
  392.  
  393.  
  394.  
  395.            +---------------------------------------------------------+
  396.            |                                                         |
  397.            |                        CHAPTER 2                        |
  398.            |                     Using Soft-Touch                    |
  399.            |                                                         |
  400.            +---------------------------------------------------------+
  401.  
  402.  
  403.       ======================================================================
  404.       2.a)  Installing Soft-Touch:
  405.  
  406.       You may find a file on your Soft-Touch diskette called 'README'.
  407.       This file will contain the latest information about the
  408.       Soft-Touch programs and samples that may be included on the
  409.       diskette.
  410.  
  411.       Since Soft-Touch is stored in your PC's memory, it is necessary to
  412.       load it into memory each time you boot or reload PC DOS.  Therefore,
  413.       it is most likely that you will want to copy the Soft-Touch program
  414.       to any system diskette that you use to boot PC DOS.
  415.  
  416.       To copy the Soft-Touch programs and sample files to your boot
  417.       diskette, place the Soft-Touch diskette into drive A: and your DOS
  418.       boot diskette into drive B: then enter the following DOS command:
  419.  
  420.                         COPY A:*.* b:[path]
  421.  
  422.       This command will copy all necessary programs and files to your
  423.       DOS diskette.  If you wish to install the Soft-Touch software onto
  424.       your hard disk, then specify your hard disk drive and path name for
  425.       the destination.
  426.  
  427.       You may also wish to have Soft-Touch installed automatically on your
  428.       system when the power is turned on, or when it is re-booted.  To do
  429.       so, use your word processor, or use the DOS supplied EDLIN command, to
  430.       include Soft-Touch in your AUTOEXEC.BAT file.  The following is an
  431.       example that may be inserted into your AUTOEXEC.BAT file to load
  432.       Soft-Touch when your system is booted.
  433.  
  434.                         SOFTCH /I=3000 /B=15
  435.  
  436.       This example will cause Soft-Touch to be installed in your PC memory
  437.       with reserved space for 3000 keystrokes.  Also, the screen saver
  438.       option is installed with a time delay of 15 minutes of keyboard
  439.       inactivity before the video portion of the display is blanked.  The
  440.       parameters used by Soft-Touch will be described in the next section.
  441.  
  442.  
  443.       ======================================================================
  444.       2.b)  Soft-Touch parameters:
  445.  
  446.       The command 'SOFTCH' may be used to install the memory resident
  447.       portion of the Soft-Touch keyboard enhancer, or it may be used to
  448.       interface with the previously loaded buffer to define keystrokes or
  449.       change various parameters.
  450.  
  451.       To install the resident portion of the Soft-Touch extended keyboard
  452.  
  453.  
  454.  
  455.  
  456.       buffer driver, enter the command 'SOFTCH' with the '/i' install option
  457.       followed by any other desired parameters.
  458.  
  459.       The format of the command and the allowable parameters are as follows:
  460.       (note: Items listed within the brackets '[' and ']' are optional.)
  461.  
  462.       Format : [d:][path]SOFTCH [-]
  463.                                 [/I=[<size>]]
  464.                                 [/B=[<delay>]]
  465.                                 [/R=[filename | "string"]]
  466.                                 [/S=[filename]]
  467.                                 [/E=[<hexnum>]
  468.                                 [/H]
  469.  
  470.       Parms  : Specify the parameters:
  471.                 - [d:][path] before the command to specify the drive and
  472.                   path that contains the command file.
  473.                 - [-] to supress the printing of the Soft-Touch header
  474.                   message (enhanced version only).
  475.                 - [/I=[<size>]] to install the memory resident keyboard
  476.                   buffer and specify the desired keystroke buffer size.  If
  477.                   specified, the '/I' option must appear before all other
  478.                   options.  If the <size> parameter is not specified, the
  479.                   size will be set to the default.  For the regular version
  480.                   of Soft-Touch the maximum buffer size that can be set is
  481.                   3000 keystrokes.
  482.                 - [/B=[<delay>]] to install the screen saver option and
  483.                   specify the number of minutes for the screen blank delay.
  484.                   If the <delay> parameter is not specified, the time delay
  485.                   will be set to the default.
  486.                 - [/R=filename] to specify the text file containing defined
  487.                   keystrokes to load into the buffer.  For the regular
  488.                   version of Soft-Touch the filename used will be 'MCRO.KEY'
  489.                   regardless of the filename that may actually appear with
  490.                   this option.
  491.                 - [/R="string"] to specify the keystrokes on the command
  492.                   line that you wish to load into the buffer.
  493.                 - [/S=[filename]] to specify the file to which the defined
  494.                   keystrokes will be written.  The file created by this
  495.                   option may later be reloaded with the '/R' option.  If the
  496.                   filename parameter is not specified, the defined keys will
  497.                   be listed to the screen.  For the regular version of
  498.                   Soft-Touch the filename used will be 'MCRO.KEY' regardless
  499.                   of the filename that may actually appear with this option.
  500.                 - [/E=<hexnum>] to change the recognized escape mode key
  501.                   sequence.  The first byte of the hex number represents the
  502.                   keyboard scan code recognized.  The second byte represents
  503.                   the shift status recognized.  The default setting is 0102
  504.                   (escape key, left-shift).  Additional information for this
  505.                   option may be found in the next section.
  506.                 - [/H] to display the function key help screen.
  507.  
  508.                 Note:  An error message will display if an error is
  509.                   encountered in the parameter list, or if the buffer has
  510.                   already been loaded.  See Appendix C for a list of the
  511.                   possible error messages.
  512.  
  513.       Example: SOFTCH /I=3000 /B=15 /R=mcro.key
  514.  
  515.  
  516.  
  517.  
  518.                This example will set up the extended keyboard buffer with
  519.                space reserved for 3000 keystrokes.  The screen saver option
  520.                is installed with a screen blank time-out of 15 minute.
  521.                Also, the keyboard buffer will be initialized with the
  522.                keystroke definitions found in the file 'MCRO.KEY'.
  523.  
  524.       Example: SOFTCH /R="this is a keystroke string<cr>"
  525.                This example will restore the keystrokes define on the
  526.                command line to the work buffer.
  527.  
  528.       Example: SOFTCH /R="<kstr><f1>format a:/s<cr><kend>"
  529.                This example will cause the F1 function key to be defined
  530.                with DOS command to format a diskette.
  531.  
  532.       Example: SOFTCH /S=mcro.key
  533.                This example will cause all defined keystrokes in the
  534.                enhanced keyboard buffer to be written to the text file named
  535.                'MCRO.KEY'.
  536.  
  537.  
  538.       ======================================================================
  539.       2.c)  Escape-Mode functions:
  540.  
  541.       Once the resident portion of Soft-Touch has been loaded, there are
  542.       several functions that may be performed to affect the execution of the
  543.       Soft-Touch keyboard enhancer.  These special functions may be executed
  544.       after pressing a special escape mode "hot key" sequence.
  545.  
  546.       To enter the escape mode for execution of the special functions, hold
  547.       down the LEFT SHIFT then press the <ESC> key.  The speaker will
  548.       respond with two short high pitched beeps and the cursor size will
  549.       change to a large block to acknowledge that the keyboard is now in
  550.       escape mode.
  551.  
  552.       When the keyboard is in escape mode, any playback operation is
  553.       suspended and the function keys are reassigned with special functions
  554.       to be performed as they are pressed.  These functions are described
  555.       below.
  556.  
  557.       When a valid function key is pressed, the speaker will respond with
  558.       one short high beep and the cursor size will return to normal,
  559.       indicating that the function has been accepted.  The suspended
  560.       keyboard operation will then resume where it left off.  The exception
  561.       is when function key <F3> is pressed; the playback will then be
  562.       cancelled.  If an invalid key is pressed while in escape mode, the
  563.       speaker will respond with one low beep and the cursor size will remain
  564.       a large block, indicating that the function was invalid.  The keyboard
  565.       will remain in escape mode until a valid function key is pressed.
  566.  
  567.       The following is a list of the special functions used to aid in
  568.       customizing your keyboard.  These functions may be performed in
  569.       escape-mode, or you may define their function to another key of your
  570.       choice.
  571.  
  572.       Function names marked with a '**' may only be used in keystroke text
  573.       definitions with the enhanced version of Soft-Touch.  These functions
  574.       may still be selected manually with the escape mode "hot key"
  575.       sequence.
  576.  
  577.  
  578.  
  579.  
  580.  
  581.          esc-mod
  582.          ftn key  name    description
  583.          -------+--------+-------------------------------------------------
  584.          <F1>     <ON>    Turn the defined keystroke recognition on.
  585.                           Defined keystroke definition is turned on when
  586.                           Soft-Touch is initially loaded.
  587.  
  588.          <F2>     <OFF>   Turn the defined keystroke recognition off.  This
  589.                           can be used to disable the defined key recognition
  590.                           so that all keystrokes (such as functions keys)
  591.                           will perform their original function as defined by
  592.                           the application you are currently running.
  593.  
  594.          <F3>     <STOP>  Terminate playback and recording modes.
  595.  
  596.          <F4>     <FLSH>  Clear all characters from the work buffer.  This
  597.                           function will be used when you wish to clear the
  598.                           work buffer to start recording new characters.
  599.  
  600.          <F5>  ** <RCRD>  Turn on the recording mode.  This will cause the
  601.                           recording mode to be set so that any keystrokes
  602.                           entered from the keyboard will be recorded to the
  603.                           work buffer.
  604.  
  605.          <F6>  ** <PLAY>  Playback work buffer.  This will cause the
  606.                           keystrokes entered into the work buffer to be
  607.                           played back.
  608.  
  609.          <F7>     <KBKS>  Backspace the work buffer.  This will cause the
  610.                           last keystroke entered into the work buffer to be
  611.                           removed.
  612.  
  613.          <F8>     <KCLR>  This function will clear all defined keys from the
  614.                           keyboard buffer and will also flush all characters
  615.                           from the work buffer.
  616.  
  617.          <F9>     <KSTR>  Start keystroke definition.  Use this function
  618.                           to start a keystroke definition.  When this
  619.                           function is selected, the work buffer is cleared,
  620.                           and the next key pressed will be the key to which
  621.                           the recorded keystrokes will be assigned.  If an
  622.                           invalid key is selected to define, then the
  623.                           speaker will respond with one low beep to indicate
  624.                           that the key to define was rejected and the
  625.                           function will be cancelled.  You may then select
  626.                           the function again and try a valid key.  A list of
  627.                           definable keys may be found in a later section.
  628.  
  629.          <F10>    <KEND>  End keystroke definition.  If the <KSTR> function
  630.                           has been selected prior to this function, then the
  631.                           keystrokes entered between the start and end
  632.                           functions will be assigned to the keystroke
  633.                           selected after the <KSTR> function.  If the <KSTR>
  634.                           function was not selected, then the keystrokes
  635.                           found in the work buffer will be assigned to the
  636.                           next valid key pressed.  If an invalid key is
  637.                           selected to define, then the speaker will respond
  638.  
  639.  
  640.  
  641.  
  642.                           with one low beep and the function will be
  643.                           cancelled.
  644.  
  645.       Note: The above function names (ie. <FLSH>) are executed immediately
  646.       when they are recognized in an input string as it is loaded (with the
  647.       '/R' option) and will not be part of the functions assigned to a
  648.       particular keystroke.  If you wish to include the above functions as
  649.       part of the assigned keystrokes, then select the desired function with
  650.       the alternate shift pressed (ie. <@PLAY>).  This will cause the
  651.       function to be executed only at playback time and not at load time.
  652.  
  653.  
  654.          <$F1>    <VFLD>  Variable length data entry field.  When a playback
  655.                           encounters this function, the playback pauses
  656.                           waiting for keyboard input.  The keyboard input is
  657.                           terminated by a carriage return.  The terminating
  658.                           carriage return is "invisible" and will not be
  659.                           sent to your application program. The playback
  660.                           will then continue where it left off.  The
  661.                           keystrokes entered during the variable field data
  662.                           entry may be recalled later in a playback with the
  663.                           <VAR> function.
  664.  
  665.          <$F#>    <VFL#>  The function keys <$F1>, <$F3>, and <$F5>
  666.                           correspond with the variable data entry fields
  667.                           <VFL1>, <VFL2>, and <VFL3>, respectively. <VFL1>
  668.                           is the same as <VFLD>.  See the <VFLD> function
  669.                           for the definition of use.
  670.  
  671.          <$F2>    <VAR>   This function plays back the keystrokes entered
  672.                           during the previous <VFLD> data entry.
  673.  
  674.          <$F#>    <VAR#>  The function keys <$F2>, <$F4>, and <$F6>,
  675.                           correspond with the variable playback fields
  676.                           <VAR1>, <VAR2>, and <VAR3>, respectively. <VAR1>
  677.                           is the same as <VAR>. See the <VAR> function for
  678.                           the defintion of use.
  679.  
  680.          <$F7> ** <WAIT>  This function will cause the playback operation to
  681.                           be suspended until any key is pressed on the
  682.                           keyboard.  This function is very usefull for
  683.                           suspending the playback operations during a
  684.                           self-running demonstration to allow for viewing
  685.                           the current screen until a key is pressed.
  686.  
  687.          <$F8>    <PAUS>  This function causes the playback to pause for
  688.                           approximately 2 seconds before continuing with the
  689.                           playback string.  This may be used for replaying
  690.                           demonstration application to allow for screen
  691.                           viewing at strategic points.
  692.  
  693.          <$F10>   <BOOT>  This function will cause the system to reboot as
  694.                           if the ctl-alt-del key sequence had been pressed.
  695.                           This will allow for creating an additional
  696.                           definition of the system reset to another key, or
  697.                           to be included in application programs that may
  698.                           require that the system be rebooted.
  699.  
  700.  
  701.  
  702.  
  703.  
  704.          <^F1>    <TIME>  Set the internal data areas to the current system
  705.                           date and time.  No playback string is returned
  706.                           with this function.
  707.  
  708.          <^F2>    <YEAR>  This function returns the long year (ie. 1986)
  709.                           last set by the <TIME> function.
  710.  
  711.          <^F3>    <YR>    This function returns the short year (ie. 86) last
  712.                           set by the <TIME> function.
  713.  
  714.          <^F4>    <MO>    This function returns the month of the year last
  715.                           set by the <TIME> function.
  716.  
  717.          <^F5>    <DA>    This function returns the day of the month last
  718.                           set by the <TIME> function.
  719.  
  720.          <^F6>    <HR>    This function returns the time hour, bases on a 24
  721.                           hour clock, last set by the <TIME> function.
  722.  
  723.          <^F7>    <MN>    This function returns the time minutes last set by
  724.                           the <TIME> function.
  725.  
  726.          <^F8>    <SC>    This function returns the time seconds last set by
  727.                           the <TIME> function.
  728.  
  729.          <^F9>    <LOOP>  This function causes the key in which it is
  730.                           defined to be re-executed creating a continuous
  731.                           loop of keystrokes.  The escape mode function key
  732.                           <F3> must be used in this case to terminate the
  733.                           playback.
  734.  
  735.          <^F10>   <BEEP>  This function causes the speaker to issue a short
  736.                           beep.  This can be used to identify certain
  737.                           sections of a playback with strategically placed
  738.                           beeps.
  739.  
  740.       Note: The above functions may be selected from the keyboard during
  741.       escape mode but they will not be executed until they are encountered
  742.       during a playback.  They will, however, be recorded to the work buffer
  743.       if record mode is active.
  744.  
  745.       The following functions can not be executed through the function key
  746.       pad in escape mode.  They can only be executed by including them in a
  747.       text file or on a command line with the '/R' option.
  748.  
  749.           ----    <DACT>  This function will temporarily deactivate the
  750.                           Soft-Touch keyboard enhancer.  The escape mode
  751.                           keys and any defined special keys will not be
  752.                           recognized while the keyboard enhancer is
  753.                           deactivated.
  754.  
  755.           ----    <ACTV>  This function will re-activate the Soft-Touch
  756.                           keyboard enhancer so that the escape mode keys and
  757.                           the defined special keys will be recognized when
  758.                           pressed.
  759.  
  760.       ---------
  761.  
  762.  
  763.  
  764.  
  765.  
  766.       The left-shift-escape "hot key" sequence can be changed with the '/E'
  767.       option on the command line.  To set the new "hot key" sequence specify
  768.       the scan code and shift status in hex.
  769.  
  770.       The first byte of the hex code (first two numbers) represents the
  771.       keyboard scan code of the key to be recognized in the "hot key"
  772.       sequence.  See Appendix B for a list of the keyboard keys and their
  773.       corresponding scan codes.
  774.  
  775.       The second byte (last two numbers) represents the shift status to be
  776.       recognized in the "hot key" sequence.  The following table shows the
  777.       shift status available.  It is recommended that only one of the
  778.       following shift status codes be used at any one time, rather than
  779.       combining two or more of them.
  780.  
  781.                       01h = right shift
  782.                       02h = left shift
  783.                       04h = control shift
  784.                       08h = alternate shift
  785.  
  786.       The default escape key sequence is 0102 hex (01=esc, 02=left shift).
  787.       The following command will show how to change the escape mode key
  788.       sequence to right-shift-escape.
  789.  
  790.                       SOFTCH /E=0101
  791.  
  792.  
  793.       ======================================================================
  794.       2.d)  Defining keystrokes from the keyboard:
  795.  
  796.       There are over 90 different keystroke sequences on the keyboard to
  797.       which you may assign keystroke strings.  A list of keys which can be
  798.       used for assigning keystroke may be found in Appendix A.  The
  799.       definable keystrokes are marked with an asterisk (*).
  800.  
  801.       A series of keystrokes may be recorded and assigned to a single or
  802.       double keystrokes using the escape mode functions.  There are two
  803.       methods with which to accomplish this:
  804.  
  805.          Method #1:
  806.           Step 1) Press the escape mode "hot key" sequence; the speaker will
  807.            respond with two high pitched beeps.  Then select the <KSTR>
  808.            function <F9> (start keystroke definition); the speaker will
  809.            respond with one high pitched beep.
  810.           Step 2) Select the key to which you wish to assign your
  811.            keystrokes. If you press an invalid keystroke, the speaker will
  812.            respond with one low pitched beep and the <KSTR> function will be
  813.            cancelled.  You will then need to restart at step 1.
  814.           Step 3) At this point all keys entered on the keyboard will be
  815.            recorded to the work buffer.
  816.           Step 4) When you have finished entering your desired keystrokes,
  817.            press the escape mode "hot key" sequence; the speaker will
  818.            respond with two high pitched beeps.  Then select the <KEND>
  819.            function <F10> (end keystroke definition); the speaker will
  820.            respond with one high pitched beep.
  821.           The keystrokes recorded in step 3 have now been assigned to the
  822.            key selected in step 2.
  823.  
  824.  
  825.  
  826.  
  827.  
  828.          Method #2:
  829.           Step 1) Press the escape mode "hot key" sequence; the speaker will
  830.            respond with two high pitched beeps.  Then select the <RCRD>
  831.            function <F5> (record mode); the speaker will respond with one
  832.            high pitched beep.
  833.           Step 2) At this point all keys entered on the keyboard will be
  834.            recorded to the work buffer.
  835.           Step 3) When you have finished entering your desired keystrokes,
  836.            press the escape mode "hot key" sequence; the speaker will
  837.            respond with two high pitched beeps.  Then press the <KSTR>
  838.            function <F10> (end keystroke definition); the speaker will
  839.            respond with one high pitched beep.
  840.           Step 4) Select the key to which you wish to assign your
  841.            keystrokes.  If you press an invalid keystroke, the speaker will
  842.            respond with one low pitched beep and the <KEND> function will be
  843.            cancelled.  You will then need to restart at step 3.
  844.           The keystrokes recorded in step 2 have now been assigned to the
  845.            key selected in step 4.
  846.  
  847.       With the second method steps 3 and 4 may be delayed.  If you wish to
  848.       view the keystrokes entered in the work buffer before actually
  849.       assigning them to a key you may do so.  You can turn off the keystroke
  850.       record mode by selecting the escape mode <STOP> function <F3>, then
  851.       view the contents of the work buffer with the '/S' option on the
  852.       command line.  The record mode may then be turned back on with the
  853.       escape mode <RCRD> function <F5> (as in step 1), or you may continue
  854.       with step 3.
  855.  
  856.       Example: To assign the keystroke string "hello" to the alternate-H
  857.       (<@H>) key you could perform the following using method #1 as
  858.       described above:
  859.          1) Press the escape mode "hot key" sequence followed by the <KSTR>
  860.             start key definition function <F9>.
  861.          2) Press and hold the alternate shift key then press the 'H' key.
  862.          3) Enter the keystroke string "hello".
  863.          4) Terminate the keystroke definition by pressing the escape mode
  864.             "hot key" sequence followed by the <KEND> end key definition
  865.             function <F10>.
  866.       The sentence "hello" may now be played back by pressing the
  867.       alternate-H keystroke.
  868.  
  869.       Once a keystroke has been defined, it may be played back at any time
  870.       by pressing the defined key.  You may cancel a keystroke definition by
  871.       redefining the key with another keystroke string or with no keystroke
  872.       string (start the keystroke definition, then end it without entering
  873.       any other keystrokes).  Assigning a null definition to a previously
  874.       defined key will reset the keys function to that defined by the
  875.       application program.
  876.  
  877.       The buffer space used by key definitions which have been cancelled
  878.       will remain unused until the buffer is cleared with the <KCLR>
  879.       command, or until the system is rebooted.  You may use the SOFTCH
  880.       command to reorganize unused space created from cancelling key
  881.       assignments.  To reorganize the buffer, enter the following command:
  882.  
  883.               SOFTCH /S=temp.$$$ /R="<KCLR>" /R=temp.$$$
  884.  
  885.       The parameters '/S=temp.$$$' will cause the entire buffer to be saved
  886.  
  887.  
  888.  
  889.  
  890.       to the temporary file 'temp.$$$'.  The parameter '/R="<KCLR>"' will
  891.       cause the entire buffer to be cleared and reset.  Finally, the
  892.       parameter '/R=temp.$$$' will restore the previously saved keyboard
  893.       buffer.  This reorganization will cause all previously unused space
  894.       from key assignment cancellation to be reused.
  895.  
  896.       Note that for the regular version of Soft-Touch the file name used on
  897.       the save and restore options is 'MCRO.KEY' regardless of the file name
  898.       that may actually appear with the option.
  899.  
  900.  
  901.       ======================================================================
  902.       2.e)  Saving defined keystrokes to a text file:
  903.  
  904.       Keystrokes which have been assigned to various keys may be written to
  905.       a text file or displayed on the screen for viewing with the '/S'
  906.       parameter.  This example will save all defined keystrokes into the
  907.       file 'CUSTOM.KEY':
  908.  
  909.                       SOFTCH /S=CUSTOM.KEY
  910.  
  911.       Note that for the regular version of Soft-Touch the file name used on
  912.       the save option is 'MCRO.KEY', regardless of the file name that may
  913.       actually appear with the option.
  914.  
  915.       The saved file may be edited in any convenient word processor to add
  916.       or delete defined keystrokes.  The text file may later be restored to
  917.       the buffer with the '/R' (restore) parameter.
  918.  
  919.       If no file name is entered after the '/S' option then the defined
  920.       keystrokes will be listed to the screen.
  921.  
  922.       The format of the defined keystrokes when written to a text file, or
  923.       printed on the screen, is as follows:
  924.  
  925.                     <* ----- key definition ----- *>
  926.                     <KSTR><defined-key>
  927.                     .
  928.                     .
  929.                     keystroke string
  930.                     .
  931.                     ...
  932.                     <KEND>
  933.                     <* ----- key definition ----- *>
  934.                     .
  935.                     .
  936.                     ...
  937.                     <* ----- work area ---------- *>
  938.                     .
  939.                     .
  940.                     ...
  941.  
  942.       For example, a macro that defines the alternate-E to the delete file
  943.       command and the alternate-F key to the format command followed by a
  944.       check disk command might be as follows:
  945.  
  946.                     <* ----- key definition ----- *>
  947.                     <KSTR><@E>
  948.  
  949.  
  950.  
  951.  
  952.                     del  <*>
  953.                     <KEND>
  954.                     <* ----- key definition ----- *>
  955.                     <KSTR><@F>
  956.                     format b:/s<cr>
  957.                     chkdsk b:<cr>
  958.                     <KEND>
  959.                     <* ----- work area ---------- *>
  960.  
  961.       The keyword <KSTR> and its defined key will appear on a separate line
  962.       preceding the string of keystrokes it is to represent.  The keyword
  963.       <KEND> will appear on a line by itself to terminate the definition of
  964.       the keystroke string.
  965.  
  966.       As the keystrokes are written to the text file, a new text line is
  967.       generated when the keystroke '<cr>' is encountered, or if the
  968.       keystroke line would be greater than 72 characters.  This is why the
  969.       definition for the alternate-F is as shown in the example rather than
  970.       in the form below:
  971.  
  972.                     <KSTR><@F>format b:/s<cr>chkdsk b:<cr><KEND>
  973.  
  974.       This format is functionally equivalent to the format generated by the
  975.       '/S' option, but is less readable.  If this format is entered with the
  976.       '/R' option, it will be converted to the standard format described
  977.       above when it is read with the '/S' option.
  978.  
  979.       All characters found in the text file that are less than a space
  980.       (decimal 32) are ignored by the '/R' option.  This will allow for a
  981.       few control codes that are required by some word processors without
  982.       effecting the data sent to the Soft-Touch keyboard buffer.  This
  983.       includes the carriage return and line feed characters.  Any characters
  984.       equal to, or greater than, a space will be included in the buffer.  If
  985.       your defined keystroke string requires a character that is less than a
  986.       space, then use the special notation which defines the desired
  987.       character (ie. use <cr> for carriage return).  See Appendix A.
  988.  
  989.       If there are any significant trailing spaces at the end of a line, as
  990.       in the example above for the defined key alternate-E, the line will be
  991.       terminated with the comment '<*>' after the last significant space.
  992.       This will let you know where the line actually ends and will not
  993.       effect the processing of the keystrokes.
  994.  
  995.       Any characters in the work buffer will appear below the comment line
  996.       heading '<* - work area - *>'.  If there are no keystrokes in the work
  997.       buffer, then nothing will appear below this line.
  998.  
  999.       To distinguish a literal left-bracket (<) from the beginning of a
  1000.       keystroke name or function, a literal left-bracket will appear as two
  1001.       left brackets together.  For example, if you have recorded the
  1002.       sequence ".. < .. > .." while defining a key, then this line will
  1003.       appear as ".. << .. > .." in the saved text file.  Note that this
  1004.       is true for the left bracket only, not for the right bracket.
  1005.  
  1006.  
  1007.       ======================================================================
  1008.       2.f)  Restoring keystrokes to the keyboard buffer:
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.       Keystrokes which have been written to a text file with the '/S'
  1015.       option, or that have been defined in a text file with a word
  1016.       processor, may be loaded into the keyboard buffer with the '/R'
  1017.       option.  This example will restore keystrokes define in the text file
  1018.       'CUSTOM.KEY' to the keyboard buffer:
  1019.  
  1020.                    SOFTCH /R=CUSTOM.KEY
  1021.  
  1022.       Note that with the regular version of Soft-Touch the file name used on
  1023.       the restore option is 'MCRO.KEY', regardless of the file name that may
  1024.       actually appear with the option.
  1025.  
  1026.       Keystrokes may also be loaded into the keyboard buffer by specifying
  1027.       them right on the command parameter line just as they would be in a
  1028.       text file.  The format for loading keystrokes from the command line is
  1029.       as follows:
  1030.  
  1031.                    SOFTCH /R=".. keystroke string .."
  1032.  
  1033.       On the command line, to specify one literal quote, you must specify
  1034.       two quotes together.  This example defines the alt-E key with the
  1035.       keystrokes which will execute the DOS 'echo' command with the quoted
  1036.       message "hello":
  1037.  
  1038.                    SOFTCH /R="<kstr><@E>echo ""hello""<cr><kend>"
  1039.  
  1040.       The work buffer may also be loaded with a string of keystrokes.  The
  1041.       keystrokes in the work buffer may be played back by pressing the
  1042.       escape mode "hot key" sequence followed by the <PLAY> function <F6>.
  1043.       This example loads the work buffer with a date and time phrase which
  1044.       may be used in some application:
  1045.  
  1046.                    SOFTCH /R="date <yr>/<mo>/<da><tab>"
  1047.  
  1048.  
  1049.       ======================================================================
  1050.       2.g)  Using variable fields:
  1051.  
  1052.       Soft-Touch will allow keyboard entry during a playback which may be
  1053.       re-played at a later time.  For example, if we wish to create a macro
  1054.       which exchanges the names of two files, we could define the
  1055.       alternate-X key as follows:
  1056.  
  1057.                     <KSTR><@X>
  1058.                     rename <VFL1> temp.$$$<cr>
  1059.                     rename <VFL2> <VAR1><cr>
  1060.                     rename temp.$$$ <VAR2><cr>
  1061.                     <KEND>
  1062.  
  1063.       When the <VFL1> is encountered, the playback will pause waiting for
  1064.       keyboard input, allowing you to enter the first file name. When you
  1065.       have finished entering the first file name, you may terminate the
  1066.       keyboard data entry with a carriage return.  This carriage return will
  1067.       be interpreted by Soft-Touch only and will not be recognized by the
  1068.       executing program (in this case DOS).
  1069.  
  1070.       The file is then renamed to 'TEMP.$$$' and the next rename command
  1071.       will be initiated.  The playback will again pause at the <VFL2>
  1072.  
  1073.  
  1074.  
  1075.  
  1076.       function waiting for keyboard input.  When the second file name
  1077.       entered is terminated with a carriage return, the playback will
  1078.       continue to the <VAR1> function.  This function will be replaced with
  1079.       the file name entered in <VFL1>, causing the second file name to be
  1080.       renamed to the first.  The temporary file will then be renamed to the
  1081.       file name entered as the second file in <VFL2>.
  1082.  
  1083.  
  1084.       ======================================================================
  1085.       2.h)  Date and Time functions:
  1086.  
  1087.       At some time it may be necessary to include in your keystroke playback
  1088.       the current date and time.  This may be most useful for unattended
  1089.       operations that require a date and/or time.
  1090.  
  1091.       Soft-Touch has several functions that support the return of the
  1092.       current date and time:
  1093.  
  1094.           <TIME>      : set internal data areas to system date and time.
  1095.           <YEAR>/<YR> : return the long/short year last set by the <TIME>
  1096.                         function.
  1097.           <MO>        : return the month number of the year last set by the
  1098.                         <TIME> function.
  1099.           <DA>        : return the day of the month last set by the <TIME>
  1100.                         function.
  1101.           <HR>        : return the hour based on a 24 hour clock last set by
  1102.                         the <TIME> function.
  1103.           <MN>        : return the number of minutes past the hour last set
  1104.                         by the <TIME> function.
  1105.           <SC>        : return the number of seconds past the minute last
  1106.                         set by the <TIME> function.
  1107.  
  1108.       The function <TIME> does not return any keystrokes, it only serves to
  1109.       set the date and time in an internal data area with the current system
  1110.       date and time when it was executed.  This internal data area is then
  1111.       accessed by the various date and time return functions.  This would
  1112.       allow, for instance, saving the time at the beginning of one program
  1113.       to be used as input to another program run at a later time.
  1114.  
  1115.       For example, we could create a formatted date and time that could be
  1116.       played back in your word processor to be included with your text.
  1117.       This kind of definition could look like the following:
  1118.  
  1119.                     <KSTR><@T>
  1120.                     <TIME>date <MO>/<DA>/<YR>, time <HR>:<MN>:<SC>
  1121.                     <KEND>
  1122.  
  1123.       The <TIME> function is used here in the definition to make sure that
  1124.       the returned date and time is always current.  If the current date and
  1125.       time is January 17, 1986, 8:32am and 27 seconds, then the returned
  1126.       keystroke string would appear as follows:
  1127.  
  1128.                     date 01/17/86, time 08:32:27
  1129.  
  1130.  
  1131.       ======================================================================
  1132.       2.i)  Nesting keystroke definitions:
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.       Soft-Touch will allow you to specify previously defined keystrokes
  1139.       within other definitions.  For example, let's look at the following
  1140.       keystroke definitions:
  1141.  
  1142.                     <KSTR><@D>
  1143.                     lazy dog
  1144.                     <KEND>
  1145.  
  1146.                     <KSTR><@F>
  1147.                     quick brown fox
  1148.                     <KEND>
  1149.  
  1150.                     <KSTR><@S>
  1151.                     The <@F> jumped over the <@D>.
  1152.                     <KEND>
  1153.  
  1154.       The phrase 'lazy dog' has been assigned to the alt-D key, while 'quick
  1155.       brown fox' has been assigned to the alt-F key.  Notice that the
  1156.       definition for the alt-S key references the alt-D and alt-F keys.  In
  1157.       this example, the keystroke definitions are nested so that when alt-S
  1158.       is pressed, the following sentence will be played back:
  1159.  
  1160.                The quick brown fox jump over the lazy dog.
  1161.  
  1162.       This shows how defined keys can be specified within other definitions.
  1163.       The regular version will allow keystroke playback nesting like this up
  1164.       to 5 levels deep, while the enhanced version allows nesting up to 25
  1165.       levels deep.  Much deeper than you will probably ever need.  If the
  1166.       limit is ever reached, the speaker will sound to indicate a nesting
  1167.       overflow and the last keystroke that caused the overflow will be
  1168.       skipped.
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.            +---------------------------------------------------------+
  1175.            |                                                         |
  1176.            |                        CHAPTER 3                        |
  1177.            |                     Advanced Topics                     |
  1178.            |                                                         |
  1179.            +---------------------------------------------------------+
  1180.  
  1181.  
  1182.       ======================================================================
  1183.       3.a)  Enhancing DOS batch file processing:
  1184.  
  1185.       The Soft-Touch keyboard enhancer provides an invaluable tool for
  1186.       enhancing the operation of the DOS batch file processor.  Now, not
  1187.       only can programs be entered into a batch file, but now the keystrokes
  1188.       that are required by the program as well.
  1189.  
  1190.       For instance, if you have a word processor, spread sheet, or database
  1191.       system that requires a set of keyboard entered parameters, then the
  1192.       keyboard buffer can be loaded with the keystroked before the program
  1193.       is run so that they may be ready when asked for by the program.
  1194.  
  1195.       Example:
  1196.  
  1197.       Suppose we have a program called 'TRANS' that has a simple menu
  1198.       structure as follows:
  1199.  
  1200.                     L = load transactioin file
  1201.                     C = calculate transaction
  1202.                     P = print transaction
  1203.                     X = exit from program
  1204.  
  1205.                Enter selection: _
  1206.  
  1207.       We wish to load a transaction file, calculate any needed information,
  1208.       then print the results.  When the 'L' option is selected, a file name
  1209.       will be requested so we will need acocunt for this.
  1210.  
  1211.       Given the circumstances of this example, it will be more advantagious
  1212.       to playback the keystrokes from the work buffer rather than defining
  1213.       the key strokes to another key.  We could either use a separate file
  1214.       to define the keystrokes, or we can define the keystrokes right within
  1215.       the batch file.
  1216.  
  1217.       If we wish to define the keystrokes in a separate file, the keystroke
  1218.       file and batch file would appear as follows:
  1219.  
  1220.       Keystroke file TRANS.KEY:
  1221.                   <flsh>         <* make sure work buffer is empty *>
  1222.                   L              <* select load option *>
  1223.                   RCPT.TRN<cr>   <* enter file name *>
  1224.                   C              <* calculate transactions *>
  1225.                   P              <* print transactioin *>
  1226.                   X              <* exit program *>
  1227.                   <play>         <* set playback (enhanced version only) *>
  1228.  
  1229.       Batch file TRANSACT.BAT:
  1230.                   .                     <* other batch commands *>
  1231.  
  1232.  
  1233.  
  1234.  
  1235.                   .
  1236.                   SOFTCH /R=TRANS.KEY   <* load keyboard buffer *>
  1237.                   TRANS                 <* execute application *>
  1238.                   .
  1239.                   .
  1240.  
  1241.       When the batch file is executed, the keyboard buffer is loaded with
  1242.       the necessary keystrokes.  In the regular version of Soft-Touch, the
  1243.       playback mode will have to be turned on manually by pressing the
  1244.       escape mode "hot key" sequence followed by the <PLAY> function <F6>.
  1245.       In the enhanced version the function "<PLAY>" may be included in the
  1246.       keystroke definition text.  The playback mode is then set on when the
  1247.       <PLAY> function is encountered.  The keystrokes will then be passed to
  1248.       the program as they are requested.
  1249.  
  1250.       If we wished to define the keystrokes in the batch file and not in a
  1251.       separate text file, the batch file would appear as follows:
  1252.  
  1253.       Batch file TRANSACT.BAT:
  1254.                   .         <* other batch commands *>
  1255.                   .
  1256.                   SOFTCH /R="<flsh>LRCPT.TRN<cr>CPX<play>"
  1257.                   TRANS
  1258.                   .
  1259.                   .
  1260.  
  1261.       Again, the <PLAY> function is only valid when included with the
  1262.       keystroke definition text with the enhanced version of Soft-Touch.
  1263.  
  1264.       If we wish to use the batch file parameter capabilities we could then
  1265.       design the batch file so that the file name could be entered as a
  1266.       parameter on the TRANSACT batch file.  The batch file would then
  1267.       appear as follows:
  1268.  
  1269.       Batch file TRANSACT.BAT:
  1270.                   .         <* other batch commands *>
  1271.                   .
  1272.                   SOFTCH /R="<flsh>L%1<cr>CPX<play>"
  1273.                   TRANS
  1274.                   .
  1275.                   .
  1276.  
  1277.       The symbol '%1' will be replaced by DOS with the first parameter
  1278.       entered on the batch file, in this case, the file name.  So the
  1279.       transaction file may be loaded, calculated, and printed using the
  1280.       following command:
  1281.  
  1282.                     TRANSACT RCPT.TRN
  1283.  
  1284.       ======================================================================
  1285.       3.b)  Creating demonstration or instructional self running
  1286.             programs:
  1287.  
  1288.       Another invaluable feature of the Soft-Touch keyboard enhancer is the
  1289.       ability to use it for running programs for demonstration or
  1290.       instructional purposes.  The keyboard buffer can be loaded with all
  1291.       the necessary keystrokes for carrying out a full demonstration of an
  1292.       application.
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.       Just before calling up your application for which you wish to create
  1299.       your demonstration run, initiate a keystroke definition as outlined in
  1300.       the section to define keystrokes from the keyboard (section 2.d).  At
  1301.       this time the keyboard buffer should be in record mode and will record
  1302.       any keys pressed at this time.  Run your application at this time and
  1303.       issue any functions you wish to appear in your demonstration.  When
  1304.       you have finished entering all your desired functions within your
  1305.       application, you may terminate the keystroke definition with the
  1306.       appropriate escape mode function key.  The entire application may then
  1307.       be re-run by pressing the defined keystroke.
  1308.  
  1309.       Note: If desired, the sequence of keystrokes may be recorded to and
  1310.       executed from the work buffer without actually having to define them
  1311.       to a single or double keystroke.  The work buffer may be played back
  1312.       by selecting the escape mode <PLAY> function <F6>.
  1313.  
  1314.       The keystroke buffer should then be saved to a text file for editing
  1315.       and later restoring.  To save the keystroke buffer to a text file,
  1316.       follow the instructions outlined the the section for saving defined
  1317.       keystrokes (section 2.e).
  1318.  
  1319.       Various Soft-Touch functions are available to enhance your
  1320.       demonstration run so that everything doesn't fly by too fast when it
  1321.       is re-run.  Three function which which may be especially useful are
  1322.       <WAIT>, <PAUS>, and <BEEP>.  These functions can be included during
  1323.       record mode by selecting the appropriate escape mode function, or they
  1324.       may be inserted in the saved keystroke text file with a convenient
  1325.       word processor.  Note that the function "<WAIT>" is only available
  1326.       with the enhanced version of Soft-Touch.
  1327.  
  1328.       The <PAUS> function will cause the keystroke playback to pause for
  1329.       about 2 seconds before continuing with the playback.  This function
  1330.       can be inserted at stratigic points to allow for viewing the screen
  1331.       for a short time.  If a longer delay than 2 seconds is necessary, then
  1332.       several <PAUS> functions may be used end to end. For example,
  1333.       "<PAUS><PAUS>" will cause a pause of about 4 seconds.
  1334.  
  1335.       The <WAIT> function will cause the keystroke playback to be suspended
  1336.       and will wait until any key is pressed on the keyboard before
  1337.       continuing.  This function can be inserted at strategic points to
  1338.       allow for viewing the current screen until a key is pressed on the
  1339.       keyboard.  This function is only available with the enhanced version
  1340.       of Soft-Touch.
  1341.  
  1342.       The <BEEP> function will cause the speaker to respond with one short
  1343.       beep.  This can be used to identify certain points of a playback, such
  1344.       as just before a <WAIT> function.
  1345.  
  1346.       Once the keystrokes which run your application have been saved to a
  1347.       text file and edited, you need only restore the file to the keyboard
  1348.       buffer and set the play mode to execute the entire application.
  1349.  
  1350.       To automatically set the play mode when the buffer is loaded, you must
  1351.       send the <PLAY> function to the keyboard buffer.  The <PLAY> function
  1352.       will cause all keystrokes in the work buffer to be played back.  With
  1353.       the regular version of Soft-Touch this playback mode will need to be
  1354.       set manually by pressing the escape mode "hot key" sequence followed
  1355.  
  1356.  
  1357.  
  1358.  
  1359.       by the <PLAY> playback function <F6>.  If you have defined all your
  1360.       application keystrokes to be within the work buffer, then nothing more
  1361.       need be done.  Otherwise, you must set the work buffer to include the
  1362.       keystroke to which you have defined the application keystrokes.
  1363.  
  1364.       For example, if you have assigned all of your application keystrokes
  1365.       to the key <@D> in the text file 'DEMO.KEY' ('MCRO.KEY' for the
  1366.       regular version), and your application program name is 'APPLIC', then
  1367.       one possible way to execute the application might be as follows:
  1368.  
  1369.                   Contents of 'DEMO.KEY':
  1370.                       <KSTR><@D>
  1371.                        .
  1372.                        .
  1373.                        (application keystrokes)
  1374.                        .
  1375.                        .
  1376.                       <KEND>
  1377.  
  1378.                   Batch file to execute the application:
  1379.                        .
  1380.                        .
  1381.                       SOFTCH /R=demo.key /R="<FLSH><@D><PLAY>"
  1382.                       APPLIC
  1383.                        .
  1384.                        .
  1385.  
  1386.       In the batch file the first '/R' parameter causes the keyboard buffer
  1387.       to be loaded with the application keystrokes found in the file
  1388.       'DEMO.KEY' ('MCRO.KEY' for the regular version). The second '/R'
  1389.       parameter causes the work buffer to be cleared, after which the key
  1390.       '<@D>' is put into the work buffer.
  1391.  
  1392.       With the enhanced version playback mode is then set on so that the
  1393.       keystrokes will be sent to the application when requested.  Since the
  1394.       function "<PLAY>" is not implemented for the regular version of
  1395.       Soft-Touch, the playback mode will have to be set manually by pressing
  1396.       the escape mode "hot key" sequence followed by the <PLAY> playback
  1397.       function <F6>.
  1398.  
  1399.  
  1400.       ======================================================================
  1401.       3.c)  Program interface:
  1402.  
  1403.       This sections contains the user interface routine parameters for the
  1404.       Soft-Touch keyboard enhancer functions.  To use the routines defined
  1405.       in this section, place the desired value into the register AH and the
  1406.       required values in the specified registers then issue a call to
  1407.       software interrupt 016h (INT 016h).
  1408.  
  1409.       Note:  The 'keyboard mode' used in 0A3h, 0A5h, and 0A6h, will affect
  1410.       the pointers in the Soft-Touch keyboard buffer used by application
  1411.       programs to get keystrokes from the keyboard.  The 'maintenance mode'
  1412.       will not affect these pointers and is therefore suggested for use when
  1413.       you wish only to interrogate the keyboard buffer without actually
  1414.       returning the keystrokes in the buffer to your applications.
  1415.  
  1416.       Program functions available:
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.          (ah) = A0h Set carry flag and return status.
  1423.                     (ds:si) = pointer to 10 word status array
  1424.                        values returned:
  1425.                        elem: 0 = -1 (indicate Soft-Touch loaded)
  1426.                              1 = work space size (keystrokes)
  1427.                              2 = keystrokes in buffer
  1428.                              3 = execute mode status (on/off)
  1429.                              4 = capture mode status (on/off)
  1430.                              5 to 9 reserved
  1431.  
  1432.          (ah) = A1h Flush work area buffer.
  1433.  
  1434.          (ah) = A2h Convert scan code to string.
  1435.                     (bx) = scan code to convert
  1436.                     (cl) = string termination character
  1437.                     (ds:si) = pointer to data area for converted string
  1438.                            the returned string may be up to 8 byte long
  1439.                            including the termination character.
  1440.  
  1441.          (ah) = A3h Set keystroke pointer to defined key and turn on
  1442.                     playback mode.
  1443.                     (bx) = scan code of defined key.
  1444.                            (if bx=FF00h, set to work buffer)
  1445.                     (cx) = 0 for keyboard mode, (enhanced version only)
  1446.                            1 for maintenance mode
  1447.  
  1448.          (ah) = A4h Put character string in buffer.
  1449.                     (ds:si) = address of string terminated with a null.
  1450.  
  1451.          (ah) = A5h Get scan code from active Soft-Touch keyboard
  1452.                     buffer and advance keystroke pointer.
  1453.                     (bx) = returned scan character
  1454.                     (cx) = 0 for keyboard mode,
  1455.                            1 for maintenance mode
  1456.  
  1457.          (ah) = A6h Get scan code from active Soft-Touch keyboard
  1458.                     buffer and do not advance the keystroke pointer.
  1459.                     (bx) = returned scan character
  1460.                     (cx) = 0 for keyboard mode,
  1461.                            1 for maintenance mode
  1462.  
  1463.          (ah) = AEh Set escape mode "hot key" sequence.
  1464.                     (bh) = keyboard scan code for escape mode key
  1465.                     (bl) = shift code for escape mode key
  1466.                            01h = right shift
  1467.                            02h = left shift
  1468.                            04h = control shift
  1469.                            08h = alternate shift
  1470.  
  1471.          (ah) = AFh Set new screen blank delay.
  1472.                     (bx) = time delay in minutes
  1473.  
  1474.       The returned error codes are as follows:
  1475.          (dx) = 0000h successful operation
  1476.               = 0001h unknown option
  1477.               = 0002h buffer is empty/full
  1478.               = 0003h key is invalid / already defined / not defined
  1479.  
  1480.  
  1481.  
  1482.  
  1483.               = 0004h buffer not set for proper defined key termination
  1484.               = 0005h buffer play/record mode is turned off
  1485.               = 0006h cannot execute field during it's definition
  1486.               = 0007h nesting/recursion overflow
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.            +---------------------------------------------------------+
  1493.            |                                                         |
  1494.            |                       APPENDICES                        |
  1495.            |                                                         |
  1496.            +---------------------------------------------------------+
  1497.  
  1498.  
  1499.       ======================================================================
  1500.       A)  Special keystroke names:
  1501.  
  1502.       There are keystrokes on the keyboard that do not have any single
  1503.       character representation, therefore a special notation is used to
  1504.       identify these keys.  The following is a list of keystrokes in their
  1505.       special notation form, and a description of the function that the key
  1506.       performs:
  1507.  
  1508.       An asterisk has been placed by the keystrokes to which you may assign
  1509.       a string of keystrokes.  These keystrokes have been defined as keys
  1510.       with 'extended scan codes'.
  1511.  
  1512.       Unshifted keys:
  1513.  
  1514.         * <F1> - <F10>    : unshifted functions
  1515.         * <UP>            : up arrow
  1516.         * <DOWN>          : down arrow
  1517.         * <LEFT>          : left arrow
  1518.         * <RGHT>          : right arrow
  1519.         * <PGUP>          : page up
  1520.         * <PGDN>          : page down
  1521.         * <HOME>          : home
  1522.         * <END>           : end
  1523.         * <INS>           : insert
  1524.         * <DEL>           : delete
  1525.           <CR>            : carriage return
  1526.           <LF>            : line feed
  1527.           <TAB>           : tab
  1528.           <ESC>           : escape
  1529.           <BKSP>          : back space
  1530.  
  1531.       Alternate shifted keys:
  1532.  
  1533.         * <@F1> - <@F10>  : alternate function
  1534.         * <@0> - <@9>     : alternate numbers (top of keyboard)
  1535.         * <@->            : alternate '-'
  1536.         * <@=>            : alternate '='
  1537.         * <@A> - <@Z>     : alternate 'A' through 'Z'
  1538.  
  1539.       Caps shifted keys:
  1540.  
  1541.         * <$F1> - <$F10>  : shifted functions
  1542.           <$TAB>          : shift tab
  1543.  
  1544.       Control shifted keys:
  1545.  
  1546.         * <^F1> - <^F10>  : control functions
  1547.         * <^2>            : control '2'
  1548.           <^6>            : control '6'
  1549.  
  1550.  
  1551.  
  1552.  
  1553.           <^->            : control '-'
  1554.         * <^LEFT>         : control left arrow
  1555.         * <^RGHT>         : control right arrow
  1556.         * <^PGUP>         : control page up
  1557.         * <^PGDN>         : control page down
  1558.         * <^HOME>         : control home
  1559.         * <^END>          : control end
  1560.         * <^PRTS>         : control print screen
  1561.           <^CR>           : control carriage return (same as <LF>)
  1562.           <^BKSP>         : control back space
  1563.           <^[>            : control '['
  1564.           <^\>            : control '\'
  1565.           <^]>            : control ']'
  1566.           <^A> - <^Z>     : control 'A' through 'Z'
  1567.  
  1568.       Special escape mode functions:
  1569.  
  1570.           The functions applicable only to the enhanced version of
  1571.           Soft-Touch are indicated by a '**' beside the function.
  1572.  
  1573.           <ON>            : immed: enable defined keys
  1574.           <OFF>           : immed: disable defined keys
  1575.           <STOP>          : immed: turn off record and play modes
  1576.           <FLSH>          : immed: clear work buffer
  1577.        ** <RCRD>          : immed: turn on record mode
  1578.        ** <PLAY>          : immed: playback work buffer
  1579.           <KBKS>          : immed: backspace work buffer
  1580.           <KCLR>          : immed: clear all defined keys
  1581.           <KSTR>          : immed: start key definition
  1582.           <KEND>          : immed: end key definition
  1583.           <@ON>           : playback: enable defined keys
  1584.           <@OFF>          : playback: disable defined keys
  1585.           <@STOP>         : playback: turn off record and play modes
  1586.           <@FLSH>         : playback: clear work buffer
  1587.           <@RCRD>         : playback: turn on record mode
  1588.           <@PLAY>         : playback: playback work buffer
  1589.           <@KBKS>         : playback: backspace work buffer
  1590.           <@KCLR>         : playback: clear all defined keys
  1591.           <@KSTR>         : playback: start key definition
  1592.           <@KEND>         : playback: end key definition
  1593.           <BOOT>          : re-boot system
  1594.           <TIME>          : set current system data and time
  1595.           <YEAR>          : return long year
  1596.           <YR>            : return short year
  1597.           <MO>            : return month number
  1598.           <DA>            : return day number
  1599.           <HR>            : return hour (24 hour clock)
  1600.           <MN>            : return minutes past hour
  1601.           <SC>            : return seconds past minute
  1602.           <LOOP>          : replay keystrokes
  1603.           <BEEP>          : issue a short beep in the speaker
  1604.        ** <WAIT>          : wait until a key is pressed
  1605.           <PAUS>          : pause for 2 seconds
  1606.           <VFLD>          : variable entry field #1
  1607.           <VFL1> - <VFL3> : variable entry field #1 - #3
  1608.           <VAR>           : variable field return #1
  1609.           <VAR1> - <VAR3> : variable field return #1 - #3
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.       Other special names:
  1616.  
  1617.          <*...comment...> : comment line
  1618.          <#001> - <#255>  : alternate shift numeric pad codes
  1619.          <&hhhh>          : literal scan code (hhhh = hex number)
  1620.  
  1621.  
  1622.  
  1623.  
  1624.       ======================================================================
  1625.       B)  Keyboard scan codes:
  1626.  
  1627.       This is a list of the keyboard scan codes and the codes which are
  1628.       returned by a call to software interrupt 016h.  All keystrokes in the
  1629.       list below which have a returned code ending with 00h (ie. 3B00h for
  1630.       <F1>) may be used for assigning keystroke strings.
  1631.  
  1632.       Scan code table:
  1633.  
  1634.            keyboard       |  codes returned by int 016h
  1635.       scan code |         |        shift status
  1636.       dec | hex | key     | norm  | alt   | shft  | ctrl
  1637.       ----+-----+---------+-------+-------+-------+-------
  1638.         1 | 01h | esc     | 011Bh | ----  | 011Bh | 011Bh
  1639.         2 | 02h | 1 !     | 0231h | 7800h | 0221h | ----
  1640.         3 | 03h | 2 @     | 0332h | 7900h | 0340h | 0300h
  1641.         4 | 04h | 3 #     | 0433h | 7A00h | 0423h | ----
  1642.         5 | 05h | 4 $     | 0534h | 7B00h | 0524h | ----
  1643.         6 | 06h | 5 %     | 0635h | 7C00h | 0625h | ----
  1644.         7 | 07h | 6 ^     | 0736h | 7D00h | 075Eh | 071Eh
  1645.         8 | 08h | 7 &     | 0837h | 7E00h | 0826h | ----
  1646.         9 | 09h | 8 *     | 0938h | 7F00h | 092Ah | ----
  1647.        10 | 0Ah | 9 (     | 0A39h | 8000h | 0A28h | ----
  1648.        11 | 0Bh | 0 )     | 0B30h | 8100h | 0B29h | ----
  1649.        12 | 0Ch | - _     | 0C2Dh | 8200h | 0C5Fh | 0C1Fh
  1650.        13 | 0Dh | = +     | 0D3Dh | 8300h | 0D2Bh | ----
  1651.        14 | 0Eh | bksp    | 0E08h | ----  | 0E08h | 0E7Fh
  1652.        15 | 0Fh | tab     | 0F09h | ----  | 0F00h | ----
  1653.        16 | 10h | Q       | 1071h | 1000h | 1051h | 1011h
  1654.        17 | 11h | W       | 1177h | 1100h | 1157h | 1117h
  1655.        18 | 12h | E       | 1265h | 1200h | 1245h | 1205h
  1656.        19 | 13h | R       | 1372h | 1300h | 1352h | 1312h
  1657.        20 | 14h | T       | 1474h | 1400h | 1454h | 1414h
  1658.        21 | 15h | Y       | 1579h | 1500h | 1559h | 1519h
  1659.        22 | 16h | U       | 1675h | 1600h | 1655h | 1615h
  1660.        23 | 17h | I       | 1769h | 1700h | 1749h | 1709h
  1661.        24 | 18h | O       | 186Fh | 1800h | 184Fh | 180Fh
  1662.        25 | 19h | P       | 1970h | 1900h | 1950h | 1910h
  1663.        26 | 1Ah | [ {     | 1A5Bh | ----  | 1A7Bh | 1A1Bh
  1664.        27 | 1Bh | ] }     | 1B5Dh | ----  | 1B7Dh | 1B1Dh
  1665.        28 | 1Ch | return  | 1C0Dh | ----  | 1C0Dh | 1C0Ah
  1666.        29 | 1Dh | ctrl    | ----  | ----  | ----  | ----
  1667.        30 | 1Eh | A       | 1E61h | 1E00h | 1E41h | 1E01h
  1668.        31 | 1Fh | S       | 1F73h | 1F00h | 1F53h | 1F13h
  1669.        32 | 20h | D       | 2064h | 2000h | 2044h | 2004h
  1670.        33 | 21h | F       | 2166h | 2100h | 2146h | 2106h
  1671.        34 | 22h | G       | 2267h | 2200h | 2247h | 2207h
  1672.        35 | 23h | H       | 2368h | 2300h | 2348h | 2308h
  1673.        36 | 24h | J       | 246Ah | 2400h | 244Ah | 240Ah
  1674.        37 | 25h | K       | 256Bh | 2500h | 254Bh | 250Bh
  1675.        38 | 26h | L       | 266Ch | 2600h | 264Ch | 260Ch
  1676.        39 | 27h | ; :     | 273Bh | ----  | 273Ah | ----
  1677.        40 | 28h | ' "     | 2827h | ----  | 2822h | ----
  1678.        41 | 29h | ` ~     | 2960h | ----  | 297Eh | ----
  1679.  
  1680.  
  1681.  
  1682.  
  1683.       (continued)
  1684.  
  1685.            keyboard       |  codes returned by int 016h
  1686.       scan code |         |        shift status
  1687.       dec | hex | key     | norm  | alt   | shft  | ctrl
  1688.       ----+-----+---------+-------+-------+-------+-------
  1689.        42 | 2Ah | L-shft  | ----  | ----  | ----  | ----
  1690.        43 | 2Bh | \ |     | 2B5Ch | ----  | 2B7Ch | 2B1Ch
  1691.        44 | 2Ch | Z       | 2C7Ah | 2C00h | 2C5Ah | 2C1Ah
  1692.        45 | 2Dh | X       | 2D78h | 2D00h | 2D58h | 2D18h
  1693.        46 | 2Eh | C       | 2E63h | 2E00h | 2E43h | 2E03h
  1694.        47 | 2Fh | V       | 2F76h | 2F00h | 2F56h | 2F16h
  1695.        48 | 30h | B       | 3062h | 3000h | 3042h | 3002h
  1696.        49 | 31h | N       | 316Eh | 3100h | 314Eh | 310Eh
  1697.        50 | 32h | M       | 326Dh | 3200h | 324Dh | 320Dh
  1698.        51 | 33h | , <     | 332Ch | ----  | 333Ch | ----
  1699.        52 | 34h | . >     | 342Eh | ----  | 343Eh | ----
  1700.        53 | 35h | / ?     | 352Fh | ----  | 353Fh | ----
  1701.        54 | 36h | R-shft  | ----  | ----  | ----  | ----
  1702.        55 | 37h | * prtsc | 372Ah | ----  | ----  | 7200h
  1703.        56 | 38h | alt     | ----  | ----  | ----  | ----
  1704.        57 | 39h | space   | 3920h | 3920h | 3920h | 3920h
  1705.        58 | 3Ah | caps-lk | ----  | ----  | ----  | ----
  1706.        59 | 3Bh | f1      | 3B00h | 6800h | 5400h | 5E00h
  1707.        60 | 3Ch | f2      | 3C00h | 6900h | 5500h | 5F00h
  1708.        61 | 3Dh | f3      | 3D00h | 6A00h | 5600h | 6000h
  1709.        62 | 3Eh | f4      | 3E00h | 6B00h | 5700h | 6100h
  1710.        63 | 3Fh | f5      | 3F00h | 6C00h | 5800h | 6200h
  1711.        64 | 40h | f6      | 4000h | 6D00h | 5900h | 6300h
  1712.        65 | 41h | f7      | 4100h | 6E00h | 5A00h | 6400h
  1713.        66 | 42h | f8      | 4200h | 6F00h | 5B00h | 6500h
  1714.        67 | 43h | f9      | 4300h | 7000h | 5C00h | 6600h
  1715.        68 | 44h | f10     | 4400h | 7100h | 5D00h | 6700h
  1716.        69 | 45h | num-lk  | ----  | ----  | ----  | ----
  1717.        70 | 46h | break   | ----  | ----  | ----  | 0000h
  1718.        71 | 47h | home 7  | 4700h |*00##h | 4737h | 7700h
  1719.        72 | 48h | up 8    | 4800h |*00##h | 4838h | ----
  1720.        73 | 49h | pgup 9  | 4900h |*00##h | 4939h | 8400h
  1721.        74 | 4Ah | -       | 4A2Dh | ----  | 4A2Dh | ----
  1722.        75 | 4Bh | left 4  | 4B00h |*00##h | 4B34h | 7300h
  1723.        76 | 4Ch | 5       | ----  |*00##h | 4C35h | ----
  1724.        77 | 4Dh | rght 6  | 4D00h |*00##h | 4D36h | 7400h
  1725.        78 | 4Eh | +       | 4E2Bh | ----  | 4E2Bh | ----
  1726.        79 | 4Fh | end 1   | 4F00h |*00##h | 4F31h | 7500h
  1727.        80 | 50h | dwn 2   | 5000h |*00##h | 5032h | ----
  1728.        81 | 51h | pgdn 3  | 5100h |*00##h | 5133h | 7600h
  1729.        82 | 52h | ins 0   | 5200h |*00##h | 5230h | ----
  1730.        83 | 53h | del .   | 5300h | ----  | 532Eh | ----
  1731.  
  1732.        * special ALT code generation
  1733.          note: 0000 is not returned by the ALT numeric pad sequence.
  1734.  
  1735.  
  1736.  
  1737.  
  1738.       ======================================================================
  1739.       C)  Error messages:
  1740.  
  1741.       This section lists the possible error messages that may be encountered
  1742.       while using the MCROKY command.
  1743.  
  1744.       Error: Keyboard buffer has not been loaded
  1745.          An option has been requested on the SOFTCH command line that
  1746.          requires that the buffer be previously loaded with the install
  1747.          option.  This can be corrected by installing the buffer.
  1748.  
  1749.       Error: Invalid quoted string
  1750.          An invalid quoted string has been entered on the SOFTCH command
  1751.          line with the restore option.  Correct the improper quoted string,
  1752.          then resubmit the command.
  1753.  
  1754.       Error: File does not exist
  1755.          The file name entered on the restore option does not exist as
  1756.          specified.  Check that the drive and path for the file are
  1757.          correctly specified, then resubmit the command.
  1758.  
  1759.       Error: Buffer load error (invalid code / buffer full)
  1760.          The restore option on the SOFTCH command found an error when
  1761.          loading the keyboard buffer with keystrokes.  Either an invalid
  1762.          keystroke function name has been specifed, or the keyboard buffer
  1763.          is full and can not accept any more keystrokes.
  1764.  
  1765.       Error: Unknown parameter code
  1766.          An option has been specified on the SOFTCH command line that is not
  1767.          valid.  Correct the invalid parameter code, then resubmit the
  1768.          command.
  1769.  
  1770.       Error: Buffer already loaded
  1771.          The buffer install optioni has been specified when the macro key
  1772.          keyboard buffer has already been loaded.  The buffer cannot be
  1773.          loaded more than once.
  1774.  
  1775.       Error: Invalid parameter format (terminating)
  1776.          The parameter parser became lost when trying to separate options on
  1777.          the SOFTCH command line due to an invalid parameter format
  1778.          specified.  The rest of the parameter line is flushed and the
  1779.          command terminated.  Correct the invalid parameter format, then
  1780.          resubmit the command.
  1781.  
  1782.       Error: File open error
  1783.          A DOS level error was encountered when trying to open a file for
  1784.          the save or restore option.
  1785.  
  1786.       Error: File write error (disk full)
  1787.          A DOS level error was encountered when writing keystrokes to a file
  1788.          during the save option.  This usually means that the disk has
  1789.          become full and that no more information can be written. Change
  1790.          diskettes or allocate more available space, then resubmit the
  1791.          command.
  1792.  
  1793.       Error: Parameter number overflow / number invalid
  1794.          This means that a number specified on the install or screen blank
  1795.          options is too large or is invalid.  Change the specified number,
  1796.  
  1797.  
  1798.  
  1799.  
  1800.          then resubmit the command.
  1801.  
  1802.       Error: Invalid escape mode "hot key" parameter
  1803.          The number specified on the escape mode "hot key" change option is
  1804.          invalid.  Correct and resubmit the command.
  1805.  
  1806.  
  1807.  
  1808.  
  1809.       ======================================================================
  1810.       D)  Program License Agreement:
  1811.  
  1812.       YOU SHOULD CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS BEFORE
  1813.       USING THIS PRODUCT.  USING THIS PRODUCT INDICATES YOUR ACCEPTANCE OF
  1814.       THESE TERMS AND CONDITIONS.  IF YOU DO NOT AGREE WITH THEM, YOU SHOULD
  1815.       PROMPTLY RETURN THE PACKAGE.
  1816.  
  1817.       LICENSE
  1818.  
  1819.       A limited license is granted to any user of the program to freely copy
  1820.       and distribute the product on the following conditions:
  1821.  
  1822.       You may:
  1823.  
  1824.         -  Use the program on any microcomputer on which this package
  1825.            was designed to operate.
  1826.  
  1827.         -  Copy the program into any machine readable form for
  1828.            backup purposes.
  1829.  
  1830.         -  Freely copy and share unmodified copies of the product with
  1831.            your friends or associates.
  1832.  
  1833.  
  1834.       You may not:
  1835.  
  1836.         -  Sell this product for a fee without express written permission.
  1837.  
  1838.         -  Grant sublicense, leases, or other rights in the software to
  1839.            others.
  1840.  
  1841.         -  Modify or remove the Copyright notice from the program,
  1842.            diskette or its manual.
  1843.  
  1844.         -  Modify the program, diskette or manual and/or merge it into
  1845.            another program for any machine.
  1846.  
  1847.  
  1848.       Terms and Conditions
  1849.  
  1850.       The license is effective until terminated.  You may terminate it at
  1851.       any time by destroying the diskette(s) contained in this package.  The
  1852.       license and the rights thereof terminate if you fail to comply with
  1853.       any term or condition of this agreement.  You agree further, upon
  1854.       termination, to destroy the program together with any modifications
  1855.       and/or merged portions in any form.
  1856.  
  1857.  
  1858.  
  1859.  
  1860.       ======================================================================
  1861.       E)  Limited Warranty:
  1862.  
  1863.       THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  1864.       EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  1865.       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1866.       THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
  1867.       YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST
  1868.       OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME STATES DO NOT
  1869.       ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO THE ABOVE EXCLUSION MAY
  1870.       NOT APPLY TO YOU. THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS AND
  1871.       YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE.
  1872.  
  1873.       LIMITATIONS OF REMEDIES
  1874.  
  1875.       Martin D. Flynn and his associates liability and your exclusive remedy
  1876.       shall be:
  1877.  
  1878.          -  The replacement of the diskette(s) if you have met the
  1879.             conditions as described under "LIMITED WARRANTY" or
  1880.  
  1881.          -  A full refund if Martin D. Flynn is unable to deliver a diskette
  1882.             free from defects in materials or workmanship.
  1883.  
  1884.       IN NO EVENT WILL MARTIN D. FLYNN OR HIS ASSOCIATES BE LIABLE TO YOU
  1885.       FOR ANY DAMAGES INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER
  1886.       INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
  1887.       INABILITY TO USE SUCH PROGRAM EVEN IF MARTIN D. FLYNN OR HIS
  1888.       ASSOCIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR ANY
  1889.       CLAIM BY ANY OTHER PARTY.
  1890.  
  1891.       SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR
  1892.       INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR
  1893.       EXCLUSION MAY NOT APPLY TO YOU.
  1894.  
  1895.       GENERAL
  1896.  
  1897.       You may not sublicense, assign or transfer the license or the limited
  1898.       warranties of the program except as expressly provided in this
  1899.       agreement.  Any attempt otherwise to sublicense, assign or transfer
  1900.       any of the rights, duties or obligations hereunder is void.  This
  1901.       agreement will be governed by the laws of the State of California.
  1902.  
  1903.       Should you have any questions concerning this agreement, you may
  1904.       contact Martin D. Flynn by writing to:
  1905.  
  1906.                       Martin D. Flynn
  1907.                       P.O. Box 5034
  1908.                       Redwood City, Calif.  94063
  1909.  
  1910.  
  1911.       YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT AND UNDERSTAND IT
  1912.       AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS. YOU FURTHER AGREE
  1913.       THAT IT IS THE COMPLETE AND EXCLUSIVE STATEMENT OF THE AGREEMENT
  1914.       BETWEEN US WHICH SUPERCEDES ANY PROPOSAL OR PRIOR WRITTEN AGREEMENT,
  1915.       ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN US RELATING TO
  1916.       THE SUBJECT MATTER OF THIS AGREEMENT.
  1917.