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 maximal 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.
Achtung! Ist der Name kürzer als 8 Zeichen, werden bei KC85/1, KC87 und Z9001 Nullbytes eingetragen, bei HC900 und KC85/2..5 dagegen Leerzeichen. Da beim Emulator die Datei im Dateisystem des Computers liegt, hat sie bereits einen Namen. Dieser Name muss nicht mit dem im Dateikopf eingetragenen Namen übereinstimmen. |
||||||||||||
8 | 3 Bytes | Dateityp |
Das ist ein maximal 3 Zeichen langer Dateityp.
Die wichtigsten Typen sind:
Achtung! Bei HC900 und KC85/2..5 ist dieses Feld zwar als Dateityp definiert (siehe KC85/3 Systemhandbuch, Seite 88), jedoch wird beim Speichern und Laden mittels Kassette ein Datetyp nicht berücksichtigt. Stattdessen werden Dateiname und Dateityp zusammen als eine 11 Zeichen lange Dateibezeichnung verwendet (siehe KC85/3 Systemhandbuch, Seite 32), die, sofern sie kürzer als 11 Zeichen ist, mit Leerzeichen aufgefüllt wird. Aus diesem Grund benutzt auch JKCEMU bei HC900 und KC85/2..5 eine 11 Zeichen lange Bezeichnung. |
||||||||||||
16 | 1 Byte | Anzahl nachfolgender Adressen | Dieses Feld gibt die Anzahl der nachfolgenden Adressen an (Anfangs-, End- und ggf. Startadresse). Steht hier eine Zahl größer 3, enthält die Datei trotzdem nur 3 Adressen. Allerdings rechnet dann ein HC900 bzw. KC85/2..5 die Startadresse beim Laden der Datei mit einem Adressoffset nicht um. | ||||||||||||
17 | 2 Bytes | Anfangsadresse | Anfangsadresse im emulierten Arbeitsspeicher | ||||||||||||
19 | 2 Bytes | Endadresse |
Endadresse im emulierten Arbeitsspeicher
Achtung! Bei HC900 und KC85/2..5 wird die Endadresse + 1 eingetragen (siehe KC85/3 Systemhandbuch, Seite 88). |
||||||||||||
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 größer hat. |
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. |