home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-11-23 | 65.7 KB | 1,375 lines |
- ┌─────────────────────────────────────────────────────────────┐
- │ Trademarked names are the property of the respective owners │
- └─────────────────────────────────────────────────────────────┘
-
- VIz
-
- Copyright (c) 1989, 1990, 1991 FM de Monasterio
- Licensed Material - All rights reserved
-
- Release 4.21
-
- 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 version, VIz
- produces video interference ("snow") in old CGA cards; for such systems you
- can use VIz-CGA, a snow-free, 8088-CPU oriented version.
-
- 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.
-
-
- 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.
-
- -----------------
-
- 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 (interrupt 10h), whereas it can occur at the input site (interrupt
- 21h) or output site (interrupt 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 releases require MS-DOS or PC-IBM DOS version 2 or later. (Upper-memory
- selfloading requires DOS version 3 or higher.) A cyclical redundancy check
- (CRC) calculation is performed each time VIz is executed; if the CRC fails,
- indicating corruption of the code, the program aborts to DOS.
-
-
- HARDWARE COMMANDS
-
- Cursor position is updated via direct hardware commands. Starting with VIz
- release 3.00, such commands can be sent out as WORD (double-byte) values or
- as two successive BYTE values. The WORD-out method of addressing, also used
- by other programs (e.g. Microsoft Windows), yields faster accelerations but
- it may not work with some older clone systems.
-
- To test which method of addressing you can use, enter the command 'VIZ /?H'
- to see if the cursor appears at the indicated position. If it does so, your
- system can handle WORD-out commands.
-
-
- CPU VERSIONS
-
- VIz is entirely written in assembly language. Each VIz version 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). Such releases
- differ slightly in resident size.
-
- Average accelerations and comparisons with other accelerators based on four
- benchmarks are described in the accompanying file VIZ.DAT for 086, 286, 386
- and 486 VIz versions.
-
- -----------------
-
- 1. VIDEO 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 1,000 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 that resets the video to page 0 in a text mode. Viz accelerates BIOS
- video functions, and it can also accelerate DOS-mediated screen output.
-
- The acceleration of VIz can be turned off either by deallocating the program
- with the switch /U (if no other resident has been installed after VIz) or by
- making it quiescent with switch /Q (i.e. it remains resident but not active)
- until reactivation (any switch but /QU) or deallocation by a further call to
- VIz.
-
- The relative acceleration depends on several factors, including BIOS version
- and date, 80x86 CPU model and clock speed, and whether or not ROM video BIOS
- is shadowed or remapped to faster RAM. Another factor, often disregarded, is
- the use of other residents also intercepting the interrupt 10h. In addition,
- some memory managers, even when RAM-shadowing video BIOS, have been found to
- produce a not insignificant degradation of the video speed. Whereas smaller
- acceleration factors are to be expected in machines performing a faster BIOS
- operation (i.e. tighter ROM code, faster CPU, shadowed or remapped ROM), the
- relative weight of individual factors may yield unexpected results. Another
- factor affecting acceleration is the region of the upper memory in which VIz
- loads itself when switch /H is selected. This is free memory made available
- by an extended memory manager (see below) reclaiming unused memory above 640
- kb but below 1 Mb, i.e., memory filled above the video adapters. Contingent
- upon the hardware, there are marked differences in memory access time within
- such a region, differences which can also affect the video acceleration of a
- VIz resident loaded in high memory (see switch /H).
-
-
- 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.
-
- -----------------
-
- 2. BLOCK-AND-LINE 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.
-
- Notice that the hardware-controlled blinking of the cursor is not eliminated
- by this service. Hence, depending on the alternation rate selected, a 2-beat
- frequency may be noticeable.
-
- -----------------
-
- 3. ANSI-COMPATIBLE VIDEO FILTER MODULE
-
- MS-DOS and IBM PC-DOS files include ANSI.SYS, a console filter driver that
- mediates a subset of American National Standards Institute (ANSI) standard
- escape sequences for video functions as well as a supplementary subset for
- keyboard functions (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. It can be turned off either by uninstalling all the VIz resident
- modules or by selectively inactivating the filter. (The inactive filter can
- also be reactivated.)
-
- 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 may 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 issued; 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 implements the following subset of ANSI 3.64-1979
- standard escape sequences to control console video functions (see your MS/PC
- DOS documentation of 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 sequences used by the ANSI.SYS
- driver to permit reprogramming of the keyboard (i.e., <Esc>[#;'string';3p),
- a set which is not part of the 1979 ANSI standard.
-
- Thus, you should consider using the ANSI filter of VIz, instead of ANSI.SYS
- or other ANSI-like utility, when interested in using video escape sequences
- alone, without any keyboard remapping.
-
- -----------------
-
- 4. USAGE
- VIZ [/Switches] [;Comments]
-
- The switches can be entered from:
-
- (1) the DOS command line (COMMAND.COM shell prompt)
- (2) a batch file
- (3) a DOS environment string with the format VIZ=/SWITCH1.../SWITCHn
-
-
- Switches can be given in any order. Any character between space and slash
- [/] can be used as a switch delimiter. Switches are not case sensitive.
-
- Switches /A, /B, /C, /D, /I, /M, /P, /R, and /S are "sticky" parameters in
- the sense that the video change they produce will remain in effect even if
- VIz is made quiescent or is 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.
-
- NOTE: (EGA users only) The default IBM palette attributes are restored if
- the BIOS fails to store properly the original 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+).
-
- 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.
-
- 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).
-
-
- * 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 (versions 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 /FHtg
-
- 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.
-
- * SWITCH /Fn±
-
- 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 /Gn
-
- 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
-
- 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.
-
- * SWITCH /Hn
-
- 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.
-
- * SWITCH /Hn@
-
- 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. 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 detection of Control-C entries during disk
- | and other operations.
-
-
- * SWITCH /Sn±
-
- 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 the loading.
-
- /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. Switch /X-
- | provides a further acceleration of DOS text output.
- |
- | * /X- The INT 21/40h/1 DOS video output is always displayed,
- | i.e., it cannot be redirected.
- |
- | * /X+ The INT 21/40h/1 DOS video output can be redirected to
- | a file or another device.
- |
- | Defaults: /X = /X+; null switch = /X+ on installation.
-
-
- 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. Each TAB is expanded to 8 spaces in
- text modes of 80 or more columns (the DOS default), and
- 4 spaces in text modes of 40 columns.
-
- Defaults: /Z = /Z+; null switch = /Z+ on installation.
-
- NOTE: Because the MS-DOS command 'DIR /W' uses a 4-space tab expansion,
- instead of the default 8-space, switch /Z+ affects the DIR /W display.
-
- ---------
-
- 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.
-
- -----------------
-
- 5. 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 regions of the screen and clicking either button.)
-
- 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.
-
- 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. Press key <F1> to skip the brief program summary and position
- the text on the Usage section directly. Press key <Esc> or <F2> 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.
-
-
- NOTE: When the program is waiting for keyboard (or mouse input) during the
- display of the Status/Usage panel, it calls repeatedly the IDLE interrupts
- of DOS: INT 28h and, if MS-DOS 5+ is installed, function 1608h of INT 2Fh;
- 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.
-
- -----------------
-
- 6. INSTALLATION
-
- 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.
-
- The larger the number of residents intercepting interrupt 10h before VIz,
- the slower the absolute video acceleration provided by the program. This
- is because each call has to be processed by each element in the interrupt
- chain. One way to minimize the problem is to install a minimum number of
- residents via the AUTOEXEC.BAT and, before executing a given application,
- install additional residents via a batch file that also executes the main
- application, and removes these transient residents upon the completion of
- the task. (VIz itself may fall in this transient category.)
-
- 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 prior to such a task.
-
- 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 calls to interrupt-29h
- instead of interrupt 21h.
-
-
- 6.1 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 version 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
- this 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.
-
-
- HIGH-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) DOS 5.0, 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, or both.
-
- The program expands by a factor of about 1.35.
-
- NOTE: The program requires an additional 2,600 bytes of available memory
- beyond its decompressed size to be able to implement switch /F14 or /F35;
- Screen contents are restored after the panels displayed by switch /C? and
- /? only if an additional 4,600 bytes of memory are available.
-
-
- 6.2 UPPER-MEMORY 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 version 3.40 lack this feature.
-
-
- 6.3 UPPER-MEMORY 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 versions 3.00 to 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.
-
-
- 6.4 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 lower-memory usage maps by the name
-
- VIzxxx
-
- that appears in the command-line listing of most memory mapping utilities
- irrespective of the actual contents of the command line when this program
- is installed in lower conventional memory; in this name, 'xxx' represents
- the release number (e.g., 421).
-
- 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.
-
- -----------------
-
- 7. TECHNICAL INFORMATION
-
- This section describes information that may be of use in case of conflicts
- arising when other terminate-and-stay resident programs are loaded.
-
-
- 7.1 INTERRUPTS
-
- The following hardware and software interrupts are intercepted depending on
- the program configuration:
-
- INTERRUPT 8h (system timer)
-
- 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 version that was selected.
-
- INTERRUPT 10h (video BIOS)
-
- 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.
-
- INTERRUPT 21h (DOS services)
-
- 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
- DOS version 2.0 or higher.
-
- The accelerator module of VIz also intercepts interrupt 21h. Switch /Z+ re-
- directs the 21h/40h/1-console stream (StdOut) to the accelerator, resulting
- in significant accelerations of the DOS video services. The acceleration is
- not increased by setting the DOS mode to "raw" (see below). Switch /Z- (or
- default installation) permits the 21h/40h/1-video output to be processed by
- the 'CON' device.
-
- The redirection of StdOut to VIz does not conflict with the CLS command (as
- the redirection does not affect interrupt 29h [see section 6.2]). Selection
- of switch /Z+, however, voids any redirection of the StdOut, including that
- to the 'NUL' device (e.g. to avoid some messages), since the 21h/40h-stream
- is intercepted by VIz before the output can be redirected by DOS.
-
- Switch /Z requests are not disregarded when ANSI.SYS, ANSI.COM, or VIz-ANSI
- filter is active. The redirection of StdOut to VIz by switch /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 below).
-
- INTERRUPT 29h (fast console)
-
- 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. when 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+.
-
- VIz versions 3.64 and higher do not redirect interrupt 29h to the teletype
- service of VIz any longer (old switch /X±), since a much faster DOS output
- can be obtained with switch /Z.
-
-
- 7.2 CLS COMMAND AND 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.
-
- When INT 29h cannot be revectored on /A-, the partial driver activity slows
- down slightly the DOS video output whenever the ASCII character 27 (Esc) is
- found in the character stream. This 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.
-
-
- 7.3 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 this program (see below). Program releases prior to version
- 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.
-
-
- 7.4 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 version 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
-
-
- NOTE: Because some of the error conditions in the range from 1 to 128 are
- non-fatal (i.e., the program can recover execution), and the error values
- are additive, the final errorlevel value may represent more than a single
- error condition.
-
- Program releases prior to version 3.10 lack this feature.
-
- -----------------
-
- 8. LICENSING INFORMATION
-
- 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 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.
-
- 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 2.00 through 2.99) are free of
- charge if a self-addressed, stamped diskette mailer with a formatted, 360-
- kb diskette is included with the request. Other upgrades are charged half
- the (single-user/site) registration fee.
-
- 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,
- USA.
-
- ----------------
-
- 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, 202-
- 433-6639 (2400+ baud).
-
-
- TECHNICAL PROBLEMS
-
- If you encounter problems when using the Software (which can be replicated
- in the absence of other resident utilities), please write to the Author at
- the address above providing your name and address, program version number,
- machine model and configuration, and a description of the problem(s). When
- feasible, corrections for such problems may be incorporated in new program
- releases. Technical support is limited to registered users; correspondence
- from nonregistered users may not be answered.
-
- ----------------
-
- 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
-
- ------------------------------------------------------------------------------
- [END]
-