three variables $X$, $Y$, and $V$ (initialized to $X_0$, $Y_0$, and $V_0$, respectively), which are modified at each iteration. The main loop also uses the value of $W$, but neither $S$ nor $T$.

-   The [*coda*]{} adds the blocks $S$ and $T$ at the end of the message and performs two more iterations on these blocks. After the last iteration, the MAA result is ${\mbox{\tt XOR}} (X, Y)$.

In 1987, the ISO 8731-2 standard [@ISO-8731-2:1987 Section 5] introduced an additional feature (called [*mode of operation*]{}), which concerns messages longer than 256 blocks and which, seemingly, was not present in the early MAA versions designed at NPL. Each message longer than 256 blocks must be split into [*segments*]{} of 256 blocks each, with the last segment possibly containing less than 256 blocks. The above MAA algorithm (prelude, main loop, and coda) is applied to the first segment, resulting in a value noted $Z_1$. This block $Z_1$ is then inserted before the first block of the second segment, leading to a 257-block message to which the MAA algorithm is applied, resulting in a value noted $Z_2$. This is done repeatedly for all the $n$ segments, the MAA result $Z_i$ computed for the 