CHAIN (SBX)
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
* | ADD ALL | ADD ARR | ALTER | BACK | BARRIER | BCKFLASH | BEEP | BIN$ | CALCX | CALCY | CCOL | CHAIN | CHANGE | CLEAR | CONTINUE | COPY ARR | CREATE | DEEK | DEG | DELETE | DIV ALL | DIV ARR | DOKE | DRAW TO | DS$ | ECOL | ELEMENTS | EVAL | FILTER | FIND | FONT | FORCE | GRAD | GRID | HELP | HEX$ | HIMEM | HLIN | HLOAD | HSAVE | INFO | INIT | INPUT ARR | INVERT | LABEL | LOMEM | LOW RES | MAX | MCOL | MIN | MODE | MUL ALL | MUL ARR | NORMAL | ON DETECT | PREPARE | PRINT ARR | PROTECT | PULL | PULSE | PUSH | READ ARR | RENUMBER | REVERSE | ROTATE | SCALE | SCHR | SCOL | SCRATCH | SCREEN | SCX | SCY | SET ARR | SHOW | SORT | SPRITE | SPR LOC | SPRX | SPRY | START | SUB ALL | SUB ARR | SUM | TICK | TRANSFER | UPPER | VLIN | XVEC | YVEC | ZER ARR |