Nachtrag:

Im CLP kann man natürlich mit "%BIN(&VAR &POS 2)" den Binärwert direkt abfragen oder in eine Variable laden.

Mittels %SUBST(&VAR &POS &LEN) kann ich dann die einzelnen Werte abgreifen.

Solange man die Listen relativ dynamisch bearbeitet definiere ich die übergebene CL-Variable mit *CHAR(9999).

Besser ist es eigentlich in ILERPG, da kann ich die Listen ggf. mit:

D ListParm DS
D NumParm 5I 0
D Parms 10 DIM(300)

schön definieren.
Ansonsten wirds etwas komplizierter, aber Pointer-Arithmetik geht da ganz gut.