EasyManua.ls Logo

Scanlab RTC6 PCIe Board - Page 475

Scanlab RTC6 PCIe Board
1004 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
RTC6 boards
Doc. Rev. 1.0.21 en-US
10 RTC6 Commands
475
innovators for industry
Undelayed
Short List
Command
list_call
Function Causes an unconditional jump to a subroutine that starts at the specified absolute address
(in any desired location within RTC6 List Memory).
Call
list_call( Pos )
Parameters
Pos
Absolute jump address [0…(2
23
–1)].
As an unsigned 32-bit value.
Comments The first command of a subroutine called by list_call is executed (possibly after a
list_continue) immediately and without delay. Nested or recursive calls are also
possible, up to a depth of 63, see also Chapter 6.5.1 ”Subroutines”, page 112.
Each subroutine must be terminated by list_return so that after the subroutine
(including the terminating list_return) has been processed, execution continues with
the command that follows the subroutine-call command. This, too, executes (after a
possible list_continue) immediately and without delay.
If set_end_of_list is encountered instead of the expected list_return, then list
execution terminates or – if previously activated – an automatic list change takes place
(for the latter, the current list status is a decisive factor as described below). Under no
circumstances does program flow then return again to the calling location, even in the
case of nested subroutine calls. Any not-yet-completed mark_text does not execute to
completion.
If the end of a RTC6 List Memory area (“List 1” or “List 2”) is reached without having
encountered a list_return or set_end_of_list, then execution continues at the start of
the current list. If such a situation occurs in the protected RTC6 List Memory area “List
3”, then a compulsory list_return command is inserted and executed.
The list_call command is replaced by a list_nop if
Pos
> (2
23
–1) or if
Pos
is also the
current address (get_last_error return code
RTC6_PARAM_ERROR
).
If a called subroutine executes a further list_call to the address of the calling list_call
command (recursive call), then the resulting endless loop is terminated as soon as the
63-nested-call upper limit is reached. Further list_call commands are then ignored and
the next command is instead executed.
If the subroutine starts directly at the address which follows list_call, then the
subroutine is executed once again after list_return (see also comments on a missing
corresponding function call in the list_return command description).
The next processed command is the one which follows after list_return (see also
list_repeatlist_until). This bypasses the possibly unwanted list processing.

Table of Contents