Utilities 3 (Disk 38) (Mar 1987) : MemoryUtilities / FixHunk.DOC

                   FixHunk 2.0            12/06/86

FixHunk -- This program will modify executable files to allow them to run
in external memory.

  The Amiga loader (since ver 1.1) will try to load both CODE and DATA hunks
into FAST ram if available.  This causes problems with programs that use
data structures that must be in CHIP ram.  Commedore/Amiga provides the
ATOM utility to developers which allows them to modify object code to
specify where hunks will load, but ATOM works only on object modules.

What about all the existing programs available only in executable form?

FixHunk is the answer.  It works on executable files.  It forces all
DATA and BSS hunks in the file to be loaded into CHIP memory.  CODE hunks
will still load into FAST ram if available.  There is no way to determine
which specific DATA hunk should reside in CHIP ram, so FixHunk places them
all there.

Usage:  FixHunk {-vi} filename   where -v produces verbose output
                                       -i enters interactive mode

FixHunk modifies the executable file IN PLACE, so don't modify an original
file.  Only modify a copy.

----------------
Changes with version 1.2

   Fixed bug with allocation table that sometimes clobbered files with a
      large number of hunks.  Symptom was that the loader complained that
      the file was not a load module.
   Some files (Musicraft for one) consist of a single code hunk.  FixHunk
      version 1.0 and 1.1 would simply complain that it 'could do nothing
      to this file'.  Version 1.2 will now inform the user that the entire
      file MUST be loaded into CHIP ram and ask permission to do so.
      A 'Y' answer will modify the file.  A 'N' answer will exit with no
      changes.
        (I wonder how they make a single hunk file.  Cross development?)

Changes with version 1.2a

   Changed some message printouts so they only print in the verbose mode.
   Added summary of new hunk allocation on exit.

Changes with version 2.0

   Will now handle overlays.

   Interactive mode added with  -i switch.
      The interactive mode allows you to select where each DATA or BSS hunk
   will load into memory.
      You may select either CHIP, FAST or PUBLIC (either).  You will be
   prompted for each DATA and BSS hunk as follows:

Hunk #nnn:  (W-Type)  sssss  [C/P/Q/]?

   where:
         nnn    is a hunk counter (for reference purposes only).
         W      is P,C or F.  Shows Where the hunk currently loads.
         Type   is DATA or BSS -- shows hunk type.
         ssss   is the size of the hunk in bytes.

   You may reply:
      C or c    to make the hunk load into CHIP ram.
      P or p    to make the hunk public - loads into FAST if available.
      F or f    to make the hunk load into FAST ram only. (not recommended)
      <CR>      leave alone.  Do not modify loader code.
      Q or q    to exit interactive mode for this module.

   If you use the Q option to exit the interactive mode, the remaining
   DATA and BSS hunks in the module will not have their loader codes
   modified.  Interactive mode will resume at the next hunk header.

D.J.James