Ich schreibe mir gerade einen Tastaturroutine und dabei habe ich mich mit den Dekodiertabellen beschäftigt. Zum einen glaube ich dass im C64 WIKI ein Fehler ist.
Unter https://www.c64-wiki.de/wiki/Steuertaste steht
ZitatAus der jeweiligen Tastencodetabelle wird der PETSCII-Code der - gegebenenfalls mit der Steuertaste gemeinsam gedrückten - Taste ermittelt.
Das ist IMO aber nicht der PETSCII-Code der da in der Tabelle steht, sondern der ASCII-Code.
in Zeile 2 steht an der dritten Stelle $41:
Das ist aber der ASCII-Code für 'A'. Dieser Wert ist auch der A-Taste zugeordnet. Die ersten 8 Werte sind die Codes für die Tastaturmatrix Zeile 0, die zweite Zeile für Matrixzeile 1 usw. und in Matrixzeile 1 ist Bit 3 die Taste A. Kann das jemand bestätigen? Dann sollte man eventuell den WIKI Eintrag korrigieren.
Jetzt die eigentliche Frage:
Wenn in den Dekodiertabellen die ASCII-Werte stehen, wie wird das dann in PETSCII umgewandelt. Denn irgendwo muss das Zeichen ja auch am Bildschirm landen und der PETSCII-Code für 'A' ist 1 und nicht $41. Ich habe aber im Kernel keine Tabelle gefunden die ASCII in PETSCII abbildet, also wird es u.U. im Code passieren. Weiss jemand wo oder wie man das am Besten macht? Oder muss ich dann einfach prüfen ob der Wert >= 'A' UND <= 'Z' ist und dann einfach $40 abziehen. Das würde dann zwar für die Buchstaben funktionieren, aber ich weiss nicht wie das dann mit den ganzen anderen Zeichen aussieht. Vor allem mit den ganzen Grafikzeichen, die ja im ASCII nicht existeren.