uvmac/docs/extras/fdisasm/a/index.html
2020-03-14 15:28:01 -04:00

1 line
7.1 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> FDisasm (Alpha) </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="index.html">
</head>
<body>
<div>
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="../../../index.html">minivmac</a>/<a href="../../index.html">extras</a>/<a href="../index.html">fdisasm</a>/a
- <a href="https://www.gryphel.com/c/c/feedback.html">feedback</a> </i>
</div>
<hr>
<h2 align=center>
FDisasm (Alpha)
</h2>
<hr>
<p> Download </p>
<blockquote>
<p>
<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdisasm200105.zip">fdisasm200105.zip</a>
(<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdisasm200105.inf.txt">info</a>)
a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
</p>
<p>
<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdplusv3-191208.zip">fdplusv3-191208.zip</a>
(<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdplusv3-191208.inf.txt">info</a>)
a disk image containing all the formatting information needed
to disassemble a Macintosh Plus ROM image
(version 3, final - checksum 4D1F8172).
</p>
<p>
<a href="roms.html">ROM Formatting Information</a> -
more images to disassemble other Macintosh ROMs.
</p>
</blockquote>
<p>
FDisasm is a formatting disassembler for Motorola 680x0 code.
It makes it possible to distribute the means to create an
annotated disassembly of copyrighted code (such as Macintosh
ROM images), without distributing that code or files derived from it.
</p>
<p>
To use FDisasm to disassemble the Macintosh Plus ROM, launch
Mini vMac and boot from a disk image containing
a system folder. Mount the fdplusv3-191208 disk image, and import
a copy of the Macintosh Plus ROM onto it. (Such as by using
<a href="../../importfl/index.html">ImportFl</a>.) Mount the
fdisasm200105 disk image, copy the FDisasm application
to the fdplus disk image, and then eject the fdisasm
image. Rename the ROM image
to &ldquo;bin&rdquo;, and then launch the FDisasm application. The
program displays a progress indicator, and quits when
it is finished. (It could take five minutes at 1x speed,
so set speed to &ldquo;all out&rdquo;. At &ldquo;all out&rdquo; speed it
takes under 10 seconds to finish on my Mac Mini.) When the program
finishes, the output is in a file named &ldquo;listing&rdquo;.
</p>
<p>
This listing file is over 2 megabytes. The program
MPW Shell 3.2.3 works in Mini vMac and can work with such
large text files. But probably almost nobody else has an
old copy of MPW. (The final version of MPW still available
for free download requires a Mac II or later.) Instead
you can export the listing file to the host computer
(such as by using <a href="../../exportfl/index.html">ExportFl</a>),
and find some program there that can view it. (For
OS X, TextWrangler would work, for example.)
</p>
<p>
<b>Warning</b> : Not enough people are paying
enough attention to FDisasm (especially me) for
it to be relied upon. If you notice something
odd in the output, double check it, and if
it is wrong, please report it to
<a href="https://www.gryphel.com/c/feedback.html">me</a>.
</p>
<p>
This listing file is derived (in terms of copyright
law) from the Macintosh Plus ROM, and so may not be
redistributed.
</p>
<p>
To disassemble the Macintosh 128/512 ROM, follow the above
instructions, except use the fdmac128-0.3.0 disk image, and
of course use a ROM image from a Macintosh 128 or 512.
And similarly for the Macintosh SE, Macintosh
II, and PowerBook 100 ROMs.
</p>
<p>
Here are some details about the formatting information
files used by FDisasm:
</p>
<p>
The only file required by FDisasm is &ldquo;bin&rdquo;. But if this is
all it finds, it will just create a hexadecimal dump of
the file. To disassemble code, it needs to know where
the code is. It looks for a file named &ldquo;bin_map&rdquo; for
this information. It also looks for a file named &ldquo;bin_names&rdquo;
for names of locations within &ldquo;bin&rdquo;, and for a file
named &ldquo;abs_names&rdquo; for names of absolute memory locations,
and for a file named &ldquo;trap_names&rdquo; for names of A-line
instructions. A file named &ldquo;format&rdquo; can give additional
formatting information, and comments to include in the listing.
</p>
<p>
The
<a href="../../findcode/index.html">FindCode</a>
tool can help to create the files &ldquo;bin_map&rdquo; and
&ldquo;bin_names&rdquo;.
</p>
<p>
The
<a href="../../findres/index.html">FindRes</a>
tool will create
an initial &ldquo;format&rdquo; file for Macintosh resources, and
also &ldquo;bin_map&rdquo; and a set of entry points to feed
to FindCode.
</p>
<p>
Besides ROM images, FDisasm can also disassemble
Macintosh 680x0 applications. But the code and other
resources are located in the &ldquo;resource fork&rdquo; of such
appplications, while FDisasm only operates
on the &ldquo;data fork&rdquo; of the file &ldquo;bin&rdquo;.
The <a href="../../getrsfrk/index.html">GetRsFrk</a> tool gets
the resource fork of a file you select, and saves
it into the data fork of &ldquo;bin&rdquo;.
An alternative is
<a href="../../aspack/index.html">asPack</a>,
which also saves the data fork and the meta data into &ldquo;bin&rdquo;,
in AppleSingle format.
</p>
<p>
FDisasm has some compile time options. The default values are
defined in &ldquo;source/CNFGDLFT.i&rdquo;, and these defaults
can be changed in &ldquo;source/CONFIGUR.i&rdquo;. For example,
the following variation outputs address and hex
fields, resulting in output that is not suitable for passing to an
assembler, but is more useful when working on the format file.
</p>
<p> Download </p>
<blockquote>
<p>
<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdis0003-200105.zip">fdis0003-200105.zip</a>
(<a href="https://www.gryphel.com/d/minivmac/extras/fdisasm/a/fdis0003-200105.inf.txt">info</a>)
variation of FDisasm.
</p>
</blockquote>
<p>
The software that has become FDisasm, FindCode, and
FindRes was my first serious programming
project, started in 1985 in Basic, and later converted
to Pascal, and now converted to C when I got back to
it recently. I wonder if 23 years to first
public release is any kind of record.
</p>
<p> See the
<a href="../../../appc/index.html">Compiling</a>
page for instructions on compiling FDisasm from the source code. </p>
<p> You can redistribute FDisasm and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING. </p>
<p> FDisasm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details. </p>
<hr>
<div>
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="../../../index.html">minivmac</a>/<a href="../../index.html">extras</a>/<a href="../index.html">fdisasm</a>/a
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
<br>
copyright (c) 2020 Paul C. Pratt - last update 1/5/2020
</div>
</body>
</html>