UP
This is in old technology upon which the new technology
is partly based. See (preamble)
for new stuff.
The current support for PL/I programs exists in an incomplete
version of the O.S. simulator. The support is incomplete
in that there is no sharing, and limited addressing space
available for the application program. This section will
describe the mechanics of getting a PL/I program to run
in such a domain. {All of the support described here may
be found on the OSSIM disk. This may be accessed with the
GDSK exec.}
If you wish to transfer your program from CMS, you must
have had your transfer disk drive attached to the system
when you initialized Gnosis. Transfer the file to your transfer
disk under CMS, then when you have brought Gnosis up, you
may enter the commands "RECEIVE password" where password
is the identifier generated by the CMS transfer program.
You should then enter the "LOAD" command and the "EXECUTE"
command if you wish to run the program. The EXECUTE command
will pass a standard PL/I parameter string {i.e., PL/I params/program
params} to the program if you specify one. See (p3,cmdlang)
for more information.
To create a PL/I module for execution
under Gnosis:
* Compile the program under CMS
* Linkedit your module with the command PLILINK.
PLILINK takes up to 20 parameters which are the names
of the PL/I compiled programs and subprograms to be run.
The output of the linkedit is left in the file "program"
MODULE, where "program" is the name of the first program
passed to PLILINK. The current implementation of PLIRC restricts
this module to 5 megabyte. An additional 3 megabytes of
space are available for dynamic storage allocation.
* The current implementation of the bootstrap loader
{BSLOAD} does not support symbols for programs compiled
by the PL/I compiler. Symbols are available for assembly
language subroutines. This may be fixed when a new symbol
protocol is defined as part of the BINDER project.
* Move the MODULE file to Gnosis by the facilities described
in (p2,file-transfer).
* See the commands LOAD and EXECUTE in (cmdlang).
The current execution time environment is defined by
the PL/I execution environment creator, PLIRC and the Gnosis
version of the PL/I initialization routine DMSIBM {GNOIBM}.
When the PL/I program is invoked the Gnosis version of
the PL/I interface program {DMSIBM} will shuffle the keys
about before the first line of PL/I code is executed. See
(p2,osfactories) to find
out how the keys look to the PL/I program after this completes.
When the domain is invoked by the command system , the command
system passes along its input and output co-routine keys.
The input and output co-routine keys should be be restored
to their appropriate slots when the program returns to the
command system. If a PL/I program returns in the normal
fashion, DMSIBM will return these keys on its behalf.
If the terminal co-routine keys are not returned to the
command system, they are lost forever, and the command system
must create new ones. If this occurs, it is necessary to
switch the command system switcher to the new command system
port. This is not difficult, just inconvenient.