problem? Any subroutine call in the address range $B000 to $FF00
   probably also has an equivalent In the VIC, but it's at a different
   address. This is where External Relinker comes in. External Relinker
   will find such subroutine calls end replace them with the
   corresponding C64 ROM routine calls - if we can identify the correct
   replacement (this is where the published ROM maps come in). If we
   already have a correspondence table constructed in an earlier session
   with External Relinker, we simply load it using the load command. But,
   if we don't have a table, External Relinker will use our answers to
   its queries to construct one we may have for future use. For the
   present example, suppose we have no table, just two ROM maps. We want
   to construct a table starting at $1000, so we start it by entering
   four zeroes (four zeroes denote the last entry in the table) using the
   Fill Memory Block command.

      F 1000 1003 00

   Then we start External Relinker:

      E 1200 13FF 1000 B000 FF00

   The first two parameters tell External Relinker where the start and
   end of the program we are working on are. The third says where the
   correspondence table starts. The last two give the address range we're
   interested in relinking. At this point External Relinker will start
   disassembling our program in from $1200 to $13FF, looking for
   references to addresses in the specified range of $8000 to $FF00. When
   it finds such an address it will first consult the correspondence
   table which starts at $1000. If no entry for the address is found, it
   will show the disassembled line containing the unknown address and
   wait for the entry of the correspondence address. We will look up the
   PET address in the published table, find its equivalent in the C64
   table, type the VIC address over the one on the screen, and press
   RETURN. HESMON will add the new correspondence to its table, alter the
   address reference in the program and then continue its search. On
   subsequent occurrences of this address HESMON will automatically make
   the specified replacement.


   F - Fill Memory Block

   This command is used to Set a section of memory to a particular value.
   The syntax is as foltows:

      F 1111 2222 33

   where 1111 and 2222 are the first and last addresses (inclusive) of
   the section to be filled and 33 the hexadecimal quantity to be
   written. See, for example, the usage in the example of External
   Relinker.


   G - Go (execute program)

   This command transfers control of the C64 to a M.L. program; that is,
   it starts execution of the M.L. program. It may be used with or
   without an address parameter. If no address parameter is given,
   execution is begun at the address shown in the program counter (PC) of
   the Register Display command. For example you may exit HESMON and
   'warm start' BASIC by typing:

      G A414

   The C64 will respond, "READY.". For another example, see Section 1.


   H - Hunt for a Sequence

   This command locates a specific sequence of bytes in memory. It has
   two forms, as follow:

      H 1111 2222 33 44 55....
      H 1111 2222 "ABCDF"

   where 1111, 2222 are the first and last addresses of the range of
   memory to be searched and 33, 44, etc. are the hexadecimal byte(s) to
   be found, separated by spaces. The second form allows the bytes to be
   specified as characters enclosed by quotes. For example, to find all
   subroutine calls to the character output routine (AB47) in the C64
   ROM's we would type:

   H A000 FFFF 20 47 AB

   HESMON responds with a list of all such subroutine calls. Note that,
   as usual, the low and then high order bytes of the address were
   specified.

   To find all occurrences of the string 'READY' (there is only one, at
   $A378), we would type:

      H A000 FFFF "READY"


   I - Interpret Memory

   This command displays the contents of memory as 'ASCII' characters. It
   is similar to the Memory Display command except that it shows 32
   characters per line. It may be used with either one or two parameters
   and its output may be scrolled just as with the Disassemble command.
   For example, to see the table of BASIC's keywords and error messages,
   type:

      I A000 A300

            K.J. REVEALED TRILOGY    PAGE [165]    (C)1990 K.J.P.B.

<<previous page -