MATLAB logic
D0 = [ 0 1 0 1 0 1 0 1];
D1 = [ 0 0 1 1 0 0 1 1];
S = [ 0 0 0 0 1 1 1 1];
fprintf('\n S D1 D0 F\n');
F = (S&D1)|(~S&D0);
disp([S' D1' D0' F']);
S D1 D0 F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1
D0 = [ 0 1 0 1 0 1 0 1];
D1 = [ 0 0 1 1 0 0 1 1];
S = [ 0 0 0 0 1 1 1 1];
fprintf('\n S D1 D0 F\n');
F = (S&D1)|(~S&D0);
disp([S' D1' D0' F']);
S D1 D0 F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1