OK... questa è la funzione che mi serviva (la posto così come l'ho fatta... non mi viene in mente nient'altro di meglio, ma forse quella originale del kernel agisce su gruppi di bit ed è migliore):
byte asciiCode2videoCode(char chr) {
byte retValue;
if((byte)chr < 32) {
retValue = (byte)chr + 128;
} else if((byte)chr < 64) {
retValue = (byte)chr;
} else if((byte)chr < 96) {
retValue = (byte)chr - 64;
} else if((byte)chr < 128) {
retValue = (byte)chr - 32;
} else if((byte)chr < 160) {
retValue = (byte)chr + 64;
} else if((byte)chr < 192) {
retValue = (byte)chr - 64;
} else if((byte)chr < 255) {
retValue = (byte)chr - 128;
} else {
retValue = 94;
}
return retValue;
}
posso dire che funziona... ma i caratteri di controllo (p.es. il return carriage deve essere programmato a parte!).
Grazie ancora.