Allgemeines
Anwendungsgebiet: | Benutzer- und Auftragsschalter; siehe "Benutzer- und Auftragsschalter" |
Makrotyp: | R-Typ; siehe "R-Typ-Makroaufrufe" |
Seit BS2000/OSD-BC V1.0 steht der neue Makro SWITCH zur Verfügung, der die Funktionalitäten der Makros GETSW, GETUS, SETSW und SETUS vereinigt.
Makrobeschreibung
Mit dem Makro SETSW kann der Anwender die 32 Auftragsschalter, die seinem Auftrag zugeordnet sind, einschalten, ausschalten oder invertieren.
Makroaufrufformat und Operandenbeschreibung
SETSW |
[{ON=(nr,...,nr) / OFF=(nr,...,nr) / INVERT=(nr,...,nr)}] |
ON=(...)
Die angegebenen Schalter werden eingeschaltet.
OFF=(...)
Die angegebenen Schalter werden ausgeschaltet.
INVERT=(...)
Die angegebenen Schalter werden eingeschaltet, wenn sie ausgeschaltet und ausgeschaltet, wenn sie eingeschaltet waren.
nr
Nummer eines Auftragsschalters, der verändert werden soll. Die Schalter sind von 0 bis 31 durchnummeriert.
Es können mehrere Schalter in beliebiger Reihenfolge oder auch als Bereich (z.B. 3-8) angegeben werden.
Makroaufruf ohne Operanden
Statt der Operandenangabe kann die gewünschte Schalterstellung aller Auftragsschalter in Register R0 angegeben werden. Die Schalter sind in aufsteigender Reihenfolge den Bits des Registers R0 (von rechts nach links) zugeordnet:
Bit 2 (0) --> Schalter 0 Bit 2 (1) --> Schalter 1 : : : : Bit 2 (31) --> Schalter 31
Es gilt:
Bit 2n = 0: Schalter n ausgeschaltet
Bit 2n = 1: Schalter n eingeschaltet
0 <= n <= 31
Rückinformation und Fehleranzeigen
R15:
+---------------+ | | | | | |0|0|0|0|0|0|a|a| +---------------+
Über die Ausführung des Makros SETSW wird im rechtsbündigen Byte des Registers R15 ein Returncode übergeben.
X'aa' | Erläuterung |
X'00' | Die gewünschte Schalteränderung wurde ausgeführt. |
X'04' | Falsche Operandenangabe. Die Schalteränderung wurde nicht ausgeführt. |
X20' | Interner Fehler. |