home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
418.lha
/
Muff_v1.3a
/
Muff1.3.doc
< prev
next >
Wrap
Text File
|
1990-07-27
|
10KB
|
217 lines
ABOUT MUFF
----------
The concept for MUFF, all beta testing, and original 1.0 code by Dave
Wilson. MUFF versions 1.1, 1.2, and 1.3 and Documentation for same written
by George Belicka. MUFF is Copyright 1990 by Hyperion Systems. Hyperion
Systems is: George Belicka, David Wilson, Micah Cox, Jim Long, and Nathan
Zook.
MUFF is a shareware release, NOT public domain. We therefore
request that if you use it, please send us $10 for our effort. This
contribution will enable us (and inspire us) to continue to write useful
Amiga programs which in the end will benifit YOU. If you are really dirt
poor, we would still like to hear from you, so drop us a line. The
C source code to MUFF is available for $30. If you are presently working
on the next greatest Shareware release, but are having programming
problems, write us. Depending on the work we are always interested in
helping solve your C or assembly coding problems, and possibly releasing
the final program under the Hyperion Systems label.
Write Hyperion Systems at:
George K. Belicka Jr
PSC 2 Box 22832
Keesler AFB, MS 39534
Or contact us through our BBS:
The Hyperion Project BBS
601-432-2845
110 megabytes
1200/2400/9600/19200 baud
Hyperion Systems would like to thank Mike Thomas, the creator of the
AmiExpress BBS system, for all the programming tips he provided us with;
and Phil Julias for the unlimited access on his bulletin board...
MUFF.ZOO
--------
The MUFF.ZOO should contain the following files:
Muff1.3a - The operational MUFF program, version 1.3a
Muff1.3.DOC - This documentation file
Muff.cfg - An example configuration file (the one we use)
zzzzpad - Padding file (duh)
Permission is given to sysops of public bulletin boards and online
services to post this ZOO so long as it remains unaltered and free of charge.
The ZOO may also be included on any public domain library diskette as long
as all files are included, and no fee above $10 is charged for the
diskette. If your user group is including this file on a club disk available
for public sale, we ask that you please write and inform us of this.
MUFF 1.3 (released version) - Documentation
--------------------------------------------
MUFF version 1.3 operates the same as MUFF version 1.2, except for the
inclusion of a configuration file. MUFF is no longer hard-coded to look
for A68 (PD assembler) and LC (Lattice compiler). The configuration file
is called MUFF.CFG, and is located in your current working directory, or
located in your INCLUDE: directory. MUFF will first read the configuration
in the current directory and use it, or if MUFF cannot find the file it
will look next to the INCLUDE: directory. This allows you to place a
default configuration file (values you commonly use) in your INCLUDE:
directory, or if special values are needed for your present work, the local
configuration will be used.
The configuration file looks as follows and is included with the MUFF
package. This file is editable by any ED (ASCII) type of editor.
FinalOut
A68
LC -ccdstu -v
LIB:lc.lib LIB:amiga.lib SD SC ND CHIP
FinalOut would be the filename you want for your output code after
linking (the [-d] option would ignore this field, see below). A68 is the
assembler you wish to invoke, this could be changed to ASM from Lattice.
The LC [flags] is, of course, the command to invoke the Lattice compiler. I
do not know if Manx Aztec C could be substituted on this line, but if the
Manx compiler allows the filename to be the last parameter on a commandline
(as LC does) then Manx's compiler should be insertable. Finally, the
libraries and flags used for BLINK are listed. Invoking BLINK is still
hard coded into MUFF 1.3. Obviously any flags on these lines are editable.
If we recieve enough response we will be expanding this configuration
file to include much more flexibility... If you want it, you'll have to
ask for it... We welcome all suggestions...
MUFF 1.2 (unrleased version) - Documentation
---------------------------------------------
Syntax: MUFF [-d] <filename.a> <filename.c> <filename.o>...
MUFF (please don't ask about the name, it's a long story) started life
as a little tool we wrote to replace LMK. We found ourselves spending
more time compiling, assembling and blinking than working on our code, so
we decided to once and for all fix it...
Say, for example, you were working on a program that consisted of two
parts, one written in C, and one written in assembly. Normally you would
have to assemble the assembly into an object file, compile the C source
to an object file, and then finally BLINK them together along with your
startup object code (c.o, cbak.o, arpc.o). This process involves
your manually having to complete each step. MUFF takes care of the drudgery
of this by allowing you to complete all three steps with one commandline.
CLI SESSION BEFORE MUFF:
------------------------
1> LC -ccdstu -v -Hincludes.sym sourcecode.c
(Lattice would now compile: sourcecode.c)
1> A68k assemcode.a
(Assembler 68000 would now assemble: assemcode.a)
1> BLINK from c.o sourcecode.o assemcode.o to FINAL library lc.lib
amiga.lib SD SC ND CHIP
(Blink would now link: c.o sourcecode.o assemcode.o)
CLI SESSION WITH MUFF:
-----------------------
1> MUFF c.o sourcecode.c assemcode.a
(MUFF will now automatically compile sourcecode.c, assemble assemcode.a
and link the three objects together)
No, MUFF isn't actually a compiler, assembler, or linker; all MUFF does
is process your commandline and call the appropriate utility to process
each specified file. When MUFF detects a file followed by .a it will
automatically assume that file is in assembly language and attempt to
assemble it. Similarly, if a file is followed by .c it is assumed to be
C source code; and is compiled. Object files (.o) are skipped until linking
occurs, but when linking starts they are linked in with the other files
in the order they were listed on your commandline. This means you will
want to make sure you always specify your startup code (c.o, cbak.o or
arpc.o) first on your commandline.
If a file fails to compile or assemble, MUFF will detect the absence of
the appropriate object file that should have been generated. This will
cause the linking to abort. If linking was already disabled (-d flag) MUFF
still informs you of the missing object files. A complete list of MUFF
errors is shown at the end of this file.
If an error does occur in a particular file, and the linking fails,
relax. You won't have to re-assemble and re-compile all your code, only
re-assemble/compile the file that failed. Specify all the other files as
object files (.o) (because they were just assembled/compiled to object) and
MUFF will re-assemble/compile the one problem file, and then link normally.
Here is an example of this technique:
1> MUFF c.o sourcecode.c assemcode.a
(Let's assume the assembly code assembles ok, but you recieve an error
when compiling sourcecode.c. Because sourcecode.c didn't compile, the
linking aborted. After correcting the error in sourcecode.c the
following commandline could be used.)
1> MUFF c.o sourcecode.c assemcode.o
(Notice this time, we specify assemcode.o because assemcode.a was
assembled without error the first time we invoked MUFF. Since we
made no changes to this code, assemcode.o is still a valid object file
for linking.)
The usefulness of this becomes more apparent when you are working with
a large number of files to compile and assemble, and an error appears in
one of the files. Instead of waiting to re-compile/assemble all of the
specified files, you merely reference the object files made on the first
attempt.
MUFF also has an optional flag [-d] which, when used, will disable
MUFF from linking your object files. Any assembly or C source code files
on the commandline will be assembled/compiled normally, but no linking will
occurr. When using this option, any object files specified on the
commandline will be ignored.
ERROR CODES:
------------
1 - Unknown filetype - This error occurs when MUFF detects a file with
no extension. MUFF will display the problem
filename.
2 - Unknown extension type - This error occurs when MUFF finds a file
with an extension other than .a .o or .c.
Muff will display the problem filename.
3 - Unknown flag type - This error occurs when MUFF finds a flag specified
that it does not understand. Presently the only
flag in use is -d.
4 - No files specified - This error occurs when MUFF has no work to do.
5 - Unable to locate MUFF.cfg - This error occurs when MUFF cannot find
the file MUFF.cfg in the current directory
or in the INCLUDE: directory.
6 - Duplicate files on commandline - This error occurs when MUFF has been
given duplicate filenames. The problem
filename will be displayed.
7 - Unable to locate file - This error occurs when MUFF cannot locate a
specified filename. The problem filename will
be displayed.
8 - Linking aborted, unable to locate object - This error occurs when a file
fails to compile or assemble.
The problem filename will be
displayed.