Dateien laden und speichern

Der JU+TE-Computer verwendet als Massenspeicher einen Kassettenrecorder. Beim Emulator jedoch sollen die Dateien nicht auf Kassette, sondern im Dateisystem des Emulator-Rechners gespeichert werden. Aus diesem Grund kommen nicht die Funktionen des Betriebssystems des emulierten Computers zur Anwendung, sondern der Emulator bietet selbst entsprechende Funktionalitäten an.



1. Dateiformate

Folgende Dateiformate werden unterstützt:

1.1. JTC-Datei

Das JTC-Format ist das Standardformat des Emulators und entspricht inhaltlich dem Format, mit dem das Betriebssystem EMR-ES 1988 Dateien auf Kassette speichert. Dieses Format besteht aus einem 128 Byte großen Kopf, an den sich der Datenbereich anschließt, der wiederum ein binärer Abzug eines Speicherbereichs ist. Der Dateikopf hat folgenden Aufbau:


Das JTC-Format ist kompatibel zu dem von einigen KC-Emulatoren her bekannten KCC-Format, d.h., möchten Sie eine JTC-Datei in einen solchen KC-Emulator laden, reicht es i.d.R. aus, die Datei in eine KCC-Datei umzubenennen. Umgekehrt können KCC-Dateien geladen werden, wenn sie dem Format von KC-Systemdateien entsprechen. KC-BASIC-Dateien werden dagegen nicht unterstützt.

1.2. KC-TAP-Datei

Dieses bei KC-Emulatoren weit verbreitete Format wird mit folgenden Einschränkungen unterstützt:

Das KC-TAP-Format hat üblicherweise die Dateiendung .tap. Da es aber auch bei anderen Systemen, z.B. einige C64-Emulatoren, TAP-Dateien gibt, die völlig anders aufgebaut sind, wird das hier gemeinte Format KC-TAP genannt.

1.3. Binärdatei

Bei einer Binärdatei (BIN-Datei) handelt es sich um einen reinen binären Speicherabzug ohne weitere Zusatzinformationen, d.h. ohne jegliche Adressangaben. Man muss sich somit die Anfangsadresse des Speicherbereichs separat merken und diese Adresse dann beim Laden wieder angeben. Da das etwas umständlich ist, kann man die Anfangsadresse bzw. die Adressen in den Dateinamen schreiben. Der Emulator versucht beim Laden einer BIN-Datei, aus dem Namen die Adressen zu extrahieren. Es können sowohl nur die Anfangsadresse, Anfangs- und Endadresse als auch Anfangs-, End- und Startadresse angegeben werden. Die Startadresse (nur bei Maschinencodeprogrammen sinnvoll) ist rein informativ und wird beim Laden in der Statuszeile angezeigt.

Damit der Emulator die Adressen erkennt, müssen sie mit einem Unterstrich getrennt als vierstellige Hexadezimalzahlen (Groß-/Kleinschreibung ist egal) an den Basisnamen der Datei, also vor dem Punkt mit der Endung, angehängt werden:

DateinameBedeutung
dateiname_AADR.bin BIN-Datei mit Anfangsadresse im Namen
dateiname_AADR_EADR.bin BIN-Datei mit Anfangs- und Endadresse im Namen
dateiname_AADR_EADR_SADR.bin BIN-Datei mit Anfangs-, End- und Startadresse im Namen


1.4. Intel-HEX-Datei

Bei diesem Format handelt es sich auch um einen Speicherabzug, jedoch sind die einzelnen Bytes hexadezimal kodiert, d.h. die Datei ist eine reine ASCII-Datei und kann auch in einem Texteditor geöffnet werden.

Die Daten sind in Form von Datensätzen gruppiert, die jeweils eine eigene Adresse haben. Die Adresse der ersten Zeile wertet der Emulator als Anfangsadresse.

Die Adressen müssen nicht zwingend aufsteigend oder aneinander anschließend sein, d.h., die Daten in der Datei können fragmentiert sein und Lücken enthalten. Auch kann es Daten vor der (vermeintlichen) Anfangsadresse geben. Diese werden allerdings nicht in den Arbeitsspeicher geladen.

2. Datei laden

Die Funktionen zum Laden einer Datei finden Sie im Menü Datei. Es gibt zwei Funktionen: Laden... und Laden mit Optionen.... Der einzige Unterschied zwischen beiden ist, dass bei Laden mit Optionen... immer der Dialog zur Eingabe der Ladeoptionen erscheint, während bei Laden... dieser Dialog nur dann angezeigt wird, wenn die zu ladende Datei keine Ladeadresse enthält.

Alternativ kann man eine Datei auch durch Klicken auf das entsprechende Symbol in der Werkzeugleiste oder mittels Drag&Drop laden. Beides entspricht dem Menüpunkt Laden....

Die Ladeoptionen beziehen sich hauptsächlich auf den Adressbereich, in den die ausgewählte Datei geladen werden soll. Das Feld Laden ab Adresse muss ausgefüllt sein und wird mit der in der Datei stehenden Ladeadresse vorbelegt. Enthält die Datei keine Ladeadresse, wird das Feld mit dem Wert E000 vorbelegt. Das ist die Adresse, auf die üblicherweise BASIC-Programme geladen werden.

Der Emulator erkennt das Format der zu ladenden Datei automatisch. Wenn auch höchst unwahrscheinlich könnte es aber vorkommen, dass eine BIN-Datei mit einer Byte-Folge beginnt, die der Emulator als das Format eines anderen Dateityps erkennt. Für diesen Fall gibt es die Option Als BIN-Datei laden.

3. Datei speichern

Diese Funktion finden Sie ebenfalls im Menü Datei. Zuerst öffnet sich ein Dialog zur Eingabe der Anfangs- und Endadresse des zu speichernden Bereichs und zur Festlegung des Dateiformats. Der Emulator prüft, ob sich ab Adresse E000h ein BASIC-Programm im Speicher befindet. Wenn ja, werden die beiden Eingabefelder mit der Anfangs- und Endadresse dieses BASIC-Programms vorbelegt, d.h., beim Speichern eines BASIC-Programms brauchen Sie keine Adressen selbst eingeben.

Beim Speichern einer JTC-, KC-TAP oder Intel-HEX-Datei wird auch die Anfangsadresse mit gespeichert. Möchten Sie, das in der Datei eine andere Anfangsadresse als die tatsächliche eingetragen wird, so geben Sie das im Feld Abweichende Anfangsadresse an.

Des Weiteren gibt es das Feld Name in der Datei, dass jedoch nur beim JTC- und KC-TAP-Format verwendet wird. Hier geben Sie eine beliebige, max. 11-stellige Bezeichnung an, die mit in der Datei gespeichert wird.

Nachdem Sie den Dialog bestätigt haben, öffnet sich eine Dateiauswahlbox, in der Sie den Namen der Datei festlegen. Mit Bestätigen dieses Dateiauswahldialogs wird der angegebene Speicherbereich in die gewünschte Datei geschrieben.