







                    Programmer's SUPER-MAINT (tm)


                             Version 2


                     The 'Easier' Make Utility










                                  _______
            EmmaSoft         ____|__     |               (tm)
          PO Box 238      --|       |    |-------------------
   Lansing, NY 14882        |   ____|__  |  Association of
                            |  |       |_|  Shareware
(voice) 607-533-4685        |__|   o   |    Professionals
  (BBS) 607-533-7072      -----|   |   |---------------------
                               |___|___|    MEMBER

















                       All Rights Reserved
                Copyright 1990,1991 by EmmaSoft

Trademarks:

"Programmer's SUPER-MAINT" and "SUPER-MAINT" are trademarks of
EmmaSoft
"Clear+" is a trademark of Clear Software, Inc.
"PC-Lint" is a trademark of Gimpel Software
"MS-DOS", "MS", "Codeview" and "Microsoft" are registered
trademarks of Microsoft Corporation
"Turbo C" is a trademark of Borland International, Inc.
"CompuServe" is a registered trademark of CompuServe Information
Service

Hardware Requirements:

SUPER-MAINT will run on any IBM XT, AT, 386, 486 or true
compatible machine using DOS 3.1 or higher, with 640KB of memory
(it may run with less memory, but has been tested on 640KB
machines.  We assume that between SUPER-MAINT and your compilers
that you will want this much memory), on color and monochrome
systems.

Software Requirements:

SUPER-MAINT supports Microsoft, Borland, and Mix compilers and
assemblers.  As support grows for additional products they will be
listed in the file README.SUP.

Getting Help:

Registered Users may get tech support by phone (607-533-4685)
during EmmaSoft's business hours (M-F, 9-12,1-5, Sometimes
Saturdays), by mail, on CompuServe (71460,2644), or on EmmaSoft's
BBS (607-533-7072  N,8,1  2400, 1200, 300 bps  24 hours a day). 
Please include your serial number in all requests for technical
assistance.  If you get the answering machine please leave a
number and some good times to call you collect.  Before asking for
technical assistance please follow the procedure outlined in the
chapter "About Shareware, EmmaSoft, and Help."

For the latest versions of all EmmaSoft shareware products plus a
large collection of other shareware, call our BBS at the above
number.  Access if free, downloads unlimited.

                            Table of Contents:


LICENSE AGREEMENT AND WARRANTY: . . . . . . . . . . . . . . . . .  6
Entering Your Registration. . . . . . . . . . . . . . . . . . . .  7

On-Line Manual: . . . . . . . . . . . . . . . . . . . . . . . . .  7
Table of Contents . . . . . . . . . . . . . . . . . . . . . . . .  7
Printing The Manual . . . . . . . . . . . . . . . . . . . . . . .  7

INTRODUCTION. . . . . . . . . . . . . . . . . . . . . . . . . . .  8
        What is a Make Program? . . . . . . . . . . . . . . . . .  8
        Wherefore SUPER-MAINT?. . . . . . . . . . . . . . . . . .  8

Chapter 1:  Getting Started . . . . . . . . . . . . . . . . . . . 10
        Installation. . . . . . . . . . . . . . . . . . . . . . . 10
        The SUPERFILES Variable . . . . . . . . . . . . . . . . . 10
        Mouse Stuff . . . . . . . . . . . . . . . . . . . . . . . 11
        Time and Date . . . . . . . . . . . . . . . . . . . . . . 11
        Quick Start: The Demo Compilers . . . . . . . . . . . . . 11
               Automatic Make File Generation . . . . . . . . . . 12
               Build a Program. . . . . . . . . . . . . . . . . . 13

Chapter 2:  Help (SMH.EXE). . . . . . . . . . . . . . . . . . . . 15

Chapter 3:  Make Files and Macros . . . . . . . . . . . . . . . . 16
        What is a Make File?. . . . . . . . . . . . . . . . . . . 16
        What is a Macro?. . . . . . . . . . . . . . . . . . . . . 16
        Make File Format. . . . . . . . . . . . . . . . . . . . . 16
               Action Blocks. . . . . . . . . . . . . . . . . . . 16
                       Target/Dependent Line. . . . . . . . . . . 17
                       Command Line . . . . . . . . . . . . . . . 17
                       The Whole Action Block . . . . . . . . . . 17
                       Dependent Special Cases. . . . . . . . . . 18
               Defining Macros. . . . . . . . . . . . . . . . . . 18
                       Macros SUPER-MAINT NEEDS  (Macro Sets) . . 18
                       Optional Macros You May Define . . . . . . 20

Chapter 4:  Building Files with the Editor (SME.EXE). . . . . . . 21
        General Program Commands. . . . . . . . . . . . . . . . . 21
        Building Make Files . . . . . . . . . . . . . . . . . . . 21
        The MAKE menu . . . . . . . . . . . . . . . . . . . . . . 22
               Pick Code Files. . . . . . . . . . . . . . . . . . 22
                       Mark The Files:. . . . . . . . . . . . . . 22
                       Choose the File Name:. . . . . . . . . . . 23
               New File (reset) . . . . . . . . . . . . . . . . . 24
               Edit Old File. . . . . . . . . . . . . . . . . . . 24
               Macros . . . . . . . . . . . . . . . . . . . . . . 24
                       Viewing Macros and LASTMACS.SM . . . . . . 24
                       Executable Files or Library. . . . . . . . 25
                       Editing a Macro Set. . . . . . . . . . . . 25
                       Language Definition Files. . . . . . . . . 26
                       Resetting a Macro Set. . . . . . . . . . . 26
                       Macro Help Screens . . . . . . . . . . . . 26
                       Adding a New Language. . . . . . . . . . . 27
                       Macros Windows Command Summary:. . . . . . 27
                       Source Code Files. . . . . . . . . . . . . 27
               Text Editor. . . . . . . . . . . . . . . . . . . . 28
               File Names . . . . . . . . . . . . . . . . . . . . 28
               SUPER-MAINT===========>. . . . . . . . . . . . . . 28
        The SETUP menu. . . . . . . . . . . . . . . . . . . . . . 28
               Advanced . . . . . . . . . . . . . . . . . . . . . 28
               Novice . . . . . . . . . . . . . . . . . . . . . . 29
        The TOOLBOX menu. . . . . . . . . . . . . . . . . . . . . 29
               Information. . . . . . . . . . . . . . . . . . . . 29
               Version. . . . . . . . . . . . . . . . . . . . . . 29
               Lang Def Files . . . . . . . . . . . . . . . . . . 29
                       Saving The New Definition. . . . . . . . . 30
               Manual . . . . . . . . . . . . . . . . . . . . . . 31
               Edit Help. . . . . . . . . . . . . . . . . . . . . 31
               Go To DOS. . . . . . . . . . . . . . . . . . . . . 32

Chapter 5:  Setup (SMSET.EXE) . . . . . . . . . . . . . . . . . . 33
        A Note for Escape Artists . . . . . . . . . . . . . . . . 33
        General Program Commands (Advanced Mode). . . . . . . . . 33
        Colors. . . . . . . . . . . . . . . . . . . . . . . . . . 34
        Which . . . . . . . . . . . . . . . . . . . . . . . . . . 34
        SM_Files. . . . . . . . . . . . . . . . . . . . . . . . . 35
        File Names. . . . . . . . . . . . . . . . . . . . . . . . 36
        Defaults. . . . . . . . . . . . . . . . . . . . . . . . . 36
        Libraries . . . . . . . . . . . . . . . . . . . . . . . . 37
        Glob/Loc. . . . . . . . . . . . . . . . . . . . . . . . . 37

Chapter 6:  Using the Maker (SM.EXE). . . . . . . . . . . . . . . 38
        Command Format. . . . . . . . . . . . . . . . . . . . . . 38
        Remembering Memory Models . . . . . . . . . . . . . . . . 39
        Command Summary . . . . . . . . . . . . . . . . . . . . . 39
               Sets of flags: . . . . . . . . . . . . . . . . . . 40
               Toggles: . . . . . . . . . . . . . . . . . . . . . 40
        Viewing Settings. . . . . . . . . . . . . . . . . . . . . 41

Chapter 7:  Program Files . . . . . . . . . . . . . . . . . . . . 42
        Executable Files: . . . . . . . . . . . . . . . . . . . . 42
        Initialization Files: . . . . . . . . . . . . . . . . . . 42
        Language Definition Files:. . . . . . . . . . . . . . . . 42
        Files Read by Help Facility:. . . . . . . . . . . . . . . 42
        Files SUPER-MAINT Generates . . . . . . . . . . . . . . . 42
        Self Extracting Files . . . . . . . . . . . . . . . . . . 43
        Information Files:. . . . . . . . . . . . . . . . . . . . 43

Chapter 8:  File Samples. . . . . . . . . . . . . . . . . . . . . 44
        SUPER-MAINT Make File:. . . . . . . . . . . . . . . . . . 44
        Microsoft MAKE/NMAKE File . . . . . . . . . . . . . . . . 47
        Batch File for MAKE/NMAKE . . . . . . . . . . . . . . . . 47
	PC-lint 'Indirect' File . . . . . . . . . . . . . . . . . 48
        Clear+ 'List' File. . . . . . . . . . . . . . . . . . . . 48

Chapter 9:  About Shareware . . . . . . . . . . . . . . . . . . . 49
        Shareware, EmmaSoft, and Help . . . . . . . . . . . . . . 49
        Distribution. . . . . . . . . . . . . . . . . . . . . . . 49
        ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
        Ombudsman Statement . . . . . . . . . . . . . . . . . . . 51
        Technical Support . . . . . . . . . . . . . . . . . . . . 51
        EmmaSoft BBS Support. . . . . . . . . . . . . . . . . . . 52

Appendix A: Error Messages. . . . . . . . . . . . . . . . . . . . 53

Appendix B: Program Specifications. . . . . . . . . . . . . . . . 55

Appendix C: The Landscape Printer . . . . . . . . . . . . . . . . 56

Appendix D: Registration Form . . . . . . . . . . . . . . . . . . 57

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

LICENSE AGREEMENT AND WARRANTY:

License:

       1.      You may use the program on a single computer at one
               time.  You may not copy the program and accompanying
               materials except for backup purposes or to distribute it
               as shareware.  See the file VENDOR.DOC for distribution
               requirements

        2.     You may not make copies of the program for sale.

        3.     This software is copyrighted, and all rights therein are
               reserved for EmmaSoft.  Registration or purchase of this
               product does not transfer any right, title, or interest
               in the software except as specifically set forth in this
               agreement.  You are hereby notified that the software
               product is protected by United States copyright Law, and
               you may be held by responsible by EmmaSoft for any
               infringement of such rights or violations to this
               agreement.

        4.     This license is effective until terminated.  You may
               terminate it at any time by destroying the program and
               all copies of it.  It will also terminate if you fail to
               comply with any term or condition on this agreement. You
               agree upon termination to destroy the program together
               with all copies of the program.

Warranty

        1.     This program is provided "as is" without warranty of any
               kind, either expressed or implied, including any
               warranty of merchantability or fitness for a particular
               purpose.  In no event shall EmmaSoft be held liable for
               any loss of profit, special, incidental, consequential,
               or other similar claims.

        2.     EmmaSoft does warrant that the magnetic media on which
               the software is furnished is free of defects of
               materials and workmanship under normal use for 60 days,
               provided that EmmaSoft provided your copy of the program
               on such media.  If during this period the diskette
               should become defective it may be returned to EmmaSoft
               for replacement without charge.

Governing law shall be that of New York State.

%contents%
Registered Users Only!
ðððððððððððððððððððððððððððððððððððððððððððð >

