Beiträge von Claus im Thema „ca65 - ld65 Speicherconfig“

    Der beste Weg ist in diesem Fall, einfach zur Laufzeit die Daten an die gewünschte Position zu verschieben. Also Deine Music direkt hinter den BG-Bereich zu tun, und dann beim Start Deines Programms von da nach $c000 zu kopieren.

    Nein, wie mc71 schon sagt: ein File entspricht auf dem Cevi einem kontinuierlichen Speicherbereich. BSS irgendwo in der Mitte würde nur gehen, wenn man eine virtuelle Speicherverwaltung o.ä. hätte, die virtuelle Speicheradressen beliebig den realen Adressen zuordnet. So modernes Teufelszeugs ist dem Cevi fremd :D.

    Ja, das ist so. Es ist aber auch durchaus üblich, wenn Dinge an bestimmten Stellen im Speicher landen sollen, diese zur Laufzeit dorthin zu kopieren. Sonst wird das File ja unnötig groß (wobei ein Packer das wiederum vermeidet).

    Das Problem ist, dass Du alles in einem Outputfile haben willst, aber in der Mitte einen Bereich hast, der gar nicht definiert ist und in dem der Linker gar nicht weiß, was er für Daten schreiben soll. Entweder musst Du also dem Linker sagen, was dahin soll (wie Du mit Vergrößern des vorigen Bereichs und setzen von fill getan hast), oder Du hängst das SID direkt hinter den BG-Bereich und kopierst es zur Laufzeit nach $c000.