DOC 1.1 documentation file
-----------------------------------------------------------------------
Please note - this is a plain ASCII text file but contains multiple
documents. You may find it most convenient to view or print this file
using the DOC.EXE program supplied.
-----------------------------------------------------------------------
Title1:PC Magazine Utilities
Title2:Volume 2
Copyright:(C)1992 Ziff-Davis Publishing

@@Introduction
Introduction
PC Magazine Utilities Disk Volume 2
-------------------------------------------------------

Volume 2 of the PC Magazine Utilities contains 34
utilities ready-to-run plus comprehensive on-disk
documentation and an install program.

Installing the programs
-----------------------
If your PC has a hard disk, you can use the install
program (started by typing GO) to copy the programs
onto it. You can then change to the new directory
containing the programs and try them out. After
installing the software, you can come back to this
documentation by changing to the relevant drive
and directory and entering the command DOC.

If you have a floppy-only PC or you don't want to
put all of the programs straight onto your hard disk,
you can run them directly from this floppy. In this
case, we suggest that you make a working copy of
your original disk with the DOS DISKCOPY command and
keep your original somewhere safe as a back-up.

For more information about setting up and starting
the programs, see the "Tech Notes" document.

Program summary
---------------
The utilities on this disk cover a wide variety of
tasks... you may not need them all but you're sure
to find some useful ones. This summary lists the
programs in general categories so that you can quickly
see what facilities are available and which programs
are of most interest to you. Remember even if you
don't need a particular program now, you may find
it's just what need in future so it's worth getting
familiar with the programs.

--- General utilities ---
APPBK             Pop-up appointment book
ASC               Pop-up ASCII chart
BROWSE            Text file viewer
DRAW              Create graphics with batch files
FREEZE            Lock keyboard for security
PARSE             Count lines, words, sentences & more
PLAY              Play tunes with batch files
SCHEDULE          Pop-up diary
SUGGEST           Flash messages on-screen at intervals

--- Disk & File utilities ---
2FILE & 2FLOPPY   Floppy disk image copying
CHANGE            Search and replace text
DIRCOMP           List two directories for comparison
DIRMATCH          Full-screen compare of 2 directories
FILECTRL          Multi-format file viewer
REPEATS           Helps find duplicate files
SEARCH            Disk-wide search for word or phrase
XDIR              Pop-up a DIR listing at any time

--- DOS command and batch file utilities ---
BATCHMAN          Powerful batch file enhancer
COPYSAFE          Prevent accidents with COPY commands
MAKEBAR           Create menus for SLASHBAR
SLASHBAR          Add Lotus-style menus to any program

--- Keyboard utilities ---
TIMEKEY           Enter time and date with a single key
VISITYPE          Extend keyboard buffer

--- Video utilities ---
BLOAD & BSAVE     Save & recall screens (use with DRAW)
CS                Clear screen for 43/50 line EGA/VGA
EGA12             Set 12 line display
EGA25             Set 25 line display
EGA35             Set 35 line display
EGA43             Set 43 line display
EGA50             Set 50 line display
EGA512            Allow use of two fonts on EGA/VGA
EGACOLOR          Remap colors on EGA/VGA
EGAITAL           Create an italic font on EGA/VGA
EGAPALET          See all 64 EGA colors at once
EGAPRTSC          Enable 43/50 line PrintScreen key
FONTEDIT          Text screen font editor
SPECTRUM          Pop-up color selector
VIDMODE           Set current video mode
VIDPAGE           Set current video page
@@Tech notes
Tech Notes
PC Magazine Utilities Disk Volume 2
-------------------------------------------------------

This document provides general advice for using and
setting up the PC Magazine utilities on this disk.
It is divided into these sections...

  1. Disk contents

  2. Installing the programs

         Installing the programs from DOS

         Saving hard disk space

         Working on a floppy-only PC

         Putting the programs in your DOS command PATH

         Loading programs from AUTOEXEC.BAT

         Using TSR (memory-resident) programs

  3. Viewing and printing the documentation

  4. Customizing the utilities

         Tables of scan codes  (SS)
                   shift masks (MM)
                   color values
                   sound values

1. Disk contents
================
This disk contains the following files. These are
stored in the root directory as normal and are
ready to use. Files marked * are part of the
installation and documentation programs rather
than the utilities themselves.

 2FILE    EXE  2FILE program (part of 2FILE/2FLOPPY)
 2FLOPPY  EXE  2FLOPPY program (part of 2FILE/2FLOPPY)
 APPBK    COM  APPBK program
 ASC      COM  ASC program
 BATCHMAN COM  BATCHMAN program
 BLOAD    COM  BLOAD program (part of BLOAD/BSAVE)
 BROWSE   COM  BROWSE program
 BSAVE    COM  BSAVE program (part of BLOAD/BSAVE)
 CHANGE   COM  CHANGE program
 COPYSAFE COM  COPYSAFE program
 CS       COM  CS program
 DIRCOMP  COM  DIRCOMP program
 DIRMATCH COM  DIRMATCH program
*DOC      EXE  Documentation viewer
 DOS      BAR  Sample file for SLASHBAR
 DOS      BDF  Source file of above for MAKEBAR
 DRAW     COM  DRAW program
 DRAW     DAT  Sample DRAW drawing file
 EGA12    COM  EGA12 program
 EGA25    COM  EGA25 program
 EGA35    COM  EGA35 program
 EGA43    COM  EGA43 program
 EGA50    COM  EGA50 program
 EGA512   COM  EGA512 program
 EGACOLOR COM  EGACOLOR program
 EGAITAL  COM  EGAITAL program
 EGAPALET COM  EGAPALET program
 EGAPRTSC COM  EGAPRTSC program
 FILECTRL COM  FILECTRL program
 FONTEDIT COM  FONTEDIT program
 FREEZE   COM  FREEZE program
*GO       EXE  Install program
 MAKEBAR  COM  MAKEBAR program
*MANUALS2 TXT  Documentation for this disk
 MOVIE    DAT  Sample file for use with DRAW
 PARSE    COM  PARSE program
*PCLOGO   EXE  PC Magazine logo display
 PLAY     COM  PLAY program
 PLAY     DAT  Sample tune for PLAY
 REPEATS  COM  REPEATS program
 SCHEDULE COM  SCHEDULE program
 SEARCH   COM  SEARCH program
 SLASHBAR COM  SLASHBAR program
 SPECTRUM COM  SPECTRUM program
 STING    DAT  Sample tune for PLAY
 SUGGEST  COM  SUGGEST program
 TIMEKEY  COM  TIMEKEY program
 VIDMODE  COM  VIDMODE program
 VIDPAGE  COM  VIDPAGE program
 VISITYPE COM  VISITYPE program
 XDIR     COM  XDIR program

2. Installing the programs
==========================
To install these programs to a hard disk, use the
install program provided (started by typing GO).
Around 360K of free space is required for all of
the programs and documentation... this will be
checked for you automatically.

The install program initially offers to install the
programs to a new directory on drive C called PCVOL2.
(C:\PCVOL2).

If you wish to use a different directory or a
different hard disk, simply type in a new name. For
example, enter D:\PCMAG to put the programs into a
PCMAG directory on your D drive.

You can name an existing directory if you prefer in
which case the install program will add the new
programs to any files already there.

Once you've entered the directory name, disk space is
checked and then the files are copied across.

After installation is complete, you can return to the
opening menu (for example, to view the documentation)
or go straight to the new directory.

Installing the programs from DOS
--------------------------------
You can install all of the programs or just selected
ones using the DOS COPY command in the normal way.
For example, to add the file FILECTRL.COM to your
normal C:\UTILS directory, enter a command such as

   COPY A:\FILECTRL.COM C:\UTILS

If you do this, you might also want to copy the
files DOC.EXE and MANUALS2.TXT to a suitable
directory so that you have the documentation to hand.

Saving hard disk space
----------------------
If you are short of hard disk space, you can remove
those utilities you are not using from your hard
disk with the DOS DEL command in the normal way.
You may also want to delete the documentation files
(DOC.EXE and MANUALS2.TXT) as you can always print
out those parts you need or use the original floppy
when you need to refer to it.

Working on a floppy-only PC
---------------------------
If you do not have a hard disk, we suggest that you
make a working copy of this disk using the DOS
DISKCOPY command. You can work directly from this
copy or use the COPY command to copy those programs
you require onto your startup disk or other working
disks as necessary. For example:

  COPY B:PARSE.COM A:

  ...copies PARSE.COM from this disk to a disk in
  drive A

  A:VIDMODE 3

  ...runs the VIDMODE program from this disk in drive A

  B:
  SCHEDULE

  ... starts the SCHEDULE program from this disk in
  drive B by first changing to drive B.

Putting the programs in your DOS command PATH
---------------------------------------------
You can start the utility programs by either:

   Changing to the drive and directory they are
   in and then entering the relevant command.
   For example:

   C:
   CD \PCVOL2
   FILECTRL

or

   Giving the relevant drive and directory
   before the command name (DOS 3.xx and
   later only). For example:

   C:\PCVOL2\FILECTRL

However, it's easier if you make the programs
available from any disk and directory by
ensuring that they are in your DOS command
search path, set with the PATH command.

You can do this by either:

   Adding the directory the utilities are
   in to your normal PATH command in AUTOEXEC.BAT.
   For example, if the PATH command in your
   AUTOEXEC.BAT file reads

   C:\DOS;C:\UTILS;C:\WINDOWS

   you might change it to read

   C:\DOS;C:\UTILS;C:\WINDOWS;C:\PCVOL2

   You should be careful when making changes to
   AUTOEXEC.BAT not to disturb other commands
   already in it. See your DOS manual for full
   instructions.

or

   Copying those programs you use often to a
   directory already in your PATH command. Many
   PCs already have a directory called C:\BIN or
   C:\UTILS for small utility programs like these.
   For example, if you have a C:\BIN directory on
   drive C and use the FILECTRL program often,
   copy it across with a command like this:

   COPY C:\PCVOL2\FILECTRL.COM C:\BIN

Loading programs from AUTOEXEC.BAT
----------------------------------
Many of these utilities are designed to be loaded or
run whenever your PC is working by placing the
relevant command in the AUTOEXEC.BAT startup file.
Before doing this, we recommend that you test the
utilities out by loading them from the command line
as normal to ensure that they operate correctly
with your other software.

Please bear in mind:

* The program file must be available for
  AUTOEXEC.BAT to load it. If it is not
  in a directory already named in a PATH
  command earlier in AUTOEXEC.BAT, you
  must give the drive and directory where
  it is stored (e.g. C:\PCVOL2\XDIR)
  or copy the file to the root directory
  of the hard disk.

* The order in which resident programs are
  loaded can be significant. If there appears
  to be a conflict, try re-ordering the lines
  in AUTOEXEC.BAT.

* Always keep a startup floppy to hand and
  a back-up copy of your AUTOEXEC.BAT file
  so that if problems arise you can restore
  things to normal.

Using TSR (memory-resident) programs
------------------------------------
Many of these utilities are 'TSRs' or memory-resident
programs. These load into memory when first started
and remain there, either operating invisibly or
waiting to be called up.

TSR programs are very popular. However, the design of
DOS means that there is always a chance of conflict
between different TSR programs or between a TSR and
your main software.

To avoid problems, please note:

1. You should carefully test any new TSR program
   on your system before using it while doing
   your normal work.

2. Each TSR uses up memory. If you load too many
   at once, your normal software may not be
   able to run.

3. If you discover a conflict, loading the TSRs
   in a different order may resolve it.

4. You can change the 'hotkey' used to call up
   many of the TSRs on this disk to avoid a conflict
   with your other programs. See the manual
   for the program in question and the notes and
   tables below.

3. Viewing and printing the documentation
-----------------------------------------
The documentation for these programs is supplied in a
plain ASCII text file called MANUALS2.TXT. You can
view or print this file using normal DOS facilities
(such as TYPE, MORE and PRINT) or most word processor
or text editor programs.

However, since MANUALS2.TXT contains multiple documents
you will probably find it most convenient to view or
print it using the DOC.EXE program supplied.

To start DOC after installation, change to the
drive and directory where you installed the disk to
(e.g. enter C: then CD \PCVOL2) and then enter DOC.

See the document entitled DOC for more information.

4. Customizing the utilities
----------------------------
Most of these utilities are compact assembly language
.COM programs to make them small, fast and efficient.
This means that many of the programs do not include
built-in configuration options.

However, if you're experienced with DEBUG, you can
'patch' the programs to customize their operation.
The manual for each program will describe the ways
in which it can be customized but typically you
can do so to:

*  Customize the screen colors the program uses
   (if the display is hard to read on your screen).

*  Change the 'hotkey' used by one of the TSR
   programs to avoid a conflict with your other
   software.

*  Change defaults such as sorting order, size of
   records and so on.

To customize a utility, follow this general procedure
in conjunction with the manual for the program. (You
SHOULD NOT ATTEMPT this if you are not confident about
using DEBUG as a mistake may stop the program from
working or crash your PC.)

1. Always MAKE A COPY of the .COM file for the program
   in question as a back-up. For example, enter

   COPY POP-CAL.COM ORIGCAL.COM

2. Start DEBUG with the name of the program to modify.
   You must have the DOS DEBUG program available for
   this to work. For example, enter

   DEBUG POP-CAL.COM

   DEBUG loads the file and presents a - prompt.

3. Use the DEBUG E command to modify the areas of
   the program as described in its documentation.

   For example, the hotkey for POP-CAL can be
   changed by entering a new keyboard scan code at
   location 174. If we wanted to use Alt-P rather
   than Alt-C we can see from the scan code (SS) table
   below that we need to change this to code 19.

   This can then be entered in DEBUG with:

   E174 19

4. After making all the necessary changes, save the
   file back onto disk with the W command. Enter

   W

5. Now leave DEBUG. Enter

   Q

6. Now load and test out the new program. If it no
   longer works, delete it, restore your back-up
   copy (e.g. COPY ORIGCAL.COM POP-CAL.COM)
   and then try again.

The tables below list the values necessary for
customizing colors and hotkeys.

Keyboard scan codes
for alternative hotkeys
(Values for SS)
-----------------------

         Scan                    Scan
