* OBTAIN THE STORAGE FROM A PAGEABLE SUBPOOL
STORAGE OBTAIN,LENGTH=4096*(256+256),BNDRY=PAGE,SP=0,COND=YES
ST 1,STORSTRT
LTR 15,15 IF NOT SUCCESSFUL (0)
BNZ NOSTOR GO TO ERROR PROCESSING
*
* MAKE IT SEGMENT ALIGNED
*
L 9,ROUNDIT
L 2,ONEMEG
L 10,STORSTRT
ALR 10,2
NR 10,9
ST 10,STORSEGA NEW SEGMENT-ALIGNED BOUNDARY
L 1,STORSEGA
ST 1,RPTR1 PUT IT IN THE RANGE LIST
* *******************************************************************
* CREATE 5 SUBSPACES
* *******************************************************************
LA 5,1 INIT LOOP COUNTER
LA 9,STOKEN1 START WITH FIRST STOKEN
* IN ARRAY
LOOP1 DS 0H
IARSUBSP CREATE,NAME=SSNAME,STOKEN=(9), *
GENNAME=COND,OUTNAME=ONAME
LTR 15,15 IF NOT SUCCESSFUL (0)
BNZ NOCREATE GO TO ERROR PROCESSING
LA 4,1 LOOP INCREMENT IS 1
ALR 5,4 BUMP UP LOOP COUNTER
LA 10,8 ARRAY INCREMENT IS 8
ALR 9,10 BUMP UP ARRAY INDEX
LA 4,5
CR 5,4 CHECK HOW MANY SO FAR
BNH LOOP1 IF NOT 5 YET, REPEAT
* ******************************************************************
* ADD THE SUBSPACE ENTRY TO THE WORKUNIT ACCESS LIST
* *******************************************************************
ALESERV ADD,STOKEN=STOKEN1,ALET=SSALET,AL=WORKUNIT
* *******************************************************************
* MAKE THE STORAGE SUBSPACE-ELIGIBLE
* *******************************************************************
IARSUBSP IDENTIFY,RANGLIST=RANGPTR,NUMRANGE=NUMRANG
* *******************************************************************
* ASSIGN THE STORAGE TO THE SUBSPACE
* *******************************************************************
IARSUBSP ASSIGN,STOKEN=STOKEN1,RANGLIST=RANGPTR
* *******************************************************************
* BRANCH TO THE SUBSPACE
* *******************************************************************
L 2,=A(X'80000000'+NEXT1)
BSG 0,2
* *******************************************************************
* RUN PROGRAM IN THE SUBSPACE
* *******************************************************************
* RETURN TO THE BASE SPACE (FULL ADDRESS SPACE ADDRESSABILITY)
* *******************************************************************
NEXT1 DS 0H
L 0,=A(X'80000000'+NEXT2)
BSG 0,0
* *******************************************************************
* DISASSOCIATE THE STORAGE (NUMRANGE DEFAULTS TO 1 WHICH IS WHAT
* WE HAVE)
* *******************************************************************
NEXT2 DS 0H
IARSUBSP UNASSIGN,STOKEN=STOKEN1,RANGLIST=RANGPTR
* *******************************************************************
* MAKE THE STORAGE INELIGIBLE TO BE ASSIGNED TO A SUBSPACE
* *******************************************************************
IARSUBSP UNIDENTIFY,RANGLIST=RANGPTR
* *******************************************************************
* DELETE THE SUBSPACE
* *******************************************************************
*
IARSUBSP DELETE,STOKEN=STOKEN1
*
* *******************************************************************
* SUBSPACE CREATE FAILED - RELEASE THE STORAGE
* *******************************************************************
NOCREATE DS 0H ERROR EXIT POINT
* *******************************************************************
* RELEASE THE STORAGE - USE THE ORIGINAL ADDRESS STORSTRT
* *******************************************************************
STORAGE RELEASE,ADDR=STORSTRT,LENGTH=4096*(256+256)
* *******************************************************************
* STORAGE OBTAIN FAILED - UNDO WHATEVER STEPS HAD BEEN SUCCESSFUL
* PRIOR TO THE STORAGE OBTAIN
* *******************************************************************
NOSTOR DS 0H Error exit point
.
.
.
.
.
.
* *******************************************************************
* DECLARES
* *******************************************************************
ONEMEG DC F'1048576' ONE MEGABYTE
ROUNDIT DC X'FFF00000' ROUND IT TO A SEGMENT ADDRESS
SSNAME DC CL8'SSPACE1 ' SUBSPACE NAME
ONAME DS CL8 GENERATED NAME IF NEEDED
SSSTOKEN DS 0CL40
STOKEN1 DS CL8
STOKEN2 DS CL8
STOKEN3 DS CL8
STOKEN4 DS CL8
STOKEN5 DS CL8
SSALET DS 5CL4
STORSTRT DS 1F ADDRESS FOR OBTAIN/RELEASE
STORSEGA DS 1F SEGMENT-ALIGNED ADDRESS
*
* RANGE LIST MAPPING
*
RLIST DS 0CL8
RPTR1 DS F
NUMBLKS DC F'256'
*
RANGPTR DC A(RLIST)
NUMRANG DC F'1'