BUG REPORTS ~~~~~~~~~~~ * When using version 1.40 thru 1.53 with the DOS line editor DOSEDIT.COM, a bug is triggered when returning from the help screen of VIz when the video mode 01 has been selected and the key is pressed. This bug results in a loss of the cursor. This behavior is not triggered in other DOS line editors (such as STACK.COM) and has been compensated in VIz version 1.54+. * When using QEMM and VIz 1.53+ there was a report of conflicts when loading VIz in high-DOS memory that caused the (386) machine to hang. The problem, however, was produced by insufficient room in high-DOS memory to allow for the expansion at loading time when using QEMM's LOADHI (see above). * When using version 1.54 with an ANSI driver the background color attribute was not always preserved past the 24th row. The problem has been corrected in version 1.55+. * When using version 1.54, changes of the video page by means other than VIz resulted in inactivation of the accelerator when returning to page 0. This problem has been solved in version 1.55+. * When running the full PCTECH benchmarks with version 1.56 (or 1.56a) on an EGA system, there are reports of missing characters at the bottom part of the graphics display of data comparisons. Such a problem is triggered by a strange video page change request by the benchmark while still in graphics mode; it does not occur in some EGA systems and in none of the VGA systems tested so far. The problem has been solved in version 1.57. * A bug was introduced in version 1.58 that resulted in garbled scrolling of screen windows. It has been solved in version 1.59. * Version 1.59 has been reported to affect the functioning of Xerox/Olivetti machines; the bug seems to reside in the accelerator module. Such machines run version 1.57 apparently without this problem. Since the machines have a proprietary CGA-like display it is expected the problem may be solved in the upcoming CGA version of VIz. * Users of DOS version 4.0x should be aware of reports of problems in using ANSI.SYS. If you experience such problems, be aware that some are likely to be experienced with the ANSI-compatible driver of VIz as well. * Version 2.20 attempted to solve the lack of screen ANSI-color preservation when the DOS' CLS command is issued by linking together the ANSI attribute and the attribute of (old) switch /C. This approach, however, resulted in conflicting screen colors with some programs that scrolled screen windows. The problem has been solved by removing the linkage and by implementing a different color selection scheme via switch /C that uses the EGA/VGA color palette (see Switch C above) in version 2.30. * When using switch F with a VGA, versions 2.31-2.32 toggled between 50 and 28 rows, instead of 50 and 25 rows. Version 2.33 has corrected this bug. * Versions 2.31-32 would report a CRC error when using some monochrome card systems. Version 2.33 has corrected this bug. * When using the "view" option of NORTON COMMANDER (F3) the first 2 lines of the text displayed remain unchanged if the key is pressed while the remaining lines are scrolled. This was a bug in the scroll down service of VIz, fixed as of version 2.40. * When inserting in WORD PERFECT 5.0+ text, additional lines than those requested by the utility were scrolled into the text (so that "text" from the video page 1 also appeared in the WP text). This was a bug in the scroll down service of VIz, fixed as of version 2.40. * When running VIz 2.41 with switch /X+ implemented (DOS int 29h directed to the "teletype" service of the accelerator), there was a bug in the service for the bell (ASCII 7) that could result in erratic displays, such as mode changes. The problem has been fixed as of version 2.42. * Version 2.42 contained a bug that could trigger improper stack restoration on DOS return after an illegal video function request; this has been fixed in version 2.43. * When running VIz 2.20+ and the disk utility DAAG.EXE the attribute of some areas of the display is changed after the window for file extension counts is displayed and then erased. * VIz versions 2.41-2.43 contain an error in the DOS version checking service that results in an error message followed by aborted execution for versions 3.00-3.09 and 4.00-4.09; this has been corrected in version 2.44. * VIz version 2.44 and prior ones providing control of key contain an error making VIz disregard any further switches after switch S. It has been corrected in version 2.50. * VIz versions 2.41-2.50 contain an error in the EGA status checking service, which resulted in a CRC failure when some adapters were encountered. It has been corrected in version 2.51. * A cursor bug has been reported when using VIz version 2.51 and ANSI drivers in DOS 4.01 (multicolor cursor). * A bug in versions 2.30 through 3.20 returned incomplete video font data for subfunction 30h of function 11h of int 10h, producing garbled displays with some utilities such as MORE FONTS. It has been corrected in version 3.21+. * The utility SHELL.COM of WordPerfect Library makes repeated settings of the same video page per each line of screen displayed. Because VIz page service also participated in the reloading of the EGA/VGA color palette (switch C), such repeated settings of the same page produced a haltering video display. Starting with version 3.21, this resident page service does not participate in palette reloading, as other non-optimized, higher-language utilities may show the same behavior. * There have been reports of problems in loading into high-DOS memory the EXE file format of version 3.10-3.21 that seemed to confuse high-memory loaders such as 386LOAD.COM. The previous .COM format has been restored in version 3.40 (see VIZ.DOC). * Some programs, written in C-language, when encountering an invalid argument in the command line generated the display of 65,535 characters when switch /Z+ was selected in version 3.40 of VIz. This problem, due to an incorrect value in a CPU register by these programs has been solved in version 3.50+. * An assembly macro in the BBS release was not updated in going from version 3.40 to 3.50, and garbled part of the display triggered by switch /C?; this bug did not affect other releases. * A mistake during compilation of version 3.60 avoided the updating of switch /V status; corrected in version 3.61. * A flaw in programming logic resulted in erratic reactivation of VIz after a change to page 0 from another video page (versions 3.21+); this problem has been corrected in version 3.63. * In some EGA cards, selecting the alternate BIOS print-screen service yields a print-screen malfunction (e.g. only a line feed is printed). All versions up to 3.71 automatically selected this alternate BIOS service when a VGA or EGA card was detected. Starting with version 3.72, the alternate service is selected if switch /S+, /S-, or just /S, is requested at installation time. * On first installation there was an error in cursor positioning if the video had not been scrolled first; this error has been corrected in version 4.00. * There has been a report of a VIz-4.00 (BBS version) problem with an Orchid Prodesigner II Plus VGA card, in which VIz did not seem to turn itself off when the video mode was switched to an unspecified 'hi-resolution' graphic mode. So far, such a problem has not been replicated in other VGA systems and awaits further study. * The octal number input service (used by switch /Bn, for example) contained an error that converted a single-digit input such as '7' into '70' instead of '07;' this error has been corrected in version 4.03. * There have been reports of a bug in the 086 release of version 4.12, which has been traced to an incorrect assembly macro assignment that resulted in double instruction-prefix opcode. * A bug in the video adaptor testing of VIz 4.13 crashed some machines with a CGA card; it has been fixed in version 4.14. * Version 4.15 fixes several errors which started to accumulate with version 4.12. Of these, the most serious was an assembler (phase?) error resulting in the incorrect segment override during the updating of a data byte; as a consequence, the program changed the contents of (one-byte of) memory out- side its boundaries. Depending on system conditions, such error might have negligible to obvious effects (such as affecting the batch file processing by COMMAND.COM). ** USERS OF VERSION 4.12 OR HIGHER SHOULD UPGRADE TO 4.15 EVEN IF NO PROBLEMS HAVE BEEN EXPERIENCED ** * In version 4.15, an error message was displayed when switch /A+ was issued after the ANSI resident was installed, unless switch /A- was issued first. This harmless error has been corrected in version 4.16. ---------------- UPGRADES & HISTORY ~~~~~~~~~~~~~~~~~~ 1.00 - Not circulated. 1.10 - Not circulated. Beta testing. 1.20 - Not circulated. Beta testing 086 code 1.30 - Not circulated. Beta testing 286 code 1.40 - First release of 086 version. 1.53 - Optimized code to speed up performance (modifications 1.50-1.53) 1.54 - Shrunk resident code by 10%, partly by removing support for sub- functions 0Fh and 11h; this also increased video i/o speed. Added code to avoid triggering a bug in DOSEDIT.COM when returning from help screen in mode 01. Set mode/page change priority. Made font changes to comply with page requirements. Modified communication between resident and non-resident code to fix potential bug. 1.55 - Corrected bug in color background when ANSI loaded; corrected bug in page inactivation created by 1.54 changes. Beta testing of ANSI compatible driver in 286 version. 1.56 - Shrunk resident code and increased acceleration slightly. Fixed glitch in ANSI-compatible driver due to bug in VGA BIOS causing an occasional change of background attribute video scrolling. 1.56a - Corrected subtle bug triggering a change of background color when returning to video page 0 after a background-color change took place in page 1. 1.57 - Shrunk resident accelerator code. Changed ANSI-compatible resident to avoid bug triggered when returning from graphics mode after a full screen blanking. Added VGA brightness control. Tightened the change mode and page services. Added size, time and date display of the distributed file in the Help panel. Fixed code to bypass to BIOS page change requests in graphics mode. 1.58 - Further reduction of the resident accelerator code by ca. 10%, with no significant overall change of video i/o speed. CRC calculation performed to check for accidental or malicious modification of code. Added PrtSc key inactivation/reactivation service. Shrunk ANSI code. 1.59 - Solved silly bug introduced during compiling of 1.58 that affected window scrolling service. 2.00 - Changed code to self-relocation into the PSP area to reduce resident size. Added user selection of attribute during window scrolling. 2.10 - Further tightening of the ANSI driver code. Made translation tables self-relocating into PSP also. Added int-1Ah monitoring for removal. Added "V" mark for memory mapping programs reading ASCIIz string at PSP=80h. 2.20 - Further tightening of the ANSI-driver code and the accelerator code. Added VIz name for memory mapping programs reading ASCIIz string at PSP=80h. Reworked the behavior during SetMode or SetPage requests to reduced overhead. Completed the initial testing of the CGA version of VIz. Modified the DOC file. 2.30 - Modified the whole implementation of color selection via the EGA/VGA color palette, using an octal coding in command line calls, but switched to individual R, G, or B changes in the palette status display. After some code relocation, the implementation added only a few bytes to both VIz residents. 2.31 - Optimized resident code for prefetch queue operation. Fixed bug in ANSI-compatible driver for escape sequence "[#;#H" that failed when row was given as 0. 2.32 - Modified text in some messages. Changed code for faster display of status panel. Tightened miscellaneous code services. 2.33 - Fixed bug in switch F when using VGA. Added set block specifier call for MCGA. Fixed CRC bug triggered by some monochrome systems. 2.34 - Fixed bug caused by missing instruction that triggered a pink screen during video mode changes. 2.40 - Int 29h is revectored to original address (if possible) when /A- is selected; otherwise maintains ANSI driver partially active to catch ANSI escape sequence from CLS command service. Restored the 8-space tab expansion in the accelerator module when using the DOS raw mode; DIR/w, which uses a 4-space expansion, instead of the normal DOS 8- space one, remains a bit scrambled in this mode. Added code for lazy programs expecting the preservation of the replication factor after int 10h, function 9 in order to speed up some frame displays. Video buffer segment and video port are established and updated only when VIz is executed from the DOS line. 2.41 - Accelerator module can intercept int 29h, an undocumented interrupt mediating fast DOS video output to console, to improve acceleration when the ANSI driver is not installed. Added page limits for fonts. 2.42 - Fixed bug triggered by bell code when vectoring int 29h to Viz TTY. Enabled palette control via switch /C when using the VGA monochrome mode (as opposed to MDA or HGC emulation modes, which are disabled). 2.43 - Fixed bug triggered by invalid card function request that swap stack register restoration prior to DOS return. Modified code dealing with switches that clear the screen to avoid redundant operation by some selections. Completed testing of CGA-dedicated version. 2.44 - Fixed bug in DOS version checking procedure that rejected any minor version between x.00 and x.09; compacted the non-resident code, and optimized 16-byte CRC procedure. Tightened resident code of CGA-VIz by using immediate values in variables that depend on video display type, forcing a 80x25, color format. 2.50 - Further adjustment of resident code for prefetch queue timings; more tightening of non-resident code. 2.51 - Fixed bug in the checking of EGA characteristics that triggered CRC errors with some cards. 2.60 - Resident and non-resident code were optimized using a software timer thru to select the assembly language instructions that resulted in faster 3.00 actual execution times in situ, rather than basing the selection on published Intel's executions times (that assume the instruction has been prefetched by the BIU and it is ready for the EU) so as to take into account instruction fetch time. 3.10 - Relocated resident code so that nearly all video procedures begin at an address multiple of 4 in order to increase execution speed in 386 and 286 machines. All procedures of the non-resident code also start at double-word addresses. VIz now uses a scrambled, compressed .EXE file format. 3.11 - The Syntax/Help panel now loads its own color palette in EGA or VGA systems and restores the previous palette upon exit. The EGA palette contents are read via the Parameter Save Area. Fixed bug that locked VIz when changing from monochrome to color (or vice versa) even with switch /Q. Default for nonfatal messages is NUL; added switch /N. 3.20 - Added separate module for alternating block-and-line cursor for lap- top screens. Added nonresident code to adjust for EGA cursor shape. 3.21 - Fixed bug in int 10h/fn 11h/subfn 30h that did not preserve segment in ES register. 3.30 - Restored the scrambled, compressed .COM file format due to problems in high-DOS-memory loading of EXE format of versions 3.10-3.21 with high-memory loaders. Added updating capabilities for high-DOS memory resident installation, so that high loaders need to be used only for installation and not for updating. Some of these loaders still choke when executing compressed/scrambled .COM files. 3.40 - Interrupt 21h/40h/1 (StdOut) can now be intercepted via switch Z to speed up DOS video output more than by setting the mode to raw (all redirection of StdOut is lost). High-DOS loaders choke also with a new compression scheme (not released). 3.50 - Added control for CX=0 in int-21h/40h/1 service for some C programs that call int 21h/40h with CX=0 when an invalid argument is found in the parsing of their command line as if they were trying to truncate or extend the StdOut. Fixed the nonzero setting of screen border in some EGA cards after the palette dump to the Parameter Save Area. 3.60 - Excluded video, PSA, and other buffers, which are now allocated only when needed (switches /? and /C?) if available. Fixed assembly macro not updated in last change. Tightened nonresident code. (Begun alpha testing of high-memory self loading version [no int 8h] for segment FFFF:0016-FFFF:FFFF; buggy with utilities that ignore Dievendorff's VDISK strategy and some HIMEM implementations.) 3.61 - Changed segment override technique for scrolling (286); removed some redundant registers in resident code (086 & 286). Version 3.60 typo vitiated updating of switch /V. 3.62 - Small improvement of video acceleration (286+) by reorganizing code to reduce alignment fillers in the resident tty service. A few non- resident procedures were modified for faster operation. 3.63 - Use of opcode instructions to generate self-modifying code produced further (small) improvements of video acceleration, and reduced the resident size (086+ more than 286+ due to the dword alignment used for 386 machines). Removed some redundancy in the nonresident video routines. Added environment service for configuration string 'VIZ=' Fixed video page ORing that failed to zero flags first. 3.64 Added control of the frequency of bell tones (55-ms) in the resident thru teletype code. Modified StdOut redirection accelerate processing and 3.70 output. Removed revectoring of interrupt 29h to resident teletype. Restructured nonresident parsing services. Added check for ANSI.COM and ANSI.SYS even when resident not loaded. 3.71 Further modification in part of the resident and nonresident code. Disabled palette control when resident was inactivated (3.63 bug?). 3.72 Modified alternate BIOS print-screen service (int 5) activation in EGA/VGA to avoid ROM extension bug of some EGA cards. 3.73 Fixed bug in cursor position on first installation without initial video scrolling. 4.00 (3.74 thru 3.90) Development and beta testing of real mode 386-VIz version. 4.01 Further tightening of resident code with software timer; changed the location of some 386 instructions to minimize zero-extending chores. 4.02 Direct high-memory installation of the resident via XMS UMB request is possible with switch /H for the XMS version 2.0 without need to use a high-memory loader which will load the entire program in high memory before leaving the resident code. Back to .EXE format as it provides a better file compression ratio. 4.03 Direct update of creation of the environment variable in the master DOS environment via switch /E; uses DOS fn. 52h, so it does not work in some buggy versions of DOS 4.00 (ok in 2.10-3.31 and 4.01). Fixed bug in octal input service. Optimized offsets of procedures. Begun development of 486-VIz optimization approaches. Optimized some ANSI services. Spurious characters between ASCII 13 and 47 in the command line trigger the Help/Status panel when not accompanied by a switch. 4.10 Resident uses self-modifying code to change mod-reg-rm addressing to immediate addressing; changed calls for push-n-jumps to procedures; optimized the video-scrolling services with little or no performance penalty for non-scrolling display. 4.11 Added mouse support to the Usage/Status panel. 4.12 Reorganized Usage/Status panel and added on-line Help. Speed of non- resident direct video writing services was improved. 4.13 Added code for selection of minimim UMB loading address. Changed the detection procedure for ANSI-like utilities and made Status panel to recognize such programs after VIz is installed. Improved performance of UMB loading module. Fixed bug in (086+) 4.12 that resulted in ES: override in the presence of a REP prefix. Real mode 486 VIz version introduced. 4.14 Fixed bug affecting stack during video card testing (CGA only, some clone machines); fixed intervening blank in the video mode display; adjusted attributes for VGA/MCGA monochrome mode. Second-pass code optimization for 486 version ANSI module. 4.15 Fixed insidious bug by redefining ORG $ when aligning code by 4 or 16 (phase error in multipass assembler?) that skipped a data segment segment override and changed one byte outside the bounds. Fixed word out bug in cursor positioning. Added video font service for 12-25-28 35-43-50 lines. Added Pause key enabling/disabling service to avoid crashing LAN servers. Switch /N default installation is now /N-. 4.16 Fixed update error in ANSI module swap register; corrected resident data updating service. Added HERCULES card mode detection support. Fixed bug in mouse support routine introduced in 4.12 (affects only some drivers).