Spectrum File Format Normalerweise werden zwei Blocks gesendet: - Der Headerblock enthält den Datei-Header - Der Datenblock enthält die Daten Jeder Block besteht aus - Fangsequenz - Synchronisierungsimpuls - Typbyte - Daten - Prüfbyte Grundsätzlich kann das Lesesignale invertiert sein. Ob es das ist, wird am Synchronisierimpuls erkannt. Alle Signale sind symmetrisch, d.h. sie bestehen aus einer kompletten Periode mit zwei gleich langen Halbphasen. Die Fangsequenz für den Headerblock ist 5 Sekunden lang, die für den Datenblock nur 2 Sekunden. Die Spektrum-Laderoutine prüft in beiden Fällen nur auf mind. 256 Perioden. Längenfaktor für Fangsequenz: ca. $A4 Der Synchronisierimpuls ist eine einzelne Periode lang. Längenfaktor Synchronisierimpuls: ca. $34 Das Typbyte unterscheidet zwischen Headerblock und Datenblock: Typ = 0: Headerblock Typ=255: Datenblock Der Headerblock ist immer 17 Byte lang (ohne Typ- und Prüfbyte) Die Länge des Datenblocks steht im Headerblock. Die Bedeutung der Daten im Headerblocks: dc.b Typ: • 0: Programm+Daten • 1: Zahlenarray • 2: Buchstabenarray • 3: Code, Screen$ dc.10 10 Byte Name, falls ohne Name, ist Byte 0 = $FF dc.w Länge des folgenden Datenblocks dc.l Unterschiedlich: Typ 0: dc.w Zeilennummer für Autostart oder $8000 für kein Autostart dc.w Programmlänge ohne Daten Typ 1+2: dc.b unused dc.b Arrayname dc.w unused Typ 3: dc.w Startadresse (Originallage der Daten) dc.w unused Das Prüfbyte wird durch XOR über alle Datenbytes und das Typbyte gebildet. Längenfaktor für alle 0-Bits ist ca. $40 Längenfaktor für alle 1-Bits ist ca. $80