home *** CD-ROM | disk | FTP | other *** search
- 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.
-