XEX-Files in Boot-Cassette wandeln

Bild Alles zum Thema Programmierung
Bild All around programming

Moderatoren: Sven, Sleepy, Wolfgang, cas, des-or-mad

Re: XEX-Files in Boot-Cassette wandeln

Beitragvon cpg » Do 14. Jul 2016, 13:24

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...
Benutzeravatar
cpg
Newbie
Newbie
 
Beiträge: 24
Registriert: Sa 5. Mär 2016, 03:58

Re: XEX-Files in Boot-Cassette wandeln

Beitragvon freetz » Fr 15. Jul 2016, 11:21

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.
freetz
Multi Poster
Multi Poster
 
Beiträge: 290
Registriert: Fr 30. Jul 2010, 11:50

Vorherige

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron