Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Parameters

PATCH REPLACE — VMS 5.5

Use REPLACE to replace the contents of one or more locations with
new  instructions  or data in terms of the current mode settings.
Before performing the replacement, the REPLACE  command  confirms
the contents of the specified locations.

Replacing Instructions:
_________ _____________
     When you replace instructions and the new instructions occupy more
     bytes in memory than the current instructions, the new instructions
     are moved to the patch area and PATCH generates branch instructions
     to maintain the program's logical flow of execution.  PATCH generates
     branch instructions for the REPLACE command the same way that it does
     for the INSERT command.  All unused bytes are filled with NOP instructions.

     If the patch area is used to accommodate the  new  contents,  the
     patch   area   string   descriptor  is  updated  to  reflect  the
     modifications.

Replacing Data:
_________ _____
     When you replace ASCII or numeric data, the number of replacement
     entries cannot exceed the number of existing entries.  This means,
     for example, that if you confirm the contents of six consecutive
     locations, you can replace the contents of only those six locations.
     If the number of replacement entries is less than the number of
     existing entries, the remaining locations are filled with zeros.

     In addition, PATCH truncates replacement entries if  they  exceed
     the  limit imposed on them by the current length mode.  For ASCII
     characters, the right-most characters are discarded.  For numeric
     data, the left-most digits are discarded.

Calculating  Relative  Displacements  for  Branch   Instructions:
___________  ________  _____________  ___  ______   _____________
     PATCH  calculates  the  relative  displacements  for  the  branch
     instructions  it  generates   and   recalculates   the   relative
     displacements for all branch-type instructions moved to the patch
     area.  Instructions and data moved  to  the  patch  area  may  be
     referenced  by  instructions not affected by the move.  Note that
     PATCH does not recalculate the relative  displacement  values  in
     the unaffected instructions.

     Note also that if PATCH  moves  an  instruction  with  a  current
     address  defined  as a symbolic label, you must check and correct
     any references made to that label.  PATCH confirms  that  one  or
     more  consecutive  locations contain the contents supplied;  then
     replaces the contents with new contents.

Format:

     REPLACE location = current-contents [,...]
     new-contents
             .
             .
             .

          Mode Qualifiers                 Default
          ____ __________                 _______

          /BYTE
          /WORD                           /LONG
          /LONG

          /OCTAL
          /DECIMAL                        /HEXADECIMAL
          /HEXADECIMAL

          /[NO]ASCII                      /NOASCII
          /[NO]INSTRUCTION                /NOINSTRUCTION
          /[NO]SYMBOLS                    /SYMBOLS

          /[NO]GLOBALS                    /NOGLOBALS
          /[NO]SCOPE                      /SCOPE

Prompts:

        LOC> location
        OLD> current-contents
        NEW> new-contents

Additional information available:

Parameters

Parameters

location
     Specifies either (1) a single location whose contents are  to  be
     replaced  or  (2) the starting address of a sequence of locations
     whose contents are to be replaced.

current-contents
     Specifies  one  or  more  data  entries  or  instructions  to  be
     replaced.   The  data  or  instructions  you  specify must be the
     actual contents.

     Do not specify conflicting data types  within  a  single  REPLACE
     command.

new-contents
     Specifies one or more data entries or instructions  that  are  to
     replace the current contents.

     Do not specify conflicting data types  within  a  single  REPLACE
     command.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026