Reset

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Begriffsklärung Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen finden sich unter Reset (Begriffsklärung).
Einschaltbild und Grundzustand eines C64
Typischer Userport Reset-Taster

Mit Reset (zu deutsch: das Rücksetzen oder die Grundeinstellung) wird allgemein der Vorgang des Zurücksetzens eines Geräts oder eines Programms auf den Grundzustand bezeichnet.

Bei Hardware wird der Reset-Vorgang nach dem Anschalten des Geräts oder nach Druck auf einen Reset-Taster durchlaufen (auch "Kaltstart"). Die meisten Hardware-Komponenten erhalten im Zuge dessen auch eine entsprechende Signalisierung über die sogenannten Reset-Leitung am RES-Anschluss, wodurch auch auf Hardware-Ebene integrierte Schaltkreise zurückgesetzt werden (siehe auch Hardware-Aufbau des C64).

Im Gegensatz zum Warmstart ist die üblicherweise hardware-bedingte Auslösung immer zwingend und wirkt selbst bei verfahrenen Situationen, etwa dort, wo die CPU in einem unbrauchbaren Zustand "hängt". Beim C64 haben einige Programme zwar einen "Reset-Schutz"; dieser verhindert zwar den Reset an sich nicht, das Programm übernimmt aber bedingt durch die Modulkennung nach dem Reset sofort wieder die Kontrolle über den Rechner. Die beim Kaltstart durchgeführte Initialisierung lässt mitunter gewisse Zustände unberührt, z.B. den aktuellen Speicherinhalt. Mit Hilfe einer UNNEW-Funktion kann beispielsweise nach einem Reset ein zuvor aktives BASIC-Programm wieder restauriert werden.

Beim C64 geht bei einem Kaltstart die Kontrolle an den KERNAL zur Reset-Routine (bei $FCE2, Details). U.a. wird dabei, falls eine Modulkennung gefunden wird, der Vektor an der Stelle $8000/$8001 angesprungen, sonst wird der Vektor bei $A000/$A001 (BASIC-ROM) verwendet.

Ein Programm kann auch einen Soft-Kaltstart herbeiführen. Hierbei fehlt die explizite Signalisierung der Hardware-Komponenten und es werden nur die Vorgänge in Software abgearbeitet, als hätte es eine hardware-bedingte Auslösung gegeben. Der Reset-Vorgang kann auf verschiedene Weise angestoßen werden; beim C64 ist eine KERNAL-Routine zum Ausführen des Resets verantwortlich, die von BASIC aus per SYS 64738 ($FCE2) aufgerufen werden kann.
Viele Anwendungsprogramme, aber auch Spiele bieten ein "Beenden"- oder eine "Exit"-Funktion an, die in diesen Soft-Kaltstart mündet.

Speicheradressen[Bearbeiten | Quelltext bearbeiten]

Die Reset-Vektoren (abgelegt als Low- und High-Byte) verweisen auf die Speicheradresse, hinter der sich die vom KERNAL genutzte System-Reset-Routine befindet. Bei allen MOS Technology 65XX-Prozessoren ist der Reset-Vektor an den gleichen Speicheradressen, nämlich $FFFC/$FFFD (65532/65533), positioniert.[1] In BASIC lässt sich ein Software-seitiger Reset z.B. mit SYS 64738 für den C64 (siehe auch Spalte Adresse Reset-Routine in der Tabelle) durchführen, während in Assember der Programmiercode JMP $FCE2 diesen ausführt.

Reset-Vektor und -Routine Speicheradressen
CPU Computer Adresse Reset-Vektor Adresse Reset-Routine
Hex Dezimal Hex Dezimal
MOS Technology 6502 PET 2000er-Reihe $FFFC 65532 $FD38 64824
MOS Technology 6502 CBM 3000er-Reihe $FFFC 65532 $FCD1 64721
MOS Technology 6502 PET 4000er-, CBM 8000er-, SuperPET 9000er-Reihe $FFFC 65532 $FD16 64790
MOS Technology 6502 CBM 500 $FFFC 65532 $F99E 63902
MOS Technology 6502 CBM 600/700 $FFFC 65532 $F997 63895
MOS Technology 6502 VIC-20 $FFFC 65532 $FD22 64802
MOS Technology 6510 C64, SX-64 $FFFC 65532 $FCE2 64738
MOS Technology 7501/8501 C16, C116, Plus/4 $FFFC 65532 $FF6F 65380
MOS Technology 8502 C128x $FFFC 65532 $FF3D 65341


Siehe auch[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: Reset