Program in primary ASC mode
If the calling program is in primary ASC mode, the parameter list must be in the primary address space. All addresses that are passed by the programs must be contained in the primary address space and must not be ALET-qualified. The program that passes parameter data can use GPRs 0 and 1, or both. To pass the address of a parameter list, the program should use GPR 1.
By default, this area is nonexecutable memory.
The parameter list is a fullword on a fullword
boundary in your program's address space see Figure 1. The high-order bit (bit 0)
of this word is set to 1. For a program that is not AMODE 64, the system uses this convention to
indicate the last word in a variable-length parameter list. Bits 1-31 of the fullword contain the
address of a 2-byte length field on a halfword boundary. The length field contains a binary count of
the number of data bytes in the PARM field. The data bytes immediately follow the length field. If
the PARM field was omitted in the EXEC statement, the count is set to zero. To prevent possible
errors, always use the count as a length attribute in acquiring the information in the PARM field.

- There can be multiple parameters.
- There is no system-imposed limitation on the length of any parameter.
- No parameter has a system-defined format.
There is no system-imposed restriction on
executable/nonexecutable storage.
Lengths and formats of parameters are defined by the called service. For an AMODE 24 or AMODE 31 program, the parameter list consists of 4-byte wide address slots; for an AMODE 64 program, the parameter list consists of 8-byte wide address slots. For an AMODE 24 or AMODE 31 program, the high-order bit of the last address slot is used to indicate the end of the list. For an AMODE 64 program, that convention is not used. Instead, a separate parameter would be provided if the target program needs to be able to determine how many parameters were passed. That separate parameter might be within the parameter list (for example, the first parameter list slot) or might be in register 0.