home *** CD-ROM | disk | FTP | other *** search
-
- Warp Driver
-
- by
-
- Eric Tauck
- 1304 Deerpass Road
- Marengo, IL 60152
- U.S.A.
-
- Compuserve: 72457,1557
- Internet: 72457.1557@compuserve.com
-
- Warp is a device driver for speeding up standard output. Addi-
- tional features of Warp include auto-pause, a shortened BIOS
- beep, and partial ANSI support. Warp requires a PC/XT/AT compat-
- ible and DOS 2.0 or higher.
-
- There are three flavors of Warp, WARP.SYS, WARPF.SYS, and
- WARPVF.SYS. WARP.SYS is the most compatible but slowest, while
- WARPVF.SYS is the least compatible but the fastest (the 'F' in
- WARPF.SYS stands for fast and the 'VF' in WARPVF.SYS stand for
- very fast). Both WARPF.SYS and WARPVF.SYS use the undocumented
- but standard PUTCHAR function (interrupt 29H). Additionally,
- WARPVF.SYS updates the hardware cursor only when necessary. With
- WARPVF.SYS, the cursor may be in odd locations during DOS opera-
- tions, but should be moved to the correct location by the time
- input is expected. I recommend trying all three drivers to
- determine which is most suitable for your system.
-
- Warp is installed in the CONFIG.SYS file:
-
- DEVICE=WARP.SYS [options]
-
- The possible options are:
-
- /C:x Set the initial output color to x. This value is an
- attribute byte in the range 0 to 255. You need to look
- up the color values in a technical reference to set the
- output color in this manner. You can also set the color
- with an ANSI sequence documented below.
-
- /S Disable auto-pause.
-
- /S:x Set auto-pause to x lines.
-
- The auto-pause feature works something like the MORE utility
- included with DOS. Whenever a specified number of lines have
- been displayed, the message "Press any key to continue ..." is
- displayed at the bottom of the screen and Warp waits for a key to
- be pressed. The auto-pause feature is enabled whenever scroll-
- lock is active. A screen can also be un-paused by turning off
- scroll-lock. By default, Warp will pause the screen after a
- single page of lines, however, auto-pause can be set to a specif-
- ic number of lines or totally disabled with the /S option. Note
- that Warp starts counting lines sent to the CON device after any
-
-
-
- input and will pause no matter what's being executed. If you
- plan on running a program unattended that sends its output to the
- standard output device (CON), make sure you disable auto-pause or
- turn scroll-lock off.
-
- Warp automatically generates a shorter and less annoying beep
- than produced by DOS or BIOS. This is done by hooking interrupt
- 10H and trapping all ASCII code 7's sent to the BIOS TTY func-
- tion. Only a few, mostly older, applications will be affected by
- this.
-
- Warp's ANSI support is limited to clear screen, move cursor, and
- set color. The exact ANSI sequences supported are as follows:
-
- ESC[2J clear screen
- ESC[#;#f move cursor
- ESC[#;#H move cursor
- ESC[#;...;#m set colors
-
- All ANSI sequences begin with ESC (ASCII code 27) and '[' (ASCII
- code 91). The # in the sequences refer to decimal numbers. The
- two numbers in the move cursor sequences are the row and column
- location. The numbers in the set colors sequence affect the
- screen colors as follows:
-
- 0 all attributes off, switch to normal color
- 1 bold on
- 4 (underscore, not supported)
- 5 blink on
- 7 (reverse video, not supported)
- 8 (concealed, not supported)
- 30 black foreground
- 31 red foreground
- 32 green foreground
- 33 yellow foreground (usually mapped to brown)
- 34 blue foreground
- 35 magenta foreground
- 36 cyan foreground
- 37 white foreground
- 40 black background
- 41 red background
- 42 green background
- 43 yellow background (usually mapped to brown)
- 44 blue background
- 45 magenta background
- 46 cyan background
- 47 white background
-
- Warp should work in all recognizable text modes. If the /S
- option is NOT specified, Warp will dynamically adjust the auto-
- pause line count to the current number of displayed lines. In
- graphics modes, Warp passes all output to the BIOS. Auto-pause
- does not work in graphics modes.
-
- Though the ANSI sequence to clear the screen appears to work in
-
-
-
- all text modes, on my system, the DOS CLS command doesn't work
- (it only clears the first 25 lines in the greater than 25 line
- modes). I think this is because DOS makes a direct call the to
- BIOS to clear the screen, rather than using the CON device driv-
- er. If you have this problem, you could clear the screen by
- displaying the clear screen ANSI sequence, for instance by ECHO-
- ing ESC[2J.
-
- Compatibility considerations:
-
- * Warp expects the BIOS video routines to preserve the DI, SI,
- and BP registers. Some older ROM's (like the original IBM PC
- ROM's) don't always do this.
-
- * Warp never waits for "vertical retrace" when displaying
- characters, which may cause flickering on some CGA monitors.
-
- * Warp uses the older non-AT keyboard BIOS input routines, so
- DOS will not be able to return extended keycodes (like F11
- and F12). This will probably effect few if any programs,
- since most programs that use these codes use the BIOS for
- input rather than DOS.
-
- * Warp positions the cursor by directly setting the location in
- the video controller ports. This may not work on nonstandard
- video systems and may cause problems in some operating envi-
- ronments.
-