_A_+_B_+_C_+_D_+_E_+_F_ , //0
_B_+_C_ , //1
_A_+_B_+ _D_+_E_+ _G_, //2
_A_+_B_+_C_+_D_+ _G_, //3
_B_+_C_+ _F_+_G_, //4
_A_+ _C_+_D_+ _F_+_G_, //5
_A_+ _C_+_D_+_E_+_F_+_G_, //6
_A_+_B_+_C_ , //7
_A_+_B_+_C_+_D_+_E_+_F_+_G_, //8
_A_+_B_+_C_+_D_+ _F_+_G_, //9
А сегментами я управляю через макросы. Overhead, зато порты могут быть где угодно:
(s & _A_)? Port_SEG_A_1 : Port_SEG_A_0;
(s & _B_)? Port_SEG_B_1 : Port_SEG_B_0;
(s & _C_)? Port_SEG_C_1 : Port_SEG_C_0;
(s & _D_)? Port_SEG_D_1 : Port_SEG_D_0;
(s & _E_)? Port_SEG_E_1 : Port_SEG_E_0;
(s & _F_)? Port_SEG_F_1 : Port_SEG_F_0;
(s & _G_)? Port_SEG_G_1 : Port_SEG_G_0;
(s & _H_)? Port_SEG_H_1 : Port_SEG_H_0;