*%/* 00060002 MACRO 00070002 &NAME STATUS &TYPE,&CLASS,&SCOPE,&MASK,&XPLICIT,&TCB=,&ASID=, X00100002 &RELATED= 00110002 .* 00150002 .* THIS IS THE OS/VS2 STATUS MACRO 00200002 .* 00250002 LCLB &A(32) MASK VALUES (0 OR 1) 00300002 LCLA &B CODE VALUE (1-12) 00350002 LCLB &C SET/RESET VALUE (0 OR 1) 00400002 LCLB &D TCBLOC STORAGE INDICATOR 00450002 LCLA &E MASK CHARACTER SUBSCRIPT 00500002 LCLA &F MASK SUB-OPERAND SUBSCRIPT 00550002 LCLA &G MASK VALUE SUBSCRIPT 00600002 LCLA &H SCOPE CHARACTER SUBSCRIPT 00650002 LCLB &I TCBLOC REGISTER INDICATOR 00700002 LCLC &J TCBLOC REGISTER NAME 00750002 LCLC &K APOSTROPHE DELIMITER 00800002 LCLC &L 00810002 .* 00850002 .* TYPE OPERAND SCAN. 00900002 .* 00950002 AIF (T'&TYPE EQ 'O').ERROR10 01000002 AIF (T'&ASID EQ 'O').CONT0 01010002 AIF ('&TYPE' NE 'START' AND '&TYPE' NE 'STOP').CONT 01012002 AIF ('&TCB' NE '').ERROR8 01014002 AIF ('&CLASS' EQ '').ERROR8 01016002 AIF ('&TYPE' EQ 'STOP').ERROR8 01020002 .CONT ANOP 01022002 AIF ('&CLASS' EQ 'MC').ERROR3 01030002 AIF ('&SCOPE' EQ 'SYSTEM').ERROR6 01032002 AIF ('&TYPE' EQ 'SET' AND '&SCOPE' EQ 'STEP').ERROR8 01034002 AIF ('&TYPE' EQ 'SET' AND '&SCOPE' EQ '').ERROR8 01036002 .CONT0 ANOP 01040002 AIF ('&TYPE' EQ 'START' OR '&TYPE' EQ 'STOP').SSCK 20021 01050002 &C SETB ('&TYPE' EQ 'RESET') 01100002 AIF (NOT &C AND '&TYPE' NE 'SET').ERROR1 01150002 AIF (T'&TCB NE 'O').ERROR8 01200002 .CONT1 ANOP 01250002 .* 01300002 .* CLASS OPERAND SCAN. 01350002 .* 01400002 AIF (T'&CLASS EQ 'O').ERROR11 01450002 AIF ('&CLASS' EQ 'MC').SCOPEMC 01500002 AIF ('&CLASS' EQ 'SD').SCOPESD 01550002 AIF ('&CLASS' EQ 'ND').SCOPEND 01600002 AGO .ERROR2 01650002 .* 01700002 .* SCOPE OPERAND SCAN FOR CLASS=MC. 01750002 .* 01800002 .SCOPEMC AIF (T'&MASK NE 'O' OR T'&XPLICIT NE 'O').ERROR3 01850002 AIF (T'&SCOPE EQ 'O').CONT2 01900002 AIF ('&SCOPE' EQ 'STEP').CONT2 01950002 AGO .ERROR6 02050002 .CONT2 ANOP 02100002 &B SETA 1 02150002 AGO .CONT9 02200002 .* 02400002 .* SCOPE OPERAND SCAN FOR CLASS=SD. 02450002 .* 02500002 .SCOPESD AIF (T'&SCOPE EQ 'O').CONT35 02550002 AIF ('&SCOPE' EQ 'STEP').CONT35 02600002 AIF ('&SCOPE' EQ 'SYSTEM').CONT36 02650002 &H SETA K'&SCOPE 02700002 AIF ('&SCOPE'(1,1) EQ '''').CONT3 02750002 AIF ('&SCOPE'(1,1) EQ '(').CONT31 02800002 AIF (K'&SCOPE GT 8).ERROR6 02850002 &D SETB 1 02900002 AGO .CONT32 02950002 .CONT3 ANOP 03000002 &K SETC '''' 03050002 AGO .ERROR6 03100002 .CONT31 ANOP 03150002 AIF (K'&SCOPE GT 10).ERROR6 03200002 AIF (K'&SCOPE LT 3).ERROR6 03250002 &H SETA &H-2 03300002 &J SETC '&SCOPE'(2,&H) 03350002 &I SETB 1 03400002 .CONT32 AIF (T'&XPLICIT EQ 'O').CONT33 03450002 AIF ('&XPLICIT' NE 'E').ERROR13 03500002 &B SETA 11 03550002 AGO .CONT38 03600002 .CONT33 ANOP 03650002 &B SETA 10 03700002 AGO .CONT38 03750002 .CONT35 ANOP 03800002 &B SETA 8 03850002 AGO .CONT37 03900002 .CONT36 ANOP 03950002 &B SETA 9 04000002 .CONT37 AIF (T'&XPLICIT NE 'O').ERROR3 04050002 .* 04100002 .* MASK OPERAND SCAN FOR CLASS=SD. 04150002 .* 04200002 .CONT38 ANOP 04250002 AIF (T'&MASK EQ 'O').CONT9 04300002 AIF ('&MASK'(1,1) NE '(').ERROR9 04350002 AIF (K'&MASK GT 88).ERROR9 04400002 &E SETA K'&MASK 04450002 AIF ('&MASK'(&E,1) NE ')').ERROR9 04500002 AIF (K'&MASK LT 3).ERROR9 04550002 AIF (N'&MASK GT 32).ERROR9 04600002 .CONT39 ANOP 04650002 AIF (&F EQ N'&MASK).CONT9 04700002 &F SETA &F+1 04750002 AIF ('&MASK(&F)' LT '1').ERROR9 04800002 AIF ('&MASK(&F)' GT '32').ERROR9 04850002 &G SETA &MASK(&F) 04900002 AIF (&A(&G)).ERROR9 04950002 &A(&G) SETB 1 05000002 AGO .CONT39 05050002 .* 05100002 .* SCOPE OPERAND SCAN FOR CLASS=ND. 05150002 .* 05200002 .SCOPEND AIF (T'&SCOPE EQ 'O').CONT5 05250002 AIF ('&SCOPE' EQ 'STEP').CONT5 05300002 AIF ('&SCOPE' EQ 'SYSTEM').CONT6 05350002 &H SETA K'&SCOPE 05400002 AIF ('&SCOPE'(1,1) EQ '''').CONT4 05450002 AIF ('&SCOPE'(1,1) EQ '(').CONT41 05500002 AIF (K'&SCOPE GT 8).ERROR6 05550002 &D SETB 1 05600002 AGO .CONT42 05650002 .CONT4 ANOP 05700002 &K SETC '''' 05750002 AGO .ERROR6 05800002 .CONT41 ANOP 05850002 AIF (K'&SCOPE GT 10).ERROR6 05900002 AIF (K'&SCOPE LT 3).ERROR6 05950002 &H SETA &H-2 06000002 &J SETC '&SCOPE'(2,&H) 06050002 &I SETB 1 06100002 .CONT42 ANOP 06150002 AIF (T'&XPLICIT EQ 'O').CONT43 06200002 AIF ('&XPLICIT' NE 'E').ERROR13 06250002 &B SETA 12 06300002 AGO .CONT7 06350002 .CONT43 ANOP 06400002 &B SETA 5 06450002 AGO .CONT7 06500002 .CONT5 ANOP 06550002 &B SETA 3 06600002 AGO .CONT65 06650002 .CONT6 ANOP 06700002 &B SETA 4 06750002 .CONT65 AIF (T'&XPLICIT NE 'O').ERROR3 06800002 .* 06850002 .* MASK OPERAND SCAN FOR CLASS=ND. 06900002 .* 06950002 .CONT7 ANOP 07000002 AIF (T'&MASK EQ 'O').CONT9 07050002 AIF ('&MASK'(1,1) NE '(').ERROR9 07100002 AIF (K'&MASK GT 40).ERROR9 07150002 &E SETA K'&MASK 07200002 AIF ('&MASK'(&E,1) NE ')').ERROR9 07250002 AIF (K'&MASK LT 3).ERROR9 07300002 AIF (N'&MASK GT 16).ERROR9 07350002 .CONT8 ANOP 07400002 AIF (&F EQ N'&MASK).CONT9 07450002 &F SETA &F+1 07500002 AIF ('&MASK(&F)' LT '1').ERROR9 07550002 AIF ('&MASK(&F)' GT '16').ERROR9 07600002 &G SETA &MASK(&F) 07650002 AIF (&A(&G)).ERROR9 07700002 &A(&G) SETB 1 07750002 AGO .CONT8 07800002 .* 07850002 .* CODE GENERATION SEQUENCE. 07900002 .* 07950002 .CONT9 ANOP 08000002 CNOP 0,4 08050002 AIF ('&CLASS' NE 'SD').CONT95 08100002 &NAME B *+16 .BRANCH AROUND CONSTANT 08150002 DC BL2'&A(1)&A(2)&A(3)&A(4)&A(5)&A(6)&A(7)&A(8)&A(9)&A(10)&X08200002 A(11)&A(12)&A(13)&A(14)&A(15)&A(16)' .SECONDARY 08250002 DC BL2'&A(17)&A(18)&A(19)&A(20)&A(21)&A(22)&A(23)&A(24)&A(2X08300002 5)&A(26)&A(27)&A(28)&A(29)&A(30)&A(31)&A(32)' .MASK 08350002 DC A(&B) .ACTION CODE 08400002 DC BL1'&C.0000000' .SET/RESET INDICATOR 08450002 DC AL3(0) .CONSTANT OF ZERO 08500002 AIF (NOT &D AND NOT &I).CONT92 08550002 LM 15,0,*-12 .LOAD MASK AND CODE 08600002 AIF (&D).CONT101 08650002 AGO .CONT111 08700002 .CONT92 ANOP 08750002 LM 15,1,*-12 .LOAD MASK, CODE AND SET/RESET 08800002 AGO .CONT12 08850002 .CONT95 ANOP 08900002 &NAME B *+12 .BRANCH AROUND CONSTANT 08950002 DC BL2'&A(1)&A(2)&A(3)&A(4)&A(5)&A(6)&A(7)&A(8)&A(9)&A(10)&X09000002 A(11)&A(12)&A(13)&A(14)&A(15)&A(16)' .PRIMARY MASK 09050002 DC AL2(&B) .ACTION CODE 09100002 DC BL1'&C.0000000' .SET/RESET INDICATOR 09150002 DC AL3(0) .CONSTANT OF ZERO 09200002 AIF (&D).CONT10 09250002 AIF (&I).CONT11 09300002 LM 0,1,*-8 .LOAD MASK, CODE AND SET/RESET 09350002 AGO .CONT12 09400002 .CONT10 ANOP 09450002 L 0,*-8 .LOAD MASK AND CODE 09500002 .CONT101 ANOP 09550002 L 1,&SCOPE .LOAD TCB ADDRESS 09600002 O 1,*-12 .'OR IN' SET/RESET INDICATOR 09650002 AGO .CONT12 09700002 .CONT11 ANOP 09750002 L 0,*-8 .LOAD MASK AND CODE 09800002 .CONT111 ANOP 09850002 LR 1,&J .LOAD TCB ADDRESS 09900002 O 1,*-10 .'OR IN' SET/RESET INDICATOR 09950002 AGO .CONT12 10000002 .* 10050002 .* STOP/START CODE GENERATION 10100002 .* 10150002 .SSCK ANOP 20021 10200002 AIF ('&CLASS' NE '' AND '&TCB' NE '').ERROR12 10202002 AIF ('&CLASS' EQ 'SRB').SRB 10210002 AIF ('&CLASS' EQ 'SYNCH').SYNCH 10220002 AIF ('&CLASS' NE '' OR '&SCOPE' NE '').ERROR12 10250002 AIF ('&MASK' NE '' OR T'&XPLICIT NE 'O').ERROR12 10300002 AIF ('&TYPE' EQ 'STOP').STPCK 20021 10350002 .STRTCK ANOP 10400002 &NAME LA 0,7(0,0) .LOAD START CODE YM1995 10450002 AIF ('&TCB' EQ '').ALTSK 20021 10500002 AIF ('&TCB'(1,1) EQ '(').TCBREG 20021 10550002 L 1,&TCB(1) .LOAD TCB ADDRESS 10600002 AGO .CONT12 20021 10650002 .TCBREG LR 1,&TCB(1) .LOAD TCB ADDRESS 10700002 AGO .CONT12 20021 10750002 .STPCK ANOP 10800002 &NAME LA 0,6(0,0) .LOAD STOP CODE YM1995 10850002 AIF ('&TCB' EQ '').ALTSK 20021 10900002 AIF ('&TCB'(1,1) EQ '(').TCBREG 20021 10950002 L 1,&TCB(1) .LOAD TCB ADDRESS 11000002 AGO .CONT12 20021 11050002 .SRB LA 0,13(0,0) YM1995 11060002 .ONOFF AIF ('&TYPE' EQ 'STOP').SRB1 11070002 &L SETC 'C' 11080002 .SRB1 L&L.R 1,0 11090002 AGO .CONT12 11092002 .SYNCH ANOP 11092402 AIF ('&TYPE' NE 'STOP').ERROR12 11092802 LA 0,14(0,0) . LOAD STOP STOP SYNCH CODE. YM1995 11093202 AGO .CONT124 11093602 .ASID LA 0,14(0,0) YM1995 11094002 AGO .ONOFF 11096002 .ALTSK SR 1,1 .INDICATE ALL TASK CHANGE 11100002 .CONT12 AIF ('&ASID' EQ '').CONT125 11150002 AIF ('&CLASS' NE 'ND').CONT122 11160002 AIF ('&ASID'(1,1) EQ '(').CONT121 11170002 LH 15,&ASID 11180002 AGO .CONT124 11190002 .CONT121 LH 15,0(&ASID(1).,0) YM1995 11192002 AGO .CONT124 11194002 .CONT122 AIF ('&ASID'(1,1) EQ '(').CONT123 11196002 ICM 0,12,&ASID 11198002 AGO .CONT124 11198402 .CONT123 ICM 0,12,0(&ASID(1)) 11198802 .CONT124 ANOP 11199202 SVC 79 .ISSUE STATUS SVC 11200002 MEXIT 11250002 .CONT125 AIF ('&CLASS' NE 'ND').CONT124 11260002 SR 15,15 11270002 AGO .CONT124 11280002 .* 11300002 .* ERROR EXITS. 11350002 .* 11400002 .* 12,*** IHB002 INVALID TYPE OPERAND SPECIFIED-&TYPE 11450002 .ERROR1 IHBERMAC 1001,TYPE,&TYPE 11500002 MEXIT 11550002 .* 12,*** IHB002 INVALID CLASS OPERAND SPECIFIED-&CLASS 11600002 .ERROR2 IHBERMAC 1001,CLASS,&CLASS 11650002 MEXIT 11700002 .* 12,*** IHB243 INVALID OPERAND FOR MC/ND/SD OPTION 11750002 .ERROR3 IHBERMAC 1007,&CLASS 11800002 MEXIT 11850002 .* 12,*** IHB002 INVALID SCOPE OPERAND SPECIFIED-&SCOPE 11900002 .ERROR6 IHBERMAC 1001,SCOPE,&K.&SCOPE.&K 11950002 MEXIT 12000002 .* 12,*** IHB244 INVALID KEYWORD SET/RESET OPERAND 12050002 .ERROR8 IHBERMAC 1008,&TYPE,2 12100002 MEXIT 12150002 .* 12,*** IHB002 INVALID MASK OPERAND SPECIFIED-&MASK 12200002 .ERROR9 IHBERMAC 1001,MASK,&MASK 12250002 MEXIT 12300002 .* 12,*** IHB001 TYPE OPERAND REQUIRED, NOT SPECIFIED. 12350002 .ERROR10 IHBERMAC 1006,TYPE 12400002 MEXIT 12450002 .* 12,*** IHB001 CLASS OPERAND REQUIRED, NOT SPECIFIED. 12500002 .ERROR11 IHBERMAC 1006,CLASS 12550002 MEXIT 12600002 .* 12,*** IHB244 INVALID POSITIONAL START/STOP OPERAND. 12650002 .ERROR12 IHBERMAC 1008,&TYPE,1 12700002 MEXIT 12750002 .* 12,*** IHB002 INVALID EXPLICIT OPERAND SPECIFIED-&XPLICIT 12800002 .ERROR13 IHBERMAC 1001,EXPLICIT,&XPLICIT 12850002 MEND 12900002 **/ 12950002 * STATUS: 13000002 */********************************************************************/ 13050002 */* PL/S VERSION OF STATUS MACRO. */ 13100002 */********************************************************************/ 13150002 * MACRO 13200002 * KEYS(TCB, /* TCB ADDRESS */ 13250002 * SRB, /* DISPATCHABILITY OF QUIESCEABLE 13300002 * SRB */ 13350002 * SYNCH, /* SYNCHRONOUS STOP */ 13360002 * ASID, /* REMOVE/RESTORE AN ASCB FROM/TO 13400002 * THE READY ASCB QUEUE */ 13450002 * RTCD, /* RETURN CODE FROM SVC IS TO BE 13500002 * SAVED */ 13550002 * RELATED); 13600002 * ANS('?'||MACLABEL||'STATUSP '||MACLIST||MACKEYS||';'); 13650002 *%END; 13700002