Kassettenpuffer
Der Kassettenpuffer wird zum Laden und Speichern bei der Datasette benutzt. Er ist Bestandteil der erweiterten Zeropage und liegt bei der Speicheradresse 828 bis 1019 ($033C bis $03FB).
Die Belegung nachdem eine Datei zum lesen/laden geöffnet wurde und der Header-Block mit dem Dateinamen gefunden wurde:
| Adresse Dez.: | Hex.: | Bezeichnung: |
|---|---|---|
| 828 | $033C | Dateitype: 1 = BASIC-Programm relativ gespeichert oder geladen an Speicheradresse 2049 ($0801) mit ,1; 2 = Datenblock ohne Speicheradressen, erzeugbar mit PRINT#;lesbar mit INPUT#; und/oder GET# 3 = Maschinenprogramm absolut gespeichert oder geladen an die angegebene Speicheradressen mit ,1,1; 4 = Data Header ohne Speicheradressen; 5 = EOT-Block (End of Tape = BAND-ENDE) erzeugt eine Fehlermeldung; abspeicherbar mit ,1,2 für BASIC oder ,1,3 für Maschinensprache!)[1][2] |
| 829 / 830 | $033D / $033E | Startadresse der Datei als Low- und High-Byte |
| 831 / 832 | $033F / $0340 | Endadresse der Datei als Low- und High-Byte |
| 833 - 848 | $0341 - $0350 | Dateiname einer Datei (0. bis max. 15. Zeichen bzw. Bytes; wird mittels FOUND über den LOAD-Befehl angezeigt.)[3] |
| 849 - 1019 | $0351 - $03FB | Restlicher Dateiname einer Datei (16. bis max. 187. Zeichen bzw. Bytes; wird nicht angezeigt! Hier kann auch bereits ein Teil des Programmcodes abgelegt werden, der dann später vom evtl. sehr kurzen, auf dem Band folgenden eigentlichen Programmcode aus angesprungen wird, das spart Ladezeit und wird bei kommerzieller Software mit Schnelllader oft genutzt.) |
Beim tatsächlichen lesen und schreiben von Daten wird der Puffer dann als Zwischenspeicher für die Blockinhalte verwendet.
Man kann dort auch Maschinensprache-Routinen ablegen, sowie Daten, bspw. Sprite- oder Zeichen-Daten, wenn dabei nicht die Datasette benutzt wird. Der Speicherbereich wird bei einem Reset mit Nullen überschrieben.
Weiterhin könnte dieser Speicherbereich verschoben werden, über die Speicherzellen 178 und 179 (Low- und High-Byte-Vektor auf den Beginn des Kassettenpuffer). Allerdings nicht unterhalb des Speicherbereichs 512!
Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ Dirk Paulissen: "CASSETTE BOOK for the COMMODORE-64 and VIC-20"; Abacus Software, S.49
- ↑ Dirk Paulissen: "Das Cassettenbuch zu Commodore 64 und VC-20"; Data Becker
- ↑ Baloui, Brückmann, etc.: Das neue Commodore 64 Intern Buch"; Data Becker, 418ff.