Template / Mark Protocol Frame

This is used as position marker for the commands Reconvert, Encrypt, Bcc, Strip , Scramble, and Sum when they have no Len parameter specified but use 0xFF as length.

Mark pushes the current position within the destination data onto a internal stack. When one of the above commands (with Len parameter is 0xFF) is detected, it removes the top position from the stack. Then all data from this removed position to the end of the destination data is processed.

If one the above commands (with Len parameter is 0xFF) is detected and the internal position stack is empty (No matching Mark command found), all destination data (from byte 0 to the current end) will be processed. The stack size for Mark commands is 4. If more than 4 positions are pushed by Mark commands without removing one from the top of the stack the "oldest" position gets lost. On 12.06.18 the stack size was increased from 2 to 4!
Template: 12 Mark 34 Mark 56 Reconvert UnPack Reconvert Unpack 78
Destination data before first Reconvert: 12 34 56
Destination data after first Reconvert: 12 34 05 06
Destination data after second Reconvert: 12 03 04 00 05 00 06
Destination data after finish: 12 03 04 00 05 00 06 78