home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
SCR_UTIL
/
VIZ422.ZIP
/
VIZ.DOC
< prev
next >
Wrap
Text File
|
1992-01-01
|
65KB
|
1,340 lines
VIz
Copyright (c) 1989, 1990, 1991 FM de Monasterio
Licensed Material - All Rights Reserved
Version 4.22
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 requires MS-DOS version 2 or higher (or a compatible operating system).
Selfloading in upper memory requires MS-DOS version 3 or higher. A cyclical
redundancy check (CRC) is performed each time VIz is executed. The program
cancels execution if the CRC fails, since it 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 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). The releases
differ slightly in resident size.
-----------------
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 to page 0 in text mode.
The acceleration provided by VIz depends on several factors, including video
BIOS version, adapter manufacturer, x86 processor model and clock speed, use
of graphics coprocessors, and whether the video BIOS is shadowed or remapped
to faster RAM. Generally speaking, a smaller acceleration is to be expected
in machines performing faster BIOS operations (i.e. tighter ROM code, faster
CPU, shadowed or remapped ROM) than in slower machines. The relative weight
of individual factors, however, may yield unexpected results.
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.
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.
-----------------
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. In addition, this filter mediates 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. 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 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 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.
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
only, without keyboard remapping.
-----------------
4. USAGE
VIZ [/Switches] [;Comments]
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 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.
NOTE: 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 by turning
switch /Z on (/Z+) after selecting switch /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).
* 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 the detection of 'Control-C' entries
during disk and other DOS 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 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.
---------
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.
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. 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 any panel.
NOTE 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 5.0 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.
-----------------
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.
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) 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.
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 version 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
7.1 INTERRUPTS
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 Service Dispatcher)
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 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).
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., 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+.
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.
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.
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
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 version 3.10 lack this feature.
-----------------
8. LICENSE 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 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
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, 202-
433-6639 (2400+ baud) 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]