ËÍ» ËÍ» º ºËÍ»ÉÍ»ÉÍ»ËÍ»ÉÍ»ËË» º ºÉÍ»ÉÍ»Ë ËËË»ÉÍ»ËÍ»ÌÍ ÉÍ»ÌÍ É» ÉÍ»ËÍ» Ìͼº º ºº ºº É͹ººº º ºº ºº º ººººÌͼº ºº É͹º º º ºº º Ê Ê ÈͼÈÍ¹Ê ÈÍ¼Ê È ÊͼÈͼÈͼÈÍ¼Ê ÈÈÍ¼Ê ÈÈͼÈͼÈͼÍʼÈÍ¼Ê È VIz Revision 4.24.0 Copyright (c) 1989-1992, FM de Monasterio Licensed Material - All rights reserved CONTENTS 1. SUMMARY 2. REGISTRATION 3. GENERAL INFORMATION Hardware Commands Compatibility CPU releases 4. ACCELERATION MODULE 5. CURSOR ALTERNATION MODULE 6. ANSI-COMPATIBLE FILTER MODULE Coexistence with other ANSI filters ANSI implementations 7. INSTALLATION & USAGE Switches Comments Status/Usage/Help panels 8. INSTALLATION IN UPPER MEMORY Direct upper-memory area loading UMA loading via memory managers or DOS 5 UMA updating UMA deallocation Memory mapping utilities 9. BASIC TECHNICAL INFORMATION Interrupts CLS command & INT 29h Environment variable 'VIZ' DOS errorlevels 10. COPYRIGHT & LICENSE U.S. Government information Upgrades Limitations Technical support 1. SUMMARY VIz is a small resident program that accelerates BIOS (and DOS) video input and output in text mode; it can be used with IBM-compatible MDA, EGA or VGA adapter cards and Hercules HGC and HGC+ cards. In its present release, VIz produces video interference ("snow") in old CGA cards. In addition, VIz includes an independent, resident component for displaying a block cursor, either continuously or alternating with a line cursor at an adjustable rate of alternation. The latter display is well suited for easy localization of the cursor in some laptop screens. Finally, VIz also contains an independent, resident ANSI-filter driver that mediates a subset of the ANSI escape sequences to control the console. This filter can be used, instead of ANSI.SYS, to implement ANSI escape sequences to control video display, with the advantage that can be turned off and on, and removed from memory without rebooting. All 3 resident modules occupy a total of less than about 1800 bytes of RAM. Depending on the system configuration and BIOS version, video accelerations by a factor of between 2 and 10 have been obtained. 2. REGISTRATION This software is user-supported; the present release, although lacking the options marked by asterisks, is a fully usable program. You may test this release for (in)compatibilities with your system, but after the testing is completed you are requested to order a registered copy of the full release of the software from the address at the end of this documentation. If you would rather use this unregistered copy, consider making a donation to the Children's Hospital of Washington DC, for indigent children in need of medical care. Every year in the USA, infant mortality claims the lives of tens of thousands of children before their first year of life, and most of them come from families below poverty level... Please send to the same address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on the obverse, and marked "For Deposit Only" on the reverse. Donations will be sent to Children's Hospital. Please identify the program for which you are making the donation. ------------------------------------------------------------------ VIZ.REG contains a form needed to register or upgrade the Software ------------------------------------------------------------------ See the final part of this documentation for information on the Licensing, Distribution, Warranty, and Limitation of Remedies of this software. 3. GENERAL INFORMATION There are 3 basic ways of producing character-oriented, text video displays in DOS computers: (1) using direct video memory mapping, which is extremely fast but dependent on the video hardware and has a limited portability; (2) via BIOS services, provided by the first "hidden" DOS boot file and usually augmented by the video adapter, which are not as fast as direct mapping but more portable; and (3) via DOS services, provided by the other "hidden" DOS boot file and sometimes augmented via installable device drivers, which are much slower than the other two approaches, but have greater portability and permit additional operations such as redirection. Many of the DOS and BIOS video services can be accelerated using a resident program that intercepts the calls made to such services, and implements the video operation with faster instructions. Because of the nature of DOS and of BIOS services, the interception must occur at the input site of the BIOS services (INT 10h) while it can occur at the input site (INT 21h) or output site (INT 29h), or both, of the DOS services. VIz is a utility that accelerates many of the basic text-video services and allows changing the video mode, page and font of the display as well as the raw or normal mode of DOS video output. When used in a VGA/EGA system, VIz also permits control of the red, green and blue mixture that determines the color of each of the 16 registers of the color palette, and the RGB mixture can be modified to suit user preferences. VIz also permits controlling the frequency (pitch) of the bell's tone. VIz requires MS-DOS version 2 or higher (or a compatible operating system). Upper-memory selfloading requires DOS version compatible with MS-DOS 3.0 or later. A cyclical redundancy check (CRC) is performed each time the program is executed. Execution is cancelled if the CRC fails, since this indicates code corruption. HARDWARE COMMANDS COMPATIBILITY VIz updates cursor position through direct hardware commands. In most video systems, such commands can be sent out as one 16-bit (Word) value or as two successive 8-bit (Byte) values. The word-out method of addressing, which is used by other programs (e.g., Microsoft WINDOWS), yields faster positioning of the cursor but may not work with some older clone systems. Registered VIz releases use cursor word-out addressing; to verify that your system can handle this method, you can enter the command 'VIZ ?H' to see if the cursor appears at the indicated position. If not, the video system only allows byte-out addressing, and registered users need to contact the vendor for a byte-out release of VIz free of charge. CPU RELEASES VIz is entirely written in assembly language. Each VIz revision consists of 4 processor-type releases (086, 268, 386, and 486), where the code has been optimized for the specific type of 80x86 processor. This is needed because the processors currently available differ markedly in instruction execution times, and the availability of memory caches affects those times further by influencing both speed of instruction fetching and memory access. The type and degree of code optimization vary with the processor model. In addition to standard (086) assembly language instructions, the 286, 386, and 486 releases of VIz also use 286-, 386- or 486-specific instructions in real mode only (which is the native mode for 086 processors). The releases differ slightly in resident size. 4. ACCELERATION MODULE VIz installs itself as a resident program that can be invoked repeatedly for modification of its parameters, without producing multiple copies on memory; the accelerator module of the resident uses less than 1000 bytes of RAM. To maximize speed of code, but minimize resident size, acceleration only occurs for video page 0 in a text mode (1-3, color; 7, monochrome). In other pages or graphic modes, VIz becomes inactive and is automatically reactivated by a change to page 0 in text mode. VIz updates relevant parameters in the BIOS data area (segment 40h), such as cursor position (page 0 only) and type, video mode, page, and font, that are also processed by VIz; while such updating degrades video acceleration time, it also decreases the possibility of conflict with foreground utilities that use BIOS data but bypass BIOS calls. 5. CURSOR ALTERNATION MODULE To help cursor visualization in screens where the cursor is not easily seen, as in some laptop displays, VIz provides a small resident module that allows for the display of a (full-)block cursor, either continuously or alternating with a line cursor. The alternation rate can be adjusted in steps of 54.9 ms between about 0.055 s (/V1) and 5.5 s (/V99). A zero alternation rate (/V0) produces a continuously present block cursor. For the module to be loaded in memory, VIz must be installed with any /V switch (see below), and it adds an additional 100 bytes to the resident size of VIz. Very short or very long alternation rates are distracting or hard to follow. When selecting a rate for laptop displays, start with a value of n=9 (.50 s) or so. Block cursor alternation can be turned off by making this resident quiescent with the switch /V+ (until its reactivation with /Vn). All cursor operations use direct commands to the hardware, and assume register-level compatibility with the Motorola 6845 CRT controller. This chip is present in MDA, CGA, and HGC cards, while a 6845-compatible CRTC is a custom LSI chip in the IBM-EGA, part of the Memory Controller Gate Array on the MCGA, or a part of the Video Graphics Array on the VGA. The normal (hardware-controlled) blinking of the cursor is not eliminated by VIz; hence, depending on the alternation rate selected, a two-beat frequency may be noticeable. 6. ANSI-COMPATIBLE FILTER MODULE The DOS files includes the filter ANSI.SYS, a console character driver that mediates a subset of the standard escape sequences of the American National Standards Institute (ANSI) for video services. This filter also mediates a supplementary subset for keyboard services (such as key reprogramming). VIz has a second, independently installable resident module that implements standard ANSI escape sequences to control the console video functions. This ANSI-compatible filter uses less than some 800 additional bytes of RAM when installed. Once installed, this ANSI filter module can be turned off or on independently of the other modules, or jointly uninstalled from memory. The filter does not provide by itself much acceleration of DOS video input/ output as far as ANSI instructions are concerned. Its advantages are small resident size, the capability of being turned on or off, and its harmonious working with the acceleration module of VIz. COEXISTENCE WITH OTHER ANSI FILTERS The installation of the ANSI filter can be made contingent on not detecting the presence of ANSI.SYS or another ANSI-like utility intercepting the FAST CONSOLE interrupt (29h) of DOS, such as ANSI.COM (Copyright 1989 Ziff-Davis Corp.), or the potential presence of such utilities may be ignored (and the filter forced to install). The presence of an installed ANSI-like utility can be ascertained using the Status/Usage/Help panel displayed when the command 'VIZ ?' is entered. The Status line at the bottom of the screen displays one of the following: ANSI.SYS Indicates that interrupt 29h (see below) points to a resident code containing a device driver header with the attributes of a character device servicing calls to INT 29h and the device name 'CON.' This is likely to be ANSI.SYS or an ANSI-compatible device driver. ANSI.COM Indicates that interrupt 29h (see below) points to a resident code containing the string 'CON ' at the place where the device driver name should be, but it does not contain other elements of the device driver header. This is an ANSI-compatible resident utility of the type of ANSI.COM. ANSI: No Indicates absence of the above conditions. ANSI IMPLEMENTATIONS The ANSI-compatible filter supports the following subset of ANSI 3.64-1979, standard escape sequences, to control console video functions (see your DOS documentation of the ANSI.SYS commands): Selection of the foreground and background colors on a color display or the text attributes on a monochrome display system. The sequence syntax is [#;...;#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 [=#h or [=#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 [?7h or [?7l to turn word wrapping ON or OFF, respectively. Cursor positioning for the following sequences: [r#;c#H Move to specified row (r#) and column (c#) [r#;c#f Same a previous sequence [r#A Move cursor up by specified number of rows [r#B Move cursor down by specified number of rows [c#C Move forward the specified number of columns [c#D Move backward the specified number of columns [s Store current position of the cursor [u Restore to the position stored by [s [K Erase from the cursor to end of the line [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 ([r#;c#R), and the supplementary set of escape sequences used by ANSI. SYS to permit the reprogramming of the keyboard (i.e. [#;'string';3p), a set which is not part of the 1979 ANSI video standard. 7. INSTALLATION & USAGE The enclosed utility INSTALL.EXE may be used to copy the program files to a user-defined drive and directory, and--if so desired--to add statements to the file AUTOEXEC.BAT so that the program is loaded automatically upon booting and to append the user-defined directory to the PATH statement. The following describes the manual installation of VIz: VIZ [/Switches] [;Comments] It is recommended that VIz be installed before other residents also using the BIOS interrupt 10h (video input/output). Due to the intrinsic nature of the implementation, VIz does not chain some the interrupt-10h calls to residents located down the intercepted interrupt chain. In order for such residents to have access to these data, they need to be loaded after VIz. Thus, it may be convenient to install VIz early in the AUTOEXEC.BAT file. If you intend to make use of the resident ANSI filter in a more permanent manner, VIz may also be installed just as described above; if you want to remove the ANSI component after a given ANSI-oriented task, however, then VIz should be the last resident to be installed. The driver ANSI.SYS needs not to be loaded or, if loaded, removed, to use the ANSI resident of VIz. However, if any ANSI-like utility were already installed and active, and VIz were switched to its 'fast DOS' mode (/Z+), such an utility might be unable to process escape sequences, unless these sequences were sent directly to the CON device via INT-29h calls (instead INT 21h). Once installed, the resident can be modified at any time by executing VIz again with new command switches. SWITCHES The switches can be entered from: (1) the DOS command line (2) a batch file (3) a DOS environment string with the format VIZ=/SWITCH1.../SWITCHn The switches are not case sensitive, and can be separated by any character between space (ASCII 32) and backslash (ASCII 47). The effects of some of the switches, e.g., /N, are order sensitive. Switches /A, /B, /C, /D, /I, /M, /P, /R and /S are "sticky" as the video changes they produce remain in effect even if VIz is quiescent or uninstalled. -------------------------------------------------------------------------- (*) Switches marked with asterisks are available only in registered copies -------------------------------------------------------------------------- SWITCH /? This switch displays the Status/Usage/Help panels, which are described in more detail in the section below. If a VGA or EGA is the active adapter, the program saves the contents of the palette registers prior to changing the video attributes for its various displays. See section STATUS/USAGE/ HELP PANELS below. EGA users: The default MS-DOS palette attributes are restored if the EGA BIOS fails to store the original video data. * SWITCH /A[ñ] Installs a resident filter to implement (the video subset of) ANSI escape sequences; the installation may be made contingent upon failure to detect the presence of the DOS driver ANSI.SYS or some ANSI-like residents (/A), or to ignore their potential presence (/A+). The ANSI module does not become resident unless switch /A[+] is specified at the time VIz is being installed and cannot be added after installation of the resident(s). Although the filter can take advantage of VIz acceleration, its operation does not require the enabling of the resident accelerator module, and its activity can be controlled independently with the following switches: * /A If VIz is not yet installed, adds the ANSI filter module to the resident code to be installed, provided that ANSI or another logical device named 'CON ' mediating int 29h (see #3 above) is not installed, and inactivates the remapping of the EGA/VGA palette via /C+, /Cn:n, or /Cm. * /A+ If VIz is not yet installed, adds the ANSI filter module to the resident code to be installed, even when ANSI.SYS or a similar CON utility has already been installed, and inactivates the remapping of the EGA/VGA palette via /C+ /Cn:n, or /Cm. If VIz is already installed, and the resident filter was made inactive with /A-, /A+ reactivates the ANSI filter. * /A- Inactivates the filter, if installed and active. It also reactivates a previously active remapping of the EGA/VGA palette. Defaults: /A = /A+; null switch = no resident on installation. Switch /A or /A+ automatically turns switch /Z off (/Z-) to insure that all the DOS video output is directed to the console driver so that ANSI escape sequences via StdOut can also be implemented by the ANSI filter. In those cases where the ANSI escape sequences are directly sent by the application to INT 29h, a faster DOS output is achieved with switch /Z+ after selecting switch /A[+]. * SWITCH /Bn Selects the color for the screen border in text modes, and the background and border color in graphic modes. This color is specified by , 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 , where <000rgb> shows the color at 33%, at 66%, and at 100% intensity. These bits, and their resultant color, are shown below using both binary (base 1) and octal (base 8) number formats: Binary Octal Color Since the binary format takes up a ÚÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ lot of space it is more convenient ³ 000 000 ³ 00 + ³ 100% black ³ to use the 2-digit octal format to ³ 000 001 ³ 01 ³ 33% blue ³ represent an RGB value. The binary ³ 000 010 ³ 02 ³ 33% green ³ equivalence of octal numbers is: ³ 000 011 ³ 03 ³ 33% cyan ³ ³ 000 100 ³ 04 ³ 33% red ³ ³ 000 101 ³ 05 ³ 33% magenta³ 0o = 000000b ³ 000 110 ³ 06 ³ 33% yellow ³ 1o = 000001b ³ 000 111 ³ 07 ³ 33% white ³ 2o = 000010b ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´ 3o = 000011b ³ 001 000 ³ 10 + ³ 66% blue ³ 4o = 000100b ³ 010 000 ³ 20 + ³ 66% green ³ 5o = 000101b ³ 011 000 ³ 30 + ³ 66% cyan ³ 6o = 000110b ³ 100 000 ³ 40 + ³ 66% red ³ 7o = 000111b ³ 101 000 ³ 50 + ³ 66% magenta³ 10o = 001000b ³ 110 000 ³ 60 + ³ 66% yellow ³ 11o = 001001b ³ 111 000 ³ 70 + ³ 66% white ³ 12o = 001010b ÃÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´ 13o = 001011b ³ 001 001 ³ 11 + ³ 100% blue ³ 14o = 001100b ³ 010 010 ³ 22 + ³ 100% green ³ 15o = 001101b ³ 011 011 ³ 33 + ³ 100% cyan ³ 16o = 001110b ³ 100 100 ³ 44 + ³ 100% red ³ 17o = 001111b ³ 101 101 ³ 55 + ³ 100% magenta³ 20o = 010000b ³ 110 110 ³ 66 + ³ 100% yellow ³ etc ³ 111 111 ³ 77 + ³ 100% white ³ ÀÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÙ (+) IBM default color palette Of course, other colors can also be generated when using a different RGB mixture value. For instance, a desaturated (i.e., whitish) RGB sequence is obtained in the octal range 71o through 76o. This palette control is also enabled (revision 2.42+) for the monochrome mode of VGA and MCGA video adapters to remap color codes into gray-scale values. The following services are available: * /C:n The RGB values of the palette registers is set by a 16- number sequence in which these two-digit, octal numbers are separated by colons (:) as in the following example /C03:00:20:30:40:50:01:77:70:11:22:33:44:55:66:76 which shows the default palette colors used by VIz when switch /C? is used. If less than 16 numbers are given, their RGB values are loaded into the respective palette registers starting from register 0. When a non-numeric value is provided, the palette is not changed. * /Cmñ The VGA and MCGA adapters emulates a 16-color text mode for a monochrome display, and the palette consists of 4 groups of four shades of gray. In MONOCHROME modes, /Cm loads a palette in which the gray-scale value increases uniformly with increasing attribute values; the palette corresponds to the following command /C00:50:01:31:61:12:42:03:43:04:44:05:55:26:07:77 Switch /Cm can also be used with CGA monochrome systems (e.g., laptops) to translate color attributes into gray scale values. In COLOR modes, switch /Cmñ enables [+] or disables [-] the gray-scale summing of the RGB mixture. The summing, carried out by the BIOS, sets the gray-scale equivalent of a given color to 30%, 50%, and 11% of the Red, Green and Blue value in the video digital-to-analog registers (these percentages are close to the relative brightness of the displayed 'pure' red, green, and blue). /C? This service provides a display of the palette registers and the corresponding RGB mixture in octal format. It is possible to alter the RGB mixture of any register simply by pressing , , or 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 to go to register 0 or to go to register 15. Press to save the current palette, to quit the service without any palette changes, to reject any change and to restart the service, and the indicated function keys to load several available palettes. * /C- Use to inactivate the implementation of EGA/VGA palette changes via VIz. The video attributes remain unchanged until the a video operation reloads the palette, e.g. a video mode change. Switch /A+ also turns off remapping of the palette. * /C+ Use to reactivate the implementation of EGA/VGA palette changes via VIz; it reloads the last color palette that was selected via VIz. Switch /A- reactivates remapping if remapping was in effect prior to an /A+ request. Defaults: /C = /C+. The selected EGA/VGA color palette changes are asserted (i.e. the palette is loaded with the selected RGB values) each time a video mode change, or a video font change, is requested and VIz is enabled (i.e., no /Q switch, no graphics mode, and no video page other than 0). To preserve the small size of Viz, there is no hotkey pop-up service. If during the execution of an application the color palette changes, the RGB values selected via VIz cannot be asserted except by shelling to DOS (and executing VIz with the switch /C+ to reload the palette) or by triggering a video mode/font change. * SWITCH /D[ñn] Adjusts brightness of screen (VGA card only); the brightness change step is specified by the sign and value of <ñn>, which is a decimal number of 1 or 2 digits, with or without a sign, in the range from -63 to +63. Use of high negative or positive numbers can result in an unreadable screen. Selection of /D0 results in the restoration of the screen to its default settings (as dictated by the manual controls of the monitor). Defaults: /D = /D+2; /D1 = /D+1; /D- = /D-2. * SWITCH /E Creates or updates the variable VIZ=/SWITCH1.../SWITCHn in the DOS global environment, where /SWITCH1.../SWITCHn are the switches to be implemented when VIz is executed from the DOS command line without any arguments. If the 'VIZ' variable already exists, switch /E updates the contents of this variable. Although switch /E is incorporated into the variable contents, its presence is ignored when VIz uses this variable as input. Switch /E modifies the DOS global environment irrespective of whether the resident shell is the initial copy of COMMAND.COM (global environment) or a secondary copy (local environment). See the INSTALLATION section below for more details. No defaults. * SWITCH /F[Htg][nñ] If VIz detects a HERCULES card adapter (HGC or HGC+), switch /FHt changes the card to text mode (80x25) whereas switch /FHg changes the card to its default (page 0) 720x348 graphics mode. If VIz detects an EGA or VGA adapter, switch /Fn permits the selection of the number of screen rows to be displayed. The following video fonts are supported: 12 or 14 (EGA or VGA), 25 (EGA and VGA), 28 (VGA), 35 (EGA and VGA) and 43 or 50 (EGA or VGA) screen rows. Except for the 12/14 and 35- row fonts, implementation of the selected font is maintained until switch /F-, which disables font implementation, or another font is selected; the font implementation can be reenabled with /F+. If a number is not specified, switch /F toggles between 25-row and 43 (EGA) or 50-row (VGA) screens. (If an EGA/VGA adapter is found, VIz also selects the alternate BIOS print-screen service to avoid the default BIOS print-screen routine that works with 25 rows only.) For a 25-row screen, an 8x14 font is used in an EGA and a 9x16 font in a VGA. Fonts with more than 25 rows can be loaded only if the video page is between 0 and 3. No defaults. * SWITCH /G[n] The frequency in Hz (cycles per second) of 55-ms bell tones is specified by , a decimal number of up to 4 digits, in the range from 25 to 5000 Hz. Values below 25 become 25 Hz and above 5000 become 5000 Hz; if more than 4 digits are given only the four least-significant digits are used, e.g., 50,000 Hz is read as 0000, triggering the use of 25 Hz. The bell tones always last 55 ms (one tick of the 8253/8254 timer chip). Since the tones are forced to begin at the start of a 55-ms tick period, stacked bell rings will result in a distinctive, staccato-like burst due to the intervening silent 55-ms tick periods. Most computer speakers seem to work properly within the range from about 100 Hz to about 3,000 Hz. Frequencies for the octave starting at middle are C=523 Hz, D=587 Hz, E=659 Hz, F=699 Hz, A=880 Hz, and B=988 Hz. The frequencies for higher [lower] octaves increase [decrease] approximately by a factor of 2 per octave change from the above values. Defaults: /G = /G440. * SWITCH /H[n][@] Loads the resident in the Upper Memory Area (UMA), between addresses 640 KB and 1,024 KB of memory; this is the region below the 1-MB boundary of the memory accessible by 086 CPUs, but above the 640-KB hardware barrier of MS-DOS. The switch requires an available upper memory block (UMB) of about .9 to 1.7 KB (depending on the number of modules to be installed), which is allocated by the program itself either via a direct XMS request or, when DOS controls the UMB allocation (i.e. DOS 5.0 linked to the UMA through the command DOS=UMB in CONFIG.SYS), via DOS calls. Allocation of UMBs requires the presence of an XMS manager (XMM) that supports the UMB services 10h-11h of the XMS 2.0, and (if the XMM lacks the capability of remapping memory) the presence of an UMB provider. A lower upper-memory limit for the UMB loading can also be requested via switch /Hn, in which is a four-digit hexadecimal number between A000 (640 KB) and FFFF (1,024 KB), in order to avoid or select specific areas of upper memory. A lower-memory resident marker can also be installed along with the UMB resident via switch /H@ or /Hn@; the marker occupies 144 bytes of lower conventional memory, can be identified in some memory mapping utilities by the name VIz @ UMB and is released from memory when the UMB resident is uninstalled. This marker may be used (1) to remind that the resident is already installed in upper memory, (2) to help locate the UMB installation address in the case of some mapping utilities, and (3) to help avoid removal conflicts when lower and upper-memory residents are interspersed. Defaults: Low-memory installation if any error is found during the UMB loading; high-memory installation below lower-address limit if UMBs are not available above such limit. * SWITCH /Iñ Selects how background color attributes with a hexadecimal value in the range from 8h to Fh (bit 7=1) are displayed in text modes. /I- High-bit attributes produce a blinking character on a background of normal (medium) intensity. /I+ High-bit attributes result in a steady character on an intense background. Defaults: Null switch = /I- on installation. * SWITCH /Kñ Disables [+] or enables [-] access of the CPU to video RAM in VGA/MCGA. It can be used to kill BIOS-mediated displays that cannot be redirected to the NUL device. /K- Enable CPU access to video RAM (normal display). /K+ Disable CPU access to video RAM (blanked display). Defaults: /K = /K+; null switch = /K- on installation. * SWITCH /Mn Selects the video mode specified by , in which is a hexadecimal number between 0 and FF, or , where is a decimal number between 0 and 255. NOTE: There is no checking that the selected mode is a valid one for the adapter in use. No defaults. * SWITCH /Nñ Determines whether or not noncritical program messages are displayed. /N- Noncritical messages are displayed via the redirectable StdOut device of DOS. /N+ Noncritical messages are not displayed, in which case a a brief bell tone is sounded when a error has occurred. Defaults: /N = /N+; null switch = /N- on installation. Since VIz beeps when a command error is detected, /N- should need to be used only after such a beep to display the error message again. Please note that the installing, uninstalling, and critical-error VIz messages cannot be redirected and are always displayed. The final status of the operation can be monitored in batch files with the ERRORLEVEL commands. * SWITCH /Pn Selects the video page specified by a number in the range of 0 to 7 for 25-row display EGA/VGA, 0 to 3 for 43/50-row display EGA/VGA, and 0 to 3 for CGA. No defaults. SWITCH /Q Forces the video accelerator into a quiescent mode; if loaded, the ANSI filter and the Cursor blink resident are NOT inactivated. The overhead video time for having VIz quiescent is an additional 2% or less of that without VIz. (Even when it is quiescent or during graphic video modes, the accelerator still monitors the video interrupt to check for page or mode change requests.) A quiescent mode lasts until the next execution of the program, unless switch /Q or /? has been selected. No defaults. * SWITCH /Rñ Selects the mode of processing text output that is used by DOS. In the normal ('cooked') mode, the kernel builds a device request for a single character output, makes a Ctrl-C check, and then passes this request to the StdOut console device; if no error is found, the buffer pointer and character count are updated. This process is repeated until either the end-of-file character (ASCII 26, Ctrl-Z) is found or all characters are processed. Tabs (ASCII 9) are expanded to 8 spaces. In the binary ('raw') mode, instead of filtering the stream for control characters, DOS passes a single request header to the device. Control- C, Control-P, and Control-S keyboard entries are not checked during I/O operations. Depending on the DOS version, DOS-mediated video output in binary mode is faster by factor of about 1.40 or so. /R- Changes DOS processing to the normal or 'cooked' mode. /R+ Changes DOS processing to a binary or 'raw' mode. Defaults: Null switch = /R- on installation. When executed, some utilities set the DOS processing mode to 'raw,' and then change it to normal when they finish, irrespective of the original mode. Other utilities set the mode to 'raw' and leave it on. Repeated use of switch /R+ may be necessary to maintain the binary DOS mode. NOTE: If the DOS binary mode is selected, the 'BREAK=ON' command should also be issued to facilitate the detection of 'Control-C' entries during disk and other DOS operations. * SWITCH /S[nñ] Enables [Sn+] or disables [Sn-] special services triggered by some keys that can have untoward effects under some circumstances, especially for LAN servers. /S1ñ Enables [+] or disables [-] the printing of the screen triggered by the 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, will freeze the system. /S2ñ Enables [+] or disables [-] the dynamic halt, which is triggered by the key (PS/2s and COMPAQs) or by the 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 is a decimal number (of 1 or 2 digits) specifying the alternation rate from 0.055 s [/V1] to 5.5 s [/V99]. /V0 Forces the display of a continuous, full block cursor. /V- Disables the display of the cursor. Due to a potential BIOS conflict, switch /V- is ignored at the time of VIz loading; to make the cursor invisible, first use /V+ or /Vn and then /V-. /V+ Reverses the cursor changes produced by /Vn and /V-. Defaults: /V = /V+; null switch = no resident on installation. * SWITCH /Xñ If the DOS video output to the Standard Output device (StdOut) is being mediated by VIz (see switch /Zñ), switch /X controls whether the StdOut can or cannot be redirected to a file or another device (such as NUL or PRN) by the commands '>' or '>>' from the DOS command line. /X+ The INT 21/40h/1 DOS video output can be redirected to a file or another device. (This is the normal default condition.) /X- The INT 21/40h/1 DOS video output is always displayed, i.e. it cannot be redirected. This provides a further acceleration of DOS video output but at the price of a less-than-transparent operation. Defaults: /X = /X+; null switch = /X+ on installation. NOTE: If switch X is not enabled, the acceleration of DOS video output via switch /Z+ (see below) conflicts with the redirection of DOS output to another device or to a file. If such a redirection is needed, either enable switch X (/X+) or disable switch Z (/Z-). SWITCH /Zñ Directs the video output through INT 21h, function 40h, device handle 1 ('write to StdOut device') to the DOS console driver or the accelerator module of VIz. Mediation of the INT 21h/40h/1-output to VIz produces a considerable acceleration of DOS text output in MS-DOS versions 2 to 5. /Z- INT 21/40h/1 video output is allowed to be processed by the installed CON driver. /Z+ INT 21/40h/1 video output is redirected to the teletype subservice of VIz. Defaults: /Z = /Z+; null switch = /Z+ on installation. COMMENTS The comments may be added in the DOS command line after the specification of the switches. These comments, which may be useful in clarifying batch files, must be preceded by a semicolon (;), and are ignored by VIz. Do not use the DOS redirection and pipe characters in the comments as DOS will attempt to implement the implied redirection or pipe request. STATUS/USAGE/HELP PANELS Executing the program with switch /? selected allows access to the Status/ Usage and Help panels. (If a Mouse pointing device driver, compatible with the Microsoft Mouse driver version 6.0 or higher is loaded and active, all of the services provided by these panels can also be activated by pointing the mouse to specific areas of the screen and clicking either button. The mouse driver state is saved prior to the display, to be restored later, if sufficient memory is available.) The STATUS/USAGE panel, which is shown first, describes status information for the resident and some video services. The bottom line shows the status of the StdOut stream redirection, ANSI filter, DOS text processing and the current value of the video page and video mode. A succinct explanation of the status of the highlighted service can be obtained by pressing the left or right keypad arrow keys or by clicking the mouse upon the screen button labelled ; these explanations can be erased by pressing key . 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 or , or click the mouse upon the screen button labelled . 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 or click the mouse on the screen button labelled