F$Link

From NitrOS-9
Jump to: navigation, search
Link Links to a memory module that has the specified name, language, and type
OS9 F$Link 103F 00

Entry Conditions

A type/language byte
X address of the module name (See the following example)

Exit Conditions

A type/language code
B attributes / revision level (if no error)
X address of the last byte of the module name + 1 (See the following example)
Y absolute address of the module’s execution entry point
U module header absolute address

Error Output

CC carry set on error
B error code (if any)

Additional Information

  • The module’s link count increases by one whenever Link references its name. Incrementing in this manner keeps track of how many processes are using the module.
  • If the module requested is not shareable (not re-entrant), only one process can link to it at a time.
  • Before the Link call:
T E S T $0D
^        
  • After the Link call:
T E S T $0D
        ^
  • This is the order in which the Link call operates:
    1. NitrOS-9 searches the module directory for a module that has the specified name, language, and type.
    2. If NitrOS-9 finds the module, the address of the module’s header is returned in Register U and the absolute address of the module’s execution entry point is returned in Register Y. (This, and other information, is contained in the module header.)
    3. If NitrOS-9 does not find the module or if the type/language codes in the entry and exit conditions do not math, NitrOS-9 returns one of the following errors:
      • Module not found
      • Module busy (not shareable and in use)
      • Incorrect or defective module header

krn