gtps1m3zSystem Macros

NXTLC-Get Address of Next Block Queued on a Dispatch List

Use this system macro to return to the caller the address of the next storage block queued on the specified system task dispatcher list.

Format




BLOCK=R1|Rx
On input, the register specified contains a value indicating whether to get the address of the first block or the next block on the specified system task dispatcher list. The value 0 means get the address of the first block. Any other value means get the address of the next block on the list following the address specified (as the value).

On output, the register specified contains either the same value or the address of the requested block (for example, the first one or the next one) on the specified system task dispatcher list. The value is unchanged when one of the following occurs:

The default is R1.

LIST=R0|Rx
The register specified on this input parameter contains a list equate value as defined in macro CLHEQ. Equate values are assigned to the Cross, Ready, Input, and Defer lists. If the parameter is omitted, the default assignment is R0. Valid equate values are:

#CLHCRS
Cross List

#CLHRDY
Ready List

#CLHINP
Input List

#CLHDEF
Defer List

SAVREG
The specified volatile registers will be saved by the macro in the stack area or in the registers specified by the WKREG parameter. Up to 3 registers can be specified. Those registers are R0, R1, R2. If this keyword is omitted, none of the 3 registers will be saved. You should not save a volatile register if you expect it to contain an output parameter. The register will be overwritten with its original contents, since the reload is the last thing performed by the macro.

WKREG
The specified symbolic register names are free to be used by the macro to save the volatile registers coded on the SAVREG parameter. Up to 3 registers can be specified, but the standard linkage registers R13 through R2 cannot be used here. This parameter is used in conjunction with the SAVREG parameter to generate efficient code and enhance the performance of the macro. The number of registers specified by WKREG should be less than or equal to the number of registers specified by SAVREG. If this parameter is omitted or not used to its maximum capacity, code optimization is sacrificed.

Entry Requirements

The register specified on the LIST parameter must contain a value that corresponds to one of the system task dispatcher lists.

Return Conditions

Programming Considerations

Examples

None.