Narf... natürlich war mein Prog doch zu groß, so dass Zeichensatz und Programm sich ins Gehege kommen. Entweder schmelzen die Characters weg (nur noch Grütze auf dem Schirm) oder aber mein halbes Programm wird überschrieben, je nachdem ob ich das Charset schon in einem vorigen Programmteil aktiviere (hielt ich für besonders trickreich ) oder aber direkt im Hauptprogramm reinlade (nur noch Grütze in der LIST).
Den Bank-Switch an sich habe ich nun dann doch mal hingekriegt mit dem Beispiel aus dem Englischen C64-Wiki, das müsste die zweite Bank mit ROM-Charset sein. Dass PRINT nicht funzt, konnte ich dort jedenfalls bisher nicht feststellen, das lief noch. Natürlich muss man beim Bildschirmspeicher-Poken nun bei dem neuen Startwert anfangen, das leuchtet ein. Habe also mein Charset geladen und bei 53272 mal von 1 bis 255 per Schleife durchgepoket und auch vorsichtshalber nicht nur mit PRINT gearbeitet sondern auch in den Bildschirm-Zeichen-Speicher gepoket (im englischen WIKI-Beispiel dann in dieser Bank halt ab POKE32768 (statt 1028 )-KOMMA-Code eines meiner geänderten Zeichen). Dat funzt nur in der Standard-Bank, von daher muss wohl nach dem Switchen auch vor dem Komma noch was im Argen liegen. Und wenn ich nun eine der Banken ohne ROM Chars wähle (und nur das macht ja Sinn, wenn man zwecks Speicherökonomie vor der Zeichensatz-Aktivierung ein Bank-Switching macht), wie kriege ich da dann einen RAM-Zeichensatz untergebracht?
Also: In der Standard-Bank ab $0000 lag mein editierter Zeichensatz (dezimal) noch auf POKE53272,30 und funktionierte. Wie muss ich nun rechnen/poken, wenn ich mit der Methode hier auf die bei $4000 bzw. $C000 geswitcht habe, um mein Charset zu aktivieren?
Oder denke ich immer noch in eine völlig falsche Richtung?
Was mich hoffen, aber auch verzweifeln lässt: Ich bin durch Analyse der ersten Zeilen in "Mafia" zu 99% sicher, dass das, was ich vorhabe, irgendwie in BASIC geht. Game ist nämlich für Basic-Verhältnisse ein ziemlich mächtiger Klopper, läuft aber definitiv mit eigenem, in Basic genau nach "meiner" Methode reingeladenen Charset. Und einige POKES deuten auf Bankswitching hin. Merkwürdigerweise wird dort nämlich 52 und nicht 30 hinter die 53272 gepoket. Das gilt auch für Pirates! Bei beiden Spielen wird das Nachvollziehen und das "Klauen" von Codeschnippseln leider erschwert, weil etliche mir nix sagende SYS-Befehle da herumschwirren, so dass man die Programmteile zwar laden und listen, aber nicht separat starten kann, um nachzuvollziehen, was wann passiert.
Sorry, wenn ich nerve.