*
// TRIGGER ABFRAGEN
U #xTrigger
FP #xHelpFlag
SPBN end
// AR2 sichern
TAR2 #dAR2Temp
// AR1 berechnen, also erst das BYTE
L #iOutByte
SLD 3
// dann die bitnummer noch dazu
L #iOutFirst
+D
LAR1
// und noch ne Sicherheitskopie
TAR1 #dAR1Temp
// AR2 mit der Adresse eines DWords versorgen
LAR2 P##dTemp
// den Status der Ausgänge ins DWord schreiben
L #iOutNumber
nex1: T #iLoopCount
U A [AR1,P#0.0]
= [AR2,P#0.0]
+AR1 P#0.1
+AR2 P#0.1
L #iLoopCount
LOOP nex1
// maximal möglichen wert errechnen
L #iOutNumber
+ -1
L 1
SLD
L #dTemp
>D
SPBN nore
// reset
L 1
T #dTemp
SPA writ
// oder vorhandenen wert
nore: L #dTemp
SLD 1
T #dTemp
writ: LAR1 #dAR1Temp
LAR2 P##dTemp
// den Status des DWORDS auf die Ausgänge schreiben
L #iOutNumber
nex2: T #iLoopCount
U [AR2,P#0.0]
= A [AR1,P#0.0]
+AR1 P#0.1
+AR2 P#0.1
L #iLoopCount
LOOP nex2
// AR2 zurücksichern
LAR2 #dAR2Temp
end: SET
SAVE