Benutzer-Werkzeuge

Webseiten-Werkzeuge


skripte

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
skripte [09.02.2016 15:22]
martin [Register]
skripte [11.08.2021 10:15] (aktuell)
Zeile 67: Zeile 67:
 | cmp [Register] [Value] | Vergleich zw. einem Register und einem Wert | 0x0301 | | cmp [Register] [Value] | Vergleich zw. einem Register und einem Wert | 0x0301 |
 | cmp [Register] [Register] | Vergleich zw. zwei Registern | 0x0302 | | cmp [Register] [Register] | Vergleich zw. zwei Registern | 0x0302 |
-| and [Register] [Value] | Binäres-Oder eines Registers mit einem Wert | 0x0401 | +| and [Register] [Value] | Binäres-Und eines Registers mit einem Wert | 0x0401 | 
-| and [Register] [Register] | Binäres-Oder eines Registers mit einem anderen Register | 0x0402 |+| and [Register] [Register] | Binäres-Und eines Registers mit einem anderen Register | 0x0402 |
 | or [Register] [Value] | Binäres-Oder eines Registers mit einem Wert | 0x0501 | | or [Register] [Value] | Binäres-Oder eines Registers mit einem Wert | 0x0501 |
 | or [Register] [Register] | Binäres-Oder eines Registers mit einem anderen Register | 0x0502 | | or [Register] [Register] | Binäres-Oder eines Registers mit einem anderen Register | 0x0502 |
Zeile 88: Zeile 88:
 | pause [Register] | Pausiert für x Zehntelsekunden | 0x1702 | | pause [Register] | Pausiert für x Zehntelsekunden | 0x1702 |
 | call [Value] | siehe: Abschnitt ''call & return''| - | | call [Value] | siehe: Abschnitt ''call & return''| - |
-| callid [Value] | siehe: Abschnitt ''playoid & callid'' <color red>kein offiziell unterstützter Befehl</color>| 0x1501 |+| callid [Value] | siehe: Abschnitt ''playoid & callid'' <color red>(kein offiziell unterstützter Befehl)</color>| 0x1501 |
 | return | siehe: Abschnitt ''call & return''| 0x1400 | | return | siehe: Abschnitt ''call & return''| 0x1400 |
  
Zeile 106: Zeile 106:
 | max [Register] [Register] | arg1 = max( arg1, arg2) | | max [Register] [Register] | arg1 = max( arg1, arg2) |
 | exp2 [Register] | arg1 = 2 <html>^</html> arg1 | | exp2 [Register] | arg1 = 2 <html>^</html> arg1 |
 +| rnd [Register] [Register] | arg1 = "Zufallszahl zwischen 0 (incl.) und arg2 (incl.)" |
 +| rnd [Register] [Value] | arg1 = "Zufallszahl zwischen 0 (incl.) und arg2 (incl.)" |
 +| volume [Register] | setzt die Stiftlautstärke (1-20) |
 +| volume [Value] | setzt die Stiftlautstärke (1-20) |
 +| lastid [Register] | arg1 = "letzte angewählte Ting-OID" |
 +| lang [Register] | arg1 = "Sprachcode" |
 +| setbit [Register] [Register] | setzt das arg2-te Bit im Register arg1 auf 1 |
 +| setbit [Register] [Value] | setzt das arg2-te Bit im Register arg1 auf 1 |
 +| unsetbit [Register] [Register] | setzt das arg2-te Bit im Register arg1 auf 0 |
 +| unsetbit [Register] [Value] | setzt das arg2-te Bit im Register arg1 auf 0 |
 +| getbit [Register] [Register] [Register] | arg1 = 1 wenn das arg3-te Bit von arg2 auf 1 gesetzt ist, ansonsten 0 |
 +| getbit [Register] [Value] [Register] | arg1 = 1 wenn das arg3-te Bit von arg2 auf 1 gesetzt ist, ansonsten 0 |
 +| getbit [Register] [Register] [Value] | arg1 = 1 wenn das arg3-te Bit von arg2 auf 1 gesetzt ist, ansonsten 0 |
 +| getbit [Register] [Value] [Value] | arg1 = 1 wenn das arg3-te Bit von arg2 auf 1 gesetzt ist, ansonsten 0 |
 +| lock | siehe Abschnitt "lock & unlock" |
 +| unlock | siehe Abschnitt "lock & unlock" |
 +
  
 Als inoffizielle Erweiterung ist es möglich im Skript-Code anstatt Dezimalzahlen auch Hexadiezimalzahlen zu verwenden. Hierzu muss ''0x'' als Präfix der Zahl vorangestellt werden. Als inoffizielle Erweiterung ist es möglich im Skript-Code anstatt Dezimalzahlen auch Hexadiezimalzahlen zu verwenden. Hierzu muss ''0x'' als Präfix der Zahl vorangestellt werden.
  
 ===== Register ===== ===== Register =====
 +
 +Die Register sind jeweils 16 bit unsigned Werte. Es gibt keinen Überlauf, d.h. es gilt: ''0xffff + 1 = 0''.
  
 | <color red>V0 bis V91</color> | Speicherregister (read + write) | | <color red>V0 bis V91</color> | Speicherregister (read + write) |
