Offset | Länge | Feld | Bedeutung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2 Bytes | Anfangsadresse |
Anfangsadresse im Arbeitsspeicher, In den Speicherbereich ab dieser Adresse wird der hinter dem Kopfblock folgende Datenbereich der Datei geladen. Es ist i.d.R. auch möglich, beim Laden eine andere Adresse anzugeben. In diesem Fall wird die im Kopfblock stehende Anfangsadresse ignoriert. |
||||||||
2 | 2 Bytes | Endadresse |
Endadresse im Arbeitsspeicher, Es werden (Endadresse - Anfangsadresse + 1) Bytes geladen. |
||||||||
4 | 2 Bytes | Startadresse | Die Startadresse ist nur relevant, wenn die Datei ein ausführbares Maschinencodeprogramm (Dateityp "C") enthält. Das Programm wird mit einem Sprungbefehl auf diese Adresse gestartet. | ||||||||
12 | 1 Byte | Dateityp |
Der Dateityp wird mit einem Buchstaben angegeben.
Die wichtigsten Typen sind:
|
||||||||
13 | 3 Bytes | Headersave-Kennung | Hier stehen drei Bytes mit dem hexadezimalen Wert Wert D3. | ||||||||
16 | 16 Bytes | Dateiname |
Das ist eine 16 Zeichen lange Bezeichnung,
die bei Speicherung auf Magnettonband als Dateiname
dient.
Ist die Bezeichnung kürzer als 16 Zeichen,
wird mit Leerzeichen aufgefüllt.
Da beim Emulator die Datei im Dateisystem des Computers liegt und somit bereits einen Namen hat, hat dieses Feld nur die Bedeutung einer zusätzlichen Bezeichnung. Diese Bezeichnung muss nicht mit dem Namen im Dateisystem übereinstimmen. |
Offset | Länge | Feld | Bedeutung |
---|---|---|---|
0 | 8 Bytes | Dateiname |
Das ist eine maximal 8 Zeichen lange Bezeichnung,
die bei Speicherung auf Magnettonband als Dateiname
dient.
Da beim Emulator die Datei im Dateisystem des Computers liegt und somit bereits einen Namen hat, hat dieses Feld nur die Bedeutung einer zusätzlichen Beschreibung. Diese Beschreibung muss nicht mit dem Namen im Dateisystem übereinstimmen. |
8 | 3 Bytes | Dateityp | Das ist eine maximal 3 Zeichen lange Dateinamenerweiterung. Da die Dateinamenerweiterung, die als Dateityp fungiert, sich direkt an den Dateinamen anschließt, werden häufig beide Felder zu einer 11-Zeichen langen Dateibezeichnung zusammengefasst. Auch JKCEMU bietet hierfür nur ein Feld an und füllt ggf. mit Leerzeichen auf. |
16 | 1 Byte | Anzahl nachfolgender Adressen | Dieses Feld gibt die Anzahl der nachfolgenden Adressen an (Anfangs-, End-, Start-/Kaltstart- und Warmstartadresse). Hier steht meistens eine zwei oder drei und selten eine vier. |
17 | 2 Bytes | Anfangsadresse | Anfangsadresse im emulierten Arbeitsspeicher |
19 | 2 Bytes | Endadresse + 1 | Endadresse + 1 im emulierten Arbeitsspeicher |
21 | 2 Bytes | Startadresse |
Mit dieser Adresse wird das in der Datei enthaltene
Maschinencodeprogramm gestartet.
Die Startadresse ist nur gültig, wenn das Feld Anzahl nachfolgender Adressen den Wert drei oder vier hat. |
23 | 2 Bytes | Warmstartadresse |
Wenn ein Programm zwei Startadressen hat (Kalt- und Warmstart),
ist hier die Warmstartadresse zu finden.
Die Warmstartadresse ist nur gültig, wenn das Feld Anzahl nachfolgender Adressen den Wert vier hat. JKCEMU wertet die Warmstartadresse nicht aus. |
Offset | Länge | Bedeutung |
---|---|---|
0 | 16 Bytes |
KC-TAP-Kennung mit der hexadezimalen Bytefolge:
C3 4B 43 2D 54 41 50 45 20 62 79 20 41 46 2E 20 Als C-String geschrieben: "\xC3KC-TAPE by AF. " |
16 | 129 Bytes | Kopfblock |
145 | 129 Bytes | 2. Block |
... | ... | ... |
16 + ((n - 1) * 129) | 129 Bytes |
n. Block
Der letzte Block hat häufig die Blocknummer 255 (hexadezimal: FF). |
Offset | Länge | Feld | Bedeutung |
---|---|---|---|
0 | 1 Zeichen | Startmarkierung | Hier steht ein Doppelpunkt. Alle Zeichen zwischen dem letzten Record und der Startmarkierung werden ignoriert. Üblicherweise betrifft das einen Zeilenumbruch. |
1 | 2 Zeichen | Anzahl der Datenbytes | Die Anzahl der Datenbytes wird hexadezimal angegeben. |
3 | 4 Zeichen | Startadresse des Records | Die Adresse wird hexadezimal angegeben. |
7 | 2 Zeichen | Record-Typ |
00: Daten-Record 01: Dateiende-Record Andere Record-Typen werden je nach Typ entweder ignoriert oder führen zum Abbruch des Ladens. |
9 | n Zeichen | Daten des Records | Jeweils zwei Zeichen kodieren hexadezimal ein Datenbyte, d.h., der Record enthält n / 2 Datenbytes. |
9 + n | 2 Zeichen | Prüfsumme | Die Prüfsumme sind die unteren 8 Bits des Ergebnisses aus Null minus der Summe der einzelnen Bytes, wobei jeweils hexadezimale Zeichen ein Byte ergeben. |