Dec 142017
A collection of several small utilities, including calculators, modems, etc.
File SUTL21.ZIP from The Programmer’s Corner in
Category Utilities for DOS and Windows Machines
A collection of several small utilities, including calculators, modems, etc.
File Name File Size Zip Size Zip Type
AL.EXE 6396 4273 deflated
CFIX.EXE 1734 1211 deflated
DOSV.EXE 424 317 deflated
DTR.EXE 1374 980 deflated
EL.EXE 1086 802 deflated
EMS.EXE 880 614 deflated
KALL.EXE 1596 1143 deflated
LF.EXE 1318 933 deflated
PAUZ.EXE 4178 2795 deflated
PF.EXE 1318 950 deflated
PORT.EXE 5708 3615 deflated
RING.EXE 3900 2683 deflated
RTS.EXE 1374 980 deflated
SETV.EXE 2732 1830 deflated
SS.EXE 2124 1484 deflated
SUTL.DOC 47344 14264 deflated
TSTF.EXE 2042 1427 deflated

Download File SUTL21.ZIP Here

Contents of the SUTL.DOC file

SUTL 2.1
A Collection of Small Utilities

all by
Bob Eyer

April 19, 1992

NOTE: To find the doc for a particular EXE file, just search on
the string NAME: - or - search here on the basename of the


The content of this archive is shareware: if you think it's a
worthy addition to your personal software, you might make a
contribution to the author. In return for your contribution you
will receive the most recent updates of the items mentioned in the
list below.

Simply purchase a money order from your bank in the amount of $20
US made out to Bob Eyer and send with your return address to:

Bob Eyer
1100 Bloor Street West
Suite 16
Toronto, Canada M6H 1M8

Please mention in your accompanying note whether you wish 5.25" or
3.5" diskette format, and state the name in which you wish
registration-only utilities to be registered.

Do not send checks. Checks cause problems across international
borders which make them unsuitable for small purchases by mail
order. Checks will be returned with your order unfilled.

Enquiries may be placed by writing directly to the author via
Easyplex at Compuserve [73230,2620].

Warranty and Disclaimer:
The author, Bob Eyer, of this and all items below guarantees the
physical integrity of the diskette covering the points above, and
will replace free of charge, if it is received defective.
However, in no case will the author be responsible for any damages
due to loss of data or any other reason. In no event does the
author's liability for any damages exceed the price paid for the
buyer's order of this software, regardless of the form of the
claim. The person using the software bears all risk as to the
quality and performance of the software.


The items listed below, except the ones with asterisk in the left
margin, are registered to you personally. As personally
registered to you, these particular copies may not be distributed
without the author's consent. Names of programs falling into this
category are all versions of MG, versions of SPC after SPC 5.4,
all versions of HOST, CA, and CAF. These programs may be freely
circulated only in their 'shareware' form - i.e. in the form in
which they are posted by the author at Compuserve or in other
media. Versions of these programs which are personally registered
to the user must not be so circulated. When you place an order by
making your shareware contribution under these terms, you are
agreeing to abide by this principle.

The asterisked items mentioned below are in fact collections of
Eyer utilities, many of which previously posted in earlier
versions as separate offerings. They have been combined into
packages in order to simplify processing orders at this end.

Packaged items are not registered to the user specifically. You
may distribute FUTL, SUTL, and TUTL only as packages in the form
supplied without any alteration, except for possible inclusion of
BBS advertising.

MG 3.0
Moving average ASCII graphing program. Especially designed for
obtaining graphic updates on stock-market activity in practical
trading environments, in which it is essential that the user get a
quick graph immediately, with points of the graph directly
associated with the numerical and other text information which
these points represent (a feat impractical in Lotus graphics).
Designed to be used with SETV in the SUTL package.

SPC 5.5
Multidrive columnar drive report, with fairly complete description
of your machine including communications, important chips,
printer, BIOS, memory, processor and coprocessor speed,
multitasking, networking, and so on, all in one single snapshot.
New version doubles the amount of information on each
communications port and displays the information in columnar mode
above the drive report, adds an environment usage readout as well
as a new P parameter to pause the PRINT multiplexer, when it is
used to feed data to your printer. (DOS PRINT lacks a pause

HOST 2.3
Provides a simple BBS host for occasional use. Fully
configurable, but capable of being run 'right out of the box',
HOST provides ringback, file transfer, mail, chat, userlog, shell,
and much more - in an executable only 27K in size.

CA 2.2
Four-function fixed point TSR calculator with formatted displays
and scientific notation for direct paste to text. Also has
accumulator. Four mode groups. About 13K of memory.

CAF 2.3
Memory resident calculator with formatted displays and direct
paste to text. 18 functions, and an accumulation area. Five
types of modes. Number formatting. CAF is the most sophisticated
calculator in the business, for its size. 27K of memory.

* FUTL 2.0
A collection of file processing utilities including CHG, ELIM,
FVER, MV, MVA, OTL, RNF, SWP, TYME, and WD. Covering attributes,
deletion, BBS file maintenance, file moving, renaming, applying
wildcards, execution timing, etc. All are the best in their
class, and a few such as MVA and OTL have no competition at all.

* SUTL 2.1
A collection of small utilities covering batch file, diagnostic,
communications analysis, file, video, and other areas, including
SETV, SS, and TSTF. Includes a number of very useful memory
resident programs, such as AL and PORT.

* TUTL 2.1
A collection of text-processing utilities, including ADD, CBRO,
CITM, COMB, DIV, ESRT, LCNT, REV, and SPLT. Except for LCNT (a
very fast wildcarded text linecounter), these programs cover
important ground in text applications for which there exists no
other alternative in the shareware market.

NAME: AL 2.3
Resident Periodic Alarm
with optional clock


AL [/U] [Minutes Start Cxxx Lyy BEEPS NOBEEPS TIME]

If no parameter is given on the AL command line, AL will not
install in memory, but will only display a help screen. If the
Start time is not mentioned, AL will deactivate the alarm, and
activate the time function.

AL permits loading multiple copies in memory; such copies will
operate independently as given by the commandline for each. This
makes it possible to have many alarm schemes and display colours
running simultaneously. Each copy uses about 7K of memory.

The /U switch is designed to de-install AL from memory, only where
one copy is resident for each interrupt installed.

Clarification: AL installs by hooking Interrupt 8 if the BEEPS
command line option is used; otherwise, it installs by hooking
Interrupt 1C. See discussion below about the BEEPS option.

This feature allows two copies of AL to be made resident, so that
each may be successively de-installed by using the /U switch. It
also minimises the chance of hangs caused by interrupt collision
with other TSR's which use the timer tick (Int 8). Generally,
however, AL is not a risky application for hooking the same
interrupt which other programs also use.

Parameters (double underlining below)

So long as the parameters are separated by spaces, the order of
entry on the command line is immaterial.

The number of minutes to wait before next beeping the computer's
speaker and displaying the time. Number entered for Minutes must
be a positive integer and less than 9001. Where the number is not
in the range 1 =< Minutes =< 9000, AL automatically sets equal to
whichever limit is closest. If Minutes not specified, AL assumes
one minute. Example,

AL 15 08:00

sets the delay between successive alarm beep/display to 15
minutes starting at 08:00, but

AL 0 08:00

sets the delay to 1 minute.

This variable replaces the "Fminutes" variable in previous
versions. AL 2.3 uses a start time, specifiable with either
minutes, or seconds, precision. The use of Start time, rather
than First minutes, eliminates the need to calculate how many
minutes to wait before the first alarm. It also permits the use
of time-locking, so that each alarm occurs exactly Minutes apart.

For example, if Start is specified as follows,

AL 10:00

AL will sound a single beep once a minute, precisely on the
minute, that is, at zero seconds. Whereas, if Start is specified

AL 15 10:00:07

then it will sound a beep once every 15 minutes beginning at
10:00:07, and on the 7th second of every 15th minute thereafter.

When entering the Start parameter, it is essential to use the
colon (':'). AL recognises a parameter as being a Start time by
finding just that character in a string.

If no Start is found on the command line, AL suppresses the alarm
function and activates the time function.

C is a token and must be used with a number providing the colour
scheme of the time display. If none is specified, AL assumes
white on black. See discussion below about time display colour.

AL C75

sets time display colour to bright cyan on red, and only
displays the time with no alarm.

L is a token and must be used with a number specifying the screen
line on which the alarm time display is to appear. AL always puts
this display in the far right margin, to minimise overlaying other
text on the screen. The L option, however, enables the user to
select Line 1, or any other line on which he would like to see the
alarm time. If the L option is not specified, AL assumes that the
alarm time display will be on the same line as corresponds to the
current cursor position. Example,

AL L12 08:00

sets the position of the alarm display to line 12 of the screen,
using 08:00 for the start time and defaults for other parameters.

If 'BEEPS' appears on the command line, AL will provide three
beeps rather than just one (the default), for environments which
may be too noisy for the user to notice just one beep. Owing to
the use of time locking, this feature no longer degrades the
accuracy of delays between successive alarms.

When the BEEPS option is activated, AL hooks Int 8 directly,
otherwise it hooks Int 1C.

If 'NOBEEPS' appears on the command line, AL will not provide a
beep when the alarm time is displayed.

If 'TIME' appears on the command line, AL will keep a separate
clock display in the upper right hand corner of the screen,
independently of the periodic alarm function defined by the other

The clock display is updated only once per second, not once every
clock tick.


AL TIME BEEPS L2 C26 15 17:30

activates a separate time display at the upper right hand corner
of the screen, uses a colour-scheme of bright green on blue, beeps
three times on alarm display, puts alarm display at Line 2 with
alarm delay of 15 minutes, starting at 5:30 P.M.

Like all memory resident programs, AL is vulnerable to
compatibility problems which may arise from its use with other
TSR's. If you find you must reboot, try removing other memory
resident programs from your AUTOEXEC.BAT file, or try changing the
sequence in which they are loaded until you find the best

AL has been tested widely, but has shown no problem, except with
Lotus 123 (which takes almost complete control over video) and
multitasking applications which grab timer ticks to multiplex
active tasks. Desqview will hang if AL is loaded prior to DV. If
AL is used with DV, it should be loaded in a non-communications
task AFTER DV is loaded. AL's video will bleed through to all

Display Colour
The command line C-number determines the colour scheme for time
displays. The default is 7, which describes white foreground on a
black background. 0 is impossible (black on black), and so CA
converts that number to 7 automatically. Foreground and
Background numbers may be read from the following table:

Back Fore Bright Fore
---- ---- -----------
Black 0 0 8
Blue 16 1 9
Green 32 2 10
Cyan 48 3 11
Red 64 4 12
Magenta 80 5 13
Brown 96 6 14
White 112 7 15

The correct C-number is found merely by adding the Foreground
number to the Background number desired. For example, Bright
Green on Blue background is 10 + 16 = 26.

Avoid setting the C-number above 127. Colour numbers above that
limit will produce blinking displays.

In my estimation the C-numbers best for the eye are 10, 11, 14,
15, 26, 27, 30, 31, 74, 75, 78, 79 and 112.

Cursor Fixer


CFIX [B | T | OFF]

Run with no option, CFIX changes the cursor back to normal from
either a cursorless screen, or from the effect of some programs
which leave the cursor in a non-standard configuration.

If CFIX is run with the B option, it will change the cursor to
block mode, useful for laptop displays.

Where run with the T option, CFIX determines a thick cursor.

If the OFF option is activated, CFIX simply turns off the cursor.




DOSV simply returns the major element of the current DOS version
as an error level.

Useful in reminding the user to boot under a different version of
DOS for a particular program, where the program cannot be
prevented from hanging under, say, DOS 5, by using a program like
SETVER.EXE to "trick" the program into seeing a different DOS
version as its operating environment.

A number of programs written prior to the release of DOS 4 fall
into this category. And the evidence of these programs indicates
that DOS versions are not fully downward compatible.

Sample batch file to permit DOS 3 operation, but not later major

echo off
if errorlevel 4 goto pgmerror
goto exit
echo This program requires DOS 3


A program to toggle the DTR line


DTR [port]

where port may be either 1, 2, 3, or 4. If port is not entered on
the commandline, DTR defaults the port to 1.

This is the companion program for RTS, and functions in a very
similar way: Each execution toggles the DTR line without affecting
the RTS line.

This program is useful primarily when using a communications
program which does not drop DTR properly at logoff. Most users
will never find it necessary to use such programs as RTS or DTR;
but then, there are occasions when such simple programs prove to
be quite handy.

To observe the action of DTR, watch the action of your TR light on
your modem or the DTR flag on the PORT display (see below), when
executing DTR.EXE.

Returns command line number
as DOS error level


EL [number]

The sole function of this program is to convert a number into an
error level.

The purpose of providing such a function is to make it possible
for the user to control processing in a batch file by specifying a
parameter on the batch file's command line.

In the event that no number is entered, EL returns 0 as the
error level.

Suppose we want to use one batch file for performing two functions
in sequence, but wish to perform both functions only when say, 1,
is entered on the command line. This file might be called
OPERATE.BAT, and its contents might look like this:

EL %1

If OPERATE is entered without a '1' parameter, it will skip
running FIRST.EXE (because EL responds with an error level of 0);
whereas, if


is entered, then OPERATE will first run FIRST.EXE, and then

Batch file utility for detecting EMS memory




- DOS error level 1 if no EMS is present, displaying a message
to that effect on the screen.

- DOS error level 0 if EMS is detected.

I wrote this little utility to avoid wasting time trying to make
useless memory adjustments to Desqview tasks, resulting from my
forgetting that I set up DV to run only under EMS. What typically
happens in the DV environment, is that you log in, select a task,
and then DV returns a message indicating inadequate memory. So,
you spend maybe 30 minutes fiddling with memory reallocation and
then, suddenly, it hits you: You should activate conversion of
extended to expanded memory in your CONFIG.SYS file! 30 wasted

This problem is not important for regular users of Desqview, since
the regular user will probably always keep his machine configured
to make EMS available. But it is liable to victimise occasional
users of Desqview, who prefer to deactivate EMS entirely for
normal computer operations (because of the sacrifice in CPU
speed which EMS conversions involve).

EMS.EXE solves this problem. As illustration, I suggest the
following batch file, called DV.BAT, to run XDV:

@echo off
if errorlevel 1 goto exit

Since EMS returns an error level of 1 if EMS is not detected, this
batch file simply returns the user back to DOS. En passant,
EMS.EXE will print the message

--> Error: No EMS memory detected

to the screen. On the other hand, if EMS.EXE does detect EMS
memory, the batch file simply proceeds to load Desqview.

There are obviously other uses for EMS.EXE, as well.

A batch file CALLing program


KALL batchfilename [parameters]

To prevent nested batch file calls from stopping execution of the
main batch file. This is the purpose of the CALL statement
supplied with DOS 3.3 and DOS 4.0, but users of DOS 3.0, 3.1, and
3.2 do not have such a capability. KALL fills the void.

Parameters may be lower case, if required. KALL does not change
the case of the string which appears on its command line.

Linefeeds printer


LF [lines]

where lines specifies the number of linefeeds by which the printer
is to be advanced.

Where the parameter is omitted, LF assumes 1 linefeed.

Specifiable wait function for batch files

PAUZ ResumeChar [WaitSeconds|TargetTime]

ResumeChar: The upper or lower case character the user must
press to continue processing before PAUZ finishes
waiting. PAUZ's interpretation of ResumeChar is
not case sensitive.

If SPACE is entered for ResumeChar, PAUZ will use
the Spacebar as the key to hit for continued
processing. If ANY is used then PAUZ uses any key
for this purpose.

Second parameter (optional):
Either -
WaitSeconds: The maximum number of seconds PAUZ will delay
or -
TargetTime: The time in HH:MM format at which PAUZ will
continue processing. This parameter must be
entered with a colon, in formats like 8:40 or
08:40. Postmeridian times must be entered in
24-hour format.

PAUZ 2.2 now tests whether the current time is at
OR AFTER the TargetTime, to accommodate the needs
of Sysops who use complex batch files to automate
processing, and don't wish to have their batch
programs halt for nearly 24 hours, in case some
process does not quite make it to the given target
time. [Suggestion by Steven Guralnick.]

Where the second parameter is not mentioned, PAUZ will operate in
wait rather than target mode, using defaults as discussed below in
the section entitled "WaitSeconds Defaults".

PAUZ i/o is redirectable. So, PAUZ can be used to assist design
of batch file-based remote door programs.

PAUZ detects number keys during a PAUZ wait, to resume processing
by returning an error level identical to the number pressed by the
user at his keyboard.

The following shows how to use PAUZ with the program's return

Press any key or wait 30 seconds to continue ...

Pressing any key will return control to DOS (or the batch file)
with error level 1; otherwise, control will be passed
automatically with error level 0 if no key is pressed after 30
seconds have elapsed.

Press [SPACEBAR] or wait 30 seconds to continue ...

Press [A] or wait 15 seconds to continue ...

Press [A] or wait 75 seconds to continue ...

Note the effect of overriding the 15 second default for the A
ResumeChar (see below).

PAUZ A 14:20
Press [A] or wait until 14:20 to continue ...

Notice that the use of a target time causes PAUZ to alter the
format of its wait message.

In any of these examples, PAUZ will resume with error level x, if
a key in the range 1 to 9 is pressed. The error level is
identical to the number of the key selected.

This is useful in using PAUZ to provide for branching logic in
batch file programs.

WaitSeconds Defaults
In the event the user does not mention WaitSeconds on the command
line, PAUZ uses the identity of ResumeChar to determine the
magnitude of the maximum wait time. The following table indicates
the defaults supported:

ResumeChar Default Wait Time

A 15 seconds

B 60

C 120

D 240

Anything used for ResumeChar other than A, B, C, or D will cause
PAUZ to use 30 seconds as the default wait time.

Of course, in the event the user does mention WaitSeconds on the
command line, the user's wait time will always override these

Error Levels
PAUZ's normal termination is defined as an uninterrupted PAUZ
run - i.e. without touching any ResumeChar key. In this case,
PAUZ returns an error level of 0.

If the user interrupts PAUZ processing by hitting the required
ResumeChar, then PAUZ returns an error level of 1. If a number
key is pressed, PAUZ returns control to the calling program, with
an error level identical to the number of the key pressed.

Pagefeeds printer


PF [pages]

where pages specifies the number of pagefeeds by which the printer
is to be advanced.

Where the parameter is omitted, PF assumes 1 pagefeed.

Reads out data from three
communications registers
for any port (1 to 4)


PORT [/U] [portnum] [D] /u = uninstall.

Portnum may be a number from 1 to 4, and selects the number of the
communications port. The default is 1.

D means use display mode without loading as a TSR (display mode is
much more responsive than TSR mode).

The main purpose of this program is to provide a debugging tool
for developing communications programs. I have included all
"lines" of each register for completeness purposes -
notwithstanding that some "lines" are reserved and probably
undefined (such as bits 5 to 7 of the modem control register).
The following is a list of the data supported by PORT 2.0:

---------------------- ----
- Data Terminal Ready (DTR) Long
- Ready to Send (RTS) Long
- OUT1 (OU1) Long
- OUT2 (OU2) Long
- LOOP (LOP) Long
- reserved (5) Unknown
- reserved (6) Unknown
- reserved (7) Unknown

LINE STATUS REGISTER (Line 2 of display)
- Receive data ready (RDR) Variable
- Overrun error (OVR) Transient
- Parity error (PAR) Variable
- Framing error (FRM) Transient
- Break detected (BRK) Transient
- Transmit hold empty (THE) Variable
- Transmit shift empty (TSE) Variable
- Timeout (TIM) Transient

MODEM STATUS REGISTER (Line 3 of the display)
- Delta clear to send (DCS) Transient
- Delta dataset ready (DDR) Transient
- Trailedge of ring (TRL) Transient
- Delta carrier detect (DCD) Transient
- Data Set Ready (DSR) Long
- Clear to Send (CTS) Long
- Ringing (RNG) Long
- Carrier detect (CD) Long

In TSR mode, PORT updates the display once every half second,
which is about the best compromise between viewability of
the transient indicators and speed of update on the long ones.

Where the wrong port is selected, PORT will kick out the message
"Error: no such port" and return to DOS without loading into RAM.

By studying the display at various points in running a
communications program, the expert may use PORT to debug such a

Do not use PORT for routine monitoring during a regular
communications session, unless you don't mind losing bits of
captured data. PORT interrupts communications processing once
every half second independently of the stream of characters being
read from the receive buffer. Loss of information is therefore
inevitable, as updating the display requires a very small but
finite amount of time.

PORT is intended to be used only for debugging purposes, not
routine monitoring.

TSR ring detector for video


RING [/U] [port]

Port is a number in the range 1-4, representing the number of the
communications port to which the modem and phone line are

RING assumes port is 1, unless otherwise specified.

U means unload RING from memory.

Places 'RING' in the upper left hand corner of the screen, every
time the phone rings.

The RING field on the screen is created on the first ring, and
will die 10 seconds after the leading edge of the last ring. [A
ring cycle lasts about 6 seconds].

Thus, once RING is loaded, the user doesn't know it's there,
unless the phone is ringing.

The primary object of RING 2.0 is to provide a ring detector for
computer users who work in noisy environments where phone rings
cannot be heard, or in environments or situations in which the
user does not wish to hear the ring of a telephone under any
circumstances, and so turns off his telephone ringer.

A program to toggle the RTS line in doors


RTS [port]

where port may be 1, 2, 3, or 4. If port is not entered on the
commandline, RTS defaults port to 1.

This program toggles the logic status of the RTS line, without
altering the DTR line, and deals directly with standard IBM
hardware modem control registers for ports 1 or 2. It does not
open or close the communications port. RTS may be executed any
number of times without sending invalid data to the modem control
register, and will not stay resident in memory. Consequently, use
of this program is both 'safe' and will not reduce free space
available for a specific door program.

If RTS is low, this program will set it high; if high it will set
the level to low. RTS will not provide any video output, as it is
designed to be invoked from a batch file which controls the
processing of a specific door program - so that the remote user is
not aware of its operation. Therefore, the Sysop must use some
other indicator program to determine the actual status of the RTS
line, such as the PORT program (see above).

General Discussion:
Have you found a door program which, when accessed through shell
or exit doors of RBBS, simply hangs remote video? This may be the
program which solves your problem.

Most door programs don't have RTS/CTS problems when executed
through the shell or exit routines of RBBS. This is due to the
fact that most door programs, particularly those which are written
in BASIC, will reopen the communications port in such a way as to
raise the RTS line.

However, some host programs may, under certain conditions, lower
the RTS line when dropping to DOS for a door application, even
where DTR is unaffected.

Setting the RTS line at logic low means that programs which reopen
the communications port without correcting this problem will not
send any information. Typically, such programs will be written in
a language which doesn't make any assumptions about how the port
should be opened.

RTS should solve this problem. However, don't use it unless
you're sure you have an RTS logic problem: If your host program
keeps RTS high after drop to DOS, using RTS will force it low.

Sets video to 7 text resolutions



The possible modes may be listed by entering SETV with no

There should be virtually no risk of damaging your video equipment
on use of SETV: This program will not permit display of anything
but the help screen, if the adaptor detected is MDA, CGA, or
Hercules. However, it is specifically designed for VGA or
Multisync monitors.

If you run a display program, such as an editor, which scrambles
your video after running SETV, just reboot.

Video scrambling is most likely to occur in some programs, when
the screen width is set to 132 rather than 80, and is due to the
failure of the display program to take into account large screen
widths. A few programs, such Vern Buerg's LIST, will take
132-column modes into account.

SETV supports both 132x25 and 132x44 132-line modes.

All of SETV's modes except 40x25 and (N)ormal mode require a more
sophisticated ANSI driver than DOS's ANSI.SYS. The latter is
limited chiefly by failing to account for screens longer than 25
lines. Recommendation: Use NANSI.SYS (found on many bulletin
boards) instead. The syntax to use in your CONFIG.SYS will be the
same. And NANSI.SYS provides faster screens and more flexible

NAME: SS 2.0

Protects computer from online keyboard reassignments,
preserves colour and clears screen on exit.
[requires use of NANSI.SYS]


SS Program [parameters]

The main purpose of this program is to increase user security on
returning from an online communications session, while maintaining
the original screen colour selected before going online.

One of the principal dangers of communications environments arises
from reading online mail which may or may not contain ANSI

It is normally desirable to permit one's communications program to
receive and interpret ANSI codes, so that online ANSI graphics can
be viewed. However, the side-effect of this advantage is that it
allows the nasty sender of a message to reassign the receiver's
keyboard through ANSI commands, so that some keys have a new and
potentially destructive meaning, not understood by the receiver.

Some communications programs solve this problem by internally
resetting all ANSI defaults after DTR is dropped; but the practice
may not be universal, especially in view of the fact that there
are several alternatives to ANSI.SYS in the market, and NANSI.SYS
is only one of them.

This problem can be addressed by the user of NANSI.SYS by running
a batch file which contains the line,

echo [m

immediately after the communications session is ended.

This has the effect of zeroing out all ANSI settings. [Works only
with NANSI.SYS, or NNANSI.SYS]. Such a command, however, is
clumsy, and also has the effect of removing the DOS ANSI colour
scheme selected before the user began his communications session,
thus making it necessary to re-establish that colour scheme every
time a communications session is concluded.

If you're like me, communications sessions occur several times a
day, and having to re-establish the colour scheme each time is
enough of a pain to cause me to use white on black, instead of my
preferred black on cyan, or white on blue.

SS, short for 'Secure Shell', solves this problem by storing the
user's ANSI colour settings before shelling out to the
communications program, and then resetting NANSI defaults on
return, restoring the screen using the saved colour information.
In the last step, SS clears the screen, thus making the colour
assignments apply once again to the entire screen.

Suppose the command normally used to start a communications
session is


The session may be made neat and secure by using the following
command, instead:


This example assumes that the following line appears in the user's


where [path] is the directory in which NANSI.SYS is found.

Additional advantage
Because a shell always puts a second copy of the resident portion
of COMMAND.COM into memory, it has the effect of correcting
certain instabilities to which NANSI-type drivers are subject,
when transferring from a program that uses direct screen writes in
normal resolution back to DOS, when the initial resolution is 43 x
80 or 50 x 80.

SS cancellation of keyboard reassignments will not work with
ANSI.SYS. Colour restoration, however, will work. NANSI.SYS is
therefore a safer alternative to ANSI.SYS. If you cannot find it
on your BBS, ask your Sysop. Incidentally, NANSI.SYS is also
faster than ANSI.SYS. There is no longer any advantage in using
DOS's normal video driver.

NANSI.SYS 3.0 is shareware written by Daniel Kegel, of 221
Fairview Ave, South Pasadena, CA 91030 USA.

There is also another more efficient type of NANSI driver,
developed on the basis of NANSI 2.2 by Tom Almy, 17830 SW Shasta
Trail, Tualatin, OR 97062, under copyright agreement with Kegel.
This one is called NNANSI.SYS, for generic EGA/VGA (8086).

SS is compatible with both of these drivers.

Floppy drive tester
for automated batch file


TSTF driveletter or drive

For those who use batch files to automate formatting floppy disks
or do other automated work with floppy drives, there is a need for
a very small and simple program which returns errorlevels,
depending on the drive response. TSTF is one solution to this

TSTF accepts either a or A: or a: as its argument, and any drive
may be tested.

The returns are as follows:

Errorlevel Meaning

0 No error (drive ok)

1 Drive error
[Unformatted disk or
Drive door open]

2 Improper command line syntax (displays help)

Execution time depends on the particular drive and the disk
parameter table for each. Generally, 5.25" floppy drives will
require several seconds to test, and other types of floppy drives
less than 1 second.

End of documentation.

 December 14, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>