Knowledge Base

PC = (<bb:ss> != 0) ? (PC + 1) : PC

When first executed causes a MultiTrack task to yield. Thereafter, causes the task to yield if the semaphore ss, counting from base address bb is False (hence the next instruction will only get executed once the semaphore is True). The base address bb is optional; if omitted it is taken to be 0. A fatal error will occur if this instruction is executed outside of a task in the MultiTrack task queue, unless the firmware was built after 10 November 2017.

Note: SPLat/PC allows a single symbolic address to be used for a semaphore that is declared in defSEM directives. In this case the syntax becomes

WaitForST   sName

See MultiTrack tutorial

Dialect exclusions: Not available in dialects before 16.