I'm trying to implement the (1024, 1280) LDPC code defined in CCSDS 131.0-B-2 7.4.2.2.
The parity check matrix is given as $$ H_{1/2}=\left[\begin{array}{ccccc} 0_{M} & 0_{M} & I_{M} & 0_{M} & I_{M}\oplus\Pi_{1}\\ I_{M} & I_{M} & 0_{M} & I_{M} & \Pi_{2}\oplus\Pi_{3}\oplus\Pi_{4}\\ I_{M} & \Pi_{5}\oplus\Pi_{6} & 0_{M} & \Pi_{7}\oplus\Pi_{8} & I_{M} \end{array}\right] $$ where $I_M$ is an $M\times M$ identity matrix, $0_M$ is an $M \times M$ zero matrix and $\Pi_n$ is an $M \times M$ permutation matrix.
7.4.2.5 in the same document says
For each of the parity check matrices, the code symbols corresponding to the last $M$ columns shall be punctured (not transmitted).
which means that the parity check matrix now becomes $$ H_{1/2\text{ punctured}}=\left[\begin{array}{ccccc} 0_{M} & 0_{M} & I_{M} & 0_{M}\\ I_{M} & I_{M} & 0_{M} & I_{M}\\ I_{M} & \Pi_{5}\oplus\Pi_{6} & 0_{M} & \Pi_{7}\oplus\Pi_{8} \end{array}\right] $$
In this case, the first $M$ parity check equations (rows) depend on only one bit of the received codeword (only one $I_M$ submatrix in the first $M$ rows). This implies that these $M$ bits must all be zero in order to satisfy the first $M$ parity check equations. This sounds a bit stupid, if each codeword must have $M$ bits that must be zero.
So, where am I going wrong in this interpretation?
EDIT: Cross posted to dsp.stackexchange