MACRO 00001000 &NM DMSFREE &DWORDS=, | (0) *00002000 &MIN=, | (1) *00003000 &TYPE=USER, USER | NUCLEUS *00004000 &TYPCALL=SVC, SVC | BALR *00005000 &ERR=, | * *00006000 &AREA=, LOW | HIGH | *00007000 &MSG=YES YES | NO 00008000 LCLA &C 00009000 LCLB &VB,&NB,&LB,&HB 00010000 AIF ('&NM' EQ '').NONM 00011000 &NM DS 0H 00012000 .NONM ANOP 00013000 AIF ('&TYPE' EQ 'NUCLEUS' OR '&TYPE' EQ 'USER').TOK 00014000 MNOTE 12,'DMSFRE001S ''TYPE'' NOT ''USER'' OR ''NUCLEUS''' 00015000 MEXIT 00016000 .TOK ANOP 00017000 &NB SETB ('&TYPE' EQ 'NUCLEUS') 00018000 AIF ('&AREA' EQ 'HIGH' OR '&AREA' EQ 'LOW').AOK 00019000 AIF ('&AREA' EQ '').AOK 00020000 MNOTE 12,'DMSFRE002S ''AREA'' NOT ''HIGH'' OR ''LOW'' OR NULL' 00021000 MEXIT 00022000 .AOK ANOP 00023000 &LB SETB ('&AREA' NE 'HIGH') 00024000 &HB SETB ('&AREA' NE 'LOW') 00025000 AIF ('&DWORDS' EQ '(0)').NOZ 00026000 L 0,=A(&DWORDS) SIZE OF REQUEST IN DOUBLEWORDS 00027000 .NOZ ANOP 00028000 &VB SETB ('&MIN' NE '') 00029000 AIF ('&MIN' EQ '' OR '&MIN' EQ '(1)').NOM 00030000 L 1,=A(&MIN) MINIMUM SIZE IN DOUBLEWORDS 00031000 .NOM ANOP 00032000 &C SETA X'40'*&VB+X'20'*&NB+X'10'+X'08'*&LB+X'04'*&HB 00033000 DMSFRX &TYPCALL,&C,4,&MSG,&ERR 00034000 MEND 00035000