.RESTR - load an element from an hstar or system.
Usage:
B:
   entry = .restr( unit [, name, return, loc, strip] );
C:
   #equate B_restr .restr
   int B_restr(FILE *stream [, int name, int return,
               void *loc, int strip] );
Where:
    - entry 
- is the entry point of the overlay, as recorded in the
        hstar. 
- unit 
- indicates where the overlay is to come from. 
            - >=0 
- indicates that the file containing the hstar is
                attached to a normal B I/O unit with the given
                number. 
- -1 
- indicates that the overlay is to be loaded from
                the system, not from a file. In TSS, this
                indicates a system-edited program; in batch, this
                means MME GECALL is used instead of MME GERSTR. 
- -2 
- indicates that the overlay is to come from the
                same place as the rest of the program. It is only
                applicable to programs in multi-element hstars.
                In TSS, the overlay is taken from the file
                indicated by ".hstar"; in batch, it
                again means MME GECALL is used. 
 
- name 
- is the name of the element/subsystem to be loaded. This
        is a BCD word except in the case of a subsystem load in
        TSS ("unit" = -1) when it is an ASCII word. In
        TSS, this word may be omitted or set to zero if the only
        element of a single element hstar is being loaded.
        "name" is always required in batch. 
- return 
- 
            - 0 
- tells .RESTR to transfer to the overlay being
                loaded rather than returning to the caller.
                (Default) 
- 1 
- tells .RESTR to return to its caller. 
 
- loc 
- specifies the address where loading is to begin. If
        "loc" is zero or omitted, the information in
        the hstar is used to obtain this address. 
- strip 
- is a flag indicating whether or not .RESTR should strip
        the loader prefix from the overlay. This can only be used
        in TSS; .RESTR will fail to work if "strip" is
        used in a batch call. 
            - 0 
- tells .RESTR to load at "loc" plus the
                offset in hstar. 
- 1 
- tells .RESTR to load the first word at
                "loc". 
 
Description:
.RESTR is used to overlay load another program (subsystem) or
element of a program. Since the underlying system calls are
different, not all the TSS options of .RESTR are available in
batch. In batch, if "loc" is non-zero any prefix
specified in the hstar is stripped. 
On return, the external "rst.in" contains the
following information. 
    - 00-17 
- First word loaded. 
- 17-36 
- Last word loaded plus 1. The same information is also
        returned in the A register, and could be retrieved with
        an immediate call to .NULL or by appropriate definition
        of a C struct return. Of course the values of
        "entry" and "rst.in" are meaningful
        only if "return" equals 1. 
See Also:
    - expl b lib external .keep 
- for a note about putting .BSET in an overlay. 
Copyright © 1996, Thinkage Ltd.