home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR2 / DAC360.ZIP / DAC.DOC next >
Text File  |  1993-12-09  |  49KB  |  1,062 lines

  1.         ╒════════════════════════════════════════════╕
  2.         │                     dAC                    │
  3.         │               Version 2.30.0               │
  4.         │                                            │
  5.         │  Copyright (C) 1990-1993 FM de Monasterio  │
  6.         │   Licensed Material. All rights reserved   │
  7.         ╘════════════════════════════════════════════╛
  8.  
  9.    CONTENTS
  10.             1.  SUMMARY
  11.             2.  REGISTRATION
  12.             3.  GENERAL INFORMATION
  13.             4.  INSTALLATION & USAGE
  14.             5.  INSTALLATION IN UPPER MEMORY
  15.             6.  BASIC TECHNICAL INFORMATION
  16.             7.  OPERATION REQUIREMENTS & CONFLICTS
  17.             8.  COPYRIGHT & LICENSE INFORMATION
  18.             9.  DISTRIBUTION INFORMATION
  19.  
  20.  
  21.    1.  SUMMARY
  22.  
  23.    dAC is a DOS memory-resident alarm clock that displays the time at the DOS
  24.    prompt when in video text mode. The user can specify the screen attribute,
  25.    position, and format of the display; a hotkey for toggling the display off
  26.    or on; and an alarm time and associated bell parameters.
  27.  
  28.    The clock is enabled only while DOS is waiting for command-line input (DOS
  29.    prompt); the hotkey can be used to override the DOS-prompt toggled status.
  30.    The resident operation can be changed on the fly by executing dAC with new
  31.    parameters from the DOS prompt (or batch file) or via the DOS enviroment.
  32.  
  33.    The dAC resident can also include a tiny, additional module for poking the
  34.    current date in the keyboard buffer so as to appear at the cursor position
  35.    as if it had been entered by the user, if the hotkey were pressed when the
  36.    <Scroll Lock> key is engaged.  The resident automatically becomes inactive
  37.    in BIOS/VESA graphics modes, including WINDOWS, and active again once text
  38.    mode is resumed. The default time and date formats and the unit separators
  39.    are selected from the current country DOS information data; these data can
  40.    be modified by the user.
  41.  
  42.    The program requires MS-DOS version 3 or higher (or a compatible operating
  43.    system) and a Real Time Clock compatible with the IBM AT-standard. It does
  44.    not interfere with WINDOWS or with any other application in graphics mode.
  45.    See DAC.NEW for a description of what is new in the current version.
  46.  
  47.  
  48.  
  49.    2. REGISTRATION
  50.  
  51.    This software is user-supported; the present release, although lacking the
  52.    options marked by asterisks below, is a complete program. You may test the
  53.    release for (in)compatibilities with your system, but after the testing is
  54.    completed you are requested to order a registered copy of the full release
  55.    of the software from the address at the end of this documentation.
  56.  
  57.    If you would rather use this unregistered copy, consider making a donation
  58.    to the Children's Hospital of Washington DC, for indigent children in need
  59.    of medical care.  Every year in the USA, infant mortality claims the lives
  60.    of tens of thousands of children before their first year of life, and most
  61.    of them come from families below poverty level...  Please send to the same
  62.    address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  63.    the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  64.    be sent to Children's Hospital.  Please identify the program for which you
  65.    are making the donation.
  66.  
  67.       +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  68.        DAC.REG contains a form needed to register the Software
  69.       +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  70.  
  71.    See the final part of this documentation for information on the Licensing,
  72.    Distribution, and Limited Warranty of this software.
  73.  
  74.  
  75.  
  76.    3.  GENERAL INFORMATION
  77.  
  78.    This is a DOS-based program which, after its loading, remains installed in
  79.    memory until it is unloaded or the machine is rebooted (terminate-and-stay
  80.    resident).
  81.  
  82.    dAC displays the current time on the screen if the video is in a text mode
  83.    (standard BIOS or VESA video modes), color or monochrome, and while DOS is
  84.    waiting for command-line input at the DOS prompt. The user can specify the
  85.    screen position, the video attributes, and the time format of the display;
  86.    a hotkey combination for toggling the display on or off; and an alarm time
  87.    and associated bell parameters can also be specified by the user.
  88.  
  89.    The clock display is mediated by the system timer tick interrupt, which is
  90.    a service triggered about every 55 milliseconds.  To avoid unnecessary use
  91.    of the time slices, the resident uses only 1 out of 4 slices to update the
  92.    time display, if this is needed.  Further, the clock display processing is
  93.    enabled only while DOS is waiting for command-line input (DOS prompt), not
  94.    only to preserve the screen contents of a foreground application, but also
  95.    to avoid potential interferences with disk(ette) operations, some of which
  96.    are system-timer dependent. If desired, the hotkey can be used to override
  97.    the DOS-prompt toggling, to allow the foreground display of the clock.
  98.  
  99.    A number of time and date stamp services are also available. International
  100.    support is provided for the time and date default formats, as well as unit
  101.    separators, based on the current DOS country information.
  102.  
  103.    Optionally, the dAC resident can include an additional 170-byte module for
  104.    poking the current date in the keyboard buffer, so to appear at the cursor
  105.    position as if it had been entered by the user, if the hotkey were pressed
  106.    when the <Scroll Lock> key is engaged.  When this key is enganged, the dAC
  107.    hotkey does toggle the clock display or or off.
  108.  
  109.    Most functions can be enabled or disabled independently.  The resident can
  110.    be updated on the fly by executing the program with new parameters, and it
  111.    requires less than 0.7 KB of memory. The program can selfload its resident
  112.    into a block of the upper memory area via an extended memory manager, with
  113.    or without MS-DOS 5+.  The user can specify a minimum upper memory address
  114.    to select or avoid a given upper memory region.
  115.  
  116.    If enabled, the dAC alarm is sounded whether at the command line of DOS or
  117.    not, i.e., independently of the DOS-prompt toggling of the dAC display. In
  118.    addition to preserving the screen of foreground applications, the toggling
  119.    is important to avoid a potential interference with disk(ette) operations,
  120.    some which are time dependent. In those cases where a clock display may be
  121.    required during a foreground operation, the hotkey can be used to override
  122.    the DOS-prompt toggling.
  123.  
  124.    Program messages can be redirected via the commands '>' and '>>' of DOS.
  125.  
  126.  
  127.    CPU VERSIONS
  128.  
  129.    The program is written in assembly language; each version consists of four
  130.    processor-type releases (086, 268, 386 and 486) in which the code has been
  131.    optimized for the CPU types of the 80x86 processor family.  This is needed
  132.    since the x86 processors differ markedly in instruction execution time and
  133.    the incorporation of a memory cache in some CPU types affects such time by
  134.    influencing the speed of instruction fetching and of memory access.  A 486
  135.    release should be used with a 586 CPU (Pentium) to minimize degradation of
  136.    performance vis-á-vis code alignment.
  137.  
  138.    In addition to standard (086) assembly language instructions, the 286, 386
  139.    and 486 releases of the program also use 286-, 386- or 486-specific opcode
  140.    instructions in "real" mode (which is the native mode for 086 processors).
  141.    The type and degree of code optimization vary with the CPU type, and yield
  142.    relatively small differences in the resident size, which is less than 1000
  143.    bytes.
  144.  
  145.  
  146.    REQUIREMENTS
  147.  
  148.    The program requires MS-DOS version 3 or later, or compatible DOS system,
  149.    and an IBM-compatible SVGA, VGA, EGA, MCGA/CGA, or MDA video adapter or a
  150.    HERCULES video card.
  151.  
  152.    The time is read from the battery-powered Real Time Clock (RTC) which is
  153.    present in AT-type or compatible PCs, along with nonvolatile CMOS memory
  154.    (such as the Motorola MC146818 chip).  dAC tests for the presence of the
  155.    RTC, and will not operate in machines lacking such a device.
  156.  
  157.  
  158.    SAFETY MEASURES
  159.  
  160.    Each time it is executed, the program verifies its code integrity through
  161.    a number of cyclic redundancy checks (CRCs). Program execution is aborted
  162.    if any check were to fail as such a failure indicates code corruption and
  163.    the program should not be used for your own protection.
  164.  
  165.    The executable program is distributed as a fully encrypted and compressed
  166.    EXE-type file in order to reduce the possibility of code tampering.
  167.  
  168.    NOTE    --------------------------------------------------------------------
  169.     Because both encryption and compression change the code sequences to
  170.     different values, it cannot be excluded that these processess might,
  171.     by chance, yield an encrypted data sequence which triggers a warning
  172.     from antiviral utilities that merely check disk-stored files against
  173.     a list of code 'signatures' or instructions. Though all distribution
  174.     diskettes are scanned with one such utility to avoid the possibility
  175.         of spurious warnings, the changing nature of these 'signature' lists
  176.         makes this exclusion difficult.
  177.  
  178.     If using these utilities, check the registered distribution diskette
  179.     before installing the programs in your hard disk, and please contact
  180.     the vendor (see below) if a spurious warning were triggered.
  181.     --------------------------------------------------------------------
  182.  
  183.  
  184.  
  185.    4.  INSTALLATION & USAGE
  186.  
  187.    In the descriptions below, {} enclose context variables, e.g., the number
  188.    {n}, whereas <> enclose alphanumeric characters or keys, e.g., the letter
  189.    <n>.
  190.  
  191.    The enclosed utility INSTALL.EXE may be used to copy the program files to
  192.    a user-defined drive and directory, and--if so desired--to add statements
  193.    to the file AUTOEXEC.BAT so that the program is loaded automatically upon
  194.    booting and to append the user-defined directory to the PATH statement.
  195.  
  196.  
  197.    MANUAL INSTALLATION
  198.  
  199.    Alternatively, to install the program manually, add the command
  200.  
  201.         {path}DAC [/SWITCH1 ... /SWITCHn] [;comments]
  202.  
  203.    to the AUTOEXEC.BAT file, if you wish to have the program installed after
  204.    booting the system, or simply enter this command from the DOS prompt when
  205.    you want to use the program.  If given, {path} must specify the drive and
  206.    subdirectory for the file DAC.EXE.
  207.  
  208.    Square brackets enclose optional command arguments; [/SWITCH1.../SWITCHn]
  209.    are program command switches, whereas [;comments] are comments that might
  210.    be useful to clarify batch file usage.
  211.  
  212.    If executed with a null argument (i.e., switches were not specified), the
  213.    program searches the DOS environment block for a variable with the format
  214.    DAC=/SWITCH1 ... /SWITCHn, to use these switches as program commands (see
  215.    switch EV below).
  216.  
  217.    If the execution command has null arguments, an environment variable does
  218.    not exist, and the resident is not yet installed, then the default (i.e.,
  219.    preselected) configuration is used for the installation.  If the resident
  220.    is already installed, and an environment variable does not exist, a null-
  221.    argument command has no other effects than updating the resident in terms
  222.    of the video system.  The default cases of the various switches are given
  223.    below.
  224.  
  225.    Once installed, the resident can be modified at any time by executing the
  226.    program with new parameters.  If other memory-resident programs were also
  227.    used, make sure all residents installed are 'well behaved' and pass along
  228.    the necessary interrupt data (see 'OPERATION REQUIREMENTS & CONFLICTS').
  229.  
  230.  
  231.    COMMAND SWITCHES
  232.  
  233.    These switches allow for the modification of the default (preselected) or
  234.    of an already selected resident configuration, or the execution of one of
  235.    the non-resident services provided by the program (e.g. display of a Help
  236.    panel, adjustment of display brightness, etc).
  237.  
  238.    The switches can be specified in any order, and they must be separated by
  239.    a space, tab, comma, or slash; a dash preceded by space may also be used.
  240.    They are not case sensitive, e.g., /EV = /Ev = /eV = /ev.  Invalid switch
  241.    specifications may result in an error message or in program cancellation.
  242.  
  243.    When parsing the command line, the program converts all switch separators
  244.    to slashes.  Switches consist of 2 letters; when a single letter would be
  245.    an unambiguous specification only the first switch character is required:
  246.    for instance, both /U and /UL are recognized as requests to uninstall the
  247.    resident from memory.
  248.  
  249.    Whereas some switches have a single status (e.g., uninstall the resident)
  250.    others may have more than one status (e.g., a on/off display toggle). The
  251.    program has built-in (default) values for some switches, values which are
  252.    used if a new value is not specified when installing the resident.  These
  253.    switch defaults are 
  254.  
  255.             /BD64/BF440/BN3/HC+/HK+/HKT6/TD+/TS+
  256.  
  257.    Other switch defaults are contigent on the current system status, such as
  258.    DOS country information (SC, TH, VS), video mode (VP) and video attribute
  259.    at cursor position (VA).
  260.  
  261.    The following switches are recognized:
  262.  
  263.      ---------------------------------------------------------------------
  264.        (*) Asterisks mark options not available in the unregistered copy
  265.      ---------------------------------------------------------------------
  266.  
  267.    SWITCH ?
  268.    ~~~~~~~~
  269.    This switch displays the Status/Usage/Help panels, which are described in
  270.    more detail in the section below.  If a VGA or EGA is the active adapter,
  271.    the program saves the contents of the palette registers prior to changing
  272.    the video attributes for its various displays. See section 'STATUS/USAGE/
  273.    HELP PANELS' below.
  274.  
  275.    EGA users:  The default MS-DOS palette attributes are restored if the EGA
  276.            BIOS fails to store data in the Parameter Save Area. Old EGAs
  277.            may store invalid data in this area, resulting in an improper
  278.            restoration of the video attributes (use the DOS command MODE
  279.            CO80 to restore the default attributes).
  280.  
  281.  
  282. *  SWITCH AT
  283.    ~~~~~~~~~
  284.    Alarm times are given as hour {h} and, optionally, minute {m}, and second
  285.    {s}.     Only one alarm may be active at any given time, and it occurs every
  286.    24 hours at the selected time.  Alarm services are BIOS mediated and need
  287.    a CMOS time/date chip.
  288.  
  289.     AT?           Display the current alarm status.
  290.  
  291.     AT+           (Re-)Enable alarm operation.
  292.  
  293.     AT-           Disable alarm operation; this is the default condition
  294.               if a switch argument is not specified.
  295.  
  296.     AThh[:mm:ss]  Alarm time using a 24-hour format, i.e. {hh}=0-23. The
  297.               use of {mm} and of {ss} is optional; if not specified,
  298.               a value of 0 is used.
  299.  
  300.     AThh[:mm:ss]x Alarm time using a 12-hour format, i.e. {hh}=1-12. The
  301.               use of {mm} and of {ss} is optional; if not specified,
  302.               a value of 0 is used. Use {x}=A[M] or P[M] to indicate
  303.                       ante or post meridian time.
  304.  
  305.    Defaults: /AT = /AT+;  AThh:mm = /AThh:mm:0; /AThh = /AThh:0:0; no switch
  306.              on installation = /AT-.
  307.  
  308.    NOTE   -----------------------------------------------------------------
  309.       The time separator <:> varies with DOS country information format
  310.       in use. The above examples assume USA country information format.
  311.       ------------------------------------------------------------------
  312.  
  313.  
  314. *  SWITCH BD
  315.    ~~~~~~~~~
  316.    Alarm bell duration.  Use BDn, where {n} is between 1 (shortest) and 128
  317.    (longest).  Defaults: /BL = /BL64; no switch on installation = /BL64.
  318.  
  319.  
  320. *  SWITCH BF
  321.    ~~~~~~~~~
  322.    Frequency or pitch of alarm bells in cycles/second (Hertz). Use BFn, where
  323.    {n} is between 25 Hz (low) and 5000 Hz (high).  Defaults: /BF = /BF440.
  324.  
  325.  
  326. *  SWITCH BN
  327.    ~~~~~~~~~
  328.    Number of alarm bells. Use BNn, in which {n} is between 1 and 8. Defaults:
  329.    /BN = /BN3; no switch on installation = /BN3.
  330.  
  331.  
  332. *  SWITCH EV
  333.    ~~~~~~~~~
  334.    When the _initial_ copy of COMMAND.COM is loaded at boot time, it creates
  335.    a block of memory that will contain the master or global DOS environment.
  336.    The environment of DOS consists of a number of text-based variables, each
  337.    variable consisting of a name and an associated string having the format:
  338.  
  339.               VARIABLE=string of characters
  340.  
  341.    in which the end of the string is marked by a zero byte.  The environment
  342.    contains a series of such variables, and the end of the environment block
  343.    itself is indicated by an additional zero byte.  These variables are used
  344.    to pass information to and from COMMAND.COM (or a DOS shell replacement),
  345.    batch files, and application programs, such as the PATH= and the COMSPEC=
  346.    variables.
  347.  
  348.    Switch EV creates or, if it already exists, updates the environment block
  349.    variable:
  350.              DAC=/SWITCH1/SWITCH2.../SWITCHn
  351.  
  352.    where /SWITCH1.../SWITCHn are the command switches to be implemented when
  353.    the program is executed from the DOS command line or a batch file without
  354.    any arguments.  Although switch EV itself is incorporated in the variable
  355.    as well, it is ignored when such variable is used to provide input to the
  356.    program.  (See 'ENVIRONMENT VARIABLE DAC' for more details.)
  357.  
  358.    No defaults.
  359.  
  360.  
  361.    SWITCH HK
  362.    ~~~~~~~~~
  363.    Hotkey combination to toggle display on and off.  The default combination
  364.    is <Left-Shift><Ctrl><T>.  The hotkey is also used for the date-at-cursor
  365.    stamp service provided by switch SC (see below).
  366.  
  367.     HK?     Permit selection of a new hotkey combination including
  368.         an alphanumeric key, and one or more of the shift keys
  369.         <Ctrl>, <Alt>, <left-Shift>, and <right-Shift>.
  370.  
  371.     HK+     Enable hotkey operation; this is the default condition
  372.         if a switch argument is not specified.
  373.  
  374.     HK-     Disable hotkey operation.  Can be reenabled with /HK+.
  375.  
  376.      *    HKxn    Select {xn} as the hotkey combination, in which {x} is
  377.         a alphanumeric character (0-9 or A-Z) only, and {n} is
  378.         a digit between 4 and 15 only.  This digit corresponds
  379.         to one of the following shifting keys or their sum:
  380.  
  381.             1 = <right-Shift>   --------------------------
  382.             2 = <left-Shift>     Values higher than 15 or
  383.             4 = <Ctrl>           lower than 4 are invalid
  384.             8 = <Alt>           --------------------------
  385.  
  386.    For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
  387.    key combination either in switch HK? or HKxn.  If a hotkey other than the
  388.    default combination is needed routinely, it may be useful to store in the
  389.    DOS environment the variable 'DAC=/HKxn' (see below).
  390.  
  391.    Defaults: /HK = /HK+; no switch on installation = /HK+ /HKT6.
  392.  
  393.  
  394. *  SWITCH LH
  395.    ~~~~~~~~~
  396.    Loads the resident in the Upper Memory Area (UMA), between addresses 640
  397.    KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
  398.    the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
  399.    of MS-DOS.  The switch requires an available upper memory block (UMB) of
  400.    about 1 KB, which is allocated by the program itself either via a direct
  401.    XMS request or, if MS-DOS controls UMB allocation (i.e. DOS 5+ linked to
  402.    the UMA through the command 'dos=umb' in the CONFIG.SYS file), via calls
  403.    to DOS. Allocation of UMBs requires the presence of an XMS manager (XMM)
  404.    supporting the UMB services 10h-11h of XMS 2+, and (if the XMM lacks the
  405.    capability of remapping memory) the presence of an UMB provider.
  406.  
  407.    SWITCH LHn
  408.  
  409.    A lower upper-memory limit for the UMB loading can also be requested via
  410.    switch LHn, in which {n} is a four-digit hexadecimal number between A000
  411.    (640 KB) and FF00 (1,020 KB), in order to avoid or select specific areas
  412.    of upper memory.
  413.  
  414.    Defaults:  Low-memory installation if any error is found during the UMB
  415.    loading; high-memory installation below lower-address limit if UMBs are
  416.    not available above such limit.
  417.  
  418.  
  419.    SWITCH QU
  420.    ~~~~~~~~~
  421.    Forces the resident to become quiescent until the next time the program is
  422.    executed, provided that neither switch QU nor ? is specified at such time.
  423.    No defaults.
  424.  
  425.  
  426.    SWITCH RC
  427.    ~~~~~~~~~
  428.    Resets the resident gate controlling the clock display at the DOS prompt,
  429.    in case a forcing of this display is desired.  No defaults.
  430.  
  431.  
  432. *  SWITCH SC
  433.    ~~~~~~~~~
  434.    Date stamp-at-cursor. Use SC to add a 170-byte module to the resident that
  435.    loads the keyboard buffer with the current date stamp (month day, year) if
  436.    the hotkey combination is pressed while the Scroll Lock is enganged (i.e.,
  437.    the <Scroll Lock> key is toggled on).
  438.  
  439.    The stamp is displayed on the screen whenever the next request to read the
  440.    keyboard via interrupt 16h is issued, and the stamp format is based on the
  441.    current country DOS information data (mm/dd/yyyy, USA; dd/mm/yyyy, Europe;
  442.    yyyy/mm/dd, Japan).  Switch SC is ignored after the resident is installed.
  443.  
  444.    No defaults.
  445.  
  446.  
  447.    SWITCH SH
  448.    ~~~~~~~~~
  449.    Display an 8-character hexadecimal stamp (used by DOS for stamping files),
  450.    which has a time resolution of 2 seconds or more.  No defaults.
  451.  
  452.  
  453.    SWITCH SJ
  454.    ~~~~~~~~~
  455.    Display the current date using the Julian format (number of days since the
  456.    1st of January, year). A leap year is defined as a year which is divisible
  457.    by 4 but not by 100, or is divisible by 400.  No defaults.
  458.  
  459.  
  460.    SWITCH ST
  461.    ~~~~~~~~~
  462.    Display the current Date/Time stamp (read from the system timer count area
  463.    of the BIOS).  Uses USA country information format.  No defaults.
  464.  
  465.  
  466. *  SWITCH SW
  467.    ~~~~~~~~~
  468.    Stopwatch to measure execution time. Use SW[2]"[path]NAME.EXT [switches]",
  469.    where <EXT>=COM or EXE; with PS/2 machines use SW2. The file specification
  470.    must be enclosed by double quotes.  To measure the execution time of batch
  471.    files or DOS internal commands use SW[2]"[path]COMMAND.COM /C [NAME.BAT or
  472.    DOS command]".  No defaults.
  473.  
  474.  
  475.    SWITCH TD
  476.    ~~~~~~~~~
  477.    Toggle clock display on and off from the DOS command line; it also permits
  478.    to display of the clock outside the normal DOS-prompt display restriction.
  479.  
  480.     TD+     Enable clock display.
  481.  
  482.     TD-     Disable clock display.
  483.  
  484.    Defaults: /TD = /TD+; no switch on installation = /TD+.
  485.  
  486.  
  487.    SWITCH TH
  488.    ~~~~~~~~~
  489.    Toggle clock display between 12-hour (1-12) and 24-hour (0-23) time format.
  490.  
  491.     TH12     Use a 12-hour format time display.
  492.  
  493.     TH24     Use a 24-hour format time display.
  494.  
  495.    Default: No switch on installation = Current country information data from
  496.    the KEYBxx keyboard driver, if one is loaded, or the default country code.
  497.  
  498.  
  499.    SWITCH TS
  500.    ~~~~~~~~~
  501.    Toggle on and off the display of seconds.
  502.  
  503.     TS+      Use <hour:minute:second> time format display.
  504.  
  505.     TS-      Use <hour:minute> time format display.
  506.  
  507.    Defaults: /TS = /TS+; no switch on installation = /TS+.
  508.  
  509.  
  510.    SWITCH UL
  511.    ~~~~~~~~~
  512.    Uninstalls the resident code from memory.  This request is disregarded if
  513.    the address of any of the interrupts intercepted by the resident has been
  514.    modified since the program was installed.  The revectoring indicates that
  515.    another resident has subsequently hooked the same interrupt(s). Thus, the
  516.    program cannot be uninstalled, because this would leave such interrupt(s)
  517.    pointing to empty memory, and the program would then crash.
  518.  
  519.    The program should be uninstalled only if it is the last resident to have
  520.    been installed. In practice, however, it can also be uninstalled when any
  521.    subsequently installed resident intercepts different interrupts; although
  522.    this increases fragmentation of memory, the resulting "hole" is innocuous
  523.    and can be used by DOS for other purposes (e.g., an environment block).
  524.  
  525.    No defaults.
  526.  
  527.  
  528.    SWITCH VA
  529.    ~~~~~~~~~
  530.    Video attributes of the clock display.
  531.  
  532.     VA?     Show current video display attributes and allow the selection
  533.         of new attributes for the display in an interactive manner.
  534.  
  535.     VAhh    Select new video display attributes from the DOS command line
  536.         where {hh} is a 2-digit hexadecimal number between 00 and FF,
  537.         representing the attribute of the background (1st digit), and
  538.         the attribute of the foreground text (2nd digit):
  539.  
  540.             0 - Black    8 - Gray
  541.             1 - Blue    9 - Intense Blue
  542.             2 - Green    A - Intense Green
  543.             3 - Cyan    B - Intense Cyan
  544.             4 - Red        C - Intense Red
  545.             5 - Magenta    D - Intense Magenta
  546.             6 - Brown    E - Yellow
  547.             7 - White    F - Intense White
  548.  
  549.                 NOTE   ------------------------------------------------------
  550.                         A background video attribute of 8 or higher normally
  551.                         produces a blinking text display.
  552.                        ------------------------------------------------------
  553.  
  554.    Default: No switch on installation = Screen attribute at cursor position.
  555.  
  556.  
  557.    SWITCH VP
  558.    ~~~~~~~~~
  559.    Video coordinates of the clock display.
  560.  
  561.     VP?     Show the current screen coordinate of the _last_ character of
  562.                 the clock display.  Variations of display format (e.g., TH or
  563.                 TS) do not affect the position of the last character.
  564.  
  565.     VPc:r   Select a new display coordinate from the DOS command line, in
  566.         which {c} is the column and <r> is the row within the current
  567.         video mode. The colon between coordinates c:r is mandatory.
  568.  
  569.    Default:  No switch on installation = Upper right corner of the screen, as
  570.    based on the current video mode (either standard BIOS, e.g. 80:01, or VESA
  571.    video mode, e.g. 132:01).
  572.  
  573.  
  574. *  SWITCH VS
  575.    ~~~~~~~~~
  576.    Time units separator. Use /VSx to define the character {x} separating time
  577.    units in the clock display.
  578.  
  579.    Default: No switch on installation = Current country information data from
  580.    the KEYBxx keyboard driver, if one is loaded, or the default country code.
  581.  
  582.  
  583.  
  584.    COMMENTS
  585.  
  586.    The comments may be added in the command line after the desired switches
  587.    and must be preceded by a semicolon.  Such comments, which may be useful
  588.    in clarifying batch files, are ignored by the program.
  589.  
  590.    Do not use the redirection and pipe characters in the comments since DOS
  591.    will attempt to implement the implied redirection or pipe request.
  592.  
  593.  
  594.  
  595.    STATUS/USAGE/HELP PANELS
  596.  
  597.    Executing the program with switch /? selected allows access to the Status/
  598.    Usage and Help panels. (If a Mouse pointing device driver, compatible with
  599.    the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
  600.    of the services provided by these panels can also be activated by pointing
  601.    the mouse to specific areas of the screen and clicking either button.  The
  602.    mouse driver state is saved prior to the display, to be restored later, if
  603.    sufficient memory is available for the panel display.)
  604.  
  605.    The STATUS/USAGE panel, which is shown first, describes status information
  606.    for the resident and its services.  If the program has not been installed,
  607.    pressing key <F3> or <D> shows the default installation parameters.  If it
  608.    is installed, pressing key <F3> or <T> sets the clock alarm to the current
  609.    time for testing purposes.
  610.  
  611.    The USAGE subpanel shows a menu for the command switches: To cycle between
  612.    the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
  613.    upon the screen button labelled <Menu>.  If the resident is installed, the
  614.    status of some 'on/off' command switches is displayed by '+' or '-' before
  615.    a given menu entry.
  616.  
  617.    Press key <F7>, or <X>, or click the mouse upon the screen button labelled
  618.    <Exit> to return to the DOS-prompt command line.
  619.  
  620.    The HELP panel provides a summary description of the program and commands,
  621.    and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
  622.    (or if the mouse is clicked upon the screen button labelled <Help>). Press
  623.    the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
  624.    down or up or the key <S> to scroll in a closed loop; alternatively, click
  625.    the mouse upon the Up/Down arrows at the top right corner of the screen to
  626.    scroll.  Press key <F1> to skip the brief program summary and position the
  627.    text on the Usage section directly.
  628.  
  629.    A beating icon to the left of the preceding USAGE panel controls the speed
  630.    of screen scrolling of the HELP panel via key <S> or the mouse arrows.  By
  631.    positioning the mouse pointer over the beating heart and clicking the left
  632.    or right mouse button, the rate of scrolling can be respectively increased
  633.    or decreased; the scrolling rate can also be changed by clicking the mouse
  634.    on the icon that becomes visible on the top line of the HELP panel (if the
  635.    mouse driver is installed).
  636.  
  637.    Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
  638.    top left corner of the screen, to return to the Status/Usage panel.  Press
  639.    key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
  640.    DOS-prompt command line.
  641.  
  642.  
  643.  
  644.    THE ENVIRONMENT VARIABLE DAC
  645.  
  646.    When the program is executed from the command line of DOS or a batch file
  647.    without an argument, it searches the DOS environment block for a variable
  648.    named 'DAC' having the format:
  649.  
  650.             DAC=/SWITCH1/SWITCH2 .... /SWITCHn
  651.  
  652.    Up to 128 characters are allowed after the equal sign. This string can be
  653.    incorporated to the environment block via the 'SET' command of DOS or via
  654.    switch EV of this program (see above).
  655.  
  656.    The variable can be used to specify a program default configuration which
  657.    can be restored just by executing the program without an argument after a
  658.    temporary change of parameters.
  659.  
  660.    While the SET command modifies the current DOS environment block, whether
  661.    it is the global or a local one, switch EV only modifies the global block
  662.    (even when the program is executed via a secondary COMMAND.COM, as in the
  663.    case of shelling out to DOS from an application).   Notice that the local
  664.    environment block is only a copy of the global block and lacks sufficient
  665.    room to increase significantly the length of a variable, and that changes
  666.    made to a local environment are not inherited by the global one.
  667.  
  668.    When searching for the environment variable, the program uses the current
  669.    DOS environment block, whether it is the global or a local one.
  670.  
  671.  
  672.  
  673.    5. INSTALLATION IN UPPER MEMORY
  674.  
  675.    This section describes in more detail aspects of the active (i.e., self-
  676.    loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
  677.    in the upper memory region.
  678.  
  679.  
  680.    UMA SELF-LOADING
  681.  
  682.    The utility can self-install the resident in the upper memory area (UMA),
  683.    that is, RAM addresses between 640 KB and 1,024 KB, via switch LH (or its
  684.    subfunction LHn).
  685.  
  686.    The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  687.    version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  688.    of the resident.  Allocation also requires the remapping of UMA addresses
  689.    by a UMB provider, when such a task is not implemented by the XMM itself.
  690.  
  691.    The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
  692.    DOS 5+.  The allocation of UMBs is controlled by DOS when these 2 drivers
  693.    are installed, and the command 'dos=umb' is added to the CONFIG.SYS file.
  694.    With DR-DOS 6+, UMB remapping and XMS support are provided by EMM386.SYS.
  695.    Other 386-specific memory managers, of course, also provide UMB remapping
  696.    and XMS support.  All XMMs require MS-DOS version 3 or later.
  697.  
  698.    Switch LHn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  699.    of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  700.    very slow access time (or to preserve regions with a fast access time for
  701.    other utilities that require faster times, such as a disk cache or screen
  702.    accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  703.    not controlled by MS-DOS 5+, but by the XMM itself. The fragmentation may
  704.    occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  705.    available UMB having the lowest UMA address is allocated, irrespective of
  706.    whether or not a (smaller) block matching the requested size is available
  707.    at a higher UMA address.  Unless the size of the available UMBs increases
  708.    with increasing memory address, first-fit allocation of a small UMB leads
  709.    to the breaking of large UMA blocks into smaller ones, thus hampering the
  710.    UMB installation of larger residents.
  711.  
  712.    If MS-DOS 5+ controls UMB allocation, the program enforces the allocation
  713.    of the resident block on a best-fit basis when {n} is not specified, that
  714.    is, all available blocks are searched (by DOS), and the one matching most
  715.    closely the size requested is allocated.
  716.  
  717.    When DOS controls UMB allocation and {n} is specified, UMBs are allocated
  718.    on a first-fit basis.  While this may contribute to UMA fragmentation, it
  719.    allows for the checking of a minimum memory limit in those cases in which
  720.    the selection or avoidance of a specific UMA region is more important.
  721.  
  722.    Hence, compared to the upper-memory loading provided by the LH command of
  723.    MS-DOS 5+, the HILOAD command of DR-DOS 5+, or a similar service provided
  724.    by other memory managers, self-loading into a UMB has several advantages,
  725.    including: (1) it does not require an initial free UMB of the size of the
  726.    entire program (as opposed to the size of its resident only), (2) it does
  727.    allow user control on the selection of the upper-memory block, and (3) it
  728.    can help reduce UMA fragmentation.
  729.  
  730.    NOTE  -------------------------------------------------------------------
  731.      The address and size of available UMBs can be obtained with MEM.EXE
  732.      (when DOS controls UMB allocation) or via the memory manager itself
  733.      (when the allocation is controlled by 386-specific memory managers.
  734.      In either case, such data can also be obtained with UMAX.EXE, a UMA
  735.      mapping utility that is distributed by the author.
  736.      -------------------------------------------------------------------
  737.  
  738.  
  739.    UMA LOADING VIA MEMORY MANAGERS, DR-DOS 5+, or MS-DOS 5+
  740.  
  741.    The resident can also be installed in the UMA via a 386-memory manager or
  742.    DR-DOS 5+/MS-DOS 5+ commands (e.g., HILOAD, LH, etc), provided that there
  743.    is a sufficiently large, free UMB for the actual size of the entire file,
  744.    and any for additional memory that may be required by the loading service
  745.    itself.
  746.  
  747.    Please note that, to minimize disk storage, the program is distributed as
  748.    a compressed EXE file that expands on execution by a factor of 2 or less.
  749.    Thus, the difference between the actual size upon loading and the nominal
  750.    directory size may create conflicts with UMA-loading services that do not
  751.    measure actual size: If the available upper memory were smaller than that
  752.    required by the decompressed file but larger than the nominal (directory)
  753.    size, such service would attempt to load the compressed file.  Of course,
  754.    the subsequent file decompression would overwrite the adjacent memory and
  755.    likely crash the memory manager or DOS!
  756.  
  757.    When attempting to load the resident in a UMB via a memory manager or DOS
  758.    5+, do NOT request in the same command line switches that result in panel
  759.    displays.  These displays require an additional 8,000 bytes of *adjacent*
  760.    free memory, and the free RAM measuring procedure used by the program can
  761.    be negated by UMA-loading services that do not update the program segment
  762.    prefix (PSP) of the program being loaded. Such switches are VA?, HK?, and
  763.    /?.
  764.  
  765.  
  766.    IDENTIFICATION IN MEMORY MAPS
  767.  
  768.    If the resident has been loaded in lower conventional memory, the program
  769.    can be identified by name in usage maps yielded by various memory mapping
  770.    utilities.  Although the program sheds its own copy of the environment at
  771.    installation time (to minimize the resident size), the name
  772.  
  773.                 dAC x.yy.z
  774.  
  775.    will appear in the command line listing for the resident, irrespective of
  776.    the actual content of the DOS command line at the time of loading; x.yy.z
  777.    are the ASCII major.minor.revision version numbers, e.g., 2.30.0.
  778.  
  779.    However, when UMB loading is mediated by the XMS directly (e.g., extended
  780.    memory manager and DOS versions 2-4, or MS-DOS 5+ not linked to the upper
  781.    memory) and the resident is selfloaded via switch LH, many memory mapping
  782.    programs do not list the allocated block, or lump it with other allocated
  783.    blocks, or fail to reveal the name of the resident.
  784.  
  785.    If the UMB allocation is controlled by MS-DOS 5+, the UMB resident can be
  786.    identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
  787.    it is listed as "Data" instead of "Program."
  788.  
  789.  
  790.  
  791.    6.  TECHNICAL INFORMATION
  792.  
  793.    INTERRUPTS
  794.  
  795.    Whenever certain conditions occur, either within a program or the system,
  796.    it becomes necessary for the processor to interrupt its current operation
  797.    and execute one of a group of special routines.  The action that triggers
  798.    the execution of such a routine is referred to as an interrupt; there are
  799.    internal interrupts, in response to a state of the CPU or an instruction,
  800.    and external interrupts, caused by signals sent to the CPU from elsewhere
  801.    in the system.
  802.  
  803.    When the program is waiting for keyboard (or mouse) user input during its
  804.    Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
  805.    DOS: INT 28h and, if running under MS-DOS 5+, function 1680h of INT 2Fh,
  806.    if this function indicates that it can process program suspension.
  807.  
  808.    INT 28h permits potential background activation of (some) other residents
  809.    while INT 2Fh/1680h permits MS-DOS 5+ to suspend the program temporarily,
  810.    and transfer control to another program.
  811.  
  812.    The program resident intercepts the following interrupts:
  813.  
  814.         INT 09h - Hardware Keyboard
  815.         INT 16h - BIOS Keyboard
  816.         INT 10h - BIOS Video
  817.         INT 1Ch - BIOS System Timer
  818.         INT 21h - DOS System Services
  819.         INT 2Fh - DOS Multiplex Services
  820.  
  821.    The resident monitors interrupt 21h and 2Fh to detect when DOS is waiting
  822.    to read the command-line user input, i.e., if the foreground operation is
  823.    at the DOS prompt, to open or close the clock display gate. The interrupt
  824.    thus gating the clock display is identified on the Stats/Usage panel.
  825.  
  826.    Interrupt 21h is used to toggle the clock display for MS-DOS, PC-DOS, and
  827.    MS-based OEM DOSes version 4 or earlier, and DR-DOS version 6 or earlier.
  828.  
  829.    For MS-DOS and PC-DOS version 5 or later, interrupt 2Fh is used if DOSKEY
  830.    or any DOS command-line editor supporting function 4810h of interrupt 2Fh
  831.    ('Read Command Line' function of DOSKEY) is installed; else interrupt 21h
  832.    is used.  See OPERATION REQUIREMENTS & CONFLICTS below when using DOS 5+.
  833.  
  834.    Although there are some applications that use the same interrupt services
  835.    to receive user input for their operations as DOS, the dCA clock will not
  836.    be displayed during these applications unless the buffer input parameters
  837.    match those of DOS at its command line.
  838.  
  839.  
  840.    INSTALLATION CHECK
  841.  
  842.    Interrupt 2Fh is also used by this program to determine if its resident is
  843.    already installed via the following INT-2Fh call,
  844.  
  845.        Registers at call:
  846.                                                                              
  847.                 BX = 'dA'    API signature
  848.                 AH = 'C'    API signature
  849.                 AL = 0        Installation check request
  850.  
  851.        Return registers if successful:
  852.  
  853.                 AX = ES        Segment    address of paragraph aligned TSR
  854.                 BX = NOT 'dA'    API countersignature
  855.     and
  856.         ES:[81h] ->    Verification signature 'dAC x.yy.z' where
  857.                 x.yy.z are the ASCII major.minor.revision
  858.                 version numbers.
  859.  
  860.    DOS ERRORLEVELS
  861.  
  862.    Upon completion, the program passes an errorlevel value which can be used
  863.    to check (via ERRORLEVEL commands in a batch file) the outcome of program
  864.    execution.  The following errorlevels may be passed:
  865.  
  866.          Value   Nature of Error
  867.          -----   ------------------------------------
  868.            255   Cyclical redundancy check failure
  869.            255   CPU type cannot execute 286/386/486 version
  870.            255   Invalid DOS version
  871.  
  872.             64   XMM not installed or XMS error in UMB load
  873.             32   Error in update of environment variable
  874.             16   Invalid hotkey combination
  875.              8   Unknown video adapter
  876.              4   Unable to uninstall resident
  877.              2   Invalid switch request
  878.              1   User <CTRL-BREAK> keypress
  879.              0   Successful execution
  880.  
  881.  
  882.    Some conditions generating errorlevels 1 through 128 may be additive, and
  883.    the resulting error value may represent more than a single error.
  884.  
  885.  
  886.    CMOS STORAGE LAYOUT
  887.  
  888.    The 64-byte, nonvolatile CMOS memory (Motorola MC146818 chip) of AT-class
  889.    and compatible machines contains information on the current time and date
  890.    as well as hardware configuration.  Addresses 16 through 32 are protected
  891.    by a 16-bit checksum.
  892.  
  893.     RTC registers:            Other registers:
  894.  
  895.     0     Seconds (BCD)                14     Diagnostics status byte
  896.     1     Alarm on seconds (BCD)       15     Shutdown status byte
  897.     2     Minutes (BCD)                16     Diskette drive type
  898.     3     Alarm on minutes (BCD)       17     Reserved
  899.     4     Hours (BCD)                  18     Hard disk drive type
  900.     5     Alarm on hours (BCD)         19     Reserved
  901.     6     Day of week (Sunday=0)       20     Equipment byte
  902.     7     Day of month (BCD)           21-22  Base memory size
  903.     8     Month (BCD)                  23-24  Extended RAM above 1MB
  904.     9     Last 2 digits year (BCD)     25     Disk 1 type (if > 15)
  905.                        26     Disk 2 type (if > 15)
  906.     10     RTC status register A       27-32  Reserved
  907.     11     RTC status register B       33-45  Reserved
  908.     12     RTC status register C       46-47  Checksum CMOS addr 16h-32
  909.     13     RTC status register D       48-49  Extended memory above 1MB
  910.                        50     Current century (BCD)
  911.                        51     Miscellaneous information
  912.                        52-63  Reserved
  913.  
  914.  
  915.    7.  OPERATION REQUIREMENTS & CONFLICTS
  916.  
  917.    The resident will not operate properly if access to the interrupts listed
  918.    above is denied by another program or resident.  This can occur with some
  919.    ill-behaved programs which take over the interrupts and fail to chain the
  920.    information to other utilities tapping the same interrupts (see TECHNICAL
  921.    INFORMATION).
  922.  
  923.    NOTE    --------------------------------------------------------------------
  924.     dAC must be installed AFTER installing DOSKEY or any similar command
  925.     line editor, as otherwise the clock will not be displayed during the
  926.     DOS prompt unless it is toggled on via the dAC hotkey (in which case
  927.     the clock display will not limited to the DOS-prompt).
  928.     --------------------------------------------------------------------
  929.  
  930.    This program is not compatible with Microsft WINDOWS.  Through monitoring
  931.    of the video mode, the time display and the hotkey access of the resident
  932.    become inactive when graphics-mode based programs, such as WINDOWS, start
  933.    up and become active again when text mode is restored.
  934.  
  935.    If you encounter conflicts with a given text-mode foreground application,
  936.    these may be avoided by loading the application via a batch file with the
  937.    following commands:
  938.  
  939.         @Echo Off
  940.         ...
  941.         [path]DAC /TD-/HK-/QU    ; clock inactive
  942.         <application>
  943.         [path]DAC /TD+/HK+    ; clock active
  944.         ...
  945.  
  946.  
  947.  
  948.    8. COPYRIGHT & LICENSE INFORMATION
  949.  
  950.    This documentation, programs, and other files distributed in this software
  951.    package (the "Software")  are the copyrighted property of FM de Monasterio
  952.    (the "Author"), who provides the Software and licenses its use. All rights
  953.    are reserved.
  954.  
  955.    The Software is not sold.  A license fee is required to use this Software.
  956.    This license does not transfer to you either the ownership of or the title
  957.    to the Software, which remain the property of the Author.  A form required
  958.    to license the Software is provided in the enclosed file DAC.REG.
  959.  
  960.  
  961.    SINGLE USER LICENSE.  Grants you use of this Software in a single computer
  962.    at a time; the Software may be transferred to another computer, as long as
  963.    it is used only in 1 computer at any time; under the license, the Software
  964.    may NOT be installed on a network server.
  965.  
  966.    SITE/15-PCs LICENSE.  Grants you use of this Software in a sigle site or a
  967.    set of sites, as long as the Software is not used in more than 15 machines
  968.    at a time, and that such machines are located exclusively within the site.
  969.    Licenses for more machines are available at discounted prices.
  970.  
  971.    SOFTWARE BUNDLING LICENSE.  Please write to the Author.
  972.  
  973.    REFUNDS POLICY.  If a problem notified within ninety (90) days of shipping
  974.    of the registered copy cannot be solved, the registration fee (but not the
  975.    shipping costs) will be refunded upon receiving a written request with the
  976.    original diskette(s) enclosed.
  977.  
  978.    UPGRADE POLICY.  Program upgrades are limited to licensed users.  Upgrades
  979.    within the same major version (e.g. release 4.00 through 4.99) are free of
  980.    charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
  981.    diskette is included with the request. Other upgrades are charged half the
  982.    (single-user/site) registration fee.  See the enclosed file DAC.UPG.
  983.  
  984.  
  985.    U.S. GOVERNMENT INFORMATION
  986.  
  987.    The Software is Commercial Computer Software under the Federal Acquisition
  988.    Regulations of the U.S. government and the Agency Supplements to them. The
  989.    Software is provided to the Federal Government and its agencies only under
  990.    the Restricted Rights Provisions of the above noted regulations applicable
  991.    to commercial software developed at private expense, and not in the public
  992.    domain. The use, duplication, or disclosure of the Software by the Federal
  993.    Government or its agencies is subject to the restrictions set forth in the
  994.    subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
  995.    clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
  996.  
  997.  
  998.    9.  DISTRIBUTION INFORMATION
  999.  
  1000.    You may distribute the Software, but you are specifically prohibited from:
  1001.  
  1002.     - Charging fees or asking donations in exchange of or payment
  1003.       for copies of this Software.
  1004.  
  1005.     - Distributing this Software with commercial products without
  1006.       the written, express permission in advance from the author.
  1007.  
  1008.     - Distributing this Software via a for-profit organization or
  1009.       group, either alone or with other software.
  1010.  
  1011.     - Changing any of the contents of this Software including the
  1012.       copyright notice and license information.
  1013.  
  1014.    You may not disassemble or otherwise reverse engineer the Software.  Other
  1015.    uses of the Software are prohibited without a written authorization signed
  1016.    by the Author.
  1017.  
  1018.    Latest program releases may be found at the Information Exchange BBS (703)
  1019.    836-0748, as a compressed archive file.
  1020.  
  1021.  
  1022.    WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
  1023.  
  1024.    The information contained in the documentation for the Software is subject
  1025.    to change without notice.
  1026.  
  1027.    The Author cannot and does not warrant that any functions contained in the
  1028.    Software will meet your requirements, or that its operations will be error
  1029.    free.  The entire risk as to the Software performance or quality, or both,
  1030.    is solely with the user and not the Author.  You assume responsibility for
  1031.    the selection of the Software to achieve your intended results and for the
  1032.    installation, use, and results obtained from the Software.
  1033.  
  1034.    The Author makes no warranty, either implied or expressed, including with-
  1035.    out limitation any warranty with respect to this Software documented here,
  1036.    its quality, performance, or fitness for a particular purpose. In no event
  1037.    shall the Author be liable to you for damages, whether direct or indirect,
  1038.    incidental, special, or consequential arising out the use of or any defect
  1039.    in the Software, even if the Author has been advised of the possibility of
  1040.    such damages, or for any claim by any other party.
  1041.  
  1042.    All other warranties of any kind, either express or implied, including but
  1043.    not limited to the implied warranties of merchantability and fitness for a
  1044.    particular purpose, are expressly excluded.
  1045.  
  1046.    By using the Software, you acknowledge (1) to have read and understood all
  1047.    parts of this document and (2) to have agreed with and accepted all of its
  1048.    terms and provisions without any reservation.
  1049.  
  1050.    For information on the terms of the Limited Warranty for licensed Software
  1051.    copies or any other information on this program, please write to:
  1052.  
  1053.                 FM de Monasterio
  1054.                 P.O. Box 219
  1055.                 Cabin John, MD 20818-0219
  1056.                 USA
  1057.  
  1058.     ┌─────────────────────────────────────────────────────────────┐
  1059.     │ Trademarked names are the property of the respective owners │
  1060.     └─────────────────────────────────────────────────────────────┘
  1061. [end]
  1062.