README.md
=====
UNMAC
=====

Robert Walraven
University of California
Applied Science
Davis, CA 95616
(916)752-3300

UNMAC is a FORTRAN program to convert an RT-11 object file into a source
or listing file. Object files are much more useful to decode then SAV
files because they contain information such as subroutine names, variable
names, psect info, etc. You will be suprised at how similar the output
of UNMAC looks to hand coding. This version of UNMAC has not been modified
in over a year, and will probably not be improved for some time. If
I get a chance I may try fixing some minor problems for Fall Decus.

This distribution contains complete sources and a command file for
building UNMAC. The file UNMAC7.SAV is an executable version that
was built with the FORTRAN-77 compiler. If you have a floating point
processor, you should be able to run this file directly. If it doesn't
run, use UNMAC.BLD to build a working version on your system.

UNMAC has an interesting internal diagnostic procedure built into it.
If you want to build a diagnostic version, execute the command file
UNMACD.BLD.

NOTES ON USAGE:

1. Be sure to specify the extension .OBJ for the input file.

2. If data and instruction attributes were not assigned correctly in
the original source, then the output of UNMAC will not be of use,
because UNMAC treats data and instruction psects differently:
for data psects only the octal code is output (with ASCII and RAD50
translations as comments), while for instruction psects code is
always output. In some cases, if a minor amount of data is mixed
into an instruction psect, you will be able to correct the output
source by inspecting the code and editing appropriately.

3. In some cases compilers do a strange thing: they output a 0 word
in a section of code, then go back later with a relocation assignment
to fill in the missing value. The BLISS compiler and the FORTRAN-77
both like to use this trick. If this occurs, you will have to do
a little editing to fix things up. A future release of UNMAC may
fix the code up automatically.

4. You may have some objects that are too big for UNMAC to handle.
This is because UNMACs internal tables are maintained completely
in memory and may overflow. A future release may maintain data
bases on disk.