Thank you for buying Programmer's SUPER-MAINT.  Your registration
entitles you to use a single copy of the program on a single
machine.  With your registration you received a serial number that
entitles you to technical assistance (you will find your serial
number on your SUPER-MAINT disk (Disk 1 if you have 5¬" disks).

Entering Your Registration
ðððððððððððððððððððððððððððððððððððððððððððð >

This section is only available to registered users.  See REG.FRM
to find out how to register.  At only $55 SUPER-MAINT is a great
value!

.cp

On-Line Manual:
ðððððððððððððððððððððððððððððððððððððððððððð >

Table of Contents
ðððððððððððððððððððððððððððððððððððððððððððð >

When viewing this manual on line (in the SUPER-MAINT Editor, or in
the SUPER-MAINT Help Facility) you can read each chapter by
pressing (Alt-x) where 'x' is the first letter of the title of the
chapter.  Alternatively you may click the left button of your
mouse over the chapter title, or use the cursor keys to place the
menu bar over the chapter you wish to view and press 
(Enter).
.cp

Printing The Manual
ðððððððððððððððððððððððððððððððððððððððððððð >

This manual comes formatted for SUPER-MAINT's help system.  To
print out your manual get the on-line table of contents on the
screen.  In the SUPER-MAINT Editor you go to the toolbox menu and
choose 'Manual.'  Or you can access it by using the Help Facility. 
To do this type 'SMH MANUAL' at your DOS prompt.

Now press (Shift) (F7) .  If your printer is hooked up to a port
other than lpt1 you may type in the name of that port (lpt2, com1,
com2).  To print the manual to a file that may be imported into
your word processor for later printing replace 'lpt1' with a file
name.  The printed manual includes some information that is not
shown in the on-line version, including in-depth examples of the
various files.  We highly recommend that you print a copy (a
printed manual comes with registered copies of the program).
*END*

%intro%
INTRODUCTIONððððððððððððððððððð >

If you are new to using Make programs, please print out and read
the file, NEW2MAKE.TXT, included with this package.

What is a Make Program?
ðððððððððððððððððððððððððððððððððððððððððððð >

Anyone who has written a large program knows it is helpful to
write code in separate files.  This makes it easy to keep like
functions together and organize the code so it is easy to find
portions when you want to.  When you want to build the program you
have to compile each file with the appropriate compiler, then link
the resulting object files together with each other and your
function libraries.
.cp

Make programs (program maintenance utilities) automate this
process.  By reading a make file that outlines the construction of
your program, a maker figures out which source code files have
been changed since the last time you built your program.  It
compiles those files, then links your program.  This saves a
considerable amount of time, since only new and changed files are
compiled before linking, and because the maker keeps track of this
instead of you having to do it manually.
.cp

Most make files use a Target:Dependents scheme.  The target file
is built if the dependent files have been changed.  The maker
knows a file has changed if it's file date is later than that of
the Target file.  For example:

                  MYFILE.OBJ:  MYFILE.C

means that if MYFILE.C (the source code) is newer than MYFILE.OBJ
(the object file), then recompile it.  Otherwise leave it alone.

.cp

Wherefore SUPER-MAINT?
ðððððððððððððððððððððððððððððððððððððððððððð >

Programmer's SUPER-MAINT is more than a mere maker.  It is a full
featured group of programs that make the process of program
maintenance simple.  Many make programs impose on your project by
insisting that you learn often complicated make file syntax, as
well as having to remember how to access macros from the command
line.  SUPER-MAINT automatically builds your make files for you. 


Using the SUPER-MAINT Editor (SME.EXE) you just point to the files
you want with your mouse or cursor keys, and the program builds
make files, response files, and even files needed by PC-Lint or
Clear+ to help with debugging.  The Editor is a full featured
program that is fully configurable, has mouse support, an on line
version of this manual, and context-sensitive help.
.cp

The maker (SM.EXE) is unique in that it remembers all the
parameters from your last build.  Once you have called the maker
one time with the parameters (command line flags) you want, all
you have to type for subsequent rebuilds is "sm (Enter) ".  That's
it.  To change a parameter (such as memory model, or whether to
include debugging information) you just type "sm" and the
parameter you want to change.  No need to retype the make file
name unless you want to build a different program.  If you like to
keep all your object files in one directory, and/or all your
executable files in another, SUPER-MAINT will automatically put
them in the directory of your choice.

SUPER-MAINT's Setup program (SMSET.EXE) controls the behavior of
all the SUPER-MAINT programs.  It can be called from the maker,
the Editor, or from the command line.
.cp

The Help Facility (SMH.EXE) is called from the maker when you need
to be reminded of command line flags or other information.  It can
also be used as a stand-alone program.  You can even write your
own help for DOS or other programs.

Although the SUPER-MAINT Editor builds make files automatically,
you may write them yourself with any ascii text editor.  Or you
may use the Editor to build a make file, then edit it manually.

All in all, Programmer's SUPER-MAINT doesn't impose on your
programming process.  It makes program building so simple that you
can concentrate where you should:  on your program.
*END*

%1%
Chapter 1:  Getting Startedððððððððððððððððððð >

Installation
ðððððððððððððððððððððððððððððððððððððððððððð >

Programmer's SUPER-MAINT comes with a fully automated installation
program.  It is strongly recommended that you use INSTALL.EXE the
first time you install SUPER-MAINT.  This will insure that all
files end up where they belong, and that the setup file is
initialized properly.

SUPER-MAINT is installed automatically using INSTALL.EXE.  This
extracts the proper files to a directory of your choosing, adds
commands to your AUTOEXEC.BAT file (only if you tell it to),
builds an initialization file that SUPER-MAINT needs to run
properly, has a reader for the README.SUP file, and lets you re-
install the sample files.
.cp

If you choose the 'full installation' option INSTALL.EXE will
install SUPER-MAINT to the disk and directory you choose, create
the initialization file, put the PATH and SET commands in your
AUTOEXEC.BAT file (if you want it to), and call SMSET.EXE in
Novice mode to set up your preferences for SUPER-MAINT.

SMSET is the options setup utility that is new as of version 2.00. 
In Novice mode it walks you through an entire setup, one section
at a time.  This first time you should go through the entire setup
to make sure SUPER-MAINT is set the way you want it, and to
familiarize yourself with the options.  If you aren't sure about
a choice, don't worry.  You can always use SMSET.EXE to change an
option.
.cp

INSTALL.EXE can add two commands to your AUTOEXEC.BAT file. 
First, it adds the directory you are storing your SUPER-MAINT
files in to the DOS path.  If you already have a PATH statement it
will just add this directory to the list.  Otherwise it will
create a new PATH statement.  Second, it sets the SUPERFILES
variable.  See the next section for an explanation of this.
.cp

The SUPERFILES Variable and PATH Command
ðððððððððððððððððððððððððððððððððððððððððððð >

If you did not let SETUP.EXE set the SUPERFILES variable in your
AUTOEXEC.BAT file it is very important that this be set before you
use any of the SUPER-MAINT programs.  This is how SUPER-MAINT
knows where to find the files it needs to run properly.  It is
best to keep this commands in your AUTOEXEC.BAT file, so they will
be automatically loaded each time you boot.  Alternatively, some
programmers run a special batch file each time they start a
programming session that contains the environment and path
commands specifically needed for a compiler or programming
language.  Another way to do this is simply to type the command at
the DOS prompt.  Whichever way you like to work, make sure the
variable is set before you use SUPER-MAINT.

Assuming your SUPER-MAINT files are on drive C: in a subdirectory
called '\SMFILES' the command should look like this:
.cp

                     SET SUPERFILES=C:\SMFILES

Notice there is no space before or after the '=' sign.

It is also important to add the directory your SUPER-MAINT files
are in to your DOS Path.  Your PATH command in AUTOEXEC.BAT
probably looks something like this:

                          PATH C:\;C:\DOS

To add the SUPER-MAINT directory change the command to look like
this:

                      PATH C:\;C:\DOS;C:\SMFILES

You may add the above line to AUTOEXEC.BAT, your special batch
file, or type it at the command line.
.cp

Mouse Stuff
ðððððððððððððððððððððððððððððððððððððððððððð >

If you have a Microsoft (or compatible) mouse the SUPER-MAINT
editor will sense it (if it is properly installed).  In most cases
you use the mouse as follows:

        Menus:

        þ Left Button        Pick A Menu Choice
        þ Right Button        Help

A [ ] symbol appears at the top left of each menu window.  To exit
a menu place the mouse cursor over it and press the left button.

Placing the Mouse Cursor over "Quit", or placing it over the [ ]
symbol in the top window, and pressing the left button is like
choosing "Quick Quit" (Alt) (q), avoiding the quit menu.
.cp


Time and Date
ðððððððððððððððððððððððððððððððððððððððððððð >

Because make utilities use your computer's clock to compare the
time and date stamps of files to be compiled it is very important
that the current time and date be set on your machine before using
SUPER-MAINT.  
.cp

Quick Start: The Demo Compilers
ðððððððððððððððððððððððððððððððððððððððððððð >

Included in your package is a set of demonstration compilers,
which include a bogus C compiler, a bogus assembler, linker,
librarian, and debugger.  These bogus utilities don't actually
compile, link, etc.  They are simply for the purpose of
demonstrating SUPER-MAINT.

To get started it is not necessary to use the bogus programs.  If
you have Microsoft's C compiler and MASM you may go through this
demonstration by replacing the bogus utility names with the real
names of your compiler, etc.  For example, replace EBCL with CL,
EBDB with CV, etc.  The three sample programs to use are:
SAMPLE.C, SAMPLE1.C, and SAMPLEA.ASM, and compile in the small
model.  Or use SAMPLE.C, SAMPLE1.C, and SAMPLE2.C, and compile in
any model.
.cp
If you have another brand use the three .C files, since the
assembly module was written specifically for MASM.  Of course,
replace the bogus utility names with the real names of your
compilers.

If you program in a language other than C or assembler you will
have to write little sample files to use for this tutorial.  Use
any simple program that can have functions in three separate
source code files.

                  Automatic Make File Generation:


>SME (Enter)           Start SUPER-MAINT Editor at the DOS command line
>(alt) (s)             Go to setup menu
>(alt) (r)             Go to setup facility
>(alt) (f)             Go to "files to make" screen
.cp

>Now press (y)         next to SUPER-MAINT make file, Link Response file,
                       and Exe File.  Press Enter until you see the main
                       setup menu again.
>(alt)(x)              Return to SUPER-MAINT Editor

>()                   Gets you into the MAKE menu
>(alt) (p)             Pick code files - displays the drives window.
>C (Enter)             Chooses C: drive (or the drive that contains your
                       sample source code files)

>The directory window will appear to the right of the drives
window.  Now put the bar (in the directory window) over the
directory SUPER-MAINT is in (probably C:\SUPER) and press (Enter). 
(You may need to use Page Up and Page Down to find the directory
you want).
.cp

>Now the files window appears.  Use the arrow keys to place the
menu bar over the files you want to mark for inclusion in your
program, then use the (+) key to mark, or the (-) key to unmark
files (you may need to use Page Up and Page Down to find the
directory you want).

        For the demonstration there are three files you should
        mark:
                            SAMPLE.C
                            SAMPLE1.C
                            SAMPLEA.ASM

>Now press (Esc) 3 times until a new window pops up with your
choices in it.  Use the arrow keys to place the menu bar over the
file you want to name your program after.  Then press (Esc) to get
back to the make menu.

.cp

        If you choose SAMPLE.C the finished program will be called
        SAMPLE.EXE.

        >At this point check the bottom of the make menu to make
        sure it says "Building EXE".  If it says "Building Lib"
        you must change the setting by doing the following: 
        alt-m, alt-l, <Esc>.

        >(Alt) (s)         Make the files.
        >(Alt) (q)         Go back to DOS.


                             Build a Program

        >sm -1 -d sample              Compiles the sample program using the
                                      Small Memory Model (-1) and symbolic
                                      debugging information (-d)
.cp

        >sm -l                        View Programmer's SUPER-MAINT settings

        >ebdb sample                  Bogus Debugger shows the sample
                                      executable (actually an ascii file,
                                      since we are using bogus compilers,
                                      linkers, etc. for this demonstration to
                                      save disk space real compilers take up)
                                      does have debugging info in it.  Alt-q
                                      quits the debugger.

        >del sample.exe               Delete the executable file

        >sm                                   SUPER-MAINT remembers your last
                                              settings and re-links the
                                              executable (the object files are
                                              current)
.cp


        >EDITOR SAMPLE.C              Use a text editor (replace "EDITOR" with
                                      the name of a text editor you use) to
                                      change a source file.  Make a minor
                                      change.

        >sm                                   SUPER-MAINT remembers your last
                                              settings and re-compiles the 
                                              changed file and re-links the
                                              executable

        >sm -e                        Erases all .OBJ files listed in the make
                                      file prior to a "final release" total
                                      rebuild (without the debugger
                                      information)
.cp

        >sm -n                        Rebuilds the whole program (all source
                                      modules) with no debugging information. 
                                      (Note:  you can combine this step and
                                      the one above it by typing: sm -er -n)

        >ebdb sample                          Bogus debugger shows program now
                                              has no debugging information in it. 
                                              Alt-q quits the debugger.

        >sm -h                        Shows help screen with all the possible
                                      command line flags

There are many other options available, but this little tutorial
should give you a good idea of the basic use of SUPER-MAINT.
*END*

%2%
Chapter 2:  Help (SMH.EXE)ððððððððððððððððððððððð >

The help system is context sensitive in Programmer's SUPER-MAINT. 
If there is more than one screen's worth of information on a topic
you may always scroll backward and forward to view the help for
that subject.  All of the SUPER-MAINT programs use two sets of
files:  SUPER.HLP (and SUPER.NDX) for on line help, and MANUAL.HLP
(and MANUAL.NDX) for the on line manual.  These files must be in
the SUPERFILES directory for help to work.

(F1) is the help key in the SUPER-MAINT Editor (SME.EXE) and Setup
Facility (SMSET.EXE).  If you have a mouse you may press the right
button þ to get help.  Once in help use the down arrow (or þ ) to
go to the next screen, or the down arrow (or þ ) to view the
previous screen.  Scrolling beyond the first or last screen, or
pressing (Esc) will exit help.
.cp

The SUPER-MAINT Help Facility (SMH.EXE) may also be used as a
stand-alone program.  To use it you type:

SMH TOPICNAME (Enter)

Replace "TOPICNAME" with the actual name of the topic you want
help for.  For a list of topic names type:

                         TYPE SUPER.NDX(Enter)

If the topic consists of more than one word precede the topic name
with a quotation mark:
                         SMH "MAIN MENU (Enter)

You can also view (and print) the on line manual by typing:

                         SMH MANUAL (Enter)
.cp

See "Printing the Manual" (page 5) for instructions on how to
print it to a file or your printer.

In the SUPER-MAINT Editor, Setup and Help Facilities you may use
a mouse for help.  To start help at most points in the Editor and
Setup Utility:

        þ Right Button        Start Help

Once in Help:

        þ Left Button        Next screen
        þ Right Button        Previous Screen
*END*

%3%
Chapter 3:  Make Files and Macrosððððððððððððððððððð >

All make utilities use make files to control how a program is
built.  The SUPER-MAINT Editor automatically builds these files so
you don't have to learn the syntax and logic of the make file. 
For complicated projects you may want to add to a make file, or
build one from scratch.  You may skip this chapter if you don't
want to write your own make files.


What is a Make File?
ðððððððððððððððððððððððððððððððððððððððððððð >

For each program you build using a make utility you must write a
make file.  This file tells the maker what to compile, link, etc.
and under what circumstances.  

.cp

What is a Macro?
ðððððððððððððððððððððððððððððððððððððððððððð >

A macro is a set of instructions that are assigned to one
variable.  For example, let's say you define the following macro:

                   L1F1 = -c -Gsw -Ow -W4 -Zp

Now each time the make utility calls the macro "L1F1" all of the
command flags following the equal sign (=) will be executed.


.cp

Make File Format
ðððððððððððððððððððððððððððððððððððððððððððð >

Programmer's SUPER-MAINT's make files make extensive use of macros
to control the building parameters of your program using simple
mnemonic command line flags.  Therefore the make file is divided
into two basic sections: macros and action blocks.

Action Blocks
ðððððððððððððððððððððððððððððððððððððððððððð >

The action block is the heart of a make file.  It is a set of
instructions that tells SUPER-MAINT what to do and when to do it.
All action blocks are made up of two lines, one on top of the
other (not separated by comments).  The first line is the
target/dependent line, and the second is the command line.

.cp





Target/Dependent Line
ðððððððððððððððððððððððððððððððððððððððððððð >

A target is a file that you want to build.  This might be an
object file, an executable file or a library.  Dependents are the
files that the target is made out of.  A typical target/dependent
line looks like this:

                  MYFILE.OBJ:  MYFILE.C
.cp

SUPER-MAINT interprets this to mean, "If the time and date stamp
on MYFILE.C is later than that on MYFILE.OBJ the source code must
have been changed since the last program rebuild.  Therefore do
whatever the command line in this action block says.  If the dates
are the same (or MYFILE.C has an earlier date) then nothing should
be done."

Command Line
ðððððððððððððððððððððððððððððððððððððððððððð >

When you call your compiler from the DOS prompt you typically type
the compiler name, various command line flags to tell it how to
compile your program, and the name of the source code file to be
compiled.  SUPER-MAINT does the same thing.  A standard command
line might look like this:

                     CL -c -Al myfile.c
.cp

SUPER-MAINT is saying, "If the dependent has been changed since
the target was built in the target/dependent line, then build the
target using the -c and -Al flags."

You also can use macros on the command line.  In fact, SUPER-MAINT
requires the use of macros.

                      CL $(L1) myfile.c

calls the L1 set of macros and adds all the flags defined in that
set in between 'CL' and 'myfiles.c'.  See the section on macros,
below.
.cp

The Whole Action Block
ðððððððððððððððððððððððððððððððððððððððððððð >

Putting this together, the whole action block looks like this:

                MYFILE.OBJ:  MYFILE.C
                           CL $(L1) myfile.c

If you specify a drive and directory for the dependent, SUPER-
MAINT will always be able to find it, no matter what the current
directory is.  For example:

                MYFILE.OBJ:  C:\MYCODE\MYFILE.C
                           CL $(L1) c:\mycode\myfile.c


.cp

Dependent Special Cases
ðððððððððððððððððððððððððððððððððððððððððððð >

You may have more than one dependent for a target.  Let's say you
want to copy three files to make one large file.  The
target/dependent line might look like this:

                mytext.c: myfile.c yourfile.c ourfile.c
                        copy myfile.c+yourfile.c+ourfile.c
mytext.c

If you want a command line to be executed no matter what, you use
the word 'placebo' for the dependent.  So to copy the three files
every time you call SUPER-MAINT:

                mytext.c: placebo
                        copy myfile.c+yourfile.c+ourfile.c
mytext.c
.cp


Defining Macros
ðððððððððððððððððððððððððððððððððððððððððððð >

The first section of a make file contains the macro definitions. 
These must always come before the action blocks so SUPER-MAINT
will be able to correctly interpret what is to be done.


Macros SUPER-MAINT NEEDS  (Macro Sets)
ðððððððððððððððððððððððððððððððððððððððððððð >

SUPER-MAINT macros always come in sets of eight.  Even if you are
not using all eight macros you should define them here.  You must
define one set of macros for each compiler you are using, plus one
set for the linker or librarian, plus one TNAMES macro.
.cp

A set of macros consists of the eight macros shown in table 1:

MACRO  HOW CALLED         MEANING:              EXAMPLE:

LxCO   Always called      COMPILE ONLY FLAG     -c

LxM1 ¿                   MEMORY MODEL 1 FLAG   -As
LxM2 Ã Only 1 is called   MEMORY MODEL 2 FLAG   -Am
LxM3 Ù                   MEMORY MODEL 3 FLAG   -Al

LxND ¿                   NO DEBUG INFO
     Ã Only 1 is called
LxD  Ù                    USE DEBUG INFO        -Zi -Od

LxF1   Always Called      Any flags 1st macro
LxF2   Always Called      Any flags 2nd macro
Table 1:---------------------------------------------------------
.cp

For each object file or executable file SUPER-MAINT builds it
looks for the eight macros for the language or linker (or
librarian) used to build it.  The macros are always called in the
order shown in table 1.

Let's say that the L1 series of macros is defined for the C
language.  SUPER-MAINT will call L1CO first for the "compile
without linking" flag.  Next it will call L1M1, L1M2, or L1M3,
depending on which memory model you specified when you called the
maker (using the command flags -1, -2, or -3).  If you told the
maker to compile using debugging information L1D will be called:
otherwise L1ND will be called.  Finally the two general macros
L1F1 and L1F2 are called.  

The macros are always called together and in this order.  The only
exception is that LxF2 is called after the dependent name when
using Borland products.
.cp

So, let's say you have defined the following macros for the C
language you use:

        L1CO = -c
        L1M1 = -As
        L1M2 = -Am
        L1M3 = -Al
        L1ND =
        L1D =  -Zi -Od
        L1F1 = -W4
        L1F2 = -Os -Zr

When you call SM.EXE with a command line as follows:

                                         cc $(L1) myfile.c
.cp

When set for Borland compilers SUPER-MAINT actually does this (for
the example we are assuming the -1 and -d flags have been used to
call SUPER-MAINT):

            cc -c -As -Zi -Od -W4  myfile.c -Os -Zr

For all other brands SUPER-MAINT does this:
                                                 
            cc -c -As -Zi -Od -W4 -Os -Zr myfile.c


.cp

The TNAMES macro is used by SUPER-MAINT to list all the dependents
for  the finished program (an executable, or a library).  The
format for defining the TNAMES macro is:

TNAMES = 
        FILE1.OBJ&
        FILE2.OBJ&
        FILE3.OBJ&
        FILE4.OBJ

Notice that there is a '&' after each file name except the last
one.
.cp

Optional Macros You May Define
ðððððððððððððððððððððððððððððððððððððððððððð >

You may define special macros and insert them into action blocks
as long as you use macro names other than the predefined ones (See
the box for macro set names.  Don't use TNAMES either).  Example:

CPY = myfile.c+yourfile.c+ourfile.c

mytext.c: myfile.c yourfile.c ourfile.c
        copy $(CPY) mytext.c

The above example uses the DOS copy command to copy three files. 
This is the same as calling COPY from DOS as follows:

              copy myfile.c+yourfile.c+ourfile.c mytext.c
*END*

%4%
Chapter 4:  Building Files with the Editor (SME.EXE)ððððððð >

The SUPER-MAINT Editor automatically builds make files, and
response files for your linker and librarian.  In addition it can
build "indirect files" for PC-lint, "list" files for Clear+, and
make files for Microsoft MAKE and NMAKE (as well as batch files
for calling the Microsoft makers to compile with debugging
information).

To start the program type:

                            SME (Enter)
.cp

General Program Commands
ðððððððððððððððððððððððððððððððððððððððððððð >

The main menu bar at the top of the screen has five choices: 
HELP, MAKE, SETUP, TOOLBOX, and QUIT.  As with all menus there are
three ways to access the choices:

        1.  Use the arrow keys to place the menu bar over your
        choice.  Then press (Enter) .

        2.  Press the first letter of the menu choice while also
        pressing the (Alt) key.  Example:  (Alt) (m) gets you to the
        MAKE menu.

        3.  If you have a mouse place the mouse cursor over your
        choice and press the left button.
.cp

In addition, the following commands will work at most menus:

(Alt) (b)              Shows the compiler brand at the bottom of the
                       screen

(Alt) (r)              Review Current Settings.  This is a quick rundown
                       of the active settings for SUPER-MAINT.  You may
                       also look at screens that show the libraries you
                       have defined for three memory models.

(Alt) (q)              Quit the program

(Alt) (v)              Version of SUPER-MAINT

(Alt) (x)              Quit the program

(Ctrl) (c)             Quit the program
.cp

(F1)           Help

Building Make Files
ðððððððððððððððððððððððððððððððððððððððððððð >

Before building make and other files you should make sure SUPER-
MAINT is configured correctly.  Using the setup program
(SMSET.EXE), which is accessible rom the SETUP menu, you tell
SUPER-MAINT which type of files you want to build, you maintain a
list of libraries, and set other information needed by the SUPER-
MAINT programs.  See Chapter 5 for setup procedures.
.cp

You use the MAKE menu to build files.  This is a simple three-part
procedure:

        1.     Pick Code Files.  Use your mouse or the cursor keys to
               mark the source code files that make up your program.

        2.             Macros.  Check the macro setup to make sure it is
                       set correctly for the program you are writing.
        3.             Supermaint=====> Build the files.

When you are done you may reset the SUPER-MAINT Editor using New
File (reset) and build another file.  Except when you are using an
unusual setup this is all you should need to do in the SUPER-MAINT
Editor.  Many other functions are available to give you the most
possible flexibility in building your make files and other
supporting files.

.cp

The MAKE menu
ðððððððððððððððððððððððððððððððððððððððððððð >

As we just discussed, the MAKE menu is used for actually building
files.

.cp

Pick Code Files
ðððððððððððððððððððððððððððððððððððððððððððð >

This function is used to pick the source code files you want to
include in your program.  You may mix and match files from any
drive and any directory.  These files are memorized by SUPER-MAINT
until you either reset or exit the SUPER-MAINT Editor.  You may
even leave the MAKE menu, shell to DOS, etc. and these files will
remain in memory for use in your make file, response files, etc. 
The function uses three windows:  The Drive window, the Directory
window, and the Files window.  You may back out of these at any
time by pressing (Esc) .  If you have a mouse put the mouse cursor
over the little box ([ ]) in the upper left of each window and
press the Left Button.

.cp


Mark The Files:

First SUPER-MAINT automatically senses what drives you have on
your system.  Choose the drive that holds your source code files.

        > When choosing a drive put the mouse cursor on our choice
        and press:

        þ Left Button        Chooses Drive or Directory
        þ Right Button       Help

Now the Directory window pops up.  If there are more than 20
directories on your disk you may use (PgUp) and (PgDn) to view
more directories.

.cp

        > When choosing a directory put the mouse cursor on our
        choice and press:

        þ Left Button        Chooses Drive or Directory
        þ Right Button       Help

        > To see another page of directories or files put the mouse
        cursor over the word "Page" in the appropriate window. 

        þ Left button        Next Page 
        þ Right button       Previous Page
.cp

Finally the Files window appears.  Place the menu bar over the
files you want to include, and use the (+) and (-) keys to mark or
unmark the files.  As with the Directory window, there may be more
than one page of files to choose from.  If so, use (PgUp) and
(PgDn) to view them.

        When Marking files:

        þ Left Button        Marks or unmarks a file
        þ Right Button       Help

        > To see another page of directories or files put the mouse
        cursor over the word "Page" in the appropriate window. 

        þ Left button        Next Page 
        þ Right button       Previous Page
.cp

Set Macros:

Check the macros for each languange and the linker (or librarian)
to make sure all the command flags are set the way you want them
for the current project.

Choose the File Name:

Most of the time you give your program the same name as one of the
source code files.  For example, if you have three source code
files:

                      SAMPLE.C
                      SAMPLE1.C
                      SAMPLE2.C

you will probably name your program SAMPLE.EXE.
.cp

By the same token you will probably want to name your make file,
response files and so on "SAMPLE" as well.  You can use SMSET.EXE
to tell SUPER-MAINT not to do this for any of the files it builds. 
If you have not done this SUPER-MAINT needs to know which source
code file you want to name everything after.

When you back out of the Drive window another window pops up
showing all the files you picked (if you picked any).  Place the
menu bar over the file whose name you want to use and press (Esc). 
Again, if there are more than twenty choices you will need to use
(PgUp) and (PgDn) to view them.

.cp

New File (reset)
ðððððððððððððððððððððððððððððððððððððððððððð >

When you want to start building a new make (or other) file you
need to clear SUPER-MAINT's memory of the files used in your last
program.  After you choose this option you are asked to press a
key to confirm that the files list buffer has been cleared out.

This is not necessary if you have just started the SUPER-MAINT 
Editor from DOS.
.cp

Edit Old File
ðððððððððððððððððððððððððððððððððððððððððððð >

This choice reads an old SUPER-MAINT make file and builds a list
of the source code files you had in it.  Now you may add to or
delete from the list.  When you are done you build a new make
file.  Please note that this option doesn't actually edit a make
file, but it allows you to import a list of source code files from
an old make file.  If you have commented a make file or added
custom macros or commands, they will be lost if you use the same
name for the new make file.  It is suggested that you enable the
backup file option in SMSET if you use this feature often.

.cp

Macros
ðððððððððððððððððððððððððððððððððððððððððððð >

The Macros function is one of the most important parts of the
SUPER-MAINT Editor.  You must set up this section correctly if you
want your make files to function properly.

You may remember from chapter 3 that SUPER-MAINT uses macro sets
to control how your program is built.  Each set has eight macros
in it.  This is where you define those macros.
 
Viewing Macros and LASTMACS.SM
.cp

When you enter the Macros section, the SUPER-MAINT Editor reads a
file called LASTMACS.SM.  This is a list of all the macros you set
up the last time you used this feature.  LASTMACS.SM has all the
macros for three languages, a linker and a librarian.  Each set of
macros is shown in a window on the left of your screen.  You view
the different languages by pressing (PgUp) and (PgDn) .  If you
don't use all these all these a macro window may be blank.

Executable Files or Library 

At any given time SUPER-MAINT is set to build executable files or
libraries.  It must be set to one or the other.  This not only
affects the SUPER-MAINT editor, but also the maker.

At the bottom of the Make Menu screen is a note that says
"Building EXE" or "Building LIB".  This way you always know how
SUPER-MAINT is set.  When viewing the macros windows this
information appears at the top of the screen.
.cp

When SUPER-MAINT is set to build EXE files you may view the three
language macro windows and the linker macro window.  When it is
set for libraries you may view the three language macro windows
and the librarian macro window.

To toggle between building executable files and libraries (linker
and librarian) press (Alt) (l) .

Editing a Macro Set

You may completely change a macro set at any time by pressing
(Alt) (e) to edit.  You may add command flags, or delete them as
you like.  Here is an explanation of the eight macros, and the
additional information recorded here:
.cp

Line: Category:      Ex:              Meaning:

1.    compiler name  CL               How compiler is called from command line
2.    compile only   -c               Compile without calling the linker
3.    mem model 1    -AS              Flag to invoke Memory Model 1
4.    mem model 2    -AM              Flag to invoke Memory Model 2
5.    mem model 3    -AL              Flag to invoke Memory Model 3
6.    nodebug        -W4              Flags to compile without debugging
                                      information
7.    debug          -Zi -Od          Flags to compile with      
                                      debugging info
8.    flags1         -Od              Any flags for optimizing or other
                                      purposes
9.    flags2         -Od              Any flags for optimizing or other
                                      purposes
10.   target ext     OBJ              The file your compiler or linker makes
11.   dependent ext  C                The file it is made from
.cp

Notes:

        The eight macros (2 through 9) should contain compiler,
        linker, or librarian flags.  See your compiler manual
        for an explanation of these flags, and the order they
        must appear in.

        It is very important to set the "compile only" flag when
        using any make program.  You do not want the compiler to
        call the linker (or librarian).  The maker must do this
        as a separate operation.

        When entering the target or dependent extension do NOT
        include the dot.  Remember the compiler (or linker,
        etc.) makes the target out of the dependent.  Therefore,
        a C compiler makes SAMPLE.OBJ out of SAMPLE.C; a linker
        makes SAMPLE.EXE out of SAMPLE.OBJ.
.cp

Language Definition Files

The macros windows are affected by a set of five files called
Language Definition Files.  All five of these files must exist in
your SUPER-MAINT directory for the SUPER-MAINT Editor to work
properly (although it is OK to use blank files if you make them
with the Language Definition File Editor in the Toolbox Menu.

Language Definition Files have two functions:

        1.  They have default macro information that is used
        when you use the reset key.

        2.  They contain help information.
.cp

Language Definition Files contain the default information about a
language compiler, assembler, linker, or librarian.  LASTMACS
contains the current settings for their macros.

Resetting a Macro Set

Each program you write probably uses different flags from your
other programs.  But most programmers have a set of compilation
flags they use all the time.  It's easy to get back to a basic set
of macros that you can either use as-is or add to.  Just press
(Alt) (r) and the default macros (defined in Language Definition
Files) will automatically appear in the macro window you are
viewing.  Using this feature only resets the macro set you are
viewing.  It doesn't affect any of the other sets.  To change the
default settings for a language, linker or librarian use the
Language Definitions Files Editor in the Toolbox menu.
.cp

Macro Help Screens

In addition to the regular help you may get a window showing
examples of the compiler, linker, or librarian flags and their
definitions.  This help is contained in the Language Definitions
Files.  If you want it, it will appear in a window on the right of
your screen.  As you page between the various language and linker
(or librarian) macros windows the help windows will also change. 
To activate this feature press (Alt) (F1) .


.cp

Adding a New Language

When you add a new language to SUPER-MAINT, remember that the
Language Definition file is the "permanent" definition, and the
Macros window is where the "temporary" version goes (in other
words, the version of the language definition with specific
command flags for the current program you are writing).

Thus, adding a language is a two step process:

Step 1:        First write the language definition file using the
               Language Definition File Editor in the Toolbox menu.  

Step 2:        Now enter the macros window for the language number you
               chose when you wrote the Lang Def file.  Press (Alt) (r)
               to get the generic flags you already defined.  Now press
               (Alt) (e) to edit the temporary version of the macros
               for your current project.
.cp

Macros Windows Command Summary:

Keyboard:

(PgDn)                Next Macro Set
(PgUp)                Last Macro Set
(Home)                First Macro Set
(End)                Last Macro Set
(F1)                        Help
(Alt) (q)                Quick Quit to DOS
(Alt) (v)                Show Version and Serial Number
(Alt) (r)                Reset to settings in Language Definitions
File
(Alt) (e)                Edit this Macro Set
(Alt) (l)                Toggle Linker (EXE) / Librarian (LIB)
(Alt) (F1)        Compiler Flags Help
.cp

Mouse:

        With the mouse cursor in the upper menu window:

        þ Left Button        (Over the [ ]) Quit Macros
        þ Right Button        Help

        With the mouse cursor below the upper menu window:

        þ Left Button        Next Macro Set
        þ Right Button        Previous Macro Set
.cp

Source Code Files

Just a quick note about how the SUPER-MAINT Editor reads source
code files:  You may set up the Editor (in SMSET) to only show
source code files (as opposed to all files in a directory) when
you are "Picking" files.  You can set the file extensions to look
for in SMSET, but these are ALWAYS changed when you exit the
Macros section of the Make menu.  This insures that source code
for a current project is always shown.  Therefore you should
consider the listing or source file extensions in SMSET
informational in most cases.

.cp

Text Editor
ðððððððððððððððððððððððððððððððððððððððððððð >

SMSET allows you to attach your favorite text editor to SUPER-
MAINT.  If you have a make file in progress it's name appears in
a box when you call the text editor.  You may type the name of any
file in the current directory, and it will be passed to your
editor.

.cp

File Names
ðððððððððððððððððððððððððððððððððððððððððððð >

This feature is only enabled if you have told SUPER-MAINT (in
SMSET) that you want to give unique names to one or more files. 
A window pops up with the type(s) of file you want to name.  Type
any name in the space provided.You don't have to use this menu
choice:  the box pops up automatically before you build the files. 
This choice simply allows you to view your choices and make
changes if you want to.
.cp

SUPER-MAINT===========>
ðððððððððððððððððððððððððððððððððððððððððððð >

Choose this to build the files.  SUPER-MAINT uses the list of
files you have picked to build the files you have specified in
SMSET.  These files may include a make file, a set of linker
response files (1 for each memory model), a library response file,
a PC-lint 'indirect' file, a Clear+ 'list' file, and/or a
Microsoft MAKE or NMAKE make file with a batch file for telling
the Microsoft maker to include debugging information in the build.
.cp

The SETUP menu
ðððððððððððððððððððððððððððððððððððððððððððð >

You can call the Setup Utility (SMSET.EXE) directly from the
SUPER-MAINT Editor.  All setup functions are controlled by SMSET. 
See chapter 5 for specific instructions on setting up SUPER-MAINT. 
There are two modes:

Advanced
ðððððððððððððððððððððððððððððððððððððððððððð >

SMSET works similarly to SME, with a main bar menu at the top. 
You can be selective in what you want to set up.




.cp

Novice
ðððððððððððððððððððððððððððððððððððððððððððð >

Novice (beginner) mode steps you through each setup category, one
at a time.  Before each setup screen is an explanation of what it
is for.  You can always skip a setup screen by pressing (Esc)
after reading its description screen.
.cp

The TOOLBOX menu
ðððððððððððððððððððððððððððððððððððððððððððð >

The Toolbox menu makes it easier to use the SUPER-MAINT Editor. 
It contains functions that help you customize the help files and
language definition files, give you information about SUPER-MAINT,
and let you shell to DOS.

Information
ðððððððððððððððððððððððððððððððððððððððððððð >

Some information about the program, the programmer and EmmaSoft is
displayed.

Version
ðððððððððððððððððððððððððððððððððððððððððððð >

The Version and serial number is displayed.  This is identical to
pressing (Alt) (v) .
.cp

Lang Def Files
ðððððððððððððððððððððððððððððððððððððððððððð >

Language Definition Files hold the default information for each
language you use, your linker, and your librarian, as well as some
help information.  Although these are ASCII files they are
formatted a specific way, and SUPER-MAINT is finicky about how it
reads them.  Therefore it is strongly recommended that you use the
Language Definitions Files Editor whenever you do this, especially
when you are creating a blank file.

First you choose a language definition to edit.  You may choose
between three languages, a linker and a librarian file.  Place the
menu bar over your choice and press (Enter) .

Now choose either the Commands form or the Language Helps form.
.cp

Commands Form

For each language you set up you must include the following
information:

Command:            Example:          Meaning:

Compile Command     TC                What you type to call your compiler from
                                      the command line
Target Extension    OBJ               The extension of the file your compiler,
                                      linker, or librarian makes
Dependent Extension C                 The extension of the file it makes it
                                      from
.cp

Additionally you may pre-define the following compiler/ linker/
librarian flags:

Compile w/o Linking /c                Flag that suppresses the linker when
                                      compiling (obviously you leave this
                                      blank when defining linker and librarian
                                      commands)
Mem Model 1 Command /AS               Flag that tells the compiler to use
                                      memory model 1 (you define the memory
                                      models here and in SMSET when you list
                                      your libraries.  SUPER-MAINT ships with
                                      these set for the Small model (1),
                                      Medium (2), and Large (3).
Mem Model 2 Command /AM
Mem Model 3 Command /AL
Debug Setup Command /Zi /Od           Flags needed to embed
                                      symbolic debugging
                                      information in your program.
.cp




Language Helps Form

This form lets you enter any help material you want to appear when
you press (Alt) (F1) in the Macros section of the Make menu. 
Typically you will want to summarize the various flags your
compiler uses, and their meanings.  You may enter up to 20 lines
of help.

Saving The New Definition

Use the (Esc) key to back out of defining a language.  When you
see the prompt, "Save This File?" press (y) to save, or (n) to
restore your old Language Definition file.
.cp

Standard Language Definition Files

SUPER-MAINT ships with preset language definition files for some
popular compilers.  If you have these you may use them as-is, or
edit them.  These are automatically installed by INSTALL.EXE when
you choose the brand of compiler you are using.

There may be more of the files available in the tech support
section on the EmmaSoft BBS (only available to registered users). 
If you write a set of Language Definition files please upload them
to the BBS if you want to share them with other users.



.cp

Manual
ðððððððððððððððððððððððððððððððððððððððððððð >

SUPER-MAINT lets you read and/or print the manual from inside the
SUPER-MAINT Editor (SME) or the Help Facility (SMH manual).

When viewing this manual on line (in the SUPER-MAINT Editor, or in
the SUPER-MAINT Help Facility) you can read each chapter by
pressing (Alt) (x) where 'x' is the first letter of the title of
the chapter.  Alternatively you may click the left button of your
mouse over the chapter title, or use the cursor keys to place the
menu bar over the chapter you wish to view and press (Enter) .

This manual comes formatted for SUPER-MAINT's help system.  To
print out your manual get the on-line table of contents on the
screen.  In the SUPER-MAINT Editor you go to the toolbox menu and
choose 'Manual.'  Or you can access it by using the Help Facility. 
To do this type 'SMH MANUAL' at your DOS prompt.
.cp

Now press (Shift) (F7) .  If your printer is hooked up to a port
other than lpt1 you may type in the name of that port (lpt2, com1,
com2).  To print the manual to a file that may be imported into
your word processor for later printing replace 'lpt1' with a file
name.

The printed manual includes some information that is not shown in
the on-line version, including in-depth examples of the various
files.  We highly recommend that you print a copy (a printed
manual comes with registered copies of the program).

.cp

Edit Help
ðððððððððððððððððððððððððððððððððððððððððððð >

SUPER-MAINT ships with complete context sensitive help.  You may
customize it, or add topics that can be called from the command
line using this function of the Toolbox menu.

If you want to write your own help files for SUPER-MAINT or to use
SMH.EXE as a general help utility you must do it using this
feature.  The reason is that SMH.EXE uses two files to read help
text.  The first is called SUPER.HLP.  This contains the actual
text, plus some symbols that tell SUPER-MAINT where one screen
begins and ends.  The second file is called SUPER.NDX.  This tells
SUPER-MAINT how long each help section is and where to find it in
SUPER.HLP.  SUPER.NDX must be generated by the program, and this
only happens if you build the help file in this section of the
toolbox.
.cp

When you choose this option SUPER-MAINT calls your text editor to
load SUPER.HLP.  It is very important that you follow the
following format when writing help files to keep SMH.EXE from
locking up:

Each help topic has a topic code, an end code, and text.  Help
topics that are longer than 19 lines also have a screen separator.


The topic code, end code, and screen separators must start at the
first character on a line (ie. it must have no spaces or other
text in front of it), and must have one line to itself.

A screen of text is no more than 19 lines, and each line may have
a maximum of 76 characters.  Within this limit you may format your
text any way you want with spaces, blank lines, etc.
.cp

A topic code is one or more words starting and ending with a
percent sign.

A screen separator is the letters 'cp' preceded with a dot.

An end code is the word END in capital letters starting and ending
with an asterisk.

Since both the printed and on-line manual come from the same text
we are not showing examples here, since the on-line version (which
is displayed by the Help Facility) would confuse SUPER-MAINT if it
found these codes in the middle of the text.  If you decide to
change SUPER.HLP you should print out a copy of the existing file
to use as an example.
.cp

Go To DOS
ðððððððððððððððððððððððððððððððððððððððððððð >

You shell to DOS to run another utility.  SUPER-MAINT keeps all
its session settings intact, including any files you may have
picked for inclusion in a make file.  The SUPER-MAINT Editor swap
itself to EMS memory if it is available.  If not, it will swap
itself to a temporary disk file in the current directory, or to a
directory of your choosing if the TMP DOS variable has been set.
*END*

%5%
Chapter 5:  Setup (SMSET.EXE)ððððððððððððððððððððð >

The SUPER-MAINT Setup Facility (SMSET) is used to set up
information needed by all the SUPER-MAINT programs.  It determines
colors for itself, the Editor and the Help facility, it tells the
maker where to put object and executable files, it tells the maker
and the Editor how to behave for the brand of language compiler
you use, it tells the editor which files you want it to build, and
much more.

SMSET can be called from the DOS command line, or from the Editor
(SME), or you may use the -q or -qb (quick setup, quick setup,
beginner's mode) flags with the maker (SM) to call it.
.cp

SMSET has two modes: 

        Beginner's (novice) mode steps you through an entire
        setup with explanation screens before each category of
        setup.  When you first run INSTALL it calls SMSET in
        beginner's mode.  You can always skip a category by
        pressing (Esc) from an explanation screen.

        Advanced mode gives you a menu much like the main menu
        of the SUPER-MAINT Editor.  You choose specific
        categories you want to set up.

All the setup options that are available in Advanced mode are
accessible except for the Global/Local setup option.  You won't
want to use local setups until you are comfortable with how SUPER-
MAINT works.

.cp

A Note for Escape Artists
ðððððððððððððððððððððððððððððððððððððððððððð >

In the setup screens you fill in your preferences one at a time. 
You can use the arrow keys to move to an option you want to
change.  If you want the last change to be recorded you must press
(Enter) to move to the next line before pressing (Esc).

General Program Commands (Advanced Mode)
ðððððððððððððððððððððððððððððððððððððððððððð >

The main menu bar at the top of the screen has six choices: Color,
Which, SM_Files, File_Names, Defaults, Libraries, and Glob/Loc . 
As with all menus there are three ways to access the choices:

        1.  Use the arrow keys to place the menu bar over your
        choice.  Then press (Enter) .
.cp

        2.  Press the first letter of the menu choice while also
        pressing the (Alt) key.  Example:  (Alt) (m) gets you to the
        MAKE menu.

        3.  If you have a mouse place the mouse cursor over your
        choice and press the left button þ .

In addition, the following commands will work at most menus:

(Alt) (b)              Shows the compiler brand at the bottom of the
                       screen

(Alt) (r)              Review Current Settings.  This is a quick rundown
                       of the active settings for SUPER-MAINT.  You may
                       also look at screens that show the libraries you
                       have defined for three memory models.
.cp

(Alt) (q)              Quit the program

(Alt) (v)              Version of SUPER-MAINT

(Alt) (x)              Quit the program

(Ctrl) (c)             Quit the program

(F1)                   Help

.cp

Colors
ðððððððððððððððððððððððððððððððððððððððððððð >

INSTALL sets up default colors for the Editor, Setup and Help
Facility.  If you want to change these you may do so.  There are
four sets of colors for the main screen, the help screen,
messages, and menus.  For each of these you first set the
foreground, then the background.  Use () and () to choose the
color you want, then press (Enter) .
.cp

Which
ðððððððððððððððððððððððððððððððððððððððððððð >

When working on a project you may not need all the files SUPER-
MAINT can build.  This section lets you tell the program which
ones you want.  The files you can build are:

make files                                    SUPER-MAINT or Microsoft

linker response files                 you MUST build these if you build a make
                                      file.  One is built for each of three
                                      memory models

library response file                 because of the way librarians work this
                                      is a little clumsy.  Libraries can only
                                      be built one memory model at a time, and
                                      it is best to use SUPER-MAINT only for
                                      new libraries, not to add to old ones.
.cp

PC-lint 'indirect' file               PC-lint can read a list of C source code
                                      files that let it process all the
                                      modules in a program together, instead
                                      of one file at a time.

Clear+ 'list' file                    Clear+ also uses a file in much the same
                                      way PC-lint does.  It contains the same
                                      information, but must have a different
                                      file extension.
.cp

EXE or LIB file                       If you do not want a finished program or
                                      library to be built choose No here. 
                                      This allows you to compile all your
                                      object files without linking a final
                                      product.  Most of the time this should
                                      be set to Yes.

Choose (y) or (n) for each type of file.

.cp

SM_Files
ðððððððððððððððððððððððððððððððððððððððððððð >

This screen of options deals with how SUPER-MAINT deals with
various files it uses or manipulates.  

Text Editor                    Type the full path and file name for the text
                               editor you like to use.  For example, if you
                               use Brief, type:  C:\BRIEF\B

Object Files:                  If you want your object files to be compiled
                               to the default directory leave this blank. 
                               If you like all your object files to be
                               written to a special directory type the full
                               path here.  Example: C:\OBJDIR
.cp

Executable Files:              As with object files, you can tell SUPER-
                               MAINT to put all your executable files in a
                               dedicated directory.  Type it here.  If you
                               want executables to stay in their default
                               directory leave this space blank.

All Directories?               Type (y) if you want SUPER-MAINT to list all
                               available directories on a drive when you are
                               'Picking' files.  Type (n) if you always want
                               to see one directory.  (Choosing one
                               directory saves time each time you 'Pick'
                               files, but it limits you to keeping all your
                               source code in one directory.

All files?                     Type (y) if you want SUPER-MAINT to list all
                               available files in a directory when you are
                               'Picking' files.  Type (n) if you only want
                               to see source code files.
.cp
Code Directory:                If you chose not to see all directories you
                               have to tell SUPER-MAINT which one you keep
                               your source code in.

Extension 1,2,3:               SUPER-MAINT automatically reads the source
                               code file extensions from LASTMACS.SM when
                               you exit the 'Macros' section of the SUPER-
                               MAINT Editor.  In SMSET these three spaces
                               are mainly informational, showing you the
                               extensions currently in effect.  You may
                               change these if you want, but should be aware
                               that the next time you use the 'Macros'
                               function the extensions will default to
                               whatever is defined there.
.cp

Make Backups?                  If you choose yes SUPER-MAINT will make
                               backups of the files it builds with the
                               following extensions:  

                               S-M make file        .B-S
                               link res files       .B-1, .B-2, .B-3
                               lib res file         .B-L
                               MS make files        .B-M
                               PC-lint              .B-P
                               Clear+               .B-C

.cp

File Names
ðððððððððððððððððððððððððððððððððððððððððððð >
When SUPER-MAINT builds files it can name all or some of them
after one of the source code files.  For example, if your program
is made of SAMPLE.C, SAMPLE1.C, and SAMPLE2.C you may choose
"SAMPLE" as the name of your make file, response files, etc.  The
make file would then be SAMPLE.SMF, the executable SAMPLE.EXE, and
so on.

SUPER-MAINT also lets you assign unique names to these files.  For
each choice if you type (y) the default name, taken from a source
code file, will be used.  If you type (n) the SUPER-MAINT Editor
will ask you to type a filename before it builds the file.
.cp

Defaults
ðððððððððððððððððððððððððððððððððððððððððððð >

The compiler brand specific defaults are set here.

Default Mem Model              Set the model (1, 2, or 3) that you want
                               SUPER-MAINT to default to when a model is not
                               specified.  (If you are building Microsoft
                               make files they will be built for this model
                               as well.)

NMAKE, MAKE                    For most users this will be set to None.  If
                               you are building Microsoft make files set the
                               maker you use here.
.cp

; for ASM                      If you answer Yes here a semi-colon will be
                               added to assembly language command lines. 
                               Users of Microsoft MASM can use this to keep
                               the assembler from stopping the program build
                               to answer prompts.


Manufacturer                   This sets your compiler manufacturer.  It is
                               important that this be set correctly to work
                               with your language(s) brand. 

.cp

Libraries
ðððððððððððððððððððððððððððððððððððððððððððð >

When you choose this option you get a submenu that lets you pick
memory model 1, 2, or 3.  Each brings up a screen that lets you
put the name of the library on the top line, then list up to 11
libraries you want linked with your programs.

Please note that some compilers (Turbo C, for example) require the
full path of the library, and that libraries be listed in a
certain order.
.cp

Glob/Loc
ðððððððððððððððððððððððððððððððððððððððððððð >

SUPER-MAINT reads it's files from the directory you have assigned
to the SUPERFILES variable in DOS (INSTALL may have done this
automatically for you if you chose for it to).  The setup that all
the programs use is called SUPER.INI.  If you have more than one
project going at a time you may want to use more than one setup. 
This feature lets you have a separate SUPER.INI in each directory
you use to program from.

The Glob/Loc menu choice is a toggle.  SMSET shows at the bottom
of the screen how this is set.  SME shows a G or an L in the upper
left corner of the screen.  SM will give this information if you
use the -l or -v flags.
.cp

When using the Editor (SME), if you have chosen Local and there is
no SUPER.INI file in the current directory SMSET will be called in
beginner's mode to insure you set everything the way you need it. 
It is strongly suggested that you redefine the colors for each
setup to help remind you that you may be using a different one
than you expect.
*END*

%6%
Chapter 6:  Using the Maker (SM.EXE)ðððððððððððððððð >

The real joy of SUPER-MAINT is in using the maker (SM).  For most
applications you only have to know a few command flags, which you
generally use the first time you build a program.

For example, let's say you are building the sample program that
comes with SUPER-MAINT.  It consists of three modules.  Imagine
you have a make file called SUPER.SMF (for a sample see chapter
8).  To build this program in the small memory model (which we
have defined as memory model 1), and including symbolic debugging
information you type:

                     sm sample -1 -d (Enter)
.cp

It doesn't matter what order you type these in, as long as you
type 'sm' first.  So these examples would be equally valid:

                     sm -1 -d sample (Enter)
                     sm -d sample -1 (Enter)

Now SUPER-MAINT  chugs away, calling your compiler to build each
file, then linking the modules together.

Now let's say you change one of the source code files.  You want
to rebuild the program.  Type:

                     sm (Enter)
.cp

That's all!   SUPER-MAINT  remembered the name of your make file
and the flags you set.  If you want to rebuild the whole program
without the debugging information type:

                     sm -er -n (Enter)

You only type what you want to change.  Things that stay the same
(in this case the name of the make file and the memory model) are
memorized.
.cp

Now let's say you have another program called NEWPROG that you
also want compiled in the small model with no debugging
information.  Type:

                     sm newprog (Enter)

Again, SUPER-MAINT has retained all the settings from the last
time you built.  Quick, clean, and easy.
.cp

Command Format
ðððððððððððððððððððððððððððððððððððððððððððð >

It's probably obvious from the examples above, but just for the
record, the command format for SUPER-MAINT is:

                     sm [makefile_name] [command flags]

sm                             SUPER-MAINT
makefile_name          the name of the make file WITHOUT the extension
                       (SM only reads make files with the extension
                       'SMF')
command flags          short mnemonic commands preceded with a '-' or a
                       '/'

As long as 'sm' comes first the order doesn't matter.
.cp

Remembering Memory Models
ðððððððððððððððððððððððððððððððððððððððððððð >

Some programmers always program in the large model.  Others
program in a variety of memory models.  This is no problem for
SUPER-MAINT.  SM keeps a list of the make files you call in a file
called SM.MML.  Each time you call SM it checks the list.  If it
finds the current project name it automatically changes to the
memory model on the list unless you use the -1, -2, or -3 flag to
specifically change the model.  If you do that the list is also
changed.

.cp

Going back to our example, let's say you are compiling SAMPLE in
the small model, and NEWPROG in the large, but all other
parameters are the same.  You have compiled each at least once
before, so they are already on the list.  All you have to do to
build both programs is type:

                           sm sample (Enter)
                           sm newprog (Enter)

SUPER-MAINT automatically changes the memory model before it calls
the compiler and linker.

.cp

Command Summary
ðððððððððððððððððððððððððððððððððððððððððððð >

Command flags may be in upper or lower case.  You may use a '-' or
a '/' to precede the letter(s) in the flag.  The order they appear
in doesn't matter.  
Some flags are part of a set, such as the memory model flags.  If
the model was set by -1 before, typing -3 will change it.  

Other flags are toggles.  The first time you use it it turns a
feature on, the next time it turns it off.  For example use -s to
suppress most SUPER-MAINT messages.  Use it again to reactivate
showing messages.

Still other flags do things only if you call them each time.  You
use the -l flag to look at your settings without actually building
a program.  The next time you call the maker you don't have to do
anything to deactivate this.
.cp




Here is a brief summary of all the SUPER-MAINT flags:

Sets of flags:

        -1             Use first memory model
        -2             Use second memory model
        -3        use third memory model
        
        -d        include debugging information in the program
        -n        no debugging information in the program

        -v        view settings after each build
        -o        turn off viewing settings
.cp

Toggles:

        -s             suppress most SUPER-MAINT messages
        -i             ignore compiler errors and keep building
        -m             disables trying to 'move' executable file. On some
                       machines this feature causes the executable to be
                       erased at the end of a build.  This flag
                       specifically disables the feature that causes it
                       to happen.
.cp

Flags that Must be Called to Work:

        -h        help
        -hi       view information about SUPER-MAINT
        -hf       view help on make file construction
        -e        read which object files belong to this project
                  from the make file, then erase only those object
                  files (if you have more than one project in the
                  same directory you will not loose the object files
                  for the other projects as you would if you typed,
                  "del *.obj"
        -er       same as -e, except it cause a total rebuild of
                  your program, and it may be used with other flags. 
                  For example:
                          "sm -er -n sample"
                  would recompile every file in SAMPLE with no debugging
                  information.
.cp
        -l        look at what the maker will do next without
                  actually doing it, then view settings.
        -q        quick setup (advanced mode)
        -qb       quick setup (beginner's mode)
        -r        reset all flags to defaults
        -t        "touch" all dependents in the file.  This changes
                  the dates on the dependents to match the targets
                  so next time you call SM nothing will happen. 
                  This is great when you have been commenting your
                  code, but have made no changes to the code itself.



.cp

Viewing Settings
ðððððððððððððððððððððððððððððððððððððððððððð >

When you use the -l or -v flags to view current settings you see
a chart that looks something like this:

HP ME DB SM IR                         ER MD TO EO LO VF R
0  3  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0
SUPER-MAINT file: sample.smf
Set for Microsoft Compilers             Using Global Setup

Table 2:
-----------------------------------------------------------
.cp

Here's how to read it:

SYM   FLAG                    CODES

HP    Help                     Always shows 0
ME    Memory Model             1= mem model 1; 2 = mem model 2; 3 = mem
                               model 3
DB    Debug/Nodebug            1 = use debug information (xxD macro); 
                               2 = use no debug information (xxND macro)
SM    Suppress Messages        1 = messages on; 2 = messages off
IR    Ignore return
      codes                    0 = stop building program if there is a
                               compiler or linker error (including stopping
                               the compiler with (Ctrl) (c) ); 1 = ignore
                               compiler errors
ER    Erase & Rebuild          Always shows 0
.cp
MD    Move/ Delete             Default = 0 (executables are moved to a
                               special directory if it has been defined in
                               SMSET, then erased form the current
                               directory); 1 = disable this function
TO    Touch Dependents         Always shows 0
EO    Erase Object Files       Always shows 0
LO    Look Only                Shows 0 or 1 - doesn't matter.  This flag
                               previews what SM will do the next time you
                               build, but doesn't actually perform the
                               actions
VF    View Flags               1 = on; 0 = off
R     Reset                    Always shows 0.
.cp

Below the chart is the name of the make file.
Below that is a reminder about the brand of compiler SUPER-MAINT
is set for, and whether it is set to use the local or global
SUPER.INI file.
*END*

%7%
Chapter 7:  Program Filesðððððððððððððððð >

Here is a list of the files that come with SUPER-MAINT:

Executable Files:

SM.EXE                 SUPER-MAINT maker
SME.EXE                SUPER-MAINT Editor
SMH.EXE                SUPER-MAINT Help Facility
SMSET.EXE              SUPER-MAINT Setup Facility
INSTALL.EXE        Automatic Installation Program
S.COM                  Small landscape printer for LaserJet
.cp

Initialization Files:

SM.INI                 Remembers the last options processed by
                       SUPER-MAINT
SME.INI                Contains all values set up in the SUPER-MAINT
                       Editor     in the Setup menu.  Information is used
                       by the Editor, Help Facility, and the Maker.
.cp

Language Definition Files:

LANG1.SM               Macro and Help Information for first programming 
                        language
LANG2.SM               Macro and Help Information for second programming
                       language
LANG3.SM               Macro and Help Information for third programming 
                        language
LINKER.SM              Macro and Help Information for linker
LIB.SM                 Macro and Help Information for librarian
LASTMACS.SM            last macro settings used
.cp

Files Read by Help Facility:

SUPER.HLP              Help information for all SUPER-MAINT Executables
SUPER.NDX              Help index needed to run Help
MANUAL.HLP             This manual formatted to be read by the Help
                       Facility
MANUAL.NDX             Help index needed to run Help

.cp

Files SUPER-MAINT Generates

(xxx refers to the unique file name you assign to these files)

xxxxxxxx.SMF           SUPER-MAINT Make file
xxxxxxxx               Microsoft Make or Nmake Make file
xxxxxxxx.lrs           1st memory model linker Response file
xxxxxxxx.lrm           2nd memory model linker Response file
xxxxxxxx.lrl           3rd memory model linker response file
xxxxxxxx.lbr           Library Response file
xxxxxxxx.lnt           PC-Lint Indirect file
xxxxxxxx.l             Clear+ List file
nmxxxxxx.bat           Batch file to compile with Debugging Info using
                       NMAKE
mxxxxxx.bat            Batch file to compile with Debugging Info using
                       MAKE
.cp

Self Extracting Files

(These files are on the distribution disk (or in the .zip file
used to distribute SUPER-MAINT on the bulletin boards).  They
contain SUPER-MAINT, and should NOT end up on your hard drive)

SMAK.EXE               Contains SUPER-MAINT executable files
SMUTIL.EXE             Contains Manual, help files and sample program
                       files
MS.EXE                 Contains Microsoft Compatible Language Definition
                       Files
BOR.EXE                Contains Borland Compatible Language Definition
                       Files
MIX.EXE                Contains Mix Compatible Language Definition Files
.cp

Information Files:

(The following files are contained on your distribution disk (or
.zip)
file and are NOT compressed, ie. they are ready to use as is)

README.SUP             Latest update file
REG.FRM                Registration Form
SUPER.INF              A summary of SUPER-MAINT features
VENDOR.DOC             Information for shareware distributors
SMUPDATE.TXT           History of additions and corrections to the
                       program
*END*

%8%

Chapter 8:  File Samplesðððððððððððððððð >

SUPER-MAINT Make File:

Here are the three macro sets used by this particular file (we are
only compiling in C and MASM, so we use that set of macros and
the linker set of macros.  Chapter 3 explains a macro set.

.cp

L1CO = -c
L1M1 = -AS
L1M2 = -AM
L1M3 = -AL
L1ND = 
L1D = -Zi -Od
L1F1 = 
L1F2 = 
L2CO = 
L2M1 = 
L2M2 = 
L2M3 = 
L2ND = 
L2D = -Zi
L2F1 = 
L2F2 = 
.cp
LNCO = 
LNM1 = 
LNM2 = 
LNM3 = 
LNND = /E
LND = /CO
LNF1 = /NOE
LNF2 = /ST:25000
CPY = SAMPLE.C+SAMPLE1.C+SAMPLEA.ASM
TNAMES = 
        SAMPLE.OBJ&
        SAMPLE1.OBJ&
        SAMPLEA.OBJ

As long as notes don't have any of the symbols used in macros or
action blocks in them, they don't need any special symbols or
formatting.  Also, NOTES MUST NOT BE ON THE SAME LINE WITH A MACRO
OR ACTION BLOCK.
.cp

SAMPLE.OBJ:  C:\CODE\SAMPLE.C
         CL $(L1)  C:\CODE\SAMPLE.C

SAMPLE1.OBJ:  C:\CODE\SAMPLE1.C
         CL $(L1)  C:\CODE\SAMPLE1.C

SAMPLEA.OBJ:  C:\CODE\SAMPLEA.ASM
         MASM $(L2)  C:\CODE\SAMPLEA.ASM ;

Notice the semi-colon (;) at the end of the command line in the
assembler action block.  This was placed there by the SUPER-MAINT
Editor to prevent the assembler from stopping for responses during
a build.  (This is user definable in the Setup Menu.
.cp

sample.txt: placebo
         COPY $(CPY) SAMPLE.TXT

The above action block deserves special notice for several
reasons.  It is an example of an action block you might put in
manually (the SUPER-MAINT Editor does not generate action blocks
using DOS commands).

        1.  It uses a DOS command on the action line.  SUPER-MAINT
        supports these DOS commands (cd, chdir, chkdsk, cls, comp,
        copy, del, dir, diskcomp, diskcopy, fc, find, format, mem,
        mkdir, md, print, ren, remdir, rd, xcopy).
.cp

        2.  A Placebo has been used for the dependent.  This is any
        word that doesn't represent an actual file.  This allows
        SUPER-MAINT to execute the command on the second line of the
        action block.  The first line of an action block MUST ALWAYS
        have a target and a dependent.  The target is the file to be
        created, the dependent is the file(s) it is created from. 
        You may always use a placebo for the dependent.  If you do
        the command line will ALWAYS be executed, each time you make
        your program. 

        3.  No path was specified for the dependent.  SUPER-MAINT
        will look for the dependent in the current (default)
        directory.
.cp

        4.  The target is not an object file, or an .exe, .com, or
        .bat file.  SUPER-MAINT generates a message that it doesn't
        know where you want the target file, and that it is putting
        it in the current (default) directory.
        5.  A user defined macro has been used (CPY).  The other way
        to do this would be to put the whole command right on the
        command line.  Example -- copy sample.c+sample1.c sample.txt 
        Either method is acceptable.  By the way you can add commands
        directly to the command line on command lines that use macro
        sets such as (L1).  Just type them after the (L) macro.  You
        can also put user defined macros there if you want.  The only
        limit is that the whole command line, including whatever is
        contained in macros may not exceed 128 characters.
.cp

sample.txt: c:\code\sample.c c:\code\sample1.c c:\code\samplea.asm
         COPY $(CPY) SAMPLE.TXT

Here's the same action block without the placebo.  Notice the
multiple dependents.  SUPER-MAINT can handle up to 18 dependents
in an action block (if there's room for them on a line).

SAMPLE.EXE: $(TNAMES)
         LINK $(LN)  @SAMPLE.LNK


Action blocks MUST be two lines with no blank lines in between
them, as shown above.
.cp

As you can see there is no special format for Notes except that
they must not have the format of a macro or a target/dependent
line.  The only trouble with using a LOT of notes is that it slows
down the working of SUPER-MAINT (although in my tests on an
80386/16 I haven't noticed any real difference in time.  I have
been using this file for testing and you will agree it is quite
verbose!).  So the rules for notes are-

        Always put notes on their own line in the file.  For
        clarity's sake skip a line between notes and macros or action
        blocks.

        Never use symbols in notes that are used in macros or action
        blocks (equal sign, colon, dollar sign, etc).

        Be sparing with your notes.  (Do as I say, not as I did!)
.cp

Linker Response File

SUPER-MAINT makes three of these files, one for each memory model. 
When you call SUPER-MAINT it calls the correct response file for
the memory model you are currently using.

(Microsoft C Example)

SAMPLE.LRS     SAMPLE.LRM     SAMPLE.LRL
SAMPLE+        SAMPLE+        SAMPLE+
SAMPLE1+       SAMPLE1+       SAMPLE1+
SAMPLEA        SAMPLEA        SAMPLEA
SAMPLE         SAMPLE         SAMPLE
SAMPLE         SAMPLE         SAMPLE
SLIB+          MLIB+          LLIB+
SMYLIB         MMYLIB         LMYLIB
nul.def        nul.def        nul.def
.cp

Librarian Response File

(Microsoft LIB example)

SAMPLE.lib
Y
SAMPLE&
SAMPLE1&
SAMPLEA
nul







.cp

Microsoft MAKE/NMAKE File

L2CO = 
L2M1 = 
L2M2 = 
L2M3 = 
L2ND = 
L2D = /Zi
L2F1 = 
L2F2 = 
L3CO = -c
L3M1 = -AS
L3M2 = -AM
L3M3 = -AL
L3ND = 
L3D = -Zi -Od
L3F1 = L3F2 = 
.cp
LNCO = 
LNM1 = 
LNM2 = 
LNM3 = 
LNND = /E
LND = /CO
LNF1 = /NOE
LNF2 = /ST:30000
TNAMES = SAMPLE.OBJ SAMPLE1.OBJ SAMPLEA.OBJ 

.cp

SAMPLEA.OBJ:  SAMPLEA.ASM
         MASM $(L2CO) $(L2M1) $(L2ND) $(L2F1) $(L2F2)  SAMPLEA.ASM;

SAMPLE.OBJ:  SAMPLE.C
         CL $(L3CO) $(L3M1) $(L3ND) $(L3F1) $(L3F2)  SAMPLE.C

SAMPLE1.OBJ:  SAMPLE1.C
         CL $(L3CO) $(L3M1) $(L3ND) $(L3F1) $(L3F2)  SAMPLE1.C

SAMPLE.EXE: $(TNAMES)
         LINK $(LNND) $(LNF1) $(LNF2)  @SAMPLE.LRS

.cp

Batch File for MAKE/NMAKE
(Call MAKE or NMAKE with this batch file to use the macros that
embed CodeView information into your program)

make L1Nd=$(L1D) L2ND=$(L2D) L3ND=$(L2D) LNND=$(LND) SAMPLE








.cp

PC-lint 'Indirect' File

SAMPLE.C
SAMPLE1.C
.cp

Clear+ 'List' File

SAMPLE.C
SAMPLE1.C
*END*

%9%
Chapter 9:  About Sharewareðððððððððððððððð >


Shareware, EmmaSoft, and Help
ðððððððððððððððððððððððððððððððððððððððððððð >

Shareware distribution gives users a chance to try software before
buying it. If you try a Shareware program and continue using it,
you are expected to register.  When you register your copy of
SUPER-MAINT you will receive the latest version on a disk and a
printed version of this manual.  You will also be assigned a
serial number which entitles you to technical support. 
.cp

Copyright laws apply to both Shareware and commercial software,
and the copyright holder retains all rights, with a few specific
exceptions as stated below. Shareware authors are accomplished
programmers, just like commercial authors, and the programs are of
comparable quality. (In both cases, there are good programs and
bad ones!) The main difference is in the method of distribution.
The author specifically grants the right to copy and distribute
the software, either to all and sundry or to a specific group. For
example, EmmaSoft requires written permission before a commercial
disk vendor may copy their Shareware.  (See vendor.doc for more
information.)
.cp

Shareware is a distribution method, not a type of software. You
should find software that suits your needs and pocketbook, whether
it's conventional commercial software or Shareware (Many shareware
programs ARE commercial in that a registration fee is required
after a trial period.  For SUPER-MAINT this period is 30 days). 
The Shareware system makes fitting your needs easier, because you
can try before you buy. And because the overhead is low, prices
are low also. Shareware has the ultimate money-back guarantee --
if you don't use the product, you don't pay for it.

.cp

Distribution
ðððððððððððððððððððððððððððððððððððððððððððð >

EmmaSoft retains all rights to SUPER-MAINT.  You may distribute
SUPER-MAINT provided you comply with the following conditions:

        1.  NO FILES MAY BE CHANGED.  All text and settings must be
        as shipped originally from EmmaSoft.  The original .zip
        file(s) (SUPER.ZIP, or SUPER_A.ZIP and SUPER_B.ZIP) must be
        used to do this.  When unzipped it has a message confirming
        the authenticity of the files.  This both insures that they
        are, indeed, the original files, and helps protect against
        viruses.
.cp

        If you received SUPER-MAINT on a distribution disk you must
        make exact copies of all files on the disk.  You may then
        distribute SUPER-MAINT on another disk (containing all the
        files).  You MUST NOT compress the files yourself.  If you
        received a compressed version that does not display the
        message, "Authentic Files Verified", followed by a number and
        "EmmaSoft Co." it is NOT supported by EmmaSoft. Contact
        EmmaSoft immediately for a good copy.
.cp

        2.  PROFESSIONAL DISTRIBUTORS OF SHAREWARE (and other
        programs) MUST contact EmmaSoft before distributing
        SUPER-MAINT.  In catalogs there MUST be a line in the program
        description describing the registration fee, and somewhere in
        the catalog there must be a satisfactory explanation of the
        shareware concept, including the facts that all rights to
        this copyrighted program are retained by EmmaSoft, that it is
        NOT a public domain program, and that registration fee is
        required if the program is used beyond the trial period.  No
        more than a maximum of $10 (US) may be charged for the
        shareware disks (realizing this program may be include on a
        CD-ROM or some other disk containing many shareware programs
        exceptions may be made.  You may only distribute the program
        for more than $10 if you have written permission from
        EmmaSoft).
.cp

        3.  SYSOPs posting SUPER-MAINT on a Bulletin Board System may
        post the file SUPER.ZIP (which contains SUPER_A.ZIP and
        SUPER_B.ZIP), or the two files, SUPER_A.ZIP and SUPER_B.ZIP. 
        If the latter there must be a note in the file descriptions
        stating SUPER_A.ZIP is file "1 of 2" and SUPER_B.ZIP is "2 of
        2."

        4.  USER GROUPS may distribute SUPER-MAINT for free or for a
        small disk copying charge.  Please advise your members that
        the program is shareware and encourage them to register it if
        they end up using it.

        5.  INDIVIDUALS may give away copies of SUPER-MAINT provided
        that condition #1 (above) is met.
.cp

        6.  ALL:  It is strictly forbidden to distribute copies of
        SUPER-MAINT that have a serial number in the setup file. 
        Only copies of the program with all files AS SHIPPED FROM
        EMMASOFT may be distributed in any way.
.cp

ASP
ðððððððððððððððððððððððððððððððððððððððððððð >

The Association of Shareware Professionals (ASP) was formed to
educate shareware authors, distributers and the public about
shareware, to set standards for shareware, and to allow its
members to share resources and information.  Programs written by
ASP members are as diverse as conventional commercial programs,
but share certain standards.  Some of the ASP requirements include
that the programs are copyrighted (not public domain), that they
be fully functional (not partially functional "come ons"), and
that technical support be available for a minimum of three months
(there is no time limit on EmmaSoft's support).

All EmmaSoft shareware meets or exceeds ASP standards.

The ASP generally congregates on the shareware forum on
CompuServe.  For more information "go ASP".
.cp


Ombudsman Statement
ðððððððððððððððððððððððððððððððððððððððððððð >

Programmer's SUPER-MAINT is produced by a member of the
Association of Shareware Professionals (ASP).  ASP wants to make
sure that the shareware principle works for you. If you are unable
to resolve a shareware-related problem with an ASP member by
contacting the member directly, ASP may be able to help. The ASP
Ombudsman can help you resolve a dispute or problem with an ASP
member, but does not provide technical support for members'
products. Please write to the ASP Ombudsman at 545 Grover Road,
Muskegon, MI 49442-9427 or send a Compuserve message via
CompuServe Mail to ASP Ombudsman 70007,3536"

.cp

Technical Support
ðððððððððððððððððððððððððððððððððððððððððððð >

SUPER-MAINT was written by Dan Veaner.  Dan can be reached at
EmmaSoft, or CompuServe at 71460,2644.
 
Technical assistance is available ONLY to registered users.  You
must have a valid serial number to receive assistance.  Before
calling check the manual to make sure you are using SUPER-MAINT
properly.  If so, try using a different copy of the program and
see if the problem continues.

EmmaSoft is opened M-F 9-Noon and 1-5, and sometimes on Saturdays. 
When you call for assistance have the following information ready
(if you get the answering machine please leave your name, serial
number, a number where you may be called collect, and some good
times to reach you):
.cp

        1.  Your valid serial number.  (Type alt-v in the SUPER-MAINT
        Editor to see your serial number.)

        2.  Type and make of computer, printer, etc.

        3.  Which compiler, linker, etc. you are using.  PLEASE NOTE: 
        EmmaSoft does not support compilers, linkers, and so on.  We
        only support our own product.  If you are having a problem
        with a program SUPER-MAINT calls, please call tech support at
        the company that makes that program.

        4.  A concise explanation of the problem (what you tried to
        do, what actually happened.  How many times you tried it.
        Etc.)
.cp

EmmaSoft is very interested in hearing your suggestions for future
features in SUPER-MAINT.  Also, if you use a compiler that you
would like specifically supported please let us know (if you could
send a sample make file and  a synopsis of the command line
structure it will help).
.cp

EmmaSoft BBS Support
ðððððððððððððððððððððððððððððððððððððððððððð >

You may always download the most recent EmmaSoft shareware from
the EmmaSoft Shareware Board(ESB) Bulletin Board Service.  

Technical support is also offered here.  Registered users may gain
access to special tech support sections that may have files (such
as new language definition files) useful in using SUPER-MAINT.

The BBS is also open to the public.  There are many programs and
files available for downloading, and no restrictions on doing so
beyond the 45 minute daily time limit.  There is an extensive
collection of programs by ASP authors.  Please avail yourself of
this collection of exceptional programs.
.cp

There is no charge for using the ESB (the phone company will
charge your phone bill for long distance calls).  The BBS is
available 24 hours a day.  Set your modem to 2400 or 1200 bps,
N,8,1.  Then call 607-533-7072.
*END*

%A%
Appendix A: Error Messagesðððððððððððððððð >

SUPER-MAINT generates a number of error messages when an error is
generated,  or a condition occurs where you should know about
something that has  happened or not happened.  Here is a summary
of the messages: 
.cp

ERRORS:

SM100:         Unknown error.
SM101:         Environment Problem.
SM102:         Can't find command.com.
SM103:         Invalid command.com.
SM104:         Not enough memory.
SM105:         Help system needs a topic to run.
SM125:         Can't find file to open.
SM126:         Lost count of compiler files.
SM127:         Can't find text editor.  Check Path setting in Setup.
SM128:         Can't find SUPER-MAINT files.  
               Make sure you have set the SUPERFILES environment
               variable.
.cp
SM129:         Can't find SUPER-MAINT Help Facility.  Check Path
               setting in Setup.
SM130:         Can't find SUPER-MAINT initialization file.
SM131:         SUPERFILES Environment not set.
SM132:         Can't Find local SUPER-MAINT initialization file (Use
               Setup)
.cp

MAKER ERRORS:

SM170:         No Make File Specified.
SM171:         Can't open (filename).  Try entering drive and path.  
                        Example: sm c:\\sm\\filename
SM172:         Don't know where to put (file).
               Putting target in (obj file directory if defined, 
                       default directory, otherwise).
SM174:         Compiler Error.  SUPER-MAINT Stopping.
SM175:         Can't find file:  [filename].
SM176:         Building [filename].
SM177:         Can't Change File Date.
SM178:         Can't Generate Help Index.
SM179:         Can't save initialization file.
.cp

WARNINGS AND MESSAGES:

SM401:         No files with .C or .H extensions.  File not made.
SM402:         Can't Make PC-Lint File Name.  File Not Made.
SM403:         Can't Make Clear+ File Name.  File Not Made.
SM404:         Can't Make Link Res File Name.  File Not Made.
SM405:         Can't open Link Res File.  File Not Made.
SM406:         Can't Open Clear+ File.  File Not Made.
SM407:         Can't Open PC-Lint File.  File Not Made.
SM408:         Internal Error Making File Name.  File Not Made.
SM409:         Can't Make Executable File Name.  File Not Made.
SM410:         Can't Make Map File Name.  File Not Made.
SM411:         Can't Open Macro File.  Can't construct MS Make File.
SM412:         Can't Make Microsoft Make File Name.  File Not Made.
SM413:         Can't Open Microsoft Make File.  Can't Save The File.
SM414:         Can't Open Microsoft Debug Batch File.  Can't Make The
               File.
.cp
SM415:         Can't Make Lib Res File Name.  File Not Made.
SM416:         Can't open Lib Res File.  File Not Made.
SM417:         Can't Make SUPER-MAINT Make File Name.  File Not Made.
SM418:         Can't Open Macro File.  Can't construct SUPER-MAINT Make
               File.
SM419:         Can't Open SUPER-MAINT Make File.  Can't Save The File.
SM420:         Index Generated Successfully.
SM421:         Creating Help Index.
SM422:         Object files Erased.
SM423:         Dependents Touched.  File Dates Changed.
SM424:         Not enough memory to update memory model list.
SM425:         Can't open initialization file.
*END*

%B%
Appendix B: Program Specificationsðððððððððððððððð >

SUPER-MAINT will work on IBM or true compatible XT, AT, 80386,
80486, with a hard disk and color or monochrome system. There is
no special printer coding, so SUPER-MAINT should work on any
printer.  However, it has been TESTED on an HP LJII and a STAR
SG-10.  If you try to print the manual to your printer and it
doesn't work, print it to a file, then use the DOS PRINT command,
your word processor, or some other print utility to print out the
manual.
.cp

SUPER-MAINT will work with any compiler that uses the command
format:

              compiler_name [command_flags] file_to_be_compiled

or:

  compiler_name [command_flags] file_to_be_compiled [command
flags]

An example would be the Microsoft C command:

              cl  -c  -AL  myfile.c

.cp

3 Languages supported at a time
3 Memory Models supported at a time
95 Maximum Action Blocks
18 Maximum Dependents in one Action Block
128 Char Maximum Length of Command Line (Including expanded      
  macros)
419 Lines Maximum length of Make File (Including comments -      
     about 6 pages - IF you use the SUPER-MAINT Editor)
20 Disk Drives Maximum
100 Directories per Drive

11 Libraries per Memory Model
Number of files per directory is limited by available memory

Setup (SMSET) has beginner (novice) and advanced user modes

Microsoft, Borland and Mix Programming languages for the IBM PC
and compatibles are supported.
.cp

See the file "readme.sup" for information on other supported
compilers, linkers, etc. and their formats.  The file "super.inf"
has all the latest specs for this version of SUPER-MAINT.
*END*

%C%
Appendix C: The Landscape Printerðððððððððððððððð >

The small landscape printer (S.COM) is a convenience for HP
Laserjet (and compatible) owners who's source code is wider that
80 columns.  It prints using the small line printer font on both
sides of the page to save paper.  The syntax for using this
program is as follows:
.cp

              s [filename] [-i -h -l -s]

filename        the name of the file you want to print

-i             Information only.  Tells how many pages and sheets of
               paper you need, but does not print the file.

-h             Help screen

-l             Adds line numbers to the beginning of each line

-s             Print on a single side of the paper only.
.cp

S.COM prints all the odd pages first.  Then you turn the paper
around and replace it in the paper tray to print the event pages.

S.COM is part of the Programmer's SUPER-MAINT package.  It is
copyrighted software, and may not be distributed except as part of
SUPER-MAINT.
*END*

Appendix D: Registration Formðððððððððððððððð >

If you use SUPER-MAINT beyond the 30 day trial period you must
register your copy.  When you register you will receive the latest
version of SUPER-MAINT on disk (with the registration reminders
removed from the programs), and a printout of the manual.  You
will also receive notifications of updates, and discounted
upgrades.  You will also receive a serial number (to display press
alt-v) with will entitle you to technical support.

Distribution disks (registration NOT included) are $6 (plus S&L:
$2 for the first disk, .50 for each additional disk*).

Registration costs $55 plus $2.50 shipping & handling.  New York
residents MUST include sales tax (Mario insists!).  Help make the
shareware concept work by registering.

I would also like to hear your suggestions for new features in
future upgrades.  The policy at EmmaSoft is to consider all
suggestions, and incorporate as many of them as is deemed feasible
and appropriate.

              Programmer's SUPER-MAINT ORDER FORM

                 Name:__________________________
       Street Address:__________________________
                      __________________________
          City/ST/Zip:__________________________

            Disk Size:________
              Payment: check___  MC___ VISA___
            MC/VISA #:__________________________
              Expires:__________________________


        No. of Distribution Disks:______  Cost:_____________
         No. of Registered Copies:______  Cost:_____________

                                      Subtotal:_____________
                           Shipping & Handling:_____________
                        NY Tax (if applicable):_____________
                                Total Enclosed:_____________


       Type of Computer_____________________________________
       Type of Printer______________________________________
       Compiler(s) used_____________________________________

Where did you get your trial
copy?___________________________________

Send this to:         EmmaSoft
                      PO Box 238
                      Lansing, NY 14882-0238

Or register with MC or VISA by phone:    (607)533-4685
                            by modem:    (607)533-7072

All funds must be in U.S. funds and drawn on a U.S. Bank.

*U.S. only.  If registering from outside the US please write about
Shipping 
charge before paying.  (Or call, or send a message to my
Compuserve address 
71460,2644).  Thank you.

                                               Index

action block. . . . . . . . . . . . . . . . . . . . . 16, 17, 44, 45, 55
ASM . . . . . . . . . . . . . . . . . . . . . . . 12, 13, 36, 44, 45, 47
ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50-52
Association of Shareware Professionals. . . . . . . . . . . . . . 50, 51
batch . . . . . . . . . . . . . . . . . . 10, 11, 21, 28, 42, 43, 47, 54
BBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 2, 30, 52
Borland . . . . . . . . . . . . . . . . . . . . . . . . . .2, 19, 43, 55
Clear+. . . . . . . . . . . . . . . . . 2, 8, 21, 28, 35, 36, 42, 48, 53
command. .8-12, 14, 16-20, 23, 25, 27, 29-31, 33, 36, 38, 39, 44, 45, 52
                      53, 55
command line. . .8, 9, 11, 12, 14, 16-19, 25, 29, 31, 33, 44, 45, 52, 55
comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 55
compiler. 8, 10-12, 17, 18, 21, 25-27, 29, 30, 33, 34, 36-41, 51, 53, 55
                      58
compressed. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43, 49
copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . 1, 6, 49
date. . . . . . . . . . . . . . . . . . . . . . . . . . . .8, 11, 17, 53
default . . . . . . . . . . . . . . . . . . . .26, 29, 34-36, 41, 45, 53
delete. . . . . . . . . . . . . . . . . . . . . . . . . . 13, 24, 25, 41
dependent . . . . . . . . . . . . . . . . . 8, 16-19, 25, 26, 30, 45, 46
directory . .9-12, 15, 17, 22, 23, 26-28, 32, 35, 37, 40, 41, 45, 53, 55
distribution. . . . . . . . . . . . . . . . . . . . . .6, 43, 49, 57, 58
DOS . . . . . . . .2, 7, 9-13, 17, 20, 22, 24, 27, 29, 31-33, 37, 45, 55
drive . . . . . . . . . . . . . . . . .11, 12, 17, 22-24, 35, 43, 53, 55
edit help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
editor. . . 7-9, 11-13, 15, 16, 21, 22, 24-29, 31-37, 42, 45, 51, 53, 55
EmmaSoft. . . . . . . . . . . . . . . . . 1, 2, 6, 29, 30, 49-52, 57, 58
environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 53
erase object files. . . . . . . . . . . . . . . . . . . . . . . . . . 41
error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 53
exit. . . . . . . . . . . . . . . . . . . . . . . . . 11, 15, 22, 27, 36
files . . . . . . . . . . . . . . . . . . 7-18, 20-43, 46, 49, 50, 52-55
flag. . . . . . . . . . . . . . . . . . . . . .18, 19, 25, 26, 30, 39-41
global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 41
help. . . . . . 2, 7-9, 11, 14, 15, 21, 23, 26, 27, 29-34, 37, 40-43, 49
                      51-54, 56, 57
indirect. . . . . . . . . . . . . . . . . . . . . . . 21, 28, 34, 42, 48
INSTALL.EXE . . . . . . . . . . . . . . . . . . . . . . . . . 10, 30, 42
installation. . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 42
language definition files . 10, 12, 19, 25-27, 29, 30, 33, 36, 37, 42-44
                      52
librarian . . . . . . . . . . . . .11, 18, 19, 21, 23-27, 29, 30, 42, 46
library . . . . . . . . . . . . . . . . . 17, 19, 25, 28, 34, 35, 37, 42
link. . . . . . . . . . . . . . . . . . . . . .8, 12, 16, 36, 45, 47, 53
linker. . . . . . . . .11, 18, 19, 21, 23-30, 34, 39, 41, 42, 44, 46, 51
list. . . . . 10, 15, 19, 21, 22, 24, 28, 30, 34, 35, 37, 39, 42, 48, 54
local . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 37, 41, 53
macro . . . . . . . . . . . . . .16, 18-20, 22, 24-27, 41, 42, 44-46, 54
macro set . . . . . . . . . . . . . . . . . . . . . . . . .20, 25-27, 44
make file 8, 9, 12, 14, 16, 18, 22, 24, 28, 32, 34, 36, 38-42, 44, 52-55
make menu . . . . . . . . . . . . . . . . 12, 13, 21, 22, 25, 28, 30, 33
maker . . . . . . . . . .8, 9, 16, 19, 25, 26, 28, 33, 36, 38-40, 42, 53
manual. . . . . . . . . . . 7, 8, 15, 25, 31, 32, 42, 43, 49, 51, 55, 57
memory model. . . . . . 8, 13, 18, 19, 25, 28, 30, 34, 37-42, 46, 54, 55
Microsoft . . . . . . . 2, 11, 12, 21, 28, 34, 36, 41-43, 46, 47, 54, 55
Microsoft MAKE. . . . . . . . . . . . . . . . . . 21, 28, 36, 42, 47, 54
Mix . . . . . . . . . . . . . . . . . . . . . . . . . . . .2, 22, 43, 55
mouse . . . . . . . . . . . . . . . . . .7, 8, 11, 15, 21-23, 27, 31, 33
NMAKE . . . . . . . . . . . . . . . . . . . . . . 21, 28, 36, 42, 43, 47
on line . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 8, 15, 31
PC-lint . . . . . . . . . . . . . . . . .2, 8, 21, 28, 34-36, 42, 48, 53
placebo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 45
printing. . . . . . . . . . . . . . . . . . . . . . . . . . . .7, 15, 31
quick quit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11, 27
quit. . . . . . . . . . . . . . . . . . . . . . . . . . . 11, 21, 27, 34
registration. . . . . . . . . . . . . . . . . . . . 6, 7, 43, 49, 50, 57
reset . . . . . . . . . . . . . . . . . . . . . . 22, 24, 26, 27, 40, 41
response file . . . . . . . . . . .8, 12, 21, 22, 24, 28, 34, 36, 42, 46
review. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21, 34
S.COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 56
sample. . . . . . . . . . . .10, 12-14, 23, 24, 26, 36, 38-41, 43-48, 52
self extracting files . . . . . . . . . . . . . . . . . . . . . . . . 43
serial number . . . . . . . . . . . . . . . . . .2, 7, 27, 29, 49-51, 57
setup . .9, 10, 12, 15, 21, 22, 28-30, 33, 34, 37, 40-42, 45, 50, 53, 55
                                                                                           
shareware . . . . . . . . . . . . . . . . . . . . 1, 2, 6, 43, 49-52, 57
SM.EXE. . . . . . . . . . . . . . . . . . . . . . . . . . .8, 19, 38, 42
SME.EXE . . . . . . . . . . . . . . . . . . . . . . . . . .8, 15, 21, 42
SMH.EXE . . . . . . . . . . . . . . . . . . . . . . . . . .9, 15, 31, 42
SMSET.EXE . . . . . . . . . . . . . . . . .9, 10, 15, 22, 24, 28, 33, 42
source code . . . . . . . . . . .8, 12, 17, 22-24, 27, 28, 34-36, 38, 56
SUPER.INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 41
SUPER-MAINT . . . . . . . . . . . . . . 1, 2, 7-19, 21, 22, 24-46, 49-58
SUPERFILES. . . . . . . . . . . . . . . . . . . . . . 10, 11, 15, 37, 53
target. . . . . . . . . . . . . . . . . 8, 16-18, 25, 26, 29, 45, 46, 53
target/dependent line . . . . . . . . . . . . . . . . . . . . .16-18, 46
technical assistance. . . . . . . . . . . . . . . . . . . . . . 2, 7, 51
text editor . . . . . . . . . . . . . . . . . . . .9, 13, 28, 31, 35, 53
TNAMES. . . . . . . . . . . . . . . . . . . . . . . . .18-20, 44, 45, 47
toolbox . . . . . . . . . . . . . . . . . . . . . .7, 21, 26, 27, 29, 31
touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40, 41
version . . . . . . . . .1, 7, 8, 10, 21, 27, 29, 31, 32, 34, 49, 55, 57

