Upon entry to the user routine, Register 1 points to the list of arguments passed through the DO CALLUSER statement. The pointer in Register 1 accesses the argument values as diagrammed below:
Table 314 Argument Pointer in Register 1
Register 1 Pointer to address of |
Þ |
Argument Address List |
|
Argument |
Variables |
---|---|---|---|---|---|
|
|
Address of Argument 1 |
Þ |
Length |
Value |
|
|
Address of Argument 2 |
Þ |
Length |
Value |
|
|
Address of Argument 3 |
Þ |
Length |
Value |
|
|
... |
|
... |
... |
|
|
Address of Argument n |
Þ |
Length |
Value |
Register 1 points to a list of addresses. The first of these addresses points to a list of argument addresses. Each argument address in this list points to the physical location of the data (variables).
Each variable is 101 bytes in length. The first byte contains the length of the variable. The remaining 100 bytes contain the value of the variable.
The user may change the variable value. If (as a result of changing the variable value) the length is changed, the user is responsible for updating the length information in the first byte of the variable.
A sample member, CTBCALLU, is provided in the IOA.SAMPLE library.
Parent Topic |