home *** CD-ROM | disk | FTP | other *** search
/ World of Graphics / WOGRAPH.BIN / 842.ANSIPLUS.DOC < prev    next >
Text File  |  1993-05-18  |  109KB  |  2,479 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                   ANSIPLUS Enhanced Console Device Driver
  24.  
  25.                          User's Guide, Release 3.00
  26.  
  27.                            Shareware Documentation
  28.  
  29.                                 May 18, 1993
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                COPYRIGHT (C) 1992, 1993 by Kristofer Sweger
  63.                      P.O. Box 378, Larkspur, CA 94977
  64.                            All Rights Reserved
  65.  
  66.  
  67. The ANSIPLUS console device driver, supporting utility programs, and this User's
  68. Guide are Copyrighted (C) 1992, 1993 by Kristofer Sweger. This software and
  69. accompanying documentation are protected by United States Copyright law and also
  70. by International Treaty provisions. The ANSIPLUS computer program and this
  71. documentation may not be reproduced, copied, disclosed, or transferred in any
  72. form (machine-readable or photo-copy included), except as provided here under
  73. "Limited License" (see page 3), without the express prior written approval of
  74. the author.
  75.  
  76. U.S. Government Information: Use, duplication, or disclosure by the U.S.
  77. Government of the computer software and documentation in this package shall be
  78. subject to the restricted rights applicable to commercial computer software as
  79. set forth in subdivision (b)(3)(ii) of the Rights in Technical Data and Computer
  80. Software clause at 252.227-7013 (DFARS 52.227-7013). The Contractor/
  81. manufacturer is: Kristofer Sweger, P.O. Box 378, Larkspur, CA 94977.
  82.  
  83.  
  84.                           DISCLAIMER OF WARRANTY
  85.  
  86. Kristofer Sweger makes no warranty of any kind, express or implied, including,
  87. without limitation, any warranties of performance, merchantability and/or
  88. fitness for a particular purpose. This software and accompanying documentation
  89. are provided "as is," without warranty of any kind. The entire risk as to
  90. results and performance is assumed by you.
  91.  
  92. Kristofer Sweger shall not be liable for any damages, whether direct, indirect,
  93. consequential or incidental arising from a failure of the ANSIPLUS programs to
  94. operate in the manner desired by the user. Nor shall Kristofer Sweger be liable
  95. for any data, property or other damages which may be caused directly or
  96. indirectly by use of or inability to use the software, even if Kristofer Sweger
  97. has been advised of the possibility of such damages. In no event shall the
  98. liability for any damages exceed the price paid for the license to use the
  99. software, regardless of the form and/or extent of the claim. By using the
  100. software you agree to this.
  101.  
  102. The author further reserves the right to revise or alter the contents of this
  103. documentation or the ANSIPLUS software package from time to time without
  104. notifying any person or group of such changes or alterations.
  105.  
  106. The Limited License and Disclaimer of Warranty shall be construed, interpreted
  107. and governed by the laws of the State of California.
  108.  
  109.                                 TRADEMARKS
  110.  
  111. Microsoft and MS-DOS are registered trademarks of Microsoft Corporation. IBM
  112. and PS/2 are registered trademarks of IBM Corporation. Windows is a trademark
  113. of Microsoft Corporation. Other trademarked names may appear in this manual.
  114. The author states that he is using the trademarked names only for editorial
  115. purposes, and to the benefit of the trademark owner, with no intention of
  116. infringing upon any trademark.
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.                              Table of Contents
  125.  
  126.  
  127.  
  128.   I. Introduction
  129.  
  130.           Product description . . . . . . . . . . . . . . . . . . . . .  1
  131.           Registration  . . . . . . . . . . . . . . . . . . . . . . . .  2
  132.           Limited License . . . . . . . . . . . . . . . . . . . . . . .  3
  133.           Technical Support . . . . . . . . . . . . . . . . . . . . . .  4
  134.  
  135.  II. Features summary
  136.  
  137.           VGA/EGA display features  . . . . . . . . . . . . . . . . . .  5
  138.           Integrated console functions  . . . . . . . . . . . . . . . .  6
  139.           Other ANSIPLUS features . . . . . . . . . . . . . . . . . . .  7
  140.  
  141. III. Installing ANSIPLUS
  142.  
  143.           Installing the device driver and utility programs . . . . . . 10
  144.           Changing the ANSIPLUS startup configuration . . . . . . . . . 12
  145.  
  146.  IV. Using ANSIPLUS
  147.  
  148.           Special keyboard functions  . . . . . . . . . . . . . . . . . 19
  149.           Selecting and defining colors . . . . . . . . . . . . . . . . 20
  150.           Controlling other ANSIPLUS features . . . . . . . . . . . . . 24
  151.           Creating application batch files  . . . . . . . . . . . . . . 28
  152.           Editing ANSI escape sequence programs . . . . . . . . . . . . 31
  153.  
  154.   V. ANSIPLUS escape sequences
  155.  
  156.           Overview  . . . . . . . . . . . . . . . . . . . . . . . . . . 32
  157.  
  158.  VI. Technical notes
  159.  
  160.           ANSIPLUS and Windows 3  . . . . . . . . . . . . . . . . . . . 34
  161.           ANSIPLUS and the 4DOS or NDOS command shells  . . . . . . . . 36
  162.           ANSIPLUS extensions and the ANSI standard . . . . . . . . . . 36
  163.           Escape sequence recognizer enhancements . . . . . . . . . . . 37
  164.           Direct access to video RAM vs. BIOS calls . . . . . . . . . . 37
  165.           Installation checks . . . . . . . . . . . . . . . . . . . . . 37
  166.           Hooked interrupts . . . . . . . . . . . . . . . . . . . . . . 38
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. I.   INTRODUCTION
  179.  
  180. The DOS console device driver provides the critical interface between you and
  181. your personal computer. It controls the output you see from DOS and accepts
  182. your keyboard input, and you spend a whole lot of time using it. Unfortunately,
  183. the standard CON and ANSI device drivers supplied with DOS do not take full
  184. advantage of the capabilities of the major video controllers currently in use:
  185. VGA and EGA. In addition, the standard personal computer BIOS (the "Basic Input
  186. Output System" that is part of the computer's hardware) has limitations that
  187. have had to be addressed individually by several TSR (Terminate and Stay
  188. Resident) programs or device drivers, by work-arounds and special drivers in
  189. major application programs, or by development of graphical user interfaces such
  190. as Windows.
  191.  
  192. The ANSIPLUS console device driver integrates major console elements missing
  193. from DOS and the personal computer BIOS into a single compact device driver that
  194. can easily be controlled and personalized. With ANSIPLUS installed:
  195.  
  196.  * User interaction with the DOS command processor and many applications will be
  197.    significantly improved.
  198.  
  199.  * Screen output will be faster than with DOS's ANSI and non-ANSI drivers.
  200.  
  201.  * The user will have complete control over colors and VGA/EGA capabilities.
  202.  
  203.  * Users of Windows 3 will have access to ANSIPLUS features in all windowed
  204.    and full screen DOS sessions.
  205.  
  206.  * The user will also benefit from all the other display and keyboard features
  207.    provided by ANSIPLUS.
  208.  
  209. This is a fully functional Shareware copy of the ANSIPLUS product. As such, it
  210. is made available to the general computing public for evaluation. Users are
  211. licensed to operate ANSIPLUS on their personal computers for the purpose of
  212. test and evaluation for a limited trial period of thirty days. After
  213. evaluation, if the user decides the ANSIPLUS programs are not of sufficient
  214. merit to warrant purchase through registration with Kristofer Sweger, all
  215. ANSIPLUS programs should be removed from their personal computer. If ANSIPLUS
  216. is found to be useful and is in regular use, then registration is required.
  217.  
  218. This manual is organized in six chapters:
  219.  
  220.  * Chapter 1 introduces ANSIPLUS and covers product licensing and support;
  221.  
  222.  * Chapter 2 summarizes ANSIPLUS features for those who want to know what it
  223.    can do;
  224.  
  225.  * Chapter 3 discusses installing and configuring ANSIPLUS on your computer;
  226.  
  227.  * Chapter 4 describes keyboard functions and utility programs accessible to
  228.    users after installation;
  229.  
  230.  * Chapter 5 lists ANSIPLUS escape sequences; and
  231.  
  232.  * Chapter 6 contains several technical notes of interest to programmers and
  233.    others.
  234.  
  235.                                      1
  236.  
  237.  
  238.                                 REGISTRATION
  239.  
  240. By paying the registration fee for ANSIPLUS, registered users are granted a
  241. license to use the software on any single computer system. Site licenses for
  242. use of ANSIPLUS on multiple computers are available upon request at a
  243. substantially reduced fee per machine. Registered users also receive:
  244.  
  245.  * The TSR-capable registered version of the ANSIPLUS driver, ANSIPLUS.exe. This
  246.    driver may be loaded into memory from the DOS command line, from a batch file
  247.    (AUTOEXEC.bat), or from CONFIG.sys with DEVICE=, DEVICEHIGH=, or INSTALL=
  248.    commands. The Registered ANSIPLUS driver also doesn't have that pesky time
  249.    delay in the sign-on message. The registered version is NOT Shareware, so it
  250.    may not be copied for others.
  251.  
  252.  * A printed copy of the ANSIPLUS manual, which contains detailed documentation
  253.    on using the ANSIPLUS Escape sequences. This information is provided only in
  254.    the printed manual, and is not included in either the Shareware version or on
  255.    the Registered diskettes.
  256.  
  257.  * The most recent versions of the ANSIPLUS utility programs and other files in
  258.    the ANSIPLUS package.
  259.  
  260.  * Free BBS updates. Registered ANSIPLUS users can obtain free updates by
  261.    installing future Shareware versions of ANSIPLUS over their registered
  262.    copies. The ANSIPLUS installation program will automatically register a
  263.    Shareware copy when it is installed on a disk that boots a registered copy.
  264.  
  265. Registration helps support further improvements to ANSIPLUS. The easiest way to
  266. register ANSIPLUS is to print out the registration form file, REGISTER.pls, fill
  267. it out, and mail with payment to:
  268.  
  269.           Kristofer Sweger
  270.           P.O. Box 378
  271.           Larkspur, CA 94977
  272.  
  273. Payment may be by check, money order, Eurocheque in your own currency at current
  274. exchange rates, or credit card (Visa or Master Card only). Credit card orders
  275. are also accepted by telephone on the ANSIPLUS support line, 415/924-5407.
  276.  
  277. Pricing is shown in REGISTER.pls. California residents or businesses operating
  278. in California must also add sales tax.
  279.  
  280. Be sure to specify whether you want a 3.5" or 5.25" diskette, and to include the
  281. mailing address for your registered ANSIPLUS and manual. 
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.                                      2
  295.  
  296.  
  297.                               LIMITED LICENSE
  298.  
  299. Non-registered users of ANSIPLUS are licensed ONLY to evaluate the programs and
  300. device driver for up to thirty days for the sole purpose of determining whether
  301. or not it meets their requirements. All other use requires registration. Any
  302. other use of non-registered copies of ANSIPLUS by any person, business,
  303. corporation, or government organization, is not permitted.
  304.  
  305. Registered copies of ANSIPLUS may NOT be copied for others. However, permission
  306. is hereby granted for individuals to copy the non-registered ANSIPLUS package
  307. for their own use (for evaluation and backup purposes) or for other individuals
  308. to evaluate, provided all of the following conditions are met:
  309.  
  310.  * The ANSIPLUS package, including all related program and documentation files,
  311.    cannot be modified in any way and must be distributed in its entirety, with
  312.    no additions. The following computer files constitute the ANSIPLUS Shareware
  313.    package:
  314.  
  315.      ANSIPLUS.sys        ANSIPLUS Shareware console device driver
  316.      ANSIPLUS.doc        ANSIPLUS Shareware documentation
  317.      SETCOLOR.exe        Color control utility program
  318.      SETAPLUS.exe        Driver features control utility program
  319.      ANSICOM.exe         ANSI escape sequence editor
  320.      NEWAPLUS.exe        ANSIPLUS bootup configuration program
  321.      APLUSLIB.exe        Execution library for the utility programs
  322.      SETCOLOR.sch        Color schemes file for SETCOLOR.exe
  323.      CONSETUP.com        Sample escape sequence program
  324.      PUSHVID.com         Save current video mode, video page and colors
  325.      POPVID.com          Restore saved video mode, page and colors
  326.      LOCKPAL.com         Lock the 16-color palette
  327.      UNLOKPAL.com        Unlock the 16-color palette
  328.      APLUS.pif           Sample Windows PIF file
  329.      INSTALL.exe         Installation program
  330.      INSTALL.inf         Installation control file
  331.      REGISTER.pls        ANSIPLUS registration form
  332.      README.pls          Release notes
  333.  
  334.  * No price or other compensation may be charged for the ANSIPLUS package. A
  335.    distribution cost may be charged for the cost of the diskette, shipping and
  336.    handling, as long as the total per disk does not exceed US $6.00 in the
  337.    United States and Canada, or US $10.00 internationally.
  338.  
  339.  * The ANSIPLUS package cannot be bundled or included with other goods or
  340.    services, nor can it be included in any commercial software packaging offer,
  341.    nor can it be "rented" or "leased" to others, without specific prior written
  342.    agreement from Kristofer Sweger.
  343.  
  344. All rights not expressly granted here are reserved to Kristofer Sweger.
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.                                      3
  354.  
  355.  
  356.  
  357.                              TECHNICAL SUPPORT
  358.  
  359. We want our users to be satisfied, and we find the interaction with real users
  360. of ANSIPLUS to be of great value. Many ANSIPLUS features are the result of user
  361. input. If you have a problem evaluating ANSIPLUS or want to make a suggestion,
  362. comment, or complaint, please contact us immediately, whether you have
  363. registered or not. We can be reached by mail at P.O. Box 378, Larkspur, CA
  364. 94977, or by telephone at 415/924-5407.
  365.  
  366. The ANSIPLUS technical support telephone line (415/924-5407) can be called
  367. weekdays from 10:00 AM to 5:00 PM, Pacific Time. We ask that you recognize that
  368. this service can easily be overwhelmed by calls with questions that are already
  369. answered in the documentation provided. When you do call, please try to have all
  370. your questions (and any necessary supporting data) ready so that we can deal
  371. with them efficiently in one short session.
  372.  
  373. If you are reporting a software problem, we will need specific information about
  374. your computer system and how to recreate the problem:
  375.  
  376.  * What is the problem, or what is not behaving as expected?
  377.  
  378.  * What exactly must be done to cause the problem to appear?
  379.  
  380.  * What did you do to try to fix or work around the problem?
  381.  
  382.  * What is your software and hardware environment? This includes the version of
  383.    ANSIPLUS you are using, your computer type, DOS version, video controller,
  384.    any memory managers, other device drivers or TSRs loaded, and any other
  385.    software or hardware in use at the time.
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.                                      4
  413.  
  414. II.  FEATURES SUMMARY
  415.  
  416. Although many of the ANSIPLUS features described here may seem technical, each
  417. meets a need, and they all cooperate as parts of one compact console device
  418. driver. In this chapter, they have been collected into three major groups:
  419. VGA/EGA display features, integrated console functions, and other ANSIPLUS
  420. features. The remaining chapters give details regarding specific features.
  421.  
  422.  
  423.                          VGA/EGA DISPLAY FEATURES
  424.  
  425. The ANSIPLUS enhanced DOS console device driver is tailored to take advantage of
  426. VGA and EGA display capabilities:
  427.  
  428. Mode recognition    For any VGA/EGA display mode, the driver can properly
  429.                     address the entire screen. ANSIPLUS automatically recognizes
  430.                     and adapts to various VGA or EGA screen modes, both text and
  431.                     graphics, including extended modes with large numbers of
  432.                     lines and/or columns. ANSIPLUS can also automatically adapt
  433.                     to and compensate for older video controllers with very
  434.                     limited numbers of colors or shades (i.e., CGA or monochrome
  435.                     boards).
  436.  
  437. Speed               In text and in 16-color VGA/EGA graphics display modes, the
  438.                     driver bypasses the ROM BIOS and goes straight to the video
  439.                     RAM, so it can operate much faster than either the original
  440.                     DOS console driver or the DOS ANSI driver. Programs that
  441.                     write large character strings to the standard output
  442.                     (console) file handle in "raw" mode can generate their
  443.                     output many times faster.
  444.  
  445. Color selection     ANSIPLUS provides full control over colors. In color text
  446.                     modes, sixteen foreground and background colors are
  447.                     supported. In 16-color VGA/EGA graphics modes, ANSIPLUS
  448.                     allows mixing of background colors, for a total of 136
  449.                     possible background colors. In 256-color VGA graphics modes,
  450.                     all 256 foreground and background colors are supported.
  451.  
  452. Palette control     Control over VGA/EGA palette registers and VGA DAC registers
  453.                     allows selecting and maintaining colors using the video
  454.                     controller's full capabilities. The driver traps all video
  455.                     mode changes, and installs the palette and/or DAC colors of
  456.                     the user's, or of ANSIPLUS's color scheme. Applications that
  457.                     set their own palettes will continue to do so, but those
  458.                     that do not can now use custom color choices. Blinking can
  459.                     also be kept disabled to allow 16 background colors in text
  460.                     modes.
  461.  
  462. Text size           ANSIPLUS allows selection of alternate VGA/EGA character
  463.                     sets, giving control over the character height, and thus the
  464.                     number of text lines used in any VGA/EGA video mode.
  465.  
  466. Smooth scrolling    ANSIPLUS supports smooth scrolling of the screen (for fast
  467.                     CPUs with 16-bit VGA/EGA), so the screen can be read while
  468.                     it is moving. Options are provided to control the use and
  469.                     rate of smooth scrolling.
  470.  
  471.                                        5
  472.  
  473.  
  474. Extended modes      The ANSI Set Mode control sequence has been expanded to
  475.                     allow specifying VGA/EGA modes that are based on full AX
  476.                     and/or BX CPU register values, extending ANSI-type control
  477.                     to Super VGA/EGA controllers that require such register
  478.                     settings. Super VGA controllers that conform to the VESA
  479.                     standard are also automatically recognized, and VESA
  480.                     extended set mode calls are made by the ANSIPLUS driver for
  481.                     modes of 100h or higher.
  482.  
  483.  
  484.                        INTEGRATED CONSOLE FUNCTIONS
  485.  
  486. The ANSIPLUS driver efficiently integrates several useful console functions that
  487. in the past had to be provided by separate TSR programs or device drivers:
  488.  
  489. Screen saver        A screen saver blanks the VGA/EGA screen after several
  490.                     minutes of screen, keyboard and mouse inactivity. The screen
  491.                     can be brought back by any keystroke (including shift keys)
  492.                     or by mouse movement or buttons. The screen saver feature
  493.                     can be enabled or disabled by the user, and is automatically
  494.                     disabled in certain situations.
  495.  
  496. Keyboard buffer     As many PC users eventually discover, the standard personal
  497.                     computer BIOS provides a keyboard input type-ahead buffer of
  498.                     only 15 characters, which is enough for only the shortest of
  499.                     commands. ANSIPLUS extends this by 113 keystrokes for a
  500.                     total type-ahead of 128 keystrokes (configurable for more if
  501.                     necessary).
  502.  
  503. Repeated keys       Another problem with the standard BIOS keystroke buffer
  504.                     occurs when keys are held down too long, and the buffer
  505.                     rapidly fills with repeated (or "typematic") keys, which
  506.                     are then processed long after the key is lifted. Spreadsheet
  507.                     users often experience this when holding down one of the
  508.                     arrow keys. ANSIPLUS disables repeat key type-ahead, but
  509.                     does allow repeat keys that are immediately consumed by
  510.                     programs, so the type-ahead buffer cannot be filled with
  511.                     unintended keystrokes. Repeated digits are also suppressed,
  512.                     making it impossible to inaccurately enter a number just
  513.                     because a key is held down too long. The rate at which
  514.                     repeated keys are generated is also configurable.
  515.  
  516. Key stacking        ANSIPLUS supports key stacking, which can load the keyboard
  517.                     buffer with a series of keystrokes and feed them into
  518.                     programs or commands as if they had been typed at the
  519.                     keyboard. This feature can be useful for automating startup
  520.                     of programs, software testing, and demonstrations. Keys can
  521.                     be added to the buffer by ANSI escape sequence, by ANSIPLUS
  522.                     utility program command, or, for users of the 4DOS 4.0+ or
  523.                     NDOS Version 7.0 command shells, by KEYSTACK command.
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.                                        6
  531.  
  532. Scroll-back         Every DOS user sooner or later needs to recall something
  533.                     that was on the screen, but has scrolled off the top.
  534.                     Programmers often encounter this with error messages, and
  535.                     other users with file directory listings. To address this
  536.                     problem, ANSIPLUS supports screen scroll-back: all lines
  537.                     scrolled and cleared from the screen in text modes are
  538.                     captured by the ANSIPLUS driver so that the user can stop at
  539.                     any time and browse through recent screen contents.
  540.  
  541. Scroll lock         Large directory listings and other rapidly generated screen
  542.                     output can often fly by on the screen too fast to be read.
  543.                     Hitting the Scroll Lock key will freeze the screen when
  544.                     ANSIPLUS or the BIOS next tries to scroll it. When the
  545.                     screen is frozen, several keystroke options allow control
  546.                     over subsequent screen output.
  547.  
  548. Beep tone           The standard personal computer BIOS Control-G beep tone
  549.                     generator waits in a programmed loop until sound output is
  550.                     completed. Sometimes, error or other conditions detected in
  551.                     a running program can generate a rapid sequence of beeps,
  552.                     and the computer will just hang for what seems an eternity,
  553.                     beeping away. ANSIPLUS has an interrupt-controlled tone
  554.                     generator that lets the beep tone be finished in parallel
  555.                     with subsequent processing. Multiple beeps are ignored if a
  556.                     tone is currently being generated, so programs cannot be
  557.                     slowed down by a rapid series of beeps. Options are provided
  558.                     for defining the tone and using or not using the tone
  559.                     generator.
  560.  
  561.                           OTHER ANSIPLUS FEATURES
  562.  
  563. Other ANSIPLUS features include:
  564.  
  565. User control        Menu driven, mouse controllable utilities give the user full
  566.                     control over selected colors, color palettes, border colors,
  567.                     video modes, text height, key reassignment, beep tone
  568.                     definition, driver table sizes, and all other configurable
  569.                     features.
  570.  
  571. Loading options     At load time, the ANSIPLUS driver can divide itself into
  572.                     sharable code (about 18K) and unshared code/data (about
  573.                     4K) sections, placing the shared code in either XMS upper
  574.                     memory blocks (from 640K to 1M) or in high memory (1M to
  575.                     1M+64K), and leaving only the unshared part in low memory.
  576.                     The registered driver can be loaded as either a TSR program
  577.                     or a device driver.
  578.  
  579. Bright key echo     ANSIPLUS highlights user-typed keys when they are displayed
  580.                     by DOS on the screen, giving a clear visual separation of
  581.                     typed entries from computer output. If unwanted, this
  582.                     feature can be disabled.
  583.  
  584. ANSI support        All DOS ANSI.sys escape sequences are supported, plus
  585.                     additional ANSI/VT-100 escape sequences for clearing the
  586.                     screen, erasing lines, inserting and deleting lines, and
  587.                     inserting and deleting characters.
  588.  
  589.                                        7
  590.  
  591.  
  592. Windows aware       ANSIPLUS features have been tested and adjusted for maximum
  593.                     compatibility in Windows DOS sessions, both full screen and
  594.                     within a window. The ANSIPLUS driver detects when Windows
  595.                     is running, and automatically disables or alters certain
  596.                     features, such as the screen blanker, that may interfere.
  597.  
  598. Mono/CGA support    ANSIPLUS should give reasonable and readable displays in all
  599.                     display modes, including those with a very limited number of
  600.                     colors or shades. ANSI-type programs written in terms of 16
  601.                     colors will be executable on machines with simpler video
  602.                     capabilities, if ANSIPLUS is running on that machine.
  603.  
  604. Key processing      ANSIPLUS includes several special key processing options:
  605.  
  606.                     (1) the shift-alphabetic keys can cause Caps-Lock to
  607.                         unlock, much like a typewriter releases its shift lock
  608.                         whenever a shift key is pressed;
  609.  
  610.                     (2) the Enter key can restore Caps-Lock after it was
  611.                         unlocked by a shift-alphabetic key, thus restoring Caps
  612.                         on completion of an "entry";
  613.  
  614.                     (3) Control-C can cause a Control-Break, for those users who
  615.                         prefer the Control-C key; and
  616.  
  617.                     (4) the DOS "Non-Destructive" input function can return the
  618.                         last key in the keyboard buffer instead of the first, so
  619.                         that it always reflects what has last been typed.
  620.  
  621. Key reassignment    ANSIPLUS has the ability to translate single keystrokes to
  622.                     full commands or other pre-determined key sequences. Both
  623.                     expansion of keys and changes to key reassignments can also
  624.                     be enabled or disabled independently. When key reassignment
  625.                     changes are disabled, a distinctive tone sounds on any
  626.                     attempt to redefine a key, making it easy to detect ANSI-
  627.                     type files that contain key redefinitions.
  628.  
  629. Line wrapping       When the length of a line displayed on the screen exactly
  630.                     equals the width of the screen, the standard DOS console
  631.                     device drivers cause a blank line to be output. ANSIPLUS
  632.                     suppresses output of these unintended blank lines.
  633.  
  634. Graphics cursor     The DOS console drivers do not show a cursor on the screen
  635.                     when in graphics modes. ANSIPLUS can display a cursor when
  636.                     keyed entries are requested by DOS in a graphics mode.
  637.  
  638. BIOS TTY ANSI       ANSIPLUS provides an option to trap and execute ANSI control
  639.                     sequences in BIOS Int 10h Write TTY output as well as in DOS
  640.                     standard console output.
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.                                        8
  649.  
  650.  
  651. Transparent mode    On occasion, it is undesirable to have the ANSI driver fill
  652.                     in the background color of each character space as it writes
  653.                     characters. ANSIPLUS includes a "transparent" background
  654.                     mode that will write each output character in the current
  655.                     foreground color over whatever background is currently at
  656.                     the cursor position.
  657.  
  658. Text treatments     In 16-color graphics modes, ANSIPLUS can apply bold,
  659.                     underline, black shadow, slant (italics), or black outline
  660.                     text treatments, in any combination, to output characters
  661.                     for emphasis or improved legibility.
  662.  
  663. Esc pass-through    Unlike the ANSI.sys driver, the Esc character is trapped by
  664.                     ANSIPLUS only when followed by a left bracket ("["), so
  665.                     programs that write Esc (a left arrow) to the screen will
  666.                     continue to do so after ANSIPLUS is installed.
  667.  
  668. VGA mono emulation  Because application developers with VGA color monitors
  669.                     sometimes need to see how their systems will look when run
  670.                     with a monochrome VGA monitor, ANSIPLUS provides an option
  671.                     to emulate a monochrome VGA monitor on a color monitor.
  672.  
  673. Status reporting    To allow programs to query ANSIPLUS about more than just the
  674.                     current cursor location, the device status report has been
  675.                     extended to report information about the current video mode,
  676.                     video page, numbers of rows, columns and colors, current or
  677.                     default definition of colors, and more.
  678.  
  679. Installation checks To facilitate developing applications that can use ANSIPLUS
  680.                     features, ANSIPLUS responds to standard Int 2Fh ANSI.sys
  681.                     installation checks, and includes extensions that can
  682.                     distinguish ANSIPLUS from ANSI.sys.
  683.  
  684. Free BBS Updates    When a Shareware copy of ANSIPLUS is installed on a disk
  685.                     that boots a Registered copy, the INSTALL program will
  686.                     convert the new Shareware copy into a Registered copy with
  687.                     the same serial number and signon message as the Registered
  688.                     ANSIPLUS already on the disk. Registered users can thus
  689.                     benefit from future improvements to ANSIPLUS at no cost, if
  690.                     they have access to a bulletin board system (BBS) that
  691.                     maintains recent Shareware versions of ANSIPLUS.
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.                                        9
  708.  
  709. III. INSTALLING ANSIPLUS
  710.  
  711.  
  712.         INSTALLING THE ANSIPLUS DEVICE DRIVER AND UTILITY PROGRAMS
  713.  
  714. The ANSIPLUS package includes an installation and configuration program called
  715. INSTALL.exe, which should properly handle most installations. INSTALL analyzes
  716. the runtime environment, CONFIG.sys and AUTOEXEC.bat of the target drive,
  717. locates the source files, copies ANSIPLUS to the target drive (or to any
  718. sub-directories of the user's choice), and updates CONFIG.sys and AUTOEXEC.bat.
  719.  
  720. Starting with MS-DOS 6.0, the CONFIG.sys file can contain menus and multiple
  721. configuration blocks. When a CONFIG.sys menu is being used, a new ANSIPLUS
  722. installation will require selecting a configuration block to receive the
  723. ANSIPLUS DEVICE= command, and an update will require selecting a block that
  724. either already refers to ANSIPLUS, or to which it will be added. INSTALL makes
  725. an initial choice of configuration block, and this can be corrected by the user
  726. before copying the ANSIPLUS release files by using the "Revise Parameters"
  727. option on the Installation menu.
  728.  
  729. The INSTALL program also gives an opportunity (via the Installation menu) to set
  730. the destination directory for each installed file or for classes of files. If
  731. the directory is not specified for a file, the following assumptions will apply:
  732.  
  733.  * If an ANSIPLUS file name matches the name of a file in the default directory,
  734.    root directory, or on the system PATH of the destination drive, then the
  735.    ANSIPLUS file will be copied over the matched file (i.e., updated). This is
  736.    intended to make installation of ANSIPLUS updates a snap.
  737.  
  738.  * New files are added to a directory for each class of file (i.e., driver,
  739.    utility program, or documentation/other). If any file in the class is being
  740.    updated, then the class directory will be the same as the updated files.
  741.    Otherwise, the class directory will be "\ANSIPLUS".
  742.  
  743. It is recommended that you put all of the ANSIPLUS utility programs (SETCOLOR,
  744. SETAPLUS, ANSICOM, NEWAPLUS and APLUSLIB) on your system PATH so that they can
  745. be used easily. It is critical that the execution library, APLUSLIB.exe, be
  746. located either in the same directory as the other utility programs or on the
  747. system PATH. If it is not, the utility programs will not run! You may also want
  748. to place the ANSIPLUS.sys device driver in the root directory.
  749.  
  750. For those who are not content to use default driver feature and other settings,
  751. after the release files have been copied to the target drive, the configuration
  752. section of the INSTALL program lets the user set the startup (boot) driver table
  753. sizes, colors, and feature settings, as well as high memory loading options that
  754. affect CONFIG.sys. These configurations can be performed either at installation
  755. time, or any time later on an installed drive by using the NEWAPLUS.exe program.
  756. Context sensitive help (via the F1 key) is provided for all entries. Startup
  757. configuration changes are described in the following section, starting on page
  758. 12.
  759.  
  760. Before installing ANSIPLUS, or any other new device driver, be sure you have a
  761. bootable floppy disk as insurance against trouble getting your system to run
  762. after the device driver is installed.
  763.  
  764.  
  765.  
  766.                                        10
  767.  
  768.  
  769. International users should be aware of the following:
  770.  
  771.  * If you are using the KEYB program to set up your keyboard, the following
  772.    command MUST be executed after you load KEYB, otherwise most ANSIPLUS
  773.    keyboard related features will not work:
  774.  
  775.             SETAPLUS LINK KEYEVENT
  776.  
  777.    The INSTALL program will automatically add this command to your AUTOEXEC.bat
  778.    file if it finds a reference in it to KEYB.
  779.  
  780.  * If you are using the DISPLAY.sys device driver for code page switching, the
  781.    ANSIPLUS.sys device driver must be installed before DISPLAY.sys in your
  782.    CONFIG.sys file. The INSTALL program will automatically handle this in most
  783.    cases. However, under DOS 6.0, if ANSIPLUS is installed in a configuration
  784.    block that will be processed by MS-DOS after the configuration block that
  785.    contains DISPLAY.sys, this situation will not be detected by INSTALL. This
  786.    must be corrected by directly editing CONFIG.sys.
  787.  
  788. The following examples illustrate using INSTALL to install ANSIPLUS:
  789.  
  790.  * If you received ANSIPLUS on a floppy disk and want to install it on your hard
  791.    disk, use the following installation procedure:
  792.  
  793.      (1) Set the default directory to the hard disk (i.e., get a C> prompt).
  794.  
  795.      (2) Insert the ANSIPLUS diskette in drive A: (or other floppy drive).
  796.  
  797.      (3) Enter the following command:
  798.  
  799.             A:INSTALL
  800.  
  801.  * If you received ANSIPLUS as a ZIP file (named ANSIPLUS.zip in this example),
  802.    use the following procedure:
  803.  
  804.      (1) Create a temporary sub-directory  on the hard disk to contain the
  805.          unzipped ANSIPLUS files. Move ANSIPLUS.zip to this directory and make
  806.          it be the default directory. This directory must be different from the
  807.          directory that will receive the installed ANSIPLUS files.
  808.  
  809.      (2) Unzip the files into the directory with the command:
  810.  
  811.             PKUNZIP ANSIPLUS
  812.  
  813.      (3) Then enter the command:
  814.             INSTALL
  815.  
  816.           After installation is complete, you may delete the files in the
  817.           temporary sub-directory (but keep the ZIP file as a backup).
  818.  
  819.  * To install ANSIPLUS on bootable disk B:, from hard disk directory C:\APLUS,
  820.    enter the command:
  821.  
  822.             C:\APLUS\INSTALL B:
  823.  
  824.  
  825.                                        11
  826.  
  827.                 CHANGING THE ANSIPLUS STARTUP CONFIGURATION
  828.  
  829. Changes to the startup configuration for ANSIPLUS are made with the NEWAPLUS.exe
  830. program. (INSTALL also lets you make these changes, but INSTALL.exe is actually
  831. a tiny program that calls NEWAPLUS.exe to perform the installation.) You run
  832. NEWAPLUS with a command of the form:
  833.  
  834.             NEWAPLUS <target>
  835.  
  836. where <target> is the drive letter for a bootable diskette or hard disk
  837. partition with ANSIPLUS installed. If <target> is omitted, the drive that was
  838. originally used to load MS-DOS will be selected. After NEWAPLUS confirms that
  839. the target disk contains ANSIPLUS, you are presented with a startup
  840. configuration menu that has nine revision option groups:
  841.  
  842. Initial Colors
  843.  
  844.  * Color selection sub-menus let you choose from the current 16-color palette
  845.    the screen colors that will be used for text foreground and background when
  846.    the system starts up. ANSIPLUS maintains two sets of foreground and
  847.    background colors: those that are currently on the screen, and "default"
  848.    colors to be applied when an ANSI Set Graphics Rendition reset (i.e., Esc
  849.    [0m) is detected. The startup selections for both color combinations can be
  850.    controlled from this sub-menu.
  851.  
  852. Palette Definition
  853.  
  854.  * The color palette determines the precise colors you will see in 16 color
  855.    video modes. ANSIPLUS maintains two palettes: the current palette on the
  856.    screen, and a default palette that is loaded when ANSIPLUS first starts and
  857.    whenever the video display mode is changed. All changes you make using the
  858.    NEWAPLUS color palette option will apply to the default palette.
  859.  
  860. Border Color
  861.  
  862.  * The border color is generated for the "overscan" region on the outside edges
  863.    of the screen. You can select any available color as the default border
  864.    color, which will be installed when ANSIPLUS starts up and whenever the
  865.    display mode is set.
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.                                        12
  885.  
  886. Loading Option
  887.  
  888.    ANSIPLUS can be loaded into memory up to four different ways, depending on
  889.    your computer's capabilities and what is contained in CONFIG.sys:
  890.  
  891.  * ANSIPLUS can be loaded into low memory below 640K. This is the default.
  892.  
  893.  * ANSIPLUS can load itself into upper memory blocks. At load time, the driver
  894.    can divide itself into two sections: sharable code totaling about 18K, and
  895.    unsharable code/data totaling about 4K. The shared code can be placed in
  896.    either XMS upper memory blocks (from 640K to 1M) or in high memory (1M to
  897.    1M+64K), leaving only the unsharable 4K in low memory. Because all ANSIPLUS
  898.    driver data remains in low memory as part of the DOS CON driver, it will be
  899.    localized under Windows 3.0. Under DOS 5.0 or later, this option should work
  900.    whether DOS=UMB appears in CONFIG.sys or not. The following CONFIG.sys
  901.    command loads ANSIPLUS into the XMS upper memory blocks:
  902.  
  903.        DEVICE=ANSIPLUS.sys /U
  904.  
  905.  * ANSIPLUS can load itself into the high memory addressed just above 1 megabyte
  906.    (the "HMA"). Under DOS 5.0 or later, with the DOS=HIGH line in CONFIG.sys,
  907.    ANSIPLUS shares this memory with DOS; if DOS=HIGH is not used, but an XMS
  908.    driver is installed, the HMA is obtained from the XMS driver; or, for earlier
  909.    DOS versions or systems not using an XMS driver, the HMA is taken in the same
  910.    manner as the VDISK.sys driver allocates extended memory. When ANSIPLUS is
  911.    loaded into the HMA, certain (antique) programs that assume memory addresses
  912.    over one megabyte will "wrap around" to addresses starting at zero may not
  913.    operate correctly. If you experience any problems, load ANSIPLUS into either
  914.    XMS upper memory blocks or low memory instead. The following CONFIG.sys
  915.    command will load ANSIPLUS into the high memory area:
  916.  
  917.        DEVICE=ANSIPLUS.sys /H
  918.  
  919.  * ANSIPLUS can be loaded high by DEVICEHIGH or equivalent. Users of Windows 3.0
  920.    and EMM386, QEMM, or DOS 5.0/6.0 should note: With DOS 5.0 or later (using
  921.    DEVICEHIGH and EMM386), or with other memory managers such as QEMM (using
  922.    LOADHI), ANSIPLUS can be loaded into upper memory blocks above 640K to
  923.    provide 18.5K more program area below 640K. However, if Windows 3.0 will be
  924.    run in 386 Enhanced mode, it is strongly recommended that ANSIPLUS (or any
  925.    other ANSI driver) not be loaded into high memory by these methods. This is
  926.    because Windows 3.0 does not localize the XMS upper memory block area above
  927.    640K for its virtual 8086's, and so only one global copy of ANSIPLUS would be
  928.    shared among all virtual machines. This can cause trouble: if, for example, a
  929.    program in one window selects colors, then those colors would also be in
  930.    force for all DOS programs in other windows!  This localization problem
  931.    has been fixed in Windows 3.1.
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.                                        13
  944.  
  945. Color Control
  946.  
  947.  * The ANSIPLUS driver ordinarily traps all video mode changes and installs the
  948.    palette and/or DAC colors of the user's, or of ANSIPLUS's default color
  949.    scheme. Applications that set their own palettes will continue to do so, but
  950.    those that do not will use the installed color choices. If this feature is
  951.    disabled, the VGA/EGA controller manufacturer's colors (the "OEM" colors)
  952.    will be loaded when the video mode changes.
  953.  
  954.  * Some 256-color DOS applications assume that the OEM 256-color palette has
  955.    been loaded when the 256-color mode was selected, and never define the colors
  956.    that they will use. A feature is provided to disable ANSIPLUS color loading
  957.    for DOS 256-color modes if you are running such an application.
  958.  
  959.  * Some 256-color drivers for Windows apparently assume that the OEM 256-color
  960.    palette has been loaded when the 256-color mode was selected, and never
  961.    define the colors that Windows will use. Because of this, ANSIPLUS normally
  962.    does not load its default colors when a 256-color mode is selected under
  963.    Windows. However, a separate feature is provided to allow this if desired.
  964.  
  965.  * In color text modes, the VGA and EGA allow either sixteen background colors
  966.    with no blinking foreground text, or eight background colors with foreground
  967.    text that may or may not blink. In monochrome text mode 07h, when blinking is
  968.    disabled there are three backgrounds possible: black, gray or white, and with
  969.    blinking enabled there are two: black and gray. If blinking is disabled,
  970.    ANSIPLUS will display sixteen (or three) background colors, and when it is
  971.    enabled, you will see only eight (or two) background colors.
  972.  
  973.  * ANSIPLUS highlights user-typed keys when they are displayed on the screen,
  974.    giving a clear visual separation of typed entries from computer output. Over
  975.    dark backgrounds, the key is shown in white, and over light backgrounds it is
  976.    shown in black. If this feature is not wanted, it can be disabled.
  977.  
  978.  * Because application developers with VGA color monitors sometimes need to see
  979.    how their systems will look when run with a VGA monochrome monitor, ANSIPLUS
  980.    provides emulation of monochrome monitor VGA on a color monitor. In normal
  981.    operation, this feature should be disabled.
  982.  
  983. Display Control
  984.  
  985.  * The ANSIPLUS screen saver blanks the VGA/EGA screen after several minutes of
  986.    screen, keyboard and mouse inactivity. The screen is brought back by any
  987.    keystroke, including shift keys, or, if a mouse is connected, by moving it or
  988.    pressing a button. The screen saver is automatically disabled under Windows
  989.    and when certain games or other programs that take over the timer are
  990.    running, and does not interfere with any known programs. However, if this
  991.    feature is not desired, it can be turned off.
  992.  
  993.  * The time of inactivity before the screen goes blank is configurable between
  994.    one and twenty minutes.
  995.  
  996.  * During periods of keyboard inactivity, ANSIPLUS's screen saver uses MS mouse
  997.    Int 33h calls to test the status of the mouse. In the unlikely event these
  998.    calls interfere with the mouse driver, they can be disabled.
  999.  
  1000.  
  1001.  
  1002.                                        14
  1003.  
  1004.  
  1005.  * On the IBM PS/2, the mouse is usually connected to the pointing device port,
  1006.    and mouse activity will cause interrupts on the Mouse Event interrupt number
  1007.    74h, so ANSIPLUS monitors this interrupt to unblank the screen. If the screen
  1008.    fails to go blank after a long idle period, or if this interrupt is used for
  1009.    another purpose, this feature should be disabled.
  1010.  
  1011.  * The DOS console drivers do not show a cursor on the screen when using a
  1012.    graphics mode. ANSIPLUS can display a pseudo-cursor when keyed entries are
  1013.    requested by DOS in a graphics mode. If this feature is desired, it can be
  1014.    enabled. If it interferes with the appearance of a graphics mode program, it
  1015.    should be left disabled.
  1016.  
  1017.  * Because almost all applications that use 256-color graphics modes assume that
  1018.    DOS does not place a cursor on the screen, the ANSIPLUS pseudo-cursor is
  1019.    normally disabled when in a 256-color mode. If desired, you can enable the
  1020.    cursor.
  1021.  
  1022.  * Programs that write screen output using ROM BIOS Int 10h Function 14 (Write
  1023.    TTY) ordinarily cannot use ANSI Escape sequences for screen control. ANSIPLUS
  1024.    includes a feature to allow this.
  1025.  
  1026.  * When the VGA/EGA video controller does not allow setting a palette register
  1027.    unless a vertical retrace is in progress, or when "snow" or other problems
  1028.    occur during palette color changes, ANSIPLUS provides an option to wait for a
  1029.    vertical retrace whenever setting a palette register. Otherwise, this feature
  1030.    should remain disabled.
  1031.  
  1032.  * ANSIPLUS contains an internal stack for saving and restoring video context
  1033.    information (rows and columns, colors, display modes, etc.). The default size
  1034.    allows 25 pushes, but this can be configured to a larger value if needed.
  1035.  
  1036. Screen Scrolling
  1037.  
  1038.  * ANSIPLUS uses the Scroll-Lock key as a hot key for freezing fast screen
  1039.    output and for activating screen scroll-back. If these features are not
  1040.    desired, or to run those few applications that use Scroll-Lock for other
  1041.    purposes, the ANSIPLUS Scroll-Lock key can be disabled. However, before you
  1042.    completely disable ANSIPLUS's Scroll-Lock key, try the Alt-Scroll-Lock
  1043.    combination instead (see next option).
  1044.  
  1045.  * An alternative hot key is Alt-Scroll-Lock. If this key is enabled, the Alt
  1046.    key must be pressed simultaneously with the Scroll-Lock key to cause the
  1047.    ANSIPLUS Scroll-Lock function to be activated. If it is disabled, the
  1048.    Scroll-Lock key will function with or without any other simultaneous key.
  1049.  
  1050.  * As lines are scrolled off the top of the screen, the ANSIPLUS driver can save
  1051.    them for later viewing. This viewing is called screen scroll-back. Most of
  1052.    the time this is a very useful and unobtrusive feature, but if it is
  1053.    undesired, or if storage of the saved lines in unused portions of the video
  1054.    RAM is found to interfere with something, it can be disabled.
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.                                        15
  1062.  
  1063.  * On most computers, screen scroll-back should operate correctly when running
  1064.    full screen under Windows. However, when running DOS applications in a 386
  1065.    Enhanced Mode window, Windows will not maintain a full 32K of text mode RAM
  1066.    for the application, and this can result in a loss of scroll-back text, or in
  1067.    a message from Windows about not having enough memory to correctly display
  1068.    information. ANSIPLUS attempts to compensate for this, but a configurable
  1069.    feature is also provided to totally disable scroll-back when Windows is
  1070.    running. If you run all DOS applications full screen, this feature should be
  1071.    enabled. For more discussion of this problem and its remedies, see "ANSIPLUS
  1072.    and Windows 3" starting on page 34.
  1073.  
  1074.  * On systems with extended memory and either a suitable XMS driver such as
  1075.    HIMEM.sys or QEMM, or ANSIPLUS loaded into the High Memory Area (HMA),
  1076.    ANSIPLUS can allocate 32K of XMS or HMA memory to preserve scroll-back data
  1077.    when changing video display modes or when running graphics applications
  1078.    (including Windows). DOS sessions under Windows 3.1 can also use XMS memory
  1079.    for this purpose if they have access to at least 32K of extra XMS memory (See
  1080.    PIF Editor in the Windows User's Guide). If ANSIPLUS is loaded into the HMA
  1081.    and does not share this area with DOS, then ANSIPLUS will preserve
  1082.    scroll-back using HMA, except when Windows is running; otherwise, XMS memory
  1083.    will be used. Because calls to some XMS drivers may require a lot of stack
  1084.    space, this feature should be disabled if you have reliability problems
  1085.    during display mode changes.
  1086.  
  1087.  * ANSIPLUS captures for scroll-back all standard DOS output that is scrolled
  1088.    off the top of the screen or cleared from the screen. An option is provided
  1089.    to capture full lines scrolled off the top by BIOS calls, as well as screens
  1090.    not containing DOS output, when they are cleared by BIOS call.
  1091.  
  1092.  * Every time that video page 0 (the normal video page for all DOS output) is
  1093.    cleared, the first through last non-blank lines on the screen (plus one above
  1094.    and below) are captured for scroll-back. When the second and higher video
  1095.    pages are cleared, they will not be saved unless lines have been scrolled off
  1096.    the top. An option is provided to capture the higher video pages too when
  1097.    they are cleared.
  1098.  
  1099.  * ANSIPLUS stores captured screen lines in unused parts of the video RAM, with
  1100.    usage based on whether a display page has ever been selected for display.
  1101.    Almost all text mode applications select a page before filling it with text,
  1102.    so ANSIPLUS should generally know what is used and what isn't.  However, a
  1103.    few applications, such as the Norton Utilities, appear to use the second
  1104.    video page without ever selecting it to save the original contents of the
  1105.    screen as the program starts up.  This action will wipe out any scroll-back
  1106.    data in the second page, and when the original screen is cleared by the
  1107.    program, scroll-back lines may be stored into the saved screen, causing
  1108.    gibberish to be restored to the screen when the program terminates.  To
  1109.    address this problem, a configurable feature is provided to protect the
  1110.    second video page from scroll-back storage.  However, when this feature is
  1111.    enabled, storage capacity for scroll-back will be reduced by one page.
  1112.  
  1113.  * Smooth scrolling can gradually move the entire screen's text up so it can be
  1114.    read while it moves. This feature can also be toggled on and off by the
  1115.    Shift-Scroll Lock key combination. Smooth scrolling will appear unacceptably
  1116.    choppy on computers with lower powered CPUs and/or video controllers that
  1117.    cannot move a full screen of text in the video RAM completely during a
  1118.    vertical retrace. If this occurs, the feature should not be used.
  1119.  
  1120.                                        16
  1121.  
  1122.  
  1123.  * Smooth scrolling can be disabled under Windows. If smooth scrolling does not
  1124.    perform well in full screen DOS sessions under Windows, or if there are other
  1125.    problems, then this should be done.
  1126.  
  1127.  * Because it takes time to smoothly scroll the screen, smooth scrolling of
  1128.    large amounts of screen output can significantly delay the computer. An
  1129.    option is provided to increase the scrolling rate when the smooth scrolling
  1130.    operation is taking a significant proportion of the computer's time. This can
  1131.    help, for example, to prevent data overruns when smooth scrolling is used
  1132.    with a communications program that scrolls the entire screen.
  1133.  
  1134.  * ANSIPLUS normally handles all text mode scrolling itself directly in the
  1135.    video display RAM. This may confuse some other device drivers or TSRs that
  1136.    are installed and need to know when the screen is being scrolled. In such
  1137.    cases, a feature can be enabled to cause BIOS calls for screen scrolling.
  1138.  
  1139. Keyboard
  1140.  
  1141.  * By default, ANSIPLUS increases the keyboard buffer capacity to 128
  1142.    characters, which should hold at least as much as most users can type ahead
  1143.    accurately. To expand the computer's keyboard buffer capacity, an extension
  1144.    buffer is retained within ANSIPLUS, and whenever the ROM BIOS buffer has
  1145.    space available for keys held in the ANSIPLUS buffer, they are moved into the
  1146.    standard ROM BIOS buffer. You configure this buffer by specifying the total
  1147.    number of keys to be buffered.
  1148.  
  1149.  * The keyboard repeat rate determines how fast keys will be generated when a
  1150.    key is held down and not lifted.  For systems with enhanced keyboards,
  1151.    ANSIPLUS lets this rate be configured anywhere from 20 to 300 characters per
  1152.    second.  For most applications, the ANSIPLUS repeat rate setting will take
  1153.    precedence over the keyboard repeat rate set by other programs, such as the
  1154.    DOS MODE program (the key delay set by MODE will still be operative).
  1155.    Because of imprecise timing under Windows, however, this feature is disabled
  1156.    when Windows is running. It may also be disabled entirely to use the standard
  1157.    rate.
  1158.  
  1159.  * ANSIPLUS has the ability to translate single keystrokes to full commands or
  1160.    other pre-determined key sequences. This feature is called key reassignment,
  1161.    and it can be enabled or disabled without affecting the contents of the key
  1162.    reassignment tables stored within the ANSIPLUS device driver.
  1163.  
  1164.  * ANSIPLUS can also prevent ANSI key reassignment redefinition. This can be
  1165.    useful before trying ANSI files that contain unknown ANSI sequences that
  1166.    might redefine keys to execute undesired commands. A warning tone (like the
  1167.    theme from "Dragnet") will sound whenever an attempt to redefine a key
  1168.    reassignment is detected.
  1169.  
  1170.  * The space allocated for storing ANSI keystroke reassignments may also be
  1171.    configured. Each key reassignment requires approximately four bytes plus the
  1172.    length of the reassignment. You configure the total table size in bytes.
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.                                        17
  1180.  
  1181.  
  1182.  * Normally, the Caps Lock key locks the alphabetic keys in upper case, and when
  1183.    a shift key is held down, letters are entered in lower case. This continues
  1184.    until Caps Lock is pressed again to unlock the Caps, and can often be
  1185.    confusing if you forget that Caps were locked. ANSIPLUS has an option to have
  1186.    shift-alphabetic keys cause the Caps to unlock, much like a typewriter
  1187.    releases its shift lock whenever a shift key is pressed.
  1188.  
  1189.  * In many cases, when Caps Lock has been released by a shift-alphabetic key
  1190.    combination, mixed upper and lower case characters are needed for only a
  1191.    single entry, and Caps Lock should be reinstated thereafter. ANIPLUS includes
  1192.    an option to turn Caps Lock back on again when the Enter key is pressed after
  1193.    Caps were unlocked by a shift-alphabetic key, thus restoring Caps Lock on
  1194.    completion of an "entry."
  1195.  
  1196.  * For those users who find it more convenient to break out of programs with the
  1197.    Control-C key combination than with Control-Break, ANSIPLUS has an option to
  1198.    generate a keyboard break whenever Control-C is entered.
  1199.  
  1200.  * The "Non-Destructive" input function of the DOS driver reads an input key
  1201.    from the keyboard unofficially just to see what it is, allowing it to really
  1202.    be read later. This function is used to see what has been typed, and to read
  1203.    it or flush the keyboard buffer only if it matches some criterion (such as
  1204.    Escape or Control-C). Because the standard DOS keyboard driver always looks
  1205.    at the first key in the buffer, if it doesn't meet the criterion, no matter
  1206.    what is typed later will not be checked. ANSIPLUS gets around this with an
  1207.    option to return the last key from the buffer instead of the first.
  1208.  
  1209.  * Key stacking can be disabled to use another key stacking driver (for example,
  1210.    NDOS KEYSTACK.sys), or when typing files that contain unknown ANSI escape
  1211.    sequences that might execute undesired commands. When disabled, a warning
  1212.    tone will sound on any attempt to stack keys by ANSI escape sequence.
  1213.  
  1214. Tone Definition
  1215.  
  1216.  * The ANSIPLUS driver includes a timer-interrupt controlled Control-G beep tone
  1217.    generator that lets the beep tone be finished in parallel with subsequent
  1218.    processing. Multiple beeps are ignored if a tone is currently being output,
  1219.    so programs cannot be slowed down by a rapid series of beeps. The tone
  1220.    generator is used for both standard DOS console output and BIOS Int 10h Write
  1221.    TTY calls. If the tone generator is disabled, the original DOS beep tone will
  1222.    be used.
  1223.  
  1224.  * When Windows 3 is running in 386 mode, and a DOS program running in the
  1225.    background outputs a Control-G, the background program's virtual 8086 may not
  1226.    be running fast enough to accurately time the tone. Because of this, the tone
  1227.    can drag out and sound strange. Disabling ANSIPLUS tone generation under
  1228.    Windows restores the original Windows sound driver, but makes the tone
  1229.    frequency and duration non-configurable.
  1230.  
  1231.  * The beep tone definition is stored in a table in the ANSIPLUS driver that
  1232.    requires four bytes per frequency and duration. You can configure the size of
  1233.    this table by specifying the maximum number of notes allowed in the beep.
  1234.  
  1235.  
  1236.  
  1237.  
  1238.                                        18
  1239.  
  1240. IV.  USING ANSIPLUS
  1241.  
  1242. This chapter describes your controls over ANSIPLUS when it is running. Five
  1243. subjects are covered: special keyboard functions; selecting and defining colors
  1244. with the SETCOLOR.exe utility program; controlling other ANSIPLUS features with
  1245. the SETAPLUS.exe utility program; creating batch files for configuring
  1246. applications; and editing ANSI-type escape sequence programs and files with the
  1247. ANSICOM.exe program.
  1248.  
  1249.                         SPECIAL KEYBOARD FUNCTIONS
  1250.  
  1251. ANSIPLUS uses special keyboard control to implement its scrolling functions. To
  1252. activate these, the Scroll-Lock (or Alt and Scroll-Lock) key is used as a hot
  1253. key toggle:
  1254.  
  1255.   Scroll-Lock       enables or disables screen scroll freezing and scroll-back
  1256.   Shift-Scroll-Lock enables or disables smooth scrolling
  1257.  
  1258. When your Scroll-Lock toggle is recognized by the computer, you will hear a
  1259. short tone. When the screen is frozen by Scroll-Lock, (as indicated by the light
  1260. on enhanced keyboards), normal key input is disabled and the following keys
  1261. apply:
  1262.  
  1263.   Home          Go to the top of the lines saved for scroll-back
  1264.   PageUp        Scroll up one page
  1265.   Shift         Scroll up one-half page tab
  1266.   Up arrow      Scroll up one line
  1267.  
  1268.   End           Go to the bottom (i.e., the original screen display)
  1269.   PageDn        Scroll down one page
  1270.   Tab           Scroll down one-half page
  1271.   Down arrow    Scroll down one line
  1272.  
  1273.   Left          View a lower numbered display page arrow
  1274.   Right         View a higher numbered display page arrow
  1275.   Escape        Cancel scroll lock, return to normal key processing
  1276.   Scroll lock   Cancel scroll lock, return to normal key processing
  1277.  
  1278. If you try to exceed the limit of travel up, down, left or right, a short low
  1279. pitched tone will sound. If you enter any key other than those above, you will
  1280. hear a short warbling sound, Scroll Lock will be canceled, the screen will
  1281. return to its normal display, and the key will be passed back to the running
  1282. program. If the screen was frozen during output, the PageDn, Tab and Down arrow
  1283. keys will allow one page, one-half page, and one line of additional output,
  1284. respectively, before freezing the screen again. Pressing a shift key will
  1285. release the screen as long as the shift key is held down.
  1286.  
  1287. Another special key combination is used with the ANSIPLUS screen saver. If the
  1288. screen saver is enabled, the following key combination may be used to blank the
  1289. screen without waiting the full blanking time:
  1290.  
  1291.   Alt-Ctrl-Scroll Lock      Blank the screen immediately
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.                                        19
  1298.  
  1299.                        SELECTING AND DEFINING COLORS
  1300.  
  1301. The SETCOLOR.exe utility program provides extensive control over colors for your
  1302. running system. With this program, the user can view the current colors, select
  1303. colors for use, create and apply named color schemes, edit the color palette,
  1304. set the border color, and save and load color definitions. Changes made with
  1305. SETCOLOR.exe are in effect only as long as your system is running. To change the
  1306. colors for system bootup, use the NEWAPLUS.exe program. SETCOLOR.exe is executed
  1307. by a command of the form:
  1308.  
  1309.         SETCOLOR <keyword> [<keyword> ...]
  1310.  
  1311. where each <keyword> selects a foreground or background color or other option.
  1312. If no <keyword> is supplied, you are presented with a menu of choices:
  1313.  
  1314.  * Color selection submenus let you choose from the current 16-color palette
  1315.    the screen colors that will be used for text foreground and background.
  1316.    ANSIPLUS maintains two sets of foreground and background colors: those that
  1317.    are currently on the screen, and default colors to be applied when an ANSI
  1318.    Set Graphics Rendition reset (i.e., Esc [0m) is detected. You can control
  1319.    both color combinations from this sub-menu.
  1320.  
  1321.  * The color palette determines the precise colors you will see in 16 color
  1322.    video modes. ANSIPLUS maintains two palettes: the current palette on the
  1323.    screen, and a default palette that is loaded when ANSIPLUS first starts and
  1324.    whenever the video display mode is changed. You can control both palettes
  1325.    using this option, but unless you specifically set the default for each color
  1326.    you redefine, your colors will only apply until the next display mode change.
  1327.  
  1328.  * The border color is generated for the "overscan" region on the outside edges
  1329.    of the screen. Again, ANSIPLUS maintains both a current border color and a
  1330.    default border color. You can select any available color as border color, and
  1331.    can control both the current and default borders with this option. As for
  1332.    palette changes, unless you specifically set the default border color, your
  1333.    border color will apply only until the next display mode change.
  1334.  
  1335. From the command line, colors may be selected by name or code number, where
  1336. codes 0-15 identify the 16 palette colors, 128-143 select foreground colors, and
  1337. 192-207 select background colors. The relationship between color names and code
  1338. numbers is depicted in Table 4-1:
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.                                        20
  1357.  
  1358.        +--------------------------------------------------------+
  1359.        |                      Table 4-1                         |
  1360.        |                Color Names and Codes                   |
  1361.        +-------------------+--------+--------------+------------+
  1362.        |                   | Color  |  Foreground  | Background |
  1363.        | Color Name        |  Code  |     Code     |    Code    |
  1364.        +-------------------+--------+--------------+------------+
  1365.        | BLACK             |    0   |      128     |     192    |
  1366.        | DKGRAY            |    8   |      136     |     200    |
  1367.        | GRAY              |    7   |      135     |     199    |
  1368.        | WHITE             |   15   |      143     |     207    |
  1369.        | RED               |    9   |      137     |     201    |
  1370.        | DKRED             |    1   |      129     |     193    |
  1371.        | BROWN             |    3   |      131     |     195    |
  1372.        | YELLOW            |   11   |      139     |     203    |
  1373.        | GREEN             |    2   |      130     |     194    |
  1374.        | LTGREEN           |   10   |      138     |     202    |
  1375.        | CYAN              |    6   |      134     |     198    |
  1376.        | LTCYAN            |   14   |      142     |     206    |
  1377.        | BLUE              |    4   |      132     |     196    |
  1378.        | LTBLUE            |   12   |      140     |     204    |
  1379.        | MAGENTA or PURPLE |    5   |      133     |     197    |
  1380.        | LTMAGENTA or PINK |   13   |      141     |     205    |
  1381.        +-------------------+--------+--------------+------------+
  1382.  
  1383. In 256 color modes, you may also use 256-511 to select the foreground, 512-767
  1384. to select the background, or 0-255 after the BORDER keyword to select the border
  1385. color.
  1386.  
  1387. Several modifying keywords can assist the color selection:
  1388.  
  1389.     DARK, DIM or NORMAL for low intensity colors,
  1390.     LIGHT, BRIGHT or INTENSE for high intensity colors,
  1391.     FOREGROUND or FGD for foreground following,
  1392.     BACKGROUND,  BGD, or ON for background following,
  1393.     REVERSE to swap the current foreground and background,
  1394.     BORDER for border color selection following, or
  1395.     DEFAULT to select the current colors as the default colors.
  1396.  
  1397. If named colors or color codes 0-15 are specified without the foreground or
  1398. background keywords, then the first color is assumed to be the foreground and
  1399. the second the background. Keywords may also be shortened; the first partial
  1400. match will be used. Several examples may help to clarify these rules:
  1401.  
  1402.     SETCOLOR bgd blue                sets the background to dark blue
  1403.     SETCOLOR light cyan blue default default colors are light cyan foreground
  1404.                                      and blue background
  1405.     SETCOLOR 7,0                     gray foreground, black background
  1406.     SETCOLOR bright green on blue    high intensity green foreground, dark blue
  1407.                                      background
  1408.     SETCOLOR border cyan             set the border color to cyan
  1409.     SETCOLOR reverse                 reverses the current foreground and
  1410.                                      background colors
  1411.     SETCOLOR rev                     reverses foreground and background
  1412.  
  1413.  
  1414.  
  1415.                                        21
  1416.  
  1417. Any unmatched keywords are checked against user-defined color schemes in a file
  1418. named SETCOLOR.sch. This editable ASCII text file, which should be placed in the
  1419. same directory as the SETCOLOR.exe program, contains any number of named color
  1420. schemes of the user's choice. User supplied color schemes are entered into the
  1421. file with a text editor, with each line entered in the form:
  1422.  
  1423.          <name> = <keyword> [<keyword> ...]
  1424.  
  1425. where <name> is the name of the user supplied color scheme, and <keyword> is any
  1426. valid SETCOLOR program keyword or other option. Table 4-2 shows the SETCOLOR.sch
  1427. file included with ANSIPLUS as a sample.
  1428.  
  1429.                +---------------------------------------+
  1430.                |               Table 4-2               |
  1431.                |       Sample Color Schemes File       |
  1432.                +---------------------------------------+
  1433.                | evening = light cyan blue border 17   |
  1434.                | night = light blue black border 17    |
  1435.                | dawn = yellow cyan border 35          |
  1436.                | daylight = light blue white border 17 |
  1437.                | sun = bright red yellow border 46     |
  1438.                | sky = blue light blue border 17       |
  1439.                | forest = black green border 24        |
  1440.                | earth = yellow brown border 38        |
  1441.                | regal = pink purple border 21         |
  1442.                | candycane = dark red pink border white|
  1443.                | bw = gray black border dkgray         |
  1444.                +---------------------------------------+
  1445.  
  1446. A user color scheme may be specifically selected on the SETCOLOR command line by
  1447. preceding its name with the keyword SCHEME, for example:
  1448.  
  1449.   SETCOLOR SCHEME JOE selects a color scheme named JOE
  1450.  
  1451. The SETCOLOR program also includes keyword options to reset, edit, load and save
  1452. the current color configuration. These include:
  1453.  
  1454.     RESET                 Install defaults as the current colors
  1455.     IBM or OEM            Install the OEM VGA/EGA palette as the current colors
  1456.     PALETTE               Edit the color definitions for the 16-color palette
  1457.     SAVEFILE <filename>   Save the current 16-color definitions in a file
  1458.     SAVE256 <filename>    Save the 256 VGA DAC color definitions in a file
  1459.     LOADFILE <filename>   Load a color definition file
  1460.     SAVECURRENT <file>    Save the 16 current colors as an executable program
  1461.     SAVEDEFAULT <file>    Save the 16 default colors as an executable program
  1462.     SAVEPROGRAM <file>    Save both the current and default colors as a program
  1463.  
  1464. The SAVEFILE, SAVE256 and LOADFILE keywords generate and load color definition
  1465. files. The color definition files created by SAVEFILE contain 36 lines: 32 lines
  1466. define the red, green and blue intensities for colors 0 to 15, both current and
  1467. default, and the other four define the current and default foreground,
  1468. background and border colors. Files created by SAVE256 contain 512 lines: 256
  1469. for the default DACs and 256 for the current DACs. Table 4-3 is a sample of
  1470. lines from a SAVEFILE color definition file.
  1471.  
  1472.  
  1473.  
  1474.                                        22
  1475.                       +------------------------------+
  1476.                       |          Table 4-3           |
  1477.                       | Sample Color Definition File |
  1478.                       +------------------------------+
  1479.                       |      Default = 142,196       |
  1480.                       |      DBorder = 0,81,162      |
  1481.                       |     DColor 2 = 16,162,81     |
  1482.                       |     DColor 3 = 113,65,16     |
  1483.                       |      DColor 4 = 0,0,105      |
  1484.                       |      DColor 5 = 97,0,97      |
  1485.                       |      Current = 135,192       |
  1486.                       |        Border = 0,0,0        |
  1487.                       |      Color 2 = 0,170,0       |
  1488.                       |     Color 3 = 0,170,170      |
  1489.                       |      Color 4 = 0,0,170       |
  1490.                       |     Color 5 = 170,0,170      |
  1491.                       +------------------------------+
  1492.  
  1493. Users are free to edit color definition files to create their own colors, to
  1494. delete any lines from them, or to put the lines in any order except that all
  1495. default color definitions must precede all current color definitions in the
  1496. file. If no file name is given for a LOADFILE, SAVEFILE or SAVE256 request, the
  1497. file name SETCOLOR.def in the current directory will be used. LOADFILE checks
  1498. the system PATH for color definition files to be loaded, so any commonly used
  1499. color files can reside in a directory on the PATH.
  1500.  
  1501. The SAVECURRENT, SAVEDEFAULT, and SAVEPROGRAM keyword options create executable
  1502. ".com" files that can be called later by name to install colors. These programs
  1503. can also be edited by the ANSICOM.exe utility program.
  1504.  
  1505. To provide additional user control over 16-color programs, such as DBASE III or
  1506. DOS 5.0 EDIT.com, that set their own palettes or border colors but do not
  1507. restore the palette on completion, or to simply force a color scheme on a
  1508. program that defines its own, ANSIPLUS can lock the color palette, preventing a
  1509. program from loading the PAL/DAC and border color registers by BIOS calls. This
  1510. feature is controlled by two SETCOLOR options:
  1511.  
  1512.   LOCKPAL      enable locked color palette, ignore BIOS calls defining colors
  1513.   UNLOCKPAL    disable locked color palette, allow programs to define colors
  1514.  
  1515. Palette locking should only be used when all other means of control fail. It is
  1516. intended to be invoked as part of batch files that execute applications to be
  1517. controlled, locking the palette before the program runs, and unlocking it after
  1518. it completes. The feature should never be enabled all of the time because it
  1519. will keep well behaved programs from making color changes too.
  1520.  
  1521. The SETCOLOR program also controls ANSIPLUS VGA monochrome monitor emulation.
  1522. Two keywords enable or disable this feature:
  1523.  
  1524.   MONOCHROME   begins VGA monochrome monitor emulation; and
  1525.   COLOR        ends VGA monochrome monitor emulation and restores colors.
  1526.  
  1527. And finally, SETCOLOR provides three reporting options:
  1528.  
  1529.   SHOW         displays the 16 current colors in a band across the screen
  1530.   HELP         gives a brief description of how to use the SETCOLOR program
  1531.   SCHEME HELP  lists the available color schemes in file SETCOLOR.sch
  1532.  
  1533.                                        23
  1534.  
  1535.                     CONTROLLING OTHER ANSIPLUS FEATURES
  1536.  
  1537. The SETAPLUS.exe utility program is used to enable and disable various ANSIPLUS
  1538. features while the system is running. It can also be used to set the video
  1539. display mode, character height, video page and graphics mode text treatment
  1540. options, to define or list key reassignments, or to define the Control-G beep
  1541. tone. Changes made with SETAPLUS.exe are in effect only as long as your system
  1542. is running. To change ANSIPLUS features for system bootup, use the NEWAPLUS.exe
  1543. program. SETAPLUS.exe is executed by a command of the form:
  1544.  
  1545.         SETAPLUS <keyword> [<keyword> ...]
  1546.  
  1547. where each <keyword> selects an ANSIPLUS feature or other option. As for the
  1548. SETCOLOR.exe utility, if no <keyword> is supplied, you are presented with a menu
  1549. of choices. These choices are shown in Table 4-4 below.
  1550.  
  1551.    +------------------------------------------------------------------------+
  1552.    |                             Table 4-4                                  |
  1553.    |                     SETAPLUS Main Menu Options                         |
  1554.    +-----------+------------------------------------------------------------+
  1555.    | Report    | Display current ANSIPLUS optional feature settings         |
  1556.    | Mode      | Set the video display mode                                 |
  1557.    | Height    | Set the displayed character height                         |
  1558.    | Keyboard  | Caps Lock, Ctrl-C and key read-ahead options               |
  1559.    | Assign    | Key reassignment enable/disable option and key definition  |
  1560.    | Tone      | Control-G beep tone generation options                     |
  1561.    | Color     | Mode set color, blink, bright key echo and VGA mono options|
  1562.    | Display   | Screen saver, graphics mode cursor and retrace wait options|
  1563.    | Scrolling | Scroll-Lock, scroll-back and smooth scrolling options      |
  1564.    | Undo      | Undo all feature changes since starting the main menu      |
  1565.    | Quit      | Quit and return to DOS                                     |
  1566.    +-----------+------------------------------------------------------------+
  1567.  
  1568. From the SETAPLUS command line, you control each ANSIPLUS feature with its own
  1569. selection keywords. These selectors are shown in Table 4-5 on page 25. When
  1570. used in combination with the following keywords, each controllable feature can
  1571. be enabled and disabled easily:
  1572.  
  1573.     ON, YES, or TRUE to enable the preceding feature,
  1574.     ENABLE to enable all following listed features,
  1575.     OFF, NO, or FALSE to disable the preceding feature,
  1576.     DISABLE to disable all following listed features, and
  1577.     RESET to set all features to their default values.
  1578.  
  1579. The following examples illustrate use of the SETAPLUS command line to control
  1580. ANSIPLUS features:
  1581.  
  1582.     SETAPLUS bright off              Disable bright key echo
  1583.     SETAPLUS enable capsunlock saver Enable screen saver and Caps reset on
  1584.                                      Shift-alpha
  1585.     SETAPLUS reset                   Reset all features to their default status
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.                                        24
  1593.  
  1594.  
  1595.  
  1596.  
  1597.         +-------------------------------------------------------------------+
  1598.         |                           Table 4-5                               |
  1599.         |              SETAPLUS Feature Selection Keywords                  |
  1600.         +------------+------------------------------------------------------+
  1601.         | SETCOLORS  | Install default (ANSIPLUS) colors on mode sets       |
  1602.         | DOSSET256  | Load default colors on DOS 256-color mode sets       |
  1603.         | WINSET256  | Load default colors on Windows 256-color mode sets   |
  1604.         | NOBLINK    | Enable 16-color text mode background (disable blink) |
  1605.         | BRIGHT     | Highlight echoed keys (bright key echo)              |
  1606.         | LOCKPAL    | Prevent palette/DAC color changes by programs        |
  1607.         | MONOCHROME | VGA monochrome monitor emulation                     |
  1608.         | SAVER      | Enable screen saver (blanker)                        |
  1609.         | MSMOUSE    | Use MS mouse Int 33h polling in screen saver         |
  1610.         | PS2MOUSE   | Use PS/2 Int 74h mouse event interrupts in saver     |
  1611.         | PSEUDOCURS | Generate pseudo-cursor in VGA/EGA graphics modes     |
  1612.         | CURSOR256  | Generate pseudo-cursor in 256-color graphics modes   |
  1613.         | TTYTRAP    | Trap ANSI escape sequences in BIOS Write TTY         |
  1614.         | RETRACE    | Wait for retrace before setting palette registers    |
  1615.         | CAPSUNLOCK | Unlock Caps Lock with shift/letter key combination   |
  1616.         | CAPSRELOCK | Relock Caps with carriage return after shift/letter  |
  1617.         | CTRLC      | Generate Control-Break when Control-C is entered     |
  1618.         | NDLAST     | Read last key in buffer with non-destructive input   |
  1619.         | STACK      | Enable key stacking                                  |
  1620.         | KEYASSIGN  | Enable ANSI key reassignment                         |
  1621.         | NODEFKEY   | Prevent ANSI key reassignment redefinition           |
  1622.         | BEEP       | Use ANSIPLUS Control-G beep tone generator           |
  1623.         | WINBEEP    | Allow ANSIPLUS beep tone under Windows               |
  1624.         | LOCK       | Allow Scroll Lock key to freeze screen               |
  1625.         | ALTLOCK    | Require Alt-Scroll-Lock when freezing screen         |
  1626.         | SCROLLBACK | Enable scroll-back of lines scrolled off top         |
  1627.         | WINBACK    | Allow scroll-back under Windows                      |
  1628.         | XMSBACK    | Preserve scroll-back data using XMS or HMA memory    |
  1629.         | BIOSBACK   | Capture lines scrolled by BIOS call                  |
  1630.         | CLSBACK    | Capture erased pages never scrolled up               |
  1631.         | PROTECT    | Protect 2nd display page from scroll-back storage    |
  1632.         | SMOOTH     | Enable smooth scrolling                              |
  1633.         | WINSMOOTH  | Allow smooth scrolling under Windows                 |
  1634.         | SPEEDUP    | Speed up smooth scroll when delaying computer        |
  1635.         | BIOSCROLL  | Use BIOS calls for text mode screen scrolling        |
  1636.         +------------+------------------------------------------------------+
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.                                        25
  1652.  
  1653.  
  1654. Other command line options include:
  1655.  
  1656.      MODE <decimal mode number> to set the video display mode,
  1657.      HEIGHT <height> to set the text character height,
  1658.      PAGE <page> to set the video page,
  1659.      KEYDEF to enter key reassignment definitions from the keyboard,
  1660.      KEYFILE <file name>  to load key reassignment definitions from a file,
  1661.      LISTKEYS to list all current key reassignments,
  1662.      KEYSTACK <text> to add keys or delays to the keyboard buffer,
  1663.      REPEATRATE <rate> to set the keyboard repeat rate,
  1664.      TONE <frequency, duration list> to set the Control-G beep tone,
  1665.      TEXT or TREATMENT to reset graphics mode text treatments,
  1666.      SHADOW, BOLD,  ITALICS, UNDERLINE or OUTLINE to enable text treatments,
  1667.      STATUS to report the current video mode, number of colors, etc.,
  1668.      FEATURES to report the settings of all ANSIPLUS features,
  1669.      REPORT to show both STATUS and FEATURES, and
  1670.      HELP to show all keyword options.
  1671.  
  1672. Two keyword options are provided for managing the interrupt vectors used by
  1673. ANSIPLUS:
  1674.  
  1675.       INTERRUPT      Displays, to the extent possible, the chain of programs
  1676.                      attached to each following selected interrupt
  1677.       LINK           Relinks ANSIPLUS to the selected interrupt(s)
  1678.  
  1679. You may specify interrupt selectors as either hexadecimal numbers or special
  1680. keywords:
  1681.  
  1682.       KEYEVENT       Interrupt 09h Key Event
  1683.       VIDEO          Interrupt 10h Video
  1684.       SYSTEMSERVICE  Interrupt 15h System Services
  1685.       KEYREQUEST     Interrupt 16h Keyboard Request
  1686.       KEYBREAK       Interrupt 1Bh Keyboard Break
  1687.       TIMERTICK      Interrupt 1Ch User Timer Tick
  1688.       DOSTTY         Interrupt 29h DOS Fast TTY Output
  1689.       MULTIPLEX      Interrupt 2Fh Multiplex, and
  1690.       PS2MOUSE       Interrupt 74h PS/2 Mouse Event
  1691.  
  1692. For example, SETAPLUS INTERRUPT 2F will list the programs attached to the DOS
  1693. Int 2Fh Multiplex interrupt.
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.                                        26
  1711.  
  1712.  
  1713. All the features controlled by SETAPLUS are described in Chapter 2 under
  1714. Changing the ANSIPLUS Startup Configuration, starting on page 12, except for
  1715. three:
  1716.  
  1717.  * To reassign keys, use the KEYDEF keyword. You will be prompted for the key to
  1718.    reassign; after that, you type in the corresponding key reassignment, and
  1719.    terminate it with the End key.
  1720.  
  1721.  * To add keys to the keyboard buffer, use the keyword KEYSTACK, followed by any
  1722.    number of quoted strings, key scan and character codes (scan code times 256
  1723.    plus ASCII character code), or time delay directives (/Wnnn for timer ticks,
  1724.    or /Dnnn for milliseconds). The following example enters "Dir", waits one
  1725.    second, then enters " *.*" and a carriage return:
  1726.  
  1727.      SETAPLUS KEYSTACK "Dir" /W18 " *.*" 13
  1728.  
  1729.  * To define the beep sound from the command line, use SETAPLUS and follow the
  1730.    keyword TONE with zero, one or more frequencies in Hertz and durations in
  1731.    milliseconds. For example,
  1732.  
  1733.      SETAPLUS TONE            installs the default 880hz 385ms tone, and
  1734.      SETAPLUS TONE 1397,110,1047,165    defines a two-tone Control-G beep.
  1735.  
  1736.    To define the beep sound from the SETAPLUS main menu, select Tone Definition
  1737.    and run through the feature options.
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.                                        27
  1770.  
  1771.                         CREATING APPLICATION BATCH FILES
  1772.  
  1773. Almost all DOS applications should run without change when ANSIPLUS is
  1774. installed. However, in a few cases it may be desirable to create a batch file
  1775. that prepares the system for an application, runs it, and then cleans up
  1776. afterward. There are three reasons for creating these application batch files:
  1777.  
  1778.  * To restore the normal DOS command shell video mode and colors after the
  1779.    program ends;
  1780.  
  1781.  * To install a color palette for the program to use when it runs; or
  1782.  
  1783.  * To enable or disable ANSIPLUS features that conflict with the program.
  1784.  
  1785. Many DOS application programs do not completely restore the video state on
  1786. completion. The common problems seen (with examples in parentheses) are:
  1787.  
  1788.  * The program sets the color palette, usually to the OEM default, but doesn't
  1789.    restore it on completion (DOS 5.0 EDIT.com, DBASE III).
  1790.  
  1791.  * The program sets the border color, but doesn't restore it, or sets it to
  1792.    black on completion (DBASE III).
  1793.  
  1794.  * The program turns blink on, but doesn't restore it on completion (DOS 5.0
  1795.    EDIT.com, DBASE III).
  1796.  
  1797.  * The program selects a video mode, but doesn't restore the original one on
  1798.    completion (DOS 5.0 EDIT.com, DBASE III).
  1799.  
  1800.  * The program selects a video mode and restores it on completion, but doesn't
  1801.    restore the text height if it is not standard for the video mode (Quattro Pro
  1802.    3.0 and others).
  1803.  
  1804. There are four simple options for restoring the ANSIPLUS video mode and colors
  1805. after running an application that sets its own mode, palette or border color:
  1806.  
  1807.  * The first option can be used to restore only the border color after an
  1808.    application has run. Suppose the border color is normally palette code 17,
  1809.    then the following batch file will set the border after the application (in
  1810.    this example, DOS EDIT.com) runs:
  1811.  
  1812.         @ECHO OFF
  1813.         C:\DOS\EDIT.com %1 %2 %3 %4 %5 %6 %7 %8 %9
  1814.         SETCOLOR BORDER 17
  1815.  
  1816.  * The second option will restore the entire default ANSIPLUS palette and border
  1817.    color after the application runs:
  1818.  
  1819.         @ECHO OFF
  1820.         C:\DOS\EDIT.com %1 %2 %3 %4 %5 %6 %7 %8 %9
  1821.         SETCOLOR RESET
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.                                        28
  1829.  
  1830.  
  1831.  * The third option requires creating a small .com file that will load an entire
  1832.    color scheme. This can be done at any time by hitting the letter "S" from the
  1833.    SETCOLOR.exe palette definition screen, or it can be done from the DOS
  1834.    command level with a command like:
  1835.  
  1836.         SETCOLOR SAVEPROGRAM MYCOLORS
  1837.  
  1838.    This will create a program called MYCOLORS.com, which loads the 16-color
  1839.    palette and border colors that were in effect when the program was created.
  1840.    The batch file for the application can then use this program to restore the
  1841.    color scheme on completion:
  1842.  
  1843.         @ECHO OFF
  1844.         C:\DOS\EDIT.com %1 %2 %3 %4 %5 %6 %7 %8 %9
  1845.         MYCOLORS
  1846.  
  1847.  * The fourth option saves and restores the video mode, character height and
  1848.    foreground/background color selection, and loads the ANSIPLUS default palette
  1849.    after the application completes. The batch file uses the PUSHVID.com and
  1850.    POPVID.com programs provided with ANSIPLUS:
  1851.  
  1852.         @ECHO OFF
  1853.         PUSHVID
  1854.         C:\DOS\EDIT.com %1 %2 %3 %4 %5 %6 %7 %8 %9
  1855.         POPVID
  1856.  
  1857.    This is the best technique to use when running DOS in a text mode other than
  1858.    25 lines by 80 columns, because it will restore both the video display mode
  1859.    and text height.
  1860.  
  1861. The options for controlling colors used by applications depend on whether custom
  1862. colors are desired for the application and whether the application loads its own
  1863. palette:
  1864.  
  1865.  * If the application ordinarily uses ANSIPLUS's colors when it runs, then it
  1866.    will use any ANSIPLUS color palette in effect when it begins execution, so a
  1867.    .com color scheme file saved from the SETCOLOR.exe palette definition screen,
  1868.    or by a SETCOLOR SAVEPROGRAM APPCOLOR command, can be used to load a custom
  1869.    color scheme before running the application:
  1870.  
  1871.         @ECHO OFF
  1872.         APPCOLOR
  1873.         <application> %1 %2 %3 %4 %5 %6 %7 %8 %9
  1874.         MYCOLORS
  1875.  
  1876.    Because most DOS application programs select a video mode when they start up,
  1877.    be sure that the color scheme saved in APPCOLOR.com is saved as a default
  1878.    color scheme.
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.                                        29
  1888.  
  1889.  
  1890.  * To use the ANSIPLUS palette for an application that installs its own palette,
  1891.    the palette must be locked before the program starts and unlocked after it
  1892.    completes:
  1893.  
  1894.         @ECHO OFF
  1895.         LOCKPAL
  1896.         <application> %1 %2 %3 %4 %5 %6 %7 %8 %9
  1897.         UNLOKPAL
  1898.  
  1899.    Warning: Palette locking should only be used when all other means of control
  1900.    fail. The feature should never be left enabled all of the time because it
  1901.    will keep well behaved programs from making any color changes.
  1902.  
  1903.  * To use custom colors for an application that wants to install its own
  1904.    palette, the custom colors are loaded before the palette is locked:
  1905.  
  1906.         @ECHO OFF
  1907.         APPCOLOR
  1908.         LOCKPAL
  1909.         <application> %1 %2 %3 %4 %5 %6 %7 %8 %9
  1910.         UNLOKPAL
  1911.         MYCOLORS
  1912.  
  1913. In the event of a conflict between an ANSIPLUS feature and an application, the
  1914. feature can be disabled before running the application and enabled again after
  1915. it completes. For example, the following batch file turns off the screen saver
  1916. while running an application:
  1917.  
  1918.         @ECHO OFF
  1919.         SETAPLUS DISABLE SAVER
  1920.         <application> %1 %2 %3 %4 %5 %6 %7 %8 %9
  1921.         SETAPLUS ENABLE SAVER
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.                                        30
  1947.  
  1948.                      EDITING ANSI ESCAPE SEQUENCE PROGRAMS
  1949.  
  1950. After using ANSIPLUS for a while, the user will find it desirable to create
  1951. short programs for frequently used video modes, color selections or definitions,
  1952. key reassignments, etc. The ANSICOM.exe utility program provides this facility:
  1953. with it, the user can create and edit small executable ".com" files or small
  1954. printable text files that contain ANSI escape sequences. ANSICOM is executed
  1955. with the following command:
  1956.  
  1957.      ANSICOM <filename>
  1958.  
  1959. where <filename> is the name of the file to be edited. Your file to edit is
  1960. selected using the following rules:
  1961.  
  1962.  * If no file name is supplied, you will be presented with a menu of ".com"
  1963.    files to select from.
  1964.  
  1965.  * If a file name is supplied, and it does not include a file type, a file type
  1966.    of ".com" is assumed.
  1967.  
  1968.  * When an existing ".com" file is edited, it is first checked for program code
  1969.    that outputs the ANSI escape sequences. If this is not found, ANSICOM will
  1970.    refuse to edit the file.
  1971.  
  1972.  * If the file to be edited is not a ".com" file, then it is assumed to be a
  1973.    non-executable printable text file.
  1974.  
  1975.  * If the named file is not found (including a search of the system PATH),
  1976.    ANSICOM will ask if a new file is to be created.
  1977.  
  1978. Once the file has been properly identified, a full-screen editing display is
  1979. presented, and you can go to work. Use the F1 key for context sensitive help.
  1980.  
  1981. The ANSICOM full screen editing display automatically parses the user's entries
  1982. and identifies the kinds of ANSIPLUS escape sequences entered, including
  1983. incomplete escape sequences. ANSICOM will not allow the user to save a file
  1984. containing an incomplete escape sequence. Beyond that, it is the user's
  1985. responsibility to be sure that the escape sequences entered will do what he
  1986. wants.
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.                                        31
  2006.  
  2007.  
  2008. V.   ANSIPLUS ESCAPE SEQUENCES
  2009.  
  2010. This chapter lists and briefly describes each of the "ANSI" Escape sequences
  2011. recognized by ANSIPLUS. They are described in detail in the printed ANSIPLUS
  2012. manual. In the table, "#" represents any numeric parameter and "Esc" is the
  2013. Escape character (decimal 27, hexadecimal 1Bh):
  2014.  
  2015.  
  2016.      Control Sequence    Description
  2017.      ----------------    -----------
  2018.  
  2019.                    DISPLAY MODE AND CHARACTER SET
  2020.  
  2021.      Esc [#;#h           Set video display mode
  2022.  
  2023.      Esc [#;#l           Reset video display mode
  2024.  
  2025.      Esc [!#t            Select character set height: 8, 14 or 16 scan lines
  2026.  
  2027.      Esc [!#;...;#e      Select graphics mode text treatment options: bold,
  2028.                          underline, slant, shadow, outline, or reverse
  2029.  
  2030.      Esc [!#v            Select video page
  2031.  
  2032.  
  2033.                          CURSOR POSITIONING
  2034.  
  2035.      Esc [#;#H           Set cursor position
  2036.  
  2037.      Esc [#;#f           Set cursor position
  2038.  
  2039.      Esc [#A             Move cursor up
  2040.  
  2041.      Esc [#B             Move cursor down
  2042.  
  2043.      Esc [#C             Move cursor right
  2044.  
  2045.      Esc [#D             Move cursor left
  2046.  
  2047.      Esc [#s             Save cursor position, video mode, video page or colors
  2048.  
  2049.      Esc [#u             Restore cursor position, video mode, page or colors
  2050.  
  2051.  
  2052.                    COLOR SELECTION AND DEFINITION
  2053.  
  2054.      Esc [#;...;#m       Select current color attributes for output characters
  2055.  
  2056.      Esc [!#;#;#;#;#c    Define colors available, select palette, set up color
  2057.                          blinking, restore color definitions or palette
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.                                        32
  2065.  
  2066.  
  2067.  
  2068.      Control Sequence    Description
  2069.      ----------------    -----------
  2070.  
  2071.                       ERASE, INSERT AND DELETE
  2072.  
  2073.      Esc [#;#J           Clear the screen
  2074.  
  2075.      Esc [#;#;#K         Clear a line
  2076.  
  2077.      Esc [#;#L           Insert lines on the screen or in a column range
  2078.  
  2079.      Esc [#;#M           Delete lines from the screen or a column range
  2080.  
  2081.      Esc [#;#@           Insert characters on a line or a column range
  2082.  
  2083.      Esc [#;#P           Delete characters from a line or a column range
  2084.  
  2085.  
  2086.                      DRIVER STATUS AND CONTROL
  2087.  
  2088.      Esc [#;#n           Query ANSIPLUS status: cursor position, current color
  2089.                          selection, video mode and number of colors, screen and
  2090.                          character dimensions, color definitions, feature
  2091.                          settings, tone definition, key reassignment, etc.
  2092.  
  2093.      Esc [!#;...;#d      Enable or disable ANSIPLUS driver feature settings
  2094.  
  2095.      Esc [!#;...;#g      Define the Control-G beep tone
  2096.  
  2097.      Esc [#;...;#p       Define key reassignment (also accepts quoted strings)
  2098.  
  2099.      Esc [!#;...;#k      Add keys to keyboard buffer (accepts quoted strings)
  2100.  
  2101.  
  2102. Besides supporting all the escape sequences accepted by the MS-DOS ANSI.sys
  2103. driver, ANSIPLUS accepts additional parameters for many, and includes several
  2104. entirely new control functions. See Chapter VI, Technical Notes, for
  2105. differences between ANSIPLUS and the ANSI.sys driver.
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.                                        33
  2124.  
  2125. VI.  TECHNICAL NOTES
  2126.  
  2127.  
  2128.                              ANSIPLUS AND WINDOWS 3
  2129.  
  2130. Users of Windows 3.0 and 3.1 should consider using ANSIPLUS as well. The
  2131. ANSIPLUS driver works well with DOS programs under Windows 3, and there are
  2132. advantages to using it in Windows 386 Enhanced Mode. Because ANSIPLUS is a CON
  2133. driver, local copies of it are included in each Windows 386 Enhanced Mode
  2134. virtual 8086. This means that all the ANSIPLUS internal state variables, and
  2135. those of its integrated console features, will be local to each virtual 8086, so
  2136. there is no way they can interfere with each other.
  2137.  
  2138. With DOS 5.0 or later, or with an XMS memory manager such as QEMM (using LOADHI)
  2139. or 386MAX, ANSIPLUS can be loaded into upper memory blocks above 640K to provide
  2140. a slightly larger program area below 640K. However, if Windows 3.0 will be run
  2141. in 386 Enhanced mode, it is strongly recommended that ANSIPLUS (or any other
  2142. ANSI driver) not be loaded into high memory using these methods, and that
  2143. ANSIPLUS load itself high instead. This is because Windows 3.0 does not localize
  2144. the XMS upper memory block area above 640K for its virtual 8086's, and so only
  2145. one global copy of ANSIPLUS would be shared among all virtual machines. This can
  2146. cause trouble: if, for example, a program in one window selects colors, then
  2147. those colors would also be in force for all DOS programs in other windows! This
  2148. has been fixed in Windows 3.1.
  2149.  
  2150. When the DISPLAY.sys driver is used with Windows 3.0 or 3.1, the colors and
  2151. other variables of either ANSIPLUS or the DOS ANSI.sys driver are not localized
  2152. to each virtual 8086. This appears to be because Windows only localizes the
  2153. first CON driver it finds on the DOS device chain, and this will be the most
  2154. recent CON device installed, which is DISPLAY.sys, not ANSIPLUS. Two system
  2155. setup changes are required to circumvent the problem:
  2156.  
  2157.  (1) Enter the following command to change the name of the ANSIPLUS driver in
  2158.      memory from "CON" to "CONAPLUS":
  2159.  
  2160.          SETAPLUS LOCALCON
  2161.  
  2162.      This command is automatically inserted into AUTOEXEC.bat by the ANSIPLUS
  2163.      INSTALL program when DISPLAY.sys is detected.
  2164.  
  2165.  (2) Add the following command to the [386Enh] section of the Windows SYSTEM.ini
  2166.      file:
  2167.  
  2168.          LOCAL=CONAPLUS
  2169.  
  2170.      This causes Windows to localize the ANSIPLUS driver to each virtual 8086.
  2171.      The SYSTEM.ini file is not altered by the ANSIPLUS INSTALL program.
  2172.  
  2173.  
  2174.  
  2175. Several ANSIPLUS features are affected by Windows. The ANSIPLUS driver detects
  2176. when Windows 3 is running, and automatically disables the screen blanker.
  2177. Disabling of four other features under Windows is user-configurable:
  2178.  
  2179.  
  2180.  
  2181.  
  2182.                                        34
  2183.  
  2184.  
  2185.  * On most computers, screen scroll-back should operate correctly when running
  2186.    full screen under Windows. However, when running DOS applications in a 386
  2187.    Enhanced Mode window, Windows will not maintain a full 32K of text mode RAM
  2188.    for the application, and because of this, scroll-back text can be lost. This
  2189.    is most likely to occur when the focus is switched from task to task, as with
  2190.    the Alt-Tab key, or when changing display modes.
  2191.  
  2192.    The ANSIPLUS driver attempts to compensate for lost video memory under
  2193.    Windows, but the NEWAPLUS and SETAPLUS programs also provide an option to
  2194.    totally disable scroll-back when Windows is running. This feature should be
  2195.    disabled only if you don't want to use scroll-back under Windows. If all DOS
  2196.    applications are run full screen, then it should be enabled.
  2197.  
  2198.    The situation for DOS applications running in a window is improved if the
  2199.    PIF file for the application (or the file DOSPRMPT.pif for the MS-DOS prompt)
  2200.    has Video Memory set to High Graphics and Retain Video Memory checked under
  2201.    Advanced Options (with the PIF Editor). These settings are recommended for
  2202.    all DOS applications that depend on ANSIPLUS scrolling features under
  2203.    Windows. A sample PIF file with these settings for the MS-DOS prompt is
  2204.    included with the ANSIPLUS package in the file APLUS.pif. If these PIF
  2205.    settings are not used, then the first time that ANSIPLUS needs to access the
  2206.    scroll-back storage area, Windows will present a message claiming that there
  2207.    is not enough memory for the application to correctly display information. If
  2208.    this happens, just click on OK, then hit Alt-Enter to switch to a full screen
  2209.    display and proceed.
  2210.  
  2211.  * If smooth scrolling does not perform well under Windows, or if there are
  2212.    other problems, then smooth scrolling can be disabled in Windows. In general,
  2213.    if scroll-back doesn't work under Windows, then smooth scrolling won't work
  2214.    either.
  2215.  
  2216.  * When Windows is running in 386 Enhanced mode, and a DOS program running in
  2217.    the background outputs a Control-G, the background program's virtual 8086 may
  2218.    not be running fast enough to accurately time the tone. Because of this, the
  2219.    tone can drag out and sound strange. Disabling ANSIPLUS tone generation under
  2220.    Windows restores the original Windows sound driver, but makes the tone
  2221.    frequency and duration non-changeable.
  2222.  
  2223.  * Some 256-color drivers for Windows assume that the OEM 256-color palette has
  2224.    been loaded when the 256-color mode was selected, and never define the colors
  2225.    that Windows will use. Because of this, ANSIPLUS normally does not load its
  2226.    default colors when a 256-color mode is selected under Windows. By enabling
  2227.    this feature,  using such a driver could cause the wrong standard colors to
  2228.    be displayed by Windows.
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.                                        35
  2242.  
  2243.                   ANSIPLUS and the 4DOS or NDOS Command Shells
  2244.  
  2245. The ANSIPLUS driver is compatible with the 4DOS 4.0+ and NDOS Version 7.0
  2246. command shells. Two ANSIPLUS features are specifically adapted to 4DOS/NDOS:
  2247.  
  2248.  * ANSIPLUS supports key stacking, so the KSTACK.com TSR does not need to
  2249.    be loaded. Key stacking capacity is limited to the size of ANSIPLUS's key
  2250.    buffer, which is configurable by INSTALL/NEWAPLUS up to 512 keys. ANSIPLUS
  2251.    key stacking can be disabled if KSTACK.com or KEYSTACK.sys is preferred.
  2252.  
  2253.  * The SETCOLOR.exe utility program can be used as a replacement for the 4DOS
  2254.    or NDOS internal COLOR command, since SETCOLOR supports the syntax and all
  2255.    options of COLOR, plus many additional options. To do this, two commands
  2256.    should be added to AUTOEXEC.bat:
  2257.  
  2258.         SETDOS /i-COLOR
  2259.         ALIAS COLOR SETCOLOR
  2260.  
  2261.                    ANSIPLUS EXTENSIONS AND THE ANSI STANDARD
  2262.  
  2263. ANSIPLUS uses a number of added control parameters and includes entire new
  2264. control functions that are not part of the ANSI X3.64 standard, so do not expect
  2265. them to be supported by any other drivers or devices. The following added
  2266. ANSIPLUS functions are not standard ANSI:
  2267.  
  2268.     Esc [!#t            Select character set height
  2269.     Esc [!#;...;#e      Select graphics mode text treatment options
  2270.     Esc [!#v            Select video page
  2271.     Esc [!#;#;#;#;#c    Define colors available, select palette, setup blinking
  2272.     Esc [!#;...;#d      Enable or disable ANSIPLUS driver features
  2273.     Esc [!#;...;#g      Define Control-G beep tone
  2274.     Esc [!#;...;#k      Add keys to keyboard buffer
  2275.  
  2276. The following ANSIPLUS functions accept standard ANSI parameters, but also
  2277. accept added non-standard parameters:
  2278.  
  2279.     Esc [#;#h           Set video mode
  2280.     Esc [#s             Save cursor position, video mode, etc.
  2281.     Esc [#u             Restore cursor position, video mode, etc.
  2282.     Esc [#;#J           Clear the screen
  2283.     Esc [#;#;#K         Clear a line
  2284.     Esc [#;#L           Insert lines on the screen
  2285.     Esc [#;#M           Delete lines from the screen
  2286.     Esc [#;#@           Insert characters on a line
  2287.     Esc [#;#P           Delete characters from a line
  2288.     Esc [#;...;#m       Select current color attributes for output characters
  2289.     Esc [#;#n           Query ANSIPLUS status: cursor position, colors, etc.
  2290.     Esc [#;...;#p       Define key reassignment
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.                                        36
  2301.  
  2302.  
  2303.                     ESCAPE SEQUENCE RECOGNIZER ENHANCEMENTS
  2304.  
  2305. To simplify program generation of control sequences, the ANSIPLUS escape
  2306. sequence recognizer syntax has been relaxed:
  2307.  
  2308.  * Blanks between parameters in escape sequences are ignored;
  2309.  
  2310.  * Commas are allowed as separators in addition to semicolons;
  2311.  
  2312.  * Either single or double quotes may be used around character parameters;
  2313.  
  2314.  * Parameter values over 255 (i.e., up to 32,767) are accepted for certain
  2315.    commands. Plus and minus signs are also accepted.
  2316.  
  2317. Unrecognized escape sequences are passed through by the driver unaltered. The
  2318. Esc character is trapped only when followed by a left bracket ("["), so programs
  2319. that write the escape character (a left arrow) to the screen will continue to do
  2320. so after the driver is installed.
  2321.  
  2322.  
  2323.                    DIRECT ACCESS TO VIDEO RAM VS. BIOS CALLS
  2324.  
  2325. ANSIPLUS uses direct access to video RAM in all VGA/EGA text and most common
  2326. graphics modes. However, BIOS calls will be used to output characters for three
  2327. classes of graphics modes:
  2328.  
  2329.  * Modes with 256 colors;
  2330.  
  2331.  * Modes that require more than 64K bytes of video RAM (i.e., 16 color graphics
  2332.    modes exceeding 800x600 resolution); and
  2333.  
  2334.  * Unrecognized (usually CGA or Hercules) graphics modes.
  2335.  
  2336. When BIOS calls are used, output is much slower, and "transparent" mode output,
  2337. graphics mode text treatments, and insert/delete characters are also not
  2338. supported. Future versions of ANSIPLUS may extend direct video RAM access to
  2339. some of these modes.
  2340.  
  2341.  
  2342.                               INSTALLATION CHECKS
  2343.  
  2344. ANSIPLUS responds to the Int 2Fh test for ANSI.sys installation. When Int 2Fh is
  2345. called with AX=1A00h, ANSIPLUS will return AL=0FFh to indicate that ANSI.sys is
  2346. installed.
  2347.  
  2348. The Int 2Fh response is expanded if registers BX="AN", CX="SI" and DX="++".
  2349. Then, in addition to returning AL=0FFh, ANSIPLUS returns a pointer in ES:BX to
  2350. the ANSIPLUS Int 29h entry point. A further installation confirmation can be
  2351. made by checking the 8 bytes at ES:[BX-12] for the string "ANSIPLUS". The
  2352. ANSIPLUS version number will be a 4 character string at ES:[BX-4], containing,
  2353. for example, "3.00".
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.                                        37
  2360.  
  2361.                                HOOKED INTERRUPTS
  2362.  
  2363. To implement all its features, ANSIPLUS attaches itself to nine system
  2364. interrupts. Two are replaced (1Bh and 29h), and the remaining 7 are supplemented
  2365. (i.e., ANSIPLUS calls the original interrupt but extends its function). If
  2366. possible, ANSIPLUS should always be installed after any other drivers that take
  2367. over any of these interrupts without passing calls through. The following table
  2368. lists the ANSIPLUS hooked interrupts and reasons for each:
  2369.  
  2370. +------------------------------------------------------------------------------+
  2371. |                                  Table 6-1                                   |
  2372. |                          ANSIPLUS Hooked Interrupts                          |
  2373. +----------------------+-------------------------------------------------------+
  2374. |Interrupt Description | Reason                                                |
  2375. +----------------------+-------------------------------------------------------+
  2376. |1Bh Keyboard Break    | Promote Control-Break to front of key buffer          |
  2377. |                      |                                                       |
  2378. |29h DOS Write Char    | Faster DOS screen output                              |
  2379. |                      |                                                       |
  2380. |09h Key Event         | Screen saver; scroll lock; scroll-back; key buffer    |
  2381. |                      | extension; smooth scroll toggle; other special key    |
  2382. |                      | processing                                            |
  2383. |                      |                                                       |
  2384. |10h BIOS Video        | Palette/DAC control; beep tone generation; screen     |
  2385. |                      | saver; smooth scroll; scroll lock; scroll-back; BIOS  |
  2386. |                      | Write TTY ANSI trap                                   |
  2387. |                      |                                                       |
  2388. |15h System Services   | Key processing                                        |
  2389. |                      |                                                       |
  2390. |16h BIOS Get Key      | Key buffer management; highlighted key echo; scroll-  |
  2391. |                      | lock and scroll-back                                  |
  2392. |                      |                                                       |
  2393. |1Ch User Timer Tick   | Screen saver; smooth scroll; color blinking; beep tone|
  2394. |                      | generation                                            |
  2395. |                      |                                                       |
  2396. |2Fh Multiplex         | Installation checks; special functions; Windows exit  |
  2397. |                      | processing                                            |
  2398. |                      |                                                       |
  2399. |74h PS/2 Mouse Event  | Screen saver                                          |
  2400. +----------------------+-------------------------------------------------------+
  2401.  
  2402. The DOS KEYB program for international keyboard support hooks the Int 09h Key
  2403. Event interrupt without passing calls through to whatever was installed before
  2404. (ie., to ANSIPLUS). Therefore, if the KEYB program is being used to set up the
  2405. keyboard, the following command MUST be executed after loading KEYB, otherwise
  2406. most ANSIPLUS keyboard related features will not work:
  2407.  
  2408.     SETAPLUS LINK KEYEVENT
  2409.  
  2410. This command will re-install ANSIPLUS on the key event interrupt. The INSTALL
  2411. program will automatically add this command to AUTOEXEC.bat if it finds a
  2412. reference in it to KEYB.
  2413.  
  2414. If the DISPLAY.sys device driver for code page switching is being used, the
  2415. ANSIPLUS.sys device driver must be installed before DISPLAY.sys in CONFIG.sys.
  2416. The INSTALL program will also automatically handle this.
  2417.  
  2418.                                        38
  2419.  
  2420.  
  2421.  
  2422. If you suspect that a system interrupt is no longer accessible to ANSIPLUS
  2423. because of a TSR or device driver that has been loaded after ANSIPLUS, you can
  2424. test this with the command:
  2425.  
  2426.     SETAPLUS INTERRUPT <intnum>
  2427.  
  2428. which displays, to the extent possible, the chain of programs attached to any
  2429. selected interrupt. The <intnum> may be either a hexadecimal interrupt number or
  2430. one of the following keywords:
  2431.  
  2432.       KEYEVENT       Interrupt 09h Key Event
  2433.       VIDEO          Interrupt 10h Video
  2434.       SYSTEMSERVICE  Interrupt 15h System Services
  2435.       KEYREQUEST     Interrupt 16h Keyboard Request
  2436.       KEYBREAK       Interrupt 1Bh Keyboard Break
  2437.       TIMERTICK      Interrupt 1Ch User Timer Tick
  2438.       DOSTTY         Interrupt 29h DOS Fast TTY Output
  2439.       MULTIPLEX      Interrupt 2Fh Multiplex, and
  2440.       PS2MOUSE       Interrupt 74h PS/2 Mouse Event
  2441.  
  2442. If ANSIPLUS is missing from the listing, it can be relinked with the command:
  2443.  
  2444.     SETAPLUS LINK <intnum>
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.                                        39
  2478.  
  2479.