Según parece, tu código lee 8 bits y los mete en el byte sdata, pero va leyendo los bits al ritmo que le marque un clock externo, que viene indicado por la entrada DCLK.
Por lo tanto, esos dos "whiles" se esperan al siguiente pulso de reloj para leer el próximo bit.