home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-01 | 63.9 KB | 1,354 lines |
- ╦═╗ ╦═╗
- ║ ║╦═╗╔═╗╔═╗╦═╗╔═╗╦╦╗ ║ ║╔═╗╔═╗╦ ╦╦╦╗╔═╗╦═╗╠═ ╔═╗╠═ ╔╗ ╔═╗╦═╗
- ╠═╝║ ║ ║║ ║║ ╔═╣║║║ ║ ║║ ║║ ║ ║║║║╠═╝║ ║║ ╔═╣║ ║ ║ ║║ ║
- ╩ ╩ ╚═╝╚═╣╩ ╚═╝╩ ╚ ╩═╝╚═╝╚═╝╚═╝╩ ╚╚═╝╩ ╚╚═╝╚═╝╚═╝═╩╝╚═╝╩ ╚
-
- VIz
- Revision 4.24.0
-
- Copyright (c) 1989-1992, FM de Monasterio
- Licensed Material - All rights reserved
-
-
- CONTENTS
- 1. SUMMARY
- 2. REGISTRATION
- 3. GENERAL INFORMATION
- Hardware Commands Compatibility
- CPU releases
-
- 4. ACCELERATION MODULE
- 5. CURSOR ALTERNATION MODULE
- 6. ANSI-COMPATIBLE FILTER MODULE
- Coexistence with other ANSI filters
- ANSI implementations
-
- 7. INSTALLATION & USAGE
- Switches
- Comments
- Status/Usage/Help panels
-
- 8. INSTALLATION IN UPPER MEMORY
- Direct upper-memory area loading
- UMA loading via memory managers or DOS 5
- UMA updating
- UMA deallocation
- Memory mapping utilities
-
- 9. BASIC TECHNICAL INFORMATION
- Interrupts
- CLS command & INT 29h
- Environment variable 'VIZ'
- DOS errorlevels
-
- 10. COPYRIGHT & LICENSE
- U.S. Government information
- Upgrades
- Limitations
- Technical support
-
- 1. SUMMARY
-
- VIz is a small resident program that accelerates BIOS (and DOS) video input
- and output in text mode; it can be used with IBM-compatible MDA, EGA or VGA
- adapter cards and Hercules HGC and HGC+ cards. In its present release, VIz
- produces video interference ("snow") in old CGA cards.
-
- In addition, VIz includes an independent, resident component for displaying
- a block cursor, either continuously or alternating with a line cursor at an
- adjustable rate of alternation. The latter display is well suited for easy
- localization of the cursor in some laptop screens.
-
- Finally, VIz also contains an independent, resident ANSI-filter driver that
- mediates a subset of the ANSI escape sequences to control the console. This
- filter can be used, instead of ANSI.SYS, to implement ANSI escape sequences
- to control video display, with the advantage that can be turned off and on,
- and removed from memory without rebooting.
-
- All 3 resident modules occupy a total of less than about 1800 bytes of RAM.
- Depending on the system configuration and BIOS version, video accelerations
- by a factor of between 2 and 10 have been obtained.
-
-
-
- 2. REGISTRATION
-
- This software is user-supported; the present release, although lacking the
- options marked by asterisks, is a fully usable program. You may test this
- release for (in)compatibilities with your system, but after the testing is
- completed you are requested to order a registered copy of the full release
- of the software from the address at the end of this documentation.
-
- If you would rather use this unregistered copy, consider making a donation
- to the Children's Hospital of Washington DC, for indigent children in need
- of medical care. Every year in the USA, infant mortality claims the lives
- of tens of thousands of children before their first year of life, and most
- of them come from families below poverty level... Please send to the same
- address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
- the obverse, and marked "For Deposit Only" on the reverse. Donations will
- be sent to Children's Hospital. Please identify the program for which you
- are making the donation.
-
- ------------------------------------------------------------------
- VIZ.REG contains a form needed to register or upgrade the Software
- ------------------------------------------------------------------
-
- See the final part of this documentation for information on the Licensing,
- Distribution, Warranty, and Limitation of Remedies of this software.
-
-
-
- 3. GENERAL INFORMATION
-
- There are 3 basic ways of producing character-oriented, text video displays
- in DOS computers: (1) using direct video memory mapping, which is extremely
- fast but dependent on the video hardware and has a limited portability; (2)
- via BIOS services, provided by the first "hidden" DOS boot file and usually
- augmented by the video adapter, which are not as fast as direct mapping but
- more portable; and (3) via DOS services, provided by the other "hidden" DOS
- boot file and sometimes augmented via installable device drivers, which are
- much slower than the other two approaches, but have greater portability and
- permit additional operations such as redirection.
-
- Many of the DOS and BIOS video services can be accelerated using a resident
- program that intercepts the calls made to such services, and implements the
- video operation with faster instructions. Because of the nature of DOS and
- of BIOS services, the interception must occur at the input site of the BIOS
- services (INT 10h) while it can occur at the input site (INT 21h) or output
- site (INT 29h), or both, of the DOS services.
-
- VIz is a utility that accelerates many of the basic text-video services and
- allows changing the video mode, page and font of the display as well as the
- raw or normal mode of DOS video output. When used in a VGA/EGA system, VIz
- also permits control of the red, green and blue mixture that determines the
- color of each of the 16 registers of the color palette, and the RGB mixture
- can be modified to suit user preferences. VIz also permits controlling the
- frequency (pitch) of the bell's tone.
-
- VIz requires MS-DOS version 2 or higher (or a compatible operating system).
- Upper-memory selfloading requires DOS version compatible with MS-DOS 3.0 or
- later. A cyclical redundancy check (CRC) is performed each time the program
- is executed. Execution is cancelled if the CRC fails, since this indicates
- code corruption.
-
-
- HARDWARE COMMANDS COMPATIBILITY
-
- VIz updates cursor position through direct hardware commands. In most video
- systems, such commands can be sent out as one 16-bit (Word) value or as two
- successive 8-bit (Byte) values. The word-out method of addressing, which is
- used by other programs (e.g., Microsoft WINDOWS), yields faster positioning
- of the cursor but may not work with some older clone systems.
-
- Registered VIz releases use cursor word-out addressing; to verify that your
- system can handle this method, you can enter the command 'VIZ ?H' to see if
- the cursor appears at the indicated position. If not, the video system only
- allows byte-out addressing, and registered users need to contact the vendor
- for a byte-out release of VIz free of charge.
-
-
- CPU RELEASES
-
- VIz is entirely written in assembly language. Each VIz revision consists of
- 4 processor-type releases (086, 268, 386, and 486), where the code has been
- optimized for the specific type of 80x86 processor. This is needed because
- the processors currently available differ markedly in instruction execution
- times, and the availability of memory caches affects those times further by
- influencing both speed of instruction fetching and memory access. The type
- and degree of code optimization vary with the processor model.
-
- In addition to standard (086) assembly language instructions, the 286, 386,
- and 486 releases of VIz also use 286-, 386- or 486-specific instructions in
- real mode only (which is the native mode for 086 processors). The releases
- differ slightly in resident size.
-
-
-
- 4. ACCELERATION MODULE
-
- VIz installs itself as a resident program that can be invoked repeatedly for
- modification of its parameters, without producing multiple copies on memory;
- the accelerator module of the resident uses less than 1000 bytes of RAM. To
- maximize speed of code, but minimize resident size, acceleration only occurs
- for video page 0 in a text mode (1-3, color; 7, monochrome). In other pages
- or graphic modes, VIz becomes inactive and is automatically reactivated by a
- change to page 0 in text mode.
-
- VIz updates relevant parameters in the BIOS data area (segment 40h), such as
- cursor position (page 0 only) and type, video mode, page, and font, that are
- also processed by VIz; while such updating degrades video acceleration time,
- it also decreases the possibility of conflict with foreground utilities that
- use BIOS data but bypass BIOS calls.
-
-
-
- 5. CURSOR ALTERNATION MODULE
-
- To help cursor visualization in screens where the cursor is not easily seen,
- as in some laptop displays, VIz provides a small resident module that allows
- for the display of a (full-)block cursor, either continuously or alternating
- with a line cursor. The alternation rate can be adjusted in steps of 54.9 ms
- between about 0.055 s (/V1) and 5.5 s (/V99). A zero alternation rate (/V0)
- produces a continuously present block cursor. For the module to be loaded in
- memory, VIz must be installed with any /V switch (see below), and it adds an
- additional 100 bytes to the resident size of VIz.
-
- Very short or very long alternation rates are distracting or hard to follow.
- When selecting a rate for laptop displays, start with a value of n=9 (.50 s)
- or so.
-
- Block cursor alternation can be turned off by making this resident quiescent
- with the switch /V+ (until its reactivation with /Vn). All cursor operations
- use direct commands to the hardware, and assume register-level compatibility
- with the Motorola 6845 CRT controller. This chip is present in MDA, CGA, and
- HGC cards, while a 6845-compatible CRTC is a custom LSI chip in the IBM-EGA,
- part of the Memory Controller Gate Array on the MCGA, or a part of the Video
- Graphics Array on the VGA.
-
- The normal (hardware-controlled) blinking of the cursor is not eliminated by
- VIz; hence, depending on the alternation rate selected, a two-beat frequency
- may be noticeable.
-
-
-
- 6. ANSI-COMPATIBLE FILTER MODULE
-
- The DOS files includes the filter ANSI.SYS, a console character driver that
- mediates a subset of the standard escape sequences of the American National
- Standards Institute (ANSI) for video services. This filter also mediates a
- supplementary subset for keyboard services (such as key reprogramming).
-
- VIz has a second, independently installable resident module that implements
- standard ANSI escape sequences to control the console video functions. This
- ANSI-compatible filter uses less than some 800 additional bytes of RAM when
- installed. Once installed, this ANSI filter module can be turned off or on
- independently of the other modules, or jointly uninstalled from memory.
-
- The filter does not provide by itself much acceleration of DOS video input/
- output as far as ANSI instructions are concerned. Its advantages are small
- resident size, the capability of being turned on or off, and its harmonious
- working with the acceleration module of VIz.
-
-
- COEXISTENCE WITH OTHER ANSI FILTERS
-
- The installation of the ANSI filter can be made contingent on not detecting
- the presence of ANSI.SYS or another ANSI-like utility intercepting the FAST
- CONSOLE interrupt (29h) of DOS, such as ANSI.COM (Copyright 1989 Ziff-Davis
- Corp.), or the potential presence of such utilities may be ignored (and the
- filter forced to install).
-
- The presence of an installed ANSI-like utility can be ascertained using the
- Status/Usage/Help panel displayed when the command 'VIZ ?' is entered. The
- Status line at the bottom of the screen displays one of the following:
-
- ANSI.SYS Indicates that interrupt 29h (see below) points to a
- resident code containing a device driver header with
- the attributes of a character device servicing calls
- to INT 29h and the device name 'CON.' This is likely
- to be ANSI.SYS or an ANSI-compatible device driver.
-
- ANSI.COM Indicates that interrupt 29h (see below) points to a
- resident code containing the string 'CON ' at the
- place where the device driver name should be, but it
- does not contain other elements of the device driver
- header. This is an ANSI-compatible resident utility
- of the type of ANSI.COM.
-
- ANSI: No Indicates absence of the above conditions.
-
-
- ANSI IMPLEMENTATIONS
-
- The ANSI-compatible filter supports the following subset of ANSI 3.64-1979,
- standard escape sequences, to control console video functions (see your DOS
- documentation of the ANSI.SYS commands):
-
- Selection of the foreground and background colors on a color display or
- the text attributes on a monochrome display system. The sequence syntax
- is <Esc>[#;...;#m, where # is 30-37 to select a foreground color, 40-47
- 47 to select a background color, and 0-1, 4-5 or 7-8 to select the text
- attributes.
-
- Selection of the video mode (similar to using the MODE command of DOS).
- The sequence syntax is <Esc>[=#h or <Esc>[=#l, where # is 0-6 or higher
- (depending on the adapter card in use).
-
- Selection of word wrapping, i.e. whether lines longer than the width of
- the screen are truncated. The sequence syntax is <Esc>[?7h or <Esc>[?7l
- to turn word wrapping ON or OFF, respectively.
-
- Cursor positioning for the following sequences:
-
- <Esc>[r#;c#H Move to specified row (r#) and column (c#)
- <Esc>[r#;c#f Same a previous sequence
- <Esc>[r#A Move cursor up by specified number of rows
- <Esc>[r#B Move cursor down by specified number of rows
- <Esc>[c#C Move forward the specified number of columns
- <Esc>[c#D Move backward the specified number of columns
-
- <Esc>[s Store current position of the cursor
- <Esc>[u Restore to the position stored by <Esc>[s
-
- <Esc>[K Erase from the cursor to end of the line
- <Esc>[2J Clear all rows and home cursor (this sequence
- preserves current color attribute)
-
- Not supported by the filter are the cursor-position-reporting ANSI sequence
- (<Esc>[r#;c#R), and the supplementary set of escape sequences used by ANSI.
- SYS to permit the reprogramming of the keyboard (i.e. <Esc>[#;'string';3p),
- a set which is not part of the 1979 ANSI video standard.
-
-
-
- 7. INSTALLATION & USAGE
-
- The enclosed utility INSTALL.EXE may be used to copy the program files to
- a user-defined drive and directory, and--if so desired--to add statements
- to the file AUTOEXEC.BAT so that the program is loaded automatically upon
- booting and to append the user-defined directory to the PATH statement.
-
- The following describes the manual installation of VIz:
-
- VIZ [/Switches] [;Comments]
-
- It is recommended that VIz be installed before other residents also using
- the BIOS interrupt 10h (video input/output). Due to the intrinsic nature
- of the implementation, VIz does not chain some the interrupt-10h calls to
- residents located down the intercepted interrupt chain. In order for such
- residents to have access to these data, they need to be loaded after VIz.
- Thus, it may be convenient to install VIz early in the AUTOEXEC.BAT file.
-
- If you intend to make use of the resident ANSI filter in a more permanent
- manner, VIz may also be installed just as described above; if you want to
- remove the ANSI component after a given ANSI-oriented task, however, then
- VIz should be the last resident to be installed.
-
- The driver ANSI.SYS needs not to be loaded or, if loaded, removed, to use
- the ANSI resident of VIz. However, if any ANSI-like utility were already
- installed and active, and VIz were switched to its 'fast DOS' mode (/Z+),
- such an utility might be unable to process escape sequences, unless these
- sequences were sent directly to the CON device via INT-29h calls (instead
- INT 21h).
-
- Once installed, the resident can be modified at any time by executing VIz
- again with new command switches.
-
-
- SWITCHES
-
- The switches can be entered from:
-
- (1) the DOS command line
- (2) a batch file
- (3) a DOS environment string with the format VIZ=/SWITCH1.../SWITCHn
-
- The switches are not case sensitive, and can be separated by any character
- between space (ASCII 32) and backslash (ASCII 47). The effects of some of
- the switches, e.g., /N, are order sensitive. Switches /A, /B, /C, /D, /I,
- /M, /P, /R and /S are "sticky" as the video changes they produce remain in
- effect even if VIz is quiescent or uninstalled.
-
- --------------------------------------------------------------------------
- (*) Switches marked with asterisks are available only in registered copies
- --------------------------------------------------------------------------
-
- SWITCH /?
-
- This switch displays the Status/Usage/Help panels, which are described in
- more detail in the section below. If a VGA or EGA is the active adapter,
- the program saves the contents of the palette registers prior to changing
- the video attributes for its various displays. See section STATUS/USAGE/
- HELP PANELS below.
-
- EGA users: The default MS-DOS palette attributes are restored if the EGA
- BIOS fails to store the original video data.
-
-
- * SWITCH /A[±]
-
- Installs a resident filter to implement (the video subset of) ANSI escape
- sequences; the installation may be made contingent upon failure to detect
- the presence of the DOS driver ANSI.SYS or some ANSI-like residents (/A),
- or to ignore their potential presence (/A+).
-
- The ANSI module does not become resident unless switch /A[+] is specified
- at the time VIz is being installed and cannot be added after installation
- of the resident(s).
-
- Although the filter can take advantage of VIz acceleration, its operation
- does not require the enabling of the resident accelerator module, and its
- activity can be controlled independently with the following switches:
-
- * /A If VIz is not yet installed, adds the ANSI filter module
- to the resident code to be installed, provided that ANSI
- or another logical device named 'CON ' mediating int
- 29h (see #3 above) is not installed, and inactivates the
- remapping of the EGA/VGA palette via /C+, /Cn:n, or /Cm.
-
-
- * /A+ If VIz is not yet installed, adds the ANSI filter module
- to the resident code to be installed, even when ANSI.SYS
- or a similar CON utility has already been installed, and
- inactivates the remapping of the EGA/VGA palette via /C+
- /Cn:n, or /Cm.
-
- If VIz is already installed, and the resident filter was
- made inactive with /A-, /A+ reactivates the ANSI filter.
-
-
- * /A- Inactivates the filter, if installed and active. It also
- reactivates a previously active remapping of the EGA/VGA
- palette.
-
- Defaults: /A = /A+; null switch = no resident on installation.
-
- Switch /A or /A+ automatically turns switch /Z off (/Z-) to insure that
- all the DOS video output is directed to the console driver so that ANSI
- escape sequences via StdOut can also be implemented by the ANSI filter.
- In those cases where the ANSI escape sequences are directly sent by the
- application to INT 29h, a faster DOS output is achieved with switch /Z+
- after selecting switch /A[+].
-
-
- * SWITCH /Bn
-
- Selects the color for the screen border in text modes, and the background
- and border color in graphic modes. This color is specified by <n>, a one
- or two digit number representing the Red-Green-Blue mixture for the color
- using an octal (base 8) format ranging from 0 to 77 (see Switch C below).
-
- Switch /C+ also sets the screen border; the default border for the EGA is
- black, and the screen background attribute for other color adapters.
-
-
- * SWITCH /Cn:m±?
-
- Allows for color changes in the EGA/VGA color palette, which consists of
- 16 registers, and is used to map video memory data into colors. Both in
- (the EGA-compatible modes of) the VGA and the EGA, the value in each one
- of these registers determines the amount of Red, Green, and Blue mixture
- in the displayed color.
-
- This amount can be represented by the data bits <RGBrgb>, where <000rgb>
- shows the color at 33%, <RGB000> at 66%, and <RGBrgb> at 100% intensity.
- These bits, and their resultant color, are shown below using both binary
- (base 1) and octal (base 8) number formats:
-
- Binary Octal Color Since the binary format takes up a
- ┌─────────┬───────┬─────────────┐ lot of space it is more convenient
- │ 000 000 │ 00 + │ 100% black │ to use the 2-digit octal format to
- │ 000 001 │ 01 │ 33% blue │ represent an RGB value. The binary
- │ 000 010 │ 02 │ 33% green │ equivalence of octal numbers is:
- │ 000 011 │ 03 │ 33% cyan │
- │ 000 100 │ 04 │ 33% red │
- │ 000 101 │ 05 │ 33% magenta│ 0o = 000000b
- │ 000 110 │ 06 │ 33% yellow │ 1o = 000001b
- │ 000 111 │ 07 │ 33% white │ 2o = 000010b
- ├─────────┼───────┼─────────────┤ 3o = 000011b
- │ 001 000 │ 10 + │ 66% blue │ 4o = 000100b
- │ 010 000 │ 20 + │ 66% green │ 5o = 000101b
- │ 011 000 │ 30 + │ 66% cyan │ 6o = 000110b
- │ 100 000 │ 40 + │ 66% red │ 7o = 000111b
- │ 101 000 │ 50 + │ 66% magenta│ 10o = 001000b
- │ 110 000 │ 60 + │ 66% yellow │ 11o = 001001b
- │ 111 000 │ 70 + │ 66% white │ 12o = 001010b
- ├─────────┼───────┼─────────────┤ 13o = 001011b
- │ 001 001 │ 11 + │ 100% blue │ 14o = 001100b
- │ 010 010 │ 22 + │ 100% green │ 15o = 001101b
- │ 011 011 │ 33 + │ 100% cyan │ 16o = 001110b
- │ 100 100 │ 44 + │ 100% red │ 17o = 001111b
- │ 101 101 │ 55 + │ 100% magenta│ 20o = 010000b
- │ 110 110 │ 66 + │ 100% yellow │ etc
- │ 111 111 │ 77 + │ 100% white │
- └─────────┴───────┴─────────────┘
- (+) IBM default color palette
-
- Of course, other colors can also be generated when using a different RGB
- mixture value. For instance, a desaturated (i.e., whitish) RGB sequence
- is obtained in the octal range 71o through 76o.
-
- This palette control is also enabled (revision 2.42+) for the monochrome
- mode of VGA and MCGA video adapters to remap color codes into gray-scale
- values. The following services are available:
-
- * /C:n The RGB values of the palette registers is set by a 16-
- number sequence in which these two-digit, octal numbers
- are separated by colons (:) as in the following example
-
- /C03:00:20:30:40:50:01:77:70:11:22:33:44:55:66:76
-
- which shows the default palette colors used by VIz when
- switch /C? is used. If less than 16 numbers are given,
- their RGB values are loaded into the respective palette
- registers starting from register 0. When a non-numeric
- value is provided, the palette is not changed.
-
-
- * /Cm± The VGA and MCGA adapters emulates a 16-color text mode
- for a monochrome display, and the palette consists of 4
- groups of four shades of gray. In MONOCHROME modes, /Cm
- loads a palette in which the gray-scale value increases
- uniformly with increasing attribute values; the palette
- corresponds to the following command
-
- /C00:50:01:31:61:12:42:03:43:04:44:05:55:26:07:77
-
- Switch /Cm can also be used with CGA monochrome systems
- (e.g., laptops) to translate color attributes into gray
- scale values.
-
- In COLOR modes, switch /Cm± enables [+] or disables [-]
- the gray-scale summing of the RGB mixture. The summing,
- carried out by the BIOS, sets the gray-scale equivalent
- of a given color to 30%, 50%, and 11% of the Red, Green
- and Blue value in the video digital-to-analog registers
- (these percentages are close to the relative brightness
- of the displayed 'pure' red, green, and blue).
-
-
- /C? This service provides a display of the palette registers
- and the corresponding RGB mixture in octal format. It is
- possible to alter the RGB mixture of any register simply
- by pressing <R>, <G>, or <B> and then <> or <>. These
- arrows cycle through 0%, 33%, 66%, and 100% intensity of
- the respective RGB component. The actual RGB mixture of
- the selection is also shown on a graph. Press the right
- or left arrow to cycle through the registers, and <HOME>
- to go to register 0 or <END> to go to register 15.
-
- Press <ENTER> to save the current palette, <ESC> to quit
- the service without any palette changes, <DEL> to reject
- any change and to restart the service, and the indicated
- function keys to load several available palettes.
-
-
- * /C- Use to inactivate the implementation of EGA/VGA palette
- changes via VIz. The video attributes remain unchanged
- until the a video operation reloads the palette, e.g. a
- video mode change. Switch /A+ also turns off remapping
- of the palette.
-
-
- * /C+ Use to reactivate the implementation of EGA/VGA palette
- changes via VIz; it reloads the last color palette that
- was selected via VIz. Switch /A- reactivates remapping
- if remapping was in effect prior to an /A+ request.
-
- Defaults: /C = /C+.
-
- The selected EGA/VGA color palette changes are asserted (i.e. the palette
- is loaded with the selected RGB values) each time a video mode change, or
- a video font change, is requested and VIz is enabled (i.e., no /Q switch,
- no graphics mode, and no video page other than 0).
-
- To preserve the small size of Viz, there is no hotkey pop-up service. If
- during the execution of an application the color palette changes, the RGB
- values selected via VIz cannot be asserted except by shelling to DOS (and
- executing VIz with the switch /C+ to reload the palette) or by triggering
- a video mode/font change.
-
-
- * SWITCH /D[±n]
-
- Adjusts brightness of screen (VGA card only); the brightness change step
- is specified by the sign and value of <±n>, which is a decimal number of
- 1 or 2 digits, with or without a sign, in the range from -63 to +63. Use
- of high negative or positive numbers can result in an unreadable screen.
- Selection of /D0 results in the restoration of the screen to its default
- settings (as dictated by the manual controls of the monitor).
-
- Defaults: /D = /D+2; /D1 = /D+1; /D- = /D-2.
-
-
- * SWITCH /E
-
- Creates or updates the variable VIZ=/SWITCH1.../SWITCHn in the DOS global
- environment, where /SWITCH1.../SWITCHn are the switches to be implemented
- when VIz is executed from the DOS command line without any arguments. If
- the 'VIZ' variable already exists, switch /E updates the contents of this
- variable. Although switch /E is incorporated into the variable contents,
- its presence is ignored when VIz uses this variable as input.
-
- Switch /E modifies the DOS global environment irrespective of whether the
- resident shell is the initial copy of COMMAND.COM (global environment) or
- a secondary copy (local environment). See the INSTALLATION section below
- for more details. No defaults.
-
-
- * SWITCH /F[Htg][n±]
-
- If VIz detects a HERCULES card adapter (HGC or HGC+), switch /FHt changes
- the card to text mode (80x25) whereas switch /FHg changes the card to its
- default (page 0) 720x348 graphics mode.
-
- If VIz detects an EGA or VGA adapter, switch /Fn permits the selection of
- the number of screen rows to be displayed. The following video fonts are
- supported: 12 or 14 (EGA or VGA), 25 (EGA and VGA), 28 (VGA), 35 (EGA and
- VGA) and 43 or 50 (EGA or VGA) screen rows. Except for the 12/14 and 35-
- row fonts, implementation of the selected font is maintained until switch
- /F-, which disables font implementation, or another font is selected; the
- font implementation can be reenabled with /F+.
-
- If a number <n> is not specified, switch /F toggles between 25-row and 43
- (EGA) or 50-row (VGA) screens. (If an EGA/VGA adapter is found, VIz also
- selects the alternate BIOS print-screen service to avoid the default BIOS
- print-screen routine that works with 25 rows only.) For a 25-row screen,
- an 8x14 font is used in an EGA and a 9x16 font in a VGA. Fonts with more
- than 25 rows can be loaded only if the video page is between 0 and 3.
-
- No defaults.
-
-
- * SWITCH /G[n]
-
- The frequency in Hz (cycles per second) of 55-ms bell tones is specified
- by <n>, a decimal number of up to 4 digits, in the range from 25 to 5000
- Hz. Values below 25 become 25 Hz and above 5000 become 5000 Hz; if more
- than 4 digits are given only the four least-significant digits are used,
- e.g., 50,000 Hz is read as 0000, triggering the use of 25 Hz.
-
- The bell tones always last 55 ms (one tick of the 8253/8254 timer chip).
- Since the tones are forced to begin at the start of a 55-ms tick period,
- stacked bell rings will result in a distinctive, staccato-like burst due
- to the intervening silent 55-ms tick periods.
-
- Most computer speakers seem to work properly within the range from about
- 100 Hz to about 3,000 Hz. Frequencies for the octave starting at middle
- are C=523 Hz, D=587 Hz, E=659 Hz, F=699 Hz, A=880 Hz, and B=988 Hz. The
- frequencies for higher [lower] octaves increase [decrease] approximately
- by a factor of 2 per octave change from the above values.
-
- Defaults: /G = /G440.
-
-
- * SWITCH /H[n][@]
-
- Loads the resident in the Upper Memory Area (UMA), between addresses 640
- KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
- the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
- of MS-DOS. The switch requires an available upper memory block (UMB) of
- about .9 to 1.7 KB (depending on the number of modules to be installed),
- which is allocated by the program itself either via a direct XMS request
- or, when DOS controls the UMB allocation (i.e. DOS 5.0 linked to the UMA
- through the command DOS=UMB in CONFIG.SYS), via DOS calls. Allocation of
- UMBs requires the presence of an XMS manager (XMM) that supports the UMB
- services 10h-11h of the XMS 2.0, and (if the XMM lacks the capability of
- remapping memory) the presence of an UMB provider.
-
- A lower upper-memory limit for the UMB loading can also be requested via
- switch /Hn, in which <n> is a four-digit hexadecimal number between A000
- (640 KB) and FFFF (1,024 KB), in order to avoid or select specific areas
- of upper memory.
-
- A lower-memory resident marker can also be installed along with the UMB
- resident via switch /H@ or /Hn@; the marker occupies 144 bytes of lower
- conventional memory, can be identified in some memory mapping utilities
- by the name
- VIz @ UMB
-
- and is released from memory when the UMB resident is uninstalled. This
- marker may be used (1) to remind that the resident is already installed
- in upper memory, (2) to help locate the UMB installation address in the
- case of some mapping utilities, and (3) to help avoid removal conflicts
- when lower and upper-memory residents are interspersed.
-
- Defaults: Low-memory installation if any error is found during the UMB
- loading; high-memory installation below lower-address limit if UMBs are
- not available above such limit.
-
-
- * SWITCH /I±
-
- Selects how background color attributes with a hexadecimal value in the
- range from 8h to Fh (bit 7=1) are displayed in text modes.
-
- /I- High-bit attributes produce a blinking character on a
- background of normal (medium) intensity.
-
- /I+ High-bit attributes result in a steady character on an
- intense background.
-
- Defaults: Null switch = /I- on installation.
-
-
- * SWITCH /K±
-
- Disables [+] or enables [-] access of the CPU to video RAM in VGA/MCGA.
- It can be used to kill BIOS-mediated displays that cannot be redirected
- to the NUL device.
-
- /K- Enable CPU access to video RAM (normal display).
-
- /K+ Disable CPU access to video RAM (blanked display).
-
- Defaults: /K = /K+; null switch = /K- on installation.
-
-
- * SWITCH /Mn
-
- Selects the video mode specified by <Hn>, in which <n> is a hexadecimal
- number between 0 and FF, or <Dn>, where <n> is a decimal number between
- 0 and 255. NOTE: There is no checking that the selected mode is a valid
- one for the adapter in use. No defaults.
-
-
- * SWITCH /N±
-
- Determines whether or not noncritical program messages are displayed.
-
- /N- Noncritical messages are displayed via the redirectable
- StdOut device of DOS.
-
- /N+ Noncritical messages are not displayed, in which case a
- a brief bell tone is sounded when a error has occurred.
-
- Defaults: /N = /N+; null switch = /N- on installation.
-
- Since VIz beeps when a command error is detected, /N- should need to be
- used only after such a beep to display the error message again. Please
- note that the installing, uninstalling, and critical-error VIz messages
- cannot be redirected and are always displayed. The final status of the
- operation can be monitored in batch files with the ERRORLEVEL commands.
-
-
- * SWITCH /Pn
-
- Selects the video page specified by a number <n> in the range of 0 to 7
- for 25-row display EGA/VGA, 0 to 3 for 43/50-row display EGA/VGA, and 0
- to 3 for CGA. No defaults.
-
-
- SWITCH /Q
-
- Forces the video accelerator into a quiescent mode; if loaded, the ANSI
- filter and the Cursor blink resident are NOT inactivated. The overhead
- video time for having VIz quiescent is an additional 2% or less of that
- without VIz. (Even when it is quiescent or during graphic video modes,
- the accelerator still monitors the video interrupt to check for page or
- mode change requests.) A quiescent mode lasts until the next execution
- of the program, unless switch /Q or /? has been selected. No defaults.
-
-
- * SWITCH /R±
-
- Selects the mode of processing text output that is used by DOS. In the
- normal ('cooked') mode, the kernel builds a device request for a single
- character output, makes a Ctrl-C check, and then passes this request to
- the StdOut console device; if no error is found, the buffer pointer and
- character count are updated. This process is repeated until either the
- end-of-file character (ASCII 26, Ctrl-Z) is found or all characters are
- processed. Tabs (ASCII 9) are expanded to 8 spaces.
-
- In the binary ('raw') mode, instead of filtering the stream for control
- characters, DOS passes a single request header to the device. Control-
- C, Control-P, and Control-S keyboard entries are not checked during I/O
- operations. Depending on the DOS version, DOS-mediated video output in
- binary mode is faster by factor of about 1.40 or so.
-
- /R- Changes DOS processing to the normal or 'cooked' mode.
-
- /R+ Changes DOS processing to a binary or 'raw' mode.
-
-
- Defaults: Null switch = /R- on installation.
-
- When executed, some utilities set the DOS processing mode to 'raw,' and
- then change it to normal when they finish, irrespective of the original
- mode. Other utilities set the mode to 'raw' and leave it on. Repeated
- use of switch /R+ may be necessary to maintain the binary DOS mode.
-
- NOTE: If the DOS binary mode is selected, the 'BREAK=ON' command should
- also be issued to facilitate the detection of 'Control-C' entries
- during disk and other DOS operations.
-
-
- * SWITCH /S[n±]
-
- Enables [Sn+] or disables [Sn-] special services triggered by some keys
- that can have untoward effects under some circumstances, especially for
- LAN servers.
-
- /S1± Enables [+] or disables [-] the printing of the screen
- triggered by the <PrtSc> key. /S1- is useful when the
- number-pad keys are used often, and the possibility of
- triggering unwanted prints is commensurably high. More
- importantly, if the machine is not connected to an on-
- line printer, <PrtSc> will freeze the system.
-
- /S2± Enables [+] or disables [-] the dynamic halt, which is
- triggered by the <Pause> key (PS/2s and COMPAQs) or by
- the <Ctrl><NumLock> combination (in PCs). The halt is
- maintained until another key is pressed. This service
- is available only if the Cursor module is also loaded.
-
- Defaults: /S = /S1+; /S = /S1+; /S2 = /S2+; null switch = /Sn+ on
- installation.
-
-
- If /S1± (or /S± or simply /S) is requested at the time of installation,
- VIz also selects the alternate BIOS print-screen service if the adapter
- is an EGA or VGA, in order to handle screen lengths longer than 25 rows
- (this alternate service is needed if other screen fonts are to be used,
- since the BIOS default service only prints 25 lines.
-
- Some EGAs do not work properly when this alternate print-screen service
- is enabled. If the selection of switch /S1± during installation yields
- a print-screen malfunction, install VIz without selecting /S1±, /S±, or
- /S±, and only then select switch /S1 in a subsequent execution.
-
-
- SWITCH /U
-
- Uninstalls the resident from memory. The request is not honored if any
- of the interrupt vectors intercepted by the program do not point to the
- resident, indicating subsequent installation of other resident(s) using
- the same interrupt(s) or the revectoring of such interrupts by a prior,
- ill-behaved resident.
-
- In general, the program should be uninstalled only when it was the last
- resident to be loaded; in practice, however, it can also be uninstalled
- if subsequently loaded residents do not hook the same interrupts as the
- program (even though this increases memory fragmentation, the resulting
- "hole" is innocuous, and may be used by DOS for other purposes, such as
- local environment blocks). No defaults.
-
-
- SWITCH /V±n
-
- Selects the loading of the resident cursor module. This module does not
- become resident unless /V+ or /Vn is specified at the time VIz is being
- loaded; this module cannot be added to the resident after installation.
-
- /Vn Enforces a cursor whose shape alternates between a full
- block and a thin line, in which <n> is a decimal number
- (of 1 or 2 digits) specifying the alternation rate from
- 0.055 s [/V1] to 5.5 s [/V99].
-
- /V0 Forces the display of a continuous, full block cursor.
-
- /V- Disables the display of the cursor. Due to a potential
- BIOS conflict, switch /V- is ignored at the time of VIz
- loading; to make the cursor invisible, first use /V+ or
- /Vn and then /V-.
-
- /V+ Reverses the cursor changes produced by /Vn and /V-.
-
- Defaults: /V = /V+; null switch = no resident on installation.
-
-
- * SWITCH /X±
-
- If the DOS video output to the Standard Output device (StdOut) is being
- mediated by VIz (see switch /Z±), switch /X controls whether the StdOut
- can or cannot be redirected to a file or another device (such as NUL or
- PRN) by the commands '>' or '>>' from the DOS command line.
-
- /X+ The INT 21/40h/1 DOS video output can be redirected to
- a file or another device. (This is the normal default
- condition.)
-
- /X- The INT 21/40h/1 DOS video output is always displayed,
- i.e. it cannot be redirected. This provides a further
- acceleration of DOS video output but at the price of a
- less-than-transparent operation.
-
- Defaults: /X = /X+; null switch = /X+ on installation.
-
- NOTE: If switch X is not enabled, the acceleration of DOS video output
- via switch /Z+ (see below) conflicts with the redirection of DOS
- output to another device or to a file. If such a redirection is
- needed, either enable switch X (/X+) or disable switch Z (/Z-).
-
-
- SWITCH /Z±
-
- Directs the video output through INT 21h, function 40h, device handle 1
- ('write to StdOut device') to the DOS console driver or the accelerator
- module of VIz. Mediation of the INT 21h/40h/1-output to VIz produces a
- considerable acceleration of DOS text output in MS-DOS versions 2 to 5.
-
- /Z- INT 21/40h/1 video output is allowed to be processed by
- the installed CON driver.
-
- /Z+ INT 21/40h/1 video output is redirected to the teletype
- subservice of VIz.
-
- Defaults: /Z = /Z+; null switch = /Z+ on installation.
-
-
- COMMENTS
-
- The comments may be added in the DOS command line after the specification
- of the switches. These comments, which may be useful in clarifying batch
- files, must be preceded by a semicolon (;), and are ignored by VIz.
-
- Do not use the DOS redirection and pipe characters in the comments as DOS
- will attempt to implement the implied redirection or pipe request.
-
-
- STATUS/USAGE/HELP PANELS
-
- Executing the program with switch /? selected allows access to the Status/
- Usage and Help panels. (If a Mouse pointing device driver, compatible with
- the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
- of the services provided by these panels can also be activated by pointing
- the mouse to specific areas of the screen and clicking either button. The
- mouse driver state is saved prior to the display, to be restored later, if
- sufficient memory is available.)
-
- The STATUS/USAGE panel, which is shown first, describes status information
- for the resident and some video services. The bottom line shows the status
- of the StdOut stream redirection, ANSI filter, DOS text processing and the
- current value of the video page and video mode. A succinct explanation of
- the status of the highlighted service can be obtained by pressing the left
- or right keypad arrow keys or by clicking the mouse upon the screen button
- labelled <Status>; these explanations can be erased by pressing key <F10>.
- The video mode number shown in the Status panel is followed by an asterisk
- if a mode higher than n+128 is detected (AT and PS/2 machines only); thus,
- mode 131 is displayed as 3*.
-
- The USAGE subpanel shows a menu for the command switches: To cycle between
- the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
- upon the screen button labelled <Menu>. If the resident is installed, the
- status of some 'on/off' command switches is displayed by '+' or '-' before
- a given menu entry.
-
- Press the key <F3> or click the mouse on the screen button labelled <Time>
- to run brief video benchmarks for BIOS and DOS-mediated text scrolling and
- for direct screen writes. Exit the benchmarks panel by pressing key <Esc>.
-
- The HELP panel provides a summary description of the program and commands,
- and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
- (or if the mouse is clicked upon the screen button labelled <Help>). Press
- the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
- down or up. Pressing the <F1> key once skips the brief program summary and
- positions the text on the "Usage" section directly; pressing <F1> a second
- time positions the text on the "Switches" section directly. Press <F2> or
- <Esc> key to return to the Status/Usage panel.
-
- Press key <X> or click the mouse upon the screen button labelled <eXit> to
- return to the DOS-prompt command line from either panel.
-
- When the program is waiting for keyboard or mouse input during the display
- of the above panels, it calls repeatedly the 'IDLE' interrupts of DOS: INT
- 28h and (if MS-DOS or IBM PC-DOS 5 is being used) INT 2Fh, function 1608h.
- INT 28h allows a potential background activation of (some) other residents
- while INT 2Fh/1608h allows DOS to suspend the idle program temporarily and
- transfer control to another program.
-
-
-
- 8. INSTALLATION IN UPPER MEMORY
-
- This section describes in more detail aspects of the active (i.e., self-
- loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
- in the upper memory region.
-
-
- DIRECT UPPER-MEMORY AREA LOADING
-
- The utility can self-install the resident in the upper memory area (UMA),
- that is, RAM addresses between 640 KB and 1,024 KB, via switch /H (or its
- subfunctions /Hn, /H@, and /Hn@). Program releases prior to revision 4.02
- lack this feature.
-
- The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
- version 2.0 or higher; the XMM must be installed prior to the UMB-loading
- of the resident. Allocation also requires the remapping of UMA addresses
- by a UMB provider, when such a task is not implemented by the XMM itself.
- The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
- DOS 5.0; the allocation of UMBs is controlled by DOS when these 2 drivers
- are installed, and the command 'DOS=UMB' is added to the CONFIG.SYS file.
- Of course, other 386-specific memory managers, such as 386MAX or QEMM386,
- provide both UMB remapping and XMS support. All XMMs require DOS version
- 3.0 or higher.
-
- Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
- of a minimum upper-memory limit for the UMB to avoid UMA regions having a
- very slow access time (or to preserve regions with a fast access time for
- other utilities that require faster times, such as a disk cache or screen
- accelerator), or to avoid fragmentation of the UMA when UMB allocation is
- not controlled by DOS 5, but by the XMM itself. Such a fragmentation may
- occur when the XMM allocates blocks on a first-fit basis, i.e., the first
- available UMB having the lowest UMA address is allocated, irrespective of
- whether or not a (smaller) block matching the requested size is available
- at a higher UMA address. Unless the size of the available UMBs increases
- with increasing memory address, first-fit allocation of a small UMB leads
- to the breaking of large UMA blocks into smaller ones, thus hampering the
- UMB installation of larger residents.
-
- When DOS controls the UMB allocation, the program enforces the allocation
- of the resident block on a best-fit basis when <n> is not specified, that
- is, all available blocks are searched (by DOS), and the one matching most
- closely the size requested is allocated.
-
- When DOS controls UMB allocation and <n> is specified, UMBs are allocated
- on a first-fit basis. While this may contribute to UMA fragmentation, it
- allows for the checking of a minimum memory limit in those cases in which
- the selection or avoidance of a specific UMA region is more important.
-
- Hence, compared to the upper-memory installation provided by the LOADHIGH
- command of DOS 5.0, or similar services provided by some memory managers,
- program self-loading into a UMB has several advantages, including: (1) it
- does not require an initial free block of upper memory of the size of the
- entire program (as opposed to the size of its resident only), (2) it does
- allow user control on the selection of the upper-memory block, and (3) it
- can help reduce UMA fragmentation.
-
- NOTE: The address and size of available UMBs can be obtained with MEM.EXE
- (when DOS controls UMB allocation) or via the memory manager itself
- (when the allocation is controlled by 386-specific memory managers.
- In either case, such data can also be obtained with UMAX.EXE, a UMA
- mapping utility that is distributed by the author.
-
-
- UMA LOADING VIA MEMORY MANAGERS OR DOS 5
-
- Of course, the resident can also be installed in the UMA via a 386-memory
- manager or via (UMB-linked) MS-DOS 5 provided that there is enough memory
- for the actual size of the entire program, and any additional memory that
- may be needed by the loading utility.
-
- To minimize disk storage, the program is distributed as a compressed file
- that expands upon its execution. The difference between the actual loaded
- size and the nominal directory size may create conflicts with high-memory
- loading programs that fail to measure the actual size: When the available
- high memory is not sufficient to permit the file expansion, but is larger
- than the nominal directory size, such programs will load the (compressed)
- utility. The subsequent expansion will then overwrite adjacent memory and
- likely crash the memory manager or DOS. The executable file expands by a
- factor of less than 2.
-
- An additional 4,600 bytes of free memory are required to restore contents
- of the screen after switch /? or /C?. Also, an additional 2,600 bytes of
- free memory are required to implement switch /F14 or /F35.
-
-
- UMA UPDATING
-
- When the program has been installed in upper memory, it does not require
- a high-memory loading utility to update its resident and all updates can
- be made via program executions from the DOS-command line. This obviates
- the restriction (of some memory systems) of having to maintain a pool of
- of free upper memory simply to load the entire program to update a small
- resident. Program releases prior to revision 3.40 lack this feature.
-
-
- UMA DEALLOCATION
-
- When resident deallocation is requested (switch /U) from the DOS command
- line (as opposed to via upper-memory loading utilities), the resident is
- removed from memory even when it was loaded in the UMA; the confirmation
- request of revisions 3.00 through 3.16 is no longer required.
-
- When switch /U is requested via a high-memory utility be aware that some
- of these utilities warn that a "resident installation has failed." This
- warning is harmless and may be ignored.
-
-
- MEMORY MAPPING UTILITIES
-
- Although the program releases its own copy of the environment at the time
- of installation (to reduce resident size), the resident can be identified
- in memory usage maps by the label
-
- VIzxxx
-
- that appears in the command-line listing of most memory mapping utilities
- irrespective of the actual contents of the command line if the program is
- loaded in conventional memory; 'xxx' in the label represents the revision
- number (e.g., 424).
-
- However, when UMB loading is mediated by the XMS directly (e.g., extended
- memory manager and DOS versions 2 to 4, or DOS 5 not configured under the
- command 'DOS=UMB'), and the resident is installed in a UMB via switch /H,
- most memory mapping utilities do not list the allocated UMB, lump it with
- other allocated blocks, or fail to show the name of the resident. If the
- identification of the UMB resident is required, use switch /H@ or /Hn@ to
- load in lower RAM a small resident marker that shows up in memory maps.
-
- When the allocation of UMBs is controlled by DOS (e.g. DOS 5.0 configured
- under the command DOS=UMB, and the drivers HIMEM.SYS and EMM386.EXE), the
- UMB resident can be identified with some mapping utilities (e.g. MEM.EXE)
- although it is often listed as "Data" instead of "Program." Other memory
- mapping utilities identify the UMB resident only when an associated lower
- memory marker is also installed.
-
-
-
- 9. TECHNICAL INFORMATION
-
- INTERRUPTS
-
- Channel 0 of the 8253/8254 timer chip produces a hardware interrupt (IRQ0),
- interrupt 8h, about 18.2 times a second that is used by the system time-of-
- day clock. When the cursor module is installed, switch /Vn (n=0 or 1 to 99)
- forces the display of the block cursor, either in continuous or alternating
- manner. Cursor shape is implemented via commands using either 16-bit (word)
- or 8-bit (byte) output, depending on the VIz release that was selected.
-
- The accelerator module of VIz intercepts the ROM BIOS video interrupt, 10h.
- When the system is in page 0 and a text mode, video acceleration occurs for
- subfunctions 0h through Eh, except for subfunctions 4h, 7h, Bh, and Ch.
-
- Starting with version 2.0, DOS allows the redirection of the Standard Input
- (StdIn) and Standard Output (StdOut) console device, permitting programs to
- send input to or to receive output from other programs. Unless redirected,
- the StdIn comes from the keyboard and the StdOut goes to the screen. These
- and some other devices can be addressed by predefined DOS 'file handles' as
- if they were disk files. A common DOS-mediated technique to send output to
- the screen is to write to the handle 1 (StdOut) via interrupt 21h, function
- 40h; in fact, this is the preferred method of DOS-mediated video output for
- MS-DOS version 2.0 or higher.
-
- The accelerator module of VIz also intercepts interrupt 21h. Switch /Z+ re-
- directs to VIz the INT-21h/40h/1 video stream to the StdOut, resulting in a
- significant acceleration of DOS-mediated video output. This acceleration is
- not increased by setting the DOS mode to binary (see switch /R). Switch /Z-
- restores the INT-21h/40h/1 stream to the current StdOut device.
-
- If switch /X+ has been selected (the default condition), the implementation
- of the INT-21h/40h/1 video stream by VIz is fully transparent. Switch /X-,
- however, avoids a DOS-mediated redirection of the StdOut (i.e. the commands
- '>' and '>>' at the DOS command line are no longer able to redirect the DOS
- video output, such as '> NUL' to avoid some messages). Under switch /X- VIz
- provides an even faster acceleration of DOS video output, since it does not
- have to check whether the output is being redirected to the printer or to a
- file.
-
- Switch /Z selection is not disregarded when ANSI.SYS, ANSI.COM, or the ANSI
- filter of VIz is active. The redirection of StdOut to VIz by /Z+, however,
- will conflict with ANSI commands sent to the CON device via standard-output
- calls to INT 21h, function 40h/1. In contrast, ANSI commands using INT 29h
- are not affected by switch /Z+ (see above).
-
- The ANSI-compatible module of VIz intercepts interrupt 29h, an undocumented
- feature present in all recent versions of DOS. INT 29h is normally provided
- by the built-in console device driver of DOS, and consists of a call to the
- BIOS interrupt 10h. DOS uses INT 29h instead of the normal request-passing
- mechanism to accelerate output to the current 'CON' device. The ANSI module
- filters this output.
-
- If a request to inactivate the installed ANSI filter is encountered (switch
- /A-), VIz checks whether the INT 29h can be restored to its original memory
- address. If the revectoring is not possible (i.e., if another resident has
- also intercepted INT 29h), this filter remains partially active in order to
- handle an ANSI escape sequence generated by COMMAND.COM to clear the screen
- when a CLS command is detected (see below); other ANSI escape sequences are
- ignored by the filter and passed to the screen. Hence, when revectoring is
- possible, switch /A- has the same effect as installing VIz without a switch
- /A, except that the memory occupied by the ANSI filter is not released; the
- filter is reactivated by a subsequent call to execute VIz with switch /A+.
-
-
- CLS COMMAND & INT 29h
-
- The internal console device driver installed during booting handles the CLS
- as well as INT-29h service. The CLS procedure of COMMAND.COM first tests to
- see if (1) the standard-output handle is associated with a character device
- driver (bit 7=1), and (2) the driver services INT 29h (bit 4=1). If one or
- both tests fail, or if both tests are successful but the vector for INT 29h
- does not point to the memory segment of the DOS kernel, COMMAND.COM outputs
- the ANSI escape sequence <Esc>[2J to INT 29h; otherwise, it makes a call to
- INT 10h, subfunction 6 of the BIOS to clear the screen.
-
- If INT 29h cannot be revectored upon /A-, the partial driver activity slows
- down slightly the DOS video output whenever the ASCII character 27 (Esc) is
- found in the character stream. The partial activity is needed, however, as
- DOS issues an ANSI escape sequence to clear the screen whenever INT 29h has
- been revectored. Thus, if VIz were not to retain its ANSI driver partially
- active when revectoring of INT 29h is not possible, the DOS escape sequence
- would be displayed (without clearing the screen) whenever a CLS command was
- issued.
-
-
- ENVIRONMENT VARIABLE 'VIZ'
-
- When the program is executed without arguments from the DOS command line
- (or a batch file), it searches the DOS environment for a variable having
- the format:
- VIZ=/SWITCH1/SWITCH2..../SWITCHn
-
- Up to 128 characters are allowed after the equal sign. This string can be
- incorporated to the environment block via the 'SET' command of DOS or via
- switch /E of the program (see below). Program releases prior to revision
- 3.63 lack this feature.
-
- While the SET command modifies the current DOS environment block, whether
- it is the global or a local one, switch /E only modifies the global block
- (even when the program is executed via a secondary COMMAND.COM, as in the
- case of shelling out to DOS from an application). Notice that the local
- environment block is only a copy of the global block and lacks sufficient
- room to increase significantly the length of a variable, and that changes
- made to a local environment are not inherited by the global one.
-
- When searching for the environment variable, the program uses the current
- DOS environment block, whether it is the global or a local one.
-
- A recommended use of the environment string is to specify a default /Cn:n
- setting (e.g. /C03:00:20:30:40:50:01:77:70:11:22:33:44:55:66:76) that can
- be restored simply by executing VIz without any arguments after the color
- palette has been changed.
-
-
- DOS ERRORLEVELS
-
- Upon exit its to DOS, the program passes execution status values that can
- be tested via ERRORLEVEL commands in a batch file. The following are the
- values for revision 4.20 or higher:
-
- Value Condition
- ----- --------------------------------------
- 255 Failure of cyclical redundancy check
- 255 CPU type cannot execute version code
- 255 Invalid DOS version
- 254 Invalid ANSI (switch /A) request
- 253 Unknown/incompatible video adapter
- 252 Not enough additional RAM (/C? /? /F14 /F35)
- 251 Hooked interrupts revectored
- 250 Invalid cursor (switch /Vn) request
- 128 XMM not installed or UMB load/unload error
- 96 DOS environment error
- 64 Incomplete color palette data list
- 32 Invalid color palette datum
- 16 Invalid video font for adapter and/or page
- 8 Invalid video mode request
- 4 Invalid video page for adapter and/or font
- 2 Invalid video adapter for the request
- 1 Unknown or invalid switch request
- 0 Successful execution
-
-
- Since some error conditions in the range from 1 through 128 do not cancel
- program execution (nonfatal) and the error values are additive, the final
- ERRORLEVEL value may represent more than a single error condition.
-
- Program releases prior to revision 3.10 lack this feature.
-
-
-
- 10. COPYRIGHT & LICENSE
-
- This documentation, programs, and other files distributed in this software
- package (the "Software") are the copyrighted property of FM de Monasterio
- (the "Author"), who provides the Software and licenses its use. All rights
- are reserved.
-
- The file VIZ.REG contains a form needed to register this Software.
-
- SINGLE USER LICENSE. Upon registration, you are granted a nontransferable
- license to use this Software in a single computer at a time. The Software
- may also be transferred to another computer, provided that the Software is
- used only in one (1) computer at any time; under the license, the Software
- may NOT be installed on a network server.
-
- SITE/15-PCs LICENSE. Upon registration, you are granted a nontransferable
- license to use this Software in a single site, or a set of sites, provided
- this Software is not used in more than fifteen (15) computers at any time,
- and that such computers are located exclusively within the site. Licenses
- for more machines are available at discounted prices.
-
- SOFTWARE BUNDLING LICENSE. Please write to the Author.
-
- REFUNDS POLICY. If a problem notified within ninety (90) days of shipping
- of the registered copy cannot be solved, the registration fee (but not the
- shipping costs) will be refunded upon receiving a written request with the
- original diskette(s) enclosed.
-
- UPGRADE POLICY. Program upgrades are limited to licensed users. Upgrades
- within the same major version (e.g. release 4.00 through 4.99) are free of
- charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
- diskette is included with the request. Other upgrades are charged half the
- (single-user/site) registration fee. See enclosed file VIZ.UPG.
-
- TECHNICAL SUPPORT. A phone number for technical support is made available
- to site licenses for 100 machines or more; other licensed users must write
- to the Author who will contact them.
-
-
- U.S. GOVERNMENT INFORMATION
-
- The use, duplication, or disclosure by the U.S. Government of the Software
- is subject to the restricted rights applicable to commercial software that
- are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
- and Computer Software' clause, document DFARS 52.227-7013. The contractor/
- manufacturer is FM de Monasterio, P.O. Box 219, Cabin John, MD 20818-0219.
-
-
- DISTRIBUTION
-
- You may distribute this Software via magnetic and/or electronic means, but
- you are specifically prohibited from:
-
- - Charging fees or asking donations in exchange of or payment
- for copies of this Software.
-
- - Distributing this Software with commercial products without
- the written, express permission in advance from the author.
-
- - Distributing this Software via a for-profit organization or
- group, either alone or with other software.
-
- - Modifying any contents of this Software, including, but not
- limited to, the copyright notice and this license.
-
-
- The unauthorized copying, decompiling or disassembling of this Software is
- prohibited. Any other use of this Software is also prohibited without the
- express, written permission in advance from the author.
-
- Latest program releases may be found at the Information Exchange BBS, 703-
- 836-0748, as a compressed archive file.
-
-
- WARRANTY DISCLAIMER
-
- The Author cannot and does not warrant that any functions contained in the
- Software will meet your requirements, or that its operations will be error
- free. The entire risk as to the Software performance or quality, or both,
- is solely with the user and not the Author. You assume responsibility for
- the selection of the program to achieve your intended results, and for the
- installation, use, and results obtained from the Software.
-
- The Author makes no warranty, either implied or expressed, including with-
- out limitation any warranty with respect to this Software documented here,
- its quality, performance, or fitness for a particular purpose. In no event
- shall the Author be liable to you for damages, whether direct or indirect,
- incidental, special, or consequential arising out the use of or any defect
- in the Software, even if the Author has been advised of the possibility of
- such damages, or for any claim by any other party.
-
- All other warranties of any kind, either express or implied, including but
- not limited to the implied warranties of merchantability and fitness for a
- particular purpose, are expressly excluded.
-
-
- LIMITATION OF REMEDIES
-
- The information contained in the documentation for the Software is subject
- to change without notice.
-
- The Author's entire liability, and your exclusive remedy shall be: (1) the
- replacement of an original Software diskette not meeting the above Limited
- Warranty and which is returned to the Author along with proof of purchase,
- or (2), if the Author is unable to deliver a replacement diskette which is
- free of defects, you may terminate the License Agreement by returning this
- Software and the corresponding license fee will be returned.
-
- By using the Software, you acknowledge (1) to have read and understood all
- parts of this document and (2) to have agreed with and accepted all of its
- provisions without any reservation.
-
- ---------
- Refer all inquiries to:
- FM de Monasterio
- P.O. Box 219
- Cabin John, MD 20818-0219
- USA
-
- ┌─────────────────────────────────────────────────────────────┐
- │ Trademarked names are the property of the respective owners │
- └─────────────────────────────────────────────────────────────┘
- [END]