Das Problem der Pointerzerstörung liegt meist am verwendeten Kopier-Befehl.
Der MOVE oder EVAL einer DS mit eingebettetem Pointer zerstört diesen, da hier intern der MI-Befehl CPYBLA/CPYBRA verwendet wird.
Wird eine Pointervariable direkt kopiert, weiß der Compiler das und verwendet den korrekten MI-Befehl.
Wenn Pointer ohne Zerstörung in einer DS kopiert werden müssen, hilft hier der Einbau einer C-Funktion:
Copy Bytes with Pointers (CPYBWP)