Listo, por fin pude verlo andyta,
Tienes unos errores con los tipos de dato, porque la variable que era de resultado era de 8 bits y aunque hagas el casting, siempre se iba a ver la diferencia, que es producto de un desborde de una variable de 8 bits, o en este caso, solo está tomando los 8 primeros bits de tu suma.
En tu resta creo que el resultado tendría que ser en un signed long, 16bits con signo.
La división no compilaba porque había un error de sintaxis, debería ser %3.2f, y no %3,2f, lo he probado y da con valores de 8 bits, con mayores parece que haya algunos problemas, te tocará ver esa parte...
La parte de respuesta de tu teclado en la introducción, se puede arreglar con un ciclo for con un delay más corto y preguntando por el teclado dentro del for, repitiendo algunas veces el for, hasta llegar al tiempo que buscas para que se pueda ver los mensajes y no pasen volando, también se puede obviar el delay_ms y en el for contar muchas más veces, hasta 1000 5000, pero eso más es para calibrar en hardware real.
Creo que es todo, te adjunto tu código en el que hice algunas modificaciones y he colocado comentarios con //****** en las partes que aumenté o corregí
Espero que te sirva y puedas seguir con tu calculadora
saludos.