The following program creates a 1-megabyte memory object and writes the character string "Hi Mom" into each 4k page of the memory object. The program then frees the memory object.
TITLE 'TEST CASE DUNAJOB'
ACONTROL FLAG(NOALIGN)
DUNAJOB CSECT
DUNAJOB AMODE 31
DUNAJOB RMODE 31
SYSSTATE ARCHLVL=2
* Begin entry linkage
BAKR 14,0
CNOP 0,4
BRAS 12,@PDATA
DC A(@DATA)
@PDATA LLGF 12,0(12)
USING @DATA,12
LHI 0,DYNAREAL
STORAGE OBTAIN,LENGTH=(0),SP=0,CALLRKY=YES
LLGTR 13,1
USING @DYNAREA,13
MVC 4(4,13),=C'F6SA'
* End entry linkage
*
SAM64 Change to amode64
IARV64 REQUEST=GETSTOR, +
SEGMENTS=ONE_SEG, +
USERTKN=USER_TOKEN, +
ORIGIN=VIRT64_ADDR
LG 4,VIRT64_ADDR Get address of memory obj
LHI 2,256 Set loop counter
LOOP DS 0H
MVC 0(10,4),=C'HI_MOM! ' Store HI MOM!
AHI 4,4096
BRCT 2,LOOP
* Get rid of all memory objects created with this
* user token
IARV64 REQUEST=DETACH, +
MATCH=USERTOKEN, +
USERTKN=USER_TOKEN, +
COND=YES
*
* Begin exit linkage
LHI 0,DYNAREAL
LR 1,13
STORAGE RELEASE,LENGTH=(0),ADDR=(1),SP=0,CALLRKY=YES
PR
* End exit linkage
@DATA DS 0D
ONE_SEG DC FD'1'
USER_TOKEN DC FD'1'
LTORG
@DYNAREA DSECT
SAVEAREA DS 36F
VIRT64_ADDR DS AD
DYNAREAL EQU *-@DYNAREA
END DUNAJOB