Momentan habe ich das Problem, das Hatari zwei Tasten auf meinem Notebook offenbar mit einem ungewöhnlich hohem Symbol mappt, auch noch zwei Tasten, mit dem gleichen. Sieht man bei mir, wenn man hatari --trace keymap nutzt. Links die Taste ^° und links neben dem Backspace '` geben das gleiche SDL-Symbol bei mir aus:
key down: sym=1073741824 scan=53 mod=0x0 name=''
key map: sym=0x40000000 to ST-scan=0x0d
key up: sym=1073741824 scan=53 mod=0x0 name=''
key down: sym=1073741824 scan=46 mod=0x0 name=''
key map: sym=0x40000000 to ST-scan=0x0d
key up: sym=1073741824 scan=46 mod=0x0 name=''
Das Problem ist geklärt: Mein Linux hatte die normale deutsche Tastatur-Einstellung. Damit werden Accents nicht ausgegeben, sondern mit dem darauffolgendne Vokal zusammengefügt, zum Beispiel für französische Wörter. SDL gibt dann diese Accents auch nicht alleine weiter.
Die Lösung: Man muss eine Tastatureinstellung wählen (no dead keys) oder "Deutsch (ohne Akzenttasten)", dann geben diese Tasten auch ihr Symbol aus mit SDL.
Mein Programm ist jetzt fertig, ich habe jetzt mit shift und ohne die normalen Zeichen der PC-Tastatur 1:1 verfügbar. Leider kann ich über die XBIOS-Funktion Keytbl nur die ersten drei Keytables ändern. Auf alle weiteren erhalte ich zwar einen Pointer, der mir aber nichts nützt, weil ich nur einen Pointer auf die Struktur mit den 3-6 Zuordnungstabellen bekomme, aber keinen Pointer auf die Speicherstelle, wo dieser Pointer steht. Ich kann ihn also nicht verändern und auf meine eigene Struktur zeigen lassen.
Was ich noch einmal ausprobieren kann ist, ob ich, wo ich die Pointer auf die Zuordnungstabellen mit "Alt" habe, diese direkt innerhalb der Struktur ändern kann. Falls diese nur im ROM stehen, wir das nicht gehen. Wenn sie ins RAM kopiert sind, dann schon. Die ersten drei Tabellen kann man ja auch ändern. Chance!
Mein Ziel war, gerade die vollständige Tastaturbelegung zur Laufzeit anpassen zu können, so dass EmuTOS mit den aktuellen heute gängigen Tastaturlayouts genutzt werden kann.
Das mit der Errechnung des resident bleibenden Speichers scheine ich jetzt kapiert zu haben, läuft gut ohne Fehler Vielen Dank nochmal für die Hilfe und das Profibuch. Da ist es auch noch drin erklärt. Sobald ich noch das oben ausprobiert habe, werde ich Euch den angepassten Code + Programm mal geben.