Key      Code (hex)    Key       Code (hex)
-------- ----------    --------- ----------
Esc       01           Z          2C
1 !       02           X          2D
@ 2       03           C          2E
# 3       04           V          2F
$ 4       05           B          30
% 5       06           N          31
^ 6       07           M          32
& 7       08           < ,        33
* 8       09           > .        34
( 9       0A           ? /        35
) 0       0B           R Shift    36
_ -       0C           PrtSc *    37
+ =       0D           Alt        38
Bkspace   0E           Spacebar   39
Tab       0F           CapsLk     3A
Q         10           F1         3B
W         11           F2         3C
E         12           F3         3D
R         13           F4         3E
T         14           F5         3F
Y         15           F6         40
U         16           F7         41
I         17           F8         42
O         18           F9         43
P         19           F10        44
{ [       1A           NumLock    45
} ]       1B           ScrlLk     46
Enter     1C           7 Home     47
Ctrl      1D           8 UpArr    48
A         1E           9 PgUp     49
S         1F           -          4A
D         20           4 LArrow   4B
F         21           5          4C
G         22           6 RArrow   4D
H         23           +          4E
J         24           1 End      4F
K         25           2 DnArr    50
L         26           3 PgDn     51
: ;       27           0 Ins      52
" '       28           . Del      53
`         29           SysReq     54
L Shift   2A           F11        57
| \       2B           F12        58

Shift Mask codes
for alternative hotkeys
(Values for MM)
-----------------------

Value  Alt  Ctrl  L-Shift  R-Shift
-----  ---  ----  -------  -------
  0
  1                           X
  2                  X
  3                  X        X
  4           X
  5           X               X
  6           X      X
  7           X      X        X
  8     X
  9     X                     X
  A     X            X
  B     X            X        X
  C     X     X
  D     X     X               X
  E     X     X      X
  F     X     X      X        X

X signifies that this key must pressed. For example,
to use Left Shift and Right Shift for the hotkey,
the value to use for MM would be 3.

Color values
---------------
Black     0
Blue      1
Green     2
Cyan      3
Red       4
Magenta   5
Brown     6
Lt Gray   7
Dark Gray 8
Lt Blue   9
Lt Green  A
Lt Cyan   B
Orange    C
Violet    D
Yellow    E
White     F

A full color value is two hex digits, the first
for the background color and the second for the
foreground. For example, bright white on a dark
blue background is 1F. Do not choose light colors
(values larger than 7) for the background as it
will produce a blinking display in most of the
programs.
@@2FILE & 2FLOPPY
2FILE & 2FLOPPY                            Steve Cooper
Floppy disk image copying                  & Ken Hipple
-------------------------------------------------------

Purpose
-------
2FILE creates an exact, sector-by-sector copy of a
floppy disk as a single hard disk file for modem
transmission, multiple floppy duplication and so
forth. 2FLOPPY provides the opposite capability,
formatting and writing a new floppy disk from a file
produced by 2FILE. 2FILE and 2FLOPPY support all
5.25-inch and 3.5-inch DOS diskette formats.

Format
------

    2FILE d: [e:][\path\]filename[.ext]

and

    2FLOPPY d: [e:][\path\]filename[.ext]
            [/number] [/q] [/v]

Using 2FILE
-----------
The d: parameter is the drive containing the floppy
disk to be copied, and filename is the name to be
given to the 2FILE copy. A default .FLP extension will
be supplied if none is specified, and the
currently-logged hard drive and path will be used for
storage unless otherwise specified with the optional
e: and \path\ parameters. The hard disk must have
enough space to hold the entire floppy plus a 13-byte
header.

Files created with 2FILE can be compressed before
modem transmission with ARC, PKARC, PKZIP and similar
utilities.

Using 2FLOPPY
-------------
The d: parameter is the drive containing the floppy
disk to be formatted and written to. The filename is
that of the 2FILE source file, which is assumed to be
located on the currently-logged hard disk and
directory unless the e: and/or \path\ parameters are
supplied. The 2FILE source is presumed to have the
default .FLP extension unless an .ext is specified.

The optional /number parameter is used when a number
of floppy diskettes are to be made from the same 2FILE
source. Values for /number may range from 1 through
32,767 (default: 1). The user will be prompted with a
message and a beep to insert new floppies, as needed.
To silence the beep, use the /q parameter. Copies are
verified unless the /v parameter is specified. The /q
and /v switches may be entered in either upper- or
lower-case.

Notes
-----
1. Just like the DOS DISKCOPY command, 2FILE and
   2FLOPPY produce exact copies of a disk,
   preserving any file fragmentation on the disk.
   If you're sending a .FLP file via modem to
   someone, you might want to ensure that your
   original disk is unfragmented before you
   use 2FILE on it.

2. 2FLOPPY formats and writes over the destination
   disk with the 2FILE-produced file. ANYTHING
   ALREADY ON THE DISK WILL BE LOST so make sure
   you only use it on a new or unwanted floppy.
@@APPBK
APPBK                                Michael J. Mefford
Pop-up appointment reminder
-------------------------------------------------------

Purpose
-------
Reminds you of appointments at the times you specify;
provides additional optional hourly chime and
continuous on-screen date/time display.

Format
------

    APPBK

or

    APPBK [f,][b,][s,][h,][a]


Remarks
-------
APPBK is a memory-resident utility that is normally
loaded through your AUTOEXEC.BAT file. It must be
loaded after any system time/date setting routines,
and before loading SideKick (if used).

Pressing Alt-R opens the on-screen APPBK window, in
which you enter your appointments. Enter times as
2:00, not 02:00, and include the A or P before the M
in the window. You can edit your appointment list
using the F-1 and F-3 keys, by overstriking letters,
and with the deleting backspace key. F-2 toggles an
hourly chime on and off; F-4 similarly toggles a
continuous on-screen display of the time and date.

An alarm will sound at the appointment times
specified. Additionally, should you be away from your
desk and not hear the reminder, your first keystroke
following the alarm will pop up the APPBK window. To
close the window, press Esc or the Alt-R (default)
APPBK trigger key.

At the time it is loaded, APPBK may be given
alternative parameters for its color (f), border color
(b), trigger-key scan code (s), hourly chime frequency
(h), and alarm frequency (a). The default values are
7,112,19,2217,2960. Tables of acceptable alternative
parameter values are give below. In entering 
parameters, separate each with a comma. Commas alone 
may be used for initial parameters you do not wish 
to change.

Example
-------

    APPBK ,,,1760

would change only the frequency (tone) of the
hourly chime (the h parameter).

Parameter Tables

COLOR CODES (f and b parameters)

Color Adapter
-------------
fore-   back-            fore-
ground  ground  color    ground  color
  0       0     Black      8     Gray
  1      16     Blue       9     Light Blue
  2      32     Green     10     Light Green
  3      48     Cyan      11     Light Cyan
  4      64     Red       12     Light Red
  5      80     Magenta   13     Light Magenta
  6      96     Brown     14     Yellow
  7     112     White     15     Bright White

Monochrome Adapter
------------------
fore-   back-
ground  ground  color
  0       0     Black
  7     112     White
 15      NA     Bright White


Add foreground color to the background color to
arrive at parameter number. For example, blue letters
on cyan (light blue) would be 48 + 1 = 49.

Defaults are 7 (white on black) for the datebook field
(foreground) and 112 (black on white) for the frame
(border).

SCAN CODES FOR ALT-KEY COMBINATIONS (s parameter)
Code Key   Code Key   Code Key   Code  Key
 16   Q     30   A     44   Z     120   1
 17   W     31   S     45   X     121   2
 18   E     32   D     46   C     122   3
 19   R     33   F     47   V     123   4
 20   T     34   G     48   B     124   5
 21   Y     35   H     49   N     125   6
 22   U     36   J     50   M     126   7
 23   I     37   K                127   8
 24   O     38   L                128   9
 25   P                           129   0
                                  130   -
Default is 19 (Alt R)             131   =

TONE/FREQUENCY (h and a parameters)
A    55  110  220  440   880  1760  3520   1740  14080
A#   58  117  233  466   932  1857  3714   7428  14856
B    62  123  247  494   988  1976  3952   7904  15808
C    65  131  262  523  1046  2093  4186   8372  16744
C#   69  139  277  554  1109  2217  4434   8868  17736
D    74  149  294  587  1175  2349  4698   9396  18792
D#   78  156  311  622  1245  2489  4978   9956  19912
E    82  165  330  659  1319  2637  5274  10548  21096
F    87  175  349  698  1397  2794  5588  11176  22352
F#   93  185  370  740  1480  2960  5920  11840  23680
G    98  196  392  784  1568  3136  6272  12544  25088
G#  104  208  415  831  1661  3322  6644  13288  26576

Middle C is 262. The defaults are 2217 (C#) for the
hourly chime and 2960 (F#) for the alarm chime.

Note
----
1. While APPBK is compatible with most applications
   programs and resident utilities, complete
   compatibility cannot be assured. It cannot, for
   example, be  used with XyWrite.
@@ASC
ASC                                        Jeff Prosise
Pop-up ASCII Chart
-------------------------------------------------------

Purpose
-------
Provides a pop-up ASCII chart showing decimal,
hexadecimal, and character equivalents for the full IBM
character set.

Format
------

    ASC

Remarks
-------
ASC is a memory-resident utility that is normally
loaded at boot-up, via your AUTOEXEC.BAT file. Once
loaded, pressing Alt-A pops up the first page (32 ASCII
codes) of the display window over any currently active
applications program. The Up- and Down-Arrow, PgUp and
PgDn, and Home and End keys access the remaining ASCII
display pages. Pressing Esc closes the window,
restoring the original screen display.

In operation, ASC requires approximately 2.5K of RAM.
It is compatible with most applications and TSR
(terminate and stay resident) programs that do not
themselves require the Alt-A key combination.

Notes
-----
1. Users familiar with using DEBUG can modify the
   default border, text, and header colors of ASC.
   These values, initially 0Fh, 1Fh, and 1Eh,
   respectively, are located at offsets 014D through
   014F in the .COM file. For use with a composite
   monochrome display, the values 70h, 07h, and
   07h are suggested.
@@BATCHMAN
BATCHMAN                             Michael J. Mefford
Batch file enhancer and multi-function utility
-------------------------------------------------------

Purpose
-------
BATCHMAN is designed both to give your batch files
significantly more power and to add many of the
refinements we all wish DOS provided. You can check the
DOS version, available memory, or display type and then
branch accordingly. You can create colorful menus that
branch on a user keypress. And, among its many other
capabilities, BATCHMAN will let you adjust the keyboard
typematic rate and tame the grating DOS beep or turn it
into a tune.

BATCHMAN is actually a collection of 48 batch file
enhancement utilities, all rolled into one 6K program.
This provides more than convenience: if BATCHMAN's
utilities were stored separately, at a minimum one
cluster each, they'd take up about 100K of disk space.

ERRORLEVELS
-----------
The key to BATCHMAN's operations is the ERRORLEVEL
code, a number that programs can report to DOS when
they terminate and that can be acted upon from a batch
file. ERRORLEVEL is abbreviated as EL for the
remainder of this documentation.

An EL can have a value between 0 and 255. Each of the
BATCHMAN commands returns information as an EL. An
explanation of the syntax of each of the BATCHMAN
commands and the ELs they return will be found below.

Format
------

    BATCHMAN [command] [arguments] [/R]

Entering BATCHMAN without any parameters (or with an
invalid parameter) will bring up a multi-screen display
that lists all the BATCHMAN commands. The optional
arguments are parameters for any given command. If you
add the optional /R switch, BATCHMAN will display the
EL returned from the command. The Report option will be
most helpful when you are designing and debugging your
batch files. Be sure to place BATCHMAN in a directory
included on the DOS PATH so your batch files can find
it.

THE BATCHMAN COMMANDS
---------------------
The following conventions are used in the explanations
below. The commands are listed first, followed by any
parameters they might accept, followed by the EL the
command will return. The EL is given in curly brackets
to make it clear that it is not part of the command
syntax and should not be typed in.

For example:

    CLS [nn]  {EL=0}

Entered without the optional nn color argument,
the command:

    BATCHMAN CLS

will clear the screen with whatever color it finds at
the current cursor position. This provides the most
flexibility when you plan to distribute a BATCHMAN
batch file to other systems because it retains the
user's custom color scheme.

If you wish to control the CLS color, just add the
color argument nn, where nn is a decimal or
hexadecimal value. Hexadecimal numbers need a suffix of
"h" to distinguish them from decimal. Selecting a
color in hex is easier than decimal because each of
the 16 possible values for each of the background and
foreground colors fits into a single digit: the first
digit is background, the second foreground.

To clear the screen so that subsequent DOS output will
use blue letters on a light gray background, for
example, you would enter:

    BATCHMAN CLS 71h

The first number (7) is the background color, and the
second (1) is the foreground color. To do the same
using a decimal number requires a little maths: the
background color is multiplied by 16 and added to the
foreground. In the above example, the decimal
equivalent would be (7 * 16) + 7 = 113, so the
equivalent command in decimal would be:

    BATCHMAN CLS 113

Like its DOS counterpart, BATCHMAN's CLS also homes the
cursor to the top left corner. Unlike the DOS CLS,
however, BATCHMAN's will clear the whole screen
properly in video modes such as the EGA/VGA 43/50 line
modes.

    CECHO [C] [nn,]string{EL=0}

CECHO is similar to the DOS ECHO command except you can
choose the color of the echoed string. The nn color
value is entered in the same manner as with CLS, and
again, if you don't enter a color value, BATCHMAN will
use the currently specified color. To echo a "Zowie!"
to the display in an eye-catching blinking yellow on
red, you would enter:

    BATCHMAN CECHO CEh,Zowie!

The C (hex) value for the background color normally
displays as orange for a foreground color. When used
as a background color, however, it displays as the
blinking low intensity counterpart, red. Any high
intensity color selected for the background will
select a blinking color.

The optional C parameter shown in CECHO syntax (don't
confuse it with the hex C color value in the example
above) stands for "no carriage returns." Normally,
both CECHO and the DOS ECHO move to the next line after
echoing a string. At times this is not desirable. For
example, you might wish to echo two strings, with
different colors, on the same line. With BATCHMAN
you can suppress the carriage return by adding a
solitary C as the first argument. For example, to
display a red on yellow blinking "Zowie!" followed by a
normal red on yellow "Batchman!" on the same line your
batch file would consist of:

    ECHO OFF
    BATCHMAN CECHO C CEh,Zowie!
    BATCHMAN CECHO 4Eh,Batchman!

You can suppress the carriage return to prevent the
display from scrolling when you echo to the last line
of the display.

    SETLOOP  [n]  {EL=0}
    .
    .
    DECLOOP  {EL=SETLOOP-1}

You use the SETLOOP and DECLOOP commands when you want
to repeat a set of batch file commands. SETLOOP sets a
loop counter to the n argument, which can be a decimal
number between 0 and 255. Once the counter is set, the
BATCHMAN DECLOOP command will decrement the counter
each time it is executed and return the new value of
the loop counter as an EL. The short batch file:

    ECHO OFF
    BATCHMAN SETLOOP 10
    :HERE
    BATCHMAN CECHO ZONK!
    BATCHMAN DECLOOP
    IF ERRORLEVEL 1 GOTO HERE

will echo "ZONK!" to the display 10 times before
terminating. The batch processor will branch to the
HERE label as long as EL is 1 or greater.

Programmers may wonder where the loop counter is stored
while other commands are executing. For the SETLOOP and
PUSHPATH commands (PUSHPATH/POPPATH are discussed below)
BATCHMAN creates a small TSR of approximately 500 bytes.
The loop counter uses one byte for its storage; the
balance is reserved for path strings. When the loop
counter becomes zero, the BATCHMAN TSR data area is
returned to the system memory pool (unless PUSHPATH
is also using the data area). Note that since the loop
counter is only one byte, you can not do loop nesting.

If you exit a batch file before SETLOOP has decremented
to zero, the TSR data area will not be released. You
should construct your batch files so that any early
exit from a loop will execute a SETLOOP 0 to force a
recovery of the TSR data area. BATCHMAN is smart enough
not only to find its previous TSR data, but will
prevent the creation of another if you try to enter two
SETLOOP commands.

    QFORMAT [d:] [N]

    {EL=0 if successful; EL=1 if not.}


QFORMAT is designed to wipe out all the files and
subdirectories on a floppy disk at a single stroke. To
keep you from accidentally trashing your hard disk, the
command will only accept A: or B: as drive arguments.

As a further precaution, QFORMAT warns you that all
data will be lost and requires that you press Y and
Enter to confirm. Any other keypress will abort the
process. If you don't want BATCHMAN to pause and ask
for your approval, however, you can add the optional N
argument to the command. The N stands for No Ask. Use
this option with caution!

QFORMAT will work only on diskettes that have already
been formatted by DOS. The DOS FORMAT command puts
vital information about the media type, number of
clusters per FAT, and so forth, in the boot sector of
the disk. BATCHMAN's QFORMAT command uses this
information to find and place zeros in the FAT and root
directory sectors of the disk.

The reason why QFORMAT can be so fast is that it
doesn't have to do the same work as the DOS FORMAT
command. FORMAT not only does a low level format but
also writes over the entire data area of the disk. It's
the low-level-and-data-format process that takes
forever. A low level format really needs be done only
once, and QFORMAT blithely skips that step. QFORMAT is
sophisticated enough to preserve bad sector
information, however.

    PUSHPATH
    {EL=0 if successful; EL=1 if not}
    .
    .
    POPPATH
    {EL=0 if successful; EL=1 if not}

PUSHPATH saves the current drive and directory, which
can then later be restored with POPPATH. Typically, a
batch file that executes an application includes a DOS
CD command (often a change of drive as well) move
operations to the place where the application resides.
After the application terminates, it's usually
desirable to return to the original path.

By way of example, to run Lotus 1-2-3 on drive D: and
then return to the default path afterwards, your batch
file would look something like this:

    BATCHMAN PUSHPATH
    D:
    CD \123
    123
    BATCHMAN POPPATH

PUSHPATH saves the current path in a TSR data area,
just as the SETLOOP command does. While only one byte
is reserved for SETLOOP's loop counter, however,
BATCHMAN's TSR data area allows stacking up several
paths with PUSHPATH. Subsequent POPPATH commands will
retrieve the paths in a LIFO (Last In First Out) stack
basis.

Suppose, for instance, that you're currently in your
directory and you issue the following commands:

    BATCHMAN PUSHPATH
    CD \DOS
    BATCHMAN PUSHPATH
    CD \PCMAG
    BATCHMAN POPPATH
    BATCHMAN POPPATH

In this sequence, the first POPPATH puts you back into
the \DOS subdirectory, and the last POPPATH restores
you to the root directory from which you started.

The number of path layers that can be stored will vary
with the length of each path pushed onto the stack.
BATCHMAN's TSR area reserves 408 bytes for paths, which
allows for 6 levels of nested paths if each path is the
maximum 65 characters allowed by DOS. Shorter path
names will allow nesting greater than 6 levels.

BATCHMAN returns an EL of 1 if it finds the stack too
full for another PUSHPATH or if the stack is already
empty with a POPPATH. Otherwise, the EL returned is
zero. When the last path is popped off the stack, the
TSR data area is discarded and returned to the DOS
memory pool.

    ANSI  {EL=0 if ANSI found;
    EL=1 if not found}

This BATCHMAN command is designed simply to determine
whether ANSI.SYS is or is not installed. If the EL is 1
you can then branch around any ANSI.SYS escape
sequences contained in your batch files. BATCHMAN is
smart enough to detect ANSI.SYS, but it will not find
other ANSI.SYS emulators, such as DesqView's DV-ANSI.

    BEEP [m,n[;m,n]...]{EL=0}

The BATCHMAN BEEP command gives you a great deal of
flexibility in controlling the frequency and length of
the sound DOS emits in response to a Ctrl-G character.
The m,n beep arguments are decimal numbers and are used
in pairs, separated by a comma. The m value represents
the frequency (in Hz.), and n is the number of 1/18th
second increments that comprise the duration.

The command for a middle C beep of a 1/2 second, for
example, would be:

    BATCHMAN BEEP 262,9

By separating the argument pairs with semicolons, you
can produce a series of tones with the same BEEP
command. You might, for example, try:

BATCHMAN BEEP 392,3;523,3;659,3;784,3;10,3;659,3;784,12

The lowest valid frequency is 19, a very low buzzing
sound. You can use a value less than 19 to create
pauses between tones: no sound will be emitted, but the
duration argument is executed, effectively producing a
programmable delay between notes.

If you omit all arguments, BEEP defaults to 1046,1 --
a C note for 1/18 of a second. The DOS Ctrl-G beep is a
frequency of 886 that lasts for one second. Musically,
a frequency of 886 is an out-of-tune A, which probably
explains why it grates on so many ears.

    WAITTIL hh:mm[ss]

    {EL=0 if successful; EL=1 if aborted}

WAITTIL provides a convenient way to pause until a
certain time of day. The hh:mm:[ss] argument is the
time in hours, minutes, and optionally seconds.
BATCHMAN will wait until the specified time arrives
but you can manually abort the wait by entering any
keystroke. A typical application for WAITTIL would be
to execute an electronic bulletin board communications
program that would automatically download messages late
at night when rates are lower.

    WAITFOR [mm:]ss

    {EL=0 if successful; EL=1 if aborted}

WAITFOR simply pauses for a specified number of minutes
(mm) and seconds (ss). You can omit the minute part of
the argument if you desire. As with WAITTIL, the
WAITFOR delay can be over-ridden by pressing a key.

    CURSORTYPE [m,n]

You can use CURSORTYPE either to create a cursor size
that suits your taste or to restore the normal
underline cursor after an application alters it.
Entering CURSORTYPE without any arguments will default
to the standard underline cursor. To create a custom
cursor, you supply the m,n arguments as the start and
stop line values. These values can be either decimal or
hex; for hex input, add an "h" suffix to the number.

The top of the character box is logical line zero;
successively-numbered lines increment downward. The
valid scan line values used for m and n are 0-7 for a
CGA, 0-13 for a monochrome or EGA, and 0-15 for a VGA.
The default underline cursor start/stop lines are 6,7
for a CGA, 11,12 for a monochrome or EGA, and 13,14 for
a VGA. To set an EGA solid block cursor, for example,
enter:

    BATCHMAN CURSORTYPE 0,13

Note that the EGA BIOS on some video boards will
attempt to override your selections. BATCHMAN
temporarily turns off this BIOS EGA emulation logic for
all video boards when the cursor type is set, and this
seems to work for most systems. However, if entering
CURSORTYPE without arguments does not give you the
normal default underline cursor, you can explicitly
request an underline cursor that fits your display. You
may need to do this for video modes other than the
normal 25 line modes. A "wrap around" cursor, in which
the stop line has a lesser value than the start line,
is supported by the hardware of only some video
systems.

    BREAK                 {EL=0 if OFF; EL=1 if ON}

The BATCHMAN BREAK command returns the current state of
DOS's Ctrl-Break checking. You can change the state of
BREAK with the DOS command of the same name.

    DRIVEEXIST d:         {EL=1 if exist; EL=0 if not}
    DIREXIST directory    {EL=1 if exist; EL=0 if not}

These two BATCHMAN commands are used to return an EL of
1 to your batch files if the specified variable exists.

    ISVOL [d:]volume      {EL=1 if exist; EL=0 if not}

Similarly, this command returns an EL of 1 if a
particular disk volume exists on the named drive.

    YEAR      {EL=year from 1980 (0-199), where 0=1980}
    MONTH     {EL=(1-12)}
    DAY       {EL=(1-31)}
    WEEKDAY   {EL=(0-6), where Sun=0; Sat=6}
    HOUR      {EL=(0-23)}
    MINUTE    {EL=(0-59)}
    SECOND    {EL=(0-59)}

This group of BATCHMAN commands returns the system time
and date. Note that you can obtain a relatively fine
resolution of the time.

    VIDEOMODE             {EL=(0-19)}

The EL returned by the VIDEOMODE command allows you to
determine which of the possible screen modes listed in
Figure 3 is currently being used by your display.

    ROWS                  {EL=display rows}
    COLS                  {EL=display columns}

These obvious but very handy commands return the
current number of rows or columns displayed.

    SETCURSOR m,n         {EL=0}

By supplying values for m (the row) and n (the column)
you can use SETCURSOR to place your cursor at the
specified screen location. By using SETCURSOR in
concert with CECHO you can precisely control the
location of your messages. For example, to display
"Gotham City" in blue in the middle of the screen, you
would create the following batch file:

    ECHO OFF
    BATCHMAN SETCURSOR 12,35
    BATCHMAN CECHO 1,Gotham City

Be sure to include the ECHO OFF command, both so that
DOS won't spoil your display by echoing the commands.

A related use of SETCURSOR is to hide the cursor. You
can do this by setting the cursor to display on line
26, which is off screen. Be sure to issue a second
SETCURSOR command that puts the cursor back on screen
once the hidden cursor is no longer needed, or you
won't be able to see what you type! If you forget,
don't panic. Just press Esc, blindly type CLS and press
Enter, and things will return to normal.

    E43V50           {EL=0 if successful; EL=1 if not}

This BATCHMAN command loads the 8x8 BIOS font for an
EGA or VGA monitor. This changes the number of lines
displayed to 43 (EGA) or 50 (VGA}. You can use the DOS
MODE command to return to the normal 25-line display.

    PRTSC            {EL=0}

This command will execute a printer screen dump exactly
as if you had pressed Shift-PrtSc on an 83-key keyboard
or the dedicated Print Screen key on a 101-key
keyboard.

    COMPARE string1 string2

    {EL=0 if match; EL=1 if no match}

The BATCHMAN COMPARE makes a case insensitive
comparison between two strings. For most purposes
you'll probably want to use COMPARE instead of the case
sensitive DOS batch command:

    IF string1==string2

With the DOS IF string comparison a non-case sensitive
match one test for uppercase and one for lowercase.
Even this does not guarantee a match if the string is a
mixture of upper and lower case. COMPARE solves this
problem. Note that the BATCHMAN COMPARE does not need
the double equal signs the DOS IF command uses.

    CANCOPY filespec [d:]

    {EL=0 if room to copy; EL=1 if not}

Before you copy a file or a number of files to another
drive (especially a floppy disk drive), you can use
CANCOPY to see if there is enough room for all the
specified files. The filespec you supply can use the
DOS ? and * wildcards. If you don't specify the target
drive, the default drive is checked. Thus, for example,
to check whether the collection of PC Magazine
utilities you keep in a directory called PCMAG on drive
C: will fit onto a floppy, you would enter:

    BATCHMAN CANCOPY C:\PCMAG\*.* A:

BATCHMAN returns an EL of 0 if there is room; otherwise
a 1 would be returned. If you enter this from the DOS
command line, you'll want to include the /R option to
see the EL returned on screen.

    WARMBOOT
    COLDBOOT

As their names imply, WARMBOOT and COLDBOOT reboot your
system. WARMBOOT does the same thing as pressing
Ctrl-Alt-Del; COLDBOOT is like hitting the big red
switch. A COLDBOOT does a memory check (among other
things) that WARMBOOT does not, and it takes a lot more
time. Of course, be forewarned that with either of
these commands all unsaved data in RAM memory will be
lost. Note that WARMBOOT and COLDBOOT may not work on
some non-compatible systems.

    SHIFT ALT | CTRL

    {EL=1 if depressed; EL=0 if not}

This command returns the state of either the Alt or
Ctrl key. For example,

    BATCHMAN CTRL

returns an EL of 1 if the Ctrl key is currently
depressed. You can use the SHIFT command along with the
BATCHMAN GETKEY command without arguments to detect
alternate key presses. (See GETKEY, below, for an
example.)

    NUMLOCK [ON | OFF]   {EL=0}
    CAPSLOCK [ON | OFF]  {EL=0}
    SCROLLOCK [ON | OFF] {EL=0}

These three self-explanatory commands toggle the
current shift state of the NumLock, CapsLock or
ScrollLock keys when used without the ON or OFF
options. They explicitly turn the three keys on or off
if the optional arguments are supplied.

Thus, for example:

    BATCHMAN NUMLOCK

will toggle the NumLock state on if it was off or off
if it was on. Entering

    BATCHMAN NUMLOCK OFF

will turn the NumLock state off regardless of whether
it is currently on or off. This latter would be a
useful line in your AUTOEXEC.BAT if you use the numeric
keypad for cursor navigation instead of number entry.
Note that on some keyboards the LED indicator lights
may not faithfully track changes in shift status.

    RENDIR old new {EL=0 if successful; EL=1 if not}

The RENDIR command will rename a directory, but only on
systems using DOS 3.0 or later. To use it simply enter
the path of the old directory and the new name.

For example, to change the name of a temporary
directory named TMP on the C: drive to a permanent
name, say, ROBIN, you would enter:

    BATCHMAN RENDIR C:\TMP C:\ROBIN

Be sure to include the complete path for both the old
and new directory names if the directory is other than
the default.

    ROMDATE  {EL=0}

ROMDATE displays the eight bytes of the BIOS date at
address FFFF:0005 of the ROM BIOS. Usually, the display
will be something like 10/07/87, but some clone BIOSs
do not have a date. If no ASCII numbers are found,
BATCHMAN displays nothing.

    GETKEY ['string' n]

    {EL=scan code if no ['string' n] list;
     else EL=position in list.}

There are probably hundreds of versions of the batch
file GETKEY program. They return the scan code of the
next key you press as an EL. If you enter the BATCHMAN
GETKEY command without the optional (bracketed)
arguments, it will do the same thing.

Entered without arguments, GETKEY can also be used with
the BATCHMAN SHIFT command to detect Alt- or Ctrl- key
combinations. The scan code for the "Q" key is 16. To
check for an Alt-Q keypress (perhaps as a Quit key
command), you would use the following batch file:

    ECHO OFF
    GETKEY
    BATCHMAN GETKEY
    IF NOT ERRORLEVEL 16 GOTO GETKEY
    BATCHMAN SHIFT ALT
    IF NOT ERRORLEVEL 1 GOTO GETKEY
    ECHO Alt-Q was pressed.

GETKEY's optional key list provides still another kind
of functionality with its optional key list. The
information you need may not be the scan code of a
given key, but rather its position in a string. If you
supply the optional 'string' argument to GETKEY,
BATCHMAN will wait either until one of those keys
listed has been pressed or until you break out of the
command with Ctrl-Break or Ctrl-C. An example may
helpful here. With the command:

    BATCHMAN GETKEY 'yn'

BATCHMAN will wait until either the "Y" or the "N" key
or one of the break keys mentioned above is
detected. All other keypresses are ignored, and if the
break-out keys are pressed, the EL returned will be
255. GETKEY is not case sensitive, so if either "Y" or
"y" is pressed, the EL will be 1, since the "y" is the
first character in the string of valid keypresses. For
"N", an EL of 2 will return.

The string must be enclosed in a pair either of single
or double quotes. If you want the single quote included
as a valid keypress, enclose it in double quotes and
vice versa for double quotes, as in the following
example:

    BATCHMAN GETKEY '"'

You can also include the function keys (even the F11
and F12 keys of the extended keyboard) in the GETKEY
list. The function key numbers are listed without
quotes, (they are designated by the n in the command
syntax above), and may or may not be further identified
with a leading "F." Multiple function keys are
delimited by either a space, comma or semicolon. To add
the F1 and F2 as valid keys to the "yn" string example
above, you would enter either:

    BATCHMAN GETKEY "yn" F1 F2

or just

    BATCHMAN GETKEY "yn" 1 2

If F1 is now pressed, the returned EL will be 3, since
F1 is the third entry in the list.

    DOSVER           {EL=(major*32)+minor}

DOSVER returns an EL representation of the DOS version
in use. DOS version numbers have two parts, the Major
version (the number to the left of the decimal point)
and the Minor version (the number to the right). For
DOS version 3.10, then, 3 is the major and the 10 is
the minor. Since the largest EL number is 255, the DOS
version number does not fit conveniently into an EL.
For DOS 3.10, for example, if the dot is discarded the
remaining 310 is too large for an EL.

Of course, BATCHMAN could be content to return only the
major number, truncating anything after the dot, or
even the first digit after the dot. But that would be
less than sufficient for some applications. So instead,
the DOSVER command compresses the version number by
multiplying the major number by 32 and adding it to the
minor number. With DOS 3.30 the result will be (3*32)+
30=126; with DOS 4.00 it would be 128. If there had
been a DOS version 3.32 we would have a problem of
course, since this would also return 128. Historically
speaking however, we are safe here.

    MAINMEM n | R  {EL=0 if enough}
    EXPMEM  n | R  {EL=0 if enough}
    EXTMEM  n | R  {EL=0 if enough}

The arguments for these three memory commands can be
either a decimal number, n, or an R. The decimal
argument is used to check whether the desired amount of
memory (in KB) is free. If BATCHMAN finds that there is
enough free memory to meet the request, the EL will be
0. Thus, if an application needs 512K bytes of the 640K
maximum possible with DOS, you would enter:

    BATCHMAN MAINMEM 512

The EL will return 0 if there are at least 512K bytes
free; otherwise, a 1. Your batch file can then branch
to an error message if there is not enough memory to
run the application. Note that these memory commands do
not allocate the memory. They only check if it is free.

The alternative R argument stands for Report and will
display the current free memory of the type requested
on the screen. To see how much free expanded memory you
have, for example, enter:

    BATCHMAN EXPMEM R

The report option of the three types of memory will go
nicely with BATCHMAN's ROMDATE command in a system
information batch file.

    DISPLAY              {EL=display type}

The DISPLAY command will report on the type of display
your system has installed. The values returned by
DISPLAY as EL codes are:

    1=MDA
    2=CGA
    4=EGA color
    5=EGA mono
    6=PGS
    7=VGA mono
    8=VGA color
    11=MCGA mono
    12=MCGA color

    CPU  {EL=CPU type}

Similarly, the CPU command returns an EL that indicates
the microprocessor used by your machine. The specific
EL numbers are: 1=8086/8088; 2=80186; 3=80286; and
4=80386.

    WINDOW m,n,w,h[,c,b]

    {EL=0 if successful; EL=1 if not}

The powerful WINDOW command displays screen boxes. It
provides several parameters and options. The first two
decimal numbers (m,n) are the row and column of the top
left hand corner of the window. The next two decimal
numbers (w,h) are the desired width and height of the
window (including the border characters.)

The smallest size that WINDOW allows is 2 characters in
width and height. The optional fifth parameter, c, can
be either a hexadecimal or decimal number for the
color of the window. If no color argument is
supplied, the current color of the screen is used by
default. The last parameter, b, sets the type of border
used to surround the window. If no parameter is found,
spaces are used. If you enter a minus sign for b, a
single-line box character will be drawn. An equals sign
for b will produce a the double-line box character. In
all cases, the center of the window is cleared with
spaces of the chosen color. For example, the command

    BATCHMAN WINDOW 1,1,80,25,17h,=

will create a blue window with white double line box
characters that will fill the entire screen, making a
nice menu frame. Text could then be added with the
BATCHMAN SETCURSOR and CECHO commands.

    TYPEMATIC [m,n | N]

    {EL=0 if valid parameters; EL=1 if not}

    m=typematic rate (0 - 31); larger m=faster rate
    n=initial delay  (0 - 3); larger n=longer delay
    N=normal: m=20; n=1; default: m=25; n=0

TYPEMATIC works only with keyboards that support
adjustable typematic (automatic key repeating) rates at
the BIOS level. That includes most machines, starting
with the AT, but not all clones.

The first optional decimal parameter, m, is a number
between 0 and 31 and represents the desired typematic
rate. The larger the m value, the faster your keyboard
will repeat keystrokes. The second parameter, n, has a
range of 0-3, and sets the initial delay. This delay is
the length of time you must hold down a key before it
begins repeating. The larger the delay value the longer
the delay. The delay parameters are in increments of
1/4 second, with 0=1/4 and 3=1 second. The typematic
parameters are divisors and cannot be easily be
translated into fractions of a second, however, and so
should be thought of only as a gradient scale.

If you don't enter any parameters, TYPEMATIC defaults
to a repeat rate of 25 and a delay of 0. The 25
translates into about 17 characters per second with
an initial delay of 1/4 second. You can restore the
typematic rate to the normal hardware defaults with:

    BATCHMAN TYPEMATIC N

@@BLOAD & BSAVE
BLOAD and BSAVE
Save and reload the screen display
-------------------------------------------------------

Purpose
-------
Similar to the BASIC commands of the same name, these
two programs provide a simple ability to save and
reload screen displays. They are included here for
use with the DRAW program.

Format
------

    BSAVE filename

then

    BLOAD filename

Remarks
-------
BSAVE stores the currently displayed screen in a file.
The BLOAD command can then be used to reload it. If
the screen is a graphic image, you should use the
VIDMODE command included on this disk to set
the appropriate display mode before using BLOAD.

BLOAD and BSAVE can be used in batch files to
quickly display complete screens or drawings.
See the DRAW command for more information.
@@BROWSE
BROWSE                                  Charles Petzold
Browse text files on-screen
-------------------------------------------------------

Purpose
-------
BROWSE displays any plain text file on-screen and lets
you scroll forward and backward without having to start
a word processing program.

Format
------
 
    BROWSE [d:][path]filename[.ext] [/W]

Remarks
-------
The DOS TYPE command does not permit you to scroll
ahead or go back to previously displayed material in a
file. It also exits at the first instance of Ctrl-Z
(ASCII 26, conventionally used as an End-of-File
marker), making it impossible to scan binary (e.g.
.COM) files for error messages, copyright notices, and
the like.

BROWSE overcomes these shortcomings, giving you the
chance to go immediately to the top or to the end of a
file (the Home and End keys, respectively), to the
succeeding or previous screen (PgUp and PgDn), or to
move up or down a line at a time (Up Arrow or Down
Arrow). To return to DOS, simply press the Escape key
or Ctrl-Break.

Wide displays, e.g. a spreadsheet file, are not broken
at 80 columns, as with TYPE. BROWSE ignores carriage
returns (ASCII 13), breaking lines only on line feeds
(ASCII 10). The Right Arrow key scrolls the display to
the right in eight-character increments (see Note 3
below) to view wide displays; the Left Arrow key
returns you immediately to column zero.

BROWSE expands tab characters (ASCII 9) to the next
eight-character boundary, but does no other character
processing unless the /W parameter is specified. Use of
the /W option permits using BROWSE with WordStar files.

Notes
-----
1. BROWSE can run under TopView or Windows; specify
   "writes directly to screen" in the .PIF and use the
   default 52K memory requirement. (The program
   actually requires only approximately 33K to run.)

2. BROWSE is compatible with the IBM Monochrome, CGA,
   EGA and VGA displays, and will run in the 43- or
   50-line mode. Files prepared with word-processors
   that employ a one-line-per-paragraph format (such
   as Microsoft Word and XyWrite) may require
   excessive right scrolling, however.

3. BROWSE can be patched with DEBUG so that its
   right-scroll jumps by more than the default eight
   characters. The address to patch is 10F in the .COM
   file. After entering DEBUG BROWSE.COM type:

    E 10F

   and the default value (08h) will appear. Type the
   desired hexadecimal number (28 for a 40-column
   increment; 50 for an 80-column increment) and press
   <Enter>. Then type W<Enter> to write to the disk and
   Q<Enter> to quit DEBUG.

4. Requires DOS 2.0 or later.
@@CHANGE
CHANGE                               Michael J. Mefford
Fast text search-and-replace
-------------------------------------------------------

Purpose
-------
Performs a rapid search-and-replace operation for text
strings and/or ASCII decimal codes throughout a file of
maximum 40,000-byte length.

Format
------
 
    CHANGE filespec findstring replacestring

Remarks
-------
The filespec parameter may include a drive letter and a
path in addition to the designated filename.

Findstring and replacestring may consist of text
characters enclosed within (double) quote marks or
ASCII decimal codes whose numbers are separated by
commas. Note that the format requires that each
parameter be separated by a single space. Text strings
in quotes and ASCII values in numerals may be combined
in either string if separated by commas.

Example
--------
To change all references to Miss Jones to Mrs Smith in
the file NOGOSSIP.ART on the current directory, you
would enter

    CHANGE NOGOSSIP.ART "Miss Jones" "Mrs Smith"

Example
--------
To strip out all carriage return-line feeds (i.e.
replace them with a null string) in the file MCI.B16 in
the \COMM subdirectory, enter

    CHANGE \COMM\MCI.B16 13,10 ""

Notes
-----
1. In the second example you might want to use a space
   between the quote marks rather than a null string to
   keep the words from running together. Observe that
   by putting the number of the month in hexadecimal
   (B=November) you can fit both month and day within
   the three character DOS filename extension.
@@COPYSAFE
COPYSAFE                             Michael J. Mefford
Adds overwrite protection to the COPY command
-------------------------------------------------------

Purpose
-------
Prevents accidentally over-writing files when using the
COPY command.

Format
------

    COPYSAFE

Remarks
-------
COPYSAFE is a memory-resident utility that displays the
filename(s), drive, and directory of any file that will
be overwritten if a COPY command is executed. After
being warned, you are given the opportunity either to
terminate the COPY procedure or to continue, and so
overwrite the file(s).

COPYSAFE should be loaded only once per session. The
best procedure is to include it in an AUTOEXEC.BAT
file. Be sure, however, to load COPYSAFE after any
commands (such as DATE or TIME) that pause for user
input.

Notes
-----
1. Because of the way DOS processes commands in a batch
   file, COPYSAFE cannot warn against accidental
   overwriting if you run COPY as part of a .BAT file.
   Similarly, it is not designed to handle instances in
   which the COPY command is used to concatenate files.

2. COPYSAFE is highly compatible with other
   memory-resident programs, but because absolute
   compatibility among all possible TSR (terminate but
   stay resident) utilities cannot be guaranteed, you
   should check its operation on your system thoroughly
   before you rely on it completely.
@@CS
CS                                      Charles Petzold
43- or 50-line mode clear screen
-------------------------------------------------------

Purpose
-------
Clears the screen when using an EGA or VGA in 43 or 50
line format.

Format
------

    CS

Remarks
-------
The DOS CLS command is hard-coded for a 25-line
display and so does not fully clear the screen when
using the 43-line format on an EGA or the equivalent
50-line format on a VGA display. CS is a simple
replacement for CLS in such cases.

CS will also work for other variations on the
normal 80 column mode 3 display but it doesn't
operate with non-standard modes such as 132 or
120 columns provided by 'Super VGA' displays.
However, the normal CLS command will usually
operate in these cases.

Unlike CLS, CS tries to preserve the current
screen colors when it clears the screen.
@@DIRCOMP
DIRCOMP                                 Charles Petzold
Lists two directories side-by-side
-------------------------------------------------------

Purpose
-------
Permits comparison of the contents of two directories
in alphabetical order, with the options of redirecting
the screen display either to a file or to a printer.

Format
------

    DIRCOMP directory1 directory2

Remarks
-------
The directories to be compared do not need to be on
the same drive. Use the normal DOS backslash (\)
character in specifying the path to a desired
directory. The DOS "wildcard" characters (* and ?)
may be used to limit the filenames displayed.

Identically-named files are shown side-by-side to
facilitate comparison of their size, date, and time.
Other filenames are presented alphabetically in their
respective directory columns. Press [Pause] to halt
the display scrolling temporarily; striking any
key thereafter causes scrolling to resume.

In comparing large directories it is frequently
desirable to redirect the output of DIRCOMP either to
a file (which you can then call up with your word
processor) or to a printer.

Example
-------
To create a file called COMPARE.TMP in the root
directory of drive C: (your currently active drive)
that compares the listings in your \LETTERS
subdirectory with the files contained on a floppy disk
in drive B: you would enter:

    DIRCOMP \LETTERS B: > \COMPARE.TMP

Example
-------
To print out the same comparison without creating a
file, you would enter:

    DIRCOMP \LETTERS B: >PRN
@@DIRMATCH
DIRMATCH                             Michael J. Mefford
Visual compare of two directories
-------------------------------------------------------

Purpose
-------
To display two scrollable, alphabetized, directory
listings side-by-side, with the more recent of matching
filenames highlighted; to provide mark, copy, and move
facilities to update the target directory with one or
more selected files from the source.

Format
------
 
    DIRMATCH source target [/D][/A]

Remarks
-------
The source and target may comprise any combination of
drives, directories, or subdirectories (with optional *
and ? wildcards) valid for the DOS DIR command. The
user will be prompted for target and source directories
if his entry is incorrect. By default, DIRMATCH
displays all files in the two directories. The optional
/D and /A switches restrict the display to Different
and Alike files, respectively. The on-screen display,
together with the number-of-files counters, can be
cycled through All, Different, and Alike modes with F1;
Shift-F1 cycles in reverse. Pressing Esc exits the
utility. Ctrl-C will abort the program operation.

An inverse-video selector bar shows the current
position in the listings, and may be moved with the
UpArrow, DownArrow, PgUp, PgDn, Home, and End keys.
When the selector bar is on a filename, pressing the
plus (+) key on the keypad or the equal (+=) key on the
keyboard marks the file for further action. Pressing
the minus (-) key on the keypad or the hyphen (-) key
on the keyboard unmarks a marked file. F2 marks all
files; F3 clears all marks.

A file under the selector-bar or a group of marked
files can be copied from source to target directories
by pressing F4. A confirming prompt is provided.
Similarly, pressing F5 moves a file or marked group, by
first copying and then deleting file(s) from the
source. While older files can be copied (F4) to the
target directory, by default F5 will not move them.

F6 will delete the marked files from the source
directory after prompting for confirmation. F7 moves
marked files only if there are not existing files in
the target directory with the same name.

F8 reverses the source and target directories on the
screen making the current source the target and the
current target the source. This allows the user to move
and copy files in any direction and to delete any file.
This is especially helpful when updating two
directories that have been maintained independently
(e.g., at the office and at home) so that they will
both have the latest versions of the same file.

Pressing F9 prints a list of All files, with more
recent matching filenames identified with a
greater-than (>) sign. F10 displays the amount of free
space on the target disk drive.

DIRMATCH supports any number of screen display lines,
including 43-line (EGA) and 50-line (VGA) modes. It can
display up to 1,423 filenames in its listings. Hidden
and read-only files are not displayed. DIRMATCH
requires 64K free RAM in order to run.

New features in Version 2.0:

F6  Delete file(s)

F7  Moves file(s)
    (if not already on Target directory)

F8  Swaps Target & Source directories

F9  Pressing F9 prints a list of all files, with more
    recent matching filenames identified with a
    greater-than (>) sign

F10 Checks amount of free disk space in Target
    directory

Color patch addresses:

  EE9 Heading
  EEE File listings
  EF3 Bottom menu
  EF8 Highlight bar
  EFD Directory names & F1 active mode toggle
  F02 Recent Files

How to use DEBUG to patch colors:

  Dark colors    Light colors
  -----------    ------------
  Black    0     Dark Gray 8
  Blue     1     Lt Blue   9
  Green    2     Lt Green  A
  Cyan     3     Lt Cyan   B
  Red      4     Orange    C
  Magenta  5     Violet    D
  Brown    6     Yellow    E
  Lt Gray  7     White     F

To change an area's default colors (background &
foreground), simply choose from the list of available
colors above and substitute the corresponding values
at the appropriate location.

When choosing a color combination, remember that the
first value represents the background color and the
second value represents the foreground color. NOTE:
using a light color as the background color will
result in blinking characters.

For example, if you wanted to change the heading from
the default colors of blue on gray to white on red,
you would change the value at location EDF from "71" to
"4F." Here is the sequence of DEBUG commands to do
this:

    DEBUG DIRMATCH.COM

    (Tell DEBUG to load DIRMATCH.COM)

    E EDF 4F

    (Edit location "EDF" & replace value with "4F")

    W

    (Write the modified DIRMATCH.COM file to disk)

    Q

    ( Quit DEBUG)
@@DOC
DOC
Documentation viewer and printer            version 1.1
-------------------------------------------------------

Purpose
-------
DOC is a simple on-disk documentation viewer to present
the manuals for the programs on this disk. It displays
a list of available documents down the left side of the
screen and shows the text of the currently selected
document on the right. DOC has a simple printing ability
which will produce a neat printout of a document so
that you can have a manual to hand while working
with a program.

Running DOC
-----------
To start DOC, enter the command DOC. If you're looking
for a particular manual, you may also give it at the
command line. For example:

    DOC CDX

starts DOC and asks it to look for the manual for the
CDX program.

To select documents, use the up and down arrow keys to
move through the list on the left. Typing the initial
letter of a document name will jump directly to the
next matching document. Once you've found the document
you want, press TAB or the right arrow key to move
to the text of the document on the right. The cursor
keys (Home, End, Up, Down, PgUp, PgDn) will now move
through the text. Press the left arrow or TAB key
again to go back to select other documents.

The DOC menu
------------
To call up DOC's menu, press the ESC key. DOC
presents various options which you can select with
the cursor and Return keys or by pressing one of
the highlighted letters. The options will vary
depending on your PC's configuration and the
document files available.

Pressing ESC a second time cancels the menu.

Quitting DOC
------------
Choose the Quit option from the menu to leave
the DOC program and return to DOS.

Color display off
-----------------
Choose Color display off from the menu to ask
DOC to work in black-and-white. You may wish to
do this if you're using a laptop with an LCD screen
that doesn't show colors well or with some greyscale
or CGA composite video monitors.

If you need to do this, you might also enter the
DOS command MODE BW80 before running DOC. This makes
DOC and many other programs start up in black-and-
white. Adding /M to the DOC command at the DOS prompt
also forces monochrome operation.

This menu option does not appear on PCs that do not
have a color capability.

Extended Screen On
------------------
Choosing this menu option switches the display to
43 or 50 lines so that you can see more text without
scrolling. You can go back to the normal display by
choosing Extended screen off subsequently.

This menu option is only available on EGA or VGA
equipped PCs.

Fast screen on
--------------
This menu option only appears on PCs fitted with
CGA standard or equivalent displays. Normally the
DOC program slows down on this type of display to
prevent the screen flicker or 'snow' that genuine
IBM CGA displays (and some compatible makes) can
suffer from. If your system does not suffer from
snow, choose 'Fast screen on' for a faster screen
display.

Print Document
--------------
Choose this menu option to print the currently selected
document. A menu appears from where you can make four
print settings, choose Go to start printing or Cancel
to return to viewing documents. You may need to alter
the settings to suit your system before choosing Go:

1. Output port

   This is the printer interface that DOC should print
   the document to. By pressing O you can step through
   the ports fitted to your computer. The default LPT1,
   the first parallel printer port, is correct for
   most PCs. DOC can work with a serial printer (COM1
   or COM2) if you have one but you must make sure that
   the port is correctly set up (e.g. with a command
   such as MODE COM1:9600,n,8,1,p) BEFORE running DOC.
   X-On/X-Off handshaking is automatically provided
   for serial printers.

   You can set the output port to "FILE". In this case,
   DOC will ask for the name of a disk file when you
   start printing and will then print to disk rather
   than to a printer. If the file you name already
   exists, DOC will append pages to it.

   Note that DOC will not print on PostScript printers.
   If you have one of these, you might like to use the
   print to FILE option and then use a PostScript
   conversion program or word processor to print the
   resulting file.

2. Lines per page

   This is the number of printable lines on each page
   on your printer. DOC will print with this set
   incorrectly but will not be able to put page breaks
   and headers in the right place. The default is 66
   lines for standard fan-fold paper. Other common
   values are 60, 62, 64 and 70.

3. Use form-feeds

   Set this option to Yes if you're using a LaserJet-
   style printer or any printer with the form-length
   set correctly. DOC will work with this option set
   to No by counting output lines but this is slower.

4. Pause between pages

   Set this option to Yes if you're feeding single-
   sheets to the printer... DOC will pause for you
   to get the next sheet ready between each page.
@@DRAW
DRAW                                 Michael J. Mefford
Draws graphics from DOS prompt or batch files
-------------------------------------------------------

Purpose
-------
Provides low-resolution (320 x 200) color or high-
resolution (640 x 200) monochrome drawing capabilities
on CGA, EGA and VGA systems, without the need to work
in BASIC.

Format
------

    DRAW [/K]                (Option I)

    DRAW string [/K]         (Option II)

    DRAW filespec/F [/K]     (Option III)

Remarks
-------
Entered at the DOS prompt with no arguments on the
command line (Option I), DRAW looks in the current
directory for a file named DRAW.DAT and executes the
commands in that file. A sample DRAW.DAT file is
included on this disk. The file can be examined, and
similar files created, with a regular ASCII word
processor.

Alternatively, DRAW can be entered with a string of
commands (Option II) for a simple graphic or with the
name of a file consisting of commands (Option III).
Any legal DOS filename may be used, and full path
support is provided, but a /F terminator must be
appended to the filename. An optional /K may be added
to prevent a keystroke from halting execution.

Example
-------
You can get a feel for how DRAW operates by entering,
at the DOS prompt:

    DRAW X0 C2 BU50 M+40,70 L80 M+40,-70 BD5 P2,2

This will create a red triangle in the middle of your
screen. You can trace the specific steps in this
command sequence by referring to The DRAW Command Set
table below.

The DRAW Command Set
--------------------
Xn   Change to low resolution 320X200 color graphics.

     If X is not found, the default is 640X200 high
     resolution black and white graphics. X must be
     the first character of the command line or the
     first character in a file.

     The palette will be changed to n, where n can be
     either zero or one. See C color command below for
     the color of each palette.

K    Do not poll the keyboard while drawing. If K is
     not found, any keystroke terminates the program.

Sn   Flood the screen color to pattern n. n must be a
     decimal number in the range 0-255, and represents
     an eight bit pattern. Normally this command is
     issued immediately after the X command (if
     present), to clear the screen with a background
     color other than black. For example, to clear to
     color red (2) in low resolution, the command is
     S170 (binary 10101010).

         color          320X200          640X200
           0               0                0
           1              85              255
           2             170               NA
           3             255               NA

     Pattern colors may also be used. For example, a
     pattern of half green and half black would be S58
     (binary 01000100). In high resolution, each bit
     represents a dot, eight dots per byte. This is
     why only two colors (black or white) are
     available. In low resolution, there are two bits
     per dot, so four combinations can be represented.
     In the example here the sequence is 01 (green), 00
     (black), 01 (green), 00 (black). See C (color)
     command below for complete coding of the colors.

U,D,L,R,E,F,G,H
     These commands, followed by a number, will move in
     one of the following compass directions:

                          U
                  H       |       E
                    \     |     /
                      \   |   /
                        \ | /
               L -- -- -- + -- -- -- R
                        / | \
                      /   |   \
                    /     |     \
                  G       |       F
                          D

Mx,y Move x,y units either relative to the current
     position or to the absolute coordinates, x,y. If
     the x coordinate is prefaced with either a plus
     sign or minus sign, the move is relative.
     Otherwise, the move is absolute. Note, you do not
     need to include a plus sign in front of the y
     coordinate in a positive y move.

Pp,b Paint the color p until the border color b is
     found. The paint originates from the current
     position.

B    Blank move. The move following a B will move the
     desired units without plotting points. The next
     command will then continue drawing.

N    No update. The draw command following an N
     command will plot points, but the position will
     not be updated. The next draw command will start
     at the same position as the last.

Cn   Change the color to n. All draws after a C
     command will be in color n. n can be 0 (black) or
     1 (white) in high resolution and 0 to 3 in low
     resolution. In low resolution, the color is
     dependent on the palette.

                       320X200                 640X200
     color     palette 0     palette 1
       0         black         black            black
       1         green         cyan             white
       2         red           magenta          NA
       3         yellow        white            NA

Related programs
----------------
This disk also includes BLOAD, BSAVE, VIDMODE and PLAY
programs which can be used with DRAW to create quite
sophisticated presentations within batch files.

The command

    BSAVE filespec

saves a byte image of the screen buffer to a file
(with optional drive and path specifications), and

    BLOAD filespec

loads a saved image file back to the screen buffer.

VIDMODE can be used in a batch file with BLOAD
to set the appropriate display resolution (VIDMODE 4
for low res, VIDMODE 6 for high res). The PLAY
utility plays a tune on the PC's speaker.

Example
-------
This disk includes the example DRAW and PLAY files
MOVIE.DAT and STING.DAT so that you can try the
this example. Create the following batch file,
SAVE.BAT, using an ASCII word processor, EDLIN, or
COPY CON:

    ECHO OFF
    DRAW MOVIE.DAT/F
    BSAVE PICTURE

Enter SAVE and the batch file will create a saved
screen image called PICTURE of the MOVIE.DAT drawing.
Now, similarly create a second batch file, SHOW.BAT:

    ECHO OFF               (turn off command display)
    VIDMODE 4              (select low res graphics)
    BLOAD PICTURE          (load the image)
    PLAY STING.DAT/F       (play the tune)
    PAUSE > NUL            (wait for a keypress)
    VIDMODE 3              (back to text screen)

If you now enter SHOW at the DOS prompt the picture
of two con men will appear, with appropriate musical
background. Pressing any keystroke will clear the
display.

Note
----

1. The PAUSE > NUL line in SHOW.BAT waits for a
   keystroke without showing a message on the
   display. This will not work properly on DOS
   versions prior to DOS 3.
@@EGA12 etc.
EGA12, EGA25, EGA35, EGA43, EGA50       Charles Petzold
Change number of lines displayed on EGA/VGA PCs
-------------------------------------------------------

Purpose
-------
These programs allow you to select a different number
of lines for the display if your PC has an EGA or VGA
display.

Format
------

    EGA12   Select 12 line display
    EGA25   Select 25 line display (normal)
    EGA35   Select 35 line display
    EGA43   Select 43 line display

Remarks
-------
These programs alter the number of displayed rows on
EGA or VGA equipped PCs. The different screen formats
can be used at the DOS command prompt, in programs
you write yourself and with some application programs
(some applications will ignore your settings while
others may not work properly).

When you change the number of displayed lines, your
screen display may contract or roll briefly. This is
normal and does no harm. To reset your display to
normal, enter EGA25, the DOS command MODE CO80 or
use the VIDMODE program on this disk (VIDMODE 3
is the normal color 80x25 text display). To clear
the screen in one of the non-standard formats, use
the CS command on this disk. If you wish to print
non-standard format screens, run the EGAPRTSC program
also included on this disk.

Notes
-----
1. These programs were designed to operate with EGA
   displays but can be useful on today's VGA equipped
   machines. The increased resolution of the VGA
   means that you will get more lines displayed than
   normal. For example, EGA35 produces a 39 line
   display on a VGA.

2. EGA12 can work well with VIDMODE, also on this disk.
   Run VIDMODE 1 to select a 40 column display then
   EGA12 to select 12 lines... this produces a large
   character display with characters that don't look
   stretched.

3. These programs will work with an EGA attached to a
   CGA monitor (also called an IBM CD or 200-line
   monitor)... however, the lower resolution of the
   monitor will reduce the number of displayed lines.

4. The ANSI.SYS driver supplied with your PC may not
   operate in some of these formats.
@@EGA512
EGA512                                  Charles Petzold
Enable 512 character displays on EGA/VGA systems
-------------------------------------------------------

Purpose
-------
Permits switching between two loaded EGA fonts when
used with a 350-line (Enhanced Color or monochrome)
monitor and software that supports display of bold
characters.

Format
------
 
    EGA512 x y

Remarks
-------
The values of x and y may range from 0 through 3,
and correspond to the EGA memory blocks into which
fonts can be loaded. The x parameter corresponds
to the font that will be displayed with normal
(low intensity) characters. The y parameter
accesses the font that will be displayed with
high-intensity (boldface) characters.

Example
-------
Load the italic font into EGA memory block 1 with
the command EGAITAL included on this disk...

    EGAITAL 1

Then enter the command

    EGA512 0 1

If your word processor supports on-screen boldface and
does not reset the video mode on entry, regular
characters will now appear normally and boldface
characters will appear in italics.

To restore the normal display, enter

    EGA512 0 0
@@EGACOLOR
EGACOLOR                                Charles Petzold
Remap EGA colors
-------------------------------------------------------

Purpose
-------
Permits temporarily remapping any of the 16 default
colors displayable on a 200-line CGA monitor to any of
the 64 colors displayable on a 350-line Enhanced Color
Display connected to an Enhanced Graphics Adapter.

Format
------

    EGACOLOR XX YY

Remarks
-------
The parameters XX and YY are 2-digit octal (base 8)
numbers derived from the table shown below. Values
for XX may range from 00 to 17; values for YY may
range from 00 to 77.

             IRGB code          Default rgbRGB map
             ---------          ------------------
Color        binary octal hex   binary octal hex
-----        ------ ----- ---   ------ ----- ---
Black         0000   00   00    000000  00   00
Blue          0001   01   00    000001  01   01
Green         0010   02   02    000010  02   02
Cyan          0011   03   03    000011  03   03
Red           0100   04   04    000100  04   04
Magenta       0101   05   05    000101  05   05
Brown         0110   06   06    010100  24   14
White         0111   07   07    000111  07   07
Dark Grey     1000   10   08    111000  70   38
Light Blue    1001   11   09    111001  71   39
Light Green   1010   12   0A    111010  72   3A
Light Cyan    1011   13   0B    111011  73   3B
Light Red     1100   14   0C    111100  74   3C
Light Magenta 1101   15   0D    111101  75   3D
Yellow        1110   16   0E    111110  76   3E
Bright White  1111   17   0F    111111  77   3F

The first digit in the 2-digit octal number
represents the 1/3-intensity rgb signal; the
second is the 2/3-intensity RGB signal.

Example
-------
To change black to blue and white to yellow (yellow
letters on a black screen), execute

    EGACOLOR 00 01
    EGACOLOR 07 76

Notes
-----

1. Changing modes resets the default EGA colors. To
   create more permanent mappings, use SPECTRUM which
   is also included on this disk.

2. EGACOLOR can be used on VGA-equipped PCs.
@@EGAITAL
EGAITAL                                 Charles Petzold
Creates an italic display font on EGA or VGA PCs
-------------------------------------------------------

Purpose
-------
Produces a displayable italic font from the default
EGA (8x14) font.

Format
------

    EGAITAL

or

    EGAITAL n

Remarks
-------
EGAITAL can be executed directly from the DOS prompt.
The slanting algorithm employed is similar (but not
identical) to that used by Microsoft Word to display
italics in graphics mode. The normal character
display can be restored by executing one of the DOS
MODE commands, by issuing the VIDMODE 3 (color),
VIDMODE 7 (monochrome) commands on this disk, or by
executing EGA25 (also on this disk).

The n parameter shown in the second format above
accepts values from 0 (the default) through 3. It
specifies the EGA memory block into which the italic
font is loaded. An EGA with 256K memory can hold up
to 4 fonts simultaneously; a 128K EGA, up to 2 fonts.
A 64K EGA board is limited to one font. The EGA512
command, described elsewhere in this manual, allows
two fonts to be active simultaneously when using
software capable of showing on-screen bold characters.
@@EGAPALET
EGAPALET                                Charles Petzold
Displays the 64 colors available on an EGA
-------------------------------------------------------

Purpose
-------
Displays all 64 EGA colors simultaneously on an EGA
compatible (350-line) color monitor.

Format
------

    EGAPALET

Remarks
-------
EGAPALET is probably most useful to programmers or
those designing screen displays as it allows the full
range of 64 EGA colors to be seen at once, even on an
EGA which nominally can only show a maximum of 16 at
any one time. EGAPALET works with VGA displays too and
it can be sensible to stick to the EGA colors so that
colors chosen can be shown on both types of screen.

If a number of the color squares look the same at
first glance, adjust the contrast and brightness
controls and inspect the screen at close range to
confirm that different pixels are being lit.

Starting with the upper left square as row 0, column
0, the octal values for each color can be determined
directly from the screen. Brown, for example, is
octal 24 (row 2, column 4), a value you might enter in
the EGACOLOR utility included on this disk.

Since the EGA is theoretically limited to simultaneous
display of only 16 (of 64) colors, EGAPALET employs
the unorthodox technique of remapping eight color
registers every 1/430th of a second. A certain amount
of jitter and flickering must therefore be accepted on
a PC or XT. The display is more stable on an AT, but
the bottom row of squares is elongated. If you are
using an AT, this can be cured with DEBUG, as follows:

    DEBUG EGAPALET.COM
    e 102

The value 22. will appear. After the period, enter 2B
and a carriage return. Then write the modified
EGAPALET.COM to disk and quit DEBUG by entering the
following commands, each terminated by a carriage
return:

    w
    q

EGAPALET.COM is now patched for the PC AT.

Notes
-----

1. Only 16 colors are available on CGA (200-line)
   monitors
@@EGAPRTSC
EGAPRTSC                                Charles Petzold
Enables the 43/50 line Print Screen software
-------------------------------------------------------

Purpose
-------
Replaces the normal Print Screen BIOS routine to
permit using the <PrintScreen> key (<Shift-PrtSc> on
older keyboards) with EGA/VGA displays with more than
25 rows.

Format
------

    EGAPRTSC

Remarks
-------
The EGA/VGA BIOS contains a new Print Screen routine
usable for screen dumps of displays with 35, 43, 50 or
other 25-plus line displays but this routine is not
automatically loaded when you start your system.

EGAPRTSC is a tiny program that installs the updated
Print Screen routines. If you use this feature often,
you can run EGAPRTSC from within your AUTOEXEC.BAT
file.

Notes
-----

1. EGAPRTSC should be loaded early in the AUTOEXEC.BAT
   file, before any printer buffers, commands such as
   GRAPHICS or other programs that use the Print Screen
   interrupt (interrupt 5).
@@FILECTRL
FILECTRL                             Michael J. Mefford
Multi-format file and directory viewer
-------------------------------------------------------

Purpose
-------
A full-directory file-viewing and removal utility
capable of displaying WordPerfect, Microsoft Word, Q&A
Write, and WordStar documents as if they were in ASCII
format. FILECTRL automatically supports normal 25-line,
43-line (EGA), 50-line (VGA) and UltraVision displays.

Format
------

    FILECTRL [filespec] [options]

Remarks
-------
Entered without any parameters, FILECTRL displays a
filename list of the current directory in its left
window and the first part of the text of the
highlighted filename in its right window. The text is
shown stripped of any header and formatting codes. Any
drive and/or directory can be specified with filespec,
and * and ? can be used to limit the file list.
Pressing Esc exits the utility.

The Tab key (a toggle) shifts between windows, as do
the Left- and Right-Arrow keys. The display in the
active window is shown in high-intensity color, and
scrolling within the active window uses the usual Up-
and Down- Arrows, PgUp and PgDn, Home and End keys.
From the file list window pressing a letter jumps the
selection highlight to the first filename beginning
with that letter and so continues with subsequent
keypresses.

F2 deletes a highlighted filename or empty
subdirectory, and Ctrl-F2 deletes a group of marked
filenames. Files can be marked with the + key and
unmarked with the -; the spacebar toggles the mark on
and off. All deletions are prompted for confirmation
prior to execution.

Pressing F5 successively (1) widens the file list to
show full DOS directory information, (2) widens the
text display to a full 80 columns, and (3) returns to
the original display. Shift-F5 reverses the display
sequence. Pressing Enter while a filename is
highlighted toggles between the filelist display and
the 80-column text display. Pressing Enter while a
subdirectory (< >) or the parent (<..>) directory is
highlighted loads the files from that directory. F3
permits entering a new filespec.

By default FILECTRL sorts filenames in ascending
alphabetical order. The F7, F8, F9, and F10 keys set
the sort field to filename, extension, size, and date,
respectively. Pressing F6 toggles between ascending and
descending order.

FILECTRL also permits entering a number of options as
command-line switches. These are summarized below.

    /M+        = Include only files modified
                 since last back-up
    /M-        = Include only files NOT modified
                 since last back-up
    /H         = Include Hidden files
    /R         = Include Read-only files
    /P date    = Only include files ON or Prior date
    /A date    = Only include files ON or After date
                 (date format = mm/dd/yy)
    /W         = WordStar files; remove high bit
    /N         = Sort by Name
    /E         = Sort by Extension
    /S         = Sort by Size
    /D         = Sort by Date
    /O         = Sort by Original DOS DIR order
                 (default is Sort by Name)
    /F         = Sort in descending order

For use with laptop computers it may be necessary to
enter the DOS MODE BW80 command before starting
FILECTRL.
@@FONTEDIT
FONTEDIT                             Michael J. Mefford
EGA/VGA font editor and loader
-------------------------------------------------------

Purpose
-------
Permits modifying/creating EGA or VGA character fonts
with keyboard or mouse and saving the new fonts as
.COM files which can later be loaded from the DOS
prompt.

Format
------

    FONTEDIT

Remarks
-------
If no font filename and path are supplied as the
FONTEDIT uses the currently-displayed font, beginning
with the letter A. Pixels in the Edit window are
toggled on or off with the spacebar or with left and
right mouse buttons. The highlighted cursor may be
moved within the Edit window by mouse or with the
cursor Arrow keys, and it can be "dragged" to adjacent
pixels by holding down a Shift key or mouse button.
Editing changes are saved by pressing F4, and
opportunity is provided to supply a missing filename.

FONTEDIT will supply the requisite .COM extension
automatically. Esc quits the program.

Pressing F5 copies the original character template to
Edit window.

New characters to edit can be loaded by pressing the
appropriate key on the keyboard, by pressing the PgUp
and PgDn keys (which move in ASCII sequence), or by
holding down the Alt key while typing the ASCII code
on the numeric keypad, then releasing Alt. The Tab
key toggles the cursor between the Edit window and the
full Character Set window. Highlighted characters in
the latter can be loaded for editing by pressing Enter
or one of the mouse buttons.

The F1, F2, and F3 keys affect all characters within
the entire font.

F1 (or the Del key) deletes a whole row of pixels, and
is used to shorten the height of the character box.

The default (and maximum) character box size is 8
pixels wide (this cannot be changed) by 14 pixels high
(EGA) or 16 pixels high (VGA). A 43-line EGA font
uses a character box of 8 by 8 pixels, for example.
When using F1 (or Del) confirmation of the deletion is
required. F2 inserts a blank row of pixels throughout
the entire font (maximum height permitting), and F3
copies each character's current pixel map, as, for
example, to thicken a serif.

Modified or created fonts are loaded simply by
entering their names at the DOS prompt. Normal
operation is restored by entering any video mode
command, for example MODE CO80, on a color system or
MODE MONO in monochrome.

Applications that reset the video mode on entry or
when returning from DOS also restore the default ROM
font and cannot be used successfully with FONTEDIT.
@@FREEZE
FREEZE                                     Jeff Prosise
Locks a running PC to keep sensitive data hidden
-------------------------------------------------------

Purpose
-------
Ensures confidentiality of in-memory data when it is
necessary to leave a PC running without storing the
data to a removable medium or encrypting it. FREEZE
temporarily suspends program operation, blanks the
screen, and disables the Ctrl-Alt-Del reboot sequence
until a user-entered password (up to 64 characters) is
re-entered.

Format
------
 
    FREEZE

Remarks
-------
FREEZE is a memory-resident utility, normally loaded by
an AUTOEXEC.BAT file. After loading, the machine is
"locked" by pressing Alt-NumLock and then entering your
chosen password. The password may include any characters
except Esc and Enter. Pressing the Esc key aborts
password entry, and pressing Enter initiates the
lockdown.

The Backspace key may be used to correct incidental
mistakes, but care must be exercised, as the characters
are not echoed on the screen during entry. To unlock
the machine, simply re-enter the same password and
press Enter. Again, the Backspace and Esc keys can be
used to correct or abort password entry.

Notes
-----
1. The password is never stored and may be changed each
   time FREEZE is invoked with Alt-Numlock. If an
   attempt is made to load FREEZE more than once,
   an error message will result.

2. While FREEZE is believed compatible with most other
   memory-resident programs, because of the importance
   of data with which it is expected to be used, it
   should be thoroughly checked in your specific
   configuration. In particular, FREEZE should be
   loaded before SideKick.
@@MAKEBAR
MAKEBAR                                Robert L. Hummel
Creates menu files for SLASHBAR
-------------------------------------------------------

Purpose
-------
Compiles Lotus-style menus for non-Lotus applications
programs for use with the SLASHBAR utility
contained on this disk.

Format
------

    MAKEBAR input_file output_file

Remarks
-------
The input_file must contain the keystrokes needed to
activate the application program's commands, and it
must be constructed using the .BDF format and syntax
illustrated by the ASCII-readable DOS.BDF file
contained on this disk. The output_file produced by
MAKEBAR is a .BAR file suitable for loading as a
pop-up window by SLASHBAR. Maximum length of the
compiled .BAR file is approximately 46,000 bytes.

Constructing a suitable .BDF file for an application
is not a trivial undertaking. The first step is to
organize the commands needed by the application into
a menu-tree arrangement similar to the DOS menu tree
shown below.

The categories in the left column will appear on the
first line of the first menu screen. CLS is
immediately run from that screen, so it has no lower
branches.

               |- COPY
  |-  FILE   --|- DIR
  |            |- ERASE
  |            |- RENAME
  |            |- TYPE
  |
  |            |- ASSIGN
  |            |            |- PARENT
  |            |- CHDIR ----|- ROOT
  |            |            |- OTHER
  |            |- FORMAT
  |-  DISK   --|- LABEL
  |            |- MKDIR
  |            |- RMDIR
  |            |- VOL
  |
  |            |- DATE
  |-  SYSTEM  -|- TIME
  |            |- PROMPT
  |            |- VER
  |
  |-  CLS

The diagram below shows the basic structure of the
MENU...MEND blocks from which a .BDF file is
constructed. Again, study the DOS.BDF file on this
disk.

PROGRAM "NAME" ---------- Identification Name

MENU NAME -----------------------------------|
     OPTION    NAME,"HELP LINE" --|          |
          COMMANDS -|             |          |
             .      |-- Commands  |-- Option |
             .      |             |   Block  |
             .     -|           --|          |-- Menu
     OPTION    NAME,"HELP LINE"              |   Block
          COMMANDS                           |
       .                                     |
       .                                     |
       .                                     |
MEND ----------------------------------------|

MENU NAME----|
  .          |  Additional menu
  .          |--block(s) as
  .          |  required
MEND---------|

END -------- End Of File Indicator

Precede any comments you may wish to include in a .BDF
menu file with a semicolon. MAKEBAR ignores the
remainder of any line when it encounters the semicolon
character. Use the {c}1 key combination to represent
the semicolon in any names or quoted strings your
application requires.

Two types of text entries are used in menu files. A
STRING is an entry surrounded by quotes ("). "DOS
3.1" and "JiffyCalc Spreadsheet" are examples of valid
strings. A string may not contain the quote
character, but you can use the {c}3 sequence to
represent it in a string. A NAME is an entry
consisting of a single word, and must contain no
spaces. To aid readability, separation characters may
be used in names:  DO-THIS, DO_THAT, DO$IT$NOW, are
all valid. Upper/Lower case is preserved in strings,
but names are capitalized in the output file.

Strings may contain any character or key combination
(except the comment and quote characters) that can be
recognized by the BIOS. Key combinations in a BDF that
are not recognized by the BIOS will produce an error
message. (There may therefore be some commands for a
given application that cannot be included in the menu
structure.)

Alpha-numeric keys are entered by typing them. All
special keys, such as the function keys and shift-key
combinations are entered in symbolic form as text
surrounded by braces. The Shift, Ctrl, and Alt keys
affect only the immediately following key. The
available special keys and their representation in a
.BDF file are:

{ESC}     Escape              {U}       Arrow Up
{TAB}     Tab                 {D}       Arrow Down
{ENTER}   ENTER               {L}       Arrow Left
{BS}      Backspace           {R}       Arrow Right
{HOME}    Home                {INS}     Insert
{PGUP}    Page Up             {DEL}     Delete
{PGDN}    Page Down           {C}       Control
{END}     End                 {S}       Shift
                              {A}       Alt

Function Keys

{F1} {F2} {F3} {F4} {F5} {F6} {F7} {F8} {F9} {F10}

Redundant key combinations, such as {S}a instead of A,
will produce an error message.

Example
-------
To block out a paragraph in WordPerfect the sequence
would be:

    "{A}{F4}{ENTER}"

To enter the WordStar Ctrl-KD sequence (to end editing
and save changes), you would use the string:

    "{C}KD"

To replace the current file in 1-2-3, enter:

    "/FSR"

A .BDF file always begins with the word PROGRAM,
followed by a string. The first 10 characters of the
string are encoded in the compiled .BAR file for
display in the pop-up window. PROGRAM must be the
first non-comment line in the program, and it must
appear only once. Conversely, END causes processing of
the input file to cease and is the last command read.
Each .BDF file must include an END.

The remainder of the file consists of MENU-MEND blocks,
as was diagramed above. Each block corresponds to one
complete set of command choices. In the DOS.BDF
example there are five menu blocks:  the top-level
block; three second level blocks (to represent the
FILE, DISK, and SYSTEM submenus); and one third level
block (the CHDIR sub-submenu). Note that the CLS
option does not require a menu block since that command
terminates at the first level. The MENU block that
follows the PROGRAM command is assumed to be the top
level menu and will be the first one to be executed.
Subsequent MENU blocks may be in any order.

Each MENU statement takes a NAME as its argument, and
no two menus can have the same name. The name is used
as a target when control is transferred between menus
with the EXECUTE command. Using identical menu names
will cause MAKEBAR to report a Bad Menu Reference.

The MENU block is divided into one or more OPTION
blocks. An OPTION block comprises three separate
parts: name, help line, and commands. While, like a
menu, each option must have a name, there are no
restrictions as to uniqueness. The same option name
may be used in different menus with different meanings,
though this would not be the best design for a
consistent interface. Because options may be selected
by pressing their first letter, if two options begin
with the same letter, the second option can never be
executed by pressing that letter. (It can be invoked
by positioning the cursor and pressing ENTER.)  This
property could be used to prevent accidental use of a
command by making it more difficult to invoke.

The help string must follow each option name on the
same line. This string will be displayed below the
option names when that option is selected with the
cursor. The length of this string must be less than 78
characters in order to fit within the window created by
SLASHBAR. Beginning on the next line, the application
program commands to be executed when that option is
chosen are entered. Each command must begin on a
separate line, and the entire command must be contained
on that line. If more keys need to be entered than can
fit on a single line, multiple TYPE statements (see
below) can be used.

The BDF commands, with their syntax, are listed below:

PROGRAM "string"
END
MENU name
MEND
OPTION name, "string"
ASK "string"
INPUT
TYPE "string"
CR

Remember that a name is a single word with no
separating spaces, and that a "string" is a series of
characters surrounded by quotes ("). The quotes symbol
itself cannot be used within a string, but it can be
represented in a string by the {c}3 sequence.

A number of these commands have been discussed above.
The five that remain, EXECUTE, ASK, TYPE, INPUT, and
CR, may only appear inside an OPTION block. These
commands make up a kind of batch language that controls
the operation of the SLASHBAR utility. At the end of
each menu path is a command string that will accomplish
the desired result when fed to the applications
program, just as if you typed in the commands directly.

The EXECUTE command transfers control down the menu
tree. Any option may invoke another menu by executing
it. Since menu flow is one-way, lines appearing below
an EXECUTE command within the same OPTION block will
never be invoked. In addition, since paths in the menu
tree may not cross, two option blocks cannot execute
the same menu. MAKEBAR checks for this and signals it
as an error. This prevents building a circular
reference into the tree, where a menu could call itself
indefinitely.

The ASK command is used to prompt the user for
information. The string argument appears on the screen
in the upper half of the pop-up window and does not
affect the output keystrokes. Because the logical use
of the ASK command is to request a reply, it is usually
followed by the INPUT command. By using these commands
together, it is possible to solicit information to
complete a command sequence.

The INPUT command accepts input from the keyboard and
appends it to the current command string. The input is
buffered, and the backspace key can be used to correct
the entry. Up to 78 characters may be entered, and
input terminates when the Enter key is pressed. The
keys are put in the command string as they were typed
without the terminating <Enter>.

The TYPE command copies the keys in the string argument
to the command string. Special keys (i.e., function
keys and shift-key combinations) are stored with a
special code to indicate that they are extended ASCII.
A special case of the TYPE command is the CR command.
It is equivalent to the command

          TYPE "{ENTER}"

and is included simply for convenience in closing
commands after requesting an input.
@@PARSE
PARSE                                Michael J. Mefford
Word count and analysis of text files
-------------------------------------------------------

Purpose
-------
Displays the number of characters, words, and sentences
in ASCII text files.

Format
------
 
    PARSE [d:][path]filename

Remarks
-------
PARSE also calculates and reports the averages of the
numbers of characters per word, words per sentence, and
"long" words (8 or more characters). It uses these to
calculate and display an approximation of the Fog Index
grade-level readability rating.

The accuracy of the various counts may be affected,
though usually not significantly, by the presence of
formatting and printing codes included in the file by
non-ASCII word processors. PARSE does ignore the
"high-bit" codes produced by WordStar and similar
programs, but "dot commands" and the like will be
counted.

Notes
-----
1. For further information on the Fog Index see
   Robert Gunning's The Technique of Clear Writing
   (McGraw-Hill, 1952, 1968).
@@PLAY
PLAY                                 Michael J. Mefford
Plays tones and tunes on the PC's speaker
-------------------------------------------------------

Purpose
-------
Provides many of the music-producing functions of the
BASIC PLAY statement without the need to work in
BASIC.

Format
------

    PLAY[/K]              (Option I)

    PLAY string[/K]       (Option II)

    PLAY filespec/F[/K]   (Option III)

Remarks
-------
Entered at the DOS prompt with no arguments on the
command line (Option I), PLAY looks in the current
directory for a file named PLAY.DAT and executes the
commands in that file. The PLAY.DAT file included on
this disk is "Greensleeves."  The file can be
examined, and similar files created, with a regular
ASCII word processor.

Alternatively, PLAY can use either a command-line
string (Option II) or any legal DOS filename (Option
III) to supply the music command arguments. Filenames
may include a path designation, but must include the
/F terminator. A sample file "score," STING.DAT is
contained on this disk.

Pressing any key while PLAY is executing will
terminate operation unless the /K switch has been
added.

The command set used with PLAY is shown on the
following page and is exemplified in the PLAY.DAT and
STING.DAT files.

The PLAY Command Set
--------------------
K   Keyboard. K will cause PLAY not to poll the
    keyboard during play. If K is not found, any
    keystroke will exit.

On  Octave. n is a decimal number between 0 and 6.
    Middle C starts 03. The default is 04.

Ln  Length of time the notes will be played until the
    next L command is encountered. n is a decimal
    number between 1 and 64. For example, L4 =
    quarter-note and L8 = eighth note.

Tn  Tempo is the pace at which the music is played.
    n is a decimal number between 32 and 255. The
    larger the number, the faster the pace. The default
    is T120.

A-G Letter names corresponding to the notes of the
    scale. The letter name may be followed by
    either a # or + for a sharp, or a - for a flat.
    O3C = middle C.

Nn  Note to be played. n is a decimal number between
    1 and 84. Each increment is 1/12 of an octave. N
    can be used as an alternative to defining a note
    by a letter and an octave. For example, N37 =
    middle C.

Pn  Pause, or rest, for a length defined by n. P works
    in the same way as the L command above. For
    example, P2 = a half rest.

MN  Music Normal. The note is played 7/8 of its
    specified time, and 1/8 is a rest between notes.
    This is the default.

ML  Music Legato. The note is played the full length of
    time specified.

MS  Music Staccato. The note is played 3/4 of the time
    specified, and 1/4 is a rest between notes.

.   Dot. A dot can follow a letter note or a pause. A
    dotted note increases play time by half the duration
    of the note or pause. More than one dot may be used.
@@REPEATS
REPEATS                              Michael J. Mefford
Helps locate duplicate files
-------------------------------------------------------

Purpose
-------
Checks all directories on a drive and reports all
duplicate filenames.

Format
------
 
    REPEATS [d:][/P]

Remarks
-------
While not all duplicate files on a disk are
unnecessary, most are. If a hard disk has been in use
for some time it is astonishing how many outdated
versions or outright copies of the same file are
currently wasting space.

REPEATS lists all identical filenames, together with
their directory, size, date, and time information, so
you can decide which files to delete. The optional /P
switch directs the program output simultaneously to the
screen and to a printer. As an alternative, you could
redirect output to a file, DUPES.FND, by using the DOS
redirection command, thus:

    REPEATS > DUPES.FND

Notes
-----
1. During the time it operates, REPEATS requires 128K of
   available memory. The program can be terminated
   prematurely by pressing Ctrl-Break.
@@SCHEDULE
SCHEDULE                             Michael J. Mefford
Appointment scheduler and diary
-------------------------------------------------------

Purpose
-------
An appointment scheduler that provides both a monthly
overview and a detailed daily screen with notepad and
optional reminder chime; includes editing, printing,
and archiving facilities and can be used as either a
standalone or a memory-resident utility (15KB RAM
required).

Format
------

    SCHEDULE [/I] [/U] [/Hn] [/Pn...n] [/G] [/A] [/C]
             [/M] [/B]

Remarks
-------
When installed as memory-resident by using the
optional /I switch, SCHEDULE automatically reminds you
of appointments by chiming and popping up its
appointment screen. The default hotkey is Alt-C. This
can be changed with the /H switch to any alphanumeric
Ctrl- or Alt-key combination (n), either at or after
installation. To make Ctrl-S the hotkey, enter
SCHEDULE /H Ctrl S. The /P parameter allows sending
up to 10 decimal printer set-up codes (n...n). Include
the /G switch for printers that support the IBM
line-drawing characters.

The reminder chime can be disabled by including the /C
switch, and automatic screen pop-up can be avoided by
using the /A option. The /M parameter prevents the
default midnight pop-up so overnight programs can be
run. If screen contrast is a problem (e.g. with
laptops), use the /B (black-and-white) option.
SCHEDULE can be uninstalled with the /U option,
subject to usual limitations.

SCHEDULE and the two files it creates (SCHEDULE.DAT
and SCHEDULE.ASC) must be stored in the current
directory when the program is run as a standalone
or installed as a memory resident. Batch files
will simplify this requirement. As a text-based
program, SCHEDULE will not come up over a graphics
screen (e.g. Microsoft Windows); it must be installed
before SideKick (if used).

SCHEDULE.DAT contains all appointment records saved by
pressing F2 (see command summary overside). It can be
purged or archived in whole or part by pressing F4. A
suitable date up to which to purge can be selected by
F3 (today) or with the PgUp/PgDn keys (moves by days)
or with Ctrl-PgUp/PgDn (moves by months). F8 selects
an individual day for purging. Menu prompts are
provided for determining whether the selected records
are deleted or automatically appended to SCHEDULE.ASC
to provide a permanent record usable by any ASCII
editor.

The monthly ("calendar") and daily ("appointment")
displays cover the period from 6:30 A.M. to 9:30 P.M.
in hour and half-hour increments, respectively. Within
each screen the following commands can be executed:

Keystroke       Calendar Screen   Appointment Screen
---------       ---------------   ------------------
PgUp/PgDn       Next month        Next Day
Ctrl-PgUp/PgDn  Next year         Next Month
Arrow keys      Select day        Navigate screen
Home(1)         Beg. of column    Beg. section column
Home(2)         Beg. of calendar  Top of section
End(1)          End of column     End section column
End(2)          End of calendar   End of section
Ctrl-Home       Beg. of calendar  Beg. of section
Ctrl-End        End of calendar   End of section
Ctrl <-         Beg. of column    Beg. section column
Ctrl ->         End of Column     End  section column
Enter           Select app't.     Enter
Esc             Exit Schedule     Return to Calendar
F2              Save app'ts.      Save app'ts.
F3              Today             Today
F4              Purge app'ts.     Purge app'ts.
F5              Print calendar    Print app'ts.
F6              Go to Notepad
Shift-F6        undefined         Clear section
Ctrl-F6         undefined         Clear all 3 sections
Tab             undefined         Go to next section
Shift-Tab       undefined         Go to prev. section
Del             undefined         Del. char. at cursor

Customizing Schedule
--------------------
The following instructions will enable you to customize
the colors used by SCHEDULE and to change the tone of
its chime. Start by making a backup copy of
SCHEDULE.COM and then enter:

    DEBUG SCHEDULE.COM

You are now ready to modify SCHEDULE.COM. If at any
time you make a mistake, you can abort the editing
process by entering Q. After entering any desired
modifications last two commands you enter are:

    W
    Q

for Write to disk and Quit DEBUG.

COLOR SCHEME
Enter the following DEBUG (E)nter instructions,
replacing the xx with a new hexadecimal color value.
The default color values and descriptions that
SCHEDULE uses are shown as comments, to the right of
the semi-colons.

    E 578 xx   ; 17 Lt. gray on blue.
    E 579 xx   ; 71 Blue on lt. gray.
    E 57A xx   ; 1E Yellow on blue.
    E 57B xx   ; 3B Bright cyan on cyan.
    E 57C xx   ; 1B Bright cyan on blue.
    E 57D xx   ; 7E Yellow on lt. gray.

Alternative colors may be selected from those listed
below. The background color number is entered for the
first x and the foreground color for the second x. Do
not use a light color for the foreground, or the
display will blink.

    Dark colors    Light colors
    -----------    ------------
    0 Black        8 Dark gray
    1 Blue         9 Lt. blue
    2 Green        A Lt. green
    3 Cyan         B Lt. cyan
    4 Red          C Orange
    5 Magenta      D Violet
    6 Brown        E Yellow
    7 Lt. gray     F White

For example, to change the yellow on blue (1E) to red
on blue (14) you would enter

    E 57A 14

CHIME TONE
The value used to calculate the tone of the chime is a
hexadecimal number that can range from a low of 0025 to
a high of 1150. The default value is 0416. You'll find
numbers close to the default more pleasing. To change
the tone, enter

    E 584 yy xx

where xxyy is the new tone divisor. For example, to
change the tone from the 416 Hz C note to an A (a
divisor of 370), you would enter

    E 584 70 03 

Note that the numbers must be entered exactly as shown
above. The 70 03 (yy xx) represent 0370 (xxyy).
@@SEARCH
SEARCH                               Michael J. Mefford
Searches for files containing a word or phrase
-------------------------------------------------------

Purpose
-------
Searches all or specified directories on a disk for
either designated filenames or the first occurrence of
character strings within files.

Format
------
 
    SEARCH [filespec] [string][/P][/C][/B]

Remarks
-------
SEARCH defaults to a disk-wide search of all
subdirectories on the current disk. You can specify a
different drive and/or a pathname as part of the
optional filespec parameter. Filename searches support
the DOS * and ? wildcards. Character strings within
files are identified by putting them in quotation
marks. (The strings may themselves include a pair of
quotation marks.) Pressing either Ctrl-Break or Ctrl-C
terminates SEARCH manually.

To redirect the output of the SEARCH command to a
printer, add /P to the command line, as shown in the
first example below. Adding a similar /C switch will
make the search for a character string case-sensitive.

When searching for a character string, SEARCH normally
ignores .COM and .EXE files. While this saves time,
there may be occasions when you want to find copyright
notices, error messages, et al. in an executable file.
To include binary files in the search, add the /B
parameter on the command line.

Example
-------
To print out a list all the .COM files in the \PROG
subdirectory of your current drive, you would enter

    SEARCH \PROG\*.COM/P

Example
--------
To find which of the file(s) in your \LETTERS
subdirectory contained the salutation, Dear Miss Jones,
enter

    SEARCH \LETTERS "Dear Miss Jones"

Notes
-----
1. SEARCH returns a line number, based on the number of
   previous carriage returns in the file, when it finds
   a string. It reports only the first occurrence of
   the string in each file.
@@SLASHBAR
SLASHBAR                               Robert L. Hummel
Pop-up Lotus style menus
-------------------------------------------------------

Purpose
-------
Pops up a Lotus-style menu of the commands needed to
operate a non-Lotus applications program. You can
design your own menus using the MAKEBAR utility
included on this disk.

Format
------

    SLASHBAR menuname.ext [/n]

Remarks
-------
Menuname.ext is a menu (.BAR) file compiled for the
application in question with the MAKEBAR program
contained on this disk. When first loaded, SLASHBAR
becomes memory-resident and uses the /n parameter to
reserve sufficient room in memory for the largest .BAR
file that will be used during the current session. The
default value of n is 4096 bytes. The maximum value
of n is approximately 60,000 bytes, which is more than
the largest .BAR file that can be produced by the
MAKEBAR compiler. The SLASHBAR command can be run
many times during a session in order to replace the
menu in use with that for a different applications
program, but the /n parameter is used only for the
first loading.

The default "hot key" used by SLASHBAR to pop up the
menu in current use is Alt-/ (Alt plus the slashbar
key). Instructions for changing this trigger key are
given in the Notes.

Example
-------

To load the sample DOS.BAR menu supplied on this disk,
at the DOS prompt enter

    SLASHBAR DOS.BAR

(DOS.BAR requires less than 1500 bytes, so no n
parameter need be given.)  Alt-/ brings up the menu,
whose commands are activated either by moving the
highlight bar to the desired command and pressing
Enter, or simply by typing the first letter of the
command. The second line of the menu is the
explanatory help line for the currently-highlighted
command, as in Lotus 1-2-3.

Notes
-----
1. If you are familiar with DEBUG, you can change the
   "hot key" used by SLASHBAR. The possible Shift-Mask
   values (MM in the DEBUG session below) are listed in
   a table in the Tech Notes document. The default (the
   Alt key) is 08 at offset 171.

2. Alternate values for the Scan-Code (SS in the DEBUG
   session below) are similarly listed in Tech Notes.
   The default (the slash / key) value is 35, and its
   offset address is 167. After selecting new values for
   SS and MM, the DEBUG session would be as follows:

   DEBUG SLASHBAR.COM
   E 167 SS         ;Scan code here
   E 171 MM         ;Shift mask here
   W
   Q

   End each line above with a carriage return and do not
   type in the semicolons or the words to their right.
@@SPECTRUM
SPECTRUM                               Robert L. Hummel
Pop-up color selector
-------------------------------------------------------

Purpose
-------
Provides existing software with a selectable 16-color
palette (from among 64 displayable colors) when used
with an EGA or VGA screen.

Format
------

    SPECTRUM

or

    SPECTRUM xx xx xx xx xx xx xx xx
             xx xx xx xx xx xx xx xx

Remarks
-------
SPECTRUM is a memory-resident utility that is normally
loaded as part of your AUTOEXEC.BAT file. Once
loaded, pressing Ctrl-` (the Ctrl key and the grave
[reverse] accent key) pops up a display of 16 color
boxes, each of which may be set, on-screen, to any of
64 displayable values. The cursor pad keys are then
used, as described in the display, to select any of
the boxes and their 2-digit color codes. Pressing the
End key saves the current color selections and returns
you to your application. Home resets the color
palette to its default values, and Esc aborts any
changes made, restoring your previous color settings.

For loading or changing the SPECTRUM palette without
using the pop-up window (e.g., as part of a batch
file), the second format above may be used. The values
for x may range from 0 through 7 and must be entered
in pairs ON A SINGLE LINE. A single space must separate
each of the 16 pairs of digits, and a single space must
also separate the number-pairs from the command name.
Use the pop-up window to determine the proper number-
pairs initially.

Notes
-----
1. Software programs that write directly to the EGA/VGA
   registers may override the SPECTRUM color selections.
   The SPECTRUM colors may be restored, if lost, by
   activating the display window (Ctrl-`) and then
   pressing the Esc key.

2. SPECTRUM provides access to the 64 colors available
   on an EGA rather than the full set of VGA colors.
@@SUGGEST
SUGGEST                              Michael J. Mefford
Display message at intervals
-------------------------------------------------------

Purpose
-------
Flashes a message on the screen at selected rates and
durations ranging from many minutes to a brevity
approaching the limit of subliminal perception.

Format
------

    SUGGEST message[/Fn][/Dn]

Remarks
-------
The message may be up to 80 characters in length;
longer messages are truncated. The optional /F
(frequency) and /D (duration) switches accept a
user-entered integer n from 1 through 9. (0 is their
default value and need not be entered). These
correspond to the following approximate timings:

     /F9=0:05            /D9=0.170
     /F8=3:05            /D8=0.153
     /F7=6:05            /D7=0.136
     /F6=9:05            /D6=0.119
     /F5=12:05           /D5=0.102
     /F4=15:05           /D4=0.085
     /F3=18:05           /D3=0.068
     /F2=21:05           /D2=0.051
     /F1=24:05           /D1=0.034
     /F0=27:05 (default) /D0=0.017

Example
-------
You might enter the following:

    SUGGEST SAVE YOUR WORK/F6/D9

as a useful reminder.

Notes
-----
1. SUGGEST is a memory-resident utility. You may load
   several messages, but you must reboot to clear the
   program.

2. Even at its briefest duration the SUGGEST message is
   still visible, so the program is not intended for
   scientific investigation of truly subliminal
   experimentation.
@@TIMEKEY
TIMEKEY                                    Jeff Prosise
Inserts current time or date with a single keystroke
-------------------------------------------------------

Purpose
-------
Inserts the date and/or time into documents being
created by other applications programs.

Format
------
 
    TIMEKEY

Remarks
-------
TIMEKEY is a memory-resident utility and must be loaded
after the system date and time have been initialized.
Subject to this limitation, it may be loaded either at
the command line or as part of an AUTOEXEC.BAT file.

Once loaded, TIMEKEY uses the following keystrokes:

    Alt-L inserts a long-form date (e.g. June 10, 1987)
    Alt-S inserts a short-form date (e.g. 6-10-87)
    Alt-T inserts the time (e.g. 12:21 PM)

Notes
-----
1. Once loaded, TIMEKEY keeps track of the time
   automatically, but it does not change the current
   date at midnight unless the system is manually
   rebooted.

2. TIMEKEY is compatible with BASICA (which also uses
   the timer tick) and with many memory resident
   utilities (e.g., SideKick), but compatibility with
   all TSR programs cannot be assured.
@@VIDMODE
VIDMODE                                 Charles Petzold
Sets/displays the current video mode
-------------------------------------------------------

Purpose
-------
Reports/changes the current video mode.

Format
------

    VIDMODE m

Remarks
-------
Entered without the optional m parameter, VIDMODE
displays the current video mode. In text modes, the
commands VIDMODE 03 and VIDMODE 07 have the same
practical effect as the DOS commands MODE CO80 and
MODE MONO respectively. The table below lists the m
(mode) parameters to which VIDMODE can be switched.

Mode  Type   Disp.   Resol.  Chars  Box   Colors  Pgs.
----  ----   -----  -------  -----  ---   ------  ---
0&1   Text   CGA     200x320  25x40   8x8   16    8
             EGA     350x320  25x40  14x8   16    8
             VGA     400x360  25x80  16x9   16    8
2&3   Text   CGA     200x640  25x80   8x8   16    8
             EGA     350x640  25x80  14x8   16    8
             VGA     400x720  25x80  16x9   16    8
4&5   Graph  CGA+    200x320  25x40   8x8    4    1
 6    Graph  CGA+    200x640  25x80  14x8    2    1
 7    Text   MDA     350x720  25x80  14x9    4    8
8-12  ------------ Reserved/PCjr modes ------------
13    Graph  EGA+    200x320  25x40   8x8   16    8
14    Graph  EGA+    200x640  25x80   8x8   16    4
15    Graph  EGA     350x640  25x80  14x8    4    1
16    Graph  EGA+    350x640  25x80  14x8   16    2
17    Graph  MCGA+   480x640  25x80  14x8    2    1
18    Graph  VGA     480x640  25x80  14x8   16    1
19    Graph  MCGA+   200x320  25x40  14x8  256    1

Notes
-----

1. Users of a Hercules graphics card can
   activate "page 1" graphics if an EGA/VGA
   is installed with the command sequence:

                    MODE CO80
                    VIDMODE 16
                    ...
                    MODE MONO

   Use VIDMODE 14 if your EGA is connected
   to a conventional color monitor.

2. Should you switch to a mode not supported
   by your monitor, you can recover by blindly
   entering VIDMODE 3 (color) or VIDMODE 7
   (monochrome).

3. By adding 128 to the mode number desired you
   can change modes without clearing the screen
   (though the cursor is reset to the upper
   left). These high numbered modes may confuse
   some applications programs, however.

4. VIDMODE will switch to 'super VGA' modes if
   your display has them provided that you know
   the correct mode number to use. Your display
   card manual should list these. WARNING: You
   should be careful not to select Super VGA modes
   that your monitor is not designed to handle.
   Some Super VGA cards do not provide protection
   against this and it can cause damage to your
   monitor.

5. VIDMODE was formerly called EGAMODE.
@@VIDPAGE
VIDPAGE                                 Charles Petzold
Sets/displays the current video page
-------------------------------------------------------

Purpose
-------
Reports/changes the current video page.

Format
------

    VIDPAGE p

Remarks
-------
Entered without the optional p parameter, VIDPAGE
reports which video page is currently active. The
chart presented in this manual for VIDMODE shows
which video pages (p parameters, beginning with 0) can
be used in each mode.

VIDPAGE can be useful when you have material on your
screen to which you want to return later. Entering
VIDPAGE 1 activates a new screen while retaining the
contents of the default VIDPAGE 0 in memory. The
previous display can subsequently be recalled by
issuing the VIDPAGE 0 command.

Notes
-----

1. When using an alternate video page do not change
   video modes (e.g. with MODE CO80) or the previous
   display contents will be lost.

2. ANSI.SYS cannot be used with other than video
   page 0.

3. VIDPAGE was formerly called EGAPAGE
@@VISITYPE
VISITYPE                                 Steven Holzner
Expanded keyboard typeahead buffer
-------------------------------------------------------

Purpose
-------
Expands the PC's normal 15-character typeahead buffer
to 80 characters.

Format
------

    VISITYPE

Remarks
-------
If you enter a series of commands without waiting
until each has finished executing (as during a long
directory scroll or disk-searching operation, for
example), the PC will beep and discard subsequent
keystrokes when you exceed its built-in 15-character
keyboard buffer.

VISITYPE enlarges the keyboard buffer to 80 characters
and temporarily displays any overflow on the top line
of the display before they are used. Keystrokes so
displayed can be edited, if necessary, by using the
Backspace key and then entering the correct keystroke.

Notes
-----

1. VISITYPE is a memory-resident utility that is
   normally loaded through your AUTOEXEC.BAT file.
   While it will work with most applications programs,
   it will not work with those that completely take
   over the keyboard interrupts for their own purposes.
@@XDIR
XDIR                                       Jeff Prosise
Pop-up directory display
-------------------------------------------------------

Purpose
-------
XDIR is a memory-resident utility that allows you to
display the filenames in any drive/directory even when
you are running another applications program.

Format
------
 
    XDIR

Remarks
-------
Once loaded (normally as an entry in your AUTOEXEC.BAT
file), pressing the Alt-. (the Alt and the period key
combination) causes a blank window to pop up on the
screen. Pressing Enter then displays the first 40
filenames of your current directory in the window.
Pressing Esc once clears the display, and pressing it a
second time returns you to your previous application.

To view other directories, simply enter their
appropriate path designation (including drive, if
different) before pressing Enter when the window is
blank.

The PgUp and PgDn keys are used to display files beyond
the initial 40 shown in the window. Up to 360 files in
any one directory may be displayed.

Notes
-----
1. If you are experienced in using DEBUG, you may wish
   to change some of the XDIR defaults. Remember
   always to make changes to a copy of the program,
   not to your original. After entering DEBUG XDIR.COM,
   the following addresses and initial values may be of
   interest:

    Offset Value  Parameter
    ------ -----  -----------
    013C   4F     Border color attribute
    013D   0F     Text color attribute
    014D   00     File type (see Note 2)
    0186   34     Period key scan code
    018E   08     Alt-key shift code

2. By default, XDIR displays only normal filenames (00
   at :014D). To show hidden files, the value here
   should be 02. System files are 04, and subdirectories
   are 10h. These values are additive. To display
   subdirectories and files marked both hidden and
   system (e.g. IBMBIO.COM) you would enter the value
   16h at offset :014D in place of the default 00.

3. While no TSR program can be guaranteed compatible
   with all other memory residents, XDIR should coexist
   with most other TSRs.
