ZZ.TXT                  Mini Doc for ZZ.COM             by Tom Zimmer

ZZ NOTES

  ZZ is an integrator program that provides a simple connected
environment for the TCOM compiler, and the SZ editor. ZZ's purpose is
to reduce keystrokes while simplifying program development. It sends
and accepts commands from the SZ editor while directing the operations
of the TCOM compiler, and the BXDEBUG debugger.

  Specifically ZZ gets all of its commands from two places, the file
ZZ.CFG. and ZZ.CMD. Both are ordinary text files. ZZ.CFG holds command
lines for ZZ to perform. Here is an example of the contents of ZZ.CFG:

        Line 1     SZ %1 %2 %3 /cmd
        Line 2     SZ %F.msg /b||
        Line 3     CLS|%1 %P|PAUSE||
                   echo Alt-3 is not defined, edit MS.CFG|pause
                   echo Alt-4 is not defined, edit MS.CFG|pause
        Line 6     tcom %1 /opt /sym /Q >%F.msg||
                   echo Alt-6 is not defined, edit MS.CFG|pause
        Line 8     bxdebug %F.com||
                   echo Alt-8 is not defined, edit MS.CFG|pause
                   echo Alt-9 & F9 are not defined, edit MS.CFG|pause
        Line 11    echo Alt-0 is not defined, edit MS.CFG|pause

  When ZZ starts execution, it first reads in ZZ.CFG. ZZ then passes
Line 1 to DOS as a command line. This starts the SZ editor on whatever
file was specified after ZZ on the DOS commandline. When SZ returns, ZZ
looks in the file ZZ.CMD for information on what to do next. The ZZ.CMD
file contains a single line, and looks like this:

                1 0004 0007 C:\FPC\TCOM\SAMPLE.SEQ

  The first three items are at fixed locations in the first line. The
"1" signifies the command line to execute. The command is in the range
1 to 9 plus 0 corresponding to Lines 2 through 11 above. A command "Q"
means we are Quitting ZZ. The second and third items in ZZ.CMD are the
ROW and COLUMN of where we were editing in SZ. The fourth Item is
variable length, and specifies the file we were editing. The filename
is passed as "%1" on the commandline as a parameter to whatever
commandline gets executed.

You may notice some peculiarities in the above commandlines,
specifically the use of the "|" character. ZZ recognizes "|" as a
command seperator, and actually passes each "|" delimited string
sequence to DOS as a seperate commandline. Sort of a mini or shorthand
batch file.

  The "%F" symbol above in lines 2,6, and 8, inserts the same filename
as "%1", except the filename extension is removed. This is useful to
allow making several file with the sname name but different extensions.

  The "%P" symbol in line 3 indicates command line parameters are
needed for this command. ZZ will then prompt for user input of up to
40 characters on the last line of the display before executing the
command.

SZ NOTES

  While we are discussing ZZ, I need to mention the changes to the SZ
editor. SZ will generate the file ZZ.CMD only if it is started with a
commandline including the "/CMD" option. This tells SZ we are in a
compile environment, and that commands need to be passed back to ZZ for
its use.  When SZ starts up with this option, it trys to read in a file
with the same name as the file it is editing, but with a ".MSG"
extension. If this file is found, then SZ scans it for error messages.
This file is generated by the TCOM compiler using standard I/O
redirection as shown in Line 6 above. In addition the "/Q" (Quiet)
option suppresses exteranious compiler output. Error messages from
the TCOM compiler are in a format compatible with the Microsoft C
compiler as following example illustrates:

        SAMPLE.SEQ(23)  XYZZ Undefined symbol

  Here the filename starts the line, and the line where the error
occured is placed in parenthesis. SZ looks for lines in the format, and
when an error is detected, SZ switches into "ERRORING" mode, and
displays the error message on the bottom line of the screen, with the
faulty line displayed in reverse video. At this point only three
keyboard keys are active, the up and down arrow keys, for moving
through the errors, and the ESC key for leaving "ERRORING" mode. You
can press ESC, to correct an error, then press Alt-F5 to re-enter and
examine additional errors. When you are satisfied with your changes,
you can press F5 again, and re-compile the program.

  While the actual interconnection process is quite complicated, you
need only remember a few keys as follows:

        F5      Compile current source file.
        F7      Debug current program.
        Ctl-F1  View compiler .MSG file. use F10 to return to editing.
        Ctl-F2  Execute the current program.
        F10     Leave the environment.

  Alt-1 through Alt-0 can be used to directly execute lines 2 through
11 of the ZZ.CFG file. You can edit ZZ.CFG to add or change the
commands listed there.

  ZZ can be used as an integrator for other compilers, that like TCOM
or Microsoft C can be directed to build error files with the same
format.

  As you have probably noticed, ZZ is very small, about 6k bytes. That
along with 3k bytes for the COMMAND shell, is all that is consumed
from your Transient Programming Area by ZZ's operation. ZZ can then be
used with compilers that need all of memory to operate.

  I hope you find ZZ useful, it is Public Domain, and may be used as
you wish. If you find ZZ, SZ, TCOM, or F-PC useful, you may want to
send a check for $60.00 to the following address:

                                Tom Zimmer
                                292 Falcato Drive
                                Milpitas, CA. 95035
                                        Home (408) 263-8859
                                        Work (408) 432-4643

  You will receive the latest copy of F-PC, TCOM, SZ, and ZZ. Please
specify the disk format you need.

  My prefered format is 1.2Meg 5 1/4. If you need 360k, 720k or 1.4Meg
disk formats please add $5.00 for additional handling.

  Out of US orders please add another $5.00 for additional postage and
handling.

  Also include the version numbers of each program you have, and a day
and evening phone number for questions.


