Topic permanente di programmazione newbie

No, Leo, la mia situazione è molto più semplice, io non devo controllare la validità del valore esadecimale, semplicemente devo impedire di comporlo usando caratteri diversi da quelli previsti. Ciò che faccio è:
leggo il primo carattere
se non è 0-9, A-F, a-f rileggo il carattere
quando il carattere è corretto lo memorizzo
faccio lo stesso col secondo carattere alla fine ottengo due caratteri, p.es. F9 che passo alla procedura di scrittura del fuse. Quindi il code che ho postato prima funziona benissimo, ma al rovescio, cioè mi accetta SOLO i caratteri diversi da quelli che mi servono.
Come faccio ad invertire la logica del do-while?