Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z1013:kassettenformate [2012/02/16 10:53] – Bilder neu gerendert volkerp | z1013:kassettenformate [2022/12/27 12:32] (aktuell) – [Headersave] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Kassettenformate ====== | ====== Kassettenformate ====== | ||
- | Das Kassetten-Magnetband-Interface des Z1013 ist ein Diphase-Verfahren. Es kam speziell auf dem Z1013 zum Einsatz und ist auf anderen Computern nicht verbreitet. | + | Das Kassetten-Magnetband-Interface des Z1013 ist ein Diphase-Verfahren. |
+ | |||
+ | Das Kassetten-Magnetband-Interface wurde vom [[homecomputer: | ||
+ | Das ist gut in der Monitorbeschreibung (ASM-Quellen) zu vergleichen: | ||
Aufgezeichnet wird in Blöcken zu je 32 Byte. Jeder Block besteht aus einem Kopf: einem einzelnen Word 0000h, sowie den Daten; gespeichert als 10h Words. Anschließend folgt eine Prüfsumme (wieder ein Word) über den Datenblock. Tatsächlich werden also pro Block 36 Byte aufgezeichnet. | Aufgezeichnet wird in Blöcken zu je 32 Byte. Jeder Block besteht aus einem Kopf: einem einzelnen Word 0000h, sowie den Daten; gespeichert als 10h Words. Anschließend folgt eine Prüfsumme (wieder ein Word) über den Datenblock. Tatsächlich werden also pro Block 36 Byte aufgezeichnet. | ||
Programm: | Programm: | ||
+ | |||
<ditaa noedgesep> | <ditaa noedgesep> | ||
+--------+-------+-------+-------+ | +--------+-------+-------+-------+ | ||
- | | vorton | + | | Vorton |
+--------+-------+-------+-------+ | +--------+-------+-------+-------+ | ||
</ | </ | ||
- | |||
===== Physisches Aufzeichnungsformat ===== | ===== Physisches Aufzeichnungsformat ===== | ||
Zeile 36: | Zeile 39: | ||
0-Bit: 1 Vollschwingung mit 2560 Hz (2 Phasenwechsel nach jeweils 0,39 ms) | 0-Bit: 1 Vollschwingung mit 2560 Hz (2 Phasenwechsel nach jeweils 0,39 ms) | ||
1-Bit: 1 Halbschwingung mit 1280 Hz (1 Phasenwechsel nach 0,78 ms) | 1-Bit: 1 Halbschwingung mit 1280 Hz (1 Phasenwechsel nach 0,78 ms) | ||
+ | |||
+ | Mit Blocknummer und Prüfsumme zusammen besteht ein Block damit aus 36 Byte (= 18 Word). | ||
+ | |||
+ | {{: | ||
Es werden immer vollständige Blöcke aufgezeichnet, | Es werden immer vollständige Blöcke aufgezeichnet, | ||
Zeile 58: | Zeile 65: | ||
Block: | Block: | ||
+ | |||
<ditaa noedgesep> | <ditaa noedgesep> | ||
+------+-------+-----+--------+-----+ | +------+-------+-----+--------+-----+ | ||
Zeile 68: | Zeile 76: | ||
- | Beim [[z1013: | + | Beim [[z1013: |
(Anfangs-, End- und Startadresse, | (Anfangs-, End- und Startadresse, | ||
vorangestellt. Dieser Kopfblock und der erste nachfolgende Datenblock | vorangestellt. Dieser Kopfblock und der erste nachfolgende Datenblock | ||
- | haben einen langen Vorton, die anderen Datenblöcke einen kurzen. | + | haben einen langen Vorton, die anderen Datenblöcke einen kurzen |
<ditaa noedgesep> | <ditaa noedgesep> | ||
Zeile 93: | Zeile 101: | ||
| 16-31 | Dateiname, mit Leerzeichen aufgefüllt | | 16-31 | Dateiname, mit Leerzeichen aufgefüllt | ||
- | Die Blocknummer hat nun eine inhaltliche Bedeutung, | + | Die Blocknummer hat bei Headersave |
anhand derer man die Blockreihenfolge überprüfen kann. | anhand derer man die Blockreihenfolge überprüfen kann. | ||
- | Als Blocknummer | + | Als Blocknummer |
^ Block ^ Blocknummer | ^ Block ^ Blocknummer | ||
Zeile 104: | Zeile 112: | ||
| ... | u.s.w. | | ... | u.s.w. | ||
- | Die Dateianfangsadresse steht in den ersten beiden Bytes des Kopfblocks. | + | Die Blocknummer 0FFFFh wird als Endeblock erkannt. |
- | Eine Headersave-Aufzeichnung | + | Aufgrund der Kompatibilität zum originalen Format kann eine Headersave-Aufzeichnung mit den originalen Monitorprogrammen geladen werden, wenn das Laden erst **nach** dem Kopfblock |
- | geladen werden, wenn das Laden erst nach dem Kopfblock gestartet wird. | + | |
- | + | ||
- | Bei Headersave wird also ein **zusätzlicher** Kopf aufgezeichnet. Lässt man diesen Block weg, kann der Rest mit den originalen z1013-Laderoutinen eingelesen werden. Bei Headersave steht im Blockkopf die Speicheradresse des ersten Bytes im Block; also die Adresse, an die der Block (normalerweise) wieder zurückzuladen ist. FFFFh wird als Endeblock erkannt. | + | |
<ditaa noedgesep> | <ditaa noedgesep> | ||
Zeile 115: | Zeile 120: | ||
| vorton | Header | vorton | Block | Block | Block | ... | Block | | | vorton | Header | vorton | Block | Block | Block | ... | Block | | ||
+--------+--------+--------+-------+-------+-------+ | +--------+--------+--------+-------+-------+-------+ | ||
+ | ^ | ||
+ | | | ||
+ | hier starten | ||
</ | </ | ||
Zeile 165: | Zeile 173: | ||
Zum automatisierten Einlesen von 54 übergebenen Z1013-Kassetten habe ich Version 02/02 des Programms ein wenig modifiziert, | Zum automatisierten Einlesen von 54 übergebenen Z1013-Kassetten habe ich Version 02/02 des Programms ein wenig modifiziert, | ||
- | Wegen diverser Probleme mit langen Dateinamen werden als Programmnamen dabei einfach hochgezählte Nummern vergeben. | + | Wegen diverser Probleme mit langen Dateinamen werden als Programmnamen dabei einfach hochgezählte Nummern vergeben. |
Nun braucht man bloß noch eine Kassette einlegen -- nach einer halben Stunde hat man 20..60 Programme eingelesen! | Nun braucht man bloß noch eine Kassette einlegen -- nach einer halben Stunde hat man 20..60 Programme eingelesen! | ||
+ | |||
+ | <WRAP clear></ | ||
+ | |||
+ | * {{: | ||
+ | |||
+ | ====== Ausgeben vom PC ====== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <WRAP clear></ | ||
+ | |||
+ | * {{: | ||
+ | |||
+ | V0.2 2017/01/12 mit extra Swing am Ende, damit der letzte Block komplett gelesen wird\\ | ||
+ | V0.3 2017/02/15 Checkbox, um ohne Header auszugeben (orig. Z1013)\\ | ||
+ | V0.4 2017/07/21 lauffähig unter Windows 10, neues Hilfeformat | ||
+ |