-| V92 | <color red>lock</color> +| V92 | lock & unlock (siehe Abschnitt "lock & unlock"
 | V93 | Sprachcode (siehe Dateisystem für eine Liste der Codes) (read) | | V93 | Sprachcode (siehe Dateisystem für eine Liste der Codes) (read) |
 | V94 | Volume <color red>(2-20)</color> (write)| | V94 | Volume <color red>(2-20)</color> (write)|
Zeile 118: Zeile 137:
 | V96 | <color red>?</color> | | V96 | <color red>?</color> |
 | V97 | <color red>Interrupt</color> | | V97 | <color red>Interrupt</color> |
-| V98 | zufälliger Wert <color red>(0 bis 23767)</color> (read) |+| V98 | ein zufälliger Wert von 0 bis 32767 (0x7FFF) (read) |
 | V99 | <color red>?</color> | | V99 | <color red>?</color> |
 | <color red>V100 - ?</color> | <color red>?</color> | | <color red>V100 - ?</color> | <color red>?</color> |
Zeile 133: Zeile 152:
 In einer Unterroutine wird der Befehl ''return'' als ''0x1400'' kodiert. In einer Unterroutine wird der Befehl ''return'' als ''0x1400'' kodiert.
 In der aufrufenden Routine wird der Befehl ''call'' durch den Code der Unterroutine ersetzt! Der Befehl ''return'' wird durch einen ''jmp'' Befehl ersetzt, der auf das Ende der eingebetteten Unterroutine zeigt. Durch dieses untypische Vorgehen ist z.B. keine Rekursion möglich. In der aufrufenden Routine wird der Befehl ''call'' durch den Code der Unterroutine ersetzt! Der Befehl ''return'' wird durch einen ''jmp'' Befehl ersetzt, der auf das Ende der eingebetteten Unterroutine zeigt. Durch dieses untypische Vorgehen ist z.B. keine Rekursion möglich.
 +
 +===== lock & unlock (das Register V92) =====
 +
 +Mit dem Register V92 kann der "Ting-Smart (neu)" in einen Modus versetzt werden, der verhindert, dass wenn gerade ein Track abspielt kein neuer angewählt werden kann. Das funktioniert nicht mit dem "Ting-Smart". Hier wird das Register ignoriert. Um den Modus anzuschalten nutzt man ''set V92,1'' (oder ''lock''), um ihn auszuschalten ''set V92,0'' (oder ''unlock''). Der Lock bleibt auch nach dem Befehl ''end'' aktiv. (Vielen Dank an Markus)
skripte.1455031350.txt.gz · Zuletzt geändert: 11.08.2021 10:15 (Externe Bearbeitung)