hola dssss! Te felicito por tu avance, dale duro y parejo q esto se aprende rapido. Te recomiendo q leas mucho codigo, aca en el foro vas a encontrar miles de ejemplos.
Con respecto a tu programa, te doy una sugerencia. Para ahorrar codigo, podes definir un arreglo que contenga los numeros del 0 al 9. Por ej. previamente tenes q decirle al compilador q trate al puerto b como un byte:
#byte port_a=0x05
#byte port_b=0x06
despues definis el arreglo q contiene los numeros del 0 al 9:
int8 num[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98};
y por ultimo, como dije, para sacar un valor x:
portb=num[x];
Podrias sacar directamente el valor q se esta ingresando por el puerto A:
portb=num[porta];
suerte y saludos!