Да, это опечатка, спасибо. Исправлю и выложу новую версию.

Семантика инструкции строковой машины OutS описана в PDF-документе:
> -- Цитата:
> OutS: out[r] := in[p]; r := r + 1; p := p + 1 (перемещает один символ с in на out);

P.S. Опечатка коварная, т.к. если в качестве in и out используется один и тот же массив (а я делал в примерах именно так), то всё будет работать.