MUX? \*IF
\ Entry to cooperative round-robin multitasker
CODE PAUSE ( ) \ EXT CORE
        push  bx
        push  si
        push  bp
END-CODE *\
MUX? LOX? AND \*IF
ASSEMBLER
        mov   bx,[LXv]
        push  bx
END-CODE *\
MUX? \*IF
ASSEMBLER
        mov   bx,[UXv]
        mov   [bx+4],sp
        sub   ax,ax
PAUS1   mov   bx,[bx]
        or    ax,[bx+2]   ; asleep?
        jz    PAUS1
        mov   [UXv],bx    ; wake up
        sti
        mov   sp,[bx+4]
        cli
END-CODE *\
MUX? LOX? AND \*IF
ASSEMBLER
        pop   bx
        mov   [LXv],bx
END-CODE *\
MUX? \*IF
ASSEMBLER
        pop   bp
        pop   si
        pop   bx
        NEXT
END-CODE
*\

