Irgendwie stelle ich mich wohl zu blöd an.
Nein, das war meine Schuld. Der Monitor des C16/+4 erlaubt bei Befehlsargumenten kein '$', aber bei Assemblerbefehlen will er unbedingt eins haben. Ich bin den Monitor des 128er gewohnt, der hat diese Hürden nicht.
Inhalt nach Eingabe und Aufruf des Programms:
Das sieht mir "ähnlich genug" aus, daher vermute ich eine kalte Lötstelle an mindestens einem der Adresspins. Bis auf /CE, /OE und CS (Pins 20, 22 und 27) sollten ja alle ROM-Sockel parallel beschaltet sein, also klingel die Leitungen mal durch (bei eingesteckten Chips, also direkt von Pin zu Pin): Wenn Kernal und Basic funktionieren, aber 3+1 nicht, müsste man da ja einen Fehler finden.