Dec 092017
ANSI.COM V1.3L - PC Mag's ANSI driver. Can be used in place of ANSI.SYS for improved performance.

Full Description of File

ANSI.COM V1.3l - PC Magazine's ANSI driver.
It can be used in place of DOS's ANSI.SYS and
gives better performance too. Also includes
ANSIPCB.COM that implements PCBoard's @ codes
for displaying text files at the DOS prompt.
This version now includes all the new PCBoard
15.1 variables and a fix for sized ratios.

File ANSI13L.ZIP from The Programmer’s Corner in
Category Display Utilities
ANSI.COM V1.3L – PC Mag’s ANSI driver. Can be used in place of ANSI.SYS for improved performance.
File Name File Size Zip Size Zip Type
ANSI.ASM 130513 26442 deflated
ANSI.COM 3709 2958 deflated
ANSI.DOC 11438 4319 deflated
ANSICOM.ASM 6191 1326 deflated
ANSICOM.SYS 959 521 deflated
ANSIPCB.COM 6756 4932 deflated
FILE_ID.DIZ 326 226 deflated

Download File ANSI13L.ZIP Here

Contents of the ANSI.DOC file


Michael J. Mefford
1989 No. 2 (Utilities)

Purpose: A memory-resident utility that enables selectable use of the
extended screen and keyboard control sequences that normally require loading the
ANSI.SYS device driver. Unlike ANSI.SYS, ANSI.COM supports all video modes,
permits sizing and clearing the key-assignment buffer, and provides high-speed
screen updating.

[/B nnn][/P nn][/C][/U][/Q][/T]

Remarks: ANSI.COM may be installed either at the DOS prompt or through an
AUTOEXEC.BAT file. It will not load itself if ANSI.SYS has already been loaded
as part of a CONFIG.SYS file. ANSI.COM will not load multiple copies of itself,
so its command name may be invoked repeatedly in the same session to change
user-selectable parameters.

Upon loading, ANSI defaults to the FAST and ON status parameters. For
use with IBM CGA video cards (where direct screen writes produce "snow") or with
some screen capture software, the SLOW (screen writing via the BIOS, as with
ANSI.SYS) status option may be selected. Entering ANSI OFF disables recognition
of the ANSI control codes (but reassigned keys are still functional).

Also upon loading ANSI defaults to KON and PON status parameters.
Entering POFF disables the ANSI reassignment function so no new reassignments
can be entered until reactivated by PON. Current assignments are still active.
This prevents unauthorized changes to you keyboard being made by silly people
who embed ANSI sequences into text documents to do harm to your system.
Entering KOFF disables the ANSI reassignments but still allows new assignments
to be made to the buffer or old ones removed. This allows simple ON / OFF
control of assignments without clearing the buffer and reloading each time
when a particular program is affected by the assignments. All keyboard
reassignments in the buffer become active again upon the issuing PON. The /Q
switch can be used to suppress output when executed. /P nn can be used to
protect a number of lines at the top of the screen from being scrolled when
the cursor reaches the bottom of the screen. Scrolling will occur starting
at the line specified (Zero is the top line and the Default setting.)
/P* will use the line above the current line. |

The ANSI.COM key assignment buffer defaults to a size of 200 bytes. The
buffer may be increased to as much as 60K or decreased to 0 bytes by entering
ANSI with the /B switch and the desired number of bytes as nnn. Resizing the
buffer after initial installation requires deinstallation, which may be
accomplished using the /U switch. Current key assignments are lost if the
buffer is resized. The buffer can be cleared without resizing by invoking ANSI
with the /C switch.

The full command set of IBM-ANSI control sequences is printed in the
original article and in the DOS Technical Reference manual. This information
can also be downloaded from PC Magnet.

Available for downloading from PC MagNet (see the ANSI by Modem
sidebar), ANSI.COM is already compiled and ready to run. ANSI.BAS will
automatically create ANSI.COM when run once in BASIC. To create ANSI.COM from
the ANSI.ASM source code requires use of a macro assembler (IBM or Microsoft,
Version 2 or later) and the following commands:

New /T option added to test if installed. Attempts to do an uninstall
without actually uninstalling. If Not Installed an Errorlevel of 1 occurs.
If already installed the status switches are returned in the ErrorLevel as |
follows: OFF 1 |
ON 2 |
SLOW 4 |
FAST 8 |
KOFF 16 |
KON 32 |
POFF 64 |
PON 128 |
If not already installed, the program will not be installed when testing. |

New /S option will load stat. data from ANSICOM.SYS file for PCBoard
@[email protected] substitution. This file can be created by another program (I
will write one soon in QuickBasic) which reads PCBoard.DAT, CNAMES, User.Sys
and User.Inf and formats the data into the required format of ANSICOM.SYS.
ANSICOM.ASM shows the format of the storage. The length must be 495 Bytes
(extra will be ignored, less will issue error message.) Issuing the /S option
without ANSICOM.SYS being present in the current directory will result in an
error message also.

XON Mode (the Default) controls the translation of @Xnn PCBoard color codes
into actual screen color changes. XOFF causes the codes to be ignored (they
will be translated and removed but will not actually set the color.) This
allows viewing a file containing these codes in "Black-and-White" mode to
how they will look to Non-Color mode Users on PCBoard.

If the position in a set cursor position command is beyond the bounds
of the screen then the highest row or column, as appropriate, is used.

PCBoard 15.1's @[email protected] could not be fully duplicated as ANSI.COM releases
it's environment when loading and changes to the DOS environment after
ANSI.COM was loaded would have been ignored anyways. If I can find a simple
way to emulate this without bloating the code too much, I'll add it. For
now the fixed text 'Env_Data' will be displayed regardless of what the
environment variable is or whether the variable exists or not (since as
I said the environment is not checked.)

Update 3/2/89 - Fix for DOS function 0Bh, Check Standard Input Status
and STDIN in ANSI_INT_21 handler.
Leading zero inserted for Device Status Report for
single digit cursor positions.
INFORMATION typo 40 for 40H.
WRITE_FAST modified to handle CR and LF instead of
Update 3/7/89 - Fix for CLS in graphics mode. Version 1.2

Update 8/8/89 - STI added to INT 21 and 29 handler. Version 1.3

Update 01/01/90 - [KON | KOFF] and [PON | POFF] added Version 1.31

Update 03/23/90 - /Q option added for no output when executed 1.32

Update 05/16/90 - removed Syntax from output unless needed 1.33
added /T test for load.

Update 10/28/90 - added /P nn command to 'Protect' nn lines 1.34
at the top of the screen from scrolling
up when the bottom of the screen is reached.

Update 12/01/90 - Added PCBoard @X## color code support 1.35
also added @[email protected] Support
added /S to load stats data from file

Update 12/12/90 - My mistake, I didn't realize @X00 saved 1.36
the color and @XFF restored it. Works now.
Also made prompts return to start of line
when cleared (like PCBoard does) & QON
now changes @[email protected] & @[email protected] into @[email protected]
Gary Meeker (Versions 1.31 to 1.36)

Update 4/20/91 - Change set cursor routine. If new position 1.37
is off the screen use the last row or column.
Added switch to not include PCB code.
Corrected syntax display.
Modified CLS to honor protected (/P) lines
Modified /T to returned status switches.
Modified /P to accept * to mean current row-1.

Update 9/19/91 - Allow ESC[p to clear all KB reassigns and 1.38
ESC[np to clear single key reassign.
ie: ESC[65p will reset ascii 65 to it's default [A]

Update 01/01/92 - Added XON/XOFF to control @X## color codes 1.39
added support for finding relocated copies.
This should allow LOADHI under DOS 5 or QRAM/QEMM
(all changes marked with ;^ - Gary Meeker)
(Was added to my 1.37 version 01/09/91 but now
incorporated into this version as 1.39 to include
changes by Wayne Mingee)

Update 05/15/93 - Added additional support for PCBoard 15.0 1.3J
@Variable:[email protected] and new variables (@DELAY:[email protected], @POS:[email protected],
@[email protected], @[email protected], @[email protected], @[email protected], @[email protected], @[email protected],
@[email protected], @[email protected]) and some 14.5a variables not previously
supported (@[email protected], @[email protected], @[email protected], @[email protected])
Gary Meeker (Versions 1.39 to 1.3j)

Update 06/06/93 - Fixed problem with (:nnR) Right & (:nnC) Center 1.3K
justification when variable was full length and
var needed no padding. Fixed delay which should
have been in tenths of seconds not seconds.
(fixes supplied by Chester Loving)

Update 11/17/93 - Added additional support for PCBoard 15.1 1.3L
@[email protected], @[email protected], @[email protected], @[email protected], @[email protected],
@[email protected], @[email protected], @[email protected], @[email protected], @[email protected],
@[email protected], @[email protected], @[email protected], @[email protected], @[email protected],
@[email protected], @[email protected], @[email protected], @[email protected],
and @[email protected] (Note: The environment is not actually checked
and the fixed data 'Env_Data' will be displayed).
Fixed problem using :nnx with Ratios.
Gary Meeker (Versions 1.39 to 1.3l)

The files contained in this Archive should be:
Name Length Date CRC-32
ANSI.DOC 11438 11-17-93 ???????? Documentation for ANSI.COM (This file)
ANSI.ASM 130513 11-17-93 8fa4bc52 Assembly source code for ANSI.COM
ANSI.COM 3709 11-17-93 b43a985f Executable version for Non-Sysop use
ANSIPCB.COM 6756 11-17-93 b07d1f85 Executable version for Sysop use
(includes @[email protected] translation)
ANSICOM.ASM 6191 11-17-93 f16dc90d Assembly source code for ANSICOM.SYS
ANSICOM.SYS 959 11-17-93 8ea68f30 Sample data file for loading into
ANSI.COM's buffer area for translation
of PCBoard @[email protected]
FILE_ID.DIZ 326 11-17-93 ca83ef06 Description file

To assemble, first change the line in ANSI.ASM:

PCB equ 1 ;$ 1 = if PCB code wanted

to 1 or 0 depending on whether you want PCBoard support code or not.
Then use the following:



 December 9, 2017  Add comments

Leave a Reply