home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / batch / autoscr.zip / AS.DOC < prev    next >
Text File  |  1992-08-23  |  124KB  |  2,956 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                              AutoScript
  24.  
  25.  
  26.  
  27.  
  28.                             Version 1.01
  29.  
  30.  
  31.  
  32.                             User's Manual
  33.  
  34.  
  35.  
  36.                     Copyright 1992 by Larry Michaels
  37.  
  38.  
  39.  
  40.                          Table of Contents
  41.  
  42.  
  43.  
  44.   Shareware Notice - Registration......................................1
  45.   Registration Form....................................................2
  46.   Liability Disclaimer.................................................3
  47.  
  48.   1.      Introduction.................................................4
  49.   1.1     What is AutoScript...........................................4
  50.   1.2     Uses of AutoScript...........................................4
  51.   1.2.1   Making Program Demos.........................................4
  52.   1.2.2   Automated Software Testing...................................4
  53.   1.2.3   Increasing Productivity......................................5
  54.   1.3     System Requirements..........................................5
  55.   1.4     Summary of Features..........................................5
  56.   1.4.1   Keyboard Features............................................5
  57.   1.4.2   Screen Features..............................................6
  58.   1.4.3   Script Control Features......................................7
  59.   1.4.4   System Features..............................................7
  60.   1.4.5   Miscellaneous Features.......................................8
  61.  
  62.   2.      Starting AutoScript..........................................8
  63.   2.1     General Notes................................................8
  64.   2.2     Installing AutoScript........................................9
  65.   2.3     Loading AutoScript...........................................9
  66.   2.4     Configuration Settings......................................10
  67.  
  68.   3.      AutoScript Operation........................................13
  69.   3.1     Pop-up Windows..............................................13
  70.   3.1.1   Settings Window.............................................13
  71.   3.1.2   Actions Window..............................................13
  72.   3.2     AutoScript Modes............................................14
  73.   3.3     Extended Keyboard Buffer....................................14
  74.   3.4     Key Repeat..................................................14
  75.   3.5     Key Click...................................................14
  76.   3.6     Blanking the Screen.........................................15
  77.   3.7     Locking the Keyboard........................................15
  78.   3.8     Saving/Displaying Text Screens..............................15
  79.   3.9     Copying Screen Text to a FIle...............................16
  80.   3.10    Printing Screen Text........................................16
  81.   3.11    Stuffing Text Files.........................................16
  82.   3.12    Incremental File Names......................................17
  83.   3.13    Recording Scripts...........................................17
  84.   3.13.1  Recording Keystroke Delays and Keyboard Status Changes......18
  85.   3.13.2  Inserting Comments..........................................18
  86.   3.13.3  Inserting Other Commands....................................18
  87.   3.14    Appending Scripts...........................................19
  88.   3.15    Playing Scripts.............................................19
  89.   3.15.1  Pausing Play................................................19
  90.   3.15.2  Changing Settings During Play...............................19
  91.   3.15.3  Single-Stepping.............................................20
  92.   3.15.4  Locking Keyboard During Play................................20
  93.   3.15.5  Using Text Files as Scripts.................................20
  94.   3.16    Assinging Script Play Hot Keys..............................20
  95.   3.17    Batch Mode..................................................21
  96.   3.18    Unloading AutoScript........................................22
  97.  
  98.  
  99.  
  100.   4.     Creating Scripts With a Text Editor..........................22
  101.   4.1    Line and Block Comments......................................22
  102.   4.2    Commands and Comditions......................................23
  103.   4.3    Keystrokes...................................................23
  104.  
  105.   5.     Commands and Condition Descriptions..........................24
  106.   5.1    Commands.....................................................24
  107.   5.2    Conditions...................................................41
  108.  
  109.   6.     Utilities Included With AutoScript...........................47
  110.   6.1    Script Compiler..............................................47
  111.   6.2    Script Uncompiler............................................47
  112.   6.3    Screen Comparison Utility....................................47
  113.   6.4    KBRATE.......................................................48
  114.  
  115.   7.     Compatibility Issues.........................................48
  116.  
  117.   8.     User Support.................................................49
  118.  
  119.  
  120.                                       1
  121.  
  122.  
  123.   Shareware Notice - Registration
  124.  
  125.   AutoScript 1.01 is distributed as SHAREWARE.  This means that you may
  126.   try it out for up to 30 days for free.  If you find AutoScript useful,
  127.   you are required to register by sending a registration form (included
  128.   below), along with any comments and suggestions, and a modest
  129.   registration fee of US $50.  Your registration will:
  130.  
  131.     1.  Let me know that someone is using AutoScript.
  132.     2.  Help me to make improvements and enhancements.
  133.     3.  Entitle you to a receive a disk with a personalized copy of the
  134.         latest version of AutoScript, free upgrades for 1 year, and free
  135.         telephone support.
  136.     4.  Help support me in my software development (and pay the rent).
  137.  
  138.   A bound, laser-printed copy of this manual is also available for an
  139.   additional $7 to help offset the costs of production and postage.
  140.  
  141.   Being that AutoScript 1.01 is shareware, you are thankfully encouraged
  142.   to pass it on to friends, co-workers, associates, etc., to upload it
  143.   to BBSs, or otherwise distribute it, with the following conditions:
  144.  
  145.     1.  All files (ie. AS.EXE, AS.USG, AS.OVL, AC.EXE, AUC.EXE, ASCRN.EXE,
  146.         DEMO.SCR, AS.DOC, STARTING.DOC, READ.ME, and FILE_ID.DIZ) are 
  147.         included without any modifications.
  148.     2.  No fee is charged for the software, and only a modest fee, if any,
  149.         is charged for the distribution.
  150.     3.  The recipient is aware or informed of the shareware concept and
  151.         how it works.
  152.  
  153.   I hope that you will appreciate that a great deal of time, effort, and
  154.   resources went into developing AutoScript, and that you will register
  155.   your copy without having to be threatened to do so.  I am most
  156.   interested in hearing from users as to how they are using AutoScript,
  157.   and suggestions for future enhancements.  Although a serious effort has
  158.   been made to assure that the code is bug-free, there still exists the
  159.   possibility that some bugs may have escaped unnoticed.  If any bugs are
  160.   found, I apologize in advance, and request that they quickly be brought
  161.   to my attention so that they can be corrected.  Also, being that
  162.   AutoScript is a fairly complicated TSR program, it may not be compatible
  163.   will all hardware and/or software configurations, or all applications.
  164.   It does not work under MS windows.
  165.  
  166.   In the event that you somehow received this DOC file without all of the
  167.   other files, or you want to receive the latest version of AutoScript,
  168.   please send $3 (or a self-addressed, postage-paid mailer and blank disk)
  169.   to:
  170.  
  171.     AutoScript sw
  172.     Larry Michaels
  173.     P.O. Box 59379
  174.     Chicago, IL 60659
  175.     (312) 973-0781
  176.   
  177.  
  178.  
  179.                      AutoScript 1.01 Registration Form
  180.  
  181.     Remit to:                        From:
  182.  
  183.     AutoScript Registration          _______________________________
  184.     Larry Michaels
  185.     P.O. Box 59379                   _______________________________
  186.     Chicago, IL 60659
  187.                                      _______________________________
  188.  
  189.                                      _______________________________
  190.  
  191.                                      _______________________________
  192.  
  193.                                      _______________________________
  194.  
  195.                                      Phone:_________________________
  196.  
  197.  
  198.     Where did you get your copy of AutoScript?______________________
  199.  
  200.  
  201.     Registration US $50 per user    Quantity:____ x $50 = ___________
  202.  
  203.     Bound copy of manual $7         Quantity:____ x  $7 = ___________
  204.  
  205.     IL residents add 7% sales tax:                       ___________
  206.  
  207.     Total:                                               ___________
  208.  
  209.  
  210.     Check if you require a 3.5" disk:____
  211.  
  212.  
  213.     Comments:
  214.   
  215.                                       3
  216.  
  217.  
  218.   Liability Disclaimer
  219.  
  220.   No warranty, written, implied, or otherwise is made regarding the
  221.   suitability of AutoScript for any particular use.  The author,
  222.   representatives, and/or distributor(s) can not and will not be held
  223.   accountable for any damages whatsoever, including, but not limited to,
  224.   the loss of data, loss of time, or loss of business, resulting from the
  225.   use or misuse of the AutoScript software.  The user assumes
  226.   responsibility for determining the suitability of the software for any
  227.   given use.
  228.   
  229.                                       4
  230.  
  231.  
  232.   Chapter 1    Introduction
  233.  
  234.   This manual describes AutoScript's features and operation.  I hope that
  235.   you will find AutoScript to be useful.
  236.  
  237.  
  238.   1.1      What is AutoScript
  239.  
  240.   AutoScript is a powerful TSR (Terminate and Stay Resident) program which
  241.   AutoScript can record your keystrokes, type keystrokes as if they were
  242.   being typed at the keyboard, perform various tasks such as clearing the
  243.   screen, generating sounds, saving screen text, and deleting files,
  244.   check various conditions such as text on the screen, which application
  245.   is running, or data in memory, and act accordingly, and much more.
  246.   AutoScript also provides screen blanking, keyboard repeat, expanded
  247.   keyboard buffer, keyclick, screen text copy and print, text screen save,
  248.   text file insertion, keyboard locking, batch mode, as well as many other
  249.   features, all in one program.
  250.  
  251.   AutoScript records and plays "scripts".  Scripts are binary files which
  252.   contain keystrokes and/or commands, and are limited in size only by disk
  253.   capacity.  As a script is played, keystrokes in the script are "typed" by
  254.   stuffing them into the PC's keyboard buffer, as if they were being typed
  255.   at the keyboard.  Commands in a script can control how a script is played,
  256.   as well as various aspects of you PC's operation.
  257.  
  258.  
  259.   1.2      Uses of AutoScript
  260.  
  261.   AutoScript provides many features and has numerous uses. The following
  262.   sections describe a few uses for AutoScript.
  263.  
  264.  
  265.   1.2.1    Making Program Demos
  266.  
  267.   AutoScript is ideal for creating demos of almost any DOS application.
  268.   You can create a demo of your application, without making a single
  269.   modification to it, by recording your keystrokes while running the
  270.   application, and then playing back the recorded script at demo time.
  271.   AutoScript can preserve the delays between keystrokes so that at
  272.   playback time, keystrokes "typed" by AutoScript will appear as though
  273.   they were being typed by a user at the keyboard. Scripts can be
  274.   scheduled to be played at specific times, and can contain loops,
  275.   providing the facility for long-running, unattended demo operation.
  276.   The keyboard lock and key enable/disable features allow you to restrict
  277.   which keypresses, if any will be allowed to affect your application.
  278.   Conditional branching within a script enables you to make your demos
  279.   more dynamic, allowing them to respond to conditions such as text on the
  280.   screen or the name of the current process.
  281.  
  282.  
  283.   1.2.2     Automated Software Testing
  284.  
  285.   AutoScript is also a powerful automated software testing tool.
  286.   AutoScript can record all keystrokes while running your application,
  287.   providing you with an accurate record of you testing sequence, and
  288.   allowing you to painlessly repeat that sequence any number of times to
  289.   properly test you application after making changes and/or corrections.
  290.   
  291.                                       5
  292.  
  293.  
  294.   Variable-speed play and single-step mode permit you to play back your
  295.   recorded script at different speeds, or one key at a time.  The various
  296.   conditional tests which AutoScript can perform can quickly alert you to
  297.   bugs in you application by checking the contents of the display screen,
  298.   as well as RAM within your application's memory space, or anywhere else
  299.   in conventional memory.  You can instruct AutoScript to check specific
  300.   bytes, words, double words, and strings within your application by
  301.   providing the segment and offset values which appear in the map file
  302.   produced by you linker.  A separate utility lets you compare the
  303.   contents of text mode screens saved by AutoScript, displaying the
  304.   differences between two screens.  Log statements within a script can
  305.   provide a useful audit trail during testing, allowing you to determine
  306.   what occurred at what time.
  307.  
  308.  
  309.   1.2.3     Increasing Productivity
  310.  
  311.   AutoScript can help you boost your productivity with your PC.  The
  312.   extended keyboard buffer will help you save time, allowing you to type
  313.   ahead up to 200 keystrokes, while the PC is doing something else, such
  314.   as writing to disk.  The keyboard repeat feature can help you type
  315.   duplicate keys and move around large documents quickly in an editor.
  316.   The screen blanker can increase the life of your video display by
  317.   automatically blanking the screen after a set number of minutes or at
  318.   any time on demand.   The screen saving, screen text copy and print,
  319.   and text file stuffing features allow you to save the screen, copy or
  320.   print selected portions of the screen, and insert the contents of any
  321.   text file, almost anywhere that keyboard input is required.  By
  322.   recording the keystrokes for repetitive tasks in a script, such tasks
  323.   can repeated by a single keystroke.  The batch processing feature allows
  324.   you to schedule almost any task to be done, at any time, day or night,
  325.   up to a month in advance.  You can even schedule tasks to be done every
  326.   day at the same time.
  327.  
  328.  
  329.   1.3      System Requirements
  330.  
  331.   AutoScript should run on any IBM AT or PS/2 or 100% compatible machine
  332.   with a hard disk, running DOS version 3.0 or higher.  Some features may
  333.   require EGA or VGA video controllers.
  334.  
  335.  
  336.   1.4      Summary of Features
  337.  
  338.   AutoScript provides a wide variety of features.  This section provides a
  339.   list of AutoScript's features, grouped by category, along with a brief
  340.   description of each.  For detailed instructions on how these features
  341.   work, please refer to the appropriate sections in this manual.
  342.  
  343.   1.4.1    Keyboard Features
  344.  
  345.   Extended keyboard buffer:  Increases your PC's keyboard type-ahead
  346.                              buffer size from 15 to 200 keystrokes.
  347.  
  348.   Keyboard repeat:           Lets you set your keyboard repeat rate and
  349.                              delay.
  350.  
  351.   Key click:                 Produces a "click" sound for each key pressed
  352.                              at the keyboard or "typed" by AutoScript.
  353.   
  354.                                       6
  355.  
  356.  
  357.   Keyboard lock:             "Locks" your keyboard so that no keystrokes
  358.                              will be accepted (not even Ctrl-Alt-Del) until
  359.                              the password is entered.
  360.  
  361.   Key enable/disable:        Disables specific keys, or all but certain
  362.                              keys.  AutoScript will cause disabled keys to
  363.                              be ignored.
  364.  
  365.   Keyboard status changing:  Turns on or off certain keyboard status bits
  366.                              in the PC's keyboard status word.  These bits
  367.                              correspond to the pressing and releasing of
  368.                              the left and right Shift, Ctrl, and Alt keys,
  369.                              and the Num Lock, Caps Lock, and Scroll Lock
  370.                              states.
  371.  
  372.  
  373.   1.4.2    Screen Features
  374.  
  375.   Screen blanking:           Blanks the PC's screen, either automatically,
  376.                              after a given number of idle minutes, or on
  377.                              demand at any time.  You have the option of
  378.                              whether or not the screen will be unblanked
  379.                              when text is written to it.
  380.  
  381.   Screen save/display:       Lets you save the contents of any text-mode
  382.                              screen, including the attributes and cursor
  383.                              size and location, to a file.  You can
  384.                              display any screen which was saved using this
  385.                              feature.  For EGA and VGA video systems, you
  386.                              can specify whether blinking or background
  387.                              intensity should be enabled when a screen is
  388.                              displayed.
  389.  
  390.   Screen text copy:          Lets you select a block of text, any size,
  391.                              anywhere on a text-mode screen, and save it
  392.                              to a file.  The resultant file will be a
  393.                              plain ASCII file.
  394.  
  395.   Screen text printing:      Lets you select a block of text, any size,
  396.                              anywhere on a text-mode screen, and send it
  397.                              to your printer.
  398.  
  399.   Screen clearing:           Clears the screen and video buffer.
  400.  
  401.   Cursor hide/restore:       Hides (makes invisible) the text cursor,
  402.                              storing its size and location on the screen.
  403.                              A hidden cursor can be restored to its saved
  404.                              size and location.
  405.  
  406.   Video mode setting:        Sets the video mode to a specified value.
  407.  
  408.   Writing to screen:         Lets you write a text string in any attribute
  409.                              over the current text screen.
  410.   
  411.                                       7
  412.  
  413.  
  414.   1.4.3    Script Control Features
  415.  
  416.   Conditional execution:     Controls script play by allowing commands or
  417.                              blocks of commands to be either executed or
  418.                              skipped, depending on the outcome of condition
  419.                              checks.  Conditions can be based on the
  420.                              following items:    data in RAM, environment
  421.                              variables, input from I/O ports, register
  422.                              values returned by interrupt calls, the name
  423.                              of the foreground process, screen contents,
  424.                              and text in a region on the screen.
  425.  
  426.   Looping:                   Repeats the command(s) within a loop a fixed
  427.                              or infinite number of times.  Loops can be
  428.                              exited based on conditions.
  429.  
  430.   Delay:                     Pauses script play for a specified amount of
  431.                              time.  You can also specify in a script, a
  432.                              standard delay which AutoScript will pause
  433.                              between each command and/or keystroke.
  434.                              During script play, you can tell AutoScript
  435.                              to ignore these imbedded delays.  You can
  436.                              also set the maximum speed at which scripts
  437.                              are played.
  438.  
  439.   Wait until:                Pauses script play until a specified time of
  440.                              day arrives.
  441.  
  442.   Waiting for a string:      Pauses script play until a specified character
  443.                              string is typed at the keyboard.
  444.  
  445.   Play pause:                Pauses script play until a specified key is
  446.                              pressed or a specified amount of time elapses.
  447.  
  448.   Script insert/change:      Causes AutoScript to stop playing the current
  449.                              script and begin playing another.  You have
  450.                              the option of whether or not AutoScript
  451.                              should return to playing the original script
  452.                              upon completion of the new script.
  453.  
  454.   Single-stepping:           When AutoScript is in single-step mode,
  455.                              keystrokes in the script are "typed" one at a
  456.                              time as the step key is pressed.
  457.  
  458.  
  459.   1.4.4    System Features
  460.  
  461.   File deletion:             Deletes the specified file.
  462.  
  463.   Interrupt generation:      Generates the specified interrupt with the
  464.                              registers set to the given values.
  465.  
  466.   I/O port output:           Outputs a byte or word to an I/O port.
  467.  
  468.   System pause:              Pauses the foreground process until a key is
  469.                              pressed.
  470.   
  471.                                       8
  472.  
  473.  
  474.   Data save:                 Saves a byte, word, double word, or string
  475.                              from the specified memory location.  The
  476.                              memory locations can be specified relative
  477.                              to the start of system memory or relative to
  478.                              the start or the current foreground process's
  479.                              memory area.
  480.  
  481.   Reboot:                    Reboots the PC.  You can specify either a
  482.                              "warm" (ie. the same as pressing Ctrl-Alt-Del)
  483.                              or "cold" (ie. the same as pressing the PC's
  484.                              reset button) reboot.
  485.  
  486.  
  487.   1.4.5    Miscellaneous Features
  488.  
  489.   Beep/tone:                 Produces either a beep of fixed frequency and
  490.                              duration, or a tone of specified frequency
  491.                              and duration.
  492.  
  493.   Alarm:                     Stops script play, and produces an alarm
  494.                              sound which continues until a key is pressed.
  495.                              Script play is resumed by pressing the unpause
  496.                              key.
  497.  
  498.   Text file stuffing:        Stuffs the contents of a text file into the
  499.                              keyboard buffer, as if they were being typed
  500.                              at the keyboard.  You can use this feature to
  501.                              "paste" screen text saved with the Copy
  502.                              screen text feature.
  503.  
  504.   Batch mode:                You can submit a batch file to AutoScript.
  505.                              Batch files contain a list of script names
  506.                              and associated dates and times.  AutoScript
  507.                              will play the scripts listed at the specified
  508.                              dates and times.
  509.  
  510.   Logging:                   Writes a given message, along with the time,
  511.                              to a log file.
  512.  
  513.  
  514.   Chapter 2     Starting AutoScript
  515.  
  516.   2.1      General Notes
  517.  
  518.   AutoScript recognizes a number of "hot keys", as described later in this
  519.   chapter.  A hot key can be either a single key on the keyboard, or a
  520.   combination of a key with a modifier key (ie. Ctrl, Alt, or Shift).
  521.   When referring to a numerical key, such as "4", the key on the main part
  522.   of the keyboard, and not on the numerical keypad, is meant.  Most keys
  523.   are referred to by a simple, one-character name, such as "A", "B", "9",
  524.   etc..  Other keys such as the Spacebar, the Tab key, etc. are referred
  525.   to by longer names.  The keys prefixed by "KP" are those on the numeric
  526.   keypad.  Table 5-1 at the end of Chapter 5 lists all of the valid
  527.   multi-character key names.  When a key includes a modifier, the
  528.   prefixes: "Ctrl-", "Alt-", and "Shft-" are used.  Note that the Alt and
  529.   left and right Shift keys can also be used with modifiers.  The
  530.   following are valid key combinations using the Alt and Shift keys:
  531.   Ctrl-LShift, Ctrl-RShift, Ctrl-Alt, Alt-LShift, and Alt-RShift.
  532.   
  533.                                       9
  534.  
  535.  
  536.   The keystrokes which AutoScript records and plays are not the actual
  537.   keypresses, but the words which the PC's BIOS generates and places in
  538.   the keyboard buffer when keys are pressed.  These keystroke words
  539.   consist of an ASCII character byte and a keyboard scan code byte.  All
  540.   keyboard keys produce keypress codes, but not all result in a keystroke
  541.   word being generated.  For example, the left and right Shift keys each
  542.   produce a unique code when pressed, but neither cause a keystroke word
  543.   to  generated or placed in the keyboard buffer.  The hot key names, as
  544.   well as the key names which are required as arguments in some of the
  545.   script commands correspond to the codes produced by the keyboard when
  546.   those keys are pressed, whereas the keystrokes which are can be included
  547.   in scripts correspond to the words which are placed in the PC's keyboard
  548.   buffer.
  549.  
  550.  
  551.   2.2      Installing AutoScript
  552.  
  553.   Your AutoScript distribution disk should contain the following files:
  554.  
  555.   AS.EXE     - The AutoScript program file
  556.   AS.OVL     - An overlay file used by AutoScript
  557.   AS.USG     - A data file used by AutoScript
  558.   AC.EXE     - The script compiler program
  559.   AUC.EXE    - The script uncompiler program
  560.   ASC.EXE    - The screen compare utility program
  561.   KBRATE.EXE - A utility for setting the keyboard's repeat rate and delay
  562.  
  563.   To install AutoScript on your system, simply create a directory on
  564.   you hard disk named "AUTOSCRIPT" (or any other name you prefer), and
  565.   copy all of the files on the distribution disk to the new directory.
  566.   You will probably want to add the new directory to the PATH statement in
  567.   your AUTOEXEC.BAT file.  You may want to copy KBRATE to your utilities
  568.   directory.
  569.  
  570.  
  571.   2.3    Loading AutoScript
  572.  
  573.   To load AutoScript, type "AS" along with any command-line options at
  574.   the DOS prompt, and press Enter.  You should preferably not load
  575.   AutoScript from a DOS shell while within another application, as this
  576.   can lead to problems.  AutoScript will load itself into your PC's memory
  577.   and return to DOS.  Command-line options can be typed in either upper or
  578.   lower-case, and are prefixed by a '/' or '-' character.  The following
  579.   are the valid command-line options:
  580.  
  581.   /b<path>  Start AutoScript in batch mode, using the batch file specified
  582.             by path.  AutoScript will attempt to read the batch file, and
  583.             execute the scripts listed in it at the specified times.
  584.  
  585.   /c<path>  Use the configuration file specified by path instead of the
  586.             default file "AS.CFG".
  587.  
  588.   /d        Record delays between keystrokes.  This option is valid only
  589.             in conjunction with the /r option.  Using this option has the
  590.             same effect as setting Record Delays in the Record Script
  591.             window.
  592.   
  593.                                      10
  594.  
  595.  
  596.   /i<xx>    Set the multiplex interrupt ID to the value xx (in
  597.             hexadecimal), instead of the value stored in the configuration
  598.             file. The default setting in 0BFh.
  599.  
  600.   /k        Record keyboard status changes.  This option is valid only in
  601.             conjunction with the /r option.  Using this option has the same
  602.             effect as setting Record Kbd Stat Changes in the Record Script
  603.             window.
  604.  
  605.   /l<path>  Use the name given by path for the log file instead of the
  606.             name stored in the configuration file.  The default name is
  607.             "AS.LOG".  If this option is used, all log output will be
  608.             written to the file with the specified name.  If the log file
  609.             does not exist, it will be created.
  610.  
  611.   /m        Force monochrome.  This option forces the pop-up windows to
  612.             appear in monochrome, even when a color monitor is used.  This
  613.             option may be useful when running AutoScript on a laptop or
  614.             notebook PC.
  615.  
  616.   /p<path>  Start AutoScript in Play mode.  This option has the effect of
  617.             causing AutoScript to immediately play the script given by
  618.             path upon startup.
  619.  
  620.   /r<path>  Start AutoScript in Record mode.   This option has the effect
  621.             of causing AutoScript to immediately start recording the script
  622.             given by path upon startup.
  623.  
  624.   /s        Save screen contents to RAM instead of disk when displaying a
  625.             pop-up screen.  Using this option will cause AutoScript to use
  626.             about 4K more memory, but will make pop-up screens appear more
  627.             quickly.
  628.  
  629.   /u        Unload AutoScript.  Typing "AR /u <Enter>" at the DOS prompt
  630.             once AutoScript has been loaded will cause AutoScript to try
  631.             to unload itself and release the memory it was using.  If
  632.             other applications have hooked any of the interrupts which
  633.             AutoScript was using, it will not be able to unload itself.
  634.  
  635.   /?        Display the command-line options.
  636.  
  637.  
  638.   2.4      Configuration Settings
  639.  
  640.   When AutoScript is loaded, it looks for a configuration file which
  641.   contains values which affect its operation.  You may specify the name of
  642.   the configuration file by using the /c command-line option.  For
  643.   example, loading AutoScript by typing:
  644.  
  645.    AUTOSCRIPT /cC:\MISC\MYCONFIG.CFG <Enter>
  646.  
  647.   will cause AutoScript to look in the directory MISC, on drive C:, for
  648.   the file "MYCONFIG.CFG".  If no configuration file name is given,
  649.   AutoScript will look for a file named "AS.CFG" in the current directory.
  650.   If this file is not found, AutoScript will search its home directory
  651.   (ie. the directory in which the currently running "AS.EXE" is located)
  652.   for the file.  If no such file exists, AutoScript will create one in the
  653.   current directory,  and store in it the default configuration settings.
  654.   
  655.                                      11
  656.  
  657.  
  658.   Once AutoScript is loaded, you may wish to view and adjust the
  659.   configuration settings.  Configuration settings can be view and changed
  660.   via the  settings pop-up window.  To bring up the window, press the
  661.   Settings hot key.  The current hot key setting is displayed whenever
  662.   "AS<Enter>" is typed at a DOS prompt, and the default key is Ctrl-4.
  663.   You will want to make sure that the hot key settings do not conflict
  664.   with keys used by the applications with which AutoScript will be used.
  665.   Note that wherever a reference to a numerical key (ie. "4", "5", etc.)
  666.   is made, the key referenced is the one on the main part of the keyboard,
  667.   and not on the numeric keypad.
  668.  
  669.   The settings window displays, and allows you to modify the following
  670.   items:
  671.  
  672.   Default Mode:       The default mode to which AutoScript is set upon
  673.                       start-up, or upon leaving Record or Play modes.
  674.                       This is a multiple-choice item, and the choices are
  675.                       Standby and Interactive.
  676.  
  677.   Printer port:       The port where data is sent when printing screen
  678.                       text.  This is a multiple-choice item.  The choices
  679.                       are LPT1, LPT2, and LPT3.
  680.  
  681.   Scrn blank timeout: The number of minutes AutoScript waits for the PC to
  682.                       be idle before it blanks the screen.  The possible
  683.                       values range from 0 - 255.  A setting of 0 disables
  684.                       this feature.
  685.  
  686.   Unblank on scrn     Controls whether or not AutoScript will unblank the
  687.   write:              PC screen when data is written to the screen by the
  688.                       PC's BIOS.  This is a multiple-choice item.
  689.  
  690.   Extended kbd        Determines whether or not AutoScript will place the
  691.   buffer:             user's keystrokes in an extended keyboard buffer.
  692.                       This is a multiple-choice item.
  693.  
  694.   Kbd repeat rate:    Controls whether or not AutoScript's key repeat
  695.                       feature is enabled and, if enabled, the number of
  696.                       repeats per second.  The possible values are in the
  697.                       range 0 - 255, although a setting of more than about
  698.                       100 will be too fast for many applications.  Also,
  699.                       depending on the speed of your PC and the
  700.                       application that is running, a repeat rate which is
  701.                       too high may cause a system "crash".  A setting of 0
  702.                       disables the key repeat feature, and permits the key
  703.                       repeat to occur at the rate which is set in the PC's
  704.                       keyboard.
  705.  
  706.   Kbd repeat delay:   The amount of time in 18th's of a second, AutoScript
  707.                       waits for a key to be held down before key repeat
  708.                       begins.  Valid settings are in the range 0 - 255,
  709.                       although a setting of 0 will cause the key repeat to
  710.                       begin as soon as a key is pressed.  If the Kbd repeat
  711.                       rate is set to 0, this setting will have no effect.
  712.  
  713.   Max play speed:     This setting limits the maximum speed at which
  714.                       scripts are played.
  715.   
  716.                                      12
  717.  
  718.  
  719.   Beep:               Controls whether or not AutoScript will beep at the
  720.                       beginning and end of script record and play and when
  721.                       a key is pressed and the keyboard is locked.  It
  722.                       does not affect beeps caused by the Beep command in
  723.                       a script.  This is a multiple-choice item.
  724.  
  725.   Key click:          Controls whether or not keyboard click is enabled.
  726.                       It affects the click for both keystrokes typed at
  727.                       the keyboard, as well as keys "typed" by AutoScript
  728.                       while playing a script.  This is a multiple-choice
  729.                       item.
  730.  
  731.   Wait for disk:      Determines whether or not script play is temporarily
  732.                       suspended while the PC is accessing a disk.  This is
  733.                       a multiple-choice item.
  734.  
  735.   Blink/bg intensity  Determines whether blinking or background intensity
  736.   mode:               should be enabled on EGA and VGA video cards when a
  737.                       saved screen is displayed.  When this item is set to
  738.                       Blink, and a screen is displayed, any text in the
  739.                       screen which has its blink attribute set will be
  740.                       displayed blinking.  When it is set to Intensity,
  741.                       text with its blink attribute set will be displayed
  742.                       with a bright background.  This is a multiple-choice
  743.                       item.
  744.  
  745.   Multiplex ID:       The multiplex interrupt ID used by AutoScript.  It
  746.                       may be set to any one-byte hexadecimal value, and
  747.                       may also be set via the command-line when loading.
  748.  
  749.   Log file:           The name of the file to which AutoScript writes log
  750.                       output.  It may also be changed via the command-line
  751.                       when loading AutoScript.
  752.  
  753.   Batch file:         The name of the batch file which AutoScript reads
  754.                       when it is in batch mode.  This file name is not
  755.                       stored in the configuration file.  It can be set
  756.                       either by typing it on the command-line when
  757.                       AutoScript is loaded (using the /b command-line
  758.                       option), or by typing it on the appropriate line in
  759.                       the Settings window.  If a new file name is entered
  760.                       on this line, AutoScript will automatically enter
  761.                       batch mode (if it was not already in batch mode),
  762.                       and begin reading the new batch file.
  763.  
  764.   Record script:      The hot key for putting AutoScript into Record mode.
  765.  
  766.   Play script:        The hot key for putting AutoScript into Play mode.
  767.  
  768.   Stop recrd/play:    The hot key for terminating script record and play.
  769.  
  770.   Pause play:         The hot key for pausing script play.
  771.  
  772.   Blank scrn:         The hot key for blanking the screen.
  773.  
  774.   Settings:           The hot key for bringing up the Settings window.
  775.  
  776.   Actions:            The hot key for bringing the Actions window.
  777.   
  778.                                      13
  779.  
  780.  
  781.   To move around the Settings window, use the up and down arrow keys.
  782.   Multiple-choice items are changed using the spacebar.  Hot keys are set
  783.   by pressing Enter, followed by the desired hot key combination.
  784.   Pressing Enter twice will set no key as the hot key, thereby effectively
  785.   disabling the particular function.  To save changes, press Ctrl-Enter.
  786.   When changes are saved, the configuration file is automatically updated
  787.   to reflect the changes.  To exit the settings window without saving
  788.   changes, press Escape.
  789.  
  790.  
  791.   Chapter 3    AutoScript Operation
  792.  
  793.   3.1      Pop-Up Windows
  794.  
  795.   3.1.1    Settings Window
  796.  
  797.   The Settings window allows you to view and alter many parameters
  798.   affecting operation, as well as assigning hot keys.  The items in this
  799.   window are described in Chapter 2.
  800.  
  801.   To bring up the Settings window, press the Settings hot key.  The
  802.   default key combination is Ctrl-4, but it can be changed in this window.
  803.   Typing "AS <Enter>" at a DOS prompt will cause AutoScript to display the
  804.   current Settings hot key combination.
  805.  
  806.  
  807.   3.1.2    Actions Window
  808.  
  809.   Various actions can be performed via the Actions window.  The
  810.   default hot key setting for bringing up this window it Ctrl-5, but it
  811.   can be changed in the Settings window.
  812.  
  813.   The actions which can be done via this window depend on the mode in
  814.   which AutoScript currently is when the hot key is pressed.  When
  815.   AutoScript is in Standby mode, the Actions hot key will be ignored.  The
  816.   following actions can be done via this window:
  817.  
  818.   Append Script:      Interactive mode
  819.   Delay on/off:       Record and Play modes
  820.   Beep:               Record mode
  821.   Save screen:        Interactive and Record modes
  822.   Display screen:     Interactive and Record modes
  823.   Copy screen text:   Interactive and Record modes
  824.   Print screen text:  Interactive and Record modes
  825.   Stuff text file:    Interactive and Record modes
  826.   Add comment:        Record mode
  827.   Add command:        Record mode
  828.   Single-step on/off: Play mode
  829.   Lock keyboard:      Interactive and Play modes
  830.   Edit SP keys:       Interactive mode
  831.   Unload:             Interactive mode
  832.  
  833.   To choose an action, press the key corresponding to the highlighted
  834.   letter in the name of the desired action, or use the up and down arrow
  835.   keys to move the highlight to the desired action, and press Enter.
  836.   Sections later in this chapter describe in detail how these features
  837.   work.
  838.   
  839.                                      14
  840.  
  841.  
  842.   3.2      AutoScript Modes
  843.  
  844.   AutoScript has four main operating modes: Standby, Interactive, Record,
  845.   and Play.  In Standby mode, AutoScript ignores all hot keys except for
  846.   the Settings and Blank Screen hot keys.  In Interactive mode, all
  847.   assigned hot keys are recognized.  In Record mode, AutoScript records
  848.   scripts, and in Play mode, scripts are played.
  849.  
  850.   When AutoScript is loaded, it enters its default mode, either Standby or
  851.   Interactive mode, depending on the configuration setting, unless the /p
  852.   or /r command-line options are used.  You can change the default mode at
  853.   any time via the Settings pop-up window.  The default mode is also the
  854.   mode to which AutoScript returns when it leaves Record or Play modes.
  855.  
  856.  
  857.   3.3      Extended Keyboard Buffer
  858.  
  859.   When the extended keyboard buffer feature is enabled, your PC's internal
  860.   keyboard buffer is effectively increased in size from 15 to 200 keys.
  861.   Making use of this extended buffer allows you to type ahead up to 200
  862.   keys even though the application you are running is not yet ready to
  863.   accept them.  This feature can be turned on or off via the Settings
  864.   window.
  865.  
  866.  
  867.   3.4      Key Repeat
  868.  
  869.   When the key repeat feature is enabled, AutoScript will automatically
  870.   begin repeating a keystroke when a key has been held down for a
  871.   specified amount of time.  Keys repeated by the keyboard are ignored.
  872.   The repeat delay (ie. the amount of time AutoScript waits before
  873.   repeating) and the repeat rate can be set via the Settings window.
  874.  
  875.   Setting the repeat rate to 0 disables this feature, and causes
  876.   AutoScript to allow key repeat to occur at the delay and rate set in the
  877.   PC's keyboard.  It is generally not recommended that you use this
  878.   feature unless you need to have a key repeat rate greater than 30
  879.   repeats per second (the highest rate available from the keyboard).  The
  880.   reason is that some applications rely on the keyboard for key repeat
  881.   interrupts and therefore some compatibility problems may arise.  The
  882.   utility KBRATE allows you to alter your keyboard's key repeat rate
  883.   and delay.
  884.  
  885.  
  886.   3.5      Key Click
  887.  
  888.   When key click is enabled, AutoScript generates a click sound every time
  889.   a key is pressed or repeated, as well as every time a key is "typed" by
  890.   AutoScript while playing a script.  Key click can be turned on or off
  891.   via the Settings window, as well as by the ClickOn and ClickOff
  892.   script commands.  Since many PCs already have their own built-in key
  893.   click, the default setting in Off.  If you want key click for keys
  894.   "typed" by AutoScript, you must turn this feature on.
  895.   
  896.                                      15
  897.  
  898.  
  899.   3.6      Blanking The Screen
  900.  
  901.   When the screen blanking feature is enabled, AutoScript will blank the
  902.   PC's screen after the specified amount of idle time has elapsed, or when
  903.   the blank screen hot key is pressed.  The screen blank timeout and hot
  904.   key can be set via the Settings window.  You can also specify whether or
  905.   not the screen should be unblanked when the BIOS writes data to video
  906.   memory.  After the screen has been blanked, AutoScript will unblank it
  907.   upon any keypress.  The screen can also be blanked and unblanked by the
  908.   BlankScrn and UnblankScrn script commands.
  909.  
  910.  
  911.   3.7      Locking The Keyboard
  912.  
  913.   When the keyboard is locked, AutoScript prevents all keystrokes from
  914.   reaching the foreground process.  Even keystrokes which cause BIOS
  915.   actions, such as Print Screen, Ctrl-Alt-Delete, and Ctrl-C, are
  916.   disabled.  Also disabled are changes in the Caps Lock, Num Lock, and
  917.   Scroll Lock states.  If Beep is enabled (in the Settings window),
  918.   AutoScript will generate a beep in response to every keypress when the
  919.   keyboard is locked.
  920.  
  921.   The keyboard can be locked by either choosing the Lock Keyboard
  922.   action in the Actions window, or by a LockKbd script command.  When
  923.   you lock the keyboard using the Lock Keyboard action, you will be
  924.   prompted to enter a password.  The password may be between 1 an 10
  925.   characters in length, and may contain any combination of numbers and
  926.   letters, as well as any other characters which can be typed without the
  927.   help of the Shift, Ctrl, or Alt keys.  No distinction is made between
  928.   upper and lower-case letters.  For example:
  929.  
  930.       ABC=123    is a valid password, whereas
  931.       ABC*?      is not a valid password.
  932.  
  933.   When the keyboard is locked with a LockKbd script command, a NULL
  934.   password (ie. a string with length 0) is also allowed.
  935.  
  936.   The keyboard can be unlocked either by typing the password, or by the
  937.   UnlockKbd script command.  If a NULL password is given, the keyboard
  938.   will remain locked until an UnlockKbd command is executed.
  939.  
  940.  
  941.   3.8      Saving/Displaying Text Screens
  942.  
  943.   AutoScript allows you to save any text-mode screen to a file, and to
  944.   display saved screens.  When AutoScript saves a screen, it saves the
  945.   video mode, the cursor size and location, the number of rows of text, as
  946.   well as all of the characters and attributes on the screen.  The screen
  947.   can be saved either by choosing the Save Screen action in the
  948.   Actions window, or by a SaveScrn script command.  When you choose
  949.   the Save Screen action, you will be prompted to enter a file name.  If
  950.   you choose this action while in Record mode, a SaveScrn command will be
  951.   inserted in the script being recorded.
  952.  
  953.   Saved screens can be displayed, either by choosing the Display
  954.   Screen action in the Actions window, or by a DisplScrn script
  955.   command.  When you choose the Display Screen action, you will be
  956.   prompted to enter a file name.  AutoScript will automatically set the PC
  957.   to appropriate video mode, fill the screen, and display the cursor as it
  958.   was in the saved screen.
  959.   
  960.                                      16
  961.  
  962.  
  963.   3.9      Copying Screen Text to a File
  964.  
  965.   AutoScript allows you to copy some or all of the text on a text-mode
  966.   screen to a file.  The resulting file will be an ordinary text file with
  967.   a newline character pair (ie. 0Dh, 0Ah) at the end of each line.  Using
  968.   this in conjunction with the Stuff Text File feature, you have the
  969.   ability to "cut and paste" text between applications.
  970.  
  971.   You can copy screen text either by choosing the Copy Screen Text
  972.   action in the Actions window, or by a CopyScrnTxt script command.
  973.   When you choose the Copy Screen Text action, a block of a different
  974.   color will appear in the upper-left corner of the screen.  Using the
  975.   arrow and Tab keys, position the block on the upper-left corner of the
  976.   block of text which you wish to copy.  Next, press the Spacebar, and
  977.   then extend the highlighted area, using the arrow and Tab keys, to cover
  978.   the entire block of text, and press Enter.  You will then be prompted to
  979.   enter a file name.  Pressing Escape at any time during this process will
  980.   terminate this action.  If you choose this action while in Record mode,
  981.   a CopyScrnTxt command will be inserted in the script being recorded.
  982.  
  983.  
  984.   3.10     Printing Screen Text
  985.  
  986.   Similar to the copy screen text feature, AutoScript also allows you to
  987.   send a block of text on a text screen to your printer.  You can do this
  988.   either by choosing the Print Screen Text action in the Actions
  989.   window, or by a PrntScrnTxt script command.  The procedure for
  990.   selecting the text to be printed is the same as that for copying screen
  991.   text.    If you choose this action while in Record mode, a PrntScrnTxt
  992.   command will be inserted in the script being recorded.
  993.  
  994.  
  995.   3.11     Stuffing Text Files
  996.  
  997.   AutoScript allows you to stuff the contents of any text file into the
  998.   keyboard buffer.  All characters in the file above 01Fh are stuffed into
  999.   the buffer, as are the HT (0Bh) and CR (0Dh) characters.  All other
  1000.   characters are ignored.  When used in conjunction with the copy screen
  1001.   text feature, this feature allows you to "cut and paste" between
  1002.   applications.
  1003.  
  1004.   You may stuff a text file either by choosing the Stuff Text File
  1005.   action in the Actions window, or by a StuffTxtFile script command.
  1006.   If you choose this action while in Record mode, a StuffTxtFile command
  1007.   will be inserted in the script being recorded.
  1008.  
  1009.   While stuffing a text file, AutoScript behaves in much the same way as
  1010.   it does when playing a script.  Therefore, the maximum play speed
  1011.   setting affects the speed at which the file is stuffed, and single-step
  1012.   mode can be used.  Also, AutoScript will not lose any characters of the
  1013.   file being stuffed because the application is not ready to accept them
  1014.   (ie. the keyboard buffer is full).  Instead, it will keep trying to
  1015.   stuff each character until it is accepted.
  1016.   
  1017.                                      17
  1018.  
  1019.  
  1020.   3.12     Incremental File Names
  1021.  
  1022.   For the save screen, copy screen text, and save data features,
  1023.   AutoScript allows you to provide file names containing one or more
  1024.   consecutive question marks.  When AutoScript encounters a file name for
  1025.   one of these three feature containing question marks, it replaces the
  1026.   question marks with a number.  Each subsequent time a file name
  1027.   containing question marks is encountered, the number is incremented.
  1028.   The numbering begins with 0, and the number is padded with 0s to replace
  1029.   all of the question marks.  Separate file numbers are stored for each of
  1030.   the three features, and these numbers are reset to zero each time
  1031.   a script is recorded.  The maximum size of the numbers depends on the
  1032.   number of consecutive question marks included in the file name.  This
  1033.   feature allows, for example, a script being played to create numerous
  1034.   files, each with a unique name, with only one command included in a loop.
  1035.  
  1036.   As an example, if your script contains several commands to save the
  1037.   screen to a file with its name given as "SCRN???.SAV", the files created
  1038.   will be named "SCRN000.SAV", "SCRN001.SAV", "SCRN002.SAV", and so on.
  1039.  
  1040.  
  1041.   3.13     Recording Scripts
  1042.  
  1043.   Scripts can be created by running AutoScript in Record mode.  In
  1044.   this mode, all keystrokes and most actions are recorded in a script.
  1045.   You can enter Record mode either loading AutoScript with the /r
  1046.   command-line option, or by pressing the Record hot key after AutoScript
  1047.   is loaded.
  1048.  
  1049.   To begin recording via the command-line, load AutoScript by typing: "AS
  1050.   /rfilename [/d] [/k]" at the DOS prompt, where filename is the name of
  1051.   the script file to be created, and "/d" and "/k" are optional, depending
  1052.   on whether you want AutoScript to record delays and/or keyboard status
  1053.   changes (see the next section).  If AutoScript was already loaded, this
  1054.   command will have no effect.  Once AutoScript has finished loading
  1055.   itself, it will immediately enter Record mode.  If Beep is enabled,
  1056.   AutoScript will beep to inform you that it has begun recording.
  1057.  
  1058.   To begin recording while AutoScript is loaded, press the Record
  1059.   Script hot key.  The default setting is Ctrl-1, but it can be changed
  1060.   via the Settings window.  AutoScript will prompt you to enter a script
  1061.   name, a unique hot key for playing back the script, a description, and
  1062.   whether or not delays and keyboard status changes should be recorded.
  1063.   The script name must be a legal DOS file name.  Filling in the other
  1064.   fields is optional.  To assign the script a hot key, press the desired
  1065.   key combination at the Key field.  Any key combination will be accepted,
  1066.   except for Enter, Ctrl-Enter, Esc, Ctrl, LShift, RShift, and Alt.  To
  1067.   bypass the Key field, press Enter.  The Description field can be filled
  1068.   with any text.  This text will be stored as a comment at the beginning
  1069.   of the script.  The Record Delays and Record Kbd Stat Changes
  1070.   fields control whether or not delays and/or keyboard status changes will
  1071.   be recorded (see the next section).  To check these fields, use the
  1072.   Spacebar.  To uncheck these fields, press Delete.  To begin recording,
  1073.   press Enter at the last field or Ctrl-Enter at any field.  To exit
  1074.   without recording, press Esc.  When you exit this window by pressing
  1075.   Enter or Ctrl-Enter, AutoScript will immediately enter Record mode.  If
  1076.   Beep is enabled, AutoScript will beep to inform you that it has begun
  1077.   recording.
  1078.   
  1079.                                      18
  1080.  
  1081.  
  1082.   When you have finished recording, press the Stop Record/Play hot key
  1083.   combination.  The default setting is Ctrl-3.  If Beep is enabled,
  1084.   AutoScript will beep to inform you that it has terminated recording.
  1085.   AutoScript will then save the script to a file, and return to the
  1086.   default mode.
  1087.  
  1088.  
  1089.   3.13.1   Recording Keystroke Delays and Keyboard Status Changes
  1090.  
  1091.   When recording a script, you have the options of recording the delays
  1092.   between keystrokes and/or commands and changes in the keyboard status.
  1093.   When recording delays is enabled, AutoScript will automatically record
  1094.   the time elapsed between keystrokes and commands by inserting the
  1095.   appropriate Delay commands into the script.  Time elapsed while in a
  1096.   pop-up window (eg. the Actions window) is not included in the recorded
  1097.   delays.
  1098.  
  1099.   Recording delays is useful for preserving the time relationships between
  1100.   various keystrokes which will cause the playback to appear more natural,
  1101.   as if someone were actually typing at the keyboard.  Recording the time
  1102.   delays also may help insure that keystrokes are not lost by the
  1103.   application being run by AutoScript.  Although AutoScript will not lose
  1104.   any keystrokes during playback (ie. if the keyboard buffer is full,
  1105.   AutoScript will keep trying to push the keystroke into the PC's keyboard
  1106.   buffer until it is successful), some applications discard keystrokes
  1107.   which they are not ready to process.
  1108.  
  1109.   Recording keyboard status changes means that AutoScript will record the
  1110.   changes in keyboard status which result from every press and release of
  1111.   the Ctrl, Alt, and Shift keys, as well as the state changes in the Caps
  1112.   Lock, Num Lock, and Scroll Lock states.  It is only necessary to record
  1113.   these changes when the application being run during playback actually
  1114.   uses this information.  Recording or not recording these keyboard status
  1115.   changes has no effect on the keys actually recorded.  For example, if an
  1116.   uppercase "G" is typed, a "G" will be recorded even if the keyboard
  1117.   status change (ie. the pressing of the Shift or Caps Lock keys) is not.
  1118.  
  1119.  
  1120.   3.13.2   Inserting Comments
  1121.  
  1122.   At any time while recording a script, a comment may be entered into the
  1123.   script by choosing the Add Comment action in the Actions window.  You
  1124.   will be prompted to enter the text of the comment.  Any text can be
  1125.   typed on the prompt line.
  1126.   
  1127.   
  1128.   3.13.3   Inserting Other Commands
  1129.   
  1130.   While in Record mode, several actions in the Actions window have effects
  1131.   on the script being recorded.  Choosing the Delays On/Off action causes
  1132.   AutoScript to start or stop recording the delays between keystrokes.
  1133.   This feature may be useful when only certain keystrokes in the script
  1134.   are time-critical.  In such a case, you might begin recording with the
  1135.   record delays option off, turn it on for a few keystrokes, and then turn
  1136.   it off again.
  1137.  
  1138.   The Save Screen, Display Screen, Copy Screen Text, Print Screen Text,
  1139.   and Stuff Text File actions also result in the corresponding commands
  1140.   being inserted into the script.
  1141.   
  1142.                                      19
  1143.  
  1144.  
  1145.   Pressing Ctrl-C, Ctrl-Break, Pause, Print Screen, and SysRq while in
  1146.   Record mode will cause AutoScript to record the corresponding command.
  1147.   Pressing a key after the Pause key will cause AutoScript to record an
  1148.   Unpause command.
  1149.  
  1150.   You may also enter any other commands into the script by choosing the
  1151.   Add Command action, and typing a command line as you would include in a
  1152.   text file being submitted to the script compiler.  See Chapter 5 for
  1153.   descriptions of the script commands.
  1154.  
  1155.  
  1156.   3.14     Appending Scripts
  1157.  
  1158.   You may add to an existing script by choosing the Append Script action
  1159.   in the Actions window.  When you choose this action, you will be
  1160.   prompted for the script name, and whether or not the keystroke delays
  1161.   and keyboard status changes are to be recorded.  This prompt window
  1162.   works the same as the Record Script window, except that it does not
  1163.   contain fields for a hot key or description.  When you exit this window,
  1164.   AutoScript will enter Record mode, and append recorded keystrokes and
  1165.   commands to the end of the specified script.
  1166.  
  1167.  
  1168.   3.15     Playing Scripts
  1169.  
  1170.   Scripts can be played by loading AutoScript with the /p command-line
  1171.   option, or once AutoScript is loaded, by either  pressing the Play
  1172.   Script hot key combination, and entering the script file name on the
  1173.   prompt line, or by pressing the hot key for the particular script, if
  1174.   one has been assigned.  If you edit the last script played via its own
  1175.   hot key, you must reload the script using the Play Script hot key (or
  1176.   play or record another script) before pressing its hot key again.  The
  1177.   reason for this is that AutoScript stores the last script played in its
  1178.   internal memory, and will be unaware that changes have occurred to the
  1179.   script since it was stored.  If Beep is enabled when a script is played,
  1180.   AutoScript will beep to indicate that it has entered Play mode.
  1181.  
  1182.  
  1183.   3.15.1   Pausing Play
  1184.  
  1185.   While AutoScript is playing a script, you can pause play by pressing the
  1186.   Pause Play hot key combination.  The default setting is Ctrl-LShift.
  1187.   When this key is pressed, script play will stop, and will not resume
  1188.   until either the unpause key is pressed or an action is done.  The
  1189.   unpause key is the same as the pause key, but without the modifier.  The
  1190.   default unpause key therefore is LShift.
  1191.  
  1192.  
  1193.   3.15.2   Changing Settings During Play
  1194.  
  1195.   During script play you can change settings.  The Settings pop-up window
  1196.   is brought up the same way as it is in Interactive mode.  When the
  1197.   window is brought up, play is automatically paused.  Any changes to
  1198.   settings which affect script play, such as maximum play speed, will take
  1199.   effect immediately after play is resumed.
  1200.   
  1201.                                      20
  1202.  
  1203.   3.15.3   Single-Stepping
  1204.  
  1205.   While in playing a script, you can put AutoScript into single-step mode.
  1206.   In single-step mode, AutoScript plays scripts one keystroke at a time,
  1207.   pausing each time a keystroke is encountered in the script, and
  1208.   advancing as the step key is pressed.  Imbedded delays within the script
  1209.   are ignored, and script commands are executed immediately as they are
  1210.   encountered.  This mode is useful for software testing.  To turn on
  1211.   single-step mode, choose the Single-Step On action in the Actions
  1212.   window.  When you choose this action, you will be prompted to press the
  1213.   key which you want to be the step key.  Any single key (without a
  1214.   modifier) except Esc is valid.  However, if the Alt key is pressed,
  1215.   AutoScript will set the step key to ANYKEY, which means that all keys
  1216.   will act as the step key.  To turn off single-step mode, choose the
  1217.   Single-Step Off action.  Single-stepping can also be turned on and
  1218.   off by the SingStepOn and SingStepOff script commands.
  1219.  
  1220.  
  1221.   3.15.4   Locking Keyboard During Play
  1222.  
  1223.   While playing a script, you can lock the keyboard just as you can in
  1224.   Interactive mode.  Script play will continue as normal, with the
  1225.   exception that WaitForString commands in the script will be ignored.
  1226.  
  1227.  
  1228.   3.15.5   Using Text Files as Scripts
  1229.  
  1230.   You can provide the name of an ordinary ASCII text file anywhere a
  1231.   script file name is required.  If you do this, AutoScript will stuff the
  1232.   contents of the file into the keyboard buffer as it does in the stuff
  1233.   text file feature.
  1234.  
  1235.  
  1236.   3.16    Assigning Script Play Hot Keys
  1237.  
  1238.   AutoScript lets you assign up to 10 hot keys for playing individual
  1239.   scripts.  When you press one of these hot keys in Interactive mode,
  1240.   AutoScript will immediately begin playing the script assigned to it.  A
  1241.   hot key can be assigned to a script at the time the script is recorded
  1242.   by pressing the desired key at the Key prompt in the Record Script
  1243.   prompt window, or at any other time AutoScript is in Interactive mode,
  1244.   via the Edit SP Keys window.
  1245.  
  1246.   To bring up the Edit SP Keys window, choose the Edit SP Keys action in
  1247.   the Actions window.  Move the cursor to the desired field using the up
  1248.   and down arrow keys.  To assign or change a hot key, press Enter at the
  1249.   Key prompt, followed by the desired key combination. Pressing Enter
  1250.   again will assign no hot key to the script.  In this way, you can remove
  1251.   key assignments.  The key combinations: Esc, Ctrl-Enter, Ctrl, Shift,
  1252.   and Alt are not accepted as hot key assignments.  When entering a script
  1253.   file name, you should provide the full path specification so that
  1254.   AutoScript will be able to find the file regardless of the current
  1255.   directory.  To save your changes, press Ctrl-Enter, and to quit without
  1256.   saving changes, press Esc.
  1257.   
  1258.                                      21
  1259.  
  1260.  
  1261.   3.17     Batch Mode
  1262.  
  1263.   AutoScript provides a useful batch mode feature.  This feature allows
  1264.   you to submit to AutoScript a list, in the form of a batch file, of one
  1265.   or more scripts to be played at later times and/or dates.  An unlimited
  1266.   number of scripts can be specified, and each script can be given a
  1267.   different date and time.  Dates can be specified up to a month in
  1268.   advance.  In addition, you can have AutoScript play a particular script
  1269.   at the specified time, regardless of the date, by typing "**" in place
  1270.   of the date.  You can also "chain" scripts so that they will be played
  1271.   one immediately after another.  For each batch script which you want to
  1272.   be played immediately following the termination of previous script,
  1273.   place a plus sign "+" in the first column of the line containing the
  1274.   name of that script.
  1275.  
  1276.   The format of the batch file is as follows:
  1277.  
  1278.       dd-hh:mm:ss script file name 1
  1279.       dd-hh:mm:ss script file name 2
  1280.           :    :
  1281.       dd-hh:mm:ss script file name n  (n is limited only by disk capacity)
  1282.  
  1283.   In the above description, dd represents the day of the month (1-31), hh,
  1284.   mm, and ss are the time of day in hours, minutes, and seconds,
  1285.   respectively, expressed in 24-hour format, and script file name is the
  1286.   name of the script file.  You should include a complete path
  1287.   description, including the disk drive letter.  The characters separating
  1288.   the dd, hh, mm, ss, and file name fields can be any character, providing
  1289.   that exactly one character separates each field.  The script file names
  1290.   must begin in the 13th column of each line.   To make AutoScript play a
  1291.   script at the same time every day, place "**" in the date field.  To
  1292.   "chain" a script to the previous script, place "+" in the first column,
  1293.   instead of the date and time.  For example, a file which looks like
  1294.   this:
  1295.  
  1296.       21-13:27:00 script1.scr
  1297.       21-22:00:00 script2.scr
  1298.       +           script3.scr
  1299.       +           script4.scr
  1300.       **-23:45:33 script5.scr
  1301.  
  1302.   will cause AuoScript to play "script1.scr" at 1:27 PM on the 21st of the
  1303.   month, "script2.scr" at 10:00 PM on the same day, "script3.scr"
  1304.   immediately after "script2.scr" finishes, and "script4.scr" immediately
  1305.   after "script3.scr".  "script5.scr" will be played at 11:45:33 PM every
  1306.   day that AutoScript is loaded with this batch file.
  1307.  
  1308.   AutoScript can be placed in batch mode, either by using the /b
  1309.   command-line option, followed by the batch file name, or by entering a
  1310.   batch file name on the appropriate line in the Settings window.  At any
  1311.   time AutoScript is loaded, the batch file name can be entered or changed
  1312.   in the Settings window.  While AutoScript is in batch mode, it behaves
  1313.   exactly as it does when not in batch mode, except that the scripts are
  1314.   played at the specified times.  If AutoScript is in Play or Record mode
  1315.   when the time arrives to play a batch script, it will not play the batch
  1316.   script immediately.  Instead, it will wait up to 59 minutes to return to
  1317.   Standby or Interactive mode, and then play the batch script.
  1318.   
  1319.                                      22
  1320.  
  1321.  
  1322.   To take AutoScript out of batch mode withou unloading, delete the batch
  1323.   file name in the Settings window.
  1324.  
  1325.  
  1326.   3.18     Unloading AutoScript
  1327.  
  1328.   There are three ways to unload AutoScript: via the DOS command line,
  1329.   by the Unload action in the Actions window, and by an Unload script
  1330.   command.
  1331.  
  1332.   To unload AutoScript via the DOS command line, at the DOS prompt (not
  1333.   from a DOS shell within another application) type:
  1334.  
  1335.       AS /u <Enter>.
  1336.  
  1337.   AutoScript will try to unhook the interrupts which it was using, and if
  1338.   successful, it will free its memory.  If any of the interrupts were
  1339.   hooked by another program, AutoScript will be unable to unload itself,
  1340.   but will instead, deactivate itself and remain in memory.  When trying
  1341.   to unload AutoScript via the DOS command-line,  AutoScript will respond
  1342.   in such a situation with the message:
  1343.  
  1344.       "Unable to unload",
  1345.  
  1346.  
  1347.   Once AutoScript has been deactivated, it will ignore all hot keys, and
  1348.   all features will be disabled.  It will then be removable only via the
  1349.   DOS command-line.  To remove AutoScript, first remove all TSRs which
  1350.   were loaded after it, as well as any applications which have hooked the
  1351.   interrupts.
  1352.  
  1353.  
  1354.   Chapter 4    Creating Scripts With a Text Editor
  1355.  
  1356.   Scripts can be created and edited using any text editor.  The resultant
  1357.   text file is then converted into a binary script file using the
  1358.   AutoScript script compiler (AC.EXE).  Binary script files can be
  1359.   converted to ASCII text files with the AutoScript script uncompiler
  1360.   (AUC.EXE).
  1361.  
  1362.   Text files submitted to the script compiler may contain the following
  1363.   elements:  line comments, block comments, commands, conditions, and
  1364.   keystrokes.  The following sections describe each of these elements.
  1365.  
  1366.  
  1367.   4.1      Line and Block Comments
  1368.  
  1369.   Line and block comments are ignored by the script compiler, and
  1370.   therefore do not appear in the output script file.  They should not be
  1371.   confused with script Comment commands which are actually contained
  1372.   within the binary script file, but are ignored by AutoScript during
  1373.   script play.  Line comments are delimited by a semicolon.  The script
  1374.   compiler will ignore all characters following a semicolon until the
  1375.   beginning of a new line.  Block comments are delimited by forward slash
  1376.   "/" characters at the beginning and end of the comment.  The compiler
  1377.   will ignore all characters between two block comment delimiters.  Line
  1378.   and block comments may not occur within a command statement or a
  1379.   keystroke string.
  1380.   
  1381.                                      23
  1382.  
  1383.  
  1384.   4.2      Commands and Conditions
  1385.  
  1386.   Script commands and conditions may appear in either upper or lower-case
  1387.   (or a mixture thereof), and may appear more than one per line, providing
  1388.   they are separated by at least one white-space character (ie. space,
  1389.   tab, or newline), and do not appear within a keystroke string.  A wide
  1390.   variety of features are provided by the script commands.  Condition
  1391.   checks provide for conditional branching capability within a script.
  1392.   Chapter 5 describes all of the AutoScript script commands and
  1393.   conditions.
  1394.  
  1395.  
  1396.   4.3      Keystrokes
  1397.  
  1398.   Text files submitted to the script compiler can also contain keystrokes.
  1399.   A keystroke can be any ASCII character (including both upper and
  1400.   lower-case letters), as well as keys such as F1, F2, Enter, Home, etc..
  1401.   Some keystrokes may be prefixed by "Alt-", "Ctrl-", or "Shft-".
  1402.   Keystrokes which are not defined by a single character, such as "Enter"
  1403.   or "Alt-A", must be enclosed in brackets "< >".  These keystrokes
  1404.   represent a word consisting of an ASCII byte and a keyboard scan code
  1405.   byte, and are what are actually placed in the PC's BIOS keyboard buffer
  1406.   during script play, and read by the application program.  Do not confuse
  1407.   these keystrokes with hot keys and the key names which are given as
  1408.   arguments for some script commands.  Those keys represent the code bytes
  1409.   which are produced by the keyboard when particular keys are pressed, and
  1410.   may or may not correspond to words placed in the BIOS keyboard buffer.
  1411.  
  1412.   Table 4-1 lists the multi-character names to be used for keystrokes.
  1413.   Keystroke names which begin with "KP" refer the numeric keypad keys.  To
  1414.   include keystrokes in the script, type a string of keystrokes, enclosed
  1415.   in quotes.  The keystrokes \, ", and < must be preceded by a backslash \
  1416.   character.  A typical line in a text script file might look like this:
  1417.  
  1418.   "EDIT A:\\MYFILE.SCA<Enter><F1><Esc><Alt-F><DArrow><DArrow><Enter>"
  1419.  
  1420.  
  1421.     ╔═════════════════════════════════════════════════════════════════╗
  1422.     ║ F1       F2       F3       F4       F5       F6       F7        ║
  1423.     ║ F8       F9       F10      F11      F12      Esc      Bs        ║
  1424.     ║ Tab      Enter    Space    Ins      Del      Home     End       ║
  1425.     ║ PgUp     PgDn     LArrow   UArrow   DArrow   RArrow   KP/       ║
  1426.     ║ KP*      KP-      KP+      KP1      KP2      KP3      KP4       ║
  1427.     ║ KP5      KP6      KP7      KP8      KP9      KP0      KPHome    ║
  1428.     ║ KPUArrow KPPgDn   KPLArrow KPRArrow KPEnd    KPDArrow KPPgDn    ║
  1429.     ║ KPIns    KPDel    KPEnter                                       ║
  1430.     ╚═════════════════════════════════════════════════════════════════╝
  1431.                         Table 4-1 - Keystrokes
  1432.   
  1433.                                      24
  1434.  
  1435.  
  1436.   Chapter 5    Command and Condition Descriptions
  1437.  
  1438.   This chapter describes the syntax and usage of the script commands and
  1439.   conditions.  The syntax for a given command or condition is the same
  1440.   whether it is included in a text file to be compiled by the script
  1441.   compiler, or entered in the Add Command window during script recording.
  1442.  
  1443.   In the following descriptions, anywhere that a number is required as an
  1444.   argument, it may be specified in either decimal of hexadecimal format.
  1445.   hexadecimal numbers are distinguished by a "h" as their last character.
  1446.   For example: the number: "103" is equivalent to "67h".  Whenever a
  1447.   string argument needs to contain the characters " or \, the character
  1448.   must be preceded by a backslash.  Therefore, to include a quotation
  1449.   mark, you would type \", and to include a backslash, you would type \\.
  1450.  
  1451.  
  1452.   5.1      Commands
  1453.  
  1454.   Command:   Alarm
  1455.  
  1456.   Purpose:   Pauses play and produces an alarm sound which persists until
  1457.              a key is pressed.  Play will remain paused until the unpause
  1458.              key is pressed.  The unpause key is the same as the Pause Play
  1459.              hot key without a modifier.
  1460.  
  1461.   Syntax:    Alarm
  1462.  
  1463.   Example:   If Not DataStrR(0,124h,"abcdef")
  1464.              Alarm
  1465.   ────────────────────────────────────────────────────────────────────────
  1466.  
  1467.  
  1468.   Command:   And
  1469.  
  1470.   Purpose:   Used between two conditions.  "AND"s the results of the
  1471.              conditions.
  1472.  
  1473.   Syntax:    And
  1474.  
  1475.   Example:   If DataStrR(0,124h,"abcdef") And DataByteR(0,136h,a6h)
  1476.              Log("Both string and byte match")
  1477.  
  1478.   See Also:  Else, If, Not, Or
  1479.   ────────────────────────────────────────────────────────────────────────
  1480.  
  1481.  
  1482.   Command:   Beep
  1483.  
  1484.   Purpose:   Generates a short beep.
  1485.  
  1486.   Syntax:    Beep
  1487.  
  1488.   See Also:  Tone
  1489.   ────────────────────────────────────────────────────────────────────────
  1490.   
  1491.                                      25
  1492.  
  1493.  
  1494.  
  1495.   Command:   BeginBlock
  1496.  
  1497.   Purpose:   Denotes the beginning of a block.  When used in conjunction
  1498.              with conditions, if the condition is true, the commands
  1499.              within the block are executed.  If the condition is false,
  1500.              the entire block is skipped.  Blocks and loops may be nested
  1501.              up to 10 levels deep.
  1502.  
  1503.   Syntax:    BeginBlock
  1504.  
  1505.   Example:   If DataStrR(0,124h,"abcdef")
  1506.              BeginBlock
  1507.              Beep
  1508.              Log("String matched")
  1509.              EndBlock
  1510.  
  1511.   See Also:  EndBlock, EscapeBlock, BeginLoop, EndLoop, EscapeLoop
  1512.   ────────────────────────────────────────────────────────────────────────
  1513.  
  1514.  
  1515.   Command:   BeginLoop
  1516.  
  1517.   Purpose:   Denotes the beginning of a loop.  Loops are similar to
  1518.              blocks, except that the commands contained within a loop may
  1519.              be repeated a number of times.  If a loop immediately
  1520.              follows a condition, the entire loop is skipped if the
  1521.              condition is false.  Loops and blocks may be nested up to 10
  1522.              levels deep.
  1523.  
  1524.   Syntax:    BeginLoop(NumRepeats)
  1525.              NumRepeats:      number between 1 and 65535.  A value of
  1526.                               65535 (ffh) will cause an infinite loop.
  1527.  
  1528.   Example:   BeginLoop(793)     do this loop 793 times
  1529.              "This is another iteration of the loop."
  1530.              Log("Looped again.")
  1531.              EndLoop
  1532.  
  1533.   See Also:  BeginBlock, EndBlock, EscapeBlock, EndLoop, EscapeLoop
  1534.   ────────────────────────────────────────────────────────────────────────
  1535.  
  1536.  
  1537.   Command:   BlankScrn
  1538.  
  1539.   Purpose:   Blanks the PC's screen.
  1540.  
  1541.   Syntax:    BlankScrn
  1542.  
  1543.   See Also:  UnblankScrn
  1544.   ────────────────────────────────────────────────────────────────────────
  1545.   
  1546.                                      26
  1547.  
  1548.  
  1549.   Command:   ClickOff
  1550.  
  1551.   Purpose:   Turns off key click.
  1552.  
  1553.   Syntax:    ClickOff
  1554.  
  1555.   See Also:  ClickOn
  1556.   ────────────────────────────────────────────────────────────────────────
  1557.  
  1558.  
  1559.   Command:   ClickOn
  1560.  
  1561.   Purpose:   Turns on key click.
  1562.  
  1563.   Syntax:    ClickOn
  1564.  
  1565.   See Also:  ClickOff
  1566.   ────────────────────────────────────────────────────────────────────────
  1567.  
  1568.   Command:   ClrScrn
  1569.  
  1570.   Purpose:   Clears the PC's screen and video memory.
  1571.  
  1572.   Syntax:    ClrScrn
  1573.   ────────────────────────────────────────────────────────────────────────
  1574.  
  1575.   Command:   Comment
  1576.  
  1577.   Purpose:   Denotes a script comment.
  1578.  
  1579.   Syntax:    Comment(TheComment)
  1580.              TheComment:      a text string, up to 60 characters in
  1581.                               length, enclosed in quotes.
  1582.  
  1583.   Example:   Comment("This is a comment")
  1584.   ────────────────────────────────────────────────────────────────────────
  1585.  
  1586.  
  1587.   Command:   CopyScrnTxt
  1588.  
  1589.   Purpose:   Copies the text from the specified region of a text screen
  1590.              to a file.
  1591.  
  1592.   Syntax:    CopyScrnTxt(TopRow,LeftCol,BottomRow,RightCol,Filename)
  1593.              TopRow,LeftCol,BottomRow,RightCol:
  1594.                               the top-left and bottom-right coordinates
  1595.                               of the text to copy.  Row/column numbering
  1596.                               starts at 0,0.
  1597.              Filename:        the name of the file to which the text is
  1598.                               to be saved, enclosed in quotes.
  1599.  
  1600.   Example:   CopyScrnTxt(0,0,24,79,"screen.sav") copy all text on scrn
  1601.  
  1602.   See Also:  PrntScrnTxt, SaveScrn
  1603.   ────────────────────────────────────────────────────────────────────────
  1604.   
  1605.                                      27
  1606.  
  1607.  
  1608.   Command:   CtrlBreak
  1609.  
  1610.   Purpose:   Has the same affect as pressing Ctrl-Break on the keyboard.
  1611.  
  1612.   Syntax:    CtrlBreak
  1613.   ────────────────────────────────────────────────────────────────────────
  1614.  
  1615.  
  1616.   Command:   CtrlC
  1617.  
  1618.   Purpose:   Has the same affect as pressing Ctrl-C on the keyboard.
  1619.  
  1620.   Syntax:    CtrlC
  1621.   ────────────────────────────────────────────────────────────────────────
  1622.  
  1623.  
  1624.   Command:   Delay
  1625.  
  1626.   Purpose:   Delays script play for a specified number of clock ticks.
  1627.              A clock tick is approximately 1/18th of a second.
  1628.  
  1629.   Syntax:    Delay(NumTicks)
  1630.              NumTicks:        the number of clock ticks to wait.
  1631.  
  1632.   Example:   Delay(18)   ;wait about 1 second
  1633.  
  1634.   See Also:  PausePlay, WaitForString, WaitUntil
  1635.   ────────────────────────────────────────────────────────────────────────
  1636.  
  1637.  
  1638.   Command:   DelFile
  1639.  
  1640.   Purpose:   Deletes the specified file.
  1641.  
  1642.   Syntax:    DelFile(Filename)
  1643.  
  1644.   Filename:  the name of the file to delete, enclosed in quotes.
  1645.  
  1646.   Example:   DelFile("C:\\files\\afile.abc")
  1647.   ────────────────────────────────────────────────────────────────────────
  1648.  
  1649.  
  1650.   Command:   DisableKey
  1651.  
  1652.   Purpose:   Disables the specified key.  When you have specified one or
  1653.              more keys to be disabled, AutoScript causes the disabled
  1654.              key(s) to be missed by the foreground process.  If you
  1655.              specify one or more keys to be enabled (with the EnableKey
  1656.              command), AutoScript causes all but the enabled key(s) to be
  1657.              missed by the foreground process.  You can enable or disable
  1658.              up to a total of 20 keys.  If no keys are yet enabled or
  1659.              disabled when this command is encountered, AutoScript will
  1660.              be set to disable the specified key.  If AutoScript has
  1661.              already been set to enable one or more keys, and the
  1662.              specified key is in the key list, it will be removed from the
  1663.              list.  If the key is not in the list, the list will be
  1664.              cleared, and AutoScript will be set to disable the specified
  1665.              key.  If AutoScript is already set to disable one or more
  1666.   
  1667.                                      28
  1668.  
  1669.  
  1670.              keys when this command is encountered, and the specified key
  1671.              is not already in the list, it will be added to the list.
  1672.  
  1673.   Syntax:    DisableKey(Key)
  1674.              Key:             one of the keys as listed in Table 5-1.
  1675.  
  1676.   Example:   DisableKey(Tab)   disable the Tab key
  1677.  
  1678.   See Also:  EnableKey
  1679.   ────────────────────────────────────────────────────────────────────────
  1680.  
  1681.  
  1682.   Command:   DisplScrn
  1683.  
  1684.   Purpose:   Displays a text screen which was previously saved.
  1685.  
  1686.   Syntax:    DisplScrn(Filename)
  1687.              Filename:  the name of the screen file, enclosed in quotes.
  1688.  
  1689.   See Also:  SaveScrn
  1690.   ────────────────────────────────────────────────────────────────────────
  1691.  
  1692.  
  1693.   Command:   Else
  1694.  
  1695.   Purpose:   Used after a condition.  If the condition was true, the
  1696.              following command, keystroke, block, or loop will be skipped.
  1697.              If the condition was false, the following command, keystroke,
  1698.              block, or loop will be executed.
  1699.  
  1700.   Syntax:    Else
  1701.  
  1702.   Example:   If DataStrR(0,124h,"abcdef")
  1703.              Log("String matched")
  1704.              Else
  1705.              Log("String not matched")
  1706.  
  1707.   See Also:  And, If, Not, Or
  1708.   ────────────────────────────────────────────────────────────────────────
  1709.  
  1710.  
  1711.   Command:   EnableBlink
  1712.  
  1713.   Purpose:   Enables blinking or background intensity for screens
  1714.              subsequently displayed by the DisplScrn command and Display
  1715.              Screen action, on EGA and VGA displays.    When blinking is
  1716.              enabled, and a screen is displayed, any text in the screen
  1717.              which has its blink attribute set will be displayed blinking.
  1718.              When blinking is disabled (bg intensity is enabled), text with
  1719.              its blink attribute set will be displayed with a bright
  1720.              background.
  1721.  
  1722.   Syntax:    EnableBlink(X)
  1723.              X:               0: disable blinking (enable bg intensity).
  1724.                               1: enable blinking
  1725.  
  1726.   See Also:  SetVidMode
  1727.   ────────────────────────────────────────────────────────────────────────
  1728.   
  1729.                                      29
  1730.  
  1731.  
  1732.   Command:   EnableKey
  1733.  
  1734.   Purpose:   Enables the specified key.  When you have specified one or
  1735.              more keys to be enabled, AutoScript causes all but the
  1736.              enabled key(s) to be missed by the foreground process.  If
  1737.              you specify one or more keys to be disabled (with the
  1738.              DisableKey command), AutoScript causes the disabled key(s)
  1739.              to be missed by the foreground process.  You can enable or
  1740.              disable up to a total of 20 keys.  If no keys are yet
  1741.              enabled or disabled when this command is encountered,
  1742.              AutoScript will be set to enable the specified key (and
  1743.              thereby disable all other keys).  If AutoScript has already
  1744.              been set to disable one or more keys, and the specified key
  1745.              is in the key list, it will be removed from the list.  If
  1746.              the key is not in the list, the list will be cleared, and
  1747.              AutoScript will be set to enable the specified key (and
  1748.              thereby disable all other keys).  If AutoScript is already
  1749.              set to enable one or more keys when this command is
  1750.              encountered, and the specified key is not already in the
  1751.              list, it will be added to the list.
  1752.  
  1753.   Syntax:    EnableKey(Key)
  1754.              Key:             one of the keys as listed in Table 5-1.
  1755.  
  1756.   Example:   EnableKey(Enter)   ;disable all keys but the Enter key
  1757.  
  1758.   See Also:  DisableKey
  1759.   ────────────────────────────────────────────────────────────────────────
  1760.  
  1761.  
  1762.   Command:   EndBlock
  1763.  
  1764.   Purpose:   Denotes the end of a block.
  1765.  
  1766.   Syntax:    EndBlock
  1767.  
  1768.   Example:   BeginBlock
  1769.              "some keystrokes"
  1770.              EndBlock
  1771.  
  1772.   See Also:  BeginBlock, EscapeBlock, BeginLoop, EndLoop, EscapeLoop
  1773.   ────────────────────────────────────────────────────────────────────────
  1774.  
  1775.  
  1776.   Command:   EndLoop
  1777.  
  1778.   Purpose:   Denotes the end of a loop.  When this command is encountered,
  1779.              AutoScript will return to the beginning of the loop if there
  1780.              are more iterations left to do.
  1781.  
  1782.   Syntax:    EndLoop
  1783.  
  1784.   Example:   BeginLoop(10)      ;loop 10 times
  1785.                "some keystrokes"
  1786.              EndLoop
  1787.  
  1788.   See Also:  BeginBlock, EndBlock, EscapeBlock, BeginLoop, EscapeLoop
  1789.   ────────────────────────────────────────────────────────────────────────
  1790.   
  1791.                                      30
  1792.  
  1793.  
  1794.   Command:   EscapeBlock
  1795.  
  1796.   Purpose:   When this command is encountered, AutoScript will ignore all
  1797.              commands and keystrokes until the end of the current block.
  1798.  
  1799.   Syntax:    EscapeBlock
  1800.  
  1801.   Example:   BeginBlock
  1802.                "some keystrokes"
  1803.              If DataStrR(0,124h,"abcdef") EscapeBlock
  1804.              "some more keystrokes"
  1805.              EndBlock
  1806.  
  1807.   See Also:  BeginBlock, EscapeBlock, BeginLoop, EndLoop, EscapeLoop
  1808.   ────────────────────────────────────────────────────────────────────────
  1809.  
  1810.  
  1811.   Command:   EscapeLoop
  1812.  
  1813.   Purpose:   When this command is encountered, AutoScript will ignore all
  1814.              commands and keystrokes until the end of the current loop,
  1815.              and no more loop iterations will be done.
  1816.  
  1817.   Syntax:    EscapeLoop
  1818.  
  1819.   Example:   BeginLoop(ffh)
  1820.                If DataByteR(0,123h,6eh) EscapeLoop
  1821.                Log("not finished yet")
  1822.              EndLoop
  1823.              Log("now we're finished")
  1824.  
  1825.   See Also:  BeginBlock, EndBlock, EscapeBlock, BeginLoop, EndLoop
  1826.   ────────────────────────────────────────────────────────────────────────
  1827.  
  1828.  
  1829.   Command:   GenIntr
  1830.  
  1831.   Purpose:   Generates an interrupt.  The values that the registers are
  1832.              to have when the interrupt is generated are set using
  1833.              SetRegister commands.  The values of the registers
  1834.              immediately after the interrupt are saved for use by the
  1835.              Register condition.
  1836.  
  1837.   Syntax:    GenIntr(IntrNum)
  1838.              IntrNum:         the interrupt number.
  1839.  
  1840.   Example:   SetRegister(AH,12h)    ;get video configuration
  1841.              SetRegister(BL,10h)    information
  1842.              Genintr(10h)
  1843.              If Register(BH,0) Log("Color display installed")
  1844.              Else Log("Monochrome Display installed")
  1845.  
  1846.   See Also:  Register, SetRegister
  1847.   ────────────────────────────────────────────────────────────────────────
  1848.   
  1849.                                      31
  1850.  
  1851.  
  1852.   Command:   HideCur
  1853.  
  1854.   Purpose:   Saves the current location and size of the text cursor, and
  1855.              then makes it invisible.
  1856.  
  1857.   Syntax:    HideCur
  1858.  
  1859.   See Also:  ShowCur
  1860.   ────────────────────────────────────────────────────────────────────────
  1861.  
  1862.  
  1863.   Command:   If
  1864.  
  1865.   Purpose:   Precedes a condition.
  1866.  
  1867.   Syntax:    If
  1868.  
  1869.   Example:   If DataStrR(0,124h,"abcdef")
  1870.              Beep
  1871.  
  1872.   See Also:  And, Else, Not, Or
  1873.   ────────────────────────────────────────────────────────────────────────
  1874.  
  1875.  
  1876.   Command:   InsScr
  1877.  
  1878.   Purpose:   Plays the specified script, and then returns to the original
  1879.              script.
  1880.  
  1881.   Syntax:    InsScr(ScriptName)
  1882.              ScriptName:       the name of the script to be played,
  1883.                                enclosed in quotes.
  1884.  
  1885.   Example:   InsScr("A:\\def\\myscript.scr")
  1886.  
  1887.   See Also:  LoadScr
  1888.   ────────────────────────────────────────────────────────────────────────
  1889.  
  1890.  
  1891.   Command:   KbdStatOff
  1892.  
  1893.   Purpose:   Turns off the specified bits in the PC's keyboard status
  1894.              buffer, emulating the release of the Ctrl, Alt, and/or Shift
  1895.              keys, and/or the turning off of the Caps Lock, Num Lock,
  1896.              and/or Scroll Lock states.
  1897.  
  1898.   Syntax:    KbdStatOff(KbdStatDescr)
  1899.              KbdStatDescr:    any combination of the following letters:
  1900.                               A:    Alt key
  1901.                               C:    Ctrl key
  1902.                               S:    Shift key
  1903.                               L:    Left (in conj. with Alt/Ctrl/Shift)
  1904.                               R:    Right (in conj. with Alt/Ctrl/Shift)
  1905.                               N:    Num lock state
  1906.                               O:    Scroll lock state
  1907.                               P:    Caps lock state
  1908.   
  1909.                                      32
  1910.  
  1911.  
  1912.   Example:   KbdStatOff(N)   ;turn off Num lock state
  1913.              KbdStatOn(LA)   ;emulate pressing of left Alt key
  1914.              KbdStatOff(LA)  ;emulate release of left Alt key
  1915.  
  1916.   See Also:  KbdStatOn
  1917.   ────────────────────────────────────────────────────────────────────────
  1918.  
  1919.  
  1920.   Command:   KbdStatOn
  1921.  
  1922.   Purpose:   Turns on the specified bits in the PC's keyboard status
  1923.              buffer, emulating the pressing of the Ctrl, Alt, and/or
  1924.              Shift keys, and/or the turning on of the Caps Lock, Num
  1925.              Lock, and/or Scroll Lock states.
  1926.  
  1927.   Syntax:    KbdStatOn(KbdStatDescr)
  1928.              KbdStatDescr:    as described for KbdStatOff.
  1929.  
  1930.   Example:   KbdStatOn(P)   ;turn on Caps Lock state
  1931.  
  1932.   See Also:  KbdStatOff
  1933.   ────────────────────────────────────────────────────────────────────────
  1934.  
  1935.  
  1936.   Command:   LoadScr
  1937.  
  1938.   Purpose:   Causes AutoScript to play the specified script, and then
  1939.              return to the default mode.  Unlike the InsScr command, it
  1940.              does not cause AutoScript to return to the original script
  1941.              upon completion.
  1942.  
  1943.   Syntax:    LoadScr(ScriptName)
  1944.              ScriptName:      the name of the script to be played,
  1945.                               enclosed in quotes.
  1946.  
  1947.   See Also:  InsScr
  1948.   ────────────────────────────────────────────────────────────────────────
  1949.  
  1950.  
  1951.   Command:   LockKbd
  1952.  
  1953.   Purpose:   Locks the keyboard.
  1954.  
  1955.   Syntax:    LockKbd(Password)
  1956.              Password:        an ASCII string, up to 10 characters in
  1957.                               length, containing any combination of
  1958.                               letters and numbers, as well as any other
  1959.                               characters which can be typed without the
  1960.                               help of the Ctrl, Shift, or Alt keys,
  1961.                               enclosed in quotes.
  1962.  
  1963.   Example:   LockKbd("mypassword")
  1964.  
  1965.   See Also:  UnlockKbd
  1966.   ────────────────────────────────────────────────────────────────────────
  1967.   
  1968.                                      33
  1969.  
  1970.  
  1971.  
  1972.  
  1973.   Command:   Log
  1974.  
  1975.   Purpose:   Stores the given string in the log file along with the time.
  1976.  
  1977.   Syntax:    Log(LogString)
  1978.              LogString:       an ASCII string, up to 60 characters in
  1979.                               length, enclosed in quotes.
  1980.  
  1981.   Example:   If DataStrR(0,124h,"abcdef")
  1982.              Log("String matched")
  1983.              Else
  1984.              Log("String not matched")
  1985.   ────────────────────────────────────────────────────────────────────────
  1986.  
  1987.  
  1988.   Command:   Mask
  1989.  
  1990.   Purpose:   Masks off the specified part of the screen for subsequent
  1991.              screen comparisons.  The next time the Screen condition is
  1992.              encountered, the contents of masked parts of the screen will
  1993.              not be compared.  You can mask off up to five areas of the
  1994.              screen.  Masked areas may overlap.  The screen masks are
  1995.              cleared automatically when a script is played.  You can also
  1996.              clear the screen masks by giving this command with all zeros
  1997.              as its arguments.
  1998.  
  1999.   Syntax:    Mask(TopRow,LeftCol,BottomRow,RightCol)
  2000.              TopRow,LeftCol,BottomRow,RightCol:
  2001.                               the top-left and bottom-right coordinates
  2002.                               of the area to mask.  Row/column numbering
  2003.                               starts at 0,0.
  2004.  
  2005.   See Also:  Scrn
  2006.   ────────────────────────────────────────────────────────────────────────
  2007.  
  2008.  
  2009.   Command:   Not
  2010.  
  2011.   Purpose:   Reverses the outcome of the next condition.
  2012.  
  2013.   Syntax:    Not
  2014.  
  2015.   Example:   If Not DataStrR(0,124h,"abcdef")
  2016.              Log("String not matched")
  2017.  
  2018.   See Also:  And, Else, If, Or
  2019.   ────────────────────────────────────────────────────────────────────────
  2020.  
  2021.  
  2022.   Command:   Or
  2023.  
  2024.   Purpose:   Used between two conditions.  "OR"s the results of the
  2025.              conditions.
  2026.  
  2027.   Syntax:    Or
  2028.   
  2029.                                      34
  2030.  
  2031.  
  2032.   Example:   If DataStrR(0,124h,"abcdef") Or DataByteR(0,136h,a6h)
  2033.              Log("Either string or byte matched")
  2034.  
  2035.   See Also:  And, Else, If, Not
  2036.   ────────────────────────────────────────────────────────────────────────
  2037.  
  2038.  
  2039.   Command:   OutByte
  2040.  
  2041.   Purpose:   Outputs a byte to an I/O port.
  2042.  
  2043.   Syntax:    OutByte(PortID,TheByte)
  2044.              PortID:          the I/O port ID.
  2045.              TheByte:         the byte to be output.
  2046.  
  2047.   See Also:  OutWord
  2048.   ────────────────────────────────────────────────────────────────────────
  2049.  
  2050.  
  2051.   Command:   OutWord
  2052.  
  2053.   Purpose:   Outputs a word to an I/O port.
  2054.  
  2055.   Syntax:    OutByte(PortID,TheWord)
  2056.              PortID:          the I/O port ID.
  2057.              TheWord:         the word to be output.
  2058.  
  2059.   See Also:  OutByte
  2060.   ────────────────────────────────────────────────────────────────────────
  2061.  
  2062.  
  2063.   Command:   Pause
  2064.  
  2065.   Purpose:   Pauses system operation.  Similar to pushing the Pause key
  2066.              on the keyboard.  Script play continues in the background.
  2067.  
  2068.   Syntax:    Pause
  2069.  
  2070.   See Also:  PausePlay, PauseSys
  2071.   ────────────────────────────────────────────────────────────────────────
  2072.  
  2073.  
  2074.   Command:   PausePlay
  2075.  
  2076.   Purpose:   Temporarily suspends play until either the specified unpause
  2077.              key is pressed, or the specified pause time elapses.
  2078.  
  2079.   Syntax:    PausePlay(PauseTime,UnpauseKey)
  2080.              PauseTime:       the maximum length of the pause in seconds.
  2081.                               value may be between 1 and 65535.
  2082.              UnpauseKey:      one of the keys as listed in Table 5-1.
  2083.  
  2084.   See Also:  Pause, PauseSys
  2085.   ────────────────────────────────────────────────────────────────────────
  2086.   
  2087.                                      35
  2088.  
  2089.  
  2090.   Command:   PauseSys
  2091.  
  2092.   Purpose:   Temporarily suspends the foreground process until either
  2093.              the specified unpause key is pressed, or the specified
  2094.              pause time elapses.  Script play continues in the
  2095.              background.
  2096.  
  2097.   Syntax:    PauseSys(PauseTime,UnpauseKey)
  2098.              PauseTime:       the maximum length of the pause in seconds.
  2099.                               value may be between 1 and 65535.
  2100.              UnpauseKey:      one of the keys as listed in Table 5-1.
  2101.  
  2102.   See Also:  Pause, PausePlay
  2103.   ────────────────────────────────────────────────────────────────────────
  2104.  
  2105.  
  2106.   Command:   PrntScrn
  2107.  
  2108.   Purpose:   Generates a Print screen interrupt as is done when the Print
  2109.              Screen key is pressed.
  2110.  
  2111.   Syntax:    PrntScrn
  2112.  
  2113.   See Also:  PrntScrnText
  2114.   ────────────────────────────────────────────────────────────────────────
  2115.  
  2116.  
  2117.   Command:   PrntScrnTxt
  2118.  
  2119.   Purpose:   Prints the text in the specified region of the screen.
  2120.  
  2121.   Syntax:    PrntScrnTxt(TopRow,LeftCol,BottomRow,RightCol)
  2122.              TopRow,LeftCol,BottomRow,RightCol:
  2123.                               the top-left and bottom-right coordinates
  2124.                               of the text to print.  Row/column numbering
  2125.                               starts at 0,0.
  2126.  
  2127.   See Also:  CopyScrnText, PrntScrn
  2128.   ────────────────────────────────────────────────────────────────────────
  2129.  
  2130.  
  2131.   Command:   Reboot
  2132.  
  2133.   Purpose:   Reboots the PC.
  2134.  
  2135.   Syntax:    Reboot(X)
  2136.              X:               0: "cold" boot, same as pressing the reset
  2137.                                   button.
  2138.                               1: "warm" boot, same as pressing
  2139.                                   Ctrl-Alt-Del.
  2140.   ────────────────────────────────────────────────────────────────────────
  2141.  
  2142.  
  2143.   Command:   RestoreLine
  2144.  
  2145.   Purpose:   Restores the area of the screen overwritten by the last
  2146.              WriteLine command.
  2147.  
  2148.   See Also:  WriteLine
  2149.   ────────────────────────────────────────────────────────────────────────
  2150.   
  2151.                                      36
  2152.  
  2153.  
  2154.   Command:   SaveDataA
  2155.  
  2156.   Purpose:   Saves a block of data from the PC's RAM to a file.  You
  2157.              specify the starting absolute segment and offset, the number
  2158.              of bytes to save, and the name of the file to which the data
  2159.              is to be saved.  The segment and offset values are taken
  2160.              from the beginning of memory (0000:0000).
  2161.  
  2162.   Syntax:    SaveDataA(Segment,Offset,NumBytes,Filename)
  2163.              Segment:         the segment address of the beginning of the
  2164.                               block between 0000h and ffffh.
  2165.              Offset:          the offset of the beginning of the block,
  2166.                               between 0000h and ffffh.
  2167.              NumBytes:        the number of bytes to save, between 1 and
  2168.                               65535.
  2169.              Filename:        the name of the file in which to save the
  2170.                               data, enclosed in quotes.
  2171.  
  2172.   See Also:  DataBlkA, SaveDataR
  2173.   ────────────────────────────────────────────────────────────────────────
  2174.  
  2175.  
  2176.   Command:   SaveDataR
  2177.  
  2178.   Purpose:   Save a block of data from the PC's RAM to a file.  You
  2179.              specify the starting relative segment and offset, the number
  2180.              of bytes to save, and the name of the file to which the data
  2181.              is to be saved.  The segment and offset values are taken
  2182.              relative to the beginning of the first segment of the current
  2183.              foreground process.  This command allows you to save the
  2184.              values of program variables whose relative addresses are known.
  2185.  
  2186.   Syntax:    SaveDataR(Segment,Offset,NumBytes,Filename)
  2187.              Segment:         the segment address of the beginning of the
  2188.                               block, between 0000h and ffffh.
  2189.              Offset:          the offset of the beginning of the block,
  2190.                               between 0000h and ffffh.
  2191.              NumBytes:        the number of bytes to save. between 1 and
  2192.                               65535.
  2193.              Filename:        the name of the file in which to save the
  2194.                               data, enclosed in quotes.
  2195.  
  2196.   See Also:  DataBlkR, SaveDataA
  2197.   ────────────────────────────────────────────────────────────────────────
  2198.  
  2199.  
  2200.   Command:   SaveScrn
  2201.  
  2202.   Purpose:   Saves the current text-mode screen to the specified file.
  2203.  
  2204.   Syntax:    SaveScrn(Filename)
  2205.              Filename:        the file name, enclosed in quotes.
  2206.  
  2207.   See Also:  DisplScrn, Scrn
  2208.   ────────────────────────────────────────────────────────────────────────
  2209.   
  2210.                                      37
  2211.  
  2212.  
  2213.   Command:   ScrEnd
  2214.  
  2215.   Purpose:   Terminates play, and returns to the default mode
  2216.              (ie. Standby or Interactive mode).
  2217.  
  2218.   Syntax:    ScrEnd
  2219.   ────────────────────────────────────────────────────────────────────────
  2220.  
  2221.  
  2222.   Command:   SetRegister
  2223.  
  2224.   Purpose:   Sets the value that a register is to have before an
  2225.              interrupt is generated by the GenIntr command.
  2226.  
  2227.   Syntax:    SetRegister(RegName,Value)
  2228.              RegName:         the register, one of the following:
  2229.                               AH, AL, BH, BL, CH, CL, DH, DL,
  2230.                               AX, BX, CX, DX, SI, DI, DS, ES.
  2231.              Value:           the value to place in the register.
  2232.  
  2233.   Example:   SetRegister(AX,1001h)    ;set border color
  2234.              SetRegister(BH,3)        ;to cyan
  2235.              Genintr(10h)
  2236.  
  2237.   See Also:  GenIntr, Register
  2238.   ────────────────────────────────────────────────────────────────────────
  2239.  
  2240.  
  2241.   Command:   SetVidMode
  2242.  
  2243.   Purpose:   Sets the PC's video mode
  2244.  
  2245.   Syntax:    SetVidMode(TheMode)
  2246.              TheMode:         the video mode.
  2247.  
  2248.   See Also:  EnableBlink
  2249.   ────────────────────────────────────────────────────────────────────────
  2250.  
  2251.  
  2252.   Command:   ShowCur
  2253.  
  2254.   Purpose:   Restores a text cursor which was hidden by the HideCur
  2255.              command.
  2256.  
  2257.   Syntax:    ShowCur
  2258.  
  2259.   See Also:  HideCur
  2260.   ────────────────────────────────────────────────────────────────────────
  2261.  
  2262.  
  2263.   Command:   SingStepOff
  2264.  
  2265.   Purpose:   Turns off single-step mode.
  2266.  
  2267.   Syntax:    SingStepOff
  2268.  
  2269.   See Also:  SingStepOn
  2270.   ────────────────────────────────────────────────────────────────────────
  2271.   
  2272.                                      38
  2273.  
  2274.  
  2275.   Command:   SingStepOn
  2276.  
  2277.   Purpose:   Turns on single-step mode.  You supply the name of the key
  2278.              which you want to be the step key.
  2279.  
  2280.   Syntax:    SingStepOn(Key)
  2281.              Key:             any key from Table 5-1.
  2282.  
  2283.   See Also:  SingStepOn
  2284.   ────────────────────────────────────────────────────────────────────────
  2285.  
  2286.  
  2287.   Command:   StandDelOff
  2288.  
  2289.   Purpose:   Turns off the standard delay.
  2290.  
  2291.   Syntax:    StandDelOff
  2292.  
  2293.   See Also:  StandDelOn
  2294.   ────────────────────────────────────────────────────────────────────────
  2295.  
  2296.  
  2297.   Command:   StandDelOn
  2298.  
  2299.   Purpose:   Turns on the standard delay.  You specify the delay value in
  2300.              clock ticks.  A clock tick is about 1/18 of a second.  When
  2301.              the standard delay is on, AutoScript will wait the standard
  2302.              delay time between each keystroke and command in Play mode,
  2303.              and will disregard all Delay commands.
  2304.  
  2305.   Syntax:    StandDelOn(DelayTime)
  2306.              DelayTime:       the delay time in clock ticks.
  2307.  
  2308.   See Also:  StandDelOff
  2309.   ────────────────────────────────────────────────────────────────────────
  2310.  
  2311.  
  2312.   Command:   StuffTxtFile
  2313.  
  2314.   Purpose:   Stuffs the contents of the specified text file into the
  2315.              keyboard buffer (ie. "types" the contents of the file).
  2316.  
  2317.   Syntax:    StuffTxtFile(Filename)
  2318.              Filename:        the name of the text file, enclosed in
  2319.                               quotes.
  2320.   ────────────────────────────────────────────────────────────────────────
  2321.  
  2322.  
  2323.   Command:   SysRq
  2324.  
  2325.   Purpose:   Has the same affect as pressing the SysRq key.
  2326.  
  2327.   Syntax:    SysRq
  2328.   ────────────────────────────────────────────────────────────────────────
  2329.   
  2330.                                      39
  2331.  
  2332.  
  2333.   Command:   Tone
  2334.  
  2335.   Purpose:   Produces a tone of a specified frequency and duration.
  2336.  
  2337.   Syntax:    Tone(Freq,Duration)
  2338.              Freq:            the frequency in Hz, between 0 and 65535.
  2339.              Duration:        the duration of the tone in clock ticks,
  2340.                                between 0 and 65535.
  2341.  
  2342.   See Also:  Beep
  2343.   ────────────────────────────────────────────────────────────────────────
  2344.  
  2345.  
  2346.   Command:   UnblankScrn
  2347.  
  2348.   Purpose:   Unblanks the PC's screen if it is blanked.  If it is not
  2349.              blanked, it resets the screen blank timer.
  2350.  
  2351.   Syntax:    UnblankScrn
  2352.  
  2353.   See Also:  BlankScrn
  2354.   ────────────────────────────────────────────────────────────────────────
  2355.  
  2356.  
  2357.   Command:   Unload
  2358.  
  2359.   Purpose:   Causes AutoScript to try to remove itself, and free its
  2360.              memory.  If any interrupts which AutoScript is using were
  2361.              hooked after AutoScript was loaded, it will not be able to
  2362.              remove itself.  Instead, it will deactivate itself, but
  2363.              remain in memory.  After deactivation, all hot keys will be
  2364.              ignored, and all features will be disabled.  If the screen
  2365.              was blank, or the keyboard was locked when this command is
  2366.              encountered, the screen will be unblanked, and the keyboard
  2367.              will be unlocked.
  2368.  
  2369.   Syntax:    Unload
  2370.   ────────────────────────────────────────────────────────────────────────
  2371.  
  2372.  
  2373.   Command:   UnlockKbd
  2374.  
  2375.   Purpose:   Unlocks the keyboard if it is locked.
  2376.  
  2377.   Syntax:    UnlockKbd
  2378.  
  2379.   See Also:  LockKbd
  2380.   ────────────────────────────────────────────────────────────────────────
  2381.  
  2382.  
  2383.   Command:   Unpause
  2384.  
  2385.   Purpose:   Terminates a pause started by the Pause or PauseSys commands.
  2386.  
  2387.   Syntax:    Unpause
  2388.  
  2389.   See Also:  Pause, PauseSys
  2390.   ────────────────────────────────────────────────────────────────────────
  2391.   
  2392.                                      40
  2393.  
  2394.  
  2395.   Command:   WaitForString
  2396.  
  2397.   Purpose:   Causes AutoScript to suspend script play until the specified
  2398.              string is typed at the keyboard.  This command should not be
  2399.              used when the kbd is locked.
  2400.  
  2401.   Syntax:    WaitForString(TheString)
  2402.              TheString:       an ASCII string, up to 10 characters in
  2403.                               length, containing any combination of
  2404.                               letters and numbers, as well as any other
  2405.                               characters which can be typed without the
  2406.                               help of the Ctrl, Shift, or Alt keys,
  2407.                               enclosed in quotes.
  2408.  
  2409.   See Also:  PausePlay, WaitUntil
  2410.   ────────────────────────────────────────────────────────────────────────
  2411.  
  2412.  
  2413.   Command:   WaitUntil
  2414.  
  2415.   Purpose:   Suspends script play until the specified time arrives.  If
  2416.              the specified time is earlier than the current time, but no
  2417.              more than 59 minutes earlier, play proceeds immediately.
  2418.  
  2419.   Syntax:    WaitUntil(Hours,Mins,Secs)
  2420.              Hours:           time of day (hours) (24-hour format).
  2421.              Mins:            time of day (minutes).
  2422.              Secs:            time of day (seconds).
  2423.  
  2424.   See Also:  PausePlay, WaitForString
  2425.   ────────────────────────────────────────────────────────────────────────
  2426.  
  2427.   Command:   WriteLine
  2428.  
  2429.   Purpose:   Writes a line of text directly to the screen.
  2430.  
  2431.   Syntax:    WriteLine(Row,Col,Attribute,TheText)
  2432.              Row:             row where text is to appear.
  2433.              Col:             column where text is to start.
  2434.              Attribute:       the text attribute (usual BIOS format).
  2435.              TheText:         the text to write, enclosed in quotes.
  2436.  
  2437.   See Also:  RestoreLine
  2438.   ────────────────────────────────────────────────────────────────────────
  2439.   
  2440.                                      41
  2441.  
  2442.  
  2443.   5.2      Conditions
  2444.  
  2445.   AutoScript script conditions are commands which check a particular
  2446.   condition, and return a true/false result.  The And, If, Not, and Or
  2447.   commands, along with the conditions, provide the facilities for
  2448.   conditional execution within a script.
  2449.  
  2450.  
  2451.   Condition: DataBlkA
  2452.  
  2453.   Purpose:   Compares a block of data in RAM with the contents of a file.
  2454.              The data block is specified by its absolute address (ie. the
  2455.              segment and offset addresses relative to the beginning of
  2456.              memory).  The number of bytes compared depends on the file
  2457.              size.  If the bytes in the block match the bytes in the file,
  2458.              the condition returns the result true.
  2459.  
  2460.   Syntax:    DataBlkA(Segment,Offset,Filename)
  2461.              Segment:         the segment address of the beginning of the
  2462.                               block, between 0000h and ffffh.
  2463.              Offset:          the offset of the beginning of the block,
  2464.                               between 0000h and ffffh.
  2465.              Filename:        the name of the data file, enclosed in
  2466.                               quotes.
  2467.  
  2468.   See Also:  DataBlkR, DataByteA, DataByteR, DataDwordA, DataDwordR,
  2469.              DataStrA, DataStrR, DataWordA, DataWordR, SaveDataA
  2470.   ────────────────────────────────────────────────────────────────────────
  2471.  
  2472.  
  2473.   Condition: DataBlkR
  2474.  
  2475.   Purpose:   Compares a block of data in RAM with the contents of a file.
  2476.              The data block is specified by giving the segment and offset
  2477.              addresses relative to the beginning of the first segment of
  2478.              the current foreground process.  If the bytes in the block
  2479.              match the bytes in the file, the condition returns the
  2480.              result true.  The number of bytes compared depends on the
  2481.              file size.
  2482.  
  2483.   Syntax:    DataBlkR(Segment,Offset,Filename)
  2484.              Segment:         the segment address of the beginning of the
  2485.                               block, between 0000h and ffffh.
  2486.              Offset:          the offset of the beginning of the block,
  2487.                               between 0000h and ffffh.
  2488.              Filename:        the name of the data file, enclosed in
  2489.                               quotes.
  2490.  
  2491.   See Also:  DataBlkA, DataByteA, DataByteR, DataDwordA, DataDwordR,
  2492.              DataStrA, DataStrR, DataWordA, DataWordR, SaveDataR
  2493.   ────────────────────────────────────────────────────────────────────────
  2494.  
  2495.  
  2496.   Condition: DataByteA
  2497.  
  2498.   Purpose:   Compares a byte of data in RAM with the byte specified.  The
  2499.              byte is referenced by its absolute address (ie. the segment
  2500.              and offset addresses relative to the beginning of memory).
  2501.              If the bytes match, the condition returns the result true.
  2502.   
  2503.                                      42
  2504.  
  2505.  
  2506.   Syntax:    DataByteA(Segment,Offset,TheByte)
  2507.              Segment:         the segment address of the byte.
  2508.              Offset:          the offset of the byte.
  2509.              TheByte:         the byte to compare.
  2510.  
  2511.   See Also:  DataBlkA, DataBlkR, DataByteR, DataDwordA, DataDwordR,
  2512.              DataStrA, DataStrR, DataWordA, DataWordR
  2513.   ────────────────────────────────────────────────────────────────────────
  2514.  
  2515.  
  2516.   Condition: DataByteR
  2517.  
  2518.   Purpose:   Compares a byte of data in RAM with the byte specified.
  2519.              The byte address is specified by giving the segment and
  2520.              offset addresses relative to the beginning of the first
  2521.              segment of the current foreground process.  If the bytes
  2522.              match, the condition returns the result true.
  2523.  
  2524.   Syntax:    DataByteR(Segment,Offset,TheByte)
  2525.              Segment:         the segment address of the byte.
  2526.              Offset:          the offset of the byte.
  2527.              TheByte:         the byte to compare.
  2528.  
  2529.   See Also:  DataBlkA, DataBlkR, DataByteA, DataDwordA, DataDwordR,
  2530.              DataStrA, DataStrR, DataWordA, DataWordR
  2531.   ────────────────────────────────────────────────────────────────────────
  2532.  
  2533.  
  2534.   Condition: DataDWordA
  2535.  
  2536.   Purpose:   Compares a double word (4 bytes) of data in RAM with the
  2537.              double word specified.  The double word is referenced by
  2538.              its absolute address (ie. the segment and offset addresses
  2539.              relative to the beginning of memory).  If the dwords match,
  2540.              the condition returns the result true.
  2541.  
  2542.   Syntax:    DataDWordA(Segment,Offset,TheDword)
  2543.              Segment:         the segment address of the byte.
  2544.              Offset:          the offset of the byte.
  2545.              TheDword:        the double word to compare.
  2546.  
  2547.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordR,
  2548.              DataStrA, DataStrR, DataWordA, DataWordR
  2549.   ────────────────────────────────────────────────────────────────────────
  2550.  
  2551.  
  2552.   Condition: DataDWordR
  2553.  
  2554.   Purpose:   Compares a double word (4 bytes) of data in RAM with the
  2555.              double word specified.  The address is specified by giving
  2556.              the segment and offset addresses relative to the beginning
  2557.              of the first segment of the current foreground process.  If
  2558.              the dwords match, the condition returns the result true.
  2559.  
  2560.   Syntax:    DataDwordR(Segment,Offset,TheDword)
  2561.              Segment:         the segment address of the byte.
  2562.              Offset:          the offset of the byte.
  2563.              TheDword:        the double word to compare.
  2564.   
  2565.                                      43
  2566.  
  2567.  
  2568.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordA,
  2569.              DataStrA, DataStrR, DataWordA, DataWordR
  2570.   ────────────────────────────────────────────────────────────────────────
  2571.  
  2572.  
  2573.   Condition: DataStrA
  2574.  
  2575.   Purpose:   Compares data in RAM with the ASCII string provided.  The
  2576.              string is referenced by its absolute address (ie. the
  2577.              segment and offset addresses relative to the beginning of
  2578.              memory).  If the string matches, the condition returns the
  2579.              result true.
  2580.  
  2581.   Syntax:    DataStrA(Segment,Offset,TheString)
  2582.              Segment:         the segment address of the beginning of the
  2583.                               string.
  2584.              Offset:          the offset of the byte.
  2585.              TheString:       the string to compare, enclosed in quotes.
  2586.  
  2587.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordA,
  2588.              DataDwordR, DataStrR, DataWordA, DataWordR
  2589.   ────────────────────────────────────────────────────────────────────────
  2590.  
  2591.  
  2592.   Condition: DataStrR
  2593.  
  2594.   Purpose:   Compares data in RAM with the ASCII string provided.  The
  2595.              address is specified by giving the segment and offset
  2596.              addresses relative to the beginning of the first segment of
  2597.              the current foreground process.  If the string matches, the
  2598.              condition returns the result true.
  2599.  
  2600.   Syntax:    DataStrR(Segment,Offset,TheString)
  2601.              Segment:         the segment address of the beginning of the
  2602.                               string.
  2603.              Offset:          the offset of the byte.
  2604.              TheString:       the string to compare, enclosed in quotes.
  2605.  
  2606.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordA,
  2607.              DataDwordR, DataStrA, DataWordA, DataWordR
  2608.   ────────────────────────────────────────────────────────────────────────
  2609.  
  2610.  
  2611.   Condition: DataWordA
  2612.  
  2613.   Purpose:   Compares a word of data in RAM with the word specified.  The
  2614.              word is referenced by its absolute address (ie. the segment
  2615.              and offset addresses relative to the beginning of memory).
  2616.              If the words match, the condition returns the result true.
  2617.  
  2618.   Syntax:    DataWordA(Segment,Offset,TheWord)
  2619.              Segment:         the segment address of the byte.
  2620.              Offset:          the offset of the byte.
  2621.              TheWord:         the word to compare
  2622.  
  2623.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordA,
  2624.              DataDwordR, DataStrA, DataStrR, DataWordR
  2625.   ────────────────────────────────────────────────────────────────────────
  2626.   
  2627.                                      44
  2628.  
  2629.  
  2630.   Condition: DataWordR
  2631.  
  2632.   Purpose:   Compares a word of data in RAM with the word specified.  The
  2633.              word address is specified by giving the segment and offset
  2634.              addresses relative to the beginning of the first segment of
  2635.              the current foreground process.   If the words match, the
  2636.              condition returns the result true.
  2637.  
  2638.   Syntax:    DataWordR(Segment,Offset,TheWord)
  2639.              Segment:         the segment address of the byte.
  2640.              Offset:          the offset of the byte.
  2641.              TheWord:         the word to compare
  2642.  
  2643.   See Also:  DataBlkA, DataBlkR, DataByteA, DataByteR, DataDwordA,
  2644.              DataDwordR, DataStrA, DataStrR, DataWordA
  2645.   ────────────────────────────────────────────────────────────────────────
  2646.  
  2647.  
  2648.   Condition: EnvironVar
  2649.  
  2650.   Purpose:   Compares the string given with the strings in the DOS
  2651.              environment block.  The condition returns true if the given
  2652.              string matches one of the environment variable strings.  The
  2653.              comparison is case-insensitive.
  2654.  
  2655.   Syntax:    EnvironVar(EnvString)
  2656.              EnvString:       a string, enclosed in quotes.
  2657.  
  2658.   Example:   If EnvironVar("PROMPT=%p")
  2659.              Beep
  2660.   ────────────────────────────────────────────────────────────────────────
  2661.  
  2662.  
  2663.   Condition: InByte
  2664.  
  2665.   Purpose:   Inputs a byte from the specified I/O port and compares it to
  2666.              the byte provided.  If the bytes match, the condition
  2667.              returns true.
  2668.  
  2669.   Syntax:    InByte(PortID,TheByte)
  2670.              PortID:          the I/O port ID.
  2671.              TheByte:         the byte to be compared.
  2672.  
  2673.   See Also:  InWord
  2674.   ────────────────────────────────────────────────────────────────────────
  2675.  
  2676.  
  2677.   Condition: InWord
  2678.  
  2679.   Purpose:   Inputs a word from the specified I/O port and compares it to
  2680.              the word provided.  If the words match, the condition
  2681.              returns true.
  2682.  
  2683.   Syntax:    InWord(PortID,TheWord)
  2684.              PortID:          the I/O port ID.
  2685.              TheWord:         the word to be compared.
  2686.  
  2687.   See Also:  InByte
  2688.   ────────────────────────────────────────────────────────────────────────
  2689.   
  2690.                                      45
  2691.  
  2692.  
  2693.   Condition: KbdLocked
  2694.  
  2695.   Purpose:   Returns true if the keyboard is currently locked by
  2696.              AutoScript.
  2697.  
  2698.   Syntax:    KbdLocked
  2699.   ────────────────────────────────────────────────────────────────────────
  2700.  
  2701.  
  2702.   Condition: ProgName
  2703.  
  2704.   Purpose:   Compares the string provided with the name of the current
  2705.              foreground application (less the ".EXE" or ".COM").  If the
  2706.              strings match, the condition returns true.  The comparison
  2707.              is case-insensitive.
  2708.  
  2709.   Syntax:    ProgName(NameString)
  2710.              NameString:      an ASCII string, enclosed in quotes.
  2711.  
  2712.   Example:   If ProgName("myprog")        ;see if MYPROG.EXE is running
  2713.              LoadScr("myprog.scr")        ;if so, play script: myprog.scr
  2714.              Else LoadScr("another.scr")  ;play a different script
  2715.   ────────────────────────────────────────────────────────────────────────
  2716.  
  2717.  
  2718.   Condition: Register
  2719.  
  2720.   Purpose:   Compares the value that the specified register contained
  2721.              immediately following execution of a GenIntr command, with
  2722.              the value provided.  If the values match, the condition
  2723.              returns true.
  2724.  
  2725.   Syntax:    Register(RegName,Value)
  2726.              RegName:         the register, one of the following:
  2727.                               AH, AL, BH, BL, CH, CL, DH, DL,
  2728.                               AX, BX, CX, DX, SI, DI, DS, ES.
  2729.              Value:           the number to compare with the register value.
  2730.  
  2731.   Example:   SetRegister(AH,12h)    ;get video configuration
  2732.              SetRegister(BL,10h)    ;information
  2733.              Genintr(10h)
  2734.              If Register(BH,1) Log("Monochrome Display installed")
  2735.              Else Log(Color display installed")
  2736.  
  2737.   See Also:  GenIntr, SetRegister
  2738.   ────────────────────────────────────────────────────────────────────────
  2739.  
  2740.  
  2741.   Condition: Scrn
  2742.  
  2743.   Purpose:   Compares the contents of the current screen with the screen
  2744.              saved in a file by the SaveScrn command.  Areas of the
  2745.              screen masked by the Mask command are not compared.  The
  2746.              condition returns true if the screens match.
  2747.  
  2748.   Syntax:    Scrn(Filename)
  2749.              Filename:        name of the screen file, enclosed in quotes.
  2750.  
  2751.   See Also:  Mask, SaveScrn
  2752.   ────────────────────────────────────────────────────────────────────────
  2753.   
  2754.                                      46
  2755.  
  2756.  
  2757.   Condition: ScrnTxt
  2758.  
  2759.   Purpose:   Compares a line of text on the screen with the string provided.
  2760.              The condition returns true if the text matches.
  2761.  
  2762.   Syntax:    ScrnTxt(Row,Col,TheString)
  2763.              Row:             the row on the screen where the text appears.
  2764.              Col:             the starting column of the screen text.
  2765.                               Row/col numbering starts at 0,0.
  2766.              TheString:       the string to compare, enclosed in quotes.
  2767.  
  2768.   See Also:  ScrnTxtF
  2769.   ────────────────────────────────────────────────────────────────────────
  2770.  
  2771.  
  2772.   Condition: ScrnTxtF
  2773.  
  2774.   Purpose:   Compares a block of text on the screen with the contents of
  2775.              a file.  The condition returns true if the screen text
  2776.              matches the file contents.
  2777.  
  2778.   Syntax:    ScrnTxtF(LeftCol,TopRow,RightCol,BottomRow,Filename)
  2779.              LeftCol,TopRow,RightCol,BottomRow:
  2780.                               the top-left and bottom-right coordinates
  2781.                               of the text to copy.    Row/col numbering
  2782.                               starts at 0,0.
  2783.              Filename:        the name of the file which contains the
  2784.                               text to be compared, enclosed in quotes.
  2785.  
  2786.   Example:   If ScrnTxtF(1,3,18,29,"screen.sav")   ;see if text matches
  2787.              Beep
  2788.  
  2789.   See Also:  CopyScrnTxt, ScrnTxt
  2790.   ────────────────────────────────────────────────────────────────────────
  2791.  
  2792.  
  2793.   Condition: UserKey
  2794.  
  2795.   Purpose:   Compares a the given key with the last key pressed by the
  2796.              user.  The condition returns true if the keys match.
  2797.  
  2798.   Syntax:    UserKey(Key)
  2799.              Key:             any key from Table 5-1.
  2800.  
  2801.                                      47
  2802.  
  2803.  
  2804.   The following are the key names recognized by the script compiler.  Note
  2805.   that the left and right Shift keys are listed separately:
  2806.  
  2807.     ╔═════════════════════════════════════════════════════════════════╗
  2808.     ║ A      B      C      D      E      F      G      H      I       ║
  2809.     ║ J      K      L      M      N      O      P      Q      R       ║
  2810.     ║ S      T      U      V      W      X      Y      Z      Esc     ║
  2811.     ║ 1      2      3      4      5      6      7      8      9       ║
  2812.     ║ 0      =      \      [      ]      ;      '      ,      .       ║
  2813.     ║ /      Bs     Tab    Capslk LShift RShift Enter  Space  Ctrl    ║                          ║
  2814.     ║ Alt    F1     F2     F3     F4     F5     F6     F7     F8      ║
  2815.     ║ F9     F10    F11    F12    Ins    Del    Home   End    PgUp    ║
  2816.     ║ PgDn   UArrow DArrow LArrow RArrow ScrlLk NumLk  KP*    KP-     ║
  2817.     ║ KP+    ANYKEY (can be used only for unpause and single-step)    ║
  2818.     ╚═════════════════════════════════════════════════════════════════╝
  2819.                           Table 5-1 - Key Names
  2820.  
  2821.  
  2822.   Chapter 6    Autoscript Utilities
  2823.  
  2824.   6.1      Script Compiler
  2825.  
  2826.   The AutoScript script compiler is a utility which converts ASCII text
  2827.   files into binary script files.  To use the script compiler to compile
  2828.   a script, first create a text file, following the syntax rules given in
  2829.   Chapter 5.  Then type:
  2830.  
  2831.      AC filename [outputfile] <Enter>
  2832.  
  2833.   where filename is the name of the input text file, and outputfile is an
  2834.   optional name which the output binary script file is to be given.  If
  2835.   you do not provide an output file name, the output file will be given
  2836.   the same name as the input file, with the extension ".SCR".
  2837.  
  2838.  
  2839.   6.2      Script Uncompiler
  2840.  
  2841.   The AutoScript script uncompiler is a utility which converts AutoScript
  2842.   binary script files to ASCII text files which conform to the syntax rules
  2843.   given in Chapter 5.  It essentially does the inverse of what the script
  2844.   compiler does.  To uncompile a script file, type:
  2845.  
  2846.      AUC filename [outputfile] <Enter>
  2847.  
  2848.   where filename is the name of the binary script file, and outputfile is
  2849.   an optional name which the output text file is to be given.  If you do
  2850.   not provide an output file name, the output file will be given the same
  2851.   name as the input file, with the extension ".SCA".
  2852.  
  2853.  
  2854.   6.3      Screen Comparison Utility
  2855.  
  2856.   The AutoScript screen comparison utility allows you to compare two text
  2857.   screens saved by AutoScript.  To use this utility, type:
  2858.  
  2859.      ASC filename1 filename2 <Enter>
  2860.   
  2861.                                      48
  2862.  
  2863.  
  2864.   where filename1 and filename2 are the names of two screen files created
  2865.   by AutoScript.  The screen comparison utility will display the first
  2866.   screen as it was saved.  Using the space bar, you can scroll between
  2867.   views of the first screen, the differences between the first and second
  2868.   screens (ie. the characters and/or attributes on the first screen which
  2869.   are different than those in the same locations on the second screen), the
  2870.   second screen, and the differences between the second and first screens.
  2871.   Pressing F1 at any time will show you which screen you are currently
  2872.   viewing, and Escape will exit the utility.
  2873.  
  2874.  
  2875.   6.4      Kbrate
  2876.  
  2877.   The program KBRATE is a small utility which allows you to change your
  2878.   keyboard's repeat (typematic) rate and delay.  The rate and delay set
  2879.   with this utility will stay in effect until it is changed or the PC is
  2880.   rebooted, and has nothing to do with whether or not AutoScript is loaded.
  2881.   To use this utility, type:
  2882.  
  2883.      KBRATE rate delay <Enter>
  2884.  
  2885.   where rate and delay are indexes into tables of typematic rates and
  2886.   delays, respectively.  The following are the valid typematic rates and
  2887.   delays, and the appropriate values for the arguments rate and delay.
  2888.  
  2889.   Typematic Rates (repeats per second):
  2890.  
  2891.     0: 30.0    8:  15.0    16: 7.5    24: 3.7
  2892.     1: 26.7    9:  13.3    17: 6.7    25: 3.3
  2893.     2: 24.0    10: 12.0    18: 6.0    26: 3.0
  2894.     3: 21.8    11: 10.9    19: 5.5    27: 2.7
  2895.     4: 20.0    12: 10.0    20: 5.0    28: 2.5
  2896.     5: 18.5    13: 9.2     21: 4.6    29: 2.3
  2897.     6: 17.1    14: 8.6     22: 4.3    30: 2.1
  2898.     7: 16.0    15: 8.0     23: 4.0    31: 2.0
  2899.  
  2900.  
  2901.   Typematic Delays (milliseconds):
  2902.  
  2903.     0: 250
  2904.     1: 500
  2905.     2: 750
  2906.     3: 1000 (1 sec)
  2907.  
  2908.  
  2909.   Chapter 7    Compatibility issues
  2910.  
  2911.   AutoScript is compatible with DOS 3.0 and higher and most DOS
  2912.   applications.  It will not work under Microsoft Windows.  Other
  2913.   keyboard enhancement programs should not be loaded together with
  2914.   AutoScript, as they will likely conflict with each other.  Some DOS
  2915.   applications, such as word processors provide their own key repeat
  2916.   feature.  When running such an application, AutoScript's key repeat
  2917.   feature should be disabled (ie. repeat rate should be set to 0).  Keys
  2918.   repeated by the application will be inaccessible by AutoScript, and
  2919.   therefore cannot be recorded.  Also, some applications intercept the
  2920.   PC's keypress interrupt (int 9), and therefore they may prevent
  2921.   AutoScript from detecting some keystrokes.
  2922.   
  2923.                                      49
  2924.  
  2925.  
  2926.   Hot key assignments should be changed, if necessary, before an
  2927.   application is run, so that they will not conflict with any keys defined
  2928.   by the application.  When AutoScript detects that one of its hot keys
  2929.   has been pressed, it causes the keypress to be missed by other processes.
  2930.   This will usually result in the foreground application not detecting the
  2931.   keypress.
  2932.  
  2933.  
  2934.   Chapter 8    User Support
  2935.  
  2936.   I am most interested in receiving comments and suggestions from users.
  2937.   I hope that I will be able to make future improvements to the software
  2938.   and documentation based on user feedback.  I will also be happy to
  2939.   help users with problems or questions they have regarding AutoScript.
  2940.   Comments and questions should be directed to me via US mail, voice
  2941.   telephone, or the RIME Shareware conference.  Telephone support will
  2942.   be restricted to reasonable hours (>9 AM  &  <10 PM Central Time).  I
  2943.   should normally be available between the hours of 3-7 PM Central Time.
  2944.   I cannot guarantee that I will be available at other times, or that I
  2945.   will be able to return all telephone calls.
  2946.  
  2947.   Larry Michaels
  2948.   P.O. Box 59379
  2949.   Chicago, IL 60659
  2950.   (312) 973-0781
  2951.  
  2952.   Thank you for trying AutoScript.
  2953.  
  2954.  
  2955.  
  2956.