CALLZ, CALLNZ

Directives. Jump if the result of logical operation is zero (CALLZ), or is not zero (CALLNZ).

Syntax

callz <function>     ; Call if result is zero
callnz <function>    ; Call if result is not zero
callz <function> <function> ... <function> ; Call all functions in series if result is zero
random callz <function> <function> ... <function> ; Call any function in series if result is zero

Parameters

function
  • Name of the function that defined by sub/func/psub instructions.

Example file callz.txt

10           ; Set initial state

CYCLE:       ; Define the label CYCLE

test i 1     ; Test input bit 379h:6 (Pin 10)
callz LEFT   ; Call if tested bit is zero
callnz RIGHT ; Call if tested bit is not zero

nop

goto CYCLE   ; Goto the CYCLE label

sub LEFT
shift -1     ; Rotate state unclockwise
ret

sub RIGHT
shift +1	 ; Rotate state clockwise
ret