Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| homecomputer:ac1:kassetteninterface [2023/01/30 08:22] – volkerp | homecomputer:ac1:kassetteninterface [2024/12/05 12:49] (aktuell) – [USB .Z80-Dateien] volkerp | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| Das Prinzip entspricht dem in [12] | Das Prinzip entspricht dem in [12] | ||
| vorgestellten Kassetteninterface. Die dort angegebene Interfaceschaltung wurde | vorgestellten Kassetteninterface. Die dort angegebene Interfaceschaltung wurde | ||
| - | dem Grundmodul des " | + | dem Grundmodul des " |
| Aufzeichnungsformat entspricht etwa den in [10] verwendeten. | Aufzeichnungsformat entspricht etwa den in [10] verwendeten. | ||
| + | |||
| + | Achtung: Das Kassettenaufzeichnungsformat des AC1 enthält nicht nur Speicherbereiche. Vielmehr ist es ein Containerformat mit verschiedenen Abschnitten (so gibt es z.B. auch Ladebilder). BASIC-Programme zum großen Basic V1.1 müssen als Audio-Datei geladen werden, ein Laden eines binären Dumps ist nicht direkt möglich. | ||
| Aufbau: | Aufbau: | ||
| Zeile 28: | Zeile 30: | ||
| Datei: | Datei: | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +--------+----+--------+--------+---------+---------+---------+ | + | #--------#----#--------#--------#---------#---------#---------# |
| | vorton | E6 | U Name | vorton | < Block | < Block | < Block | ... | < Block | x sadr | | | vorton | E6 | U Name | vorton | < Block | < Block | < Block | ... | < Block | x sadr | | ||
| - | +--------+----+--------+--------+---------+---------+---------+ | + | #--------#----#--------#--------#---------#---------#---------# |
| - | </ditaa> | + | </a2s> |
| Daten-Block '<': | Daten-Block '<': | ||
| Zeile 39: | Zeile 41: | ||
| hat nur der letzte Block < 256 Bytes | hat nur der letzte Block < 256 Bytes | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +---+------+--------+-----+--------+------+ | + | #---#------#--------#-----#---------#-----# |
| | < | len | byte 0 | ... | byte255 | cks | | | < | len | byte 0 | ... | byte255 | cks | | ||
| - | +---+------+--------+-----+--------+------+ | + | #---#------#--------#-----#---------#-----# |
| - | </ditaa> | + | </a2s> |
| Beispielprogramm CLIST@ von der Musterkassette. Der Datenstrom besteht aus 4 Blöcken (Name + 256x00, 256 Datenbytes, 224 Datenbytes, Startadresse). Das ist Dump des Bytestreams, | Beispielprogramm CLIST@ von der Musterkassette. Der Datenstrom besteht aus 4 Blöcken (Name + 256x00, 256 Datenbytes, 224 Datenbytes, Startadresse). Das ist Dump des Bytestreams, | ||
| Zeile 49: | Zeile 51: | ||
| {{: | {{: | ||
| - | :!: Das 8K-Basic verwendet einen eigenen Dateiaufbau !!! | + | :!: Das **8K-Basic |
| - 512 x 00-Byte Vorton | - 512 x 00-Byte Vorton | ||
| Zeile 58: | Zeile 60: | ||
| - xxx Bytes | - xxx Bytes | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +--------+----+------+----+--------+----------+ | + | #--------#----#------#----#--------#----------# |
| | vorton | E6 | Name | D3 | laenge | Programm | | | vorton | E6 | Name | D3 | laenge | Programm | | ||
| - | +--------+----+------+----+--------+----------+ | + | #--------#----#------#----#--------#----------# |
| - | </ditaa> | + | </a2s> |
| Beispielprogramm LOCATO von der Musterkassette, | Beispielprogramm LOCATO von der Musterkassette, | ||
| {{: | {{: | ||
| + | |||
| + | **Beschreibung aus dem FA:** | ||
| Die Aufzeichnungsgeschwindigkeit beträgt 1500 bit/s. Das bedeutet, daß bei einer | Die Aufzeichnungsgeschwindigkeit beträgt 1500 bit/s. Das bedeutet, daß bei einer | ||
| Zeile 181: | Zeile 186: | ||
| Datei: | Datei: | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +--------+--------+--------+-------+-------+-------+ | + | #--------#--------#--------#-------#-------#-------# |
| | vorton | Header | vorton | Block | Block | Block | ... | Block | | | vorton | Header | vorton | Block | Block | Block | ... | Block | | ||
| - | +--------+--------+--------+-------+-------+-------+ | + | #--------#--------#--------#-------#-------#-------# |
| - | </ditaa> | + | </a2s> |
| Block: | Block: | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +------+-------+-----+--------+-----+ | + | #------#-------#-----#--------#-----# |
| - | | 0000 | word0 | ... | word15 | cks | | + | | 0000 | word0 | ... | word15 | cks | |
| - | +------+-------+-----+--------+-----+ | + | #------#-------#-----#--------#-----# |
| - | </ditaa> | + | </a2s> |
| Kopfblock: | Kopfblock: | ||
| Zeile 200: | Zeile 205: | ||
| Eine Startadresse gibt es nicht! | Eine Startadresse gibt es nicht! | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | + | #----#----#----#----#----#----#----#----#----#----#----#----#----#----#----#----# |
| | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | | | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | | ||
| - | |' | + | |' |
| - | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | + | #----#----#----#----#----#----#----#----#----#----#----#----#----#----#----#----# |
| | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | | | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | | ||
| | .. aufgefüllt (16 Zeichen) | | .. aufgefüllt (16 Zeichen) | ||
| - | +-------------------------------------------------------------------------------+ | + | #-------------------------------------------------------------------------------# |
| - | </ditaa> | + | </a2s> |
| Aufbau des Kopfblocks: | Aufbau des Kopfblocks: | ||
| Zeile 231: | Zeile 236: | ||
| Im Kopfblock gibt es keine Startadresse. Nach dem Laden überprüft der Computer aber das Programm auf eine **Autostart-Sequenz**. Ist diese vorhanden, erfolgt der Autostart auf entsprechender Adresse. Die Autostartsequenz muss an der Anfangsadresse stehen (5 Byte): | Im Kopfblock gibt es keine Startadresse. Nach dem Laden überprüft der Computer aber das Programm auf eine **Autostart-Sequenz**. Ist diese vorhanden, erfolgt der Autostart auf entsprechender Adresse. Die Autostartsequenz muss an der Anfangsadresse stehen (5 Byte): | ||
| 53 43 48 xx xx ; xx xx = Startadresse. | 53 43 48 xx xx ; xx xx = Startadresse. | ||
| + | |||
| + | ===== Autostart-Tape ===== | ||
| + | |||
| + | Speichern eines Programms auf Kassette (mit optionalem Startbild) und selbstständigem Start nach dem Einlesen, B.Nickel, 1988 | ||
| + | |||
| + | Es wird nicht nur der reine Speicherbereich auf Kassette gespeichert. Das Aufzeichnungsformat ist ein sog. Container-Format, | ||
| + | |||
| + | !TODO! | ||
| + | |||
| + | ===== Super-Tape ===== | ||
| + | |||
| + | E.Ludwig | ||
| + | |||
| + | !TODO! | ||
| ===== USB .Z80-Dateien ===== | ===== USB .Z80-Dateien ===== | ||
| Zeile 238: | Zeile 257: | ||
| Es gibt einen Kopfblock (Header), der zum Z1013-Headersave kompatibel ist. | Es gibt einen Kopfblock (Header), der zum Z1013-Headersave kompatibel ist. | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +--------+----------+ | + | #--------#----------# |
| | Header | Programm | | | Header | Programm | | ||
| - | +--------+----------+ | + | #--------#----------# |
| - | </ditaa> | + | </a2s> |
| Kopfblock: | Kopfblock: | ||
| Zeile 248: | Zeile 267: | ||
| Im Kopfblock ist Dateiname (16 Zeichen), Anfangs- und End-Adresse und der Dateityp (1 Zeichen) enthalten. | Im Kopfblock ist Dateiname (16 Zeichen), Anfangs- und End-Adresse und der Dateityp (1 Zeichen) enthalten. | ||
| - | <ditaa noedgesep> | + | <a2s> |
| - | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | + | #----#----#----#----#----#----#----#----#----#----#----#----#----#----#----#----# |
| | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | | | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | | ||
| | | | | ||
| - | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | + | #----#----#----#----#----#----#----#----#----#----#----#----#----#----#----#----# |
| | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | | | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F | | ||
| - | | Programmname, | + | | |
| - | +-------------------------------------------------------------------------------+ | + | #-------------------------------------------------------------------------------# |
| - | </ditaa> | + | </a2s> |
| + | |||
| + | der freie Bereich ist mit " | ||
| Es werden 4 Dateitypen unterschieden: | Es werden 4 Dateitypen unterschieden: | ||