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