Autostart

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Ein Programm, das mit einem Autostart versehen ist, startet sofort nach dem Laden. Oft sind Autostart-Routinen in Schnellladern oder auch als einfacher Listschutz bzw. Kopierschutz in anderer Software eingebaut.

Autostart-Programme müssen mit LOAD "Programmname",8,1 (also inklusive Angabe der Sekundäradresse) geladen werden, da sie als Ladeadresse nicht den BASIC-Start (beim C64 Adresse $0801/2049) benutzen, sondern Adressen in der (erweiterten) Zeropage, die sie beim Laden überschreiben.

Lässt man die Sekundäradresse weg, wird das Programm an den BASIC-Start gelesen. Ein Autostart findet dann nicht statt. Je nach Umsetzung des Autostarts zeigt ein LIST dann u.U. Datenmüll an, falls die Daten, die eigentlich in der Zeropage landen sollten, kein gültiges BASIC-Programm ergeben.

Eine übliche Vorgehensweise von Autostarts ist, als Ladeadresse eine Adresse vor $0326-$0327/806-807 (CHROUT) zu benutzen und diesen Vektor dann auf eine eigene Routine umzubiegen, sodass diese aufgerufen wird, sobald LOAD abgeschlossen ist und BASIC (mittels CHROUT) "READY." ausgeben will. Weitere Möglichkeiten des Autostarts finden sich im Abschnitt "Links".

Autostarts können auch z.B. den Bildschirmspeicher (ab $0400/1024) überschreiben. Je nach Intention des Programmierers erscheinen dann wirre Zeichen (falls der Bereich für ein Maschinenspracheprogramm benutzt wird) oder auch ein Ladebildschirm.

Links[Bearbeiten | Quelltext bearbeiten]