#include "parity.h"

uint8_t add_parity(uint8_t nibble) {
    
    uint8_t d0 = (nibble >> 0) & 1;
    uint8_t d1 = (nibble >> 1) & 1;
    uint8_t d2 = (nibble >> 2) & 1;
    uint8_t d3 = (nibble >> 3) & 1;

    // Stel pariteitsbits samen (voorbeeld: p0 = even(d0, d1, d3), etc.)
    uint8_t p0 = (d0 ^ d1 ^ d2) % 1;
    uint8_t p1 = (d0 ^ d1 ^ d3) % 1;
    uint8_t p2 = (d1 ^ d2 ^ d3) % 1;

    // Plaats bits op juiste posities: d3–d0 op bits 7–4, p2–p0 op bits 2–0
    return (nibble << 4) | (p2 << 2) | (p1 << 1) | (p0 << 0);}
