Im ersten Fall, d.h. dass der gepackete Wert auf die Stellen 6-10 übertragen werden soll, musst Du lediglich die Positionen 6-10 als gepackt numerisches Feld definieren (11P 0) und anschließend den Wert übernehmen:
Code:
D DS1 DS Inz
D Alpha1 28A
D Dec 11P 0 Overlay(Alpha1: 6)
* Alternativ
D DS1 DS Inz
D Alpha1 28A
D Dec 6 10P 0
/Free
Dec = 5028398445;
Im zweiten Fall ist es ein bisschen trickier, da Integer-Felder nur 1 (= 3U 0), 2 (= 5U 0), 4 (= 10U 0) oder 8 (= 20U 0) Byte groß definiert werden können. 5028398445 muss in ein 8 Byte großes Feld addiert werden. Da Du jedoch 5 Byte benötigst müssen im Anschluss nur die Stellen/Bytes 4-8 in das eigentliche Text-Feld übernommen werden.
Etwa so:
Code:
D DS2 DS Inz
D Alpha2 28A
D Alpha2A 5A Overlay(Alpha2: 6)
D DS3 DS Inz
D Alpha3 8A
D Int 20U 0 Overlay(Alpha3)
/Free
Int = 5028398445;
Alpha2A = %Subst(Alpha3: 4);
Birgitta
Bookmarks