Der Assembler AS68 eignet sich nicht nur zur Entwicklung von Programmen, die unter CP/M 68K ablaufen sollen.
Die Objektdateien enthalten jedoch einen 28 Byte umfassenden Programm-Header, der mit den Bordmitteln AS68, LO68 und RELOC nicht entfernt werden kann.
Ich habe dazu ein kleines Tool umgesetzt, welches den Programm-Header entfernt. Die so bearbeitet Datei kann direkt in ein EPROM gebrannt und dann als Bibliothek mit den Grundprogrammen verwendet werden.
Die Grundprogramme für 68000 erkennen Bibliotheken anhand der Kennung 55AA0180. Diese Kennung muss an einer durch 1024 teilbaren Adresse im Hauptspeicher stehen. Danach folgt der Name der Bibliothek, welcher genau 8 Zeichen lang sein muss. Die Bedeutung der weiteren Einträge ist an anderer Stelle ausführlich erklärt worden.
org 0
* Bibliothekskopf definieren
dc.l $55AA0180 * KENNUNG
dc.b 'RELATIV ' * PROGRAMM-NAME
dc.l relativ * STARTADRESSE
dc.l endrel - relativ * LAENGE
dc.b 1 * 0=ABSOLUT 1= RELATIV
dc.b 1 * 1=68008 2=68000 4=68020
dc.w 0 * RESERVIERT
dc.l 0,0 * RESERVIERT
* Ausfuerhbarer Code der Bibliothek
relativ:
rts * Programmende
endrel:
nop * Notwendig für AS68
end
Rahmen für zwei oder mehrere Bibliothek
Wenn das Grundprogramm eine Bibliothek-Kennung gefunden hat, wird unmittelbar danach getestet, ob weitere Bibliotheken folgen. Es dürfen also mehrere Kennungen unmittelbar aufeinander folgen.
Das Tool entfernt die ersten 28 Bytes einer Objektdatei und speichert das Ergebnis in eine neue Datei. Der Quelltext wird ganz normal mit der Submit-Datei MAKE.SUB übersetzt, wodurch sich das ausführbare Programm STRIP.68K ergibt.
Eingesetzt wird das Tool nach dem Übersetzen und Linken des Quelltextes der Grundprogramm Bibliothek(en). Der Vorgang wird mit der Submit-Datei LIB.SUB automatisiert.
AS68 erzeugt die Objektdatei und ein Listing, mit LO68 können weiter Objektdateien hinzugefügt werden (optional), SRTIP erzeugt die ROM-Datei, die in ein EPROM gebrannt werden kann. Danach werden die temporär notwendigen Dateien gelöscht.
Ich habe ein Diskimage zusammengestellt, welches sich unmittelbar mit dem NKC Emulator einsetzen lässt. Das Image ist bootfähig und enthält alle notwendigen Dateien und Programme zur Entwicklung eigener Bibliotheken.
LIBS.IMG 203 kByte
Aus dem Inhalt
Betriebssystem CP/M 68K, Assembler AS68, Linker LO68, Relocator RELOC, PIP, STAT, MORE, EDIT, PROMER und einiges mehr. Außerdem das Programm STRIP, die Submit-Datei LIB.SUB und die oben gezeigten Beispiele. Auf der Diskette sind knapp 500 kByte zur Entwicklung eigener Programme frei.