MPE/iX allows y ou to change the speci￿cations listed abo ve at load time, except the primary entry point name and program capabilities. An y information y ou specify at run time o verrides the speci￿cations giv en by HP Link Editor/XL.

If the program auxiliary header is not speci￿ed, the loader uses the default v alues for the :RUN command. Libraries speci￿ed at run time tak e precedence over those speci￿ed at link time.

Using Executable Libraries

On MPE/iX, you can run a Native Mode program and specify the use of m ultiple libraries with di￿erent names, rather than just one executable library (XL) at a time.

The syntax for running a program that utilizes one or more executable libraries is as follows:

:RUN prog; XL = " xlib1[,xlib2][,xlib3] . . . "

In this syntax, xlib1 , xlib2 , xlib3 , . . . are replaced by the names of the libraries y ou want to execute and prog is a Native Mode program name.

You can specify any number of XLs, up to a maximum limit of 288 c haracters for the complete command. You can use any valid ￿le name for an XL. The system library is added to the end of the list b y default. However, if you specify it, y ou must make it the last library listed. XLs that y ou specify at run time o verride those speci￿ed at link time.

Searching Executable LibrariesThe following guidelines apply to searc hing executable libraries (XLs):

The library list can be speci￿ed at Link time, but is not actually used un til run time.

Run-time libraries can appear only once in the :RUN command. You must list libraries in order of increasing privilege lev el.

If the system library is not speci￿ed, the system automatically adds XL.PUB.SYS and NL.PUB.SYS as the last libraries to searc h.

UNSAT Procedure

You can load a program that has one or more referenced external procedures that cannot be located by specifying an UNSAT procedure. This is a dumm y procedure speci￿ed in the UNSAT parameter of the :LINK command. This procedure is substituted for the missing library routine. You can set up the procedure to con tain statements that facilitate program execution in the absence of the real routine. F or example, the execution of the UNSA T procedure could print a statement informing you that it was called.

Note

The content of an UNSAT procedure determines whether or not a program

 

can continue to run after the UNSAT procedure is called.

 

 

When the loader encounters an UNSAT procedure, it uses it to resolv e all remaining unresolved references. The UNSAT procedure iself ma y be written in an y language; however, it must be compiled and put in to one of the executable libraries that is speci￿ed at run time. Figure 3-4 sho ws an example of using an UNSAT procedure in a program.

3-14 Program Development