// uncompiled, untested, example code only.
const int inputPins [] = {A0, A1, A2, A3};
const int outputPins [] = {10, 11, 12, 13};
cont int lookup [16] = {0b1010, 0b1100, 0b0110, 0b0011}; // the rest are packed with zeroes
// EXAMPLE ONLY - NOT CORRECT
void setup()
{
for (int i = 0; i < 4; ++i) {
pinMode(inputPins [i], INPUT);
pinMode(outputPins [i], OUTPUT);
}
}
void loop()
{
int input;
for (int i = 0; i < 4; ++i) {
bitWrite (input, i, digitalRead(inputPin[i]));
}
int output = lookup [input];
for (int i = 0; i < 4; ++i) {
digitalWrite (outputPin [i], bitRead (output, i));
}
}