CHAIN (SBX)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
CHAIN (SBX)
Syntax: CHAIN <programname>[,<device>]
Parameter
<programname>: Name des Programms
<device>: Gerätenummer, Default=1
Einordnung
Typ: Anweisung
Kontext: Programmkontrolle
Aufgabe: Laden und Starten eines Programms aus einem anderen heraus
Abkürzung: keine
Token: $65 $01 (101 1)
Verwandte Befehle
Keine

Dieser Artikel beschreibt das Simons'-Basic-Extension-Schlüsselwort CHAIN.

Mit dem Befehl CHAIN ist es möglich, aus einem Programm heraus ein anderes zu laden und automatisch zu starten. Das neu geladene Programm überschreibt dabei das existierende. Die BASIC-Zeiger werden von CHAIN angepasst, sodass das geladene Programm länger als das Ausgangsprogramm sein darf. Variablen werden nicht übergeben.

Beispiel[Bearbeiten | Quelltext bearbeiten]

Ein Auswahlprogramm mit zwei wählbaren Programmen:

10 PRINT CHR$(147)"PROGRAMMAUSWAHL"
20 PRINT "BASIC-CODE: ";HEX$(DEEK($002B))"-";HEX$(DEEK($002D)):PRINT
30 PRINT "LADE UND STARTE MIT DEM BEFEHL CHAIN:"
31 PRINT "1 = PROGRAMM1"
32 PRINT "2 = PROGRAMM2"
40 GET A$
41 IF A$="1" THEN CHAIN "PROGRAMM1",8
42 IF A$="2" THEN CHAIN "PROGRAMM2",8
50 GOTO 40
60 END

Programm1:

10 PRINT CHR$(147)"PROGRAMM1"
20 PRINT "BASIC-CODE: ";HEX$(DEEK($002B))"-";HEX$(DEEK($002D)):PRINT
30 PRINT "ZURUECK ZUR PROGRAMMAUSWAHL MIT <RETURN>"
40 GET A$:IF A$<>CHR$(13) THEN 40
50 CHAIN "PROGRAMMAUSWAHL",8
60 END

Programm2:

10 PRINT CHR$(147)"PROGRAMM2"
20 PRINT "GELADEN UND GESTARTET"
30 PRINT "MIT DEM BEFEHL CHAIN"
40 PRINT "BASIC-CODE: ";HEX$(DEEK($002B) );"-";HEX$(DEEK($002D)):PRINT
50 PRINT "ZURUECK ZUR PROGRAMMAUSWAHL MIT <RETURN>"
60 GET A$:IF A$<>CHR$(13) THEN 60
70 CHAIN "PROGRAMMAUSWAHL",8
80 END