* %/* START OF SPECIFICATIONS**** @Y30LB02 00050003 .* @Y30LB02 00100003 .*01 MODULE-NAME = ICBTRACE @Y30LB02 00150003 .* @Y30LB02 00200003 .*01 DESCRIPTIVE-NAME = TRACE MACRO @Y30LB02 00250003 .* @Y30LB02 00300003 .*01 COPYRIGHT = NONE @Y30LB02 00350003 .* @Y30LB02 00400003 .*01 STATUS = OS/VS1 RELEASE 4, OS/VS2 RELEASE 3 @Y30LB02 00450003 .* @Y30LB02 00500003 .*01 FUNCTION = REQUEST THE MSC TO TRACE THE SCHEDULE @Y30LB02 00550003 .* QUEUES @Y30LB02 00600003 .* @Y30LB02 00650003 .*01 NOTES = AS FOLLOWS: @Y30LB02 00700003 .* @Y30LB02 00750003 .*02 CODE = MACRO IS BILINGUALLY CODED @Y30LB02 00800003 .* @Y30LB02 00850003 .*02 RESTRICTIONS = THE FOLLOWING PREFIXES SHOULD BE @Y30LB02 00900003 .* AVOIDED IN THE USER'S INVOCATION: @Y30LB02 00950003 .* ICB AND TRAC @Y30LB02 01000003 .* @Y30LB02 01050003 .*02 REGISTER-CONVENTIONS = FOLLOWS NORMAL USE OF @Y30LB02 01100003 .* REGISTERS BY MACROS: @Y30LB02 01150003 .* R0,R1,R14, AND R15. @Y30LB02 01200003 .* @Y30LB02 01250003 .*01 MODULE-TYPE = MACRO @Y30LB02 01300003 .* @Y30LB02 01350003 .*02 PROCESSOR = PLS2 AND ASSEMBLER @Y30LB02 01400003 .* @Y30LB02 01500003 .*02 ATTRIBUTES = REUSABLE @Y30LB02 01550003 .* @Y30LB02 01600003 .*02 ENTRY-POINT = ICBTRACE @Y30LB02 01650003 .* @Y30LB02 01700003 .* @Y30LB02 01750003 .*02 LINKAGE = SVC 126 @Y30LB02 01800003 .* @Y30LB02 01850003 .*01 INPUT @Y30LB02 01900003 .* @Y30LB02 01950003 .* @Y30LB02 02000003 .* THE TRACE REQUEST IS ISSUED IF A HOST WISHES TO FOLLOW @Y30LB02 02050003 .* THE STATUS OF THE SCHEDULE QUEUE(CARTRIDGE MOVEMENT, @Y30LB02 02100003 .* STAGING/ DESTAGING) ACTIVITY. @Y30LB02 02150003 .* @Y30LB02 02200003 .* @Y30LB02 02250003 .* MACRO SYNTAX @Y30LB02 02300003 .* @Y30LB02 02350003 .* @Y30LB02 02400003 .* LIST FORM @Y30LB02 02450003 .* @Y30LB02 02500003 .* VERB REQUIRED PARMS OPTIONAL PARMS @Y30LB02 02550003 .* @Y30LB02 02600003 .*ICBTRACE MF=L - (BAL) MF=(L,MAP) - BAL @Y30LB02 02650003 .* MF(L,NAME/(R))-PLS MF(L,NAME/(R),ATTR)-PLS @Y30LB02 02700003 .* @Y30LB02 02750003 .* @Y30LB02 02800003 .* STANDARD FORM @Y30LB02 02850003 .* @Y30LB02 02900003 .* VERB REQUIRED PARMS OPTIONAL PARMS @Y30LB02 02950003 .* @Y30LB02 03000003 .*ICBTRACE FLAGS=ADDR/(R) NONE @Y30LB02 03050003 .* TIMDAT=ADDR/(R) @Y30LB02 03100003 .* @Y30LB02 03150003 .* @Y30LB02 03200003 .* EXECUTE FORM @Y30LB02 03250003 .* @Y30LB02 03300003 .* VERB REQUIRED PARMS OPTIONAL PARMS @Y30LB02 03350003 .* @Y30LB02 03400003 .*ICBTRACE MF(E,NAME/(R)) MF(E,NAME/(R),COMPLETE)-PLS @Y30LB02 03450003 .* FLAGS=ADDR/(R) @Y30LB02 03500003 .* TIMDAT=ADDR/(R) @Y30LB02 03550003 .* @Y30LB02 03600003 .* KEYWORD PARAMETERS: @Y30LB02 03650003 .* @Y30LB02 03700003 .* MF - MACRO FORMAT: THIS PARAMETER DESCRIBES THE @Y30LB02 03750003 .* MACRO FORMAT AND MAY GIVE THE ADDRESS OR @Y30LB02 03800003 .* ADDRESS IN A REGISTER WHERE THE REQUEST BLOCK @Y30LB02 03850003 .* IS STORED. @Y30LB02 03900003 .* @Y30LB02 03950003 .* L - LIST FORM: THE EXPANSION OF THE L-FORM @Y30LB02 04000003 .* MACRO WILL RESULT IN A REQUEST BLOCK WITH @Y30LB02 04050003 .* THE ONLY NON-ZERO FIELDS BEING THE OPCODE @Y30LB02 04100003 .* AND LENGTH FIELDS. @Y30LB02 04150003 .* @Y30LB02 04200003 .* (1) 'MAP' - IF MAP IS SPECIFIED WITH THE @Y30LB02 04250003 .* ASSEMBLER MACRO CALL A DSECT EQUIVALENT TO @Y30LB02 04300003 .* A MAPPING MACRO IS PRODUCED. @Y30LB02 04350003 .* @Y30LB02 04400003 .* (2) NAME - THE MACRO INVOKER MUST SPECIFY A @Y30LB02 04450003 .* NAME FOR HIS STRUCTURE WHEN INVOKING THE @Y30LB02 04500003 .* PLS LIST FORM. @Y30LB02 04550003 .* @Y30LB02 04600003 .* (3) ATTRIBUTE - THE MACRO WILL PLACE ANY PLS @Y30LB02 04650003 .* ATTRIBUTE SPECIFIED IN THE MACRO INVOCATION @Y30LB02 04700003 .* IN AN UNINITIALIZED REQUEST BLOCK. ATTRI- @Y30LB02 04750003 .* BUTE EXAMPLE: @Y30LB02 04800003 .* @Y30LB02 04850003 .* CHAR, FIXED, STATIC LOCAL, NONLOCAL, @Y30LB02 04900003 .* BASED(*), ETC. @Y30LB02 04950003 .* @Y30LB02 05000003 .* NULL - STANDARD FORM: THE EXPANSION OF THIS FORM @Y30LB02 05050003 .* CONSISTS OF A REQUEST BLOCK, A LINKAGE @Y30LB02 05100003 .* INSTRUCTION, AND, POSSIBLY, PARAMETER @Y30LB02 05150003 .* BINDING INSTRUCTION. @Y30LB02 05200003 .* @Y30LB02 05250003 .* E - EXECUTABLE FORM: THE EXPANSION OF THIS FORM @Y30LB02 05300003 .* CONSISTS OF A LINKAGE INSTRUCTION AND @Y30LB02 05350003 .* POSSIBLY, PARAMETER BINDING INSTRUCTIONS. @Y30LB02 05400003 .* @Y30LB02 05450003 .* SUB-PARAMETERS @Y30LB02 05500003 .* @Y30LB02 05550003 .* (1) AN E MUST BE SPECIFIED IN THE FIRST @Y30LB02 05600003 .* SUB-PARAMETER POSITION. THIS INDICATES @Y30LB02 05650003 .* THAT THE MACRO IS IN EXECUTABLE FORM. @Y30LB02 05700003 .* @Y30LB02 05750003 .* (2) A NAME OR A REGISTER MUST BE SPECIFIED @Y30LB02 05800003 .* IN THE SECOND SUB-PARAMETER. @Y30LB02 05850003 .* @Y30LB02 05900003 .* (3) 'COMPLETE' - COMPLETE WILL CAUSE THE @Y30LB02 05950003 .* MACRO TO ZERO OUT THE REQUEST BLOCK. @Y30LB02 06000003 .* AFTER ZEROING THE REQUEST BLOCK THE @Y30LB02 06050003 .* FUNCTION OPCODE AND LENGTH ARE PLACED @Y30LB02 06100003 .* IN THE REQUEST BLOCK. @Y30LB02 06150003 .* @Y30LB02 06200003 .* FLAGS - A 2 BYTE FIELD WHICH INDICATES THE FUNCTION @Y30LB02 06250003 .* TO BE PERFORMED. THE FORMAT OF THE FLAGS FIELD IS AS @Y30LB02 06300003 .* FOLLOWS: @Y30LB02 06350003 .* @Y30LB02 06400003 .* -------------------------------------------- @Y30LB02 06450003 .* | X | BITS 1-15 NOT USED - ALWAYS ZERO | @Y30LB02 06500003 .* -------------------------------------------- @Y30LB02 06550003 .* @Y30LB02 06600003 .* BIT 0 ------------'1'B TRACE ON @Y30LB02 06650003 .* ------------'0'B TRACE OFF @Y30LB02 06700003 .* @Y30LB02 06750003 .* BITS 1-15--------- |NOT USED - ZERO| @Y30LB02 06800003 .* @Y30LB02 06850003 .* TRACE ON: @Y30LB02 06900003 .* @Y30LB02 06950003 .* WHEN THIS ATTRIBUTE IS SPECIFIED, THE HOST WILL PASS @Y30LB02 07000003 .* CURRENT TIME AND DATE TO THE TRACE HEADER RECORD. IF @Y30LB02 07050003 .* THE TRACE IS ALREADY ACTIVE THIS REQUEST IS CONSIDERED @Y30LB02 07100003 .* SATISFIED. IF THE TRACE IS INACTIVE, IT WILL BE ACTI- @Y30LB02 07150003 .* VATED ON TRACEX AND THE HOST REQUESTING THE ORDER WILL @Y30LB02 07200003 .* BE NOTIFIED. @Y30LB02 07250003 .* @Y30LB02 07300003 .* TRACE OFF: @Y30LB02 07350003 .* @Y30LB02 07400003 .* WHEN THIS ATTRIBUTE IS SPECIFIED, THE MSC WILL CHECK TO @Y30LB02 07450003 .* DETERMINE WHETHER THE TRACE IS ACTIVE. IF THE TRACE @Y30LB02 07500003 .* IS NOT ACTIVE, A MESSAGE IS SENT TO THE REQUESTING @Y30LB02 07550003 .* HOST, INDICATING THAT THE REQUEST HAS BEEN FULFILLED. @Y30LB02 07600003 .* OTHERWISE, THE MSC WILL DISABLE THE TRACE AND SEND A @Y30LB02 07650003 .* MESSAGE INDICATING TRACE ENDED. @Y30LB02 07700003 .* @Y30LB02 07750003 .* TIMDAT - TIME AND DATE: AN EIGHT BYTE FIELD WHICH @Y30LB02 07800003 .* CONTAINS THE TIME OF DAY AND DATE THE TRACE @Y30LB02 07850003 .* FUNCTION WAS ACTIVATED OR DEACTIVATED. THE @Y30LB02 07900003 .* FIRST FOUR BYTES WILL CONTAIN THE DATE IN @Y30LB02 07950003 .* FIXED DECIMAL AND THE NEXT FOUR BYTES WILL CON- @Y30LB02 08000003 .* TAIN THE TIME IN FIXED BINARY. @Y30LB02 08050003 .* @Y30LB02 08100003 .*01 EXIT-NORMAL = VALID INVOCATION @Y30LB02 08150003 .* @Y30LB02 08200003 .*02 CONDITION = RETURN CODE = 0 @Y30LB02 08250003 .* @Y30LB02 08300003 .*02 OUTPUT = REQUESTED ORDER GENERATED FOR THE SVC @Y30LB02 08350003 .* @Y30LB02 08400003 .*01 EXIT-ERROR = INVALID INVOCATION @Y30LB02 08450003 .* @Y30LB02 08500003 .*02 CONDITION = RETURN CODE = 12 @Y30LB02 08550003 .* @Y30LB02 08600003 .*02 OUTPUT = ERROR MESSAGE AS A COMMENT AT POINT OF @Y30LB02 08650003 .* INVOCATION @Y30LB02 08700003 .* @Y30LB02 08750003 .*01 EXTERNAL REFERENCES = NONE @Y30LB02 08800003 .* @Y30LB02 08850003 .*01 TABLES = NONE @Y30LB02 08900003 .* @Y30LB02 08950003 .*01 MESSAGES = AS FOLLOWS: @Y30LB02 09000003 .* ICB602I: A NAME FOR THE REQUEST BLOCK MUST BE @Y30LB02 09050003 .* SPECIFIED IN MF(2) @Y30LB02 09100003 .* ICB604I: WARNING-ONLY THE MF PARAMETER IS VALID FOR @Y30LB02 09150003 .* THE LIST FORM @Y30LB02 09200003 .* ICB607I: FLAGS MUST BE SPECIFIED FOR STANDARD @Y30LB02 09250003 .* FORM MACRO @Y30LB02 09300003 .* ICB612I: MF(2) MUST CONTAIN REQ BLK NAME @Y30LB02 09350003 .* IF EXEC MACRO FORM REQUESTED @Y30LB02 09400003 .* ICB614I: TIMDAT MUST BE SPECIFIED FOR STANDARD @Y30LB02 09450003 .* FORM MACRO @Y30LB02 09500003 .* ICB615I: INVALID MF PARAMETER SPECIFIED, MUST @Y30LB02 09550003 .* BE L, E, OR NULL @Y30LB02 09600003 .* @Y30LB02 09650003 .*01 CONTROL-BLOCKS = NONE @Y30LB02 09700003 .* @Y30LB02 09750003 .*01 INNER MACROS = NONE @Y30LB02 09800003 .* @Y30LB02 09850003 .*01 SYSTEM MACRO = IHBINNRA @Y30LB02 09900003 .* @Y30LB02 09950003 .*01 CHANGE-ACTIVITY = S/D X04AC02 AND Y30LB02 @Y30LB02 10000003 .* @Y30LB02 10050003 .**** END OF SPECIFICATIONS *** @Y30LB02 10100003 MACRO @Y30LB02 10150003 &SYMBOL ICBTRACE &MF=,&FLAGS=,&TIMDAT= @Y30LB02 10200003 LCLB &ERSW ERROR SWITCH @Y30LB02 10250003 LCLC &TRACE TRACE MACRO INSTR INDX @Y30LB02 10300003 &TRACE SETC 'T'.'&SYSNDX' ASSIGN CHARACTER VALUE @Y30LB02 10350003 .* @Y30LB02 10400003 .* DETERMINATION OF DESIRED MACRO FORM @Y30LB02 10450003 .* @Y30LB02 10500003 AIF ('&MF(1)' NE 'L').EFORM LIST FORM? @Y30LB02 10550003 AIF ('&FLAGS' EQ '' AND '&TIMDAT' EQ '').LISTOK @Y30LB02 10600003 .WARN MNOTE 4,' ICB604I - WARNING-ONLY THE MF PARAMETER ' @Y30LB02 10650003 MNOTE 4,' IS VALID FOR THE LIST FORM ' @Y30LB02 10700003 .* @Y30LB02 10750003 .LISTOK ANOP @Y30LB02 10800003 AIF ('&MF(2)' EQ 'MAP').LISTDS DSECT REQUESTED? @Y30LB02 10850003 * MACMEAN MSSC TRACE MACRO--INITIALIZED LIST FORM @Y30LB02 10900003 * VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 @Y30LB02 10950003 &SYMBOL DS 0F @Y30LB02 11000003 TRACLEN DC F'16' LEN OF TRACE REQUEST BLK @Y30LB02 11050003 TRACOPC DC XL1'24' TRACE FUNCTION OPCODE @Y30LB02 11100003 TRAC001 DC XL1'00' 1-BYTE RESERVED AREA @Y30LB02 11150003 TRACFLG DC XL2'0000' 2-BYTE FLAGS AREA @Y30LB02 11200003 TRACTIM DC XL8'0000' 8-BYTE TIME/DATE AREA @Y30LB02 11250003 AGO .FINISH @Y30LB02 11300003 .* @Y30LB02 11350003 .LISTDS ANOP @Y30LB02 11400003 * MACMEAN MSSC TRACE MACRO--UNINITIALIZED LIST FORM @Y30LB02 11450003 * VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 @Y30LB02 11500003 ICBTRACE DSECT @Y30LB02 11550003 TRACLEN DS F LEN OF REQ BLK 10 HEX @Y30LB02 11600003 TRACOPC DS XL1 TRACE OPCODE 24 HEX @Y30LB02 11650003 TRAC001 DS XL1 1-BYTE RESERVED AREA @Y30LB02 11700003 TRACFLG DS XL2 2-BYTE FLAGS AREA @Y30LB02 11750003 TRACTIM DS XL8 8-BYTE TIME/DATE AREA @Y30LB02 11800003 AGO .FINISH @Y30LB02 11850003 .* THE FOLLOWING PROCESSING IS ACCOMPLISHED FOR THE @Y30LB02 11900003 .* EXECUTABLE MACRO FORM @Y30LB02 11950003 .* @Y30LB02 12000003 .EFORM AIF ('&MF(1)' NE 'E').SFORM EXECUTE FORM? @Y30LB02 12050003 AIF ('&MF(2)' EQ '').EXFAIL MF(2) NULL? @Y30LB02 12100003 * MACMEAN MSSC TRACE MACRO--EXECUTE FORM @Y30LB02 12150003 * VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 @Y30LB02 12200003 &SYMBOL IHBINNRA &MF(2) LD ADDR OF REQUEST BLK @Y30LB02 12250003 .* USING IHBINNRA MACRO @Y30LB02 12300003 LA 0,16 LENGTH OF REQ BLOCK @Y30LB02 12350003 ST 0,0(1) STORE LENGTH IN BLK @Y30LB02 12400003 MVI 4(1),X'24' STORE OPCODE @Y30LB02 12450003 AGO .CKSW1 BR TO CK ERROR SWITCH @Y30LB02 12500003 .* @Y30LB02 12550003 .EXFAIL ANOP @Y30LB02 12600003 MNOTE 12,' ICB612I - MF(2) MUST CONTAIN REQ BLK ' @Y30LB02 12650003 MNOTE 12,' NAME IF EXEC MACRO FORM REQUESTED' @Y30LB02 12700003 &ERSW SETB 1 SET ERROR SWITCH TO 1 @Y30LB02 12750003 .* @Y30LB02 12800003 .CKSW1 AIF (&ERSW).FINISH IF ERROR-END PROCESSING @Y30LB02 12850003 AGO .COMMON @Y30LB02 12900003 .* @Y30LB02 12950003 .* PROCESSING OF THE STANDARD FORM MACRO @Y30LB02 13000003 .* @Y30LB02 13050003 .SFORM AIF ('&MF(1)' NE '').BADFORM STANDARD FORM? @Y30LB02 13100003 AIF ('&FLAGS' NE '').CKTIME FLAGS SPECIFIED? @Y30LB02 13150003 &ERSW SETB 1 SET ERROR SWITCH TO 1 @Y30LB02 13200003 MNOTE 12,' ICB607I - FLAGS MUST BE SPECIFIED' @Y30LB02 13250003 MNOTE 12,' FOR STANDARD FORM MACRO ' @Y30LB02 13300003 AGO .CKSW2 @Y30LB02 13350003 .CKTIME AIF ('&TIMDAT' NE '').CKSW2 TIME SPECIFIED? @Y30LB02 13400003 &ERSW SETB 1 SET ERROR SWITCH TO 1 @Y30LB02 13450003 MNOTE 12,' ICB614I - TIMDAT MUST BE SPECIFIED' @Y30LB02 13500003 MNOTE 12,' FOR STANDARD FORM MACRO ' @Y30LB02 13550003 AGO .CKSW2 @Y30LB02 13600003 .* @Y30LB02 13650003 .BADFORM ANOP @Y30LB02 13700003 &ERSW SETB 1 SET ERROR SWITCH TO 1 @Y30LB02 13750003 MNOTE 12,' ICB615I - INVALID MF PARAMETER ' @Y30LB02 13800003 MNOTE 12,' SPECIFIED, MUST BE, L,E, OR NULL' @Y30LB02 13850003 .* @Y30LB02 13900003 .* THE FOLLOWING CODE CHECKS TO DETERMINE IF THE ERROR @Y30LB02 13950003 .* SWITCH IS ON. IF YES, PROCESSING IS TERMINATED, OTHER@Y30LB02 14000003 .* WISE STANDARD FORM MACRO PROCESSING WILL BE CON- @Y30LB02 14050003 .* TINUED @Y30LB02 14100003 .* @Y30LB02 14150003 .CKSW2 AIF (&ERSW).FINISH IF YES-END PROCESSING @Y30LB02 14200003 * MACMEAN MSSC TRACE MACRO--STANDARD FORM @Y30LB02 14250003 * VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 @Y30LB02 14300003 CNOP 0,4 @Y30LB02 14350003 &SYMBOL BAL 1,&TRACE BRANCH AROUND REQ BLK @Y30LB02 14400003 TRACLEN DC A(&TRACE-*) LENGTH OF REQUEST BLOCK @Y30LB02 14450003 TRACOPC DC XL1'24' TRACE FUNCTION OPCODE @Y30LB02 14500003 TRAC001 DC XL1'00' 1-BYTE RESERVED AREA @Y30LB02 14550003 TRACFLG DC XL2'0000' 2-BYTE FLAGS AREA @Y30LB02 14600003 TRACTIM DC XL8'0000' 8-BYTE TIME/DATE AREA @Y30LB02 14650003 &TRACE EQU * @Y30LB02 14700003 .* @Y30LB02 14750003 .* THE FOLLOWING CODE CHECKS FOR VALID PARAMETERS IF @Y30LB02 14800003 .* STANDARD FOR EXECUTE FORM MACRO IS SPECIFIED. @Y30LB02 14850003 .* IF PARAMETERS ARE SPECIFIED, THEY WILL BE STORED @Y30LB02 14900003 .* IN THE REQUEST BLOCK. @Y30LB02 14950003 .* @Y30LB02 15000003 .COMMON AIF ('&FLAGS' EQ '').TIMDAT FLAGS SPECIFIED? @Y30LB02 15050003 AIF ('&FLAGS'(1,1) EQ '(').FLREG FLAGS IN REG-FORM? @Y30LB02 15100003 MVC 6(2,1),&FLAGS PUT FLAGS IN REQ BLK @Y30LB02 15150003 AGO .TIMDAT BRANCH TO CK TIME/DATE @Y30LB02 15200003 .* @Y30LB02 15250003 .FLREG ANOP @Y30LB02 15300003 MVC 6(2,1),0(&FLAGS(1)) REG-FORM FLAGS PARM @Y30LB02 15350003 .* @Y30LB02 15400003 .TIMDAT AIF ('&TIMDAT' EQ '').INVOKE TIMDAT SPECIFIED? @Y30LB02 15450003 AIF ('&TIMDAT'(1,1) EQ '(').TREG REGISTER FORM? @Y30LB02 15500003 MVC 8(8,1),&TIMDAT ADDRFORM-PUT TIMDAT PARM @Y30LB02 15550003 AGO .INVOKE @Y30LB02 15600003 .* @Y30LB02 15650003 .TREG ANOP @Y30LB02 15700003 MVC 8(8,1),0(&TIMDAT(1)) REGFORM-PUT TIMDAT PARM @Y30LB02 15750003 .INVOKE ANOP @Y30LB02 15800003 SVC 126 INVOKE THE SVC @Y30LB02 15850003 .FINISH MEND @Y30LB02 15900003 **/ 15950003 */* @Y30LB02*/ 16000003 * ICBTRACE: MACRO KEYS(MF,FLAGS,TIMDAT); /*@Y30LB02*/ 16050003 */* @Y30LB02*/ 16100003 */* EXTERNAL DECLARES @Y30LB02*/ 16150003 */********************************************************* @Y30LB02*/ 16200003 */* TRACTEST IS USED TO DETERMINE WHETHER THE STANDARD @Y30LB02*/ 16250003 */* FORM MACRO HAS BEEN INVOKED MORE THAN ONCE BY THE @Y30LB02*/ 16300003 */* SAME CALLER. @Y30LB02*/ 16350003 */********************************************************* @Y30LB02*/ 16400003 */* TRTESTR1 WILL BE USED TO DETERMINE IF IT IS NECES- @Y30LB02*/ 16450003 */* SARY TO DECLARE R1 OR WHETHER IT IS ALREADY DCLD @Y30LB02*/ 16500003 */********************************************************* @Y30LB02*/ 16550003 */* @Y30LB02*/ 16600003 * DCL TRTESTR1 FIXED EXT; /*REG1 DECLARE COUNTER @Y30LB02*/ 16650003 * DCL TRACTEST FIXED EXT; /*STANDARD INVOC COUNTER @Y30LB02*/ 16700003 */* @Y30LB02*/ 16750003 */* INTERNAL DECLARES @Y30LB02*/ 16800003 * DCL TRACOP CHAR; /*DEFINE TRACE OPCODE @Y30LB02*/ 16850003 * DCL TRLEN CHAR; /*DECLARE LENGTH OF ORDER @Y30LB02*/ 16900003 * DCL ERSW FIXED; /*DECLARE ERROR COND SWITCH @Y30LB02*/ 16950003 * DCL RETCODE FIXED; /*DECLARE RETURN CODE AREA @Y30LB02*/ 17000003 * DCL CTR FIXED; /*DECLARE CTR FOR LIST FORM @Y30LB02*/ 17050003 * ERSW=0; /*INITIALIZE ERROR SWITCH @Y30LB02*/ 17100003 * RETCODE=0; /*INITIALIZE RETURN CODE @Y30LB02*/ 17150003 * TRLEN='10'; /*INITIALIZE LENGTH FLD @Y30LB02*/ 17200003 * TRACOP='24'; /*TRACE OPCODE @Y30LB02*/ 17250003 * CTR=0; /*INITIALIZE PARM CTR @Y30LB02*/ 17300003 */******************************************************** @Y30LB02*/ 17350003 */* CHECK FOR VALID MACRO FORM--E INDICATES EXECUTE @Y30LB02*/ 17400003 */* FORM, L INDICATES LIST FORM AND IF THE MF PARA- @Y30LB02*/ 17450003 */* METER IS NULL THE STANDARD FORM MACRO IS INVOKED @Y30LB02*/ 17500003 */******************************************************** @Y30LB02*/ 17550003 * IF TRTESTR1=0 THEN /*REG 1 DECLARED? @Y30LB02*/ 17600003 * DO; /*NO,DECLARE IT @Y30LB02*/ 17650003 * ANS('DCL TRACR1 REG(1) PTR ;/*PTR'|| 17700003 * ' TO REQUEST BLOCK @Y30LB02*/')SKIP; 17750003 * TRTESTR1=TRTESTR1+1; /*INCREM COUNTER @Y30LB02*/ 17800003 * END; /* @Y30LB02*/ 17850003 * IF MF(1) ^= 'L' THEN /*LIST FORM REQUEST? @Y30LB02*/ 17900003 * GO TO EFORM; /*NO,CK FOR EXECUTE @Y30LB02*/ 17950003 * IF MF(2) = '' THEN /*LIST NAME SPECIFIED? @Y30LB02*/ 18000003 * DO; /*NO,PRINT ERROR MSG @Y30LB02*/ 18050003 * ERSW=1; /*SET ERROR SWITCH @Y30LB02*/ 18100003 * RETCODE=12; /*SET RETURN CODE @Y30LB02*/ 18150003 * ANS MSG(' ICB602I - A NAME FOR THE '|| 18200003 * 'REQUEST BLOCK MUST BE SPECIFIED IN MF(2)')SKIP; /*@Y30LB02*/ 18250003 * GO TO FINISH; /*BRANCH TO END PROCESSING @Y30LB02*/ 18300003 * END; /* @Y30LB02*/ 18350003 */* @Y30LB02*/ 18400003 * IF FLAGS ^= '' THEN /*IS THE FLAGS AREA NULL @Y30LB02*/ 18450003 * CTR=CTR+1; /*INCREMENT PARAMETER COUNTER @Y30LB02*/ 18500003 * IF TIMDAT ^= '' THEN /*IS THE TIMDAT AREA NULL @Y30LB02*/ 18550003 * CTR=CTR+1; /*INCREMENT PARAMETER COUNTER @Y30LB02*/ 18600003 * IF CTR > 0 THEN /*INCREMENT CTR > ZERO? @Y30LB02*/ 18650003 * DO; /*PRINT WARNING MESSAGE @Y30LB02*/ 18700003 * RETCODE=4; /*SET RETURN CODE @Y30LB02*/ 18750003 * ANS MSG(' ICB604I - WARNING-ONLY'|| 18800003 * ' THE MF PARAMETER IS VALID FOR'|| 18850003 * ' LIST FORM ')SKIP; /*@Y30LB02*/ 18900003 * END; /* @Y30LB02*/ 18950003 * IF MF(3) ^= '' THEN /*PLS ATTRIBUTE SPECIFIED? @Y30LB02*/ 19000003 * GO TO ATTRLST; /*BRANCH,PROCESS IT @Y30LB02*/ 19050003 */* @Y30LB02*/ 19100003 * ANS('/*******************************************'|| 19150003 * '************** @Y30LB02*/')SKIP; 19200003 * ANS('/* MACMEAN MSSC TRACE MACRO '|| 19250003 * ' @Y30LB02*/')SKIP; 19300003 * ANS('/*VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 '|| 19350003 * ' @Y30LB02*/')SKIP; 19400003 * ANS('/*THIS IS THE INITIALIZED LIST FORM '|| 19450003 * ' @Y30LB02*/')SKIP; 19500003 * ANS('/*******************************************'|| 19550003 * '************** @Y30LB02*/')SKIP; 19600003 * ANS('DCL 1 '||MF(2)||' STATIC LOCAL,'|| 19650003 * ' /*TRACE REQUEST BLOCK @Y30LB02*/')SKIP; 19700003 * ANS(' 2 TRACLEN FIXED(31)INIT('||QUOTE 19750003 * ('10')||'X),/*LENGTH OF TRACE REQ BLK @Y30LB02*/')SKIP; 19800003 * ANS(' 2 TRACOPC CHAR(1)INIT('||QUOTE('24')|| 19850003 * 'X),/*TRACE OPCODE @Y30LB02*/')SKIP; 19900003 * ANS(' 2 * CHAR(1)INIT('||QUOTE('00')|| 19950003 * 'X),/*RESERVED AND ZERO @Y30LB02*/')SKIP; 20000003 * ANS(' 2 TRACFLG BIT(16)INIT('||QUOTE 20050003 * ('0000000000000000')||'B),/*TWO BYTE ATTRI'|| 20100003 * 'BUTE AREA @Y30LB02*/')SKIP; 20150003 * ANS(' 3 TRACEON BIT(1),/*TRACEON/OFF'|| 20200003 * ' ATTRIBUTE @Y30LB02*/')SKIP; 20250003 * ANS(' 3 * BIT(15),/*RESERVED AND'|| 20300003 * ' MUST BE ZERO @Y30LB02*/')SKIP; 20350003 * ANS(' 2 TRACTIM CHAR(8) INIT('||QUOTE 20400003 * ('0000000000000000')||'X);/*TIME/DATE @Y30LB02*/')SKIP; 20450003 * GO TO FINISH; /*BRANCH TO END PROCESSING @Y30LB02*/ 20500003 */* @Y30LB02*/ 20550003 *ATTRLST: 20600003 * ANS('/*******************************************'|| 20650003 * '************** @Y30LB02*/')SKIP; 20700003 * ANS('/* MACMEAN MSSC TRACE MACRO '|| 20750003 * ' @Y30LB02*/')SKIP; 20800003 * ANS('/*VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 '|| 20850003 * ' @Y30LB02*/')SKIP; 20900003 * ANS('/*THIS IS THE UNINITIALIZED LIST FORM '|| 20950003 * ' @Y30LB02*/')SKIP; 21000003 * ANS('/*******************************************'|| 21050003 * '************** @Y30LB02*/')SKIP; 21100003 * ANS('DCL 1 '||MF(2)||' '||MF(3)||','|| 21150003 * ' /*TRACE REQUEST BLOCK @Y30LB02*/')SKIP; 21200003 * ANS(' 2 TRACLEN FIXED(31),/*LENG'|| 21250003 * 'TH OF TRACE REQ BLK = 10 HEX @Y30LB02*/')SKIP; 21300003 * ANS(' 2 TRACOPC CHAR(1),'|| 21350003 * '/*TRACE OPCODE=24 HEX @Y30LB02*/')SKIP; 21400003 * ANS(' 2 * CHAR(1) ,/*RESERVED @Y30LB02*/')SKIP; 21450003 * ANS(' 2 TRACFLG BIT(16),'|| 21500003 * '/*TWO BYTE ATTRIBUTE AREA @Y30LB02*/')SKIP; 21550003 * ANS(' 3 TRACEON BIT(1),/*TRACEON/OFF'|| 21600003 * ' ATTRIBUTE @Y30LB02*/')SKIP; 21650003 * ANS(' 3 * BIT(15),/*RESERVED AND'|| 21700003 * ' MUST BE ZERO @Y30LB02*/')SKIP; 21750003 * ANS(' 2 TRACTIM CHAR(8);'|| 21800003 * '/*TIME AND DATE @Y30LB02*/')SKIP; 21850003 * GO TO FINISH; /*BRANCH TO END @Y30LB02*/ 21900003 */* @Y30LB02*/ 21950003 */* PROCESSING THE EXECUTE MACRO FORM @Y30LB02*/ 22000003 */* @Y30LB02*/ 22050003 *EFORM: 22100003 * IF MF(1) ^= 'E' THEN /*EXECUTE FORM SPECIFIED? @Y30LB02*/ 22150003 * GO TO SFORM; /*NO,BRANCH,CK FOR STANDARD @Y30LB02*/ 22200003 * IF MF(2) = '' THEN /*LIST NAME SPECIFIED? @Y30LB02*/ 22250003 * DO; /*NO,PRINNT ERROR MSG @Y30LB02*/ 22300003 * ERSW=1; /*SET ERROR SWITCH @Y30LB02*/ 22350003 * RETCODE=12; /*SET RETURN CODE @Y30LB02*/ 22400003 * ANS MSG(' ICB612I - MF(2) MUST '|| 22450003 * 'CONTAIN REQ BLK NAME IF '|| 22500003 * 'EXEC MACRO FORM REQUESTED ')SKIP(3); /*@Y30LB02*/ 22550003 * GO TO CKSW; /*BRANCH TO CK SWITCH @Y30LB02*/ 22600003 * END; /* @Y30LB02*/ 22650003 */* @Y30LB02*/ 22700003 * ELSE /* @Y30LB02*/ 22750003 * ANS('/*******************************************'|| 22800003 * '************* @Y30LB02*/')SKIP; 22850003 * ANS('/* MACMEAN MSSC TRACE MACRO '|| 22900003 * ' @Y30LB02*/')SKIP; 22950003 * ANS('/*VS1-4/VS2-3 VERSION-- 06/09/74 LEVEL 00 '|| 23000003 * ' @Y30LB02*/')SKIP; 23050003 * ANS('/*THIS IS THE OUTPUT FOR THE EXECUTE FORM. '|| 23100003 * ' @Y30LB02*/')SKIP; 23150003 * ANS('/*THE LIST FORM OF THIS MACRO SHOULD BE '|| 23200003 * ' @Y30LB02*/')SKIP; 23250003 * ANS('/*INVOKED FIRST IN ORDER TO SET UP NECESSARY'|| 23300003 * ' @Y30LB02*/')SKIP; 23350003 * ANS('/*DECLARES. IF THE COMPLETE ARGUMENT IS '|| 23400003 * ' @Y30LB02*/')SKIP; 23450003 * ANS('/*SPECIFIED THE REQ BLOCK WILL BE ZEROED. '|| 23500003 * ' @Y30LB02*/')SKIP; 23550003 * ANS('/*******************************************'|| 23600003 * '************* @Y30LB02*/')SKIP; 23650003 * IF MF(3) = 'COMPLETE' THEN /*COMPLETE SPECIFIED? @Y30LB02*/ 23700003 * DO; /*ZERO REQUSET BLOCK @Y30LB02*/ 23750003 * ANS(' '||MF(2)||'='||MF(2)||'&&'||MF(2)||';'|| /*@Y30LB02*/ 23800003 * '/*ZERO OUT THE REQUEST BLOCK @Y30LB02*/')SKIP; 23850003 * END; /* @Y30LB02*/ 23900003 */* @Y30LB02*/ 23950003 * ANS('RFY(TRACR1)RSTD;/*RESTRICT REG1 @Y30LB02*/')SKIP; 24000003 * ANS('TRACR1=ADDR('||MF(2)||');/*R1 POINTER TO'|| 24050003 * ' REQUEST BLOCK @Y30LB02*/')SKIP; 24100003 * ANS('TRACLEN= '||QUOTE(TRLEN)||'X;/*LENGTH '|| 24150003 * 'OF TRACE REQUEST @Y30LB02*/')SKIP; 24200003 * ANS('TRACOPC= '||QUOTE(TRACOP)||'X;/*TRACE'|| 24250003 * ' OPCODE @Y30LB02*/')SKIP; 24300003 */* @Y30LB02*/ 24350003 *CKSW: 24400003 * IF ERSW=1 THEN /*ERROR SWITCH SET? @Y30LB02*/ 24450003 * GO TO FINISH; /*YES,END PROCESSING @Y30LB02*/ 24500003 * ELSE /*NO,CONTINUE PROCESSING @Y30LB02*/ 24550003 * GO TO COMPROC; /*BRCH,CHECK PARAMETERS @Y30LB02*/ 24600003 */* @Y30LB02*/ 24650003 *SFORM: 24700003 * IF MF(1) ^= '' THEN /*STANDARD FORM SPECIFIED? @Y30LB02*/ 24750003 * DO; /*NO,PRINT ERROR MESSAGE @Y30LB02*/ 24800003 * ERSW=1; /*SET ERROR SWITCH @Y30LB02*/ 24850003 * RETCODE=12; /*SET ERROR RETURN CODE @Y30LB02*/ 24900003 * ANS MSG(' ICB615I - INVALID MF PARAMETER '|| 24950003 * 'SPECIFIED, MUST BE L, E, OR NULL')SKIP; /*@Y30LB02*/ 25000003 * GO TO CKSW2; /*BRANCH TO CK SWITCH @Y30LB02*/ 25050003 * END; /* @Y30LB02*/ 25100003 */* @Y30LB02*/ 25150003 * IF FLAGS = '' THEN /*FLAGS PARAMETERS SPECIFIED? @Y30LB02*/ 25200003 * DO; /*NO,PRINT ERROR MESSAGE @Y30LB02*/ 25250003 * ERSW=1; /*SET ERROR SWITCH @Y30LB02*/ 25300003 * RETCODE=12; /*SET RETURN CODE @Y30LB02*/ 25350003 * ANS MSG(' ICB607I - FLAGS MUST BE SPECIFIED '|| 25400003 * 'FOR STANDARD FORM MACRO')SKIP; /*@Y30LB02*/ 25450003 * GO TO CKSW2; /*BRANCH @Y30LB02*/ 25500003 * END; /* @Y30LB02*/ 25550003 * IF TIMDAT = '' THEN /*TIME AND DATE SPECIFIED @Y30LB02*/ 25600003 * DO; /*PRINT ERROR MESSAGE @Y30LB02*/ 25650003 * ERSW=1; /*SET ERROR SWITCH @Y30LB02*/ 25700003 * RETCODE=12; /*SET RETURN CODE @Y30LB02*/ 25750003 * ANS MSG(' ICB614I - TIMDAT MUST BE SPECIFIED'|| 25800003 * ' FOR STANDARD FORM MACRO')SKIP; /*@Y30LB02*/ 25850003 * END; /* @Y30LB02*/ 25900003 */* @Y30LB02*/ 25950003 *CKSW2: 26000003 */* @Y30LB02*/ 26050003 * IF ERSW = 1 THEN /*ERROR SWITCH SET? @Y30LB02*/ 26100003 * GO TO FINISH; /*BRANCH TO END @Y30LB02*/ 26150003 */* @Y30LB02*/ 26200003 * IF TRACTEST = 1 THEN /*STD FORM INVOKED BEFORE? @Y30LB02*/ 26250003 * DO; /*YES,DON'T PRINT DECLARES @Y30LB02*/ 26300003 * ANS('/*******************************************'|| 26350003 * '************** @Y30LB02*/')SKIP; 26400003 * ANS('/* MACMEAN MSSC TRACE MACRO '|| 26450003 * ' @Y30LB02*/')SKIP; 26500003 * ANS('/*VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 '|| 26550003 * ' @Y30LB02*/')SKIP; 26600003 * ANS('/*THIS IS THE OUTPUT FOR A SECONDARY '|| 26650003 * ' @Y30LB02*/')SKIP; 26700003 * ANS('/*INVOCATION OF THE STANDARD FORM MACRO '|| 26750003 * ' @Y30LB02*/')SKIP; 26800003 * ANS('/*******************************************'|| 26850003 * '************** @Y30LB02*/')SKIP; 26900003 * ANS('RFY(TRACR1)RSTD;/*RESTRICT REG1 @Y30LB02*/')SKIP; 26950003 * ANS('TRACR1=ADDR(TRACLEN);/*R1 PTR TO BLK @Y30LB02*/')SKIP; 27000003 * ANS('TRACLEN= '||QUOTE(TRLEN)||'X;/*LENGTH '|| 27050003 * 'OF TRACE REQUEST @Y30LB02*/')SKIP; 27100003 * ANS('TRACOPC='||QUOTE(TRACOP)||'X;/*TRACE'|| 27150003 * ' OPCODE @Y30LB02*/')SKIP; 27200003 * GO TO COMPROC; /*BRANCH TO CK PARAMETERS @Y30LB02*/ 27250003 * END; /* @Y30LB02*/ 27300003 */* @Y30LB02*/ 27350003 * ELSE /*1ST INVOC OF STD FORM @Y30LB02*/ 27400003 * DO; /*PUT OUT THE DECLARES @Y30LB02*/ 27450003 * ANS('/*******************************************'|| 27500003 * '************** @Y30LB02*/')SKIP; 27550003 * ANS('/* MACMEAN MSSC TRACE MACRO '|| 27600003 * ' @Y30LB02*/')SKIP; 27650003 * ANS('/*VS1-4/VS2-3 VERSION--06/09/74 LEVEL 00 '|| 27700003 * ' @Y30LB02*/')SKIP; 27750003 * ANS('/*INVOCATION OF THE STANDARD FORM MACRO '|| 27800003 * ' @Y30LB02*/')SKIP; 27850003 * ANS('/*******************************************'|| 27900003 * '************** @Y30LB02*/')SKIP; 27950003 * ANS('RFY(TRACR1)RSTD;/*RESTRICT REG1 @Y30LB02*/')SKIP; 28000003 * ANS('TRACR1=ADDR(TRACLEN);/*R1 PTR '|| 28050003 * 'TO LIST @Y30LB02*/')SKIP; 28100003 * ANS('DCL 1 TRACLST STATIC LOCAL,'|| 28150003 * ' /*TRACE REQUEST BLOCK @Y30LB02*/')SKIP; 28200003 * ANS(' 2 TRACLEN FIXED(31)INIT('||QUOTE('10')|| 28250003 * 'X),/*LENGTH OF TRACE REQ BLK @Y30LB02*/')SKIP; 28300003 * ANS(' 2 TRACOPC CHAR(1)INIT('||QUOTE('24')|| 28350003 * 'X),/*TRACE OPCODE @Y30LB02*/')SKIP; 28400003 * ANS(' 2 * CHAR(1)INIT('||QUOTE('00')|| 28450003 * 'X),/*RESERVED AND ZERO @Y30LB02*/')SKIP; 28500003 * ANS(' 2 TRACFLG BIT(16)INIT('||QUOTE 28550003 * ('0000000000000000')||'B),/*TWO BYTE ATTRI'|| 28600003 * 'BUTE AREA @Y30LB02*/')SKIP; 28650003 * ANS(' 3 TRACEON BIT(1),/*TRACEON/OFF'|| 28700003 * ' ATTRIBUTE @Y30LB02*/')SKIP; 28750003 * ANS(' 3 * BIT(15),/*RESERVED AND'|| 28800003 * ' MUST BE ZERO @Y30LB02*/')SKIP; 28850003 * ANS(' 2 TRACTIM CHAR(8) INIT('||QUOTE 28900003 * ('0000000000000000')||'X);/*TIME/DATE @Y30LB02*/')SKIP; 28950003 * TRACTEST=TRACTEST+1; /*INCREMENT STD FORM CTR @Y30LB02*/ 29000003 * GO TO COMPROC; /*BRCH TO CK PARAMETERS @Y30LB02*/ 29050003 * END; /* @Y30LB02*/ 29100003 */* @Y30LB02*/ 29150003 */********************************************************* @Y30LB02*/ 29200003 */* COMMON PROCESSING FOR EXECUTE AND STANDARD FORMS @Y30LB02*/ 29250003 */* THE FOLLOWING CODE WILL CHECK TO DETERMINE WHAT @Y30LB02*/ 29300003 */* PARAMETERS ARE SPECIFIED AND PLACE THE VALUE IN @Y30LB02*/ 29350003 */* THE REQUEST BLOCK @Y30LB02*/ 29400003 */********************************************************* @Y30LB02*/ 29450003 *COMPROC: 29500003 * IF FLAGS ^= '' THEN /*FLAGS SPECIFIED? @Y30LB02*/ 29550003 * ANS('TRACFLG= '||FLAGS||';/*VALUE OF FLAGS '|| 29600003 * 'PARAMETER @Y30LB02*/')SKIP; 29650003 */* @Y30LB02*/ 29700003 * IF TIMDAT ^= '' THEN /*TIME AND DATE SPECIFIED? @Y30LB02*/ 29750003 * ANS('TRACTIM= '||TIMDAT||';/*TIME/DATE PARM @Y30LB02*/')SKIP; 29800003 */* @Y30LB02*/ 29850003 */******************************************************** @Y30LB02*/ 29900003 */* THE FOLLOWING CODE WILL INVOKE SVC 126. @Y30LB02*/ 29950003 */* THE RETURN CODE IS SET AND PROCESSING IS ENDED @Y30LB02*/ 30000003 */******************************************************** @Y30LB02*/ 30050003 */******************************************************** @Y30LB02*/ 30100003 * ANS('SVC (126);/*INVOKE SVC 126 @Y30LB02*/')SKIP; 30150003 * ANS('RFY TRACR1 UNRSTD;/*UNRESTRICT REG 1 @Y30LB02*/')SKIP; 30200003 */* @Y30LB02*/ 30250003 *FINISH: 30300003 * RETURN CODE(RETCODE); /*@Y30LB02*/ 30350003 * %END; /*@Y30LB02*/ 30400003