General Points
The exit block of the jumper is used in conjunction with the entry block of the jumpee to determine action of the jump.
The entry block specifies the conditions that the program logic expects as the jumpee gains control after a gate jump. The entry block is examined only as the jumpee gains control and format errors are reported then.
The entry block forms are:
"R" Parameter string to regs (regparm) "C" Order code request (recec) "D" Databyte request (accdb) "S" Parameter string request (pstring) "L" String length request (strl) "MMMM" Key parameter mask (keyparams) "KKKK" Key parameter slot numbers
A zero entry block is treated as X'10000000'.
If bits of the entry block that are not specified to influence the jump are not zero, trap codes may or may not be produced. This depends only on the version of the kernel and does not depend on other information in the machine.
If the argument string is shorter than the parameter string, the values at the end of the parameter string that were there before the jump will remain. If the argument is longer than the parameter the remainder of the argument is not transmitted.
If bit 2 is 0 then the parameter string is in the jumpee's virtual memory.
If bit 2 is 1 then the parameter string is in the jumpee's registers. For this purpose the 32 bytes of the floating registers 0 thru 6 are considered to follow and be contiguously adjacent to the 64 bytes of the general registers. If registers R4 and R5 describe a field not within the 96 bytes and the length of the received string is greater than zero, then the error code described at (c508) results.
{arcane}See (p1,strdes) about this design.
The left byte of register 5 is not used. {We have not limited the parameter string length to 4096 although there now is no way to produce an argument longer than 4096.}
If some of the parameter string is in a page which is not defined read/write in the jumpee's address segment and the argument to be placed into that parameter is long enough, then an addressing trap code {(p1,parmlack)} will be produced in the jumpee even when a write reference to that address by a process in the jumpee would have caused a call to a segment keeper. No segment keeper will be called. It is as if the reference to the parameter string had been made via a memory key with a no-call bit. In this case the portion of the argument that belonged in the undefined page is not copied, but the rest of the jump action proceeds. See (p3,segkeeparmstr) for examples.
The slots designated to receive key parameters and to provide the parameter page key must be distinct.