Übersicht
über
die Befehle (sortiert nach Opcode): |
Mnemonic |
Opcode |
Parameter |
Beschreibung |
Beispiel
(Grafik anklicken!)
|
LIGHTOFF |
0x00 |
<delay> |
Turn
Light
Off for time <delay>
Andere Form von (BRIGHT 0,<delay>)
|
 |
BRIGHT |
0x00
-0xBF |
<delay> |
Output
Brightness
value for time <delay>
Assembler-Syntax: BRIGHT
<value>,<delay>
Stellt die Helligkeit auf den Wert <value>
ein. Der nachfolgende Befehl wird nach der Zeit
<delay> (in "Ticks") ausgeführt. Der
Helligkeitswert wird hierbei im Opcode codiert!
Wertebereich:
value: 0..191 (128 entspricht 100%)
delay: 0..255 |
 |
LIGHTON |
0x80 |
<delay> |
Turn
Light
On for time <delay>
Andere Form von (BRIGHT 128,<delay>) |
 |
DEFTICKLEN |
0xC0 |
<time|var> |
Define Length
of
Tick (Header-Befehl)*
Definiert die Länge eines Ticks in
Millisekunden.
Wertebereich: Konst. bis 239. Standard-Wert: 10 ms
Die Verwendung einer Variablen erlaubt die
dynamische Steuerung der
Ausführungsgeschwindigkeit.
Hinweis:
funktioniert nur, wenn das Programm mit
"#define COMMTICK 0" assembliert wird! |
 |
DEFBRIGHT |
0xC1 |
<value|var> |
Define
Brightness
Multiplier (Header-Befehl)*
Definiert einen Helligkeits-Multiplikator für
den Ausgangs-Kanal.
Wertebereich: 0..239, Standardwert = 128 = *1.0
Die Verwendung einer Variablen erlaubt die
dynamische Steuerung der Helligkeit. |
 |
DEFSWITCH |
0xC2 |
<x> |
Define
Channel's
Switch (Header-Befehl)*
Definiert einen anderen Steuerschalter, der dem
Ausgangs-Kanal zugeordnet ist (= channel switch)
Standardeinstellung: x = Kanalnummer |

|
DEFVAR |
0xC3 |
<x> |
Define
Channel's Variable (Header-Befehl)*
Definiert eine andere Steuervariable, die dem Kanal
zugeordnet ist (= channel variable)
Standardeinstellung: x = Kanalnummer |

|
DELAY |
0xC8 |
<delay|var> |
Delay
Fügt eine Wartezeit von <delay> Ticks
ein. Der vor diesem Befehl eingestellte
Helligkeitswert wird nicht verändert. Max. Wert
für delay als Konstante: 239 |
|
JUMP |
0xC9 |
<addr> |
Jump
Das Programm wird an Speicheradresse <addr>
fortgesetzt.
|
|
SMOOTHOFF |
0xCA |
|
Turn
Smooth
Mode Off
Helligkeitsänderungen
nachfolgender BRIGHT-Anweisungen erfolgen
direkt auf den angegebenen neuen Wert, ohne
Zwischenwerte. (Standardeinstellung) |

|
SMOOTHON |
0xCB |
|
Turn
Smooth
Mode On
Änderungen zwischen den Helligkeitswerten
nachfolgender BRIGHT-Anweisungen erfolgen
kontinuierlich durch lineare Interpolation.
Implementation: jedes Steuerkommando mit
Opcode >= 0xC0 unterbricht ggf. den
Smooth-Modus an dieser Programmstelle. SMOOTH
bleibt aktiviert, aber es entsteht ggf. ein
Helligkeits-Sprung. |
RNDJMP |
0xCC |
<chance|var>,<addr> |
Random
Jump
Das Programm wird mit der Wahrscheinlichkeit
<chance> an Addresse <addr> fortgesetzt.
<chance> = 0..128 für nie bis immer. |

|
RNDDLY |
0xCD |
<maxticks> |
Random
Delay
Das Programm wird nach einer zufällig erzeugten
Wartezeit zwischen 0 und <maxticks>
fortgesetzt. |
RNDBRT |
0xCE |
<min|var>,<max|var>,<delay> |
Output
Random
Brightness
Der Helligkeitswert wird zufällig im
Bereich <min> bis <max> eingestellt und
liegt für die Dauer <delay> dort an.
Hinweis:
funktioniert nicht im Smooth-Modus! |
HALTSOFF |
0xD0 |
|
Halt
while
Channel's Switch is Off
Hält bei ausgeschaltetem Steuerschalter die
Programmausführung an dieser Stelle an, bis der
Schalter eingeschaltet wird. |

|
HALTSXOFF |
0xD1 |
<x> |
Halt
while Switch
<x> is Off
Hält bei ausgeschaltetem Steuerschalter
<x> die Programmausführung an dieser
Stelle an, bis der Schalter eingeschaltet wird. |
HALTSON |
0xD2 |
|
Halt
while
Channel's Switch is On
Hält bei eingeschaltetem Steuerschalter die
Programmausführung an dieser Stelle an, bis der
Schalter ausgeschaltet wird. |
HALTSXON |
0xD3 |
<x> |
Halt
while Switch
<x> is On
Hält bei eingeschaltetem Steuerschalter die
Programmausführung an dieser Stelle an, bis der
Schalter ausgeschaltet wird. |
JSOFF |
0xD4 |
<addr> |
Jump
if
Channel's Switch is Off
Wenn der dem eigenen Kanal zugeordnete
Steuerschalter ausgeschaltet ist, wird das
Programm an Speicheradresse <addr>
fortgesetzt. |

|
JSXOFF |
0xD5 |
<x>,<addr> |
Jump
if
Switch <x> is Off
Wenn der Steuerschalter <x> ausgeschaltet ist,
wird das Programm an Speicheradresse <addr>
fortgesetzt. |
JSON |
0xD6 |
<addr> |
Jump
if
Channel's Switch is On
Wenn der dem eigenen Kanal zugeordnete
Steuerschalter eingeschaltet ist, wird das Programm
an Speicheradresse <addr> fortgesetzt. |
JSXON |
0xD7 |
<x>,<addr> |
Jump
if
Switch <x> is On
Wenn der Steuerschalter <x> eingeschaltet ist,
wird das Programm an Speicheradresse <addr>
fortgesetzt. |
JVB |
0xD8 |
<val>,<addr> |
Jump
if
Channel's Variable is Below <val>
Wenn der Inhalt der dem Kanal zugeordneten Variablen
kleiner ist als <val>, wird das Programm an
Adresse <addr> fortgesetzt. |

|
JVXB |
0xD9 |
<x>,<val>,<addr> |
Jump
if Variable
X is Below <val>
Wenn der Inhalt Variablen <x> kleiner ist als
<val>, wird das Programm an Adresse
<addr> fortgesetzt. |
JVAE |
0xDA |
<val>,<addr> |
Jump
if
Channel's Variable is Above or Equal <val>
Wenn der inhalt der dem Kanal zugeordneten Variablen
größer oder gleich <val> ist, wird
das Programm an Adresse <addr> fortgesetzt. |
JVXAE |
0xDB |
<x>,<val>,<addr> |
Jump
if Variable
X is Above or Equal <val>
Wenn der inhalt der Variablen <x>
größer oder gleich <val> ist, wird
das Programm an Adresse <addr> fortgesetzt. |
CLRS |
0xDC |
|
Clear
Channel's
Switch
Schaltet den dem eigenen Kanal zugeordneten
Steuerschalter auf "aus".
|
 |
CLRSX |
0xDD |
<x> |
Clear
Switch
X
Der Steuerschalter <x> wird ausgeschaltet |
SETS |
0xDE |
|
Set
Channel's
Switch
Schaltet den dem eigenen Kanal zugeordneten
Steuerschalter auf "ein". |

|
SETSX |
0xDF |
<x> |
Set
Switch
X
Der Steuerschalter <x> wird eingeschaltet |
BRIGHTV |
0xE0 |
<delay> |
Output
Brightness from
Channel's Variable
Setzt die Helligkeit auf den Wert aus der
Variablen, die dem Ausgangskanal zugeordnet ist
|

|
BRIGHTVX |
0xE1 |
<vx>,
<delay> |
Output
Brightness from Variable
<vx>
Setzt die Helligkeit auf den Wert aus der
Variablen <vx> |
SETV |
0xE2 |
<value> |
Set Channel's Variable to given
value
Setzt die Variable, die dem Ausgangskanal
zugeordnet ist, auf den Wert <value> |

|
SETVX |
0xE3 |
<value>,
<vx> |
Set Variable
<vx>
to given value
Setzt die Variable <vx> auf den Wert
<value> |
COPYV |
0xE4 |
<src> |
Copy
contents
of variable <src> into
channel's variable
Der Inhalt der Variablen <src> wird in die
Variable kopiert, die dem Ausgangskanal
zugeordnet ist |
|
COPYVX |
0xE5 |
<src>,
<dest> |
Copy
contents
of variable <src> into variable <dest>
Der Inhalt der Variablen <src> wird in die
Variable <dest> kopiert |
ADDCV |
0xE6 |
<const> |
Add
constant
value to channel's variable
Addiert den Wert <const> zum Inhalt der
Variablen, die dem Ausgangskanal zugeordnet ist
Wertebereich für <const>: -128..+127
Das Ergebnis wird auf den Wertebereich 0..255
begrenzt, d.h. es gibt keinen Überlauf der
Variablen. |

|
ADDCVX |
0xE7 |
<const>,
<vx> |
Add
constant
value to variable <vx>
Addiert den Wert <const> zum Inhalt der
Variablen <vx>
Wertebereich für <const>: -128..+127
Das Ergebnis wird auf den Wertebereich 0..255
begrenzt, d.h. es gibt keinen Überlauf der
Variablen. |
ADDV |
0xE8 |
<src> |
Add
contents
of variable <src> to channel's
variable
Addiert den Inhalt der Variablen <src> zum
Inhalt der Variablen, die dem Ausgangskanal
zugeordnet ist
Wertebereich für Inhalt von <src>:
-128..+127
Das Ergebnis wird auf den Wertebereich 0..255
begrenzt, d.h. es gibt keinen Überlauf der
Variablen. |

|
ADDVX |
0xE9 |
<src>,
<dest> |
Add contents of variable
<src>
to variable <dest>
Addiert den Inhalt der Variablen <src>
zum Inhalt der Variablen <dest> und speichert
das Ergebnis in <dest>
Wertebereich für Inhalt von <src>:
-128..+127
Das Ergebnis wird auf den Wertebereich 0..255
begrenzt, d.h. es gibt keinen Überlauf der
Variablen. |
MULV |
0xEA |
<src> |
Multiply
channel's
variable by contents of <src>
Der Inhalt der Variablen, die dem Ausgangskanal
zugeordnet ist, wird mit dem Inhalt der Variablen
<src> multipliziert.
(Multiplikator: 0..255, Festkomma, 128
entspricht dem Wert 1,0) |
|
MULVX |
0xEB |
<src>,
<dest> |
Multiply
contents
of variable <dest> by contents of <src>
Der Inhalt der
Variablen <dest> wird mit dem Inhalt der
Variablen <src> multipliziert und in
<dest> gespeichert.
(Multiplikator: 0..255,
Festkomma,
128 entspricht dem Wert 1,0) |
SCLUPV |
0xEC |
<c1|var>,
<c2|var>, |
Skaliert den Inhalt der Variablen, die
dem Ausgangskanal zugeordnet ist, von
Eingangs-Wertebereich
<c1>..<c2> auf vollen
Ausgangs-Wertebereich (0 bis 128) |
|
SCLUPVX |
0xED |
<c1|var>,
<c2|var>, <vx> |
Skaliert den Inhalt der Variablen <vx> von
Eingangs-Wertebereich
<c1>..<c2> auf den vollen
Ausgangs-Wertebereich (0 bis 128) |
SCLDWNV |
0xEE |
<c1|var>,
<c2|var>, |
Skaliert den Inhalt der Variablen, die
dem Ausgangskanal zugeordnet ist, von vollen
Eingangs-Wertebereich (0..128) herunter
auf Ausgangs-Wertebereich <c1> bis
<c2>
|
|
SCLDWNVX |
0xEF |
<c1|var>,
<c2|var>, <vx> |
Skaliert den Inhalt der Variablen <vx> vom
vollen Eingangs-Wertebereich (0..128) herunter auf
Ausgangs-Wertebereich <c1> bis
<c2>
|
RNDV |
0xF0 |
<min|var>,
<max|var> |
Load
channel's
variable with random value
Lädt die Variable, die dem Ausgangskanal
zugeordnet ist, mit einem Zufallswert zwischen
<min> und <max> |
|
RNDVX |
0xF1 |
<min|var>,
<max|var>, <vx> |
Load variable
<vx>
with random value
Lädt die Variable <vx> mit
einem Zufallswert zwischen <min> und
<max> |
CLIPV |
0xF2 |
<min|var>,
<max|var> |
Clip
channel's variable to min/max value |
>>
Details |
Begrenzt den Inhalt
der Variablen, die dem Ausgangskanal
zugeordnet ist, auf <min>...<max>
|

|
CLIPVX |
0xF3 |
<min|var>,
<max|var>, <vx> |
Begrenzt den Inhalt der Variablen <vx> auf
<min>...<max> |
P_RESET |
0xFF |
|
Program
Reset
Setzt für den aktuellen Kanal den
Programmzähler auf die
Einsprungadresse zurück und aktiviert die
folgenden Werte:
- Ausgangs-Helligkeit: 0 (Licht aus)
- Smooth-Modus: aus
- Ticklänge: Default (10ms)
Schalterstellungen, Variablen und deren
Zuordnungen bleiben unverändert.
|
|
Anmerkungen:
*Header Befehle: diese Anweisungen müssen am
Programmanfang stehen, d.h. unmittelbar nach
Einsprungadresse und vor allen anderen Befehlen.
Jeder andere Befehl, als vom Typ "Header", macht
Header-Befehle im nachfolgenden Programmablauf
unwirksam. |