( Place BEGIN, where you want to jump back and AGAIN after a relative jump operator. Just like BSET and BWR. ) : BEGIN, PC ; : BSET PC SWAP ! ; ( same as BSET, but we need to write a placeholder ) ( : FJR, PC 0 A, ; : IFZ, JRNZ, FJR, ; : IFNZ, JRZ, FJR, ; : IFC, JRNC, FJR, ; : IFNC, JRC, FJR, ; ) : THEN, DUP PC ( l l pc ) -^ ( l off ) ( warning: l is a PC offset, not a mem addr! ) SWAP ORG @ + ( BIN( @ - ) ( off addr ) C! ;