ndr-nkc.de ndr-nbc.de
  
Startseite
News
 
NDR-NKC
Geräte Z80
Geräte 68000
Geräte 8088
 
NKC Emulator
 
Z80 Section
Baugruppen
ROM's
Software
68000 Section
Baugruppen
ROM's
PASCAL/S
Software
CP/M 68K
8088 Section
Baugruppen
Downloads
 
Bussysteme
Stromversorgung
Input / Output
Grafikkarten
Speicherkarten
Massenspeicher
Weitere Baugruppen
 
Projekte
 
Dokumentation
Datenblätter
Glossar
Portraits
Links

Impressum

 

CP/M 68K Programmierkurs - Der Linker LO68

Um aus einer oder mehreren durch den Assembler erzeugten Objektdateien ein unter CPM 68K ablauffähiges Programm zu erzeugen, benötigt man den Linker. Dieser löst eventuell vorhandene Referenzen zwischen den verschiedenen Objektdateien auf und ersetzt die vom Assembler vorläufig generierten Adressen durch die absoluten Adressen, die nach dem Zusammensetzen der Objektdateien verwendet werden müssen. Der Linker ist auch notwendig, wenn im übersetzten Quellcode keine externen Referenzen vorhanden sind.

Themen dieses Kapitels

  • Aufruf des Linkers
  • Parameter und Beispiele
  • Submit-Dateien

Aufruf des Linkers

Nachdem die Quelldatei oder mehrere Quelldateien mit dem Assembler in Objektdateien übersetzt sind, können diese zusammengebunden (gelinkt) werden. Die Arbeitsweise des Linkers kann durch diverse Parameter beim Aufruf gesteuert werden.

Parameter beim Aufruf

Hier werden nur die wichtigsten Parameter aufgelistet, eine komplette Liste der Parameter findet sich ab Seite 130 in der Originaldokumentation CP/M Programmer's Manual (in englisch).

Parameter Bedeutung
Objektdateiname(n)
Der Dateiname der zu linkenden Objektdatei oder eine durch Leerzeichen getrennte Liste von mehreren Objektdateinamen. Normalerweise haben Objektdateien die Endung .O
-R
Diese Option erhält die Informationen zum Verschieben der absoluten Adressen in der ausführbaren Datei. Verschiebbare Programme haben in der Regel die Dateiendung .REL, es geht aber auch die übliche Endung .68K. Eine nachträgliche Verschiebung kann mit dem Programm RELOC.68K erfolgen.
-S
Entfernt die Symboltabelle und die Verschiebeinformationen aus der ausführbaren Datei. Dadurch ergeben sich möglichst kleine Programmdateien.
-O Dateiname
Bestimmt den Namen der zu erzeugenden Programmdatei. Der Dateiname muss durch ein Leerzeichen abgetrennt sein.
>Ausgabedateiname
erzeugt eine zusätzliche Ausgabedatei mit Fehlermeldungen. Ohne die Ausgabeumlenkung werden Fehlermeldungen auf der Konsole ausgegeben.

Aufruf-Beispiele

Hier einige Beispiele zum Aufruf des Linkers mit Erklärung. Nach den Beispielen kombinieren wir den Aufruf des Assemblers und Linkers mittels einer Submet-Datei, die automatisch mehrere Kommandos nacheinander ausführt.
Kommandozeile Erklärung
LO68 TEST.O -O TEST.68K
Startet den Linker und erzeugt aus der Objektdatei TEST.O die ausführbare Datei TEST.68K
LO68 -R TEST.O -O TEST.REL
Startet den Linker und erzeugt aus der Objektdatei TEST.O reine verschiebbare ausführbare Datei mit dem Namen TEST.REL

Submit-Dateien

Der Aufruf des Assemblers mit nachfolgendem Aufruf des Linkers lässt sich recht einfach automatisieren. Submit-Dateien sind einfache Textdateien mit aufeinanderfolgenden Kommandozeilen, die nacheinander ausgeführt werden. Submit-Dateien können wie normale Programme gestartet werden.

Mit dem Texteditor erstellt man sich eine Datei mit zum Beispiel dem Dateinamen MAKE.SUB, in der die folgenden Kommandozeilen eingetragen werden. Ein oder mehrere Parameter können innerhalb der Submit-Datei mit $1, $2 und so weiter angesprochen werden.
AS68 -L $1.S $1.O
LO68 -R -I -O $1.68K $1.O
ERA $1.O
Der Aufruf erfolgt dann einfach über die Eingabe von MAKE TEST auf der Kommandozeile. Die dann effektiv ausgeführten Befehle lauten wie folgt:
AS68 -L TEST.S TEST.O
LO68 -R -I -O TEST.68K TEST.O
ERA TEST.O
Der Quelltext TEST.S wird zuerst in die Objekt-Datei TEST.O übersetzt und dann in die ausführbare Datei TEST.68K umgewandelt. Abschließend wird die Objekt-Datei TEST.O wieder gelöscht. Selbstverständlich kann man auch die Erstellung eines Listings innerhalb der Submet-Datei automatisieren.

Falls schon im ersten Schritt bei der Übersetzung Fehler im Quelltext entdeckt werden, entstehen entweder ungültige Objektdateien oder es wird gar keine Objektdatei erzeugt. Trotzdem wird der Linker aufgerufen und erzeugt in der Folge entsprechende Fehlermeldungen.

Fazit

Mit dem Assembler AS68 und dem Linker LO68 können wir jetzt ausführbare CP/M 68K Programme aus vorliegendem Quelltext erzeugen. Submit-Dateien vereinfachen den Aufruf, da man sich die notwendigen Parameter für die beiden Programme nicht einprägen muss.

Weiter zu Teil 3 der Serie: Die BIOS-Traps

Zurück zu Teil 1 der Serie: Der Assembler AS68