mme gecall bci 1,PROGRAM zero LOCATION,ERR_RET zero ADDRESS
MME GECALL loadss a program or overlay into the current program's address space. MME GECALL first looks for a GECALL qstar file with file code **; if the named module is found there it is loaded. Otherwise, loads the system edited program. Normally, "loading" just involves finding and reading the module. However, if the module was built "relocatable", relocation will be applied. Patches will also be applied if there is an Extension-Editor patch file (file code E*) present, and either switch bit 1 or switch 16 is set.
By specifying the appropriate load LOCATION, the new program may overlay some or all of the current program's space.
Since the new program may overlay much of the old program's space, MME GECALL does not return in the normal way. It returns to ADDRESS if one is specified; if not, it just invokes the new program.
Typically, the new program will not return to the old program; in many cases, the old program will have been overwritten anyway.
If MME GECALL returns to ADDRESS, the following values will be set.
If an error occurs, MME GECALL will return to the address specified by ERR_RET. Bits 18-35 of the Q register will contain an integer value giving the cause of the error. Below we list the possible values and the associated causes.
52 I/O limits error 53 I/O error 54 No PAT for call file 55 Bad device call 56 Non-random GECALL file 60 Call checksum 63 Call name missing 64 Call out of file span 65 Improper call
GCOS8 starts a starts a single segment activity by building a MME GECALL sequence in the prefix at .XMME1 (032) and transferring control.
MME GECALL should not be used during a courtesy call.
If the CHKSUM option is present on the start-up $INFO statement, GECALL will verify checksums when loading a program. Otherwise, checksums are not verified.
Copyright © 2000, Thinkage Ltd.