Na, wie man das baut ist ja letztlich immer jedem selbst überlassen. Und wenn es brauchbar ist, ist doch alles OK.
Ich hätte da noch einen kleinen Vorschlag zu den IF Zeilen. Da Du da ja immer solche Bereiche abfragst, bist Du eigentlich immer, wenn eine Zeile für ein einzelnes Zeichen positiv geowrden ist mit der gesamten IF Abfrage Runde durch. Das heißt aber auch, daß wenn z.B. ein Zeichen im Bereich >=0 und <32 liegt es gar nicht mehr nötig ist für dieses Zeichen alle anderen IF's auch noch zu durchlaufen. Man kann da also auch ein GOTO Next, d.h. hier ein GOTO 1300 an das Ende jeder IF Zeile setzen, was dann eigentlich alle folgenden IF Abfragen wegläßt, die ja aber unnötig sind, weil bereits ausgewertet. Das sollte das Ganze ein bißchen beschleunigen, ohne das komplett umzukrempeln.
Außerdem kann man sich noch anschauen, welche Zeichen man besonders oft zum Levelmalen benutzt. Diesen Bereich sollte man dann als erste IF Zeile verwenden. Die Buchstaben wird man vermutlich relativ selten zum Leveldesign verwenden, sie werden aber hier immer für jedes Zeichen per IF als erstes abgeprüft. Die Anordnung der Bereiche sollte also in der Häufigkeit des Auftretens der Bereiche sein.
Habe Dir mal noch die Switcher Geschichte in eine weiteren Ausgabe angehängt. Diesmal liegt der Pufferbereich bei $5800 bis knapp unter $5fff. Das sollte evtl. dann doch für ein paar mehr Variablen obendrüber reichen. Die Routine startet dann dafür jetzt bei $57b0, weshalb natürlich das SYS sich ändert. Probiers halt aus.
Je weiter man das runtersetzt im Speicher ( Richtung Basic Anfang (bei $0400) ) desto höher ist natürlich die Wahrscheinlichkeit, daß man beim POKEn das hintere Ende vom Basiccode überschreibt. Normalerweise gibt es dafür auch eine Variable, womit man das Abfragen kann; heißt meist HI oder HIMEM manchmal auch FREE oder ähnlich. Siehe Basic Handbuch.
Im Übrigen: Für jemanden, der angeblich mit Logik und Strukturen auf Kriegsfuß steht, sieht das Programm sehr ordentlich und straight aus.