APSUX02 START 0 00010000 TITLE 'APSUX02 - PERFORMANCE JOB TRAILER ROUTINE' 00020000 **** START OF SPECIFICATIONS ***************************************** 00030000 * * 00040000 *01* MODULE NAME = APSUX02P * 00050000 * * 00060000 * $MOD(APSUX02 ) COMP(APS) PROD(PSF) : VERSION 3.2.0 * 00070000 * * 00080000 *01* DESCRIPTIVE NAME = JOB TRAILER INSTALLATION EXIT * 00090000 * PERFORMANCE TRAILER EXAMPLE * 00100000 * * 00110000 *01* STATUS = VERSION 3, RELEASE 2, LEVEL 0 * 00120000 * * 00130000 *01* FUNCTION = * 00140000 * Print a job trailer separator page which prints faster than * 00150000 * the JES-Format separator page. * 00160000 * The page contains the job name in block letters followed by * 00170000 * job related information lines. The job name and information * 00180000 * lines are surrounded by boxes. * 00190000 * * 00200000 * This job trailer exit contains the code (commented @D2A* 00210000 * out) to not transmit this trailer page (branches @D2A* 00220000 * around the exit code) if connected to DPF @D2A* 00230000 * (Distributed Print Facility). Trailers are @D2A* 00240000 * required to be active when connected to DPF @D2A* 00250000 * so that PSF can inform DPF of the job @D2A* 00260000 * boundaries (required when below JES2 4.1.0 or JES3 4.2.0).@D2A* 00270000 * * 00280000 * TRAILER SHEET * 00290000 * * 00300000 * There are 2 forms of this trailer sheet that can be printed. * 00310000 * If JES supports Enhanced Sysout Support (ESS) then the * 00320000 * ESS trailer sheet is printed. If JES does not support ESS * 00330000 * then the original trailer sheet is printed. * 00340000 * * 00350000 * The ESS trailer sheet provides 6 additional keywords. * 00360000 * They are: * 00370000 * TITLE: * 00380000 * NAME: * 00390000 * ROOM: * 00400000 * BUILDING: * 00410000 * DEPARTMENT: * 00420000 * ADDRESS: * 00430000 * * 00440000 * The 6 keywords are obtained from the Print Dataset's * 00450000 * OUTPUT JCL. * 00460000 * * 00470000 * A SEGMENT ID field may or may not be printed on * 00480000 * the same line as the JOBID on the ESS trailer sheet. * 00490000 * If the SYSOUT is not segmented, then the entire * 00500000 * SEGMENT ID field is omitted from the trailer sheet. * 00510000 * For segmented SYSOUT, the SEGMENT ID is formatted * 00520000 * and printed on the trailer sheet. If the segment ID is * 00530000 * negative or greater than 99999, then the SEGMENT ID field * 00540000 * is printed as ***** (indicates an invalid segment ID). * 00550000 * * 00560000 * The OUTPUT JCL (SWBTU) is the preferred source for NAME * 00570000 * and ROOM. The JCL values (6 new keywords) are * 00580000 * retrieved via the SWBTUREQ macro. If * 00590000 * NAME is not in the SWBTU, then the programmer name from the * 00600000 * JSPA is used. Likewise, if ROOM is not in the SWBTU, then * 00610000 * the room from the JSPA (Job Stmt) is used. * 00620000 * * 00630000 * The ADDRESS keyword allows the address to be from 1 to 4 * 00640000 * lines long. Any lines that are unused are printed as blank * 00650000 * lines, but the label ADDRESS appears on the first line even * 00660000 * if no address was specified on the OUTPUT JCL. * 00670000 * * 00680000 * If the SWBTUREQ macro returned an error, the ADDRESS line * 00690000 * is not printed. An error message is printed in the four * 00700000 * lines that would have contained the ADDRESS that contains * 00710000 * the SWBTUREQ Return Code and Reason Code. * 00720000 * * 00730000 * DESTINATION is a new field on the trailer sheet. Its * 00740000 * value is obtained from the JSPA. * 00750000 * * 00760000 * Enhanced Sysout Support (ESS) is supported by: * 00770000 * * 00780000 * MVS 4.1.0+ * 00790000 * JES2 4.10+ * 00800000 * JES3 4.20+ * 00810000 * * 00820000 * CONDITIONAL ASSEMBLY * 00830000 * * 00840000 * Conditional assembly is used * 00850000 * in this module to determine whether to * 00860000 * assemble the ESS trailer sheet code or not assemble it. * 00870000 * The System Variable Symbol SYSPARM is used to determine the * 00880000 * conditional assembly. * 00890000 * * 00900000 * If SYSPARM is not specified in a job control statement (null) * 00910000 * or SYSPARM is specified as null ("SYSPARM ()"), then the * 00920000 * ESS trailer sheet code is not assembled. * 00930000 * * 00940000 * If SYSPARM is specified in a job control statement as * 00950000 * non-null ("SYSPARM (xxx)" where xxx is any character * 00960000 * string up to 255 characters), then the ESS trailer sheet * 00970000 * code is assembled. * 00980000 * * 00990000 * Example: //STEP EXEC ASMFC,PARM=(SYSPARM(ESS)) * 01000000 * * 01010000 * If the ESS trailer sheet code is assembled, the ESS * 01020000 * trailer sheet is still not printed unless JES supports * 01030000 * ESS (ECEJESS = 1). * 01040000 * * 01050000 * * 01060000 *02* OPERATION = * 01070000 * 1. Create 12 lines for the job name in block letters * 01080000 * 2. Pass the block letter record to PSF * 01090000 * 3. Pass record to PSF to draw the boxes * 01100000 * 4. Build job information lines * 01110000 * 5. Pass the information line record to PSF * 01120000 * * 01130000 *01* NOTES = * 01140000 *02* DEPENDENCIES = NONE * 01150000 *02* RESTRICTIONS = * 01160000 * THE SEPARATOR PAGE REQUIRES A FONT NO LARGER THAN 12 * 01170000 * PITCH IN ORDER FOR THE TEXT IN THE ESS DETAIL BOX TO * 01180000 * FIT IN THE BOX. * 01190000 *02* REGISTER CONVENTIONS = * 01200000 * SEE REGISTER EQUATES * 01210000 *02* PATCH LABEL = PSPACE * 01220000 * * 01230000 *01* MODULE TYPE = PROCEDURE * 01240000 *02* PROCESSOR = ASSEMBLER * 01250000 *02* ATTRIBUTES = REENTRANT * 01260000 * AMODE 31 * 01270000 * RMODE ANY * 01280000 * * 01290000 *01* ENTRY POINT = APSUX02 * 01300000 *02* LINKAGE = * 01310000 * R15 = ENTRY POINT ADDRESS * 01320000 * R13 = SAVE AREA ADDRESS * 01330000 * R1 = ADDRESS OF A 4 BYTE FIELD WHICH CONTAINS THE * 01340000 * ADDRESS OF APSGEXTP * 01350000 * * 01360000 *01* INPUT = * 01370000 * APSGEXTP - PSF Installation Exit Parameter Area * 01380000 * APSUECA - PSF Exit Communications Area * 01390000 * CVT - Communication Vector Table * 01400000 * IEESMCA - System Management Facilities Control @DYA* 01410000 * Table @DYA* 01420000 * IEFJESCT - Job Entry Subsystem Communication Table * 01430000 * IEFSJTRP - Scheduler JCL Facility SWBTUREQ RETRIEVE * 01440000 * Parameter List * 01450000 * IEFDOTUM - Dynamic Output Text Unit Mappings * 01460000 * IEFDOKEY - Dynamic Output Key Mapping * 01470000 * IEFSJTRC - Scheduler JCL Facility (SJF) SWBTUREQ * 01480000 * Services Return and Reason Codes * 01490000 * * 01500000 *01* OUTPUT = * 01510000 * DATA STREAM RECORDS * 01520000 * * 01530000 *01* EXIT NORMAL = * 01540000 * RETURN TO CALLER, REGISTER 15 SET TO ZERO * 01550000 * * 01560000 *01* EXIT ERROR = NONE * 01570000 * * 01580000 *01* EXTERNAL REFERENCES = * 01590000 *02* ROUTINES = * 01600000 * APSUBLK - BUILD BLOCK LETTER RECORDS * 01610000 * APSUPUT - PUT RECORD TO PSF * 01620000 *02* DATA AREAS = * 01630000 * APSGEXTP - PSF Installation Exit Parameter Area * 01640000 * APSUECA - PSF Exit Communications Area * 01650000 * APSUCOM - PSF Exit Julian Day Table * 01660000 * IAZJSPA - Job Separator Page Area * 01670000 * IEFJMR - MVS Job Management Record * 01680000 * CVT - Communication Vector Table * 01690000 * IEESMCA - System Management Facilities Control @DYA* 01700000 * Table @DYA* 01710000 * IEFJESCT - Job Entry Subsystem Communication Table * 01720000 * IEFSJTRP - Scheduler JCL Facility SWBTUREQ RETRIEVE * 01730000 * Parameter List * 01740000 * IEFDOTUM - Dynamic Output Text Unit Mappings * 01750000 * IEFDOKEY - Dynamic Output Key Mapping * 01760000 * IEFSJTRC - Scheduler JCL Facility (SJF) SWBTUREQ * 01770000 * Services Return and Reason Codes * 01780000 *02* INCLUDES = NONE * 01790000 * * 01800000 *01* MACROS = NONE * 01810000 * * 01820000 *01* MESSAGES = NONE * 01830000 * * 01840000 * 01* CHANGE ACTIVITY = * 01850000 * $H3=LAPS0003, HAF1220, 870928, BJ13WLC: RELEASE 2.1 * 01860000 * $L1=LAPS0004, HAF1228, 880601, B53KELJ: RELEASE 3.0 * 01870000 * $H5=LAPS0005, HPRF102, 033189, B53KEMC: REL 2.1.0 NEW FUNCT @H5A* 01880000 * $H9=LAPS0005, HAF1237, 062990, B53KRLD: ESS NEW FUNCTION @H9A* 01890000 * $L2=LAPS0005, HPRF102, 910201, BJ13RLD: UPDATE PROLOG RELEASE @L2A* 01900000 * LEVEL (P1966) * 01910000 * $D2=LAPS0006, HPRF220, 930108, BJ13RLD: REL 2.2.0 - @D2A* 01920000 * ADD COMMENTED OUT CODE * 01930000 * TO BYPASS THE EXIT IF * 01940000 * CONNECTED TO DPF. PTR * 01950000 * BF00037. * 01960000 * $01=OW08944, HPRF220, 950127, BJ13RLD: PRINT THE ENTIRE YEAR @01A* 01970000 * (1995) ON THE TRAILER * 01980000 * SHEET * 01990000 * $DU=LAPS0007,HPRF310,980604,BDKURLB: Version 3.1.0 @DUA* 02000000 * $DY=LAPS0008,HPRF320,991115,BDKURLD: System ID on Banner @DYA* 02010000 * $DX=LAPS0008,HPRF320,991117,BUQ4RLB: Version 3.2.0 @DXA* 02020000 * * 02030000 **** END OF SPECIFICATIONS ******************************************* 02040000 TITLE 'DSECT - XTP' 02050000 APSGEXTP LIST=YES 02060000 TITLE 'DSECT - ECA' 02070000 APSUECA LIST=YES 02080000 TITLE 'DSECT - JSPA' 02090000 IAZJSPA LIST=YES 02100000 TITLE 'DSECT - JMR' 02110000 IEFJMR 02120000 TITLE 'SMCA MAPPING' @DYA 02130000 IEESMCA @DYA 02140000 TITLE 'CVT MAPPING' 02150000 CVT DSECT=YES Required for SWBTUREQ @H9A 02160000 TITLE 'JESCT MAPPING' 02170000 IEFJESCT Required for SWBTUREQ @H9A 02180000 TITLE 'APSUX02 - PERFORMANCE JOB TRAILER ROUTINE' 02190000 APSUX02 CSECT , 02200000 APSUX02 AMODE 31 @H5A 02210000 APSUX02 RMODE ANY @H5A 02220000 USING *,@15 02230000 B PROLOG 02240000 DC AL1(16) 02250000 DC CL8'APSUX02' 02260000 DC CL8'&SYSDATE' 02270000 DROP @15 02280000 ********************************************************************** 02290000 * PROLOG 02300000 ********************************************************************** 02310000 PROLOG DS 0H 02320000 STM @14,@12,12(@13) SAVE CALLERS REGISTERS 02330000 LR @12,@15 R12 IS BASE REG 02340000 USING APSUX02,@12,@03 BASE APSUX02 ON R12/R3@H9A 02350000 LA @03,4095(@12) R3 is Base Register @H9A 02360000 LA @03,1(@03) Set Base Register @H9A 02370000 USING APSGEXTP,XTPPTR BASE APSGEXTP ON XTPPTR 02380000 USING APSUECA,ECAPTR BASE APSUECA ON ECAPTR 02390000 USING IAZJSPA,JSPAPTR BASE IAZJSPA ON JSPAPTR 02400000 USING JMR,JMRPTR BASE IEFJMR ON JMRPTR 02410000 L @04,0(,@01) LOAD ADDRESS OF APSGEXTP 02420000 L @05,XTPECAP LOAD ADDRESS OF APSUECA 02430000 LR @02,@13 LOAD ADDRESS OF CALLER SAVE 02440000 * AREA 02450000 LA @13,ECAUSAVE R13 POINTS TO APSUX02 SAVE 02460000 * AREA 02470000 ST @02,4(,@13) SAVE CALLERS SAVE AREA 02480000 * ADDRESS 02490000 * 02500000 ********************************************************************** 02510000 * TO SUPPRESS THIS TRAILER WHEN ATTACHED TO THE @D2A 02520000 * DISTRIBUTED PRINT FUNCTION OF PSF/2 THEN UNCOMMENT @D2A 02530000 * THE FOLLOWING CODE. @D2A 02540000 ********************************************************************** 02550000 * 02560000 * USING APSUECE,@02 Get addressablity @D2A 02570000 * L @02,ECAECEP to ECE @D2A 02580000 * @D2A 02590000 * TM ECEFLAG,ECEDPF DPF attached printer?@D2A 02600000 * BO OUT YES - exit immediate @D2A 02610000 * @D2A 02620000 * DROP @02 Drop addr. to ECE @D2A 02630000 * @D2A 02640000 SLR RTNCODE,RTNCODE RESET RETURN CODE 02650000 XC ECAFLAGS(2),ECAFLAGS RESET ECAFLAGS 02660000 L JSPAPTR,XTPJSPAP LOAD ADDRESS OF IAZJSPA 02670000 L JMRPTR,JSPAJMR LOAD ADDRESS OF IEFJMR 02680000 L PUTPTR,ECAPUTP LOAD ADDRESS OF APSUPUT 02690000 LA ECAWKPTR,ECAWKBUF GET ADDRESS OF ECA WORK BUF 02700000 ********************************************************************** 02710000 * CREATE JOB NAME IN BLOCK LETTERS 02720000 ********************************************************************** 02730000 NI ECAFLAGS,B'10111111' TURN ON CENTER BLOCK LETTER 02740000 * FLAG 02750000 MVI ECADRF,X'00' RESET RECORD TYPE FLAGS 02760000 MVC ECABLKIN(8),JSPAJBNM GET JOB NAME 02770000 OI ECAFLAGS,ECAPBLK TURN ON PERFORMANCE BLOCK 02780000 * LETTER INDICATOR 02790000 NI ECAFLAGS,B'01111111' TURN OFF SLANT LETTER FLAG 02800000 L @15,BLKPTR CALL 02810000 BALR @14,@15 APSUBLK 02820000 USING BLKWRK,ECAWKPTR BASE BLOCK LETTER COMPOSED- 02830000 * TEXT DATA AREA ON ECAWKPTR 02840000 TM ECAFLAGS,ECASLANT TEST IF SLANT LETTER 02850000 BNO NOSLANT NOT SLANT LETTER 02860000 TM ECAFLAGS,ECALJUST TEST IF LEFT ADJUSTED 02870000 BNO NOLEFT NOT LEFT ADJUSTED 02880000 MVC XPOS(2),SLL SET INLINE POSITION FOR 02890000 * SLANT & LEFT ADJUSTED 02900000 * BLOCK LETTERS 02910000 B CONT1 02920000 NOLEFT MVC XPOS(2),SLC SET INLINE POSITION FOR 02930000 * SLANT & CENTERED BLOCK 02940000 * LETTERS 02950000 B CONT1 02960000 NOSLANT TM ECAFLAGS,ECALJUST TEST IF LEFT ADJUSTED 02970000 BNO STCNTR 02980000 MVC XPOS(2),STL SET INLINE POSITION FOR 02990000 * STRAIGHT & LEFT-ADJUSTED 03000000 * BLOCK LETTERS 03010000 B CONT1 03020000 STCNTR MVC XPOS(2),STC SET INLINE POSITION FOR 03030000 * STRAIGHT & CENTERED 03040000 * BLOCK LETTERS 03050000 CONT1 DS 0H 03060000 MVC FROM(2),BEG SET POINTER TO THE 03070000 * BEGINNING OF THE LAST 03080000 * LINE OF BLOCK LETTERS 03090000 * IN THE BUFFER 03100000 MVC TO(2),END SET POINTER TO THE 03110000 * END OF THE LAST 03120000 * LINE OF BLOCK LETTERS 03130000 * IN THE BUFFER 03140000 LA @14,12 GET THE # OF LINES OF 03150000 * BLOCK LETTERS 03160000 STH @14,INDEX STORE THE # IN INDEX 03170000 LA @08,TEMPBUF GET ADDRESS OF TEMPORARY 03180000 * BUFFER 03190000 ********************************************************************** 03200000 * PRINT JOB NAME BLOCK LETTERS 03210000 ********************************************************************** 03220000 LOOP DS 0H 03230000 LH @01,FROM PICK UP 03240000 LR @06,ECAPTR A LINE OF BLOCK 03250000 ALR ECAPTR,@01 LETTERS FORMATTED 03260000 MVC 0(84,@08),BLKCHAR-1 BY APSUBLK 03270000 LR ECAPTR,@06 RESTORE ECAPTR 03280000 LH @14,INDEX MOVE THE LINE 03290000 MH @14,NINEFOUR INTO THE 03300000 LR @06,ECAWKPTR COMPOSED- 03310000 ALR ECAWKPTR,@14 TEXT DATA 03320000 MVC BLKTEXT-94(84),0(@08) AREA 03330000 MVC BLKPOS-94(8),YPOS1 ADD MOVE INLINE CONTROL 03340000 LR @14,ECAWKPTR SAVE ECAWKPTR 03350000 LR ECAWKPTR,@06 SET ECAWKPTR TO @ OF BLKWRK 03360000 MVC 0(2,@08),XPOS ADD MOVE BASELINE CONTROL 03370000 LR @06,ECAWKPTR SAVE POINTER TO BLKWRK 03380000 LR ECAWKPTR,@14 RESTORE ECAWKPTR 03390000 MVC BLKX-94(2),0(@08) ADD TRANSPARENT DATA 03400000 MVC BLKTRN-94(2),TRN1 TEXT CONTROL (TRN) 03410000 LR ECAWKPTR,@06 SET ECAWKPTR TO @ OF BLKWRK 03420000 LH @14,FROM UPDATE THE 03430000 LR @00,@14 BEGINNING AND 03440000 BCTR @00,0 END POINTER 03450000 STH @00,TO TO PICK UP 03460000 SL @14,LINELGTH THE NEXT LINE 03470000 STH @14,FROM OF BLOCK LETTERS 03480000 * NOTE: THE SEQUENCE OF 03490000 * MOVING BLOCK LETTER LINES 03500000 * FROM BUFFER TO CTX AREA IS 03510000 * BACKWARDS, THAT IS MOVE 03520000 * THE 12TH LINE FIRST. 03530000 SLR @14,@14 CHECK IF ALL 12 03540000 BCTR @14,0 LINES OF BLOCK 03550000 AH @14,INDEX LETTERS ARE MOVED 03560000 STH @14,INDEX INTO THE COMPOSED-TEXT 03570000 LTR @14,@14 DATA AREA, IF NOT 03580000 BP LOOP GO TO LOOP 03590000 MVC BLKY(4),YPOS2 SET ABSOLUTE BASELINE 03600000 * POSITION FOR THE 1ST 03610000 * LINE OF BLOCK LETTERS 03620000 MVC BLKTRN+1034(2),TRN2 SET UNCHAINED TRN FOR 03630000 * THE LAST LINE OF 03640000 * BLOCK LETTERS 03650000 MVC ECARECLN(4),BLKLGTH GET LENGTH OF THE COMPOSED 03660000 * TEXT DATA AREA FOR THE 03670000 * BLOCK LETTERS 03680000 LA @14,BLKCTX GET ADDRESS OF THE 03690000 ST @14,ECARECAD COMPOSED TEXT DATA AREA 03700000 MVI ECADRF,X'00' RESET RECORD DESC FALGS 03710000 OI ECADRF,ECADSR INDICATE DATA STREAM REC 03720000 MVC BLKSFI(10),SFI02 SET STRUCTURE FIELD 03730000 * INTRODUCER FOR THE 03740000 * COMPOSED TEXT AREA 03750000 LR @15,PUTPTR CALL 03760000 BALR @14,@15 APSUPUT 03770000 XC ECAFLAGS(2),ECAFLAGS RESET ECAFLAGS 03780000 LTR RTNCODE,RTNCODE IF RETURN CODE NOT ZERO, 03790000 BNZ OUT EXIT 03800000 * 03810000 ********************************************************************** 03820000 * 03830000 * Conditional assembly check for ESS 03840000 * 03850000 * The code between the AIF and the label .NOESS01 will be 03860000 * suppressed if SYSPARM is NULL. 03870000 * 03880000 ********************************************************************** 03890000 * 03900000 AIF ('&SYSPARM' EQ '').NOESS01 Branch - ESS not supp @H9A 03910000 * 03920000 ********************************************************************** 03930000 * Determine which separator format to print * 03940000 ********************************************************************** 03950000 * 03960000 USING APSUECE,@02 Get addressability @H9A 03970000 L @02,ECAECEP to ECE @H9A 03980000 * 03990000 TM ECEFLAG,ECEJESS Does JES support ESS? @H9A 04000000 BNZ BUILDBOX YES -build detail box @H9A 04010000 * NO -create old hdr @H9A 04020000 * 04030000 DROP @02 Drop addr. to ECE @H9A 04040000 * 04050000 .NOESS01 ANOP @H9A 04060000 * 04070000 ********************************************************************** 04080000 * DRAW BOXES 04090000 * 04100000 * NOTE: The following code was moved from the top of the 04110000 * routine since it is not common for the 2 forms of 04120000 * the trailer sheet. 04130000 ********************************************************************** 04140000 USING BOXCTX,ECAWKPTR Base Box Composed-Text@H9A 04150000 * Data Area (CTX) on ECAWKPTR 04160000 XC BOXCTX(184),BOXCTX RESET COMPOSED-TEXT 04170000 * DATA AREA (CTX) 04180000 MVC BOXSFI(10),SFI01 SET STRUCTURED FIELD 04190000 * INTRODUCER (SFI) 04200000 MVC BOXB1(8),AMB1 SET TEXT 04210000 MVC BOXB2(14),DRB2 CONTROLS 04220000 MVC BOXB3(8),AMB3 TO 04230000 MVC BOXB4(14),DRB4 DRAW 04240000 MVC BOXB5(8),AMB5 THE 04250000 MVC BOXB6(14),DRB6 BOLD 04260000 MVC BOXB7(4),AMB7 OUTER 04270000 MVC BOXB8(7),DRB8 BOX 04280000 MVC BOXT1(8),AMT1 SET 04290000 MVC BOXT2(14),DRT2 TEXT 04300000 MVC BOXT3(8),AMT3 CONTROLS 04310000 MVC BOXT4(14),DRT4 TO 04320000 MVC BOXT5(4),AMT5 DRAW 04330000 MVC BOXT6(7),DRT6 THE 04340000 MVC BOXT7(8),AMT7 THIN 04350000 MVC BOXT8(14),DRT8 INNER 04360000 MVC BOXT9(4),AMT9 BOXES 04370000 MVC BOXT0(14),DRT0 04380000 MVC BOXNOP(2),NOP NOP TEXT CONTROL 04390000 LA @14,BOXCTX LOAD ADDRESS OF CTX 04400000 ST @14,ECARECAD STORE THE ADDR IN ECARECAD 04410000 MVC ECARECLN(4),CTXLGTH GET LENGTH OF CTX 04420000 MVI ECADRF,X'00' RESET RECORD DESCRIPTION 04430000 OI ECADRF,ECADSR SET DATA STREAM FLAG 04440000 LR @15,PUTPTR CALL 04450000 BALR @14,@15 APSUPUT 04460000 LTR RTNCODE,RTNCODE CHECK APSUPUT RETURN CODE 04470000 BNZ OUT IF NOT ZERO, EXIT 04480000 ********************************************************************** 04490000 * OBTAIN TIME AND DATE 04500000 * 04510000 * The date is returned in register 1 as packed decimal @01A 04520000 * digits of the form: @01A 04530000 * @01A 04540000 * 0CYYDDDF where @01A 04550000 * @01A 04560000 * C is a digit representing centuries beyond the twentieth. @01A 04570000 * In the years 1900 through 1999, C = 0. In the years @01A 04580000 * 2000 through 2099, C = 1. @01A 04590000 * YY is the last 2 digits of the year. @01A 04600000 * DDD is the day of the year. @01A 04610000 * F is a 4-bit sign character that allows the data to be @01A 04620000 * unpacked and printed. @01A 04630000 * 04640000 ********************************************************************** 04650000 USING PRTWRK,ECAWKPTR BASE INFO PRINT LINE CTX 04660000 * ON ECAWKPTR 04670000 LA @01,2 04680000 SLR @00,@00 RESET R0 04690000 SVC 11 ISSUE TIME SVC 04700000 STCM @01,15,WRKDATE SAVE THE DATE (PACKED DEC) 04710000 ********************************************************************** 04720000 * ADJUST TIME FOR AM/PM 04730000 ********************************************************************** 04740000 MVI PRTTIME,C' ' RESET PRINT TIME IN 04750000 MVC PRTTIME+1(10),PRTTIME THE OUTPUT 04760000 LA WRKPTR,WRKTIME SET R2 TO ADDRESS OF 04770000 * TIME WORK AREA 04780000 LA AMPMPTR,WRKAMPM SET R3 TO ADDR OF @H9A 04790000 * AM/PM WORK AREA 04800000 MVC WRKAMPM(2),AM INIT TO AM @H9A 04810000 CL @00,=X'12000000' TEST FOR ZERO HOURS 04820000 BL PMORNING BRANCH IF AM 04830000 MVI 0(@08),C'P' CHANGE FROM AM TO PM @H9A 04840000 SL @00,=X'12000000' SUBTRACT TWELVE HOURS 04850000 PMORNING ST @00,0(,@02) STORE ADJUSTED TIME 04860000 CLI 0(@02),X'00' TEST FOR ZERO HOURS 04870000 BNE PADJERR BR IF NOT TO TEST ADJ 04880000 * ERROR 04890000 MVI 0(@02),X'12' CONVERT ZERO TO TWELVE 04900000 PADJERR TM 0(@02),X'08' TEST FOR ADJUSTMENT ERRORS 04910000 BZ PEDTIME BRANCH IF NO ERROR 04920000 NI 0(@02),X'09' CORRECT FOR BIN. SUBTRACT 04930000 * ERROR 04940000 PEDTIME DS 0H 04950000 MVI WRKTH,X'0C' RESET LOW ORDER 2 BYTES 04960000 * WITH SIGH FOR PACK DEC 04970000 UNPK WRKUTIME(7),WRKTIME(4) UNPACK TIME 04980000 ********************************************************************** 04990000 * OBTAIN MONTH, DAY AND YEAR 05000000 ********************************************************************** 05010000 LA @01,4 ADDRESSABILITY TO 05020000 AL @01,ECAUCOMP JULIAN TABLE 05030000 MVC WRKJTBL(48),DAYTBL(@01) COPY TABLE FOR LEAP 05040000 * YEAR ADJUSTMENT 05050000 MVC WRKWORK+4(4),WRKDATE OBTAIN DATE FROM SAVED AREA 05060000 TM WRKWORK+5,X'01' TEST 05070000 BO NOLEAPYR FOR 05080000 TM WRKWORK+5,X'12' LEAP 05090000 BM NOLEAPYR YEAR 05100000 MVI WRKJTBL+4,29 ADJUST FEB FOR LEAP YEAR 05110000 NOLEAPYR MVC WRKED(3),=X'F02120' PLACE PATTERN FOR EDIT@01C 05120000 ED WRKED(3),WRKWORK+5 EDIT THE YEAR @01C 05130000 MVC WRKYY(2),WRKED+1 STORE THE YEAR @01A 05140000 MVC WRKWORK(6),ZEROES RESET ALL BUT JULIAN DATE 05150000 SLR @00,@00 CLEAR FOR IC 05160000 CVB 1,WRKWORK CONVERT TO BINARY DAY 05170000 LA 2,WRKJTBL-4 ADDRESS OF DATE CONVERSION 05180000 * TABLE 05190000 SEARCH SLR @01,@00 CONVERT 05200000 LA @02,4(,@02) JULIAN DAY 05210000 IC @00,0(,@02) TO 05220000 CLR @00,@01 STANDARD DAY 05230000 BL SEARCH 05240000 CVD 1,WRKWORK CONVERT TO DECIMAL DAY 05250000 UNPK WRKDD(2),WRKWORK+6(2) UNPACK THE DAY 05260000 OI WRKDD+1,X'F0' INSURE SIGN NIBBLE 05270000 MVC WRKMMM(3),1(@02) SET EBCIDIC ALPHA MONTH 05280000 MVC WCEN(4),XZERO CLEAR CENTURY FIELD @01A 05290000 MVC WCEN+3(1),WRKDATE OBTAIN CENTURY FROM @01A 05300000 * SAVED AREA @01A 05310000 L @02,WCEN LOAD CENTURY @01A 05320000 A @02,NINETEEN BUMP CENTURY BY 19 @01A 05330000 CVD @02,WRKWORK CONVERT TO DECIMAL @01A 05340000 UNPK WRKCEN(2),WRKWORK+6(2) UNPACK THE CENTURY @01A 05350000 OI WRKCEN+1,X'F0' ENSURE SIGN NIBBLE @01A 05360000 * 05370000 ********************************************************************** 05380000 * CONVERT THE JOE (JOB OUTPUT ELEMENT) ID'S TO UNPACKED FORMAT 05390000 ********************************************************************** 05400000 LH @14,JSPJGRP1 SET JOE ID 1 TO A FOUR 05410000 ST @14,WRKJID1 BYTE FIELD 05420000 LH @00,JSPJGRP2 SET JOE ID 2 TO A FOUR 05430000 ST @00,WRKJID2 BYTE FIELD 05440000 CVD @14,WRKJIDEC CONVERT JOE ID 1 TO PACKED 05450000 UNPK WRKJID1Z(8),WRKJIDEC(8) UNPACK JOE ID 1 05460000 OI WRKJID1Z+7,X'F0' FORCE SIGN FOR EBCDIC 05470000 CVD @00,WRKJIDEC CONVERT JOE ID 2 TO PACKED 05480000 UNPK WRKJID2Z(8),WRKJIDEC(8) UNPACK JOE ID 2 05490000 OI WRKJID2Z+7,X'F0' FORCE SIGN FOR EBCDIC 05500000 ********************************************************************** 05510000 * COMPOSE THE INFORMATION PRINT LINES 05520000 ********************************************************************** 05530000 MVC PRTSFI(10),SFI03 SET SFI FOR INFO 05540000 * PRINT LINES 05550000 MVC PRTPOS0(8),AMP0 SET PRINT POSITION FOR 05560000 * JOB # LINE 05570000 MVC PRTTRN0(2),TRNP0 SET TRN FOR JOB # LINE 05580000 MVC PRTJNH(14),HEADP0 SET JOB # HEADING 05590000 MVC PRTJN(8),JSPAJBID SET JOB # 05600000 MVC PRTPOS1(8),AMP1 SET PRINT POSITION FOR 05610000 * SYSOUT LINE 05620000 MVC PRTTRN1(2),TRNP1 SET TRN FOR SYSOUT LINE 05630000 MVC PRTSCLH(14),HEADP1 SET SYSOUT HEADING 05640000 MVC PRTSCL(1),JSPJSOCL SET SYSOUT CLASS 05650000 MVC PRTPOS2(8),AMP2 SET PRINT POSITION FOR 05660000 * PRINTER NAME 05670000 MVC PRTTRN2(2),TRNP0 SET TRN FOR PRINTER NAME 05680000 MVC PRTNMH(14),HEADP2 SET PRINTER NAME HEADING 05690000 MVC PRTNM(8),JSPADEVN SET PRINTER NAME 05700000 MVC PRTPOS3(8),AMP3 SET PRINT POSITION FOR 05710000 * SYSTEM ID 05720000 MVC PRTTRN3(2),TRNP3 SET TRN FOR SYSTEM ID 05730000 MVC PRTSIDH(14),HEADP3 SET SYSTEM ID HEADING 05740000 MVC PRTSID(4),JMRCPUID SET SYSTEM ID 05750000 ********************************************************************** 05760000 * When running in an MAS environment and you want the system ID 05770000 * of the system on which the job was printed, uncomment the 05780000 * following 3 lines, compile, and linkedit the exit. @DYA 05790000 ********************************************************************** 05800000 * L @02,CVTPTR LOCATE @DYA 05810000 * L @02,CVTSMCA-CVT(,@02) SMCA @DYA 05820000 * MVC PRTSID(4),SMCASID-SMCABASE(@02) USE SMF ID @DYA 05830000 MVC PRTPOS4(8),AMP4 SET PRINT POSITION FOR 05840000 * PRINT DATE 05850000 MVC PRTTRN4(2),TRNP4 SET TRN FOR PRINT DATE 05860000 MVI PRTDATE,C' ' RESET PRINT DATE 05870000 MVC PRTDATE+1(8),PRTDATE FIELD TO BLANKS 05880000 MVC PRTDATEH(14),HEADP4 SET PRINT DATE HEADING 05890000 MVC PRTDAY(2),WRKDD SET CURRENT DAY 05900000 MVC PRTMTH(3),WRKMMM SET CURRENT MONTH 05910000 MVC PRTCEN(2),WRKCEN SET CURRENT CENTURY @01A 05920000 MVC PRTYR(2),WRKYY SET CURRENT YEAR 05930000 MVC PRTPOS5(8),AMP5 SET PRINT POSITION FOR 05940000 * PRINT TIME 05950000 MVC PRTTRN5(2),TRNP5 SET TRN FOR PRINT TIME 05960000 MVC PRTTIMEH(14),HEADP5 SET PRINT TIME HEADING 05970000 MVC PRTHR(2),WRKHR SET CURRENT HOUR 05980000 MVI PRTCL1,C':' SET COLON BETWEEN HOUR 05990000 * AND MINUTE 06000000 MVC PRTMIN(2),WRKMIN SET CURRENT MINUTE 06010000 MVI PRTCL2,C':' SET COLON BETWEEN MINUTE 06020000 * AND SECOND 06030000 MVC PRTSEC(2),WRKSEC SET CURRENT SECOND 06040000 MVC PRTAMPM(2),WRKAMPM SET CURRENT AM/PM @H9A 06050000 MVC PRTPOS6(8),AMP6 SET PRINT POSITION FOR USER 06060000 * NAME 06070000 MVC PRTTRN6(2),TRNP6 SET TRN FOR USER NAME 06080000 MVC PRTUSRH(14),HEADP6 SET USER NAME HEADING 06090000 MVC PRTUSR(20),JSPJPNAM SET USER NAME 06100000 MVC PRTPOS7(8),AMP7 SET PRINT POSITION FOR JOB 06110000 * NAME 06120000 MVC PRTTRN7(2),TRNP0 SET TRN FOR JOBNAME 06130000 MVC PRTJNMH(14),HEADP7 SET JOB NAME HEADING 06140000 MVC PRTJNM(8),JSPAJBNM SET JOB NAME 06150000 MVC PRTPOS8(8),AMP8 SET PRINT POSITION FOR 06160000 * OUTPUT GROUP 06170000 MVC PRTTRN8(2),TRNP8 SET TRN FOR OUTPUT GROUP 06180000 MVI PRTOG,C' ' RESET OUTPUT GROUP FIELD 06190000 MVC PRTOG+1(15),PRTOG TO BLANKS 06200000 MVC PRTOGH(14),HEADP8 SET OUTPUT GROUP HEADING 06210000 MVC PRTOG1(8),JSPJGRPN SET JOE NAME 06220000 MVC PRTOG2(3),WRKJID1Z+5 SET JOE ID 1 06230000 MVC PRTOG3(3),WRKJID2Z+5 SET JOE ID 2 06240000 MVC PRTPOS9(8),AMP9 SET PRINT POSITION FOR 06250000 * ROOM # 06260000 MVC PRTTRN9(2),TRNP3 SET TRN FOR ROOM # 06270000 MVC PRTROOMH(14),HEADP9 SET ROOM # HEADING 06280000 MVC PRTROOM(4),JSPJRMNO SET ROOM # 06290000 MVC PRTPOS10(8),AMP10 SET PRINT POSITION FOR 06300000 * 'END' 06310000 MVC PRTTRN10(2),TRNP10 SET TRN FOR 'END' 06320000 MVC PRTSEPTY(5),SEPTYPE SEPARATOR PAGE TYPE IS END 06330000 MVC ECARECLN(4),PRTLGTH GET LENGTH OF INFO PRINT 06340000 * LINE 06350000 OI ECADRF,ECADSR INDICATE DATA STREAM REC 06360000 LA @14,PRTCTX GET ADDRESS OF INFO 06370000 ST @14,ECARECAD PRINT LINE 06380000 LR @15,PUTPTR CALL 06390000 BALR @14,@15 APSUPUT 06400000 ********************************************************************** 06410000 * EPILOGUE 06420000 ********************************************************************** 06430000 OUT SLR RTNCODE,RTNCODE RESET RETURN CODE 06440000 L @13,4(,@13) RESTORE CALLERS SAVE AREA 06450000 * ADDRESS 06460000 L @14,12(,@13) RESTORE CALLERS RETURN 06470000 * ADDRESS 06480000 LM @00,@12,20(@13) RESTORE CALLERS REGISTERS 06490000 BR @14 RETURN TO CALLER 06500000 DS 0H 06510000 * 06520000 ********************************************************************** 06530000 * 06540000 * Conditional assembly check for ESS 06550000 * 06560000 * The code between the AIF and the label .NOESS02 will be 06570000 * suppressed if SYSPARM is NULL. 06580000 * 06590000 ********************************************************************** 06600000 * 06610000 AIF ('&SYSPARM' EQ '').NOESS02 Branch - ESS not supp @H9A 06620000 * 06630000 *********************************************************************** 06640000 * * 06650000 * BUILDBOX - Build the detail box and print it on the * 06660000 * separator page. * 06670000 * * 06680000 * FUNCTION: * 06690000 * * 06700000 * This code builds and prints the detail box on the * 06710000 * separator page. * 06720000 * * 06730000 * Addressability to the ECA buffer work area is * 06740000 * established. * 06750000 * * 06760000 * This routine will retrieve the new ESS JCL keywords: * 06770000 * * 06780000 * * ADDRESS * 06790000 * * BUILDING * 06800000 * * DEPARTMENT * 06810000 * * TITLE * 06820000 * * ROOM * 06830000 * * NAME * 06840000 * * 06850000 * and place them on the separator page. The keywords * 06860000 * are retrieved using the Scheduler JCL Facility * 06870000 * SWBTUREQ macro. * 06880000 * * 06890000 * The separator page is formated as a detail box * 06900000 * in place of the repeated 16 lines. * 06910000 * * 06920000 * The new format is only available on: * 06930000 * * 06940000 * * MVS 4.1.0+ * 06950000 * * JES2 4.1.0+ * 06960000 * * JES3 4.2.0+ * 06970000 * * 06980000 * Storage located at the end of ECAWKBUF: * 06990000 * * 07000000 * * SWBTUREQ Parameter List * 07010000 * * SWBTUREQ Work Area * 07020000 * * Keylist * 07030000 * * List of SWBTU pointers * 07040000 * * 07050000 * Storage located in the area pointed to by ECEWKPTR: * 07060000 * * 07070000 * * SWBTUREQ OUTPUT AREA * 07080000 * * 07090000 * OTHER CONSIDERATIONS: * 07100000 * * 07110000 * None * 07120000 * * 07130000 *********************************************************************** 07140000 BUILDBOX DS 0H 07150000 * 07160000 ********************************************************************** 07170000 * Draw boxes 07180000 ********************************************************************** 07190000 * 07200000 BOXES DS 0H @H9A 07210000 USING BOXWRK,ECAWKPTR Base Box Composed-Text@H9A 07220000 * Data Area on ECAWKPTR 07230000 MVC BOXCTXN,ESSBOX Set draw commands CTX @H9A 07240000 LA @14,BOXCTXN Get Boxes CTX Address @H9A 07250000 ST @14,ECARECAD Store Boxes CTX Addr @H9A 07260000 * 07270000 L @14,=A(ESSLNGTH) Set length @H9A 07280000 ST @14,ECARECLN of record @H9A 07290000 * 07300000 MVI ECADRF,X'00' Reset Record Desc @H9A 07310000 OI ECADRF,ECADSR Set Data Stream Flag @H9A 07320000 OI ECADRF,ECAANSI Set ANSI Carriage Cntl@H9A 07330000 * 07340000 L @15,ECAPUTP Call @H9A 07350000 BALR @14,@15 APSUPUT @H9A 07360000 * 07370000 LTR @15,@15 Check APSUPUT Rtn Code@H9A 07380000 BNZ OUT IF NOT Zero, EXIT @H9A 07390000 * 07400000 ********************************************************************** 07410000 * OBTAIN TIME AND DATE 07420000 * 07430000 * The date is returned in register 1 as packed decimal @01A 07440000 * digits of the form: @01A 07450000 * @01A 07460000 * 0CYYDDDF where @01A 07470000 * @01A 07480000 * C is a digit representing centuries beyond the twentieth. @01A 07490000 * In the years 1900 through 1999, C = 0. In the years @01A 07500000 * 2000 through 2099, C = 1. @01A 07510000 * YY is the last 2 digits of the year. @01A 07520000 * DDD is the day of the year. @01A 07530000 * F is a 4-bit sign character that allows the data to be @01A 07540000 * unpacked and printed. @01A 07550000 * 07560000 ********************************************************************** 07570000 * 07580000 USING PRTWRK,ECAWKPTR BASE INFO PRINT LINE @H9P 07590000 * CTX ON ECAWKPTR @H9P 07600000 LA @01,2 @H9P 07610000 SLR @00,@00 RESET R0 @H9P 07620000 SVC 11 ISSUE TIME SVC @H9P 07630000 STCM @01,15,WRKDATE SAVE THE DATE @H9P 07640000 * (PACKED DEC) @H9P 07650000 * 07660000 ********************************************************************** 07670000 * ADJUST TIME FOR AM/PM 07680000 ********************************************************************** 07690000 * 07700000 MVI PRTTIME,C' ' RESET PRINT TIME IN @H9P 07710000 MVC PRTTIME+1(10),PRTTIME THE OUTPUT @H9P 07720000 LA WRKPTR,WRKTIME SET R2 TO ADDRESS OF @H9P 07730000 * TIME WORK AREA @H9P 07740000 LA AMPMPTR,WRKAMPM SET R8 TO ADD OF AM/PM@H9A 07750000 * WORK AREA @H9P 07760000 MVC WRKAMPM(2),AM INIT TO AM @H9A 07770000 CL @00,=X'12000000' TEST FOR ZERO HOURS @H9P 07780000 BL PMORNIN BRANCH IF AM @H9P 07790000 MVI 0(@08),C'P' CHANGE FROM AM TO PM @H9P 07800000 SL @00,=X'12000000' SUBTRACT TWELVE HOURS @H9P 07810000 PMORNIN ST @00,0(,@02) STORE ADJUSTED TIME @H9P 07820000 CLI 0(@02),X'00' TEST FOR ZERO HOURS @H9P 07830000 BNE PADJERR1 BR IF NOT TO TEST ADJ @H9P 07840000 * ERROR @H9P 07850000 MVI 0(@02),X'12' CONVERT ZERO TO TWELVE@H9P 07860000 PADJERR1 TM 0(@02),X'08' TEST FOR ADJUSTMENT @H9P 07870000 * ERRORS 07880000 BZ PEDTIME1 BRANCH IF NO ERROR @H9P 07890000 NI 0(@02),X'09' CORRECT FOR BIN. @H9P 07900000 * SUBTRACT ERROR @H9P 07910000 PEDTIME1 DS 0H @H9P 07920000 MVI WRKTH,X'0C' RESET LOW ORDER 2 @H9P 07930000 * BYTES WITH SIGN FOR @H9P 07940000 * PACK DEC @H9P 07950000 UNPK WRKUTIME(7),WRKTIME(4) UNPACK TIME @H9P 07960000 * 07970000 ********************************************************************** 07980000 * OBTAIN MONTH, DAY AND YEAR 07990000 ********************************************************************** 08000000 * 08010000 LA @01,4 ADDRESSABILITY TO @H9P 08020000 AL @01,ECAUCOMP JULIAN TABLE @H9P 08030000 MVC WRKJTBL(48),DAYTBL(@01) COPY TABLE FOR LEAP @H9P 08040000 * YEAR ADJUSTMENT @H9P 08050000 MVC WRKWORK+4(4),WRKDATE OBTAIN DATE FROM SAVED@H9P 08060000 * AREA @H9P 08070000 TM WRKWORK+5,X'01' TEST @H9P 08080000 BO NOLEPYR FOR @H9P 08090000 TM WRKWORK+5,X'12' LEAP @H9P 08100000 BM NOLEPYR YEAR @H9P 08110000 MVI WRKJTBL+4,29 ADJUST FEB FOR LEAP @H9P 08120000 * YEAR @H9P 08130000 NOLEPYR MVC WRKED(3),=X'F02120' PLACE PATTERN FOR EDIT@01C 08140000 ED WRKED(3),WRKWORK+5 EDIT THE YEAR @01C 08150000 MVC WRKYY(2),WRKED+1 STORE THE YEAR @01A 08160000 MVC WRKWORK(6),ZEROES RESET ALL BUT JULIAN @H9P 08170000 * DATE @H9P 08180000 SLR @00,@00 CLEAR FOR IC @H9P 08190000 CVB 1,WRKWORK CONVERT TO BINARY DAY @H9P 08200000 LA 2,WRKJTBL-4 ADDRESS OF DATE @H9P 08210000 * CONVERSION TABLE @H9P 08220000 SEARCH1 SLR @01,@00 CONVERT @H9P 08230000 LA @02,4(,@02) JULIAN DAY @H9P 08240000 IC @00,0(,@02) TO @H9P 08250000 CLR @00,@01 STANDARD DAY @H9P 08260000 BL SEARCH1 @H9P 08270000 CVD 1,WRKWORK CONVERT TO DECIMAL DAY@H9P 08280000 UNPK WRKDD(2),WRKWORK+6(2) UNPACK THE DAY @H9P 08290000 OI WRKDD+1,X'F0' INSURE SIGN NIBBLE @H9P 08300000 MVC WRKMMM(3),1(@02) SET EBCIDIC ALPHA @H9P 08310000 * MONTH 08320000 MVC WCEN(4),XZERO CLEAR CENTURY FIELD @01A 08330000 MVC WCEN+3(1),WRKDATE OBTAIN CENTURY FROM @01A 08340000 * SAVED AREA @01A 08350000 L @02,WCEN LOAD CENTURY @01A 08360000 A @02,NINETEEN BUMP CENTURY BY 19 @01A 08370000 CVD @02,WRKWORK CONVERT TO DECIMAL @01A 08380000 UNPK WRKCEN(2),WRKWORK+6(2) UNPACK THE CENTURY @01A 08390000 OI WRKCEN+1,X'F0' ENSURE SIGN NIBBLE @01A 08400000 * 08410000 ********************************************************************** 08420000 * CONVERT THE JOE (JOB OUTPUT ELEMENT) ID'S TO UNPACKED FORMAT 08430000 ********************************************************************** 08440000 * 08450000 LH @14,JSPJGRP1 Get JOE ID1 @H9A 08460000 ST @14,WRKJID1 Store in 4 byte field @H9A 08470000 CVD @14,WRKJIDEC Convert to pkd decimal@H9A 08480000 UNPK WRKJID1Z,WRKJIDEC+5(3) Unpack NODE2 @H9A 08490000 OI WRKJID1Z+7,X'F0' Insure positive sign @H9A 08500000 * 08510000 LH @00,JSPJGRP2 Get JOE ID2 @H9A 08520000 ST @00,WRKJID2 Store in 4 byte field @H9A 08530000 CVD @00,WRKJIDEC Convert to pkd decimal@H9A 08540000 UNPK WRKJID2Z,WRKJIDEC+5(3) Unpack GRP NODE3 @H9A 08550000 OI WRKJID2Z+7,X'F0' Insure positive sign @H9A 08560000 * 08570000 ********************************************************************** 08580000 * * 08590000 * Fill in the SWBTUREQ RETRIEVE parameter list, IEFSJTRP. * 08600000 * * 08610000 * * 08620000 ********************************************************************** 08630000 * 08640000 XC SJTRP(SJTRLGTH),SJTRP Clear parameter list @H9A 08650000 MVC SJTRID,=A(SJTRCID) Assign function @H9A 08660000 MVI SJTRVERS,SJTRCVER Assign version number @H9A 08670000 LA @01,SJTRLGTH Set parameter list @H9A 08680000 STH @01,SJTRLEN length @H9A 08690000 * 08700000 * The Work Area is a 1K work area in ECAWKBUF that is used as 08710000 * a work area by the SWBTUREQ macro. 08720000 * 08730000 USING SWBTUWS,@02 Establish @H9A 08740000 LA @02,ECAWKBUF addressability @H9A 08750000 * 08760000 LA @01,SWBTUWS Set work area @H9A 08770000 ST @01,SJTRSTOR address @H9A 08780000 L @01,=A(PRTWRKLN) Set work area @H9A 08790000 STH @01,SJTRSTSZ length @H9A 08800000 * 08810000 LA @01,1 Indicate only ONE @H9A 08820000 STH @01,SJTRSWBN SWBTU pointer @H9A 08830000 LA @01,SBTLAREA Set SWBTU addr. list @H9A 08840000 ST @01,SJTRSWBA address (SJTRSBTL) @H9A 08850000 * 08860000 LA @01,6 Indicate six keys in @H9A 08870000 STH @01,SJTRKIDN key list @H9A 08880000 LA @01,KEYLIST Set key list @H9A 08890000 ST @01,SJTRKIDL address @H9A 08900000 ST @01,WRKKYLST Save keylist address @H9A 08910000 * 08920000 USING APSUECE,@02 Get addressability @H9A 08930000 L @02,ECAECEP to ECE @H9A 08940000 * 08950000 * This is a 1K Text Unit Output Area where the parameters are 08960000 * returned by the SWBTUREQ macro. 08970000 * 08980000 L @01,ECEWKPTR Set output area @H9A 08990000 ST @01,SJTRAREA address @H9A 09000000 L @01,ECEWKLEN Set output area @H9A 09010000 STH @01,SJTRSIZE length @H9A 09020000 * 09030000 ********************************************************************** 09040000 * * 09050000 * Initialize the SWBTU pointer list * 09060000 * * 09070000 ********************************************************************** 09080000 * 09090000 USING SJTRSBTL,@07 Establish @H9A 09100000 LA @07,SBTLAREA addressability @H9A 09110000 * 09120000 XC SBTLAREA(L'SBTLAREA),SBTLAREA Clear SWBTU list @H9A 09130000 * 09140000 * Set the address of the area containing the SWBTU data from the 09150000 * JCL for the SWBTURQ macro. 09160000 * 09170000 MVC SJTRSTUP,ECETUPTR Set input SWBTU ptr @H9A 09180000 DROP @07 09190000 DROP @02 @H9A 09200000 * 09210000 ********************************************************************** 09220000 * * 09230000 * Insert the keys for all of the ESS * 09240000 * parameters being used into the key list. * 09250000 * * 09260000 ********************************************************************** 09270000 * 09280000 $JTRKEYL DS 0H 09290000 USING SJTRKEYL,@07 Establish @H9A 09300000 L @07,WRKKYLST addressability 09310000 * 09320000 XC SJTRKEYL(6*SJTRKLEN),SJTRKEYL Clear key list @H9A 09330000 * 09340000 LA @01,DOTITLE Request @H9A 09350000 STH @01,SJTRKYID+KYLSTTL TITLE key @H9A 09360000 * 09370000 LA @01,DONAME Request @H9A 09380000 STH @01,SJTRKYID+KYLSTNM NAME key @H9A 09390000 * 09400000 LA @01,DOROOM Request @H9A 09410000 STH @01,SJTRKYID+KYLSTRM ROOM key @H9A 09420000 * 09430000 LA @01,DOBUILD Request @H9A 09440000 STH @01,SJTRKYID+KYLSTBL BUILDING key @H9A 09450000 * 09460000 LA @01,DODEPT Request @H9A 09470000 STH @01,SJTRKYID+KYLSTDP DEPARTMENT key @H9A 09480000 * 09490000 LA @01,DOADDRES Request @H9A 09500000 STH @01,SJTRKYID+KYLSTAD ADDRESS key @H9A 09510000 * 09520000 DROP @07 09530000 * 09540000 ********************************************************************** 09550000 * * 09560000 * INVOKE the SWBTUREQ REQUEST=RETRIEVE Macro * 09570000 * ------------------------------------------ * 09580000 * * 09590000 * Set up R1 to point to a word of storage that * 09600000 * contains the address of the parameter list, IEFSJTRP. * 09610000 * * 09620000 ********************************************************************** 09630000 * 09640000 MVI SWBERR,C'N' Initialize to no @H9A 09650000 * SWBTUREQ error 09660000 * 09670000 LA @01,SJTRP Address of @H9A 09680000 ST @01,WRKPLPTR the SWBTUREQ @H9A 09690000 LA @01,WRKPLPTR parameter list @H9A 09700000 * 09710000 * 09720000 SWBTUREQ REQUEST=RETRIEVE INVOKE the Macro @H9A 09730000 * 09740000 * 09750000 C @15,FOUR Check return code @H9A 09760000 BL ESSINFO GOOD retrieval @H9A 09770000 * 09780000 * No keys matched indicates that none of the JCL keywords 09790000 * were specified on the OUTPUT JCL. No error message is 09800000 * printed. Instead the keywords are just left blank on the 09810000 * header sheet. 09820000 * 09830000 CLC SJTRREAS,=A(SJTRNOKY) No keys matched? @H9A 09840000 BE ESSINFO YES---Go to ESSINFO @H9A 09850000 * 09860000 ********************************************************************** 09870000 * * 09880000 * If the SWBTUREQ returns an error, the detail box is * 09890000 * still printed. An error message is printed on the * 09900000 * ADDRESS line. * 09910000 * * 09920000 * NOTE: The PSF-supplied exits should not receive any * 09930000 * errors from the SWBTUREQ. This code is mainly * 09940000 * supplied for diagnostic purposes when changing * 09950000 * the exit. * 09960000 * * 09970000 ********************************************************************** 09980000 * 09990000 REQ_BAD DS 0H 10000000 CVD @15,DBLWORD Convert to pkd dec. @H9A 10010000 MVC FULLWORD(4),DBLWORD+4 Move packed ret. cde @H9A 10020000 UNPK DBLWORD,FULLWORD Unpack return code @H9A 10030000 MVZ DBLWORD+7(1),DBLWORD+6 Correct the sign @H9A 10040000 * 10050000 MVC SWBRC(4),DBLWORD+4 Save return code @H9A 10060000 * 10070000 LH @01,SJTRREAS Load reason code 10080000 CVD @01,DBLWORD Convert to pkd dec. @H9A 10090000 MVC FULLWORD(4),DBLWORD+4 Move packed reas. cde @H9A 10100000 UNPK DBLWORD,FULLWORD Unpack reason code 10110000 MVZ DBLWORD+7(1),DBLWORD+6 Correct the sign @H9A 10120000 * 10130000 MVC SWBRS(4),DBLWORD+4 Save reason code @H9A 10140000 * 10150000 MVI SWBERR,C'Y' Indicate a SWBTUREQ @H9A 10160000 * error occurred and 10170000 * a msg is required 10180000 * 10190000 ********************************************************************** 10200000 * Compose the ESS Detail Box * 10210000 ********************************************************************** 10220000 * 10230000 ESSINFO DS 0H @H9A 10240000 LA @00,PRTWRKE @ of Info Print Lines @H9A 10250000 L @01,=A(PRTWRKLN) Len of Info Print Line@H9A 10260000 LA @14,ESSAREA @ of ESS Detail Box @H9A 10270000 L @15,=A(ESSDLNTH) Len of ESS Detail Box @H9A 10280000 ICM @15,B'1000',BLANKS Set pad char to blank @H9A 10290000 MVCL @00,@14 Compose ESS Detail Box@H9A 10300000 * 10310000 ********************************************************************** 10320000 * Compose JOB NUMBER data * 10330000 ********************************************************************** 10340000 * 10350000 #JOBID DS 0H @H9A 10360000 MVC PRTJNE(8),JSPAJBID Set JOB NUMBER @H9A 10370000 * 10380000 ********************************************************************** 10390000 * Compose SEGMENT ID data * 10400000 ********************************************************************** 10410000 * 10420000 TM JSPAFLG1,JSPA1EXT Does JSP Ext Exist? @H9A 10430000 BZ #JOBNAME NO--Branch #JOBNAME @H9A 10440000 * 10450000 USING JSPEXT,@07 Est. Addressability @H9A 10460000 LR @07,@11 Load JSPA Address @H9A 10470000 AH @07,JSPALEN Add JSPA Length @H9A 10480000 * 10490000 CLC JSPCESEG,XZERO Is this SYSOUT segm? @H9A 10500000 BE #JOBNAME NO--Omit SEGMENT ID @H9A 10510000 MVC PRTSEGH(14),LBLSEGID Set SEGMENT ID label @H9A 10520000 * 10530000 L @14,JSPCESEG Load R14 with SEGMENT#@H9A 10540000 CVD @14,DBLWORD Convert to pkd decimal@H9A 10550000 CP DBLWORD,PZERO Is SEGMENT# < 0 ? @H9A 10560000 BL NVALSEGM Yes --branch NVALSEGM @H9A 10570000 CP DBLWORD,MAXSEG# Is SEGMENT# > 99999 ? @H9A 10580000 BNH #SEGMENT NO--branch #SEGMENT @H9A 10590000 DROP @07 10600000 * 10610000 NVALSEGM MVC PRTSEGID(5),=C'*****' Not valid SEGMENT @H9A 10620000 B #JOBNAME Branch #JOBNAME @H9A 10630000 #SEGMENT DS 0H 10640000 UNPK PRTSEGID,DBLWORD+5(3) Put SEGMENT ID @H9A 10650000 OI PRTSEGID+4,X'F0' Insure prtable number @H9A 10660000 * 10670000 ********************************************************************** 10680000 * Compose JOB NAME data 10690000 ********************************************************************** 10700000 * 10710000 #JOBNAME DS 0H @H9A 10720000 MVC PRTJNME(8),JSPAJBNM Set JOB NAME @H9A 10730000 * 10740000 ********************************************************************** 10750000 * Compose USER ID data 10760000 ********************************************************************** 10770000 * 10780000 #USERID DS 0H @H9A 10790000 TM JSPAFLG1,JSPA1EXT Does JSP Ext Exist? @H9A 10800000 BZ #SYSOUT NO--Branch #SYSOUT @H9A 10810000 * 10820000 USING JSPEXT,@07 Est. Addressability @H9A 10830000 LR @07,@11 Load JSPA Address @H9A 10840000 AH @07,JSPALEN Add JSPA Length @H9A 10850000 * 10860000 MVC PRTUSER(8),JSPCEUID Put USER ID @H9A 10870000 DROP @07 @H9A 10880000 * 10890000 ********************************************************************** 10900000 * Compose SYSOUT CLASS data 10910000 ********************************************************************** 10920000 * 10930000 #SYSOUT DS 0H @H9A 10940000 MVC PRTSCLE(1),JSPJSOCL Set SYSOUT CLASS @H9A 10950000 * 10960000 ********************************************************************** 10970000 * Compose OUTPUT GROUP data 10980000 ********************************************************************** 10990000 * 11000000 #OUTPUTG DS 0H @H9A 11010000 MVC PRTOG1E(8),JSPJGRPN Set JOE NAME @H9A 11020000 MVI PRTOG1E+8,C'.' Set separator @H9A 11030000 MVC PRTOG2E(5),WRKJID1Z+3 Set JOE ID#1 @H9A 11040000 MVI PRTOG2E+5,C'.' Set separator @H9A 11050000 MVC PRTOG3E(5),WRKJID2Z+3 Set JOE ID#2 @H9A 11060000 * 11070000 ********************************************************************** 11080000 * Compose TITLE data 11090000 ********************************************************************** 11100000 * 11110000 #TITLE DS 0H @H9A 11120000 USING SJTRKEYL,@02 Est. addressability @H9A 11130000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 11140000 BZ #DEST Branch if no KEYLIST @H9A 11150000 * 11160000 LA @02,KYLSTTL(,@02) Locate addr of TITLE @H9A 11170000 * key in the KEYLIST @H9A 11180000 ICM @01,B'1111',SJTRTPAD Load TITLE TU address @H9A 11190000 BZ #DEST Branch if no TITLE @H9A 11200000 * 11210000 LA @06,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9a 11220000 LA @00,PRTTITLE Addr of rcving field @H9A 11230000 LA @01,L'PRTTITLE Length of rcving field@H9A 11240000 * 11250000 BAL @08,MOVETU Get TITLE data from TU@H9A 11260000 DROP @02 11270000 * 11280000 ********************************************************************** 11290000 * Compose DESTINATION data * 11300000 ********************************************************************** 11310000 * 11320000 #DEST DS 0H @H9A 11330000 MVC PRTDEST(8),JSPJGRPD Put DESTINATION @H9A 11340000 * 11350000 ********************************************************************** 11360000 * Compose NAME data * 11370000 ********************************************************************** 11380000 * 11390000 #NAME DS 0H @H9A 11400000 * 11410000 USING SJTRKEYL,@02 Est. addressability @H9A 11420000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 11430000 BZ NONAME Branch if no KEYLIST @H9A 11440000 * 11450000 LA @02,KYLSTNM(,@02) Locate address of NAME@H9A 11460000 * key in the KEYLIST @H9A 11470000 ICM @01,B'1111',SJTRTPAD Load NAME TU address @H9A 11480000 BZ NONAME Branch if no NAME @H9A 11490000 * 11500000 LA @06,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9A 11510000 LA @00,PRTNAME Addr of rcving field @H9A 11520000 LA @01,L'PRTNAME Length of rcving field@H9A 11530000 * 11540000 BAL @08,MOVETU Get NAME from TU @H9A 11550000 B #ROOM Branch #ROOM @H9A 11560000 * 11570000 NONAME DS 0H @H9A 11580000 MVC PRTNAME(L'JSPJPNAM),JSPJPNAM Put NAME from JSPA @H9A 11590000 DROP @02 @H9A 11600000 * 11610000 ********************************************************************** 11620000 * Compose ROOM data 11630000 ********************************************************************** 11640000 * 11650000 #ROOM DS 0H @H9A 11660000 USING SJTRKEYL,@02 Est. addressability @H9A 11670000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 11680000 BZ NOROOM Branch if no KEYLIST @H9A 11690000 * 11700000 LA @02,KYLSTRM(,@02) Locate address of ROOM@H9A 11710000 * key in the KEYLIST @H9A 11720000 ICM @01,B'1111',SJTRTPAD Load ROOM TU address @H9A 11730000 BZ NOROOM Branch if no ROOM @H9A 11740000 * 11750000 LA @06,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9A 11760000 LA @00,PRTROOME Addr of rcving field @H9A 11770000 LA @01,L'PRTROOME Length of rcving field@H9A 11780000 * 11790000 BAL @08,MOVETU Get ROOM data from TU @H9A 11800000 B #BLDG Branch to #BLDG @H9A 11810000 NOROOM DS 0H @H9A 11820000 MVC PRTROOME(L'JSPJRMNO),JSPJRMNO Set from job stmt @H9A 11830000 DROP @02 @H9A 11840000 * 11850000 ********************************************************************** 11860000 * Compose BUILDING data * 11870000 ********************************************************************** 11880000 * 11890000 #BLDG DS 0H @H9A 11900000 USING SJTRKEYL,@02 Est addressability @H9A 11910000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 11920000 BZ #DEPT Branch if no KEYLIST @H9A 11930000 * 11940000 LA @02,KYLSTBL(,@02) Locate address of BLDG@H9A 11950000 * key in the KEYLIST @H9A 11960000 ICM @01,B'1111',SJTRTPAD Load BLDG TU address @H9A 11970000 BZ #DEPT Branch if no BLDG @H9A 11980000 * 11990000 LA @06,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9A 12000000 LA @00,PRTBLDG Addr of rcving field @H9A 12010000 LA @01,L'PRTBLDG Length of rcving field@H9A 12020000 * 12030000 BAL @08,MOVETU Get BLDG data from TU @H9A 12040000 DROP @02 @H9A 12050000 * 12060000 ********************************************************************** 12070000 * Compose DEPARTMENT data * 12080000 ********************************************************************** 12090000 * 12100000 #DEPT DS 0H 12110000 USING SJTRKEYL,@02 Est addressability @H9A 12120000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 12130000 BZ #ADDRESS Branch if no KEYLIST @H9A 12140000 * 12150000 LA @02,KYLSTDP(,@02) Locate address of DEPT@H9A 12160000 * key in the KEYLIST @H9A 12170000 ICM @01,B'1111',SJTRTPAD Load DEPT TU address @H9A 12180000 BZ #ADDRESS Branch if no DEPT @H9A 12190000 * 12200000 LA @06,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9A 12210000 LA @00,PRTDEPT Addr of rcving field @H9A 12220000 LA @01,L'PRTDEPT Length of rcving field@H9A 12230000 * 12240000 BAL @08,MOVETU Get DEPT data from TU @H9A 12250000 DROP @02 @H9A 12260000 * 12270000 ********************************************************************** 12280000 * * 12290000 * BUILD AND PRINT ADDRESS LINES * 12300000 * ----------------------------- * 12310000 * The address can be from 1 to 4 lines long. Any lines * 12320000 * that are unused must be printed as blank lines, but the * 12330000 * label "ADDRESS:" must appear on the first line even if * 12340000 * no address was specified on the OUTPUT JCL. * 12350000 * * 12360000 * A blank line is printed after the four ADDRESS lines. * 12370000 * * 12380000 * If the SWBTUREQ macro returned an error, the ADDRESS * 12390000 * line is not printed. An error message is printed * 12400000 * in the four lines that would have contained the ADDRESS. * 12410000 * * 12420000 ********************************************************************** 12430000 * 12440000 ********************************************************************** 12450000 * Check for SWBTUREQ error * 12460000 ********************************************************************** 12470000 * 12480000 #ADDRESS DS 0H @H9A 12490000 CLI SWBERR,C'Y' SWBTUREQ error ? @H9A 12500000 BNE ADDRLBL NO-Go print ADDR label@H9A 12510000 * 12520000 ********************************************************************** 12530000 * Compose the SWBTUREQ error message * 12540000 ********************************************************************** 12550000 * 12560000 MVC PRTADDR1(60),LBMSG Set error message text@H9A 12570000 MVC PRTADDR2(L'LBRC),LBRC Set RETURN CODE label @H9A 12580000 MVC PRTADDR2+13(L'SWBRC),SWBRC Set SWBTUREQ return cd@H9A 12590000 MVC PRTADDR3(L'LBRS),LBRS Set REASON CODE label @H9A 12600000 MVC PRTADDR3+13(L'SWBRS),SWBRS Set SWBTUREQ reason cd@H9A 12610000 B PTIME Branch to compose TIME@H9A 12620000 * 12630000 ********************************************************************** 12640000 * Compose ADDRESS data * 12650000 ********************************************************************** 12660000 * 12670000 ADDRLBL DS 0H 12680000 USING SJTRKEYL,@02 Est addressability @H9A 12690000 ICM @02,B'1111',WRKKYLST Load KEYLIST address @H9A 12700000 BZ PTIME Branch if no KEYLIST @H9A 12710000 * 12720000 LA @02,KYLSTAD(,@02) Locate address of ADDR@H9A 12730000 * key in the KEYLIST @H9A 12740000 ICM @01,B'1111',SJTRTPAD Load ADDRESS#1 TU addr@H9A 12750000 BZ PTIME Branch if no ADDRESS#1@H9A 12760000 * 12770000 LH @07,DOCNTNUM-DOCNUNIT(,@01) Load number of ADDRESS@H9A 12780000 * TU pairs 12790000 LTR @07,@07 Number of TU pairs >0?@H9A 12800000 BZ PTIME Branch if no ADDRESS#1@H9A 12810000 * 12820000 LA @01,DOCNTENT-DOCNUNIT(,@01) Addr of TEXT UNIT pair@H9A 12830000 LR @06,@01 Save TEXT UNIT pr addr@H9A 12840000 LA @00,PRTADDR1 Addr of rcving field @H9A 12850000 LA @01,L'PRTADDR1 Length of rcving field@H9A 12860000 BAL @08,MOVETU Get ADDR data from TU @H9A 12870000 * 12880000 BCT @07,#ADDR2 Subt 1 and GOTO #ADDR2@H9A 12890000 B PTIME When zero-branch PTIME@H9A 12900000 * 12910000 #ADDR2 DS 0H 12920000 USING DOCNTFLD,@06 Est addressability @H9A 12930000 LH @15,DOCNTLEN Bump down to next @H9A 12940000 LA @06,L'DOCNTLEN(@15,@06) ADDR length/data pair@H9A 12950000 * 12960000 LA @00,PRTADDR2 Addr of rcving field @H9A 12970000 LA @01,L'PRTADDR2 Length of rcving field@H9A 12980000 BAL @08,MOVETU Get ADDR data from TU @H9A 12990000 * 13000000 BCT @07,#ADDR3 Subt 1 and GOTO #ADDR3@H9A 13010000 B PTIME When zero-branch PTIME@H9A 13020000 * 13030000 #ADDR3 DS 0H @H9A 13040000 LH @15,DOCNTLEN Bump down to next @H9A 13050000 LA @06,L'DOCNTLEN(@15,@06) ADDR length/data pair@H9A 13060000 * 13070000 LA @00,PRTADDR3 Addr of rcving field @H9A 13080000 LA @01,L'PRTADDR3 Length of rcving field@H9A 13090000 * 13100000 BAL @08,MOVETU Get ADDR data from TU @H9A 13110000 * 13120000 BCT @07,#ADDR4 Subt 1 and GOTO #ADDR4@H9A 13130000 B PTIME When zero-branch PTIME@H9A 13140000 #ADDR4 DS 0H @H9A 13150000 LH @15,DOCNTLEN Bump down to next @H9A 13160000 LA @06,L'DOCNTLEN(@15,@06) ADDR length/data pair@H9A 13170000 * 13180000 LA @00,PRTADDR4 Addr of rcving field @H9A 13190000 LA @01,L'PRTADDR4 Length of rcving field@H9A 13200000 * 13210000 BAL @08,MOVETU Get ADDR data from TU @H9A 13220000 DROP @06 @H9A 13230000 DROP @02 @H9A 13240000 * 13250000 ********************************************************************** 13260000 * COMPOSE PRINT TIME 13270000 ********************************************************************** 13280000 * 13290000 PTIME DS 0H @H9A 13300000 * 13310000 MVC PRTHRE(2),WRKHR Set current hour @H9A 13320000 MVI PRTTS1,X'7A' Set time separator @H9A 13330000 MVC PRTMINE(2),WRKMIN Set current minute @H9A 13340000 MVI PRTTS2,X'7A' Set time separator @H9A 13350000 MVC PRTSECE(2),WRKSEC Set current second @H9A 13360000 MVC PRTAMPME(2),WRKAMPM Set AM/PM @H9A 13370000 * 13380000 ********************************************************************** 13390000 * COMPOSE PRINT DATE 13400000 ********************************************************************** 13410000 * 13420000 PDATE DS 0H @H9A 13430000 * 13440000 MVC PRTDDD(2),WRKDD Put today's DAY @H9A 13450000 MVC PRTMMM(3),WRKMMM Put today's MONTH @H9A 13460000 MVC PRTCCC(2),WRKCEN Put today's CENTURY @01A 13470000 MVC PRTYYY(2),WRKYY Put today's YEAR @H9A 13480000 * 13490000 ********************************************************************** 13500000 * Compose PRINTER ID 13510000 ********************************************************************** 13520000 * 13530000 #PRINTER DS 0H @H9A 13540000 MVC PRTNME(8),JSPADEVN Printer name @H9A 13550000 * 13560000 ********************************************************************** 13570000 * Compose SYSTEM ID 13580000 ********************************************************************** 13590000 * 13600000 #SYSID DS 0H @H9A 13610000 USING JMR,@07 Base JMR @H9A 13620000 L @07,JSPAJMR Load address of JMR @H9A 13630000 MVC PRTSIDE(4),JMRCPUID SYSTEM ID @H9A 13640000 ********************************************************************** 13650000 * When running in an MAS environment and you want the system ID 13660000 * of the system on which the job was printed, uncomment the 13670000 * following 3 lines, compile, and linkedit the exit. @DYA 13680000 ********************************************************************** 13690000 * L @02,CVTPTR LOCATE @DYA 13700000 * L @02,CVTSMCA-CVT(,@02) SMCA @DYA 13710000 * MVC PRTSIDE(4),SMCASID-SMCABASE(@02) USE SMF ID @DYA 13720000 DROP @07 @H9A 13730000 * 13740000 ********************************************************************** 13750000 * Compose START/CONT tag * 13760000 ********************************************************************** 13770000 * 13780000 #TAG DS 0H 13790000 MVC PRTTAG(5),SEPTYPE Move in END tag @H9A 13800000 * 13810000 ********************************************************************** 13820000 * Write the detail box CTX * 13830000 ********************************************************************** 13840000 * 13850000 PRT_CTX DS 0H @H9A 13860000 L @14,=A(PRTWRKLN) Get lngth of info line@H9A 13870000 ST @14,ECARECLN Str lngth of info line@H9A 13880000 * 13890000 OI ECADRF,ECADSR Indicate data strm rec@H9A 13900000 OI ECADRF,ECAANSI Set ANSI CHAR cntrl @H9A 13910000 * 13920000 LA @14,PRTWRKE Get addr of info line @H9A 13930000 ST @14,ECARECAD Store info line addr @H9A 13940000 * 13950000 L @15,ECAPUTP CALL @H9A 13960000 BALR @14,@15 APSUPUT @H9A 13970000 B OUT Branch to PSF @H9A 13980000 EJECT 13990000 * 14000000 *********************************************************************** 14010000 * * 14020000 * MOVETU - Move the TU text from the TU output area to the * 14030000 * detail box. * 14040000 * * 14050000 * FUNCTION: * 14060000 * * 14070000 * This subroutine is called to move the TU text from the * 14080000 * TU output area to the detail box. Since * 14090000 * TUs are variable length (up to sixty characters long), * 14100000 * the detail line is padded with blanks on the right after * 14110000 * the move is performed. * 14120000 * * 14130000 * LINKAGE: * 14140000 * * 14150000 * Accessed via BAL using the label as the entry address * 14160000 * and register 8 as the return address. * 14170000 * * 14180000 * INPUT: * 14190000 * R0 - Address of the receiving field * 14200000 * R1 - Length of the receiving field * 14210000 * R6 - Address of TU length/parameter pair * 14220000 * * 14230000 * OUTPUT: * 14240000 * The text from the TU parameter is copied into the * 14250000 * detail box. * 14260000 * * 14270000 * REGISTER USAGE: * 14280000 * * 14290000 * REG VALUE ON ENTRY VALUE ON EXIT * 14300000 * * 14310000 * R0 Rcving Field Address Unchanged * 14320000 * R1 Rcving Field Length Unchanged * 14330000 * R2-R5 N/A Unchanged * 14340000 * R6 Length/parameter pair Unchanged * 14350000 * R7 N/A Unchanged * 14360000 * R8 Return Address Unchanged * 14370000 * R9-R13 N/A Unchanged * 14380000 * R14-R15 N/A Destroyed * 14390000 * * 14400000 * RETURN CODES: * 14410000 * * 14420000 * None * 14430000 * * 14440000 * OTHER CONSIDERATIONS: * 14450000 * * 14460000 * None * 14470000 * * 14480000 *********************************************************************** 14490000 * 14500000 MOVETU DS 0H @H9A 14510000 USING DOCNTFLD,@06 Est addressability @H9A 14520000 LA @14,DOCNTPRM Load TU text address @H9A 14530000 LH @15,DOCNTLEN Length of TU text @H9A 14540000 ICM @15,B'1000',BLANKS Set pad char to blank @H9A 14550000 * 14560000 * @00 POINTS TO THE RECEIVING FIELD 14570000 * @01 CONTAINS LENGTH OF THE RECEIVING FIELD 14580000 * 14590000 MVCL @00,@14 Move the TU text @H9A 14600000 BR @08 Return to caller @H9A 14610000 DROP @06 @H9A 14620000 * 14630000 ********************************************************************** 14640000 * 14650000 .NOESS02 ANOP @H9A 14660000 * 14670000 ********************************************************************** 14680000 * 14690000 PSIZE EQU ((*-APSUX02+99)/100)*5 PATCH AREA SIZE 14700000 DC C'PATCH AREA - APSUX02 88.XXX' 14710000 PSPACE DC 25S(*) PATCH AREA 14720000 ORG PSPACE 14730000 DC ((PSIZE+1)/2)S(*) 14740000 ORG , 14750000 DATA DS 0H 14760000 ********************************************************************** 14770000 * MISC CONSTANTS 14780000 ********************************************************************** 14790000 NINEFOUR DC H'94' BLOCK LETTER LINE LENGTH + 14800000 * LENGTH OF TEXT CONTROL 14810000 BEG DC H'926' POINTER TO THE BEGINNING 14820000 * OF THE LAST LINE OF BLOCK 14830000 * LETTERS 14840000 END DC H'1009' POINTER TO THE END OF THE 14850000 * LAST LINE OF BLOCK LETTER 14860000 LINELGTH DC F'84' BLOCK LETTER LINE LENGTH 14870000 CTXLGTH DC F'184' LENGTH OF COMPOSED TEXT 14880000 * DATA AREA FOR BOXES 14890000 PRTLGTH DC F'356' LENGTH OF COMPOSED TEXT 14900000 * DATA AREA FOR INFO 14910000 * PRINT LINES @01C 14920000 BLKLGTH DC F'1138' LENGTH OF COMPOSED TEXT 14930000 * DATA AREA FOR BLOCK 14940000 * LETTERS 14950000 BLANKS DC CL8' ' Constant eight X'40' @H9A 14960000 XZERO DC F'0' Constant X'00' @H9A 14970000 FOUR DC F'4' Constant 4 @H9A 14980000 NINETEEN DC F'19' @01A 14990000 MAXSEG# DC PL8'99999' @H9A 15000000 PZERO DC PL8'00000' @H9A 15010000 * 15020000 LBLSEGID DC C'SEGMENT ID: ' SEGMENT ID label @H9A 15030000 * 15040000 LBMSG DC CL(L'PRTADDR1)'EXIT ERROR -- SWBTUREQ MACRO FAILED' 15050000 * 15060000 LBRC DC CL12'RETURN CODE:' @H9A 15070000 LBRS DC CL12'REASON CODE:' @H9A 15080000 * 15090000 ********************************************************************** 15100000 * INFORMATION PRINT LINE HEADINGS 15110000 ********************************************************************** 15120000 HEADP0 DC C'JOB NUMBER: ' 15130000 HEADP1 DC C'SYSOUT CLASS: ' 15140000 HEADP2 DC C'PRINTER: ' 15150000 HEADP3 DC C'SYSTEM ID: ' 15160000 HEADP4 DC C'PRINT DATE: ' 15170000 HEADP5 DC C'PRINT TIME: ' 15180000 HEADP6 DC C'USER: ' 15190000 HEADP7 DC C'JOB NAME: ' 15200000 HEADP8 DC C'OUTPUT GROUP: ' 15210000 HEADP9 DC C'ROOM: ' 15220000 SEPTYPE DC C' END ' 15230000 AM DC C'AM' 15240000 ********************************************************************** 15250000 * TEXT CONTROL CONSTANTS (Original Header Sheet) 15260000 ********************************************************************** 15270000 DRB2 DC X'07E7068F00090007E506BC000900' DRAW 15280000 DRB4 DC X'07E5F944FFF70007E7F971FFF700' RULE 15290000 DRB6 DC X'07E7003600090007E500B4000900' TEXT 15300000 DRB8 DC X'07E70036FFF700' CONTROLS 15310000 DRT2 DC X'07E704B000030007E5067C000300' TO 15320000 DRT4 DC X'07E7FB70FFFD0007E5F984FFFD00' PRINT 15330000 DRT6 DC X'07E701A4000300' BOLD 15340000 DRT8 DC X'07E7FE2000030007E502EEFFFD00' AND THIN 15350000 DRT0 DC X'07E7FE20FFFD0007E5FD20FFFD00' BOXES 15360000 SFI01 DC X'00B8D3EE9B0006002BD3' STRUCTURE FIELD INTRODUCER 15370000 * FOR BOXES 15380000 SFI02 DC X'0472D3EE9B0005002BD3' STRUCTURE FIELD INTRODUCER 15390000 * FOR BLOCK LETTERS 15400000 SFI03 DC X'0164D3EE9B0009002BD3' STRUCTURE FIELD INTRODUCER 15410000 * FOR INFO LINES @01C 15420000 AMB1 DC X'04D3000004C70042' ABSULUTE 15430000 AMB3 DC X'04D3068F04C706FE' MOVE 15440000 AMB5 DC X'04D3065404C7034F' INLINES 15450000 AMB7 DC X'04C70403' AND 15460000 AMT1 DC X'04D3002004C70062' ABSOLUTE 15470000 AMT3 DC X'04D304B004C706DE' MOVE 15480000 AMT5 DC X'04C703A8' BASELINES 15490000 AMT7 DC X'04C7006204D3066F' TO 15500000 AMT9 DC X'04C706DE' CONTROL 15510000 AMP0 DC X'04D3050A04C700D2' THE 15520000 AMP1 DC X'04D3054604C700D2' STARTING 15530000 AMP2 DC X'04D3058204C700D2' POSITIONS 15540000 AMP3 DC X'04D305BE04C700D2' FOR 15550000 AMP4 DC X'04D305FA04C700D2' THE 15560000 AMP5 DC X'04D3063604C700D2' DRAW 15570000 AMP6 DC X'04D3050A04C7041A' RULES 15580000 AMP7 DC X'04D3054604C7041A' 15590000 AMP8 DC X'04D3058204C7041A' 15600000 AMP9 DC X'04D305BE04C7041A' 15610000 AMP10 DC X'04D3068104C70375' 15620000 YPOS1 DC X'04D5001404C70073' RELATIVE MOVE INLINE AND 15630000 * ABSOLUTE MOVE BASELINE FOR 15640000 * LINES 2-12 OF BLK LETTERS 15650000 YPOS2 DC X'04D30168' ABSOLUTE MOVE INLINE FOR 15660000 * LINE 1 OF BLK LETTERS 15670000 NOP DC X'02F8' 15680000 SLL DC X'0073' INLINE POSITION-SLANT LEFT 15690000 SLC DC X'005A' INLINE POSITION-SLANT CENTER 15700000 STL DC X'00C9' INLINE POSITION-STRAIGHT LEFT 15710000 STC DC X'0056' INLINE POSITION-STRAIGHT CENTER 15720000 TRN1 DC X'56DB' TRN FOR 15730000 TRN2 DC X'56DA' BLOCK LETTERS 15740000 TRNP0 DC X'18DB' TRN FOR JOB #, PRINTER NAME 15750000 TRNP1 DC X'11DB' TRN FOR SYSOUT CLASS 15760000 TRNP3 DC X'14DB' TRN FOR SYSTEM ID 15770000 TRNP4 DC X'1BDB' TRN FOR PRINT DATE @01C 15780000 TRNP5 DC X'1BDB' TRN FOR PRINT TIME 15790000 TRNP6 DC X'24DB' TRN FOR USER NAME 15800000 TRNP8 DC X'20DB' TRN FOR OUTPUT GROUP 15810000 TRNP10 DC X'07DA' TRN FOR 'END' 15820000 ZEROES DC X'000000000000' 15830000 * 15840000 ********************************************************************** 15850000 * 15860000 * Conditional assembly check for ESS 15870000 * 15880000 * The code between the AIF and the label .NOESS03 will be 15890000 * suppressed if SYSPARM is NULL. 15900000 * 15910000 ********************************************************************** 15920000 * 15930000 AIF ('&SYSPARM' EQ '').NOESS03 Branch - ESS not supp @H9A 15940000 * 15950000 ********************************************************************** 15960000 * Key list equates * 15970000 ********************************************************************** 15980000 * 15990000 KYLSTTL EQU 0*SJTRKLEN Title key @H9A 16000000 KYLSTNM EQU 1*SJTRKLEN Name key @H9A 16010000 KYLSTRM EQU 2*SJTRKLEN Room key @H9A 16020000 KYLSTBL EQU 3*SJTRKLEN Building key @H9A 16030000 KYLSTDP EQU 4*SJTRKLEN Dept key @H9A 16040000 KYLSTAD EQU 5*SJTRKLEN Address key @H9A 16050000 * 16060000 ********************************************************************** 16070000 * 16080000 .NOESS03 ANOP @H9A 16090000 * 16100000 ********************************************************************** 16110000 * Constants for AFPDS 16120000 ********************************************************************** 16130000 * 16140000 AMB EQU X'04D3' Absolute move baseline @H9A 16150000 AMI EQU X'04C7' Absolute move inline @H9A 16160000 RMB EQU X'04D5' Relative move baseline @H9A 16170000 DBR EQU X'07E7' Draw baseline rule @H9A 16180000 DIR EQU X'07E5' Draw inline rule @H9A 16190000 BOLD EQU 9 Bold line 9 l-units wide @H9A 16200000 THIN EQU 3 Thin line 3 l-units wide @H9A 16210000 * 16220000 ********************************************************************** 16230000 * EQUATES FOR REGISTERS 0-15 16240000 ********************************************************************** 16250000 @00 EQU 00 16260000 @01 EQU 01 16270000 @02 EQU 02 16280000 @03 EQU 03 16290000 @04 EQU 04 16300000 @05 EQU 05 16310000 @06 EQU 06 16320000 @07 EQU 07 16330000 @08 EQU 08 16340000 @09 EQU 09 16350000 @10 EQU 10 16360000 @11 EQU 11 16370000 @12 EQU 12 16380000 @13 EQU 13 16390000 @14 EQU 14 16400000 @15 EQU 15 16410000 ********************************************************************** 16420000 * POINTER REGISTERS AND ROUTINES 16430000 ********************************************************************** 16440000 JSPAPTR EQU @11 JSPA POINTER 16450000 PUTPTR EQU @10 APSUPUT POINTER 16460000 WRKPTR EQU @02 WORK AREA POINTER 16470000 AMPMPTR EQU @08 POINTER TO AM/PM AREA @H9A 16480000 * IN INFO PRINT LINE 16490000 XTPPTR EQU @04 APSGEXTP POINTER 16500000 ECAPTR EQU @05 APSUECA POINTER 16510000 JMRPTR EQU @07 IEFJMR POINTER 16520000 ECAWKPTR EQU @09 ECA WORK BUF POINTER 16530000 RTNCODE EQU @15 RETURN CODE 16540000 APSUPUT EQU 0 PUT RECORD TO PSF ROUTINE 16550000 APSUBLK EQU 0 CREATE BLK LETTER ROUTINE 16560000 DAYTBL EQU 0 LEAP YEAR ADJUSTMENT TABLE 16570000 BLKPTR EQU ECABLKP APSUBLK POINTER 16580000 BUFWRK EQU ECAWKBUF 16590000 BLKCHAR EQU BUFWRK BUFFER FOR BLK LETTERS 16600000 * 16610000 ********************************************************************** 16620000 * Constants to draw boxes (ESS) 16630000 ********************************************************************** 16640000 * 16650000 ESSBOX DS 0H AFPDS to draw boxes @H9A 16660000 DC X'5A' Carriage control @H9A 16670000 ESSLEN DC AL2(ESSLNGTH-1) Length of data @H9A 16680000 DC X'D3EE9B0000012BD3' CTX structured field @H9A 16690000 * introducer for boxes @H9A 16700000 DC AL2(AMB) Position @H9A 16710000 DC AL2(0) baseline 0 l-units @H9A 16720000 DC AL2(AMI) and @H9A 16730000 DC AL2(66) inline 66 l-units @H9A 16740000 DC AL2(DBR) Draw @H9A 16750000 DC AL2(1679) left side (1679 l-units) @H9A 16760000 DC AL2(BOLD) of outer box @H9A 16770000 DC AL1(0) @H9A 16780000 DC AL2(DIR) Draw @H9A 16790000 DC AL2(1724) top side (1724 l-units) @H9A 16800000 DC AL2(BOLD) of outer box @H9A 16810000 DC AL1(0) @H9A 16820000 DC AL2(AMB) Position @H9A 16830000 DC AL2(1679) baseline 1679 l-units @H9A 16840000 DC AL2(AMI) and @H9A 16850000 DC AL2(1790) inline 1790 l-units @H9A 16860000 DC AL2(DIR) Draw @H9A 16870000 DC AL2(-1724) bottom side (-1724) @H9A 16880000 DC AL2(-BOLD) of outer box @H9A 16890000 DC AL1(0) @H9A 16900000 DC AL2(DBR) Draw @H9A 16910000 DC AL2(-1679) right side (-1679) @H9A 16920000 DC AL2(-BOLD) of outer box @H9A 16930000 DC AL1(0) @H9A 16940000 DC AL2(AMB) Position @H9A 16950000 DC AL2(1620) baseline 1620 l-units @H9A 16960000 DC AL2(AMI) and @H9A 16970000 DC AL2(847) inline 847 l-units @H9A 16980000 DC AL2(DBR) Draw @H9A 16990000 DC AL2(54) left side (54 l-units) @H9A 17000000 DC AL2(BOLD) of "START/CONT" box @H9A 17010000 DC AL1(0) @H9A 17020000 DC AL2(DIR) Draw @H9A 17030000 DC AL2(180) top side (180 l-units) @H9A 17040000 DC AL2(BOLD) of "START/CONT" box @H9A 17050000 DC AL1(0) @H9A 17060000 DC AL2(AMI) Position @H9A 17070000 DC AL2(1027) inline 1027 l-units @H9A 17080000 DC AL2(DBR) Draw @H9A 17090000 DC AL2(54) right side (54 l-units) @H9A 17100000 DC AL2(-BOLD) of "START/CONT" box @H9A 17110000 DC AL1(0) @H9A 17120000 DC AL2(AMB) Position @H9A 17130000 DC AL2(32) baseline 32 l-units @H9A 17140000 DC AL2(AMI) and @H9A 17150000 DC AL2(98) inline 98 l-units @H9A 17160000 DC AL2(DBR) Draw @H9A 17170000 DC AL2(780) upper left side (780) @H9A 17180000 DC AL2(THIN) of thin inner box @H9A 17190000 DC AL1(0) @H9A 17200000 DC AL2(DIR) Draw @H9A 17210000 DC AL2(1660) top side (1660 l-units) @H9A 17220000 DC AL2(THIN) of thin inner box @H9A 17230000 DC AL1(0) @H9A 17240000 DC AL2(AMB) Position @H9A 17250000 DC AL2(812) baseline 812 l-units @H9A 17260000 DC AL2(AMI) and @H9A 17270000 DC AL2(1758) inline 1758 l-units @H9A 17280000 DC AL2(DBR) Draw @H9A 17290000 DC AL2(-780) upper right side (-780) @H9A 17300000 DC AL2(-THIN) of thin inner box @H9A 17310000 DC AL1(0) @H9A 17320000 DC AL2(DIR) Draw @H9A 17330000 DC AL2(-1660) middle divider (-1660) @H9A 17340000 DC AL2(-THIN) of thin inner box @H9A 17350000 DC AL1(0) @H9A 17360000 DC AL2(AMB) Position @H9A 17370000 DC AL2(1647) baseline 1647 l-units @H9A 17380000 DC AL2(AMI) and @H9A 17390000 DC AL2(98) inline 98 l-units @H9A 17400000 DC AL2(DBR) Draw @H9A 17410000 DC AL2(-835) lower left side (-835) @H9A 17420000 DC AL2(THIN) of thin inner box @H9A 17430000 DC AL1(0) @H9A 17440000 DC AL2(DIR) Draw @H9A 17450000 DC AL2(750) left bottom side (750) @H9A 17460000 DC AL2(-THIN) of thin inner box @H9A 17470000 DC AL1(0) @H9A 17480000 DC AL2(AMB) Position @H9A 17490000 DC AL2(1647) baseline 1647 l-units @H9A 17500000 DC AL2(AMI) and @H9A 17510000 DC AL2(1758) inline 1758 l-units @H9A 17520000 DC AL2(DBR) Draw @H9A 17530000 DC AL2(-835) lower right side (-835) @H9A 17540000 DC AL2(-THIN) of thin inner box @H9A 17550000 DC AL1(0) @H9A 17560000 DC AL2(DIR) Draw @H9A 17570000 DC AL2(-736) right bottom side (-736)@H9A 17580000 DC AL2(-THIN) of thin inner box @H9A 17590000 DC AL1(0) @H9A 17600000 DC X'02F8' NOP, UNCHAINED @H9A 17610000 ESSLNGTH EQU *-ESSBOX @H9A 17620000 * 17630000 ********************************************************************** 17640000 * Constants for ESS Detail Box * 17650000 ********************************************************************** 17660000 * 17670000 ESSAREA DS 0H AFPDS for ESS box lines @H9A 17680000 DC X'5A' Carriage control @H9A 17690000 ESSDLEN DC AL2(ESSDLNTH-1) Length @H9A 17700000 DC X'D3EE9B0000032BD3' CTX introducer @H9A 17710000 * for ESS lines @H9A 17720000 DC AL2(AMI) Set inline @H9A 17730000 DC AL2(128) for JOB NUMBER @H9A 17740000 DC AL2(AMB) Set baseline @H9A 17750000 DC AL2(900) for JOB NUMBER @H9A 17760000 DC X'19DB' TRN @H9A 17770000 DC C'JOBID ' Heading @H9A 17780000 DC CL8' ' JOB NUMBER @H9A 17790000 * @H9A 17800000 DC AL2(AMI) Set inline @H9A 17810000 DC AL2(128) for JOB NAME @H9A 17820000 DC AL2(AMB) Set baseline @H9A 17830000 DC AL2(930) for JOB NAME @H9A 17840000 DC X'19DB' TRN @H9A 17850000 DC C'JOB NAME: ' Heading @H9A 17860000 DC CL8' ' JOB NAME @H9A 17870000 * @H9A 17880000 DC AL2(AMI) Set inline @H9A 17890000 DC AL2(128) for USER ID @H9A 17900000 DC AL2(AMB) Set baseline @H9A 17910000 DC AL2(960) for USER ID @H9A 17920000 DC X'19DB' TRN @H9A 17930000 DC C'USERID: ' Heading @H9A 17940000 DC CL8' ' USERID @H9A 17950000 * @H9A 17960000 DC AL2(AMI) Set inline @H9A 17970000 DC AL2(128) for SYSOUT CLASS @H9A 17980000 DC AL2(AMB) Set baseline @H9A 17990000 DC AL2(990) for SYSOUT CLASS @H9A 18000000 DC X'12DB' TRN @H9A 18010000 DC C'SYSOUT CLASS: ' Heading @H9A 18020000 DC CL1' ' SYSOUT CLASS @H9A 18030000 * @H9A 18040000 DC AL2(AMI) Set inline @H9A 18050000 DC AL2(128) for OUTPUT GRP @H9A 18060000 DC AL2(AMB) Set baseline @H9A 18070000 DC AL2(1020) for OUTPUT GRP @H9A 18080000 DC X'25DB' TRN @H9A 18090000 DC C'OUTPUT GROUP: ' Heading @H9A 18100000 DC CL20' ' OUTPUT GROUP @H9A 18110000 * @H9A 18120000 DC AL2(AMI) Set inline @H9A 18130000 DC AL2(128) for TITLE @H9A 18140000 DC AL2(AMB) Set baseline @H9A 18150000 DC AL2(1050) for TITLE @H9A 18160000 DC X'4DDB' TRN @H9A 18170000 DC C'TITLE: ' Heading @H9A 18180000 DC CL60' ' TITLE @H9A 18190000 * @H9A 18200000 DC AL2(AMI) Set inline @H9A 18210000 DC AL2(128) for DESTINATION @H9A 18220000 DC AL2(AMB) Set baseline @H9A 18230000 DC AL2(1110) for DESTINATION @H9A 18240000 DC X'19DB' TRN @H9A 18250000 DC C'DESTINATION: ' Heading @H9A 18260000 DC CL8' ' DESTINATION @H9A 18270000 * @H9A 18280000 DC AL2(AMI) Set inline @H9A 18290000 DC AL2(128) for NAME @H9A 18300000 DC AL2(AMB) Set baseline @H9A 18310000 DC AL2(1140) for NAME @H9A 18320000 DC X'4DDB' TRN @H9A 18330000 DC C'NAME: ' Heading @H9A 18340000 DC CL60' ' NAME @H9A 18350000 * @H9A 18360000 DC AL2(AMI) Set inline @H9A 18370000 DC AL2(128) for ROOM @H9A 18380000 DC AL2(AMB) Set baseline @H9A 18390000 DC AL2(1170) for ROOM @H9A 18400000 DC X'4DDB' TRN @H9A 18410000 DC C'ROOM: ' Heading @H9A 18420000 DC CL60' ' ROOM @H9A 18430000 * @H9A 18440000 DC AL2(AMI) Set inline @H9A 18450000 DC AL2(128) for BUILD @H9A 18460000 DC AL2(AMB) Set baseline @H9A 18470000 DC AL2(1200) for BUILD @H9A 18480000 DC X'4DDB' TRN @H9A 18490000 DC C'BUILDING: ' Heading @H9A 18500000 DC CL60' ' BUILDING @H9A 18510000 * @H9A 18520000 DC AL2(AMI) Set inline @H9A 18530000 DC AL2(128) for DEPT @H9A 18540000 DC AL2(AMB) Set baseline @H9A 18550000 DC AL2(1230) for DEPT @H9A 18560000 DC X'4DDB' TRN @H9A 18570000 DC C'DEPARTMENT: ' Heading @H9A 18580000 DC CL60' ' DEPARTMENT data @H9A 18590000 * @H9A 18600000 DC AL2(AMI) Set inline @H9A 18610000 DC AL2(128) for ADDR line #1 @H9A 18620000 DC AL2(AMB) Set baseline @H9A 18630000 DC AL2(1260) for ADDR line #1 @H9A 18640000 DC X'4DDB' TRN @H9A 18650000 DC C'ADDRESS: ' Heading @H9A 18660000 DC CL60' ' ADDR line #1 data @H9A 18670000 * @H9A 18680000 DC AL2(AMI) Set inline @H9A 18690000 DC AL2(128) for ADDR line #2 @H9A 18700000 DC AL2(AMB) Set baseline @H9A 18710000 DC AL2(1290) for ADDR line #2 @H9A 18720000 DC X'4DDB' TRN @H9A 18730000 DC C' ' Heading @H9A 18740000 DC CL60' ' ADDR line #2 data @H9A 18750000 * @H9A 18760000 DC AL2(AMI) Set inline @H9A 18770000 DC AL2(128) for ADDR line #3 @H9A 18780000 DC AL2(AMB) Set baseline @H9A 18790000 DC AL2(1320) for ADDR line #3 @H9A 18800000 DC X'4DDB' TRN @H9A 18810000 DC C' ' Heading @H9A 18820000 DC CL60' ' ADDR line #3 data @H9A 18830000 * @H9A 18840000 DC AL2(AMI) Set inline @H9A 18850000 DC AL2(128) for ADDR line #4 @H9A 18860000 DC AL2(AMB) Set baseline @H9A 18870000 DC AL2(1350) for ADDR line #4 @H9A 18880000 DC X'4DDB' TRN @H9A 18890000 DC C' ' Heading @H9A 18900000 DC CL60' ' ADDR line #4 data @H9A 18910000 * @H9A 18920000 DC AL2(AMI) Set inline @H9A 18930000 DC AL2(128) for PRINT TIME @H9A 18940000 DC AL2(AMB) Set baseline @H9A 18950000 DC AL2(1410) for PRINT TIME @H9A 18960000 DC X'1CDB' TRN @H9A 18970000 DC C'PRINT TIME: ' Heading @H9A 18980000 DC CL11' ' PRINT TIME @H9A 18990000 * @H9A 19000000 DC AL2(AMI) Set inline @H9A 19010000 DC AL2(128) for PRINT DATE @H9A 19020000 DC AL2(AMB) Set baseline @H9A 19030000 DC AL2(1440) for PRINT DATE @H9A 19040000 DC X'1CDB' TRN @01C 19050000 DC C'PRINT DATE: ' Heading @H9A 19060000 DC CL11' ' PRINT DATE @01C 19070000 * @H9A 19080000 DC AL2(AMI) Set inline @H9A 19090000 DC AL2(128) for PRINTER @H9A 19100000 DC AL2(AMB) Set baseline @H9A 19110000 DC AL2(1470) for PRINTER @H9A 19120000 DC X'19DB' TRN @H9A 19130000 DC C'PRINTER: ' Heading @H9A 19140000 DC CL8' ' PRINTER @H9A 19150000 * @H9A 19160000 DC AL2(AMI) Set inline @H9A 19170000 DC AL2(128) for SYSTEM ID @H9A 19180000 DC AL2(AMB) Set baseline @H9A 19190000 DC AL2(1500) for SYSTEM ID @H9A 19200000 DC X'15DB' TRN @H9A 19210000 DC C'SYSTEM ID: ' Heading @H9A 19220000 DC CL4' ' SYSTEM ID @H9A 19230000 * @H9A 19240000 DC AL2(AMI) Set inline @H9A 19250000 DC AL2(885) for "START" / "CONT" @H9A 19260000 DC AL2(AMB) Set baseline @H9A 19270000 DC AL2(1665) for "START" / "CONT" @H9A 19280000 DC X'07DB' TRN @H9A 19290000 DC CL5' ' "START" or "CONT" @H9A 19300000 * @H9A 19310000 DC AL2(AMI) Set inline @H9A 19320000 DC AL2(860) for SEGMENT ID @H9A 19330000 DC AL2(AMB) Set baseline @H9A 19340000 DC AL2(900) for SEGMENT ID @H9A 19350000 DC X'15DB' TRN @H9A 19360000 DC CL15' ' Heading @H9A 19370000 DC CL4' ' SEGMENT ID @H9A 19380000 * @H9A 19390000 DC X'02F8' NOP, UNCHAINED @H9A 19400000 ESSDLNTH EQU *-ESSAREA @H9A 19410000 * 19420000 ********************************************************************** 19430000 * COMPOSED TEXT DATA AREA FOR BOXES (Both Trailer Sheets) 19440000 ********************************************************************** 19450000 BOXCTX DSECT 19460000 BOXSFI DS CL10 19470000 BOXBOLD DS CL77 19480000 ORG BOXBOLD 19490000 BOXB1 DS CL8 19500000 BOXB2 DS CL14 19510000 BOXB3 DS CL8 19520000 BOXB4 DS CL14 19530000 BOXB5 DS CL8 19540000 BOXB6 DS CL14 19550000 BOXB7 DS CL4 19560000 BOXB8 DS CL7 19570000 BOXTHIN DS CL95 19580000 ORG BOXTHIN 19590000 BOXT1 DS CL8 19600000 BOXT2 DS CL14 19610000 BOXT3 DS CL8 19620000 BOXT4 DS CL14 19630000 BOXT5 DS CL4 19640000 BOXT6 DS CL7 19650000 BOXT7 DS CL8 19660000 BOXT8 DS CL14 19670000 BOXT9 DS CL4 19680000 BOXT0 DS CL14 19690000 BOXNOP DS CL2 19700000 ********************************************************************** 19710000 * COMPOSED TEXT DATA AREA FOR BLOCK LETTERS (Both Trailer Sheets) 19720000 ********************************************************************** 19730000 BLKWRK DSECT 19740000 DS CL200 19750000 BLKCTX DS CL1138 19760000 ORG BLKCTX 19770000 BLKSFI DS CL10 19780000 BLKPRINT DS CL94 19790000 ORG BLKPRINT 19800000 BLKPOS DS CL8 19810000 ORG BLKPOS 19820000 BLKY DS CL4 19830000 DS CL2 19840000 BLKX DS CL2 19850000 BLKTRN DS CL2 19860000 BLKTEXT DS CL84 19870000 * THE MAPPING OF BLKPRINT WILL REPEAT 11 TIMES MORE FOLLOWING HERE 19880000 * TO REPRESENT 12 BLOCK LETTER LINES 19890000 ********************************************************************** 19900000 * MISC VARIABLES FOR BLOCK LETTER PROCESSING 19910000 ********************************************************************** 19920000 ORG BLKWRK+1338 19930000 FROM DS H 19940000 TO DS H 19950000 XPOS DS CL2 19960000 TEMPBUF DS CL84 19970000 * 19980000 ********************************************************************** 19990000 * COMPOSED TEXT DATA AREA FOR BOXES (ESS) 20000000 ********************************************************************** 20010000 * 20020000 BOXWRK DSECT @H9A 20030000 BOXCTXN DS CL(ESSLNGTH) @H9A 20040000 BOXWRKLN EQU *-BOXWRK @H9A 20050000 * 20060000 ********************************************************************** 20070000 * COMPOSED TEST DATA AREA FOR INFORMATION PRINT LINES (Original) 20080000 ********************************************************************** 20090000 PRTWRK DSECT 20100000 PRTCTX DS CL356 @01C 20110000 ORG PRTCTX 20120000 PRTSFI DS CL10 COMPOSED-TEXT CONTROL 20130000 PRTPOS0 DS CL8 PRINT POSITION FOR JOB # 20140000 PRTTRN0 DS CL2 TRN FOR JOB # 20150000 PRTJNH DS CL14 JOB # HEADING 20160000 PRTJN DS CL8 JOB # 20170000 PRTPOS1 DS CL8 PRINT POSITION FOR SYSOUT 20180000 * CLASS 20190000 PRTTRN1 DS CL2 TRN FOR SYSOUT CLASS 20200000 PRTSCLH DS CL14 SYSOUT CLASS HEADING 20210000 PRTSCL DS CL1 SYSOUT CLASS 20220000 PRTPOS2 DS CL8 PRINT POSITION FOR PRINTER 20230000 * NAME 20240000 PRTTRN2 DS CL2 TRN FOR PRINTER NAME 20250000 PRTNMH DS CL14 PRINTER NAME HEADING 20260000 PRTNM DS CL8 PRINTER NAME 20270000 PRTPOS3 DS CL8 PRINT POSITION FOR SYS ID 20280000 PRTTRN3 DS CL2 TRN FOR SYS ID 20290000 PRTSIDH DS CL14 SYS ID HEADING 20300000 PRTSID DS CL4 SYS ID 20310000 PRTPOS4 DS CL8 PRINT POSITION FOR PRINT 20320000 * DATE 20330000 PRTTRN4 DS CL2 TRN FOR PRINT DATE 20340000 PRTDATEH DS CL14 PRINT DATE HEADING 20350000 PRTDATE DS CL11 PRINT DATE @01C 20360000 ORG PRTDATE 20370000 PRTDAY DS CL2 DAY 20380000 DS CL1 SPACE 20390000 PRTMTH DS CL3 MONTH 20400000 DS CL1 SPACE 20410000 PRTCEN DS CL2 CENTURY @01A 20420000 PRTYR DS CL2 YEAR 20430000 PRTPOS5 DS CL8 PRINT POSITION FOR PRINT 20440000 * TIME 20450000 PRTTRN5 DS CL2 TRN FOR PRINT TIME 20460000 PRTTIMEH DS CL14 PRINT TIME HEADING 20470000 PRTTIME DS CL11 PRINT TIME 20480000 ORG PRTTIME 20490000 PRTHR DS CL2 HOUR 20500000 PRTCL1 DS CL1 COLON 20510000 PRTMIN DS CL2 MINUTE 20520000 PRTCL2 DS CL1 COLON 20530000 PRTSEC DS CL2 SECOND 20540000 DS CL1 20550000 PRTAMPM DS CL2 AM/PM 20560000 PRTPOS6 DS CL8 PRINT POSITION FOR USER 20570000 * NAME 20580000 PRTTRN6 DS CL2 TRN FOR USER NAME 20590000 PRTUSRH DS CL14 USER NAME HEADING 20600000 PRTUSR DS CL20 USER NAME 20610000 PRTPOS7 DS CL8 PRINT POSITION FOR JOB NAME 20620000 PRTTRN7 DS CL2 TRN FOR JOB NAME 20630000 PRTJNMH DS CL14 JOB NAME HEADING 20640000 PRTJNM DS CL8 JOB NAME 20650000 PRTPOS8 DS CL8 PRINT POSITION FOR OUTPUT 20660000 * GROUP 20670000 PRTTRN8 DS CL2 TRN FOR OUTPUT GROUP 20680000 PRTOGH DS CL14 OUTPUT GROUP HEADING 20690000 PRTOG DS CL16 OUTPUT GROUP 20700000 ORG PRTOG 20710000 PRTOG1 DS CL8 JOE NAME 20720000 DS CL1 20730000 PRTOG2 DS CL3 20740000 DS CL1 JOE ID 1 20750000 PRTOG3 DS CL3 JOE ID 2 20760000 PRTPOS9 DS CL8 PRINT POSITION FOR ROOM # 20770000 PRTTRN9 DS CL2 TRN FOR ROOM # 20780000 PRTROOMH DS CL14 ROOM # HEADING 20790000 PRTROOM DS CL4 ROOM # 20800000 PRTPOS10 DS CL8 PRINT POSITION FOR 20810000 * 'END' 20820000 PRTTRN10 DS CL2 TRN FOR 'END' 20830000 PRTSEPTY DS CL5 SEPARATOR PAGE TYPE 20840000 * 20850000 ********************************************************************** 20860000 * Composed text data area for information print lines (ESS) 20870000 ********************************************************************** 20880000 * 20890000 PRTWRKE EQU PRTCTX @H9A 20900000 ORG PRTCTX @H9A 20910000 PRTSFIE DS CL11 Composed-text control @H9A 20920000 *********************************** 20930000 PRTPOS0E DS CL8 Print position for @H9A 20940000 * JOB NUMBER @H9A 20950000 PRTTRN0E DS CL2 TRN for JOB NUMBER @H9A 20960000 PRTJNHE DS CL15 JOB NUMBER heading @H9A 20970000 PRTJNE DS CL8 JOB NUMBER @H9A 20980000 *********************************** 20990000 PRTPOS1E DS CL8 Print position for @H9A 21000000 * JOB NAME @H9A 21010000 PRTTRN1E DS CL2 TRN for JOB NAME @H9A 21020000 PRTJNMHE DS CL15 JOB NAME heading @H9A 21030000 PRTJNME DS CL8 JOB NAME @H9A 21040000 *********************************** 21050000 PRTPOS2E DS CL8 Print position for @H9A 21060000 * USER ID @H9A 21070000 PRTTRN2E DS CL2 TRN for USER ID @H9A 21080000 PRTUSERH DS CL15 USER ID heading @H9A 21090000 PRTUSER DS CL8 USER ID @H9A 21100000 *********************************** 21110000 PRTPOS3E DS CL8 Print position for @H9A 21120000 * SYSOUT CLASS @H9A 21130000 PRTTRN3E DS CL2 TRN for SYSOUT CLASS @H9A 21140000 PRTSCLHE DS CL15 SYSOUT CLASS heading @H9A 21150000 PRTSCLE DS CL1 SYSOUT CLASS @H9A 21160000 *********************************** 21170000 PRTOG$ DS CL45 OUTPUT GROUP string @H9A 21180000 ORG PRTOG$ @H9A 21190000 PRTPOS4E DS CL8 Print position for @H9A 21200000 * OUTPUT GROUP @H9A 21210000 PRTTRN4E DS CL2 TRN for OUTPUT GROUP @H9A 21220000 PRTOGHE DS CL15 OUTPUT GROUP heading @H9A 21230000 PRTOG1E DS CL8 JOE NAME @H9A 21240000 DS CL1 @H9A 21250000 PRTOG2E DS CL5 JOE ID#1 @H9A 21260000 DS CL1 @H9A 21270000 PRTOG3E DS CL5 JOE ID#2 @H9A 21280000 *********************************** 21290000 PRTPOS5E DS CL8 Print position for @H9A 21300000 * TITLE @H9A 21310000 PRTTRN5E DS CL2 TRN for TITLE @H9A 21320000 PRTTITLH DS CL15 TITLE heading @H9A 21330000 PRTTITLE DS CL60 TITLE @H9A 21340000 *********************************** 21350000 PRTPOS6E DS CL8 Print position for @H9A 21360000 * DESTINATION @H9A 21370000 PRTTRN6E DS CL2 TRN for DESTINATION @H9A 21380000 PRTDESTH DS CL15 DESTINATION heading @H9A 21390000 PRTDEST DS CL8 DESTINATION @H9A 21400000 *********************************** 21410000 PRTPOS7E DS CL8 Print position for @H9A 21420000 * NAME @H9A 21430000 PRTTRN7E DS CL2 TRN for NAME @H9A 21440000 PRTNAMEH DS CL15 NAME heading @H9A 21450000 PRTNAME DS CL60 NAME @H9A 21460000 *********************************** 21470000 PRTPOS8E DS CL8 Print position for @H9A 21480000 * ROOM @H9A 21490000 PRTTRN8E DS CL2 TRN for ROOM @H9A 21500000 PRTROMHE DS CL15 ROOM heading @H9A 21510000 PRTROOME DS CL60 ROOM @H9A 21520000 *********************************** 21530000 PRTPOS9E DS CL8 Print position for @H9A 21540000 * BUILDING @H9A 21550000 PRTTRN9E DS CL2 TRN for BUILDING @H9A 21560000 PRTBLDGH DS CL15 BLDG heading @H9A 21570000 PRTBLDG DS CL60 BUILDING @H9A 21580000 *********************************** 21590000 PRTPOSTE DS CL8 Print position for @H9A 21600000 * DEPARTMENT @H9A 21610000 PRTTRNTE DS CL2 TRN for DEPARTMENT @H9A 21620000 PRTDEPTH DS CL15 DEPT heading @H9A 21630000 PRTDEPT DS CL60 DEPARTMENT @H9A 21640000 *********************************** 21650000 PRTADDR$ DS CL340 ADDRESS#1-#4 string @H9A 21660000 ORG PRTADDR$ 21670000 PRTPOS11 DS CL8 Print position for @H9A 21680000 * ADDRESS#1 @H9A 21690000 PRTTRN11 DS CL2 TRN for ADDRESS#1 @H9A 21700000 PRTADDRH DS CL15 ADDR#1 heading @H9A 21710000 PRTADDR1 DS CL60 ADDRESS#1 @H9A 21720000 *********************************** 21730000 PRTPOS12 DS CL8 Print position for @H9A 21740000 * ADDRESS#2 @H9A 21750000 PRTTRN12 DS CL2 TRN for ADDRESS#2 @H9A 21760000 DS CL15 ADDR#2 heading @H9A 21770000 PRTADDR2 DS CL60 ADDRESS#2 @H9A 21780000 *********************************** 21790000 PRTPOS13 DS CL8 Print position for @H9A 21800000 * ADDRESS#3 @H9A 21810000 PRTTRN13 DS CL2 TRN for ADDRESS#3 @H9A 21820000 DS CL15 ADDR#3 heading @H9A 21830000 PRTADDR3 DS CL60 ADDRESS#3 @H9A 21840000 *********************************** 21850000 PRTPOS14 DS CL8 Print position for @H9A 21860000 * ADDRESS#4 @H9A 21870000 PRTTRN14 DS CL2 TRN for ADDRESS#4 @H9A 21880000 DS CL15 ADDR#4 heading @H9A 21890000 PRTADDR4 DS CL60 ADDRESS#4 @H9A 21900000 *********************************** 21910000 PRTTIME$ DS CL33 PRINT TIME string @H9A 21920000 ORG PRTTIME$ @H9A 21930000 PRTPOS15 DS CL8 Print position for @H9A 21940000 * PRINT TIME @H9A 21950000 PRTTRN15 DS CL2 TRN for PRINT TIME @H9A 21960000 PRTTMEHE DS CL15 PRINT TIME heading @H9A 21970000 PRTTIMEE DS CL8 Print HH:MM:SS @H9A 21980000 ORG PRTTIMEE @H9A 21990000 PRTHRE DS CL2 Hour @H9A 22000000 PRTTS1 DS CL1 Colon @H9A 22010000 PRTMINE DS CL2 Minute @H9A 22020000 PRTTS2 DS CL1 Colon @H9A 22030000 PRTSECE DS CL2 Second @H9A 22040000 DS CL1 @H9A 22050000 PRTAMPME DS CL2 Print AM/PM @H9A 22060000 *********************************** 22070000 PRTDATE$ DS CL36 PRINT DATE string @01C 22080000 ORG PRTDATE$ @H9A 22090000 PRTPOS16 DS CL8 Print position for @H9A 22100000 * PRINT DATE @H9A 22110000 PRTTRN16 DS CL2 TRN for PRINT DATE @H9A 22120000 PRTDTEHE DS CL15 PRINT DATE heading @H9A 22130000 PRTDDD DS CL2 Print day @H9A 22140000 DS CL1 @H9A 22150000 PRTMMM DS CL3 Print month @H9A 22160000 DS CL1 @H9A 22170000 PRTCCC DS CL2 Print century @01A 22180000 PRTYYY DS CL2 Print year @H9A 22190000 *********************************** 22200000 PRTPOS17 DS CL8 Print position for @H9A 22210000 * PRINTER ID @H9A 22220000 PRTTRN17 DS CL2 TRN for PRINTER ID @H9A 22230000 PRTNMHE DS CL15 PRINTER ID heading @H9A 22240000 PRTNME DS CL8 PRINTER ID @H9A 22250000 *********************************** 22260000 PRTPOS18 DS CL8 Print position for @H9A 22270000 * SYSTEM ID @H9A 22280000 PRTTRN18 DS CL2 TRN for SYSTEM ID @H9A 22290000 PRTSIDHE DS CL15 SYSTEM ID heading @H9A 22300000 PRTSIDE DS CL4 SYSTEM ID @H9A 22310000 *********************************** 22320000 PRTPOS19 DS CL8 Print position for @H9A 22330000 * START, CONT, END @H9A 22340000 PRTTRN19 DS CL2 TRN for START,CONT,END@H9A 22350000 PRTTAG DS CL5 START, CONT, END TAG @H9A 22360000 *********************************** 22370000 PRTSEG$ DS CL29 SEGMENT ID string @H9A 22380000 ORG PRTSEG$ @H9A 22390000 PRTPOS20 DS CL8 Print position for @H9A 22400000 * SEGMENT ID @H9A 22410000 PRTTRN20 DS CL2 TRN for SEGMENT ID @H9A 22420000 PRTSEGH DS CL14 SEGMENT ID heading @H9A 22430000 PRTSEGID DS CL5 SEGMENT # @H9A 22440000 *********************************** 22450000 DS CL2 NOP unchained @H9A 22460000 *********************************** 22470000 PRTWRKLN EQU *-PRTWRKE Length of PRTWRKE @H9A 22480000 * 22490000 **NOTE - PRTWRKLN must match ESSDLNTH 22500000 * 22510000 ********************************************************************** 22520000 * WORK AREAS (Both Original & ESS Trailers) 22530000 ********************************************************************** 22540000 * 22550000 WRKDATE DS CL4 CURRENT DATE-PACKED 22560000 WRKTIME DS CL4 CURRENT TIME-PACKED 22570000 ORG WRKTIME 22580000 DS CL3 22590000 WRKTH DS CL1 TENTHS & HUNDREDS 22600000 WRKUDATE DS CL10 CURRENT DATE-UNPACKED @01C 22610000 ORG WRKUDATE 22620000 WRKMMM DS CL3 CURRENT MONTH 22630000 WRKDD DS CL2 CURRENT DAY 22640000 WRKCEN DS CL2 CURRENT CENTURY @01A 22650000 WRKYY DS CL2 CURRENT YEAR 22660000 DS CL1 22670000 WRKAMPM DS CL2 CURRENT AM/PM @H9A 22680000 WRKUTIME DS CL7 CURRENT TIME-UNPACKED 22690000 ORG WRKUTIME 22700000 WRKHR DS CL2 CURRENT HOUR 22710000 WRKMIN DS CL2 CURRENT MINUTE 22720000 WRKSEC DS CL2 CURRENT SECOND 22730000 DS CL1 RESERVED 22740000 DS CL1 RESERVED 22750000 WRKED DS CL3 EDIT PATTERN @01A 22760000 DS CL1 RESERVED @01A 22770000 WRKJID1 DS F JOE ID 1 WORK AREA 22780000 WRKJID2 DS F JOE ID 2 WORK AREA 22790000 WCEN DS F CENTURY WORK AREA @01A 22800000 DS 0D ALIGNMENT 22810000 WRKJIDEC DS CL8 JOE ID DECIMAL CONVERSION 22820000 * WORK AREA 22830000 WRKJID1Z DS CL8 JOE ID 1 ZONE CONVERSION 22840000 * WORK AREA 22850000 WRKJID2Z DS CL8 JOE ID 2 ZONE CONVERSION 22860000 * WORK AREA 22870000 WRKWORK DS CL8 JULIAN CONVERSION WORK AREA 22880000 WRKJTBL DS CL48 JULIAN CONVERSION TABLE 22890000 INDEX EQU ECAGWRK LOOP INDEX 22900000 * 22910000 ********************************************************************** 22920000 * SWBTUREQ DECLARES 22930000 ********************************************************************** 22940000 * 22950000 DS 0F 22960000 WRKJSPE@ DS F Pointer to JSPA Extension 22970000 WRKADNUM DS H Number of ADDRESS @H9A 22980000 * lines 22990000 WRKPLPTR DS F Address of SWBTUREQ @H9A 23000000 * parm list 23010000 WRKKYLST DS F Keylist address @H9A 23020000 * (SJTRKEYL) 23030000 * 23040000 FULLWORD DS F Full word work area @H9A 23050000 DBLWORD DS D Double word work area @H9A 23060000 * 23070000 SWBRC DS F SWBTUREQ return code @H9A 23080000 SWBRS DS F SWBTUREQ reason code @H9A 23090000 SWBERR DS CL1 SWBTUREQ error = "Y" @H9A 23100000 * 23110000 DS 0F 23120000 KEYLIST DS CL64 SJTRKEYL Area @H9A 23130000 SBTLAREA DS CL16 SJTRSBTL Area @H9A 23140000 * 23150000 ********************************************************************** 23160000 * 23170000 * Conditional assembly check for ESS 23180000 * 23190000 * The code between the AIF and the label .NOESS04 will be 23200000 * suppressed if SYSPARM is NULL. 23210000 * 23220000 ********************************************************************** 23230000 * 23240000 AIF ('&SYSPARM' EQ '').NOESS04 Branch - ESS not supp @H9A 23250000 * 23260000 ********************************************************************** 23270000 * 23280000 ********************************************************************** 23290000 * 23300000 * Even though the SWBTUREQ parameter list is invoked 23310000 * with DSECT=NO, there are still DSECTs in the macro. 23320000 * Therefore do NOT attempt to add DCs or DSs after this 23330000 * macro that are not part of a DSECT. 23340000 * 23350000 ********************************************************************** 23360000 * 23370000 IEFSJTRP DSECT=NO SWBTUREQ parm. list @H9A 23380000 * 23390000 ********************************************************************** 23400000 * 23410000 SWBTUWS DSECT SWBTUREQ Work Area @H9A 23420000 DS CL(PRTWRKLN) @H9A 23430000 * 23440000 ********************************************************************** 23450000 * * 23460000 * End of APSUECA work buffer * 23470000 * * 23480000 ********************************************************************** 23490000 * 23500000 * 23510000 IEFDOTUM Text unit mapping @H9A 23520000 IEFDOKEY OUTPUT key mapping @H9A 23530000 IEFSJTRC SWBTUREQ return codes @H9A 23540000 * 23550000 ********************************************************************** 23560000 * 23570000 .NOESS04 ANOP @H9A 23580000 * 23590000 END APSUX02 23600000