Specifying Relationships for Assembler Customizations

Use the <Assembler> <APICalls> section of \<Enterprise Analyzer Home>\Data\Legacy.xml to specify relationships for Assembler code customizations.

Defining Program Entry Points

Use the <Defining> tag to specify macros that define program entry points:

      <Defining>
        <Macro name="macro-name">
          <!-- Parameter is the label -->
          <Parameter number="Label" type="String" meaning="Name"/>
        </Macro>
      </Defining>
where:
  • The name attribute of the <Macro> tag is the name of the macro used to define an entry point.
  • The <Parameter> tag describes the item in the source line that will be captured as the entry point name. The "Label" value of the number attribute indicates that the entry point name will be the label before the macro command.

Loading the External Name

Use the <Loading> tag to specify macros used to get external names prior to calls:

      <Loading>
        <Macro name="macro-name">
          <!-- Parameters are all the parameters of the macro -->
          <Parameter number="*" type="String" meaning="Name"/>
        </Macro>
      </Loading>
where:
  • The name attribute of the <Macro> tag is the name of the macro used as the loading operator.
  • The <Parameter> tag describes the item in the source line that will be used as the memory address or name that can be used to get the external name for a call.

Using an External Name in Calls

Use the <Calling> tag to specify macros that call external programs:

      <Calling>
        <Macro name="macro-name">
          <!-- Parameter is the first parameter of the macro -->
          <Parameter number="1" type="String" meaning="Name"/>
        </Macro>
      </Calling>
where:
  • The name attribute of the <Macro> tag is the name of the macro used to call an external program.
  • The <Parameter> tag describes the item in the source line that will be captured as the program to call. The "1" value of the number attribute indicates that the first parameter following the opcode will be used to determine the external name.

Usage Example

The following example illustrates how to specify relationships for Assembler code customizations:

  <Assembler>
    <APICalls>

      <Defining>
        <Macro name="ENTER">
          <!-- Parameter is the label -->
          <Parameter number="Label" type="String" meaning="Name"/>
        </Macro>
      </Defining>      
	     
      <Loading>
        <Macro name="EPLOAD">
          <!-- Parameters are all the parameters of the macro -->
          <Parameter number="*" type="String" meaning="Name"/>
        </Macro>
      </Loading>

      <Calling>
        <Macro name="MODCALL">
          <!-- Parameter is the first parameter of the macro -->
          <Parameter number="1" type="String" meaning="Name"/>
        </Macro>
      </Calling>

    </APICalls>
  </Assembler>