Programmmable encoders