The machine repeatedly matches the leftmost unmarked 0 with the leftmost
unmarked 1 to its right, marking them X and Y.
States: qscan (find the next 0), qscan1 (in the 1-region:
only matched 1s may remain), qfind1 (find the matching 1),
qreturn (walk back to the start). It accepts when all 0s are matched and only
matched 1s / blanks remain; it rejects if a 0 has no matching 1 (more 0s), a 1 is left over
(more 1s), or a 0 appears after a 1 (wrong order).
This is a decidable but non-regular language, so the machine genuinely needs its tape as a counter.