This information contains an example of a problem state program creating, establishing addressability to, using, and deleting the data space named TEMP. The first lines of code create the data space and establish addressability to the data space. To keep the example simple, the code does not include the checking of the return code from the DSPSERV macro or the ALESERV macro. You should, however, always check return codes.
DSPEXMPL CSECT
DSPEXMPL AMODE 31
DSPEXMPL RMODE ANY
BAKR 14,0 SAVE CALLER'S STATUS ON STACK
SAC 512 SWITCH INTO AR MODE
SYSSTATE ASCENV=AR ENSURE PROPER CODE GENERATION
.
LAE 12,0 SET BASE REGISTER AR
BASR 12,0 SET BASE REGISTER GPR
USING *,12
.
DSPSERV CREATE,NAME=DSPCNAME,STOKEN=DSPCSTKN, X
BLOCKS=DSPBLCKS,ORIGIN=DSPCORG
ALESERV ADD,STOKEN=DSPCSTKN,ALET=DSPCALET,AL=WORKUNIT
.
* ESTABLISH ADDRESSABILITY TO THE DATA SPACE
.
LAM 2,2,DSPCALET LOAD ALET OF SPACE INTO AR2
L 2,DSPCORG LOAD ORIGIN OF SPACE INTO GPR2
USING DSPCMAP,2 INFORM ASSEMBLER
.
* MANIPULATE DATA IN THE DATA SPACE
.
L 3,DATAIN
ST 3,DSPWRD1 STORE INTO DATA SPACE WRD1
.
MVC DSPWRD2,DATAIN COPY DATA FROM PRIMARY SPACE
* INTO THE DATA SPACE
MVC DSPWRD3,DSPWRD2 COPY DATA FROM ONE LOCATION
* IN THE DATA SPACE TO ANOTHER
MVC DATAOUT,DSPWRD3 COPY DATA FROM DATA SPACE
* INTO THE PRIMARY SPACE
.
* DELETE THE ACCESS LIST ENTRY AND THE DATA SPACE
.
ALESERV DELETE,ALET=DSPCALET REMOVE DS FROM AL
DSPSERV DELETE,STOKEN=DSPCSTKN DELETE THE DS
.
PR RETURN TO CALLER
.
DS 0D
DSPCNAME DC CL8'TEMP ' DATA SPACE NAME
DSPCSTKN DS CL8 DATA SPACE STOKEN
DSPCALET DS F DATA SPACE ALET
DSPCORG DS F DATA SPACE ORIGIN RETURNED
DSPCSIZE EQU 10000000 10 MILLION BYTES OF SPACE
DSPBLCKS DC A((DSPCSIZE+4095)/4096) NUMBER OF BLOCKS NEEDED FOR
* A 10 MILLION BYTE DATA SPACE
DATAIN DC CL4'ABCD'
DATAOUT DS CL4
.
DSPCMAP DSECT MAPPING OF DATA SPACE STORAGE
DSPWRD1 DS F WORD 1
DSPWRD2 DS F WORD 2
DSPWRD3 DS F WORD 3
END
Note that you cannot code ACCESS=PRIVATE on the ALESERV macro when you request an ALET for a data space; all data space entries are public.