Seite 2 von 2

Re: XEX-Files in Boot-Cassette wandeln

BeitragVerfasst: Do 14. Jul 2016, 13:24
von cpg
Alle Linkerscripts die mit cc65 kommen machen ein monolithisches File. (Stimmt nicht ganz, siehe unten.)

Wenn man mehrere Ladesegmente haben will muß man ein eigenes Linkerscript machen (siehe Beispiel in http://cc65.github.io/doc/atari.html#ss11.4, wobei die Vorgehensweise für reine Assemblerprogramme einfacher ist, man hat keine Runtime-Library, keinen "heap" und keinen Argument-"stack").

Normalerweise wird bei Disk-Programmen (atari.cfg und atarixl.cfg) zuerst ein Segment mit einem Programmteil geladen, der checkt, ob das Programm in den Speicher paßt. Daher gibt's doch mehrere Ladesegmente, wobei das User-Programm allerdings nur in einem Segment (monolithisch) liegt.

Für Multi-Segment Tape-Programme müßte man ein neues Linkerscript machen, und eine Laderoutine schreiben, die die weiteren Segmente nach dem ersten lädt.

Falls Interesse besteht, kann ich mal schauen ob ich das hinkrieg...

Re: XEX-Files in Boot-Cassette wandeln

BeitragVerfasst: Fr 15. Jul 2016, 11:21
von freetz
Danke für die interessanten Hintergrund-Infos!
Wie gesagt, für mich hat es sich insofern erledigt, als dass das Umkopieren innerhalb eines monolitischen Files vom Speicherverbrauch her günsitger war, als entsprechende Laderoutinen. Aber prinzipiell fände ich es schon interessant, wie so ein Ansatz aussehen könnte - BL/C (Binary Load Cassette), das ich in den 80ern viel benutzt habe, muss ja einen solchen Ansatz verwendet haben, um die DOS-Files dann von Cassette laden zu können. Vielleicht versuche ich das mal zu disassemblieren, die Frage wäre dann aber immer noch, wie klein man so einen Loader kriegt, wenn man auf das ganze User-Interface verzichtet etc.

F.