TITLE 'AMDPRFCB - FORMAT CONTROL BLOCKS ROUTINE' 00050002 GBLB &PARMLST 00100002 AMDPRFTC CSECT @Y02006 00110002 * /* START OF SPECIFICATIONS **** 00120002 * 00130002 *01* MODULE-NAME = AMDPRFCB 00140002 * 00150002 *01* DESCRIPTIVE-NAME = FORMAT CONTROL BLOCKS SERVICE ROUTINE 00160002 * 00170002 *01* COPYRIGHT = NONE 00180002 * 00190002 *01* STATUS - OS/VS2 RELEASE 037 SU07 AND SU17 @OZ24844 00200000 * 00210002 *01* FUNCTION = FORMAT TASK-LEVEL CONTROL BLOCKS 00220002 * 00230002 *02* OPERATION = THIS MODULE IS CALLED AT ANY OF ITS 6 ENTRY POINTS 00240002 * BY AMDPRFSC TO PERFORM THE APPROPRIATE FORMATTING OF CONTROL 00250002 * BLOCKS. SEE EACH CSECT FOR MORE DETAILS. 00260002 * 00270002 *01* NOTES = THIS MODULE WAS CREATED AS A RESULT OF SPLITTING 00280002 * AMDPRFSR INTO AMDPRFSC AND AMDPRFCB. THE TWO MODULES WILL BE 00290002 * LINK-EDITTED TOGETHER AT SYSTEM GENERATION TO CREATE ONE MODULE 00300002 * AGAIN NAMED AMDPRFSR. 00310002 * 00320002 *02* DEPENDENCIES = THIS MODULE IS DEPENDENT ON THE FORMAT OF THE 00330002 * FOLLOWING CONTROL BLOCKS: TCB, RB, CDE, LLE, XL, D-PQE, PQE, 00340002 * DEB, TIOT. 00350002 * 00360002 *03* CHARACTER-CODE-DEPENDENCIES = EBCDIC 00370002 * 00380002 *02* RESTRICTIONS = NONE 00390002 * 00400002 *02* REGISTER-CONVENTIONS = REFER TO THE EQUATES MACRO 00410002 * 00420002 *02* PATCH-LABEL = FTCPCH, FRBPCH, FMSPCH, FLDPCH, FDBPCH, FIOPCH: 00430002 * AT END OF EACH CSECT 00440002 * 00450002 *01* MODULE-TYPE = PROCEDURE 00460002 * 00470002 *02* PROCESSOR = ASSEMBLER 00480002 * 00490002 *02* MODULE SIZE - 9428 BYTES (24D4 HEX) @OZ24844 00500000 * 00510002 *02* ATTRIBUTES = PROBLEM PROGRAM REGION, REUSABLE 00520002 * 00530002 *01* ENTRY-POINT = AMDPRFTC, AMDPRFRB, AMDPRFMS, AMDPRFLD, AMDPRFDB, 00540002 * AMDPRFIO. 00550002 * 00560002 *02* PURPOSE = SEE EACH CSECT 00570002 * 00580002 *02* LINKAGE = SEE EACH CSECT 00590002 * 00600002 *02* INPUT = SEE EACH CSECT 00610002 * 00620002 *02* OUTPUT = SEE EACH CSECT 00630002 * 00640002 *01* EXIT-NORMAL = TO CALLER 00650002 * 00660002 *02* CONDITIONS = SEE EACH CSECT 00670002 * 00680002 *02* OUTPUT = SEE EACH CSECT 00690002 * 00700002 *02* RETURN-CODES = SEE EACH CSECT 00710002 * 00720002 *01* EXIT-ERROR = NONE 00730002 * 00740002 *01* EXTERNAL-REFERENCES = SEE EACH CSECT 00750002 * 00760002 *01* TABLES = SEE EACH CSECT 00770002 * 00780002 *01* MACROS = SEE EACH CSECT 00790002 * 00800002 *02* SERIALIZATION = NONE 00810002 * 00820002 *01* CHANGE-ACTIVITY = SINCE MODULE (ORIGINALLY AMDPRFSR) WAS SPLIT 00830002 * AND RE-SEQUENCED, ONLY CHANGES AND ADDITIONS WILL BE FLAGGED. 00840002 * (OLD FLAGS WILL REMAIN ON THE INSTRUCTIONS, BUT ONLY NEW FLAGS 00850002 * WILL BE SUMMARIZED.) 00860002 * A 104110,104940-104980,114740-114780,115400, @Y02006 00870002 * A 137710-137720,150740-150892,153900-153980,169790, @Y02006 00880002 * A 179110-179140,210740-210780,224510-224520,235310, @Y02006 00890002 * A 244710,259710-259720,263310,263510-263530, @Y02006 00900002 * A 284310-284350,330110-330140,330910-330930,337710, @Y02006 00910002 * A 338310,339110-339130,339910-339940,340710-340730, @Y02006 00920002 * A 352310-352330,356510,358110,369102-369108,382510, @Y02006 00930002 * A 397510,402910-402950,417310,446310-446320, @Y02006 00940002 * A 448570-448690,456310-456350,459510,461710-461810, @Y02006 00950002 * A 466310,480710,481910-482010,487510-487520, @Y02006 00960002 * A 490300-490420,512510-512530,515310-515320 @Y02006 00970002 * C 001040,115100-115300,120300,130700,132500,133900, @Y02006 00980002 * C 139700-140300,141300-141900,142900-143500, @Y02006 00990002 * C 144500-145100,145700,146100-146700,147100-148100, @Y02006 01000002 * C 148500-149500,149900,150300-150700,151700-152300, @Y02006 01010002 * C 153500-153700,169700,174300,210900,232100,234300, @Y02006 01020002 * C 263300,263500,263700,281300,329500,329900,334100, @Y02006 01030002 * C 335700,336500,339100,339300-339500,340100-340500, @Y02006 01040002 * C 344500,346700-346900,347300,347900,350700,351100, @Y02006 01050002 * C 353300,356500,381300-381500,402100,415700,416900, @Y02006 01060002 * C 446500,463900-464100,481100,490100 @Y02006 01070002 * A 169740-169780,202140,207300-207660,215340, @YA01753 01080002 * A 251310-251410,255710 @YA01753 01090002 * @OZ09006 01090500 * OZ09006 - IMPLEMENT COMMON SU SUPPORT @OZ09006 01091000 * - CHECK SUBITS TO DETERMINE OUTPUT @OZ09006 01091500 * @OZ09676 01092000 * OZ09676 - DEB CHAIN PRINTING IS TERMINATED PREMATURELY @OZ09676 01092500 * - ADD COMMENT 'UNABLE TO ACCESS AVT......' @OZ09676 01093000 * @OZ09681 01093500 * OZ09681 - CDE CHAIN ABANDONED WHEN ONE CDE IS UNAVALIABLE @OZ09681 01094000 * - ADD COMMENT 'UNABLE TO ACCESS CDE XXXXXX' @OZ09681 01094500 * @OZ14113 01095000 * OZ14113 - ADDRESS IN UNABLE TO ACCESS CDE IS ALWAYS ZERO @OZ14113 01095500 * - SET CDE ADDR IN R1 BEFORE CONVERTING TO OUTPUT @OZ14113 01096000 * @OA14114 01096500 * OZ14114 - LLESYSCT FIELD SHOULD BE TWO BYTES INSTEAD OF ONE @OZ14114 01097000 * - CALL TWO BYTE ROUTINE INSTEAD OF ONE BYTE ROUTINE @OZ14114 01097500 * @OZ17662 01097600 * OZ17662 - TCBXSCT & TCBSTAWA FIELDS LABELED WRONG @OZ17662 01097700 * D90 - FIX PROB + TCBDDEXC & ADD TCBRPT,DBTB,SWASA,SVCA2 @OZ17662 01097800 * @OZ14114 01098000 * @OZ24844 01098200 * OZ24844 - EXTENDED SAVE AREA IS FORMATTED TOO LONG @OZ24844 01098400 * D91 - CHANGE CONSTANTS FOR RBSIZE W/O EXTENDED S/A @OZ24844 01098600 * 01100002 *01* MESSAGES = NONE 01110002 * 01120002 *01* ABEND-CODES = NONE 01130002 * 01140002 **** END OF SPECIFICATIONS ***/ 01150002 */*AMDPRFCB: CHART (SEQ) */ 01160002 */* HEADER 01170002 */*AMDPRFCB - FORMAT CONTROL BLOCKS ROUTINE 01180002 */* PAGE # */ 01190002 */*AMDPRFTC: E TCBPRNT */ 01200002 */* P SET UP ADDRESSABILITY */ 01210002 */* P PUT ERROR RTN ADDR IN COMMON */ 01220002 */* D (NO,TCBPRNT5,YES,) IS TCB CURRENT TCB */ 01230002 */* S BRWRITE: WRITE CURRENT TASK MSG */ 01240002 */*TCBPRNT5: P PUT TCB ADDR IN FORMAT PATTERN */ 01250002 */* S TCBFMPR: FORMAT AND PRINT FIRST LINE OF TCB */ 01260002 */* S TCBFMPR: FORMAT AND PRINT LINE 2 OF TCB */ 01270002 */* S TCBPTRG: FORMAT AND PRINT REGS */ 01280002 */* S TCBFMPR: FORMAT AND PRINT LINE 5 OF TCB */ 01290002 */* S TCBFMPR: FORMAT AND PRINT LINE 6 OF TCB */ 01300002 */* S TCBFMPR: FORMAT AND PRINT LINE 7 OF TCB */ 01310002 */* S TCBFMPR: FORMAT AND PRINT LINE 8 OF TCB */ 01320002 */* S TCBFMPR: FORMAT AND PRINT LINE 9 OF TCB */ 01330002 */* S TCBFMPR: FORMAT AND PRINT LINE 10 OF TCB */ 01340002 */* S TCBFMPR: FORMAT AND PRINT LINE 11 OF TCB */ 01350002 */* S BRREAD: GET ADDRESS OF AOS/1-AOS/2 TCB EXTENSION */ 01360002 */* S (,TCBPRNTC) TCBFMPR: FORMAT AND PRINT LINE 1 OF AOS EXTENSION */ 01370002 */*TCBFMPR: S FMTLINE: FORMAT THE LINE FOR PRINTING */ 01380002 */* S BRWRITE: PRINT THE LINE */ 01390002 */* R RETURN VIA R9 */ 01400002 */*TCBPRNTC: S BRREAD: GET FIFTH FLAG BYTE OF TCB */ 01410002 */* D (NO,TCBPRNT8,YES,) TASK TERMINATION FLAG ON */ 01420002 */* S BRWRITE: SPACE A LINE */ 01430002 */* S BRWRITE: WRITE TERMINATED MSG */ 01440002 */* P (,TCBPRDN1) SET RETURN CODE = 4 */ 01450002 */*TCBPRNT8: S BRWRITE: SPACE 2 LINES */ 01460002 */*TCBPRDN: P SET RETURN CODE = 0 */ 01470002 */*TCBPRDN1: P RESTORE PREVIOUS ERROR RTN ADDR */ 01480002 */* P RESTORE CALLER'S REGS */ 01490002 */* R RETURN */ 01500002 */*TCBPRER: N ROUTINE FOR FORMAT OR I/O ERROR */ 01510002 */* P SET UP ADDRESSABILITY */ 01520002 */* S (,TCBPRDN) BRWRITE: WRITE TCB FORMAT ERROR MSG */ 01530002 */*TCBPTRG: N ROUTINE TO PRINT REGS FOR TCBPRNT & RBPRNT RTNS */ 01540002 */* P SET UP ADDRESSABILITY */ 01550002 */*TCBPTRG4: P MOVE AOS/2 REG HEADING 0 - 7 TO BUFFER */ 01560002 */*TCBPTRG5: P LOAD OUTER LOOP COUNT */ 01570002 */*TCBPTRG1: P LOAD WHERE-TO-PUT-IT ADDR & INNER LOOP CNT */ 01580002 */*TCBPTRG2: P LOAD ADDR OF REGS */ 01590002 */* S BRREAD: GET THE REGS */ 01600002 */* S WRDCNVT: CONVERT REG TO PRINTABLE HEX */ 01610002 */* P UPDATE WORD INDEX & WHERE-TO-PUT-IT ADDR */ 01620002 */* D (NO,TCBPTRG2,YES,) 8 REGS DONE */ 01630002 */* S BRWRITE: PRINT ALINE */ 01640002 */* D (NO,TCBPTRG6,YES,) 2 LINES DONE */ 01650002 */* R RETURN */ 01660002 */*TCBPTRG6: P (,TCBPTRG1) MOVE IN AOS/2 HEADING 8 - 15 */ 01670002 */*AMDPRFRB: E RBPRNT */ 01680002 */* P SET UP ADDRESSABILITY */ 01690002 */* P SET UP ERROR AND STOP ROUTINE ADDRS */ 01700002 */* S RBPRGE: PURGE ALL RB ADDRS ON RBLIST */ 01710002 */* P POINT TO RB ADDR IN TCB */ 01720002 */*RBLOOP1: S BRREAD: GET NEXT RB ADDR */ 01730002 */* D (YES,RBPRNT1,NO,) IS RB ADDR = 0 */ 01740002 */* D (YES,RBPRNT1,NO,) IS NEXT RB ADDR = TCB */ 01750002 */* S RBSAVE: SAVE RB ADDR ON RBLIST */ 01760002 */* P (,RBLOOP1) BUMP PTR TO NEXT RB */ 01770002 */*RBPRNT1: P MOVE 'ACTIVE RBS' HEADING TO BUFFER */ 01780002 */* S BRWRITE: WRITE THE HEADING */ 01790002 */* S RBGET: GET NEXT RB */ 01800002 */* D (NO,RBDONE,YES,) WAS THERE ONE */ 01810002 */*RBPRNT2: S BRREAD: GET RB SIZE/STATUS WORD */ 01820002 */* S ADRCNVT: CONVERT RB ADDR TO PRINTABLE HEX */ 01830002 */* D (SVRB,RBSVRB,IRB,RBIRB,PRB,) BR TYPE = ? */ 01840002 */* P (,RBPRNT4) GET ADDR OF PRB INDEX */ 01850002 */*RBSVRB: D (YES,RBTSVRB,NO,) TRANSIENT SVRB */ 01860002 */* P (,RBPRNT4) GET ADDR OF RESIDENT SVRB INDEX */ 01870002 */*RBTSVRB: P (,RBPRNT4) GET ADDR OF TRANSIENT SVRB INDEX */ 01880002 */*RBIRB: D (YES,RBSIRB,NO,) SIRB */ 01890002 */* D (YES,RBTIRB,NO,) TIRB */ 01900002 */* P (,RBPRNT4) GET ADDR OF IRB INDEX */ 01910002 */*RBTIRB: P (,RBPRNT4) GET ADDR OF TIRB INDEX */ 01920002 */*RBSIRB: P GET ADDR OF SIRB INDEX */ 01930002 */*RBPRNT4: P GET ADDR OF BEGIN FIELD IN RB PREFIX */ 01940002 */* P SET UP FOR FORMAT ROUTINE */ 01950002 */* S FMTLINE: FORMAT THE LINE */ 01960002 */* S BRWRITE: PRINT THE LINE */ 01970002 */* P MOVE 'RESV', 'NM', OR 'FL-CDE' TO BUFFER */ 01980002 */* S BRREAD: GET FIRST FIELD OF RB */ 01990002 */* S WRDCNVT: CONVERT THE FIRST FIELD OF RB */ 02000002 */* P MOVE 'APSW' TO BUFFER */ 02010002 */* S BRREAD: GET THE DATA FOR 'APSW' */ 02020002 */* S WRDCNVT: CONVERT THE DATA TO PRINTABLE HEX */ 02030002 */* P MOVE 'SZ-STAB' TO BUFFER */ 02040002 */* S BRREAD: GET THE DATA FOR THAT FIELD */ 02050002 */* S WRDCNVT: CONVERT THE DATA */ 02060002 */* P MOVE 'FL-CDE', 'LPDE', 'RESV', OR 'EPA' TO BUFFER */ 02070002 */* S BRREAD: GET THE DATA FOR THE FIELD */ 02080002 */* S WRDCNVT: CONVERT THE DATA */ 02090002 */* P MOVE 'PSW' TO BUFFER */ 02100002 */* S BRREAD: GET DATA FOR 1ST HALF OF PSW */ 02110002 */* S WRDCNVT: CONVERT THE DATA */ 02120002 */* S BRREAD: GET 2ND HALF OF PSW */ 02130002 */* S WRDCNVT: CONVERT THE PSW DATA */ 02140002 */* S BRWRITE: WRITE THE FIRST LINE OF RB */ 02150002 */* P MOVE 'Q' TO BUFFER */ 02160002 */* S BRREAD: GET DATA FOR 'Q' */ 02170002 */* S WRDCNVT: CONVERT THE 'Q' DATA */ 02180002 */* P MOVE 'WT-LNK' TO BUFFER */ 02190002 */* S BRREAD: GET DATA FOR 'WT-LNK' */ 02200002 */* S WRDCNVT: CONVERT THE DATA */ 02210002 */* D (SVRB,PRBPRT,PRB,PRBPRT,IRB,) TEST RB TYPE */ 02220002 */* D (YES,RBPRNT3,NO,) IRB ? */ 02230002 */* S BRREAD: GET NAME FIELD OF SIRB */ 02240002 */* P MOVE 'NM' TOBUFFER */ 02250002 */* P (,RBPRNT3) MOVE RTN NAME FROM SIRB TO BUFFER */ 02260002 */*RBPRNT3: S TCBPTRG: FORMAT AND PRINT REGS IN THE RB */ 02270002 */* D (NO,RBPRTDN,YES,) DOES RB HAVE EXT. SAVE AREA */ 02280002 */* S (,RBPRTDN) EXTSAPT: PRINT EXTENDED SAVE AREA */ 02290002 */*PRBPRT: N RTN TO COMPLETE THE FORMAT FOR PRBS & SVRBS */ 02300002 */* S BRREAD: GET CDE/LPDE PTR FROM RB */ 02310002 */* D (YES,RBPRT3,NO,) IS CDE/LPDE PTR = 0 */ 02320002 */* S BRREAD: GET FIRST FIELD OF CDE/LPDE */ 02330002 */* S BRREAD: GET NAME FIELD OF CDE/LPDE */ 02340002 */* P MOVE 'NM' TO BUFFER */ 02350002 */* P MOVE NAME FROM CDE/LPDE TO BUFFER */ 02360002 */* S BRREAD: GET ENTRY POINT FROM CDE/LPDE */ 02370002 */* P MOVE 'EPA' TO BUFFER */ 02380002 */* S ADRCNVT: CONVERT ENTRY POINT ADDR TO PRINTABLE HEX */ 02390002 */* D (NO,CDE,YES,RBPRNT3) TRANS. SVRB */ 02400002 */*CDE: S BRREAD: GET PTR TO MAJOR CDE OR EXTENT LIST */ 02410002 */* P SAVE THE PTR */ 02420002 */* S BRREAD: GET ATTR BYTES FROM CDE/LPDE */ 02430002 */* P SAVE ATTR BYTES */ 02440002 */* D (YES,RBPRT1,NO,) IS CURRENT CDE A MINOR */ 02450002 */*RBPRT2: P MOVE 'STA' TO BUFFER */ 02460002 */* S BRREAD: GET STARTING ADDR FROM MAJOR CDE */ 02470002 */* S ADRCNVT: CONVERT THE STARTING ADDRESS */ 02480002 */* P MOVE 'LN' TO BUFFER */ 02490002 */* S BRREAD: GET SIZE OF MODULE FROM CDE */ 02500002 */* S ADRCNVT: CONVERT SIZE */ 02510002 */*NOMAJOR: P MOVE 'ATR1' TO BUFFER */ 02520002 */* S HEXCNVT: CONVERT ATTRIBUTE FIELD */ 02530002 */* P MOVE 'ATR2' TO BUFFER */ 02540002 */* S HEXCNVT: CONVERT ATTRIBUTE FIELD */ 02550002 */*RBPRT3: D (YES,RBPRNT3,NO,) SVRB */ 02560002 */* S (,RBPRTDN) BRWRITE: PRINT LAST LINE OF RB */ 02570002 */*RBPRT1: N RTN TO GET EXTENT LIST PTR FROM MAJOR CDE */ 02580002 */* S BRREAD: GET XTENT LIST PTR FROM CDE */ 02590002 */* P (,RBPRT2) SAVE XTENT LIST PTR */ 02600002 */*RBPRTDN: N DONE PRINTING RB... LOOK FOR ANOTHER */ 02610002 */* S RBGET: GET NEXT RB ADDR */ 02620002 */* D (NO,RBDONE,YES,) WAS THERE ONE */ 02630002 */* S (,RBPRNT2) BRWRITE: SPACE 1 LINE */ 02640002 */*RBDONE: N DONE WITH RB CHAIN ... RETURN TO FORMAT RTN */ 02650002 */* S BRWRITE: SPACE 2 LINES */ 02660002 */* P RESTORE CALLER'S STOP RTN ADDR */ 02670002 */* P RESTORE REGS */ 02680002 */* R RETURN */ 02690002 */*TOOMANY: N MORE THAN 50 RBS ON RB CHAIN */ 02700002 */* P MOVE INFINITE LOOP MSG TO BUFFER */ 02710002 */* S (,RBPRNT1) BRWRITE: WRITE MSG AND SPACE 2 LINES */ 02720002 */*EXTSAPT: N PRINT RB EXTENDED SAVE AREA */ 02730002 */* P SET INDEX */ 02740002 */*EXTLOOP2: P GET INIT. WHERE-TO-PUT-IT ADDR */ 02750002 */* P LOAD LOOP COUNT */ 02760002 */*EXTLOOP1: S BRREAD: GET A WORD FROM EXTENDED SAVE AREA */ 02770002 */* S WRDCNVT: CONVERT THE WORD */ 02780002 */* P DECREMENT BYTES TO PRINT COUNT */ 02790002 */* D (NO,EXTDONE,YES,) ANY LEFT */ 02800002 */* P INCREMENT WHERE-TO-PUT-IT ADDR */ 02810002 */* P INCREMENT INDEX */ 02820002 */* D (NO,EXTLOOP1,YES,) LINE COMPLETE */ 02830002 */* S (,EXTLOOP2) BRWRITE: PRINT THE LINE */ 02840002 */*EXTDONE: S BRWRITE: PRINT LAST LINE */ 02850002 */* R RETURN VIA R9 */ 02860002 */*RBERROR: N ROUTINE FOR ERROR IN RB FORMAT */ 02870002 */* P SET UP ADDRESSABILITY */ 02880002 */* S BRWRITE: SPACE A LINE */ 02890002 */* P MOVE ERROR MSG TO BUFFER */ 02900002 */* S BRWRITE: PRINT MSG */ 02910002 */* M RESET ERROR SWITCHES */ 02920002 */* M (,RBPRTDN) RESET ERROR SWITCHES */ 02925002 */*RBSAVE: P ADD ONE TO TOTAL RB COUNT */ 02930002 */* D (YES,TOOMANY,NO,) 50 RBS ON CHAIN */ 02940002 */* P SAVE TOTAL RB COUNT */ 02950002 */* P RBTLIST = TCBLIST */ 02960002 */* P TCBLIST = RBLIST */ 02970002 */* S TCBSAVE: SAVE RB ADDR ON RBLIST */ 02980002 */* D (YES,TOOMANY,NO,) WAS RB ADDR ALREADY ON RBLIST */ 02990002 */* P ADD ONE TO CNT FOR RBS ON RBLIST */ 03000002 */*RBSAVE1: P RBLIST = TCBLIST; TCBLIST = RBTLIST */ 03010002 */* R RETURN VIA R9 */ 03020002 */*RBSTPOUT: P RESTORE ERROR HANDLER'S ADDR */ 03030002 */* P RESTORE CALLER'S STOP RTN ADDR IN COMMON */ 03040002 */* R CALLER'S STOP RTN */ 03050002 */*RBGET: P RBTLIST = TCBLIST; TCBLIST = RBLIST */ 03060002 */* P INDICATE FIRST RB ON LIST DESIRED */ 03070002 */* S TCBRTRV: GET FIRST RB ADDR FROM RBLIST */ 03080002 */* D (NO,RBGET1,YES,) WAS THERE ONE */ 03090002 */* S TCBREMV: REMOVE RB FROM RBLIST */ 03100002 */* P REDUCE RB COUNT FOR RBLIST BY ONE */ 03110002 */*RBGET1: P RBLIST = TCBLIST; TCBLIST = RBTLIST */ 03120002 */* R RETURN VIA R9 */ 03130002 */*RBSTP: N PURGE ROUTINE FOR STOP REQUEST */ 03140002 */* P SET UP ADDRESSABILITY */ 03150002 */* P SET RETURN ADDR TO RBSTPOUT */ 03160002 */* P RBTLIST = TCBLIST; TCBLIST = RBLIST */ 03170002 */* S TCBREMV: REMOVE ALL RBS FROM RBLIST */ 03180002 */* P RBLIST = TCBLIST; TCBLIST = RBTLIST */ 03190002 */* R RETURN VIA R9 */ 03200002 */*AMDPRFMS: E MSSPRNT */ 03210002 */* P SET UP ADDRESSABILITY */ 03220002 */* P SET UP ERROR RTN ADDR */ 03230002 */* P SET PQE COUNTER */ 03240002 */* S BRREAD: GET DUMMY PQE PTR FROM TCB */ 03250002 */* D (YES,MSSPRDNA,NO,) IS PTR = 0 */ 03260002 */* S MSSTITLE: PRINT MSS TITLE */ 03270002 */* S BRREAD: GET PQE POINTERS FROM DUMMY PQE */ 03280002 */* S MSSFMPR2: FORMAT AND PRINT D-PQE LINE */ 03290002 */*MSSPRLP1: D (YES,MSSPRDN,NO,) PQE ADDR = 0 */ 03300002 */* P ADD 1 TO PQE CNT */ 03310002 */* D (YES,MSSLOOP,NO,) PQE CNT > 50 */ 03320002 */* P SAVE PQE CNT */ 03330002 */* P PUT ADDR IN PATTERN */ 03340002 */* S MSSFMPR1: FORMAT AND PRINT LINE 1 OF PQE */ 03350002 */* S MSSFMPR2: FORMAT AND PRINT 2ND LINE OF PQE */ 03360002 */* P GET ADDR OF PTR TO NEXT PQE */ 03370002 */* S (,MSSPRLP1) BRREAD: GET PTR TO NEXT PQE */ 03380002 */*MSSLOOP: P MOVE PQE LOOP MSG TO BUFFER */ 03390002 */* S (,MSSPRDNA) BRWRITE: PRINT THE MSG */ 03400002 */*MSSTITLE: P MOVE AOS/2 MSS TITLE TO BUFFER */ 03410002 */*MSSTTL2: S BRWRITE: PRINT TITLE AND SPACE 2 LINES */ 03420002 */* R RETURN VIA R9 */ 03430002 */*MSSFMPR1: P INDICATE SPACE 1 LINE */ 03440002 */*MSSFMPRA: S FMTLINE: FORMAT THE LINE */ 03450002 */* P LOAD LINES-TO-SPACE INDICATOR */ 03460002 */* S BRWRITE: PRINT THE LINE */ 03470002 */* R RETURN VIA R9 */ 03480002 */*MSSFMPR2: P (,MSSFMPRA) INDICAT SPACE 2 LINES AFTER PRINT */ 03490002 */*MSSPRDN: N ALL DONE .. RETURN TO FORMAT ROUTINE */ 03500002 */* S BRWRITE: SPACE 1 LINE */ 03510002 */*MSSPRDNA: P RESTORE PREVIOUS ERROR RTN ADDR */ 03520002 */* P RESTORE REGS */ 03530002 */* R RETURN */ 03540002 */*MSSERR: N MSS PRINT FORMAT ERROR */ 03550002 */* P SET UP ADDRESSABILITY */ 03560002 */* S BRWRITE: SPACE 1 LINE */ 03570002 */* P MOVE ERROR MSG TO BUFFER */ 03580002 */* S (,MSSPRDNA) BRWRITE: WRITE MSG AND SPACE 3 LINES */ 03590002 */*AMDPRFLD: E LOADPRT */ 03600002 */* N LOAD LIST PRINT ROUTINE */ 03610002 */* P SET UP ADDRESSABILITY */ 03620002 */* P SAVE TCB ADDR */ 03630002 */* M LDSW = 0 */ 03640002 */* P SET UP ERROR RTN ADDR */ 03650002 */* P MOVE TITLE TO BUFFER */ 03660002 */* S BRWRITE: PRINT TITLE */ 03670002 */* S BRREAD: GET LOAD LIST PTR FROM TCB */ 03680002 */* P SET LOOP COUNTER TO 255 */ 03690002 */*LOADLP3: D (YES,LOADDONE,NO,) IS PTR = 0 */ 03700002 */* S BRREAD: GET LOAD LIST */ 03710002 */* P SAVE ADDR OF NEXT LOAD LIST ELEMENT */ 03720002 */* S BRREAD: GET COUNT FIELDS */ 03730002 */* P SAVE RESP. COUNTS */ 03740002 */* S BRREAD: GET CDE PTR */ 03750002 */* D (YES,LOADPRT6,NO,) CDE PTR = 0 */ 03760002 */*LOADPRT8: M SET SWITCH TO INDICATE SOMETHING ON LOAD LIST */ 03770002 */* P MOVE 'CDE' TO BUFFER */ 03780002 */* S ADRCNVT: CONVERT CDE ADDR */ 03790002 */* P MOVE 'NM' TO BUFFER */ 03800002 */* S BRREAD: GET THE CDE */ 03810002 */* P SAVE NEXT PTR */ 03820002 */* S BRREAD: GET FIRST HALF OF NAME */ 03830002 */* P MOVE 1ST HALF OF NAME TO BUFFER */ 03840002 */* S BRREAD: GET 2ND HALF OF NAME */ 03850002 */* P MOVE IT TO BUFFER */ 03860002 */* P MOVE 'USE' TO BUFFER */ 03870002 */* S BRREAD: GET USE/EPA FIELD */ 03880002 */* S BYTECNVT: CONVERT USE COUNT */ 03890002 */* P MOVE 'RESP' TO BUFFER */ 03900002 */* D (NO,LOADPRT9,YES,) PRINTING JOB PACK Q */ 03910002 */* P (,LOADPRTD) MOVE 'NA' TO BUFFER */ 03920002 */*LOADPRT9: S BYTECNVT: CONVERT RESP. CNT */ 03930002 */*LOADPRTD: P MOVE 'EPA' TO BUFFER */ 03940002 */* S ADRCNVT: CONVERT ENTRY POINT ADDR */ 03950002 */* P MOVE 'ATR1' TO BUFFER */ 03960002 */* S BYTECNVT: CONVERT ATR1 */ 03970002 */*LOADPRT7: S BRREAD: GET EXTENT LIST OR MAJOR CDE PTR */ 03980002 */* D (YES,LOADPRT1,NO,LOADPRT2) WAS IT A MINOR CDE */ 03990002 */*LOADPRT2: D (NO,NOXLST,YES,) IS THERE AN EXTENT LIST */ 04000002 */* S BRREAD: GET NO. OF RELOC. FACTORS */ 04010002 */* D (YES,XLSTER,NO,) > 25 */ 04020002 */* D (YES,XLSTER,NO,) = 0 */ 04030002 */* P CALCULATE ADDR OF FIRST BLOCK */ 04040002 */*LOADLP1: P ZERO INDEXREG; LOAD NO. OF ENTRIES / LINE CNT */ 04050002 */* P MOVE 'STA' & 'LN' TO BUFFER */ 04060002 */*LOADLP2: S BRREAD: GET BLOCK ADDR */ 04070002 */* S ADRCNVT: CONVERT STARTING ADDR */ 04080002 */* S BRREAD: GET BLOCK LENGTH */ 04090002 */* S ADRCNVT: CONVERT LENGTH OF BLOCK */ 04100002 */* P INCR. INDEX AND COUNTERS */ 04110002 */* D (YES,LOADPRT5,NO,) REMAINING REL FACTORS = 0 */ 04120002 */* S (,LOADLP1) BRWRITE: PRINT THE LINE */ 04130002 */*XLSTER: P (,LOADPRT5) MOVE EXTENT LIST ERROR MSG TO BUFFER */ 04140002 */*NOXLST: P MOVE NO EXTENT LIST MSG TO BUFFER */ 04150002 */*LOADPRT5: S BRWRITE: PRINT THE LINE FOR CDE OR MSG */ 04160002 */* D (YES,JPQPRT,NO,) IS JOB PACK Q. BEING PRINTED */ 04170002 */*LOADPRT6: P GET ADDR OF NEXT LOAD LIST ELEMENT */ 04180002 */* D (YES,,NO,RESTCTR1) INFINITE LOOP? */ 04190002 */* P (,LOOPPRT1) ISSUE INFINITE LOOP IN LOAD LIST MESSAGE */ 04200002 */*RESTCTR1: P (,LOADLP3) UPDATE COUNTER */ 04210002 */*RESTCTR2: P (,LOADPRT8) UPDATE COUNTER */ 04220002 */*LOADPRT1: M (,LOADPRT7) RESET MINOR FLAG */ 04230002 */*JPQPRTA: P SET LOOP COUNTER TO 256 */ 04240002 */*JPQPRT: P GET ADDR OF NEXT CDE */ 04250002 */* D (YES,LOADDONE,NO,) END OF QUEUE */ 04260002 */* P PUT ADDR OF CDE IN PARM. REG. */ 04270002 */* D (YES,,NO,RESTCTR2) INFINITE LOOP? */ 04280002 */* P (,LOADDONE) ISSUE LOOP IN JOB PACK QUEUE MESSAGE */ 04290002 */*LOADDONE: D (YES,LDDONE2,NO,) HAS JOB PACK Q. BEEN PRINTED */ 04300002 */* D (YES,LDDONE1,NO,) WAS ANYTHING ON LOAD LIST */ 04310002 */* S (,LDDONE1) BRWRITE: PRINT NO LLE MSG */ 04320002 */*LDDONE1: S BRWRITE: SPACE 2 LINES */ 04330002 */* M INDICATE PRINTING JOB PACK QUEUE */ 04340002 */* S BRWRITE: PRINT JOB PACK QUEUE TITLE */ 04350002 */* M RESET GOT OONE SWITCH */ 04360002 */* S BRREAD: GET JOB PACK Q. PTR */ 04370002 */* P (,JPQPRTA) SAVE ADDR OF 1ST CDE IN THE QUEUE */ 04380002 */*LDDONE2: D (YES,LDDONE3,NO,) WAS ANY THING ON JOB PACK Q. */ 04390002 */* S BRWRITE: PRINT NO JOB PACK QUEUE MSG */ 04400002 */*LDDONE3: S BRWRITE: SPACE 2 LINES */ 04410002 */*LDDONED: P RESTORE PREVIOUS ERROR RTN ADDR */ 04420002 */* P RESTORE REGS */ 04430002 */* R RETURN */ 04440002 */*BYTECNVT: N RTN TO CONVERT ONE BYTE TO PRINTABLE HEX */ 04450002 */* P SAVE REG 1 */ 04460002 */* S HEXCNVT: CONVERT ONE BYTE */ 04470002 */* P RESTORE REG 1 */ 04480002 */* R RETURN VIA R9 */ 04490002 */*LOADERR: N ERROR WHILE PRINTING LOAD LIST */ 04500002 */* P SET UP ADDRESSABILITY */ 04510002 */* S BRWRITE: SPACE A LINE */ 04520002 */* D (YES,LOADERR1,NO,) PRINTING JOB PACK Q. */ 04530002 */* P MOVE 'ERROR IN LOAD LIST' MSG TO BUFFER */ 04540002 */*LOADERR2: S BRWRITE: PRINT THE ERROR MSG */ 04550002 */* M (,LOADDONE) RESET ERROR SWITCHES */ 04560002 */*LOADERR1: P (,LOADERR2) MOVE JOB PACK QUEUE ERROR MSG TO BUFFER */ 04570002 */*AMDPRFDB: E DEBPRNT */ 04580002 */* P SET UP ADDRESSABILITY */ 04590002 */* M CLEAR DEB SWITCH; ZERO DEB COUNT */ 04600002 */* P SET UP ERROR RTN ADDRESS */ 04610002 */*DEBPRNT8: S BRREAD: GET DEB CHAIN PTR */ 04620002 */* D (YES,NODEB,NO,) IS DEB PTR = 0 */ 04630002 */* D (YES,DEBINF,NO,) GT 50 DEBS */ 04640002 */* M INDICATE DEB FOUND */ 04650002 */* P MOVE 'DEB' TO BUFFER */ 04660002 */* S ADRCNVT: CONVERT DEB PTR */ 04670002 */* P MOVE APPENDAGE IDS TO BUFFER */ 04680002 */* S BRREAD: GET APP VECTOR TABLE */ 04690002 */* D (YES,DEBPRNT1,NO,) IS I/O APP VEC TAB ADDR = 0 */ 04700002 */* S BRREAD: GET END OF EXT APP ADDR */ 04710002 */* S WRDCNVT: CONVERT END OF APP ADDR */ 04720002 */* S BRREAD: GET SIO APP ADDR */ 04730002 */* S WRDCNVT: CONVERT SIO APP ADDR */ 04740002 */* S BRREAD: GET PCI APP ADDR */ 04750002 */* S WRDCNVT: CONVERT PCI APP ADDR */ 04760002 */* S BRREAD: GET CHAN END APP ADDR */ 04770002 */* S WRDCNVT: CONVERT CHAN END APP ADDR */ 04780002 */* S BRREAD: GET ABNORMAL END APP ADDR */ 04790002 */* S WRDCNVT: CONVERT ABNORMAL END APP ADDR */ 04800002 */*DEBPRNT1: S BRWRITE: PRINT LINE OF APP ADDRESSES */ 04810002 */* P MOVE 'PFX' TO BUFFER */ 04820002 */* P CALCULATE ADDR OF DEB PREFIX */ 04830002 */* D (NO,DEBERR,YES,) ADDR > 0 */ 04840002 */*DEBPRNT2: S BRREAD: GET DEB PREFIX */ 04850002 */* S WRDCNVT: CONVERT A WORD OF PREFIX */ 04860002 */* D (NO,DEBPRNT2,YES,) 4 WORDS DONE */ 04870002 */* S BRWRITE: PRINT LINE OF DEB PREFIX */ 04880002 */* P MOVE 'TCB' TO BUFFER */ 04890002 */* S BRREAD: GET DEB TCB PTR */ 04900002 */* S WRDCNVT: CONVERT TCB ADDR */ 04910002 */* P MOVE 'NDEB' TO BUFFER */ 04920002 */* S BRREAD: GET NEXT DEB PTR */ 04930002 */* S WRDCNVT: CONVERT NEXT DEB PTR */ 04940002 */* P MOVE 'IRBA' TO BUFFER */ 04950002 */* S BRREAD: GET IRB ADDR */ 04960002 */* S WRDCNVT: CONVERT IRB ADDR */ 04970002 */* P MOVE 'FLGS' TO BUFFER */ 04980002 */* S BRREAD: GET FLAGS */ 04990002 */* S WRDCNVT: CONVERT FLAGS */ 05000002 */* P MOVE 'UPRG' TO BUFFER */ 05010002 */* S BRREAD: GET USER IOB PURGE CHAIN PTR */ 05020002 */* S WRDCNVT: CONVERT USER PURGE CHAIN ADDR */ 05030002 */* P MOVE 'PLST' TO BUFFER */ 05040002 */* S BRREAD: GET PARM LIST PTR FOR PURGE ECB */ 05050002 */* S WRDCNVT: CONVERT PARM LIST PTR */ 05060002 */* P MOVE 'DCB' TO BUFFER */ 05070002 */* S BRREAD: GET DCB PTR */ 05080002 */* S WRDCNVT: CONVERT DCB ADDR */ 05090002 */* S BRWRITE: PRINT LINE OF DEB */ 05100002 */* P MOVE 'AVT' TO BUFFER */ 05110002 */* S BRREAD: GET I/O APP VECT TABLE ADDR */ 05120002 */* D (NO,DEBPRNT3,YES,) IS IT DIRECT ACCESS (ESCALE = 04)*/ 05130002 */* P (,DEBPRNT3) SET D. A. FLAGS */ 05140002 */*DEBPRNT3: S WRDCNVT: CONVERT I/O APP VECT TABLE ADDR */ 05150002 */* S BRWRITE: PRINT THE LINE */ 05160002 */*XNTTEST: D (YES,DEBDONE,NO,) NUMBER OF EXTENTS = 0 */ 05170002 */* D (YES,DEBPRNT5,NO,) DEB FOR D. A. */ 05180002 */* P MOVE 'OP-UCB' TO BUFFER */ 05190002 */* S BRWRITE: PRINT THE LINE */ 05200002 */*DEBPRNT4: S BRREAD: GET AN EXTENT */ 05210002 */* S WRDCNVT: CONVERT THE EXTENT */ 05220002 */* S BRWRITE: PRINT THE EXTENT */ 05230002 */* D (YES,DEBDONE,NO,DEBPRNT4) NUMBER OF EXTENT = 0 */ 05240002 */*DEBPRNT5: N ROUTINE TO PRINT 4-WORD EXTENT (DIRECT ACCESS) */ 05250002 */* D (NO,,YES,HAVE3525) IS 4-WORD EXTENT FOR 3525 */ 05260002 */* P MOVE EXTENT IDS TO BUFFER */ 05270002 */* S BRWRITE: PRINT IDS */ 05280002 */* D (YES,,NO,DEBPRNT7) IS THIS DEB FOR ISAM */ 05290002 */* P SKIP EXTENT 0 */ 05300002 */*DEBPRNT7: S BRREAD: GET AN EXTENT */ 05310002 */* S WRDCNVT: CONVERT FILE MASK AND UCB ADDR */ 05320002 */*DEBPRNT6: P INCR. TO NEXT WORD OF EXTENT */ 05330002 */* S BRREAD: GET AN EXTENT WORD */ 05340002 */* P MOVE WORD TO WORK AREA */ 05350002 */* D (NO,DEBPRNT6,YES,) 3 WORDS GOTTEN */ 05360002 */* S WRDCNVT: CONVERT STARTING CCHH OF EXTENT */ 05370002 */* S WRDCNVT: CONVERT ENDING CCHH OF EXTENT */ 05380002 */* S HEXCNVT: CONVERT NUMBER OF TRACKS FOR THIS EXTENT */ 05390002 */* S BRWRITE: PRINT EXTENT */ 05400002 */* D (NO,DEBPRNT7,YES,DEBDONE) NUMBER OF EXTENTS = 0 */ 05410002 */*HAVE3525: N ROUTINE TO PRINT EXTENT FOR 3525 MULTI-FUNCTION */ 05420002 */* P MOVE IDS TO BUFFER */ 05430002 */* S BRWRITE: PRINT IDS */ 05440002 */* P FORMAT 3525 LINE */ 05450002 */* S (,DEBDONE) BRWRITE: PRINT DATA LINE */ 05460002 */*DEBDONE: N DONE WITH THIS DEB ... LOOK FOR ANOTHER */ 05470002 */* D (YES,FMTDEBX,NO,) DOES DEB EXTN EXIST */ 05480002 */*DEBDONE1: M RESET D. A. FLAGS AND ISAM SW */ 05490002 */* S BRWRITE: SPACE A LINE */ 05500002 */* P (,DEBPRNT8) POINT TO NEXT DEB */ 05510002 */*DEBERR: N ERROR IN DEB CHAIN ... WRITE MSG AND RETURN */ 05520002 */* P SET UP ADDRESSABILITY */ 05530002 */* S BRWRITE: SPACE A LINE */ 05540002 */* D (YES,%DXD,NO,) DEB EXTN BEING DONE */ 05550002 */* P MOVE ERROR MSG TO BUFFER */ 05560002 */* P (,NODEB3) RESET ERROR SWITCHES */ 05570002 */*%DXD: P (,FMTDEBX1) MOVE ERR MSG TO PRINT LINE */ 05580002 */*FMTDEBX: S BRREAD: GET EXTN ADDR */ 05590002 */* P STORE ADDR IN FMT PTRN */ 05600002 */* S FMTLINE: FORMAT LINE 1 OF EXTN */ 05610002 */* S BRWRITE: PRINT LINE */ 05620002 */* S FMTLINE: FORMAT LINE 2 OF EXTN */ 05630002 */*FMTDEBX1: S (,DEBDONE1) BRWRITE: PRINT LINE */ 05640002 */*NODEB: N DONE WITH DEB CHAIN */ 05650002 */* D (NO,NODEB1,YES,) WAS THERE A DEB */ 05660002 */* S BRWRITE: SPACE A LINE */ 05670002 */*NODEB2: P RESTORE PREVIOUS ERROR RTN ADDR AND REGS */ 05680002 */* R RETURN */ 05690002 */*NODEB1: P MOVE NO OPEN DEB MSG TO BUFFER */ 05700002 */*NODEB3: S (,NODEB2) BRWRITE: PRINT THE MSG */ 05710002 */*DEBINF: P (,NODEB3) MOVE DEB LOOP MSG TO BUFFER */ 05720002 */*AMDPRFIO: E TIOTPRT */ 05730002 */* P SET UP ADDRESSABILITY */ 05740002 */* P SET UP ERROR ROUTINE ADDR */ 05750002 */* S BRREAD: GET TIOT PTR FROM TCB */ 05760002 */* D (YES,NOTIOT,NO,) TIOT PTR = 0 */ 05770002 */* D (NO,TIOTNEW,YES,) TIOT SAME AS LAST */ 05780002 */* P MOVE SAME TIOT MSG TO BUFFER */ 05790002 */* S (,TIOTDN1) BRWRITE: PRINT LINE */ 05800002 */*TIOTNEW: P SAVE TIOT ADDRESS IN SAME TIOT MSG */ 05810002 */* P MOVE 'TIOT' TO BUFFER */ 05820002 */* S ADRCNVT: CONVERT TIOT ADDR */ 05830002 */* P MOVE 'JOB' TO BUFFER */ 05840002 */* S BRREAD: GET 1ST FIELD OF TIOT */ 05850002 */* P MOVE JOB NAME TO BUFFER */ 05860002 */*TIOTLP4: D (NO,TIOTPRT2,YES,) VALID JOB NAME */ 05870002 */* M (,TIOTPRT3) SET VALID TIOT SWITCH */ 05880002 */*TIOTPRT2: M TURN OFF VALID TIOT SWITCH */ 05890002 */*TIOTPRT3: P MOVE 'STEP' TO BUFFER */ 05900002 */* S BRREAD: GET STEP NAME */ 05910002 */* P MOVE STEP NAME TO BUFFER */ 05920002 */* P MOVE 'PROC' TO BUFFER */ 05930002 */* S BRREAD: GET PROC NAME */ 05940002 */* P MOVE PROC NAME TO BUFFER */ 05950002 */* S BRWRITE: PRINT TIOT NAMES */ 05960002 */* P PUT PAGE NO IN SAME TIOT MSG */ 05970002 */* D (NO,TIONVLD,YES,) IS TIOT VALID */ 05980002 */* S BRREAD: GET FIRST DD ENTRY */ 05990002 */* P LOAD LENGTH OF DD ENTRY */ 06000002 */* D (YES,NODDEN,NO,) IS IT = 0 */ 06010002 */* P MOVE DD ENTRY IDS TO BUFFER */ 06020002 */* S BRWRITE: PRINT DD ENTRY IDS */ 06030002 */*TIOTLP3: P CALCULATE DD ENTRY OFFSET */ 06040002 */* S HEXCNVT: CONVERT OFFSET */ 06050002 */* S WRDCNVT: CONVERT FIRST WORD OF DD ENTRY */ 06060002 */* P BUMP TO NAME ENTRY; LOAD LOOP COUNT */ 06070002 */*TIOTLP1: S BRREAD: GET 4 BYTES OF DD NAME */ 06080002 */* P MOVE 4 BYTES OF NAME TO BUFFER */ 06090002 */* P BUMP ADDR PTRS */ 06100002 */* D (NO,TIOTLP1,YES,) FULL DDNAME GOTTEN */ 06110002 */* S BRREAD: GET TTR-STC FIELD OF DD ENTRY */ 06120002 */* S WRDCNVT: CONVERT TTR-STC FIELD */ 06130002 */* P DECREMENT LENGTH OF DD ENTRY */ 06140002 */* D (NO,TIOTPRT1,YES,) IS IT > 0 */ 06150002 */* P DIVIDE LENGTH BY 4 */ 06160002 */* D (NO,TIOTPRT1,YES,) RESULTS > 0 */ 06170002 */*TIOTLP2: P INCREASE ADDR TO DEVICE ENTRY */ 06180002 */* S BRREAD: GET DEVICE ENTRY */ 06190002 */* S WRDCNVT: CONVERT DEVICE ENTRY */ 06200002 */* S BRWRITE: PRINT A TIOT DDNAME ENTRY LINE */ 06210002 */* D (NO,TIOTLP2,YES,) ALL DEVICE ENTRIES DONE */ 06220002 */*TIOTPRT1: S BRREAD: GET NEXT DD ENTRY */ 06230002 */* D (YES,TIOTDN1,NO,) IS ITS LENGTH = 0 */ 06240002 */* D (YES,,NO,TIOTLP3) ARE THERE > 255 DD'S? */ 06250002 */* P PRINT INFINITE LOOP IN TIOT MESSAGE */ 06260002 */*TIOTDN1: P RESTORE PREVIOUS ERROR RTN ADDR AND REGS */ 06270002 */* R RETURN */ 06280002 */*NODDEN: S (,TIOTDN1) BRWRITE: SPACE A LINE */ 06290002 */*NOTIOT: P MOVE NO TIOT MSG TO BUFFER */ 06300002 */* S (,TIOTDN1) BRWRITE: PRINT THE MSG */ 06310002 */*TIONVLD: P MOVE NOT VALID MSG TO BUFFER */ 06320002 */* S (,TIOTDN1) BRWRITE: PRINT THE MSG */ 06330002 */*TIOTERR: N ERROR FORMATTING TIOT ... PRINT ERROR MSG & RETURN */ 06340002 */* P SET UP ADDRESSABILITY */ 06350002 */* S BRWRITE: SPACE A LINE */ 06360002 */* P MOVE TIOT ERROR MSG TO BUFFER */ 06370002 */* S (,TIOTDN1) BRWRITE: PRINT THE MSG */ 06380002 */*AMDPRFCB: END */ 06390002 EJECT 09027802 EQUATES 09028002 OUTBUFM 09028202 COMMON 09028402 AMDPRFTC CSECT 09028602 SPACE 09028802 *********************************************************************** 09030002 * *** AMDPRFTC - TCB PRINT *** * 09050002 * * 09070002 * STATUS--OS/VS2 RELEASE 2.0 * 09090002 * * 09110002 * FUNCTION-- * 09130002 * THIS ROUTINE FORMATS AND PRINTS THE TCB. * 09150002 * * 09170002 * ENTRY POINTS-- * 09190002 * AMDPRFTC IS THE ONLY ENTRY. CONTROL IS RECIEVED FROM AMDPRFSC. * 09210002 * STANDARD SUBROUTINE LINKAGE USED. * 09230002 * * 09250002 * INPUTS-- * 09270002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 09290002 * REGISTER 2 - TCB ADDRESS TO BE FORMATTED * 09310002 * REGISTER 12 - ADDRESS OF COMMON AREA * 09330002 * CURTCB - FIELD DEFINED IN THIS CSECT BUT INITIALIZED BY * 09350002 * AMDPRFSC TO POINT TO THE CURRENT TCB IN THE DUMP * 09351402 * * 09352002 * OUTPUT-- * 09370002 * WRITES FORMATTED TCB AND IF THE TCB IS THE CURRENT TCB, * 09390002 * SO INDICATES. * 09410002 * WRITES MESSAGE 'TASK HAS TERMINATED' AND ERROR MESSAGE 'ERROR * 09430002 * FORMATTING TCB' * 09450002 * IF TASK HAS TERMINATED, RETURN CODE IS 4, OTHERWISE IT IS 0 * 09470002 * * 09490002 * EXTERNAL REFERENCES-- * 09510002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 09530002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 09550002 * AMDPRGFR - FROM AN ADDRESS IN COMMON, TO FORMAT A LINE * 09570002 * DESCRIBED BY THE FMTPTRN MACRO INSTRUCTION. * 09590002 * WRDCNVT - FROM AN ADDRESS IN COMMON, TO CONVERT 4 BYTES * 09610002 * TO PRINTABLE HEX. * 09630002 * * 09650002 * EXITS,NORMAL-- * 09670002 * RETURN TO CALLER THROUGH STANDARD LINKAGE UNLESS 'STOP' HAS * 09690002 * BEEN ENTERED BY OPERATOR IN WHICH CASE CONTROL RETURNS TO * 09710002 * STOP ROUTINE WITHOUT RESTORING REGISTERS. * 09730002 * * 09750002 * EXITS,ERROR-- * 09770002 * SAME AS NORMAL EXIT * 09790002 * * 09810002 * TABLES/WORK AREAS-- * 09830002 * FMTPTRN MACRO IS USED TO GENERATE A PATTERN FOR THE FORMATTED * 09850002 * TCB * 09870002 * * 09890002 * ATTRIBUTES-- REUSABLE * 09910002 * * 09930002 * CHARACTER CODE DEPENDENCY-- NONE * 09950002 * * 09970002 * NOTES-- * 09990002 * BRREAD ERROR HANDLER: IF A TCB CANNOT BE READ FROM THE INPUT * 10010002 * DUMP, A MESSAGE IS PRINTED AND CONTROL RETURNS TO AMDPRFSC. * 10030002 * * 10050002 *********************************************************************** 10070002 SPACE 10090002 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 10130002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 10150002 USING *,BASE1 10170002 TCBPRBAS LA R3,TCBSAVE SAVE AREA CHAINING 10190002 ST R13,TCBSAVE+4 10210002 ST R3,8(R13) 10230002 LR R13,R3 10250002 SPACE 10270002 USING COMMON,COMBASE 10290002 MVC TCBERSV,ERRADDR SAVE PREVIOUS ERROR ROUTINE ADDR 10310002 LA R15,TCBPRER ADDR OF TCBPRNT ERROR ROUTINE 10330002 ST R15,ERRADDR STORE IN ERROR ROUT ADDR WORD 10350002 TCBPRNTA EQU * 10390002 L BUFREG,CURBUF LOAD BUFFER ADDR 10410002 USING OUTBUF,BUFREG @Y02006 10411002 C R2,CURTCB IS THIS TCB THE CURRENT TCB 10470002 BNE TCBPRNT5 NO--BR AROUND NEXT INSTRUCTIONS 10490002 CH R0,QASID IS THIS THE CURRENT ASID @Y02006 10494002 BNE TCBPRNT5 NO, BRANCH @Y02006 10498002 MVC ADDR+46(28),CURMSG MOVE CURRENT TASK MSG TO BUFFER 10510002 BRWRITE 2 PRINT MSG 10530002 TCBPRNT5 ST R2,TCBLN11 PLACE TCB ADDR IN PATTERN 10550002 LA PREG,TCBLN1 LOAD ADDR OF PATTERN FOR FIRST LINE 10570002 * OF TCB 10590002 BAL R9,TCBFMPR FORMAT AND PRINT FIRST LINE OF TCB 10610002 EJECT 10650002 SPACE 2 10670002 *********************************************************************** 10690002 * * 10710002 * ROUTINE TO FORMAT AND PRINT AOS/2 TCB * 10730002 * * 10750002 *********************************************************************** 10770002 SPACE 10790002 LA PREG,TCBLN2 ADDR OF PATTERN 10850002 BAL R9,TCBFMPR FORMAT AND PRINT LINE 2 OF TCB 10870002 LA R3,48 LOAD INDEX TO TCB REGS 10890002 LA R15,TCBPTRG GET ADDRESS REG PRINT ROUTINE 10910002 BALR RETREG,R15 LINK TO IT 10930002 LA PREG,112(R2) ADDR OF NEXT FIELD AFT REGS IN TCB 10950002 ST PREG,TCBLN31 STORE INTO PATTERN 10970002 LA PREG,TCBLN3 ADDR OF PATTERN 11050002 BAL R9,TCBFMPR FORMAT AND PRINT LINE 5 OF TCB 11070002 LA PREG,TCBLN4 ADDR OF PATTERN 11130002 BAL R9,TCBFMPR FORMAT AND PRINT LINE 6 OF TCB 11150002 LA PREG,TCBLN5 ADDR OF PATTERN X01980 11210002 BAL R9,TCBFMPR FORMAT AND PRINT LINE 7 OF TCBX01980 11230002 LA PREG,TCBLN8 ADDR OF PATTERN X01980 11290002 BAL R9,TCBFMPR FORMAT AND PRINT LN 8 OF TCB X01980 11310002 LA PREG,TCBLN9 ADDR OF PATTERN X01980 11370002 BAL R9,TCBFMPR FORMAT AND PRINT LN 9 OF TCB X01980 11390002 LA PREG,TCBLN10 ADDR OF PATTERN Y01980 11450002 BAL R9,TCBFMPR FORMAT AND PRINT LN 10 OF TCB Y01980 11470002 LA PREG,TCBL11 ADDR OF PATTERN @Y02006 11474002 BAL R9,TCBFMPR FORMAT, PRINT LN 11 OF TCB @Y02006 11478002 LA PREG,TCBL12 ADDR OF PATTERN @OZ17662 11482000 BAL R9,TCBFMPR FMT & PRINT LINE 12 OF TCB @OZ17662 11486000 LA PREG,208(R2) ADDR OF TCB EXT2 X01980 11490002 BRREAD (PREG),ASID=(R0) READ EXT2 ADDR @Y02006 11510002 ICM PREG,7,1(PREG) GET PTR TO EXT2 @Y02006 11530002 BZ TCBPRNTC IF 0, SKIP EXT2 @Y02006 11540002 ST PREG,TCBE2L11 STORE INTO PATTERN X01980 11550002 LA PREG,TCBE2LN1 ADDR OF PATTERN X01980 11570002 BAL R9,TCBFMPR FORMAT AND PRINT LN 1 OF EXT2 X01980 11590002 B TCBPRNTC PREPARE FOR RETURN TO FORMAT X01980 11610002 SPACE 2 11630002 *********************************************************************** 11650002 * * 11670002 * FORMAT PRINT LINE FOR TCB AND PRINT THE LINE * 11690002 * * 11710002 *********************************************************************** 11730002 SPACE 11750002 TCBFMPR L R15,AFMTLINE LOAD ADDR OF LINE FORMAT ROUT 11770002 BALR RETREG,R15 FORMAT THE TCB LINE 11790002 BRWRITE 1 PRINT THE LINE 11810002 BR R9 RETURN TO CALLER 11830002 SPACE 3 11850002 *********************************************************************** 11870002 * * 11890002 * PREPARE FOR RETURN TO FORMAT ROUTINE * 11910002 * * 11930002 *********************************************************************** 11950002 SPACE 11970002 TCBPRNTC EQU * 11990002 LA PREG,TCBFLGS+4(R2) ADDR OF FIFTH FLAG BYTE OF TCB 12010002 BRREAD (PREG),DATA,ASID=(R0) @Y02006 12030002 TM 0(PREG),X'80' IS TASK TERMINATED 12050002 BZ TCBPRNT8 BR IF IT ISN'T 12070002 BRWRITE 1 SPACE A LINE 12090002 MVC ADDR(19),TERMMSG MOVE TERMINATED MSG TO BUFFER 12110002 BRWRITE 3 PRINT MSG AND SPACE 3 LINES 12130002 LA R15,4 LOAD RETURN CODE OF 4 12150002 B TCBPRDN1 RETURN TO FORMAT 12170002 TCBPRNT8 BRWRITE 2 SPACE 2 LINES 12190002 TCBPRDN SR R15,R15 ZERO RETURN CODE 12210002 TCBPRDN1 MVC ERRADDR,TCBERSV RESTORE PREVIOUS ERROR ROUTINE ADDR 12230002 L R13,4(R13) POINT TO CALLER'S SAVE AREA 12250002 L R14,12(R13) 12270002 LM R0,R12,20(R13) RESTORE CALLERS REGS 12290002 BR RETREG RETURN TO FORMAT ROUTINE 12310002 SPACE 3 12330002 *********************************************************************** 12350002 * * 12370002 * FORMAT OR I/O ERROR...RETURN TO FORMAT ROUTINE * 12390002 * * 12410002 *********************************************************************** 12430002 SPACE 12450002 DROP BASE1 12470002 USING TCBPRER,R15 12490002 TCBPRER LA R13,TCBSAVE GET TCB PRINT'S SAVE AREA 12510002 LM R14,R12,12(R13) RESTORE OUR REGS 12530002 DROP R15 12550002 USING TCBPRBAS,BASE1 SHIFT BACK TO REG 11 AS BASE 12570002 L BUFREG,CURBUF RELOAD BUFFER ADDR 12590002 BRWRITE 1 SPACE A LINE 12591002 MVC ADDR(20),TCBERMSG MOVE ERROR MSG TO BUFFER 12610002 BRWRITE 3 PRINT ERROR MSG 12630002 B TCBPRDN RETURN TO FORMAT 12650002 DROP BASE1 12670002 EJECT 12690002 *********************************************************************** 12710002 * * 12730002 * THIS ROUTINE WILL PRINT THE REGISTERS FOR TCBPRNT ROUTINE AND * 12750002 * RBPRNT ROUTINE * 12770002 * * 12790002 *********************************************************************** 12810002 SPACE 12830002 USING *,R15 12850002 TCBPTRG STM R4,R9,TCBRGSV SAVE R4 - R9 12870002 LR R7,R15 SHIFT TO REG 7 AS BASE FOR CALLS 12890002 * TO READ AND AD-CONVERT 12910002 DROP R15 12930002 USING TCBPTRG,R7 12950002 ST RETREG,TCBRGSV+24 SAVE RETURN ADDR 12970002 MVC ADDR+13(6),REG1 MOVE 'RG 0-7' TO BUFFER @Y02006 13070002 LA R8,2 LOAD OUTER LOOP CNT 13110002 TCBPTRG1 LA R4,ADDR+22 LOAD WHERE-TO-PUT-IT ADDR 13130002 LA R9,8 LOAD INNER LOOP CNT 13150002 TCBPTRG2 LA PREG,0(R3,R2) LOAD ADDR OF GPRS 13170002 * 13171002 * ERL - SIGNAL BRREAD TO GENERATE 13190002 * NEW P-LIST 13210002 &PARMLST SETB 1 13230002 BRREAD (PREG),DATA,ASID=(R0) @Y02006 13250002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 13270002 BALR RETREG,R15 CONVERT GPR TO PRINTABLE HEX 13290002 AH R3,FOUR INCR WORD INDEX 13310002 AH R4,ELEVEN INCR WHERE-TO-PUT-IT ADDR 13330002 BCT R9,TCBPTRG2 LOOP FOR 8 GPRS 13350002 BRWRITE 1 PRINT LINE 13370002 BCT R8,TCBPTRG6 LOOP FOR 2 LINES @Y02006 13390002 L RETREG,TCBRGSV+24 RESTORE RETURN ADDR 13410002 LM R4,R9,TCBRGSV RELOAD SAVED REGS 13430002 * *** NOTE BASE GETS COLBERED ON LOAD 13450002 BR RETREG RETURN TO CALLER 13470002 SPACE 13490002 TCBPTRG6 MVC ADDR+13(7),REG2 MOVE 'RG 8-15' TO BUFFER 13610002 B TCBPTRG1 CONTINUE WITH REGS 8-15 13630002 EJECT 13650002 *********************************************************************** 13670002 * * 13690002 * CONSTANTS AND SAVE AREA FOR TCBPRNT * 13710002 * * 13730002 *********************************************************************** 13750002 SPACE 13770002 ENTRY CURTCB REFERENCED BY AMDPRFSC @Y02006 13771002 CURTCB DC A(0) FILLED IN BY AMDPRFSC @Y02006 13772002 TCBSAVE DC 18F'0' SAVE AREA FOR TCB PRINT 13790002 TCBERSV DC F'0' SAVE AREA FOR ERROR ROUTINE ADDR 13830002 TCBRGSV DC 7F'0' SAVE AREA FOR TCB REGS PRINT ROUT 13850002 SPACE 13870002 * PATTERN FOR LINE 1 OF TCB 13890002 TCBLN1 FMTPTRN (LBL,DTA,LBLP,DTAP,DTAC),3,3,0,5,(TCBID1),(TCBLN11+1) 13910002 FMTPTRN (LBL,DTA,DTAP),3,4,13,19,,(TCBLN11,0) 13930002 FMTPTRN (LBL,DTA),3,4,30,38 13950002 FMTPTRN (LBL,DTA),3,4,49,55 @Y02006 13970002 FMTPTRN (LBL,DTA),3,4,66,72 @Y02006 13990002 FMTPTRN (LBL,DTA),3,4,83,90 @Y02006 14010002 FMTPTRN (LBL,DTA),3,4,101,108,,,LAST @Y02006 14030002 SPACE 14050002 * PATTERN FOR LINE 2 OF TCB 14070002 TCBLN2 FMTPTRN (LBL,DTA),3,4,13,19 14090002 FMTPTRN (LBL,DTA),6,4,30,38 14110002 FMTPTRN (LBL,DTA),3,4,49,55 @Y02006 14130002 FMTPTRN (LBL,DTA),3,4,66,72 @Y02006 14150002 FMTPTRN (LBL,DTA),3,4,83,90 @Y02006 14170002 FMTPTRN (LBL,DTA),3,4,101,108,,,LAST @Y02006 14190002 SPACE 14210002 * PATTERN FOR LINE 5 OF TCB 14230002 TCBLN3 FMTPTRN (LBL,LBLP,DTA,DTAP),3,4,13,19,(TCBID3),(TCBLN31,0) 14250002 FMTPTRN (LBL,DTA),3,4,30,38 14270002 FMTPTRN (LBL,DTA),3,4,49,55 @Y02006 14290002 FMTPTRN (LBL,DTA),5,4,66,72 @Y02006 14310002 FMTPTRN (LBL,DTA),3,4,83,90 @Y02006 14330002 FMTPTRN (LBL,DTA),3,4,101,108,,,LAST @Y02006 14350002 SPACE 14370002 * PATTERN FOR LINE 6 OF TCB 14390002 TCBLN4 FMTPTRN (LBL,LBLP,DTA),3,4,13,19,(TCBID4) 14410002 FMTPTRN (LBL,DTA),3,4,30,38 14430002 FMTPTRN (LBL,DTA),3,4,49,55 @Y02006 14450002 FMTPTRN (LBL,DTA),5,4,66,72 @Y02006 14470002 FMTPTRN (LBL,DTA),5,4,83,90 @Y02006 14490002 FMTPTRN (LBL,DTA),3,4,101,108,,,LAST @Y02006 14510002 SPACE 14530002 * PATTERN FOR LINE 7 OF TCB 14550002 TCBLN5 FMTPTRN (LBL,LBLP,DTA),4,4,13,19,(TCBID5) @Y02006 14570002 FMTPTRN (LBL,DTA),3,4,30,38 14590002 FMTPTRN (LBL,DTA),4,4,49,55 @Y02006 14610002 FMTPTRN (LBL,DTA),4,4,66,72 @Y02006 14630002 FMTPTRN (LBL,DTA),5,4,83,90 @Y02006 14650002 FMTPTRN (LBL,DTA),4,4,101,108,,,LAST @Y02006 14670002 * PATTERN FOR LINE 8 OF TCB 14690002 TCBLN8 FMTPTRN (LBL,DTA,LBLP),5,4,13,19,(TCBID8) @OZ17662 14710000 FMTPTRN (LBL,DTA),5,4,30,38 @Y02006 14730002 FMTPTRN (LBL,DTA),5,4,49,55 /* OZ09006 */ 14750000 FMTPTRN (LBL,DTA),4,4,66,72 @Y02006 14770002 FMTPTRN (LBL,DTA),4,4,83,90 @Y02006 14790002 FMTPTRN (LBL,DTA),3,4,101,108,,,LAST @Y02006 14810002 * PATTERN FOR LINE 9 OF TCB 14830002 TCBLN9 FMTPTRN (LBL,LBLP,DTA),4,4,13,19,(TCBID9) @Y02006 14850002 FMTPTRN (LBL,DTA),4,4,30,38 @Y02006 14870002 FMTPTRN (LBL,DTA),4,4,49,55 @Y02006 14890002 FMTPTRN (LBL,DTA),4,4,66,72 @Y02006 14910002 FMTPTRN (LBL,DTA),4,4,83,90 @Y02006 14930002 FMTPTRN (LBL,DTA),5,4,101,108,,,LAST @Y02006 14950002 * PATTERN FOR LINE 10 OF TCB 14970002 TCBLN10 FMTPTRN (LBL,LBLP,DTA),5,4,13,19,(TCBID10) @Y02006 14990002 FMTPTRN (LBL,DTA),7,4,30,38 Y01980 15010002 FMTPTRN (LBL,DTA),4,4,49,55 @OZ17662 15030000 FMTPTRN (LBL,DTA),3,4,66,72 @Y02006 15050002 FMTPTRN (LBL,DTA),3,4,83,90 @Y02006 15070002 FMTPTRN (LBL,DTA),5,4,101,108,,,LAST /* OZ09006 */ 15074000 * PATTERN FOR LINE 11 OF TCB @Y02006 15078002 TCBL11 FMTPTRN (LBL,DTA,LBLP),5,4,13,19,(TCBID11) @Y02006 15082002 FMTPTRN (LBL,DTA),5,4,30,38 @Y02006 15086002 FMTPTRN (LBL,DTA),5,4,49,55 @Y02006 15086802 FMTPTRN (LBL,DTA),5,4,66,72 @Y02006 15087602 FMTPTRN (LBL,DTA),6,4,83,90 @Y02006 15088402 FMTPTRN (LBL,DTA),6,4,101,108,,,LAST @Y02006 15089202 ** PATTERN FOR LINE 12 OF TCB @OZ17662 15089300 TCBL12 FMTPTRN (LBL,DTA,LBLP),3,4,13,19,(TCBID12) @OZ17662 15089400 FMTPTRN (LBL,DTA),4,4,30,38 @OZ17662 15089500 FMTPTRN (LBL,DTA),5,4,49,55 @OZ17662 15089600 FMTPTRN (LBL,DTA),5,4,66,72,,,LAST @OZ17662 15089700 * PATTERN FOR LINE 1 OF TCB EXTENSION 2 15090002 TCBE2LN1 FMTPTRN (LBL,LBLP),4,,5,,(TCBE2ID1) X01980 15110002 FMTPTRN (LBL,DTA,DTAP),3,4,13,19,,(TCBE2L11,0) Y01980 15130002 FMTPTRN (LBL,DTA),4,4,30,38 @OZ24844 15150000 FMTPTRN (LBL,DTA),5,4,49,55,,,LAST @OZ24844 15160000 TCBID1 DC C'TCBRBPPIEDEBTIOCMPTRNMSSPK-FLGFLGLLSJLBJPQ' @Y02006 15170002 TCBID3 DC C'FSATCBTMEJSTCBNTCOTC' @Y02006 15190002 TCBID4 DC C'LTCIQEECBTSFLGD-PQEAQE' @Y02006 15230002 TCBID5 DC C'STABTCTUSERNDSPMDIDSJSCB' Y01980 15250002 TCBID8 DC C'DDEXCIOBRCEXCPDEXT1BITSDAR' @OZ17662 15350000 TCBID9 DC C'EXT2AECBTIRBBACKRTWAIOTIM' LABELS FOR 8TH LN @Y02006 15370002 TCBID10 DC C'TMSAVSBR-TIDXSCTFOESWASTAWA' @OZ17662 15390000 TCBID11 DC C'TCBIDRTM12ESTAEUKYSPCPU-AFFBYTES' @Y02006 15398002 TCBID12 DC C'RPTDBTBSWASASVCA2' @OZ17662 15404000 TCBE2ID1 DC C'EXT2GTFRCMPEVENT' LABELS FOR EXT2 1ST LINE @OZ24844 15410000 CURMSG DC C'***** CURRENT TASK *****' 15530002 TERMMSG DC C'TASK HAS TERMINATED' 15550002 TCBERMSG DC C'ERROR FORMATTING TCB' 15570002 REG1 DC C'RG 0-7' 15590002 REG2 DC C'RG 8-15' 15610002 FTCPCH DC 18F'0' PATCH AREA X01980 15670002 SPACE 15690002 DROP COMBASE,R7 15710002 EJECT 15730002 AMDPRFRB CSECT 15750002 SPACE 15770002 *********************************************************************** 15790002 * *** AMDPRFRB - RB PRINT *** * 15810002 * * 15830002 * STATUS--OS/VS2 RELEASE 2.0 * 15850002 * * 15870002 * FUNCTION-- * 15890002 * THIS ROUTINE FORMATS AND PRINTS THE RB'S IN THE RB CHAIN OFF * 15910002 * THE TCB * 15930002 * * 15950002 * ENTRY POINTS-- * 15970002 * AMDPRFRB IS THE ONLY ENTRY. CONTROL IS RECEIVED FROM AMDPRFSC. * 15990002 * STANDARD SUBROUTINE LINKAGE USED. * 16010002 * * 16030002 * INPUTS-- * 16050002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 16070002 * REGISTER 2 - TCB ADDRESS FOR WHICH RB'S ARE TO BE FORMATTED * 16090002 * REGISTER 12 - ADDRESS OF COMMON AREA * 16110002 * * 16130002 * OUTPUTS-- * 16150002 * WRITES FORMATTED RB CHAIN * 16170002 * WRITES MESSAGE 'INFINITE LOOP IN RB CHAIN' IF MORE THAN 50 * 16190002 * RB'S ARE IN THE CHAIN. * 16210002 * WRITES ERROR MESSAGE 'RB FORMAT ERROR','FORMAT ERROR READING CDE'* 16230002 * 'FORMAT ERROR READING LPDE' * 16232002 * * 16250002 * EXTERNAL REFERENCES-- * 16270002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 16290002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 16310002 * AMDPRTSV - FROM ADDRESSES IN COMMON, THIS CSECT IS USED * 16330002 * TO SAVE, RETRIEVE, AND REMOVE RB'S FROM AN RBLIST* 16350002 * WRDCNVT - FROM AN ADDRESS IN COMMON, TO CONVERT 4 BYTES * 16370002 * TO PRINTABLE HEX. * 16390002 * ADRCNVT - FROM ADDRESS IN COMMON, TO CONVERT 3 BYTES TO * 16410002 * PRINTABLE HEX. * 16430002 * * 16450002 * EXITS,NORMAL-- * 16470002 * RETURN TO CALLER THROUGH STANDARD LINKAGE UNLESS 'STOP' HAS * 16490002 * BEEN ENTERED BY OPERATOR IN WHICH CASE CONTROL RETURNS TO * 16510002 * STOP ROUTINE WITHOUT RESTORING REGISTERS. * 16530002 * * 16550002 * EXITS,ERROR-- * 16570002 * NONE--PROCESSING CONTINUES AFTER AN ERROR MESSAGE IS PRINTED * 16590002 * * 16610002 * TABLES/WORK AREAS-- * 16630002 * AN RBLIST IS CONSTRUCTED BY A BRANCH TO AMDPRTSV. THIS LIST * 16650002 * CONTAINS THE RB'S TO BE FORMATTED. THE FORMAT IS THE SAME * 16670002 * AS THE TCBLIST. * 16690002 * * 16710002 * ATTRIBUTES-- REUSABLE * 16730002 * * 16750002 * CHARACTER CODE DEPENDENCY-- NONE * 16770002 * * 16790002 * NOTES-- * 16810002 * BRREAD ERROR HANDLER: IF A PORTION OF AN RB CANNOT BE READ * 16830002 * FROM THE INPUT DUMP, A MESSAGE IS PRINTED AND PROCESSING * 16850002 * CONTINUES WITH THE NEXT RB. * 16870002 * * 16890002 *********************************************************************** 16910002 SPACE 16930002 RBNEXT EQU 28 16950002 RBPFXS EQU 24 BACK DISPL TO USEABLE PREFIX @Y02006 16970002 RDCDE EQU X'80' @YA01753 16974002 RDLPDE EQU X'40' @YA01753 16978002 GOTRB EQU X'20' @Y02006 16979002 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 16990002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 17010002 USING *,BASE1 17030002 RBPRNBAS LA R3,RBPRNTSV SAVE AREA CHAINING 17050002 ST R13,RBPRNTSV+4 17070002 ST R3,8(R13) 17090002 LR R13,R3 17110002 SPACE 17130002 USING COMMON,COMBASE 17150002 USING OUTBUF,BUFREG 17170002 NI SVRBI,X'00' INITIALIZE TO ZERO /* OZ09006 */ 17180000 SPACE 17190002 MVC RBERRSV,ERRADDR SAVE CURRENT ERROR ROUTINE ADDR 17210002 LA R15,RBERROR1 ADDR OF RB ERROR ROUTINE 17230002 ST R15,ERRADDR STORE IN ERROR ADDR WORD 17250002 MVC RBSTPSV(4),STOPEXIT SAVE CALLER' STOP ROUTINE ADDRESS 17270002 LA R15,RBSTP GET ADDRESS OF RB-PRINT STOP RTN. 17290002 ST R15,STOPEXIT STORE IN COMMON CSECT 17310002 L BUFREG,CURBUF LOAD BUFFER BASE 17330002 BAL R9,RBPRGE GO PURGE POSSIBLE RB ADDRS ON RBLIST 17350002 XC RBCNT,RBCNT ZERO RB COUNT 17370002 XC RBCNT1,RBCNT1 ZERO RB COUNT1 17390002 LR R4,R2 LOAD TCB ADDR TO R4 17410002 RBLOOP1 BRREAD (R2),DATA,ASID=(R0) @Y02006 17430002 L R2,0(PREG) LOAD RB ADDR 17450002 LA R2,0(R2) CLEAR POSSIBLE WAIT COUNT 17470002 LTR R2,R2 IS IT ZERO 17490002 BZ RBPRNT1 YES--ASSUME END OF CHAIN 17510002 CR R4,R2 COMPARE TO TCB ADDR 17530002 BE RBPRNT1 EQUAL--LAST RB POINTS TO TCB 17550002 BAL R9,RBSAVE SAVE RB ADDR ON RBLIST 17570002 LA R2,RBNEXT(R2) LOAD ADDR OF PTR TO NEXT RB 17590002 B RBLOOP1 LOOP TO END OF CHAIN 17610002 SPACE 2 17630002 *********************************************************************** 17650002 * * 17670002 * PRINT RBS IN THE REVERSE ORDER AS THEY EXISTED ON THE CHAIN * 17690002 * NOTE THAT RBERROR1IS THE BRREAD ERROR ROUTINE FOR THE ABOVE BREADS* 17710002 * ONLY * 17730002 * * 17750002 *********************************************************************** 17770002 SPACE 17790002 DROP BASE1 X01980 17810002 USING RBERROR1,R15 X01980 17830002 RBERROR1 LA R13,RBPRNTSV GET ADDRESS OF RB PRINT'S SAVE AREA 17850002 LM R14,R12,12(R13) RESTORE OUR REGS X01980 17870002 DROP R15 X01980 17890002 USING RBPRNBAS,BASE1 SHIFT BACK TO REG 11 AS BASE X01980 17910002 TM SWITCH1,GOTRB WERE ANY RBS FOUND @Y02006 17911002 BO RBPRNT1 YES, FORMAT THEM @Y02006 17912002 LA R15,RBERROR NO, FORMAT ERROR @Y02006 17913002 BR R15 @Y02006 17914002 RBPRNT1 LA R15,RBERROR ADDR OF REAL ERROR RTN X01980 17930002 ST R15,ERRADDR STORE IN ERROR ADDR WORD X01980 17950002 NI SWB,XFF-FMTERR-IOERR RESET ERROR SWITCHES X01980 17970002 MVC ADDR(10),ACTRBS MOVE 'ACTIVE RBS' TO BUFFER X01980 17990002 BRWRITE 2 PRINT AS HEADING 18010002 BAL R9,RBGET GET NEXT RB 18030002 LTR R2,R2 AM I DONE 18050002 BZ RBDONE YES--RETURN TO FORMAT ROUTINE 18070002 RBPRNT2 LA PREG,8(R2) 18090002 BRREAD (PREG) 18110002 MVC RBSIZE(1),1(PREG) SAVE RB SIZE 18130002 MVZ RBTYPE(1),2(PREG) SAVE RB TYPE 18150002 ST R2,RBWORK STORE RB ADDR TO BE CONVERTED 18170002 LA PREG,RBWORK LOAD ADDR OF RB ADDR FOR CONVERT 18190002 * ROUTINE 18210002 LA R4,ADDR+5 LOAD ADDR OF WHERE TO PUT CONVERTED 18230002 * ADDRESS 18250002 L R15,AADRCNVT LOAD ADDR OF CONVERT ROUTINE 18270002 BALR RETREG,R15 CONVERT RB ADDRESS 18290002 TM RBTYPE,X'C0' TEST FOR TYPE OF RB 18310002 BO RBSVRB BR IF SVRB 18330002 BM RBIRB RB IF IRB OR SIRB 18350002 LA R7,PRBIDX LOAD ADDR OF PRB INDEX 18370002 MVC ADDR(4),PRB MOVE TYPE TO OUTPUT LINE Y01980 18390002 B RBPRNT4 CONTINUE 18410002 RBSVRB TM RBTYPE,X'10' TEST FOR TRANSIENT SVRB 18430002 BO RBTSVRB BR IF TRANSIENT 18450002 LA R7,RSVRBIDX LOAD ADDR OF RES SVRB INDEX 18470002 MVC ADDR(4),SVRB MOVE TYPE TO OUTPUT LINE Y01980 18490002 OI SVRBI,X'0F' INDICATE SVRB /* OZ09006 */ 18500000 B RBPRNT4 CONTINUE 18510002 RBTSVRB LA R7,TSVRBIDX LOAD ADDR OF TRANSIENT SVRB INDEX 18530002 MVC ADDR(4),SVRB MOVE TYPE TO OUTPUT LINE Y01980 18550002 OI SVRBI,X'0F' INDICATE SVRB /* OZ09006 */ 18560000 B RBPRNT4 CONTINUE 18570002 RBIRB TM RBTYPE,X'80' TEST FOR SIRB 18590002 BO RBSIRB BR IF SIRB 18610002 TM RBTYPE,X'60' TEST FOR TIRB Y10980 18630002 BO RBTIRB BR IF TIRB Y01980 18650002 LA R7,IRBIDX LOAD ADDR OF IRB INDEX 18670002 MVC ADDR(4),IRB MOVE TYPE TO OUTPUT LINE Y01980 18690002 B RBPRNT4 CONTINUE 18710002 RBSIRB LA R7,SIRBIDX LOAD ADDR OF SIRB INDEX 18730002 MVC ADDR(4),SIRB MOVE TYPE TO OUTPUT LINE Y01980 18750002 B RBPRNT4 CONTINUE Y01980 18770002 RBTIRB LA R7,TIRBIDX LOAD ADDR OF TIRB INDEX Y01980 18790002 MVC ADDR(4),TIRB MOVE TYPE TO OUTPUT LINE Y01980 18810002 RBPRNT4 LR PREG,R2 ADDR OF RB Y01980 18830002 LA R5,RBPFXS DISPL TO BEGIN FIELD OF PREF Y01980 18850002 SR PREG,R5 POINT TO BEGIN FIELD OF PREF Y01980 18870002 ST PREG,RBPFXD01 STORE INTO PATTERN Y01980 18890002 LA PREG,RBPFXLN1 ADDR OF PATTERN Y01980 18910002 L R15,AFMTLINE ADDR OF LINE FORMAT RTN Y01980 18930002 BALR RETREG,R15 FORMAT RB PREFIX LINE Y01980 18950002 BRWRITE 1 PRINT THE LINE Y01980 18970002 IC R3,0(R7) LOAD ID INDEX FOR FIRST ID Y01980 18990002 LA R5,RBIDS(R3) ADDR OF CORRECT RB ID 19010002 MVC ADDR+13(6),0(R5) MOVE 'RESP', 'NM', 'FL-CDE', OR 19030002 * 'TAB-LN' TO OUTPUT BUFFER 19050002 BRREAD (R2) RB ADDR IN REG 2 19070002 LA R4,ADDR+20 LOAD ADDR OF WHERE IT'S TO GO 19090002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 19110002 BALR RETREG,R15 CONVERT THE FIELD 19130002 MVC ADDR+31(4),APSW MOVE 'APSW' TO OUTPUT BUFFER 19150002 LA PREG,4(R2) ADDR OF APSW IN RB 19170002 BRREAD (PREG) 19190002 LA R4,ADDR+38 ADDR OF WHERE TO PUT APSW 19210002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 19230002 BALR RETREG,R15 CONVERT APSW 19250002 MVC ADDR+49(7),WC MOVE 'SZ-STAB' TO BUFFER Y01980 19270002 LA PREG,8(R2) ADDR OF THE FIELD IN RB 19290002 BRREAD (PREG) 19310002 LA R4,ADDR+60 ADDR OF WHERE TO PUT IT 19330002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 19350002 BALR RETREG,R15 CONVERT SZ-STAB FIELD OF RB 19370002 IC R3,1(R7) LOAD ID INDEX 19390002 LA R5,RBIDS(R3) ADDR OF CORRECT ID 19410002 MVC ADDR+71(6),0(R5) MOVE 'FL-CDE','LPDE','RESV',OR 'EPA' 19430002 * TO OUTPUT BUFFER 19450002 LA PREG,12(R2) ADDR OF FIELD IN RB 19470002 BRREAD (PREG) 19490002 LA R4,ADDR+78 ADDR OF LOCATION IN BUFFER FOR RB 19510002 * FIELD 19530002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 19550002 BALR RETREG,R15 CONVERT THIS FIELD OF RB 19570002 MVC ADDR+89(3),PSWNM MOVE 'PSW' TO BUFFER 19590002 LA PREG,16(R2) ADDR OF PSW IN RB 19610002 BRREAD (PREG) 19630002 LA R4,ADDR+93 ADDR FOR LEFT HALF OF RESUME PSW 19650002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 19670002 BALR RETREG,R15 CONVERT LEFT HALF OF PSW 19690002 LA PREG,20(R2) ADDR OF RIGHT HALF OF PSW 19710002 BRREAD (PREG) 19730002 LA R4,ADDR+102 ADDR FOR RIGHT HALF OF PSW 19750002 L R15,AWRDCNVT 19770002 BALR RETREG,R15 CONVERT RIGHT HALF OF PSW 19790002 BRWRITE 1 WRITE FIRST LINE OF RB 19810002 MVC ADDR+13(1),QTTR MOVE 'Q' TO BUFFER Y01980 19830002 LA PREG,24(R2) ADDR OF Q FIELD IN RB 19850002 BRREAD (PREG) 19870002 LA R4,ADDR+20 ADDR OF WHERE TO PUT Q 19890002 L R15,AWRDCNVT 19910002 BALR RETREG,R15 CONVERT Q/TTR FIELD OF RB 19930002 MVC ADDR+31(6),WTLNK MOVE 'WT-LNK' TO BUFFER 19950002 LA PREG,28(R2) ADDR OF WT-LINK FIELD IN RB 19970002 BRREAD (PREG) 19990002 LA R4,ADDR+38 ADDR OF WHERE TO PUT WT-LINK FIELD 20010002 L R15,AWRDCNVT 20030002 BALR RETREG,R15 CONVERT WT-LINK FIELD OF RB 20050002 TM RBTYPE,X'C0' TEST RB TYPE 20070002 BNM PRBPRT BR IF PRB OR SVRB Y01980 20090002 TM RBTYPE,X'40' TEST FOR IRB AND TIRB 20110002 BO RBPRNT3 BR IF IRB OR TIRB 20130002 BRREAD (R2) 20150002 MVC ADDR+49(2),RBNM MOVE 'NM' TO BUFFER 20170002 MVC ADDR+52(8),0(PREG) MOVE ROUTINE NAME TO BUFFER 20190002 RBPRNT3 BRWRITE 1 WRITE LINE Y01980 20210002 *************** THIS CODE BLOCK START CODE FOR ------- /* OZ09006 */ 20210100 TM SVRBI,X'0F' TEST FOR SVRB @OZ09006 20210200 BNO RBPRNT3A NO - BRANCH AROUND @OZ09006 20210300 TM Z9SUFLG,X'01' TEST FOR SUBITS BEING SET @OZ09006 20210400 BNO RBPRNT3A NO - BRANCH AROUND @OZ09006 20210500 TM Z9SUBITS,X'01' TEST FOR SU07 @OZ09006 20210600 BNO RBPRNT3A NO - BRANCH AROUND @OZ09006 20210700 MVC ADDR+13(4),SCBB MOVE SCBB TAG TO OUTPUT BUFFER 20210800 LA PREG,144(R2) SET LOCATION OF DATA @OZ09006 20210900 BRREAD (PREG) READ DATA @OZ09006 20211000 LA R4,ADDR+20 STARTING LOC OF DATA IN OUTPUT BUFF 20211100 LA R3,5 SET FOR 5 TIME LOOP @OZ09006 20211200 BAL R9,DUPOUT MOVE DATA TO OUTPUT BUFFER & PRINT 20211300 MVC ADDR+13(6),FEPARM MOVE FEPARM TAG TO OUTPUT BUFFER 20211400 LA PREG,168(R2) SET LOCATION OF DATA @OZ09006 20211500 BRREAD (PREG) READ DATA @OZ09006 20211600 LA R4,ADDR+20 STARTING LOC OF DATA IN OUTPUT BUFF 20211700 LA R3,6 SET FOR 6 TIME LOOP @OZ09006 20211800 BAL R9,DUPOUT MOVE DATA TO OUTPUT BUFFER & PRINT 20211900 MVC RBNOSAV(2),BAKER0 SET RBSIZE FOR SU07 @OZ24844 20212000 RBPRNT3A NI SVRBI,X'F0' RESET SVRB INDICATOR @OZ09006 20212100 *************** THIS CODE BLOCK END FOR -------------- /* OZ09006 */ 20212200 NI SWITCH1,X'FF'-RDCDE-RDLPDE END OF CDE/LPDE @YA01753 20214002 LA R3,32 INDEX TO RB REGS FOR TCBPTRG Y01980 20230002 L R15,ATCBPTRG GET ADDRESS OF REG PRINT ROUTINE 20250002 BALR RETREG,R15 LINK TO IT 20270002 SR R3,R3 CLEAR IC REG 20290002 IC R3,RBSIZE LOAD RB SIZE IN DOUBLE WORDS 20310002 SLL R3,3 SHIFT TO MAKE IT IN BYTES 20330002 LH R4,RBNOSAV SIZE W/O EXT LIST /* OZ09006 */ 20350000 SR R3,R4 SUBTRACT FROM RB SIZE 20370002 BNP RBPRTDN BR IF NO EXTENDED SAVEAREA 20390002 BAL R9,EXTSAPT PRINT EXTENDED SAVEAREA 20410002 MVC RBNOSAV(2),NINE8 RE-ESTABLISH CONSTANT @OZ24844 20420000 B RBPRTDN GET NEXT RB 20430002 *************** THIS CODE BLOCK START CODE FOR ------- /* OZ09006 */ 20431000 DUPOUT L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN @OZ09006 20432000 BALR RETREG,R15 LINK TO IT @OZ09006 20433000 LA R4,11(R4) ADDR TO PLACE NEXT WORD @OZ09006 20434000 LA PREG,4(PREG) ADDR OF NEXT WORD @OZ09006 20435000 BCT R3,DUPOUT BRANCH IF NOT DONE @OZ09006 20436000 LA PREG,1 INDICATE SPACE 1 LINE @OZ09006 20437000 L R15,AWRITE ADDR OF WRITE ROUTINE @OZ09006 20438000 BALR R14,R15 LINK TO IT @OZ09006 20439000 BR R9 RETURN TO CALLER @OZ09006 20440000 *************** THIS CODE BLOCK END FOR -------------- /* OZ09006 */ 20441000 SPACE 2 20450002 *********************************************************************** 20470002 * * 20490002 * HERE TO PRINT NAME, ENTRY POINT, STARTING ADDR, AND LENGTH OF * 20510002 * MODULES FOR PRBS AND SVRBS * 20530002 * * 20550002 *********************************************************************** 20570002 SPACE 20590002 PRBPRT LA PREG,12(R2) ADDR OF CDE PTR 20610002 BRREAD (PREG) 20630002 L R7,0(PREG) CDE ADDR TO R7 20650002 LA R7,0(R7) CLEAR HIGH ORDER BYTE 20670002 LTR R7,R7 IS THERE A CDE 20690002 BZ RBPRT3 BR IF THERE ISN'T 20710002 TM RBTYPE,X'C0' IS THIS SVRB @YA01753 20730002 BO RBDOLPDE YES, BRANCH @YA01753 20750002 OI SWITCH1,RDCDE INDICATE READING CDE @YA01753 20754002 B PRBPRT1 @YA01753 20758002 RBDOLPDE OI SWITCH1,RDLPDE INDICATE READING LPDE @YA01753 20762002 PRBPRT1 EQU * @YA01753 20766002 LA PREG,8(R7) ADDR OF NAME IN CDE 20770002 BRREAD (PREG) 20790002 MVC ADDR+49(2),RBNM MOVE 'NM' TO BUFFER 20810002 MVC ADDR+52(8),0(PREG) MOVE PROGRAM NAME TO BUFFER 20830002 LA PREG,16(R7) ADDR OF ENTRY POINT 20850002 BRREAD (PREG) 20870002 MVC ADDR+63(3),RBEPA MOVE 'EPA' TO BUFFER 20890002 LA R4,ADDR+67 ADDR OF WHERE TO PUT EPA 20910002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 20930002 BALR RETREG,R15 CONVERT ENTRY POINT ADDRESS 20950002 TM RBTYPE,X'10' TRANSIENT SVRB Y01980 20970002 BO RBPRNT3 YES--SKIP CDE CODE Y01980 20990002 LA PREG,20(R7) LOAD ADDR OF MAJOR CDE OR EXTENT 21010002 * LIST POINTER 21030002 BRREAD (PREG) 21050002 L R8,0(PREG) LOAD TO R8 21070002 LA PREG,28(R7) LOAD ADDR OF ATTR BYTES @Y02006 21074002 BRREAD (PREG) @Y02006 21078002 MVC RBCDEATR(2),0(PREG) SAVE ATTR BYTES @Y02006 21090002 TM RBCDEATR,MINCDE IS CDE A MINOR 21110002 BO RBPRT1 YES--GET MAJOR 21130002 RBPRT2 MVC ADDR+76(3),RBSTA MOVE 'STA' TO BUFFER 21150002 LA PREG,12(R8) ADDR OF STARTING ADDR 21170002 BRREAD (PREG) 21190002 LA R4,ADDR+80 ADDR OF WHERE TO PUT STA 21210002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 21230002 BALR RETREG,R15 CONVERT STARTING ADDR 21250002 MVC ADDR+89(2),RBLN MOVE 'LN' TO BUFFER 21270002 LA PREG,8(R8) ADDR OF SIZE 21290002 BRREAD (PREG) 21310002 LA R4,ADDR+92 ADDR OF WHERE TO PUT SIZE 21330002 L R15,AADRCNVT 21350002 BALR RETREG,R15 CONVERT SIZE 21370002 MVC ADDR+101(4),RBATTR MOVE 'ATR1' TO BUFFER 21390002 HEXCNVT ADDR+106,RBCDEATR,1 CONVERT ATR1 OF CDE 21410002 MVC ADDR+111(4),RBATTR2 MOVE 'ATR2' TO BUFFER Y01980 21430002 HEXCNVT ADDR+116,RBCDEAT2,1 CONVERT ATR2 BYTE Y01980 21450002 RBPRT3 TM RBTYPE,X'D0' TEST FOR SVRB Y01980 21470002 BNZ RBPRNT3 BR TO PRINT REGS AND EXTENDED 21490002 * SAVEAREA IF ANY 21510002 TM RBTYPE,X'FF' TYPE = PRB? @ZA29599 21530000 BNZ RBPRT4 NO CONTINUE @ZA29599 21530300 BRWRITE 1 YES PRINT LAST LINE @ZA29599 21530600 LA R3,32 INDEX TO REGS IN RB @ZA29599 21530900 L R15,ATCBPTRG ADDR REG PRINT RTN @ZA29599 21531200 BALR RETREG,R15 GO WRITE REGS @ZA29599 21531500 B RBPRT5 @ZA29599 21531800 RBPRT4 EQU * 21532100 BRWRITE 1 PRINT LAST LINE OF PRB 21532400 RBPRT5 EQU * 21532700 NI SWITCH1,X'FF'-RDCDE-RDLPDE END OF CDE/LPDE @YA01753 21534002 B RBPRTDN GET NEXT RB 21550002 SPACE 2 21570002 *********************************************************************** 21590002 * * 21610002 * CDE FOR RB IS A MINOR...GET MAJOR CDE FOR EXTENT LIST PTR * 21630002 * * 21650002 *********************************************************************** 21670002 SPACE 21690002 RBPRT1 LA PREG,20(R8) ADDR OF XL PTR IN MAJOR CDE 21710002 BRREAD (PREG) 21730002 L R8,0(PREG) LOAD EXTENT LIST PTR 21750002 B RBPRT2 CONTINUE 21770002 EJECT 21790002 *********************************************************************** 21810002 * * 21830002 * DONE WITH RB CHAIN...RETURN TO FORMAT ROUTINE * 21850002 * * 21870002 *********************************************************************** 21890002 SPACE 21910002 RBDONE BRWRITE 2 SPACE 2 LINES 21930002 MVC ERRADDR,RBERRSV RESTORE ERROR ROUTINE ADDR TO IT'S 21950002 * PREVIOUS VALUE 21970002 MVC STOPEXIT(4),RBSTPSV RESTORE CALLER'S STOP ROUTINE 21990002 L R13,4(R13) POINT TO CALLER'S SAVE AREA 22010002 LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS 22030002 BR RETREG RETURN TO FORMAT ROUTINE 22050002 EJECT 22070002 *********************************************************************** 22090002 * * 22110002 * DONE PRINTING RB...LOOK FOR ANOTHER * 22130002 * * 22150002 *********************************************************************** 22170002 SPACE 22190002 RBPRTDN BAL R9,RBGET GET NEXT RB ADDR 22210002 LTR R2,R2 WAS THERE ONE 22230002 BZ RBDONE NO--ALL DONE 22250002 BRWRITE 1 YES--SPACE A LINE 22270002 B RBPRNT2 CONTINUE WITH THIS RB 22290002 SPACE 2 22310002 *********************************************************************** 22330002 * * 22350002 * MORE THAN 50 RBS ON RB CHAIN...PRINT INFINITE LOOP MESSAGE AND * 22370002 * PRINT THE FIRST 50 * 22390002 * * 22410002 *********************************************************************** 22430002 SPACE 22450002 TOOMANY1 MVC RBLIST,TCBLIST SAVE RBLIST PTR @Y02006 22451002 MVC TCBLIST,RBTLIST RESTORE TCBLIST PTR @Y02006 22452002 TOOMANY MVC ADDR(25),INFMSG MOVE INFINITE LOOP MSG TO BUFFER 22470002 BRWRITE 2 PRINT AND SPACE 2 LINES 22490002 B RBPRNT1 PRINT THE 50 WE HAVE 22510002 EJECT 22530002 *********************************************************************** 22550002 * * 22570002 * PRINT RB EXTENDED SAVE AREA * 22590002 * * 22610002 *********************************************************************** 22630002 SPACE 22650002 EXTSAPT MVC ADDR+13(5),EXTSA MOVE 'EXTSA' TO BUFFER 22670002 LA R8,96 SET INDEX 22690002 EXTLOOP2 LA R4,ADDR+22 INIT WHERE TO PUT IT ADDR 22710002 LA R7,8 LOAD LOOP CNT (NO OF WRDS/LINE) 22730002 EXTLOOP1 LA PREG,0(R8,R2) ADDR OF EXTENDED SAVEAREA WORD 22750002 BRREAD (PREG) 22770002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 22790002 BALR RETREG,R15 CONVERT WORD OF EXTENDED SAVEAREA 22810002 SH R3,FOUR DECR BYTE CNT 22830002 BNP EXTDONE BR OUT OF LOOP IF DONE 22850002 AH R4,ELEVEN INCR WHERE-TO-PUT-IT ADDR 22870002 AH R8,FOUR INCR INDEX 22890002 BCT R7,EXTLOOP1 LOOP TILL END OF LINE 22910002 BRWRITE 1 PRINT THIS LINE 22930002 B EXTLOOP2 CONTINUE WITH NEW LINE 22950002 SPACE 22970002 EXTDONE BRWRITE 1 PRINT LAST LINE 22990002 BR R9 RETURN TO CALLER 23010002 SPACE 3 23030002 *********************************************************************** 23050002 * * 23070002 * USE TCBSAVE ROUTINE TO SAVE RB ADDRESSES * 23090002 * * 23110002 *********************************************************************** 23130002 SPACE 23150002 RBSAVE LH R3,RBCNT1 LOAD COUNT OF TOTAL NUMB OF RBS 23170002 AH R3,ONEA ADD ONE TO COUNT 23190002 CH R3,RBMAX COMPARE RB COUNT TO MAX TO TEST FOR 23210002 * RB CHAIN LOOP @Y02006 23230002 BH TOOMANY IF GT 50 RBS ON CHAIN ASSUME 23250002 * INFINITE LOOP IN CHAIN 23270002 STH R3,RBCNT1 STORE BACK INCR COUNT 23290002 MVC RBTLIST,TCBLIST SAVE TCBLIST PTR 23310002 MVC TCBLIST,RBLIST MOVE IN RBLIST PTR 23330002 L R15,ATCBSAVE LOAD ADDR OF TCB SAVE ROUTINE 23350002 BALR RETREG,R15 LINK TO TCBSAVE ROUTINE TO SAVE RB 23370002 * ADDRESS ON RBLIST 23390002 LTR R15,R15 TEST RETURN CODE 23410002 BNZ TOOMANY1 RB ADDR IS A DUPLICATE OF ONE 23430002 * ALREADY ON THE RBLIST...DON'T INCR 23450002 * RB COUNT...INFINITE LOOP @Y02006 23470002 LH R3,RBCNT LOAD RB COUNT 23490002 AH R3,ONEA INCR COUNT 23510002 STH R3,RBCNT PUT IT PACK 23530002 OI SWITCH1,GOTRB INDICATE RB ON RBLIST @Y02006 23531002 RBSAVE1 MVC RBLIST,TCBLIST SAVE RBLIST PTR 23550002 MVC TCBLIST,RBTLIST RESTORE TCBLIST PTR 23570002 BR R9 RETURN TO CALLER 23590002 SPACE 2 23610002 *********************************************************************** 23630002 * * 23650002 * USE TCBRTRV AND TCBREMV ROUTINES TO GET TOP RB ADDR ON RBLIST AND * 23670002 * THEN REMOVE IT FROM THE LIST * 23690002 * * 23710002 *********************************************************************** 23730002 SPACE 23750002 RBGET MVC RBTLIST,TCBLIST SAVE TCBLIST PTR 23770002 MVC TCBLIST,RBLIST MOVE IN RBLIST PTR 23790002 LA R2,1 LOAD CNT FOR FIRST ON LIST 23810002 L R15,ATCBRTRV ADDR OF TCB RETRIEVE ROUTINE 23830002 BALR RETREG,R15 LINK TO GET FIRST RB ADDRESS 23850002 LTR R2,R2 WAS THERE ANY 23870002 BZ RBGET1 BR IF NONE 23890002 L R15,ATCBREMV ADDRESS OF REMOVE ROUTINE 23910002 BALR RETREG,R15 REMOVE THIS RB ADDRESS FROM RBLIST 23930002 LH R3,RBCNT LOAD RB COUNT 23950002 SH R3,ONEA DECR BY ONE 23970002 STH R3,RBCNT STORE BACK REDUCED RB COUNT 23990002 RBGET1 MVC RBLIST,TCBLIST SAVE RBLIST PTR 24010002 MVC TCBLIST,RBTLIST RESTORE TCBLIST PTR 24030002 BR R9 RETURN TO CALLER 24050002 SPACE 2 24070002 *********************************************************************** 24090002 * * 24110002 * PURGE THE RB LIST IN THE EVENT THE OPERATOR STOPPED THE DUMP * 24130002 * * 24150002 *********************************************************************** 24170002 SPACE 24190002 USING *,R15 24210002 RBSTP LA R13,RBPRNTSV POINT TO SAVE AREA 24230002 LM R14,R12,12(R13) RESTORE REGS 24250002 USING RBPRNBAS,BASE1 SHIFT BACK TO REG 11 AS BASE 24270002 DROP R15 24290002 LA R9,RBSTPOUT SET RETURN ADDRESS 24310002 RBPRGE LR R4,R2 SAVE R2 24330002 MVC RBTLIST,TCBLIST SAVE TCBLIST PTR 24350002 MVC TCBLIST,RBLIST MOVE IN RBLIST PTR 24370002 SR R2,R2 ZERO R2 FOR COMPL REMOVAL 24390002 L R15,ATCBREMV ADDR OF TCB REMOVE ROUTINE 24410002 BALR RETREG,R15 LINK TO IT 24430002 MVC RBLIST,TCBLIST MOVE BACK NOW ZEROED PTR 24450002 MVC TCBLIST,RBTLIST RESTORE TCBLIST PTR 24470002 NI SWITCH1,XFF-GOTRB RBLIST PURGED @Y02006 24471002 LR R2,R4 RESTORE R2 24490002 BR R9 RETURN TO CALLER 24510002 RBSTPOUT MVC ERRADDR(4),RBERRSV RESTORE ERROR HANDLER'S ADDR 24530002 L R15,RBSTPSV GET CALLER'S STOP ADDRESS 24550002 ST R15,STOPEXIT STORE BACK IN COMMON CSECT 24570002 BR R15 BRANCH TO IT 24590002 EJECT 24610002 *********************************************************************** 24850002 * * 24870002 * ERROR IN RB FORMAT...WRITE ERROR MESSAGE AND CONTINUE WITH * 24890002 * NEXT RB. * 24910002 * * 24930002 *********************************************************************** 24950002 SPACE 24970002 DROP BASE1 24990002 USING RBERROR,R15 25010002 RBERROR LA R13,RBPRNTSV GET ADDRESS OF RB PRINT'S SAVE AREA 25030002 LM R14,R12,12(R13) RESTORE OUR REGS 25050002 DROP R15 25070002 USING RBPRNBAS,BASE1 SHIFT BACK TO REG 11 AS BASE 25090002 L BUFREG,CURBUF RELOAD BUFFER ADDR 25110002 BRWRITE 1 SPACE A LINE 25130002 TM SWITCH1,RDCDE ERROR READING CDE @YA01753 25131002 BNO RBCKLP NO, CHECK LPDE @YA01753 25132002 MVC ADDR(L'CDEMSG),CDEMSG YES, PRINT ERROR MSG @YA01753 25133002 B RBWRTE @YA01753 25134002 RBCKLP TM SWITCH1,RDLPDE ERROR READING LPDE @YA01753 25135002 BNO RBERR NO, MUST BE RB ERROR @YA01753 25136002 MVC ADDR(L'LPDEMSG),LPDEMSG YES, PRINT ERROR MSG @YA01753 25137002 RBWRTE BRWRITE 1 @YA01753 25138002 NI SWB,XFF-FMTERR-IOERR RESET ERROR SWITCHES @YA01753 25139002 B RBPRT3 FORMAT REST OF RB @YA01753 25140002 RBERR EQU * @YA01753 25141002 MVC ADDR(15),RBERRMSG MOVE ERROR MSG TO BUFFER 25150002 BRWRITE 1 PRINT ERROR MSG 25170002 NI SWB,XFF-FMTERR-IOERR RESET ERROR SWITCHES 25190002 TM SWITCH1,RDCDE+RDLPDE PRINT REMAINDER OF @YA02258 25196002 BM RBPRNT3 RB WHEN CDE OR LPDE ABSENT @YA02258 25202002 B RBPRTDN CONTINUE 25210002 EJECT 25230002 *********************************************************************** 25250002 * * 25270002 * SAVEAREA AND CONSTANTS FOR RBPRNT ROUTINE * 25290002 * * 25310002 *********************************************************************** 25330002 *************** THIS CODE BLOCK START CODE FOR ------- /* OZ09006 */ 25332000 SVRBI DS CL1 SVRB INDICATOR @OZ09006 25334000 SCBB DC C'SCBB' SCBB TAG @OZ09006 25336000 FEPARM DC C'FEPARM' FEPARM TAG @OZ09006 25338000 RBNOSAV DC H'0152' RBSIZE W/O EXTSA AND SU07 @OZ24844 25340000 NINE8 DC X'0098' HEX 98 CONSTANT @OZ09006 25342000 BAKER0 DC X'00B0' SU07 RBSIZE W/O EXTSA @OZ24844 25344000 *************** THIS CODE BLOCK END FOR -------------- /* OZ09006 */ 25346000 SPACE 25350002 RBPRNTSV DC 18F'0' RB PRINT'S SAVE AREA 25370002 ATCBPTRG DC A(TCBPTRG) ADDRESS OF PRINT REG ROUTINE IN 25390002 * TCB FORMATTING ROUTINE 25410002 RBERRSV DC F'0' SAVE AREA FOR PREVIOUS ERROR ROUTINE 25430002 * ADDRESS 25450002 RBSTPSV DC F'0' SAVE AREA FOR STOP ROUTINE ADDR 25470002 RBWORK DC F'0' 25490002 RBTLIST DC F'0' 25510002 RBLIST DC F'0' 25530002 RBCNT DC H'0' COUNT OF RB ADDRESSES ON RBLIST 25550002 RBCNT1 DC H'0' TOTAL COUNT OF RBS FOR LOOP CHECK 25570002 SWITCH1 DC X'00' 80=ERROR ON FETCH OF CDE 25571002 * 40=ERROR ON FETCH OF LPDE 25580002 RBSIZE DC X'00' 25590002 RBTYPE DC X'00' 25610002 RBCDEATR DC X'00' 25630002 RBCDEAT2 DC X'00' CDE ATR2 SAVE AREA Y01980 25650002 PRBIDX DC X'0018' 25670002 RSVRBIDX DC X'0018' 25690002 TSVRBIDX DC X'061E' 25710002 IRBIDX DC X'0C24' 25730002 TIRBIDX DC X'0000' Y01980 25750002 SIRBIDX DC X'1224' 25770002 RBIDS DC CL6'RESV' 25790002 DC CL6'RESV' Y01980 25810002 DC CL6'FL-PSA' 25830002 DC CL6'NM' 25850002 DC CL6'FL-CDE' 25870002 DC CL6'LPDE' Y01980 25890002 DC CL6'EPA' 25910002 ACTRBS DC C'ACTIVE RBS' 25930002 RBERRMSG DC C'RB FORMAT ERROR' 25950002 INFMSG DC C'INFINITE LOOP IN RB CHAIN' 25970002 CDEMSG DC C'FORMAT ERROR READING CDE' @Y02006 25971002 LPDEMSG DC C'FORMAT ERROR READING LPDE' @Y02006 25972002 APSW DC C'APSW' 25990002 WC DC C'SZ-STAB' Y01980 26010002 PSWNM DC C'PSW' 26030002 QTTR DC C'Q' Y01980 26050002 WTLNK DC C'WT-LNK' 26070002 EXTSA DC C'EXTSA' 26090002 RBNM DC C'NM' 26110002 RBEPA DC C'EPA' 26130002 RBSTA DC C'STA' 26150002 RBLN DC C'LN' 26170002 RBATTR DC C'ATR1' 26290002 RBATTR2 DC C'ATR2' Y01980 26310002 RBPFXLN1 FMTPTRN (LBL,LBLP,DTA,DTAP),6,8,13,20,(RBPFXID1),(RBPFXD01,0) 26330002 * @Y02006 26331002 FMTPTRN (LBL,DTA),7,4,40,48 RB PREFIX PATTERN @Y02006 26350002 FMTPTRN (LBL,DTA),4,4,59,64 @Y02006 26351002 FMTPTRN (LBL,DTA),4,4,75,80 @Y02006 26352002 FMTPTRN (LBL,DTA),7,4,91,99,,,LAST @Y02006 26353002 RBPFXID1 DC C'RTOPSWRTIL-ICTRANFLG1WC-L-IC' @Y02006 26370002 PRB DC C'PRB ' NAME FOR PRB X01980 26410002 IRB DC C'IRB ' NAME FOR IRB X01980 26450002 SIRB DC C'SIRB' NAME FOR SIRB X01980 26470002 SVRB DC C'SVRB' NAME FOR SVRB X01980 26490002 TIRB DC C'TIRB' NAME FOR TIRB X01980 26510002 FRBPCH DC 30F'0' PATCH AREA X01980 26550002 DROP BASE1,COMBASE 26570002 EJECT 26590002 AMDPRFMS CSECT 26610002 SPACE 26630002 *********************************************************************** 26650002 * *** AMDPRFMS - MSS PRINT *** * 26670002 * * 26690002 * STATUS--OS/VS2 RELEASE 2.0 * 26710002 * * 26730002 * FUNCTION-- * 26750002 * THIS ROUTINE PRINTS MSS INFORMATION FOR THE TCB BEING FORMATTED. * 26770002 * * 26790002 * ENTRY POINTS-- * 26810002 * AMDPRFMS IS THE ONLY ENTRY. CONTROL IS RECEIVED FROM AMDPRFSC. * 26830002 * STANDARD SUBROUTINE LINKAGE USED. * 26850002 * * 26870002 * INPUTS-- * 26890002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 26910002 * REGISTER 2 - TCB ADDRESS FOR WHICH MSS INFO IS TO BE * 26930002 * FORMATTED. * 26950002 * REGISTER 12 - ADDRESS OF COMMON AREA * 26970002 * * 26990002 * OUTPUTS-- * 27010002 * WRITES DUMMY PQE FOLLOWED BY THE PQE CHAIN. * 27030002 * WRITES ERROR MESSAGE 'FORMAT ERROR IN MAIN STORAGE BLOCKS', * 27050002 * AND 'INFINITE LOOP IN PQES'. * 27070002 * * 27090002 * EXTERNAL REFERENCES-- * 27110002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 27130002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 27150002 * AMDPRGFR - FROM AN ADDRESS IN COMMON, TO FORMAT A LINE * 27170002 * DESCRIBED BY THE FMTPTRN MACRO INSTRUCTION. * 27190002 * * 27210002 * EXITS,NORMAL-- * 27230002 * RETURN TO CALLER THROUGH STANDARD LINKAGE. * 27250002 * * 27270002 * EXITS,ERROR-- * 27290002 * SAME AS NORMAL EXIT * 27310002 * * 27330002 * TABLES/WORK AREAS-- * 27350002 * FMTPTRN MACRO IS USED TO GENERATE A PATTERN FOR THE FORMATTED * 27370002 * CONTROL BLOCKS. * 27390002 * * 27410002 * ATTRIBUTES-- REUSABLE * 27430002 * * 27450002 * CHARACTER CODE DEPENDENCY-- NONE * 27470002 * * 27490002 * NOTES-- * 27510002 * BRREAD ERROR HANDLER: IF THE PQE POINTER OR PQE'S CANNOT BE * 27530002 * READ A MESSAGE IS PRINTED AND CONTROL RETURNS TO AMDPRFSC. * 27550002 * * 27570002 *********************************************************************** 27590002 SPACE 27610002 STM R14,R12,12(R13) SAVE CALLER'S REGISTER 27630002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 27650002 USING *,BASE1 27670002 MSSBASE LA R3,MSSSAVE SAVE AREA CHAINING 27690002 ST R13,MSSSAVE+4 27710002 ST R3,8(R13) 27730002 LR R13,R3 27750002 SPACE 27770002 USING COMMON,COMBASE 27790002 SPACE 27810002 MVC MSSPRERS,ERRADDR SAVE PREVIOUS ROUTINES ERROR ROUT 27830002 * ADDR 27850002 LA R15,MSSERR LOAD MSSPRNT'S ERROR ROUT ADDR 27870002 ST R15,ERRADDR ENABLE THE ERROR ROUTINE 27890002 SPACE 2 27910002 *********************************************************************** 27930002 * * 27950002 * PRINT PQES FOR AOS/2 * 27970002 * * 27990002 *********************************************************************** 28010002 SPACE 28030002 XC PQECNT,PQECNT ZERO PQE COUNT 28050002 LA PREG,TCBPQE+1(R2) LOAD ADDR OF PTR TO DUMMY PQE Y01980 28070002 ST PREG,MSSPTN1A STORE DUMMY PQE PTR INTO PATTERN 28090002 BCTR PREG,0 MAKE A WORD BDY Y01980 28110002 BRREAD (PREG),DATA,ASID=(R0) @Y02006 28130002 L R2,0(PREG) LOAD PTR TO DUMMY PQE 28150002 LA R2,0(R2) CLEAR POSSIBLE HI BYTE 28170002 LTR R2,R2 IS THERE A DUMMY PQE 28190002 BZ MSSPRDNA NO--RETURN TO CALLER 28210002 BAL R9,MSSTITLE YES--PRINT MSS TITLE 28230002 LA PREG,8(R2) ADDR OF PQE POINTERS IN DUMMY PQE 28250002 ST PREG,MSSPTN1B STORE INTO PATTERN 28270002 BRREAD (PREG) 28290002 L R2,0(PREG) LOAD ADDR OF FIRST PQE TO R2 28310002 LA PREG,MSSPTN1 LOAD ADDR OF DUMMY PQE PATTERN 28330002 BAL R9,MSSFMPR2 GO FORMAT LINE, AND PRINT AND SPACE 28350002 * TWO LINES 28370002 MSSPRLP1 LA R2,0(R2) CLEAR POSSIBLE HI BYTE FROM PQE ADDR 28390002 LTR R2,R2 TEST FOR ZERO PQE ADDR 28410002 BZ MSSPRDN ZERO--ALL DONE 28430002 LH R3,PQECNT LOAD PQE COUNT @Y02006 28431002 AH R3,ONEA ADD 1 TO IT @Y02006 28432002 CH R3,PQEMAX COMPARE TO MAX @Y02006 28433002 BH MSSLOOP GT MAX--CONSIDER IT A LOOP @Y02006 28434002 STH R3,PQECNT STORE BACK PQECNT @Y02006 28435002 ST R2,MSSPTN2A STORE PQE ADDR INTO PATTERN 28450002 LA PREG,MSSPTN2 LOAD ADDR OF PQE PATTERN 28470002 BAL R9,MSSFMPR1 GO FORMAT LINE, AND PRINT AND SPACE 28490002 * ONE LINE 28510002 LA PREG,MSSPTN3 LOAD ADDR OF PATTERN FOR SECOND LINE 28530002 * OF PQE 28550002 BAL R9,MSSFMPR2 GO FMT LN, PRT AND SPC 2 LNS 28570002 LA PREG,8(R2) LOAD ADDR OF PTR TO NEXT PQE 28590002 BRREAD (PREG) 28710002 L R2,0(PREG) LOAD PTR TO NEXT PQE 28730002 B MSSPRLP1 LOOP FOR ALL PQES 28750002 SPACE 2 28770002 *********************************************************************** 28790002 * * 28810002 * PRINT MSS TITLE * 28830002 * * 28850002 *********************************************************************** 28870002 SPACE 28890002 MSSTITLE L BUFREG,CURBUF LOAD OUTPUT BUFFER ADDR 28910002 USING OUTBUF,BUFREG 28930002 MVC ADDR(L'MSSVTTL),MSSVTTL MOVE AOS/2 MSS TITLE TO BUF 28950002 MSSTTL2 BRWRITE 2 PRINT TITLE AND SPACE 2 LINES 28970002 BR R9 RETURN TO CALLER 28990002 DROP BUFREG 29010002 SPACE 2 29030002 *********************************************************************** 29050002 * * 29070002 * FORMAT AND PRINT LINE * 29090002 * * 29110002 *********************************************************************** 29130002 SPACE 29150002 MSSFMPR2 LA R3,2 LOAD NUMBER OF SPACES 29210002 B MSSFMPRA CONTINUE 29230002 MSSFMPR1 LA R3,1 LOAD NUMBER OF SPACES 29250002 MSSFMPRA L R15,AFMTLINE LOAD ADDR OF LINE FORMAT ROUT 29270002 BALR RETREG,R15 GO FORMAT PRINT LINE 29290002 LR PREG,R3 LOAD NUMBER OF LINES TO SPACE 29310002 L R15,AWRITE LOAD ADDR OF WRITE ROUTINE 29330002 BALR RETREG,R15 GO PRINT LINE AND SPACE SPEC NUMB 29350002 * OF LINES 29370002 BR R9 RETURN TO CALLER 29390002 SPACE 2 29410002 *********************************************************************** 29430002 * * 29450002 * GREATER THAN 50 PQES...LET'S CONSIDER IT A LOOP * 29470002 * * 29490002 *********************************************************************** 29510002 SPACE 29530002 MSSLOOP L BUFREG,CURBUF LOAD ADDR OF OUTPUT BUFFER 29550002 USING OUTBUF,BUFREG 29570002 MVC ADDR(L'MSSLPMSG),MSSLPMSG MOVE PQE LOOP MSG TO BUFFER 29590002 BRWRITE 3 PRINT AND SPACE 3 LINES 29610002 B MSSPRDNA RETURN TO FORMAT ROUTINE 29630002 SPACE 2 29650002 *********************************************************************** 29670002 * * 29690002 * ALL DONE...RETURN TO FORMAT ROUTINE * 29710002 * * 29730002 *********************************************************************** 29750002 SPACE 29770002 MSSPRDN BRWRITE 1 SPACE ONE MORE LINE 29790002 MSSPRDNA MVC ERRADDR,MSSPRERS RESTORE PREVIOUS ERROR ROUT ADDR 29810002 L R13,4(R13) GET CALLER'S SAVE AREA ADDRESS 29830002 LM R14,R12,12(R13) RESTORE HIS REGS 29850002 BR RETREG RETURN TO CALLER (FORMAT ROUTINE) 29870002 EJECT 29890002 *********************************************************************** 29910002 * * 29930002 * MSS PRINT FORMAT ERROR * 29950002 * * 29970002 *********************************************************************** 29990002 SPACE 30010002 DROP BASE1 30030002 USING MSSERR,R15 30050002 MSSERR LA R13,MSSSAVE GET MSS PRINT'S SAVE AREA 30070002 LM R14,R12,12(R13) RESTORE OUR REGS 30090002 DROP R15 30110002 USING MSSBASE,BASE1 SHIFT BACK TO BASE1 - REG 11 30130002 L BUFREG,CURBUF LOAD OUTPUT BUFFER ADDR 30150002 BRWRITE 1 SPACE A LINE 30170002 MVC ADDR(L'MSSERMSG),MSSERMSG MOVE ERROR MSG TO BUFFER 30190002 BRWRITE 3 PRINT AND SPACE 3 LINES 30210002 B MSSPRDNA RETURN TO FORMAT 30230002 EJECT 30250002 *********************************************************************** 30270002 * * 30290002 * CONSTANTS FOR MSSPRNT ROUTINE * 30310002 * * 30330002 *********************************************************************** 30350002 SPACE 30370002 MSSSAVE DC 18F'0' MSS PRINT'S SAVE AREA 30390002 MSSPRERS DC F'0' SAVE AREA FOR PREVIOUS ERR ROUT ADR 30410002 SPACE 30430002 * PATTERN FOR AOS/2 DUMMY PQE 30450002 MSSPTN1 FMTPTRN (DTA,DTAP,LBL,LBLP),5,3,0,7,(MSSDPID),(MSSPTN1A,0) 30470002 FMTPTRN (DTA,DTAP,LBL),5,4,16,22,,(MSSPTN1B,0) Y01980 30490002 FMTPTRN (DTA,LBL),4,4,33,38,,,LAST Y01980 30510002 SPACE 30530002 * PATTERN FOR LINE 1 OF AOS/2 PQE 30550002 MSSPTN2 FMTPTRN (DTA,DTAC,DTAP,LBL,LBLP),3,3,0,5,(MSSPQID1),(MSSPTN2A+X30570002 1) 30590002 FMTPTRN (DTA,DTAP,LBL),3,4,14,18,,(MSSPTN2A,0) 30610002 FMTPTRN (DTA,LBL),3,4,29,33 30630002 FMTPTRN (DTA,LBL),3,4,44,48 30650002 FMTPTRN (DTA,LBL),3,4,59,63,,,LAST 30670002 SPACE 30690002 * PATTERN FOR LINE 2 OF AOS/2 PQE 30710002 MSSPTN3 FMTPTRN (DTA,LBL),3,4,14,18 30730002 FMTPTRN (DTA,LBL),3,4,29,33 30750002 FMTPTRN (DTA,LBL),3,4,44,48 30770002 FMTPTRN (DTA,LBL),3,4,59,63,,,LAST Y01980 30790002 SPACE 31010002 MSSDPID DC C'D-PQEFIRSTLAST' 31030002 MSSPQID1 DC C'PQEFFBLFBNPQPPQTCBRSIRADFLG' 31050002 PQECNT DC H'0' PQE CNTR USED TO PREVENT LOOP 31110002 MSSVTTL DC C'MAIN STORAGE' 31130002 MSSLPMSG DC C'INFINITE LOOP IN PQES' Y01980 31170002 MSSERMSG DC C'FORMAT ERROR IN MAIN STORAGE BLOCKS' 31190002 FMSPCH DC 10F'0' PATCH AREA X01980 31210002 DROP BASE1,COMBASE 31230002 EJECT 31250002 AMDPRFLD CSECT 31270002 SPACE 31290002 *********************************************************************** 31310002 * *** AMDPRFLD - LOAD LIST PRINT *** * 31330002 * * 31350002 * STATUS--OS/VS2 RELEASE 2.0 * 31370002 * * 31390002 * FUNCTION-- * 31410002 * THIS ROUTINE PRINTS THE LOAD LIST INCLUDING THE JOB PACK QUEUE. * 31430002 * * 31450002 * ENTRY POINTS-- * 31470002 * AMDPRFLD IS THE ONLY ENTRY. CONTROL IS RECEIVED FROM AMDPRFSC. * 31490002 * STANDARD SUBROUTINE LINKAGE USED. * 31510002 * * 31530002 * INPUTS-- * 31550002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 31570002 * REGISTER 2 - TCB ADDRESS FOR WHICH LOAD LIST IS TO BE * 31590002 * FORMATTED. * 31610002 * REGISTER 12 - ADDRESS OF COMMON AREA * 31630002 * * 31650002 * OUTPUTS-- * 31670002 * WRITES FORMATTED LOAD LIST, AND JOB PACK QUEUE. * 31690002 * WRITES MESSAGES 'NO ELEMENTS ON LOAD LIST', 'NOTHING IN JOB * 31710002 * PACK',AND 'NO EXTENT LIST'. * 31730002 * WRITES ERROR MESSAGES 'ERROR IN LOAD LIST' 'ERROR IN JOB PACK * 31750002 * QUEUE','ERROR IN EXTENT LIST','INFINITE LOOP IN LOAD LIST', * 31770002 * AND INFINITE LOOP IN JOB PACK QUEUE'. * 31790002 * * 31810002 * EXTERNAL REFERENCES-- * 31830002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 31850002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 31870002 * AMDPRGFR - FROM AN ADDRESS IN COMMON, TO FORMAT A LINE * 31890002 * DESCRIBED BY THE FMTPTRN MACRO INSTRUCTION. * 31910002 * ADRCNVT - FROM ADDRESS IN COMMON, TO CONVERT 3 BYTES TO * 31930002 * PRINTABLE HEX. * 31950002 * * 31970002 * EXITS,NORMAL-- * 31990002 * RETURN TO CALLER THROUGH STANDARD LINKAGE. * 32010002 * * 32030002 * EXITS,ERROR-- * 32050002 * SAME AS NORMAL EXIT * 32070002 * * 32090002 * TABLES/WORK AREAS-- * 32110002 * FMTPTRN MACRO IS USED TO GENERATE A PATTERN FOR THE FORMATTED * 32130002 * CONTROL BLOCKS. * 32150002 * * 32170002 * ATTRIBUTES-- REUSABLE * 32190002 * * 32210002 * CHARACTER CODE DEPENDENCY-- NONE * 32230002 * * 32250002 * NOTES-- * 32270002 * BRREAD ERROR HANDLER: IF A CDE CANNOT BE READ FROM THE INPUT * 32290002 * DUMP, A MESSAGE IS PRINTED. IF THE LOAD LIST IS BEING FORMATTED * 32310002 * AN ATTEMPT IS MADE TO FORMAT THE JOB PACK QUEUE, IF THE JOB * 32330002 * PACK QUEUE IS BEING FORMATTED CONTROL RETURNS TO AMDPRFSC. * 32350002 * * 32370002 *********************************************************************** 32390002 SPACE 32410002 GOTONE EQU 128 32430002 JBPQPRT EQU 64 32450002 CDEIND EQU 32 CDE READ INDICATOR OZ09681 32460000 JPQPTR EQU 44 32470002 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 32530002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 32550002 USING LOADBASE,BASE1 32570002 LOADBASE LA R3,LOADSAVE SAVE AREA CHAINING 32590002 ST R13,LOADSAVE+4 32610002 ST R3,8(R13) 32630002 LR R13,R3 32650002 SPACE 32670002 USING COMMON,COMBASE 32690002 SPACE 32710002 ST R2,LDTCBSV SAVE TCB ADDRESS 32750002 MVI LDSW,0 ZERO LOAD SWITCH 32770002 MVC LDERSV,ERRADDR SAVE PREV ERROR ROUTINE ADDRESS 32790002 LA R15,LOADERR ADDR OF LOADPRT ERROR ROUTINE 32810002 ST R15,ERRADDR STORE IN ERROR ADDR WORD 32830002 L BUFREG,CURBUF LOAD BUFFER ADDRESS 32850002 USING OUTBUF,BUFREG 32870002 MVC ADDR(9),LDTITLE MOVE TITLE TO BUFFER 32890002 BRWRITE 2 PRINT TITLE 32910002 LA PREG,TCBLLEP(R2) ADDR OF LOAD LIST PTR 32930002 BRREAD (PREG),DATA,ASID=(R0) @Y02006 32950002 L R2,0(PREG) LOAD LOAD LIST PTR TO R2 32970002 LH R10,LLEMAX LOOP CONTROL FOR LOAD LIST @Y02006 32990002 ST R10,LOOPCTR SAVE COUNTER SA53335 33010002 LA R10,1(R10) ADD 1 FOR BCT @Y02006 33011002 BCT R10,LOADLP3 CHECK ORIGINAL LIMIT @Y02006 33012002 OI LDSW,GOTONE PREVENT EXTRA MSG @Y02006 33013002 B PLLP ORIGINAL LIMIT WAS 0 @Y02006 33014002 LOADLP3 LTR PREG,R2 LLE PTR TO PARM REG AND TEST IT 33030002 BZ LOADDONE ALL DONE IF ZERO 33050002 BRREAD (PREG) 33070002 MVC NXTLLE(4),0(PREG) SAVE ADDR OF NEXT LOAD LIST ELEMENT 33090002 LA PREG,8(R2) ADDR OF COUNT FIELDS @Y02006 33091002 BRREAD (PREG) @Y02006 33092002 MVC LOADRESP(4),0(PREG) SAVE RESP COUNT @Y02006 33093002 LA PREG,4(R2) ADDR OF CDE PTR 33110002 BRREAD (PREG) 33130002 L R2,0(PREG) LOAD CDE ADDR TO R2 33150002 LTR R2,R2 TEST FOR CDE 33210002 BZ LOADPRT6 NO CDE--FORGET THIS LLE 33230002 LOADPRT8 OI LDSW,GOTONE SET SW TO INDICATE SOMETHING ON LOAD 33250002 * LIST 33270002 MVC ADDR(3),CDEID MOVE 'CDE' TO BUFFER 33290002 LA R4,ADDR+5 ADDR OF WHERE TO PUT CDE ADDR 33310002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 33330002 BALR RETREG,R15 CONVERT CDE ADDR 33350002 MVC ADDR+14(2),NMID MOVE 'NM' TO BUFFER 33370002 OI LDSW,CDEIND 1ST READ OF A CDE OZ09681 33380000 ST R2,CDEADDR SAVE FOR POSSIBLE READ ERR @OZ14113 33385000 BRREAD (R2) 33390002 MVC NXTCDE(4),0(PREG) SAVE PTR TO NEXT @Y02006 33410002 NI LDSW,XFF-CDEIND 1ST READ WAS SUCCESSFUL OZ09681 33420000 LA PREG,8(R2) ADDR OF FIRST 4 BYTES OF NAME 33430002 BRREAD (PREG) 33450002 MVC ADDR+17(4),0(PREG) MOVE 4 BYTES OF NAME 33470002 LA PREG,12(R2) ADDR OF SECOND 4 BYTES OF NAME 33490002 BRREAD (PREG) 33510002 MVC ADDR+21(4),0(PREG) MOVE 4 BYTES OF NAME 33530002 MVC ADDR+28(3),USEID MOVE 'USE' TO BUFFER 33550002 LA PREG,24(R2) POINT TO USECNT FIELD @Y02006 33570002 BRREAD (PREG) READ 1ST HALF OF USE CNT Y01980 33590002 LR R5,PREG LOAD FROM ADDR Y01980 33610002 LA R4,ADDR+32 LOAD TO ADDR Y01980 33630002 BAL R9,TWOBYTCV CONVERT USECNT @Y02006 33650002 LA PREG,16(R2) ADDR OF EPA 33670002 BRREAD (PREG) 33690002 MVC ADDR+39(4),RESPID MOVE 'RESP' TO BUFFER 33770002 MVC ADDR+51(5),SYSCTID MOVE 'SYSCT' TO BUFFER @Y02006 33771002 TM LDSW,JBPQPRT PRINTING JOB PACK Q 33790002 BNO LOADPRT9 BR IF NOT FOR RESPONSIBILITY CNT 33810002 MVC ADDR+44(2),NA NO RESP CNT--MOVE 'NA' TO BUFFER 33830002 MVC ADDR+57(2),NA DITTO FOR SYSCT @Y02006 33831002 B LOADPRTD BR ARROUND 33850002 LOADPRT9 LA R5,LOADRESP ADDR OF RESPONSIBILITY COUNT 33870002 LA R4,ADDR+44 WHERE TO PUT RESP CNT 33890002 BAL R9,TWOBYTCV GO CONVERT RESP CNT @Y02006 33910002 LA R5,2(R5) ADDR OF SYSCT @Y02006 33911002 LA R4,ADDR+57 WHERE TO PUT IT @Y02006 33912002 BAL R9,TWOBYTCV CONVERT TWO BYTES @OZ14114 33913000 LOADPRTD MVC ADDR+84(3),EPAID MOVE 'EPA' TO BUFFER @Y02006 33930002 LA R4,ADDR+88 ADDR OF WHERE-TO-PUT-IT @Y02006 33950002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 33970002 BALR RETREG,R15 CONVERT ENTRY POINT ADDRESS 33990002 LA PREG,28(R2) ADDR OF ATTR BYTES @Y02006 33991002 BRREAD (PREG) @Y02006 33992002 MVC CDEATR1(1),0(PREG) SAVE ATR1 FOR TEST @Y02006 33993002 MVC ADDR+73(4),ATR2ID MOVE 'ATR2' TO BUFFER @Y02006 33994002 MVC ADDR+63(4),ATR1ID MOVE 'ATR1' TO BUFFER @Y02006 34010002 LR R5,PREG ADDR OF CDE ATTRIBUTES @Y02006 34030002 LA R4,ADDR+68 WHERE TO PUT ATR1 @Y02006 34050002 BAL R9,BYTECNVT CONVERT ATR1 34070002 LA R5,1(R5) ADDR OF ATR2 @Y02006 34071002 LA R4,ADDR+78 WHERE TO PUT IT @Y02006 34072002 BAL R9,BYTECNVT CONVERT ATR2 @Y02006 34073002 LOADPRT7 LA PREG,20(R2) ADDR OF EXTENT LIST PTR OR MAJOR CDE 34090002 * IF THIS CDE IS A MINOR 34110002 BRREAD (PREG) 34130002 L R2,0(PREG) LOAD ADDR OF EXTENT LIST OR MAJOR 34150002 * CDE 34170002 TM CDEATR1,MINCDE WAS IT A MINOR CDE 34270002 BO LOADPRT1 YES--GET ADDR OF EXTENT LIST FROM 34290002 * MAJOR 34310002 LOADPRT2 LTR R2,R2 IS THERE AN EXTENT LIST 34330002 BZ NOXLST NO--TELL'EM ABOUT IT 34350002 LA PREG,4(R2) ADDR OF NUMB OF RELOC FACTORS 34370002 BRREAD (PREG) 34390002 L R3,0(PREG) LOAD NUMBER OF RELOCATION FACTORS 34410002 * TO R3 34430002 CL R3,XLMAX IS IT GT MAX @Y02006 34450002 BH XLSTER YES--DON'T PRINT IT 34470002 LTR R3,R3 IS IT ZERO 34490002 BZ XLSTER YES--ERROR 34510002 LA R7,8(R2) ADDR OF FIRST BLOCK LN 34530002 LR R8,R3 LOAD NUMB TO R8 34550002 SLL R8,2 MULTIPLY BY 4 34570002 AR R8,R7 ADDR OF FIRST BLOCK ADDR 34590002 LOADLP1 SR R10,R10 ZERO INDEX REG 34610002 LA R9,2 LOAD COUNT FOR NUMB OF ENTRIES PER 34630002 * LINE 34650002 MVC ADDR+97(3),STAID MOVE 'STA' TO BUFFER @Y02006 34670002 MVC ADDR+110(2),LNID MOVE 'LN' TO BUFFER @Y02006 34690002 LOADLP2 BRREAD (R8) ADDR OF BLOCK ADDR IN REG 8 34710002 LA R4,ADDR+101(R10) ADDR OF WHERE TO PUT STA @Y02006 34730002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 34750002 BALR RETREG,R15 CONVERT STARTING ADDRESS 34770002 LA R4,ADDR+113(R10) ADDR OF WHERE TO PUT LN @Y02006 34790002 LR PREG,R7 ADDR OF BLOCK LN 34810002 BRREAD (R7) 34830002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 34850002 BALR RETREG,R15 CONVERT LENGTH OF BLOCK 34870002 LA R7,4(R7) INCR LENGTH ADDR 34890002 LA R8,4(R8) INCR BLOCK ADDR ADDR 34910002 LA R10,25 LOAD INDEX FOR SECOND ENTRY ON LINE 34930002 BCT R3,LOADPRT3 LOOP FOR NO OR REL FACTORS 34950002 B LOADPRT5 DONE--PRINT LINE 34970002 SPACE 34990002 LOADPRT3 BRWRITE 1 LINE FULL--PRINT IT Y01980 35010002 B LOADLP1 START NEW LINE 35030002 SPACE 35050002 NOXLST MVC ADDR+97(L'NXLSTMSG),NXLSTMSG MOVE MESSAGE @Y02006 35070002 B LOADPRT5 PRINT THE CDE 35090002 XLSTER MVC ADDR+97(20),XLSTEMSG MOVE ERROR MSG TO BUFFER @Y02006 35110002 SPACE 35130002 LOADPRT5 BRWRITE 1 PRINT THE CDE 35150002 TM LDSW,JBPQPRT IS JOB PACK QUEUE BEING PRINTED 35170002 BO JPQPRT YES--CONTINUE WITH NEXT CDE 35190002 LOADPRT6 L R2,NXTLLE LOAD ADDR OF NEXT LOAD LIST ELEMENT 35210002 LA R2,0(R2) CLEAR HIGH ORDER BYTE 35230002 LTR R2,R2 ARE WE DONE @Y02006 35231002 BZ LOADDONE YES, DO JPQ @Y02006 35233002 L R10,LOOPCTR RESTORE COUNTER REGISTER SA53335 35250002 BCT R10,RESTCTR1 GO UPDATE COUNTER & CONTINUE SA53335 35270002 * IF FALL THROUGH POSSIBLE LOOP - ISSUE COMMENT SA53335 35290002 SPACE 35310002 PLLP MVC ADDR(L'LLLOOPMG),LLLOOPMG MOVE MSG TO BUFFER @Y02006 35330002 B LOOPPRT1 PRINT LOAD LIST LOOP MESSAGE SA53335 35350002 RESTCTR1 ST R10,LOOPCTR UPDATE COUNTER SAVE AREA SA53335 35370002 B LOADLP3 LOOP THROUGH ENTIRE LOAD LST SA53335 35390002 RESTCTR2 ST R10,LOOPCTR UPDATE COUNTER SAVE AREA SA53335 35410002 B LOADPRT8 FORMAT JOB PACK QUEUE SA53335 35430002 SPACE 35450002 LOADPRT1 NI CDEATR1,XFF-MINCDE RESET MINOR FLAG 35470002 B LOADPRT7 CONTINUE 35490002 SPACE 2 35510002 *********************************************************************** 35530002 * * 35550002 * INTERFACE ROUTINE FOR JOB PACK QUEUE PRINTING * 35570002 * * 35590002 *********************************************************************** 35610002 SPACE 35630002 JPQPRTA LH R10,JPQMAX LOOP CONTROL FOR JOB PACK Q @Y02006 35650002 LA R10,1(R10) ADD 1 TO CTR @Y02006 35651002 ST R10,LOOPCTR SAVE COUNTER SA53335 35670002 JPQPRT L R2,NXTCDE LOAD ADDR OF NEXT CDE ON Q 35690002 LA R2,0(R2) CLEAR HIGH ORDER BYTE 35710002 LTR R2,R2 TEST FOR END OF Q 35730002 BZ LOADDONE ALL DONE IF 0 35750002 LA PREG,NXTCDE POINT PREG TO CDE ADDRESS 35770002 L R10,LOOPCTR RESTORE COUNT REG SA53335 35790002 BCT R10,RESTCTR2 GO UPDATE CTR AND CONTINUE SA53335 35810002 OI LDSW,GOTONE NO XTRA MSG IF LIMIT=0 @Y02006 35811002 SPACE 35830002 * IF FALL THROUGH POSSIBLE LOOP IN JOB PACK QUEUE - ISSUE COMMENT 35850002 MVC ADDR(L'JPLOOPMG),JPLOOPMG PUT MESSAGE IN BUFFER SA53335 35870002 LOOPPRT1 BRWRITE 1 PRINT LOOP MESSAGE SA53335 35890002 B LOADDONE TERMINATE CURRENT PROCESS SA53335 35910002 EJECT 35930002 *********************************************************************** 35950002 * * 35970002 * DONE WITH LOAD LIST * 35990002 * * 36010002 *********************************************************************** 36030002 SPACE 36050002 LOADDONE TM LDSW,JBPQPRT HAS THE JOB PACK Q BEEN PRINTED 36070002 BO LDDONE2 BR IF IT HAS 36090002 TM LDSW,GOTONE WAS ANYTHING ON LOAD LIST 36110002 BO LDDONE1 BR IF THERE WAS 36130002 MVC ADDR(24),NOLLEMSG MOVE MSG TO BUFFER 36150002 BRWRITE 1 PRINT NO LLE MESSAGE 36170002 LDDONE1 BRWRITE 2 SPACE 2 LINES 36190002 OI LDSW,JBPQPRT INDICATE PRINTING JOB PACK Q 36210002 MVC ADDR(14),JPQTTL MOVE JOB PACK Q TITLE TO BUF 36230002 BRWRITE 2 PRINT JOB PACK Q TITLE 36250002 NI LDSW,XFF-GOTONE RESET GOTONE SW 36270002 L R2,LDTCBSV RESTORE TCB ADDRESS 36290002 LA PREG,JPQPTR(R2) ADDR OF JOB PACK Q PTR 36310002 BRREAD (PREG) 36330002 MVC NXTCDE(4),0(PREG) SAVE ADDR OF FIRST CDE IN Q 36350002 B JPQPRTA PRINT JOB PACK CDES SA53335 36370002 SPACE 36390002 LDDONE2 TM LDSW,GOTONE WAS ANYTHING ON JOB PACK Q 36410002 BO LDDONE3 YES--RETURN 36430002 MVC ADDR(19),NOJPQMSG NO--MOVE MESSAGE TO BUFFER 36450002 BRWRITE 1 PRINT NO JOB PACK Q MSG 36470002 LDDONE3 BRWRITE 2 SPACE 2 LINES 36490002 LDDONED MVC ERRADDR,LDERSV RESTORE PREVIOUS ERROR ROUTINE ADDR 36510002 L R13,4(R13) GET CALLER'S SAVE AREA ADDR 36530002 LM R14,R12,12(R13) RESTORE HIS REGS 36550002 BR RETREG RETURN TO FORMAT ROUTINE 36570002 EJECT 36590002 *********************************************************************** 36610002 * * 36630002 * THIS ROUTINE CONVERTS 1 BYTE TO PRINTABLE HEX * 36650002 * * 36670002 *********************************************************************** 36690002 SPACE 36710002 BYTECNVT LR R0,R1 SAVE R1 OVER HEXCNVT 36730002 HEXCNVT (4),(5),1 CONVERT ONE BYTE 36750002 LR R1,R0 RESTORE R1 36770002 BR R9 RETURN TO CALLER 36790002 EJECT 36810002 *********************************************************************** 36830002 * * 36850002 * THIS ROUTINE CONVERTS 2 BYTES TO PRINTABLE HEX * 36870002 * * 36890002 *********************************************************************** 36910002 TWOBYTCV LR R0,R1 SAVE R1 OVER HEXCNVT @Y02006 36910202 HEXCNVT (4),(5),2 CONVERT 2 BYTES @Y02006 36910402 LR R1,R0 RESTORE R1 @Y02006 36910602 BR R9 RETURN TO CALLER @Y02006 36910802 EJECT @Y02006 36910902 *********************************************************************** 36911002 * * 36912002 * ERROR WHILE PRINTING LOAD LIST * 36913002 * * 36914002 *********************************************************************** 36915002 SPACE 36930002 DROP BASE1 36950002 USING LOADERR,R15 36970002 LOADERR LA R13,LOADSAVE GET MSS PRINT'S SAVE AREA ADDRESS 36990002 LM R14,R12,12(R13) RESTORE OUR REGS 37010002 DROP R15 37030002 USING LOADBASE,BASE1 SHIFT TO BASE1 - REG 11 37050002 L BUFREG,CURBUF RELOAD BUFFER ADDR 37070002 BRWRITE 1 SPACE A LINE 37090002 TM LDSW,JBPQPRT TEST FOR PRINTING JOB PACK Q 37110002 BO LOADERR1 BR IF I WAS 37130002 MVC ADDR(18),LDERMSG MOVE ERROR MSG TO BUFFER 37150002 LA R9,LDDONE1 IF PRINTING LOAD LIST, RETURN 37170002 * TO TRY TO PRINT JOB PACK QUEUE 37190002 LOADERRT EQU * TEST FOR 1ST CDE READ @OZ14113 37191000 TM LDSW,CDEIND 1ST READ FOR THIS CDE OZ09681 37192000 BZ LOADERR2 NO - LOAD LIST ERROR OZ09681 37194000 MVC ADDR(L'CDEERRMG),CDEERRMG MOVE ERROR MSG OZ09681 37196000 LA R9,LOADPRT6 ADR OF GET NEXT LLE OZ09681 37198000 LA R4,ADDR+21 WHERE TO PUT ADDRESS OZ09681 37200000 LA R1,CDEADDR ADDRESS OF DATA TO CONVERT @OZ14113 37201000 L R15,AADRCNVT 3 BYTE CONVERT ROUTINE OZ09681 37202000 BALR RETREG,R15 CONVERT ADDRESS OZ09681 37204000 NI LDSW,XFF-CDEIND TURN OFF FOR NEXT TIME OZ09681 37206000 B LOADERR2 BR AROUND 37210002 LOADERR1 MVC ADDR(23),JPQERMSG MOVE JOB PACK Q ERROR MSG 37230002 LA R9,LDDONE3 IF PRINTING JOB PACK QUEUE, 37250002 * RETURN TO EXIT 37270002 B LOADERRT CHECK FOR 1ST READ @OZ14113 37280000 LOADERR2 BRWRITE 1 PRINT ERROR MSG 37290002 NI SWB,XFF-FMTERR-IOERR RESET ERROR SWITCHES 37310002 BR R9 RETURN ON R9 SET ABOVE 37330002 EJECT 37350002 *********************************************************************** 37370002 * * 37390002 * SAVE AREA AND CONSTANTS FOR LOADPRT ROUTINE * 37410002 * * 37430002 *********************************************************************** 37450002 SPACE 37470002 LOADSAVE DC 18F'0' MSS PRINT'S SAVE AREA 37490002 LDERSV DC F'0' 37510002 NXTLLE DC F'0' 37530002 NXTCDE DC F'0' PTR TO NEXT CDE AND CDE ATR1 37570002 LDTCBSV DC F'0' SAVE AREA FOR TCB ADDRESS 37610002 LOOPCTR DS F LOOP COUNTER SA53335 37650002 SPACE 37670002 LOADRESP DC F'00' @Y02006 38130002 CDEATR1 DC X'00' @Y02006 38150002 LDSW DC X'00' 38170002 CDEID DC C'CDE' 38190002 NMID DC C'NM' 38210002 USEID DC C'USE' 38230002 RESPID DC C'RESP' 38250002 SYSCTID DC C'SYSCT' @Y02006 38251002 EPAID DC C'EPA' 38270002 ATR1ID DC C'ATR1' 38290002 ATR2ID DC C'ATR2' Y01980 38310002 STAID DC C'STA' 38330002 LNID DC C'LN' 38350002 NA DC C'NA' 38450002 LDTITLE DC C'LOAD LIST' 38470002 NOLLEMSG DC C'NO ELEMENTS ON LOAD LIST' 38490002 LDERMSG DC C'ERROR IN LOAD LIST' 38510002 CDEERRMG DC C'UNABLE TO ACCESS CDE XXXXXX' OZ09681 38520000 JPQTTL DC C'JOB PACK QUEUE' 38530002 NOJPQMSG DC C'NOTHING IN JOB PACK' 38550002 JPQERMSG DC C'ERROR IN JOB PACK QUEUE' 38570002 XLSTEMSG DC C'ERROR IN EXTENT LIST' 38590002 NXLSTMSG DC C'NO EXTENT LIST' 38610002 LLLOOPMG DC C'INFINITE LOOP IN LOAD LIST' SA53335 38630002 JPLOOPMG DC C'INFINITE LOOP IN JOB PACK QUEUE' SA53335 38650002 CDEADDR DS F HOLD ADDR FOR CDE ERR MSG @OZ14113 38660000 FLDPCH DC 22F'0' PATCH AREA X01980 38670002 DROP BUFREG,BASE1,COMBASE 38690002 EJECT 38710002 AMDPRFDB CSECT 38730002 SPACE 38750002 *********************************************************************** 38770002 * *** AMDPRFDB - DEB PRINT *** * 38790002 * * 38810002 * STATUS--OS/VS2 RELEASE 2.0 * 38830002 * * 38850002 * FUNCTION-- * 38870002 * THIS ROUTINE FORMATS THE DEB'S ON THE DEB CHAIN OF THE TCB * 38890002 * BEING FORMATTED. * 38910002 * * 38930002 * ENTRY POINTS-- * 38950002 * AMDPRFDB IS THE ONLY ENTRY. CONTROL IS RECEIVED FROM AMDPRFSC. * 38970002 * STANDARD SUBROUTINE LINKAGE USED. * 38990002 * * 39010002 * INPUTS-- * 39030002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 39050002 * REGISTER 2 - TCB ADDRESS OF DEB CHAIN TO BE FORMATTED * 39070002 * REGISTER 12 - ADDRESS OF COMMON AREA * 39090002 * * 39110002 * OUTPUT-- * 39130002 * WRITES FORMATTED DEB CHAIN * 39150002 * WRITES MESSAGES 'TASK HAS NO OPEN DATA SETS' OR 'INFINITE LOOP * 39170002 * IN DEB CHAIN' IF MORE THAN 200 DEB'S IN DEB CHAIN. * 39190002 * WRITES ERROR MESSAGE 'ERROR IN DEB CHAIN' * 39210002 * 'ERROR FORMATTING DEB EXTENSION' * 39211002 * 'UNABLE TO ACCESS AVT - WILL TRY TO CONTINUE' 39220000 * * 39230002 * EXTERNAL REFERENCES-- * 39250002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 39270002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 39290002 * WRDCNVT - FROM AN ADDRESS IN COMMON, TO CONVERT 4 BYTES * 39310002 * TO PRINTABLE HEX. * 39330002 * ADRCNVT - FROM ADDRESS IN COMMON, TO CONVERT 3 BYTES TO * 39350002 * PRINTABLE HEX. * 39370002 * * 39390002 * EXITS,NORMAL-- * 39410002 * RETURN TO CALLER THROUGH STANDARD LINKAGE. * 39430002 * * 39450002 * EXITS,ERROR-- * 39470002 * SAME AS NORMAL EXIT * 39490002 * * 39510002 * TABLES/WORK AREAS-- NONE * 39530002 * * 39550002 * ATTRIBUTES-- REUSABLE * 39570002 * * 39590002 * CHARACTER CODE DEPENDENCY-- NONE * 39610002 * * 39630002 * NOTES-- * 39650002 * BRREAD ERROR HANDLER: IF A DEB CANNOT BE READ FROM THE INPUT * 39670002 * DUMP, A MESSAGE IS PRINTED AND CONTROL RETURNS TO AMDPRFSC. * 39690002 * * 39710002 *********************************************************************** 39730002 SPACE 39750002 DEBX EQU 32 @Y02006 39751002 DEBAVT EQU 16 AVT INDICATOR OZ09676 39760000 DADEV EQU 64 39770002 DEBFND EQU 128 39790002 TCBDEB EQU 8 39810002 ISAMTST EQU X'80' 39830002 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 39850002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 39870002 USING DEBBASE,BASE1 39890002 DEBBASE LA R3,DEBSAVE SAVE AREA CHAINING 39910002 ST R13,DEBSAVE+4 39930002 ST R3,8(R13) 39950002 LR R13,R3 39970002 SPACE 39990002 USING COMMON,COMBASE 40010002 SPACE 40030002 MVI DEBSW,0 CLEAR DEB SWITCH 40050002 XC DEBCNT,DEBCNT ZERO DEB COUNT 40070002 MVC DEBERSV,ERRADDR SAVE PREVIOUS ERROR ROUTINE ADDR 40090002 LA R15,DEBERR ADDR OF DEBPRNT ERROR ROUTINE 40110002 ST R15,ERRADDR STORE IN ERROR ROUTINE ADDR WORD 40130002 L BUFREG,CURBUF LOAD BUFFER ADDR 40150002 USING OUTBUF,BUFREG 40170002 LA PREG,TCBDEB(R2) ADDR OF DEB CHAIN PTR 40190002 DEBPRNT8 BRREAD (PREG),DATA,ASID=(R0) @Y02006 40210002 L R2,0(PREG) LOAD DEB CHAIN PTR 40230002 LA R2,0(R2) CLEAR POSSIBLE HIGH BYTE 40250002 LTR R2,R2 IS THERE A DEB 40270002 BZ NODEB NO--ALL DONE 40290002 LH R3,DEBCNT LOAD DEBCOUNT @Y02006 40291002 AH R3,ONEA ADD ONE TO IT @Y02006 40292002 CH R3,DEBMAX IS IT GT MAX @Y02006 40293002 BH DEBINF BR IF IT IS @Y02006 40294002 STH R3,DEBCNT STORE INCREMENTED COUNT BACK @Y02006 40295002 OI DEBSW,DEBFND INDICATE DEB FOUND 40310002 MVC ADDR(3),DEBID MOVE 'DEB' TO BUFFER 40330002 LA R4,ADDR+4 ADDR OF WHERE TO PUT DEB ADDR 40350002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 40370002 BALR RETREG,R15 CONVERT DEB ADDR 40390002 MVC ADDR+13(90),APPID MOVE APPENDAGE IDS TO BUFFER 40410002 LA PREG,28(R2) ADDR OF APP VEC TAB 40430002 BRREAD (PREG) 40450002 L R3,0(PREG) LOAD ADDR OF I/O APP VEC TAB 40470002 LA R3,0(R3) CLEAR HIGH ORDER BYTE 40490002 LTR R3,R3 IS IT ZERO 40510002 BZ DEBPRNT1 YES--NOTHING TO PRINT 40530002 OI DEBSW,DEBAVT INDICATE AVT PROCESSING OZ09676 40540000 BRREAD (R3) ADDR OF END OF EXT APP ADDR IN R 3 40550002 LA R4,ADDR+33 ADDR OF WHERE TO PUT END OF EXT APP 40570002 * ADDRESS X01980 40590002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN X01980 40610002 BALR RETREG,R15 CONVERT END OF EXT APP ADDR 40630002 LA PREG,4(R3) ADDR OF SIO APP ADDR 40650002 BRREAD (PREG) 40670002 LA R4,ADDR+49 ADDR OF WHERE TO PUT SIOA ADDRX01980 40690002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN X01980 40710002 BALR RETREG,R15 CONVERT SIO APP ADDR 40730002 LA PREG,8(R3) ADDR OF PCI APP ADDR 40750002 BRREAD (PREG) 40770002 LA R4,ADDR+65 ADDR OF WHERE TO PUT PCI APP ADDR 40790002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN X01980 40810002 BALR RETREG,R15 CONVERT PCI APP ADDR 40830002 LA PREG,12(R3) ADDR OF CH END APP ADDR 40850002 BRREAD (PREG) 40870002 LA R4,ADDR+81 ADDR OF WHERE TO PUT CH END APP ADDR 40890002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN X01980 40910002 BALR RETREG,R15 CONVERT CH END APP ADDR 40930002 LA PREG,16(R3) ADDR OF AB END APP ADDR 40950002 BRREAD (PREG) 40970002 LA R4,ADDR+97 ADDR OF WHERE TO PUT AB END APP ADDR 40990002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT RTN X01980 41010002 BALR RETREG,R15 CONVERT AB END APP ADDR 41030002 DEBNOAVT NI DEBSW,XFF-DEBAVT AVT PROCESSING DONE OZ09676 41040000 DEBPRNT1 BRWRITE 1 PRINT LINE OF APP ADDRS 41050002 MVC ADDR+13(3),PFXID MOVE 'PFX' TO BUFFER 41070002 LR R3,R2 DEB ADDR TO R3 41090002 SH R3,SIXTEEN ADDR OF DEB PREFIX IN R3 41110002 BNP DEBERR1 ERROR IF ZERO OR NEG A41628 41130002 LA R7,4 LOAD COUNT TO R7 41150002 LA R4,ADDR+17 ADDR OF WHERE TO PUT FIRST WORD OF 41170002 * PREFIX 41190002 DEBPRNT2 BRREAD (R3) PREFIX ADDR IN REG 3 41210002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 41230002 BALR RETREG,R15 CONVERT WORD OF PREFIX 41250002 AH R4,ELEVEN INCR WHERE-TO-PUT-IT ADDR 41270002 LA R3,4(R3) INCR PREFIX ADDRESS 41290002 BCT R7,DEBPRNT2 LOOP FOR 4 WORDS 41310002 BRWRITE 1 PRINT LINE OF DEB PREFIX 41330002 MVC ADDR+13(3),DTCBID MOVE 'TCB' TO BUFFER 41350002 BRREAD (R2) DEB ADDR IN REG 2 41370002 LA R4,ADDR+17 ADDR OF WHERE TO PUT TCB ADDR 41390002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 41410002 BALR RETREG,R15 CONVERT TCB ADDR 41430002 MVC ADDR+28(4),NDEBID MOVE 'NDEB' TO BUFFER 41450002 LA PREG,4(R2) ADDR OF NEXT DEB PTR 41470002 BRREAD (PREG) 41490002 LA R4,ADDR+33 ADDR OF WHERE TO PUT NXT DEB ADDR 41510002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 41530002 BALR RETREG,R15 CONVERT NXT DEB ADDR 41550002 MVC ADDR+44(4),IRBAID MOVE 'IRBA' TO BUFFER @Y02006 41570002 LA PREG,8(R2) ADDR OF ASYN EXIT ADDR 41590002 BRREAD (PREG) 41610002 LA R4,ADDR+49 ADDR OF WHERE TO PUT ASYN EXIT ADDR 41630002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 41650002 BALR RETREG,R15 CONVERT ASYN EXIT ADDR 41670002 MVC ADDR+60(4),FLGSID MOVE 'FLGS' TO BUFFER @Y02006 41690002 LA PREG,12(R2) ADDR OF SYSTEM IOB PURGE CHAIN PTR 41710002 BRREAD (PREG) 41730002 MVC DEBFLG(1),2(PREG) SAVE FLAG BYTE @Y02006 41731002 LA R4,ADDR+65 WHERE IT GOES 41750002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 41770002 BALR RETREG,R15 COMVERT SYS PRGE CH ADDR 41790002 MVC ADDR+76(4),UPRGID MOVE 'UPRG' TO BUFFER 41810002 LA PREG,16(R2) ADDR OF USER IOB PURGE CHAIN PTR 41830002 BRREAD (PREG) 41850002 MVC XTNTNO(1),0(PREG) SAVE EXTENT NUMBER 41870002 LA R4,ADDR+81 ADDR OF WHERE TO PUT IT 41890002 L R15,AWRDCNVT 41910002 BALR RETREG,R15 CONVERT USER PRG CH ADDR 41930002 MVC ADDR+92(4),PLSTID MOVE 'PLST' TO BUFFER 41950002 LA PREG,20(R2) ADDR OF PARAMETER LIST FOR PURGE ECB 41970002 BRREAD (PREG) 41990002 LA R4,ADDR+97 ADDR OF WHERE PARM LIST PTR GOES 42010002 L R15,AWRDCNVT 42030002 BALR RETREG,R15 CONVERT PARM LIST ADDR 42050002 MVC ADDR+108(3),DCBID MOVE 'DCB' TO BUFFER 42070002 LA PREG,24(R2) ADDR OF DCB PTR 42090002 BRREAD (PREG) 42110002 MVC DEBDCB(4),0(PREG) SAVE DCB ADDR M1748 42130002 LA R4,ADDR+112 ADDR OF WHERE IT GOES 42150002 L R15,AWRDCNVT 42170002 BALR RETREG,R15 CONVERT DCB ADDR 42190002 BRWRITE 1 PRINT THIS LINE OF DEB 42210002 MVC ADDR+13(3),AVTID MOVE 'AVT' TO BUFFER 42230002 LA PREG,28(R2) ADDR OF I/O APP VECT TABLE ADDR 42250002 BRREAD (PREG) 42270002 TM 0(PREG),X'04' TEST FOR DA 42290002 BZ DEBPRNT3 BR IF NOT DA 42310002 OI DEBSW,DADEV SET DA DEVICE FLAG IF IT IS 42330002 DEBPRNT3 LA R4,ADDR+17 ADDR OF WHERE TO PUT APP VECT TAB 42350002 * ADDRESS 42370002 L R15,AWRDCNVT 42390002 BALR RETREG,R15 CONVERT I/O APP VECTOR TABLE ADDR 42410002 BRWRITE 1 PRINT LINE 42430002 SR R7,R7 CLEAR IC REG 42450002 IC R7,XTNTNO LOAD NO OF EXTENTS 42470002 XNTTEST LTR R7,R7 TEST FOR ZERO 42490002 BNP DEBDONE ZERO--NO EXTENTS TO PRINT 42510002 TM DEBSW,DADEV IS THIS DEB FOR DA 42530002 BO DEBPRNT5 YES--4 WORD EXTENTS 42550002 MVC ADDR+14(6),OPUCBID NO--1 WORD EXTENTS...MOVE 'OP-UCB' 42570002 * TO BUFFER 42590002 BRWRITE 1 PRINT LINE 42610002 LA R3,32(R2) ADDR OF FIRST EXTENT 42630002 LA R4,ADDR+13 ADDR OF WHERE TO PUT EXTENTS 42650002 DEBPRNT4 BRREAD (R3) 42670002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 42690002 BALR RETREG,R15 CONVERT EXTENT 42710002 BRWRITE 1 PRINT EXTENT 42730002 LA R3,4(R3) INCR TO NEXT EXTENT 42750002 BCT R7,DEBPRNT4 LOOP FOR NUMB OF EXTENTS 42770002 B DEBDONE ALL DONE WITH DEB 42790002 SPACE 3 42810002 *********************************************************************** 42830002 * * 42850002 * PRINT 4 WORD EXTENTS (DIRECT ACCESS) * 42870002 * * 42890002 *********************************************************************** 42910002 SPACE 42930002 DEBPRNT5 CLI XTNTNO,X'01' HOW MANY EXTENTS Y01980 42950002 BNH NOTISAM IF ONE OR LESS--NOT ISAM Y01980 42970002 LA PREG,32(R2) POINT TO FIRST WORD OF DEVICE Y01980 42990002 * SECTION (UCB ADDR IF NOT ISAM)Y01980 43010002 ST PREG,DEBLO SAVE ADDR OF DEVICE SECTION Y01980 43030002 LR R9,R7 GET NUMBER OF EXTENTS Y01980 43050002 SLL R9,4 MULTIPLY BY 16 Y01980 43070002 LA R9,0(PREG,R9) GET ADDR OF END OF DEVICE SEC Y01980 43090002 ST R9,DEBHI SAVE ENDING ADDR Y01980 43110002 BRREAD (PREG) READ FIRST WD OF DEVICE SEC Y01980 43130002 NC 1(3,PREG),1(PREG) TEST FOR ZERO PTR Y01980 43150002 BZ ISAM IF ZERO ASSUME ISAM DEB Y01980 43170002 * (UCB PTR NOT ZERO) 43190002 CLC 1(3,PREG),DEBLO+1 DOES NON ZERO ADDR POINT INTO Y01980 43210002 * DEVICE SECTION--HENCE ISAM 43230002 BL NOTISAM IF LOWER MUST BE A UCB Y01980 43250002 CLC 1(3,PREG),DEBHI+1 TEST END OF DEVICE SECTION Y01980 43270002 BH NOTISAM IF HIGHER ITS NOT ISAM Y01980 43290002 ISAM OI ISAMSW,ISAMTST INDICATE ISAM DEB Y01980 43310002 BCTR R7,0 DEREMENT EXTENT COUNT FOR ISAMY01980 43330002 B HAVEDA CONTINUE WITH DA EXTENTS Y01980 43350002 NOTISAM CLI XTNTNO,X'01' HOW MANY EXTENTS Y01980 43370002 BH HAVEDA IF MORE THAN ONE ITS DA M1748 43390002 LA R4,3 SET TO THREE FOR LOOP CNT M1748 43410002 LA R3,36(R2) ADDR OF FIRST DCB IF 3525 M1748 43430002 DCBREAD BRREAD (R3) READ DCB ADDR M1748 43450002 CLC 1(3,PREG),DEBDCB+1 ARE DCB'S THE SAME M1748 43470002 BE HAVE3525 YES--DEVICE SECTION IS 3525 M1748 43490002 LA R3,4(R3) POINT TO NEXT DCB ADDR M1748 43510002 BCT R4,DCBREAD LOOP TO READ 3 ADDR M1748 43530002 HAVEDA MVC ADDR+14(36),FMUCBID MOVE IDS TO BUFFER M1748 43550002 BRWRITE 1 PRINT EXTENT IDS 43570002 LA R3,32(R2) ADDR OF FIRST EXTENT 43590002 TM ISAMSW,ISAMTST IS THIS AN ISAM DATA SET 43610002 BZ DEBPRNT7 NO--CONTINUE 43630002 LA R3,48(R2) YES--SKIP EXTENT 0 43650002 DEBPRNT7 LA R4,ADDR+13 ADDR OF WHERE TO PUT FIRST WORD OF 43670002 * EXTENT 43690002 BRREAD (R3) 43710002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 43730002 BALR RETREG,R15 CONVERT FILE MASK AND UCB ADDR 43750002 LA R8,3 LOAD COUNT TO R3 43770002 LA R9,DEBWORK ADDR OF 3 WORD WORK AREA 43790002 DEBPRNT6 LA R3,4(R3) ICNR TO NEXT WORD OF EXTENT 43810002 BRREAD (R3) EXTENT WORD ADDR IN REG 3 43830002 MVC 0(4,R9),0(PREG) MOVE 4 BYTES TO WORK AREA 43850002 LA R9,4(R9) INCR WORK AREA ADDR 43870002 BCT R8,DEBPRNT6 LOOP FOR 3 WORDS 43890002 LA PREG,DEBWORK+2 ADDR OF STARTING CCHH OF EXTENT 43910002 LA R4,ADDR+24 ADDR OF WHERE IT GOES 43930002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 43950002 BALR RETREG,R15 CONVERT STARTING CCHH OF EXTENT 43970002 LA PREG,DEBWORK+6 ADDR OF ENDING CCHH OF EXTENT 43990002 LA R4,ADDR+35 ADDR OF WHERE IT GOES 44010002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 44030002 BALR RETREG,R15 CONVERT ENDING CCHH OF EXTENT 44050002 HEXCNVT ADDR+46,DEBWORK+10,2 CONVERT NUMB OF TRACKS FOR THIS 44070002 * EXTENT 44090002 BRWRITE 1 PRINT EXTENT 44110002 LA R3,4(R3) INCR TO NEXT EXTENT 44130002 BCT R7,DEBPRNT7 LOOP FOR NUMB OF EXTENTS 44150002 B DEBDONE DONE WITH DEB M1748 44170002 SPACE 44190002 *********************************************************************** 44210002 * * 44230002 * PRINT 4 WORD EXTENT FOR 3525 * 44250002 * * 44270002 *********************************************************************** 44290002 SPACE 44310002 HAVE3525 MVC ADDR+15(38),H3525 MOVE HEADING TO PRINT M1748 44330002 BRWRITE 1 WRITE HEADING FOR 3525 M1748 44350002 LA R3,32(R2) GET ADDR OF DEVICE SECTION M1748 44370002 ST R3,F3525D SET IN FORMAT PATTERN M1748 44390002 LA PREG,F3525 GET ADDR OF FMTPTRN M1748 44410002 L R15,AFMTLINE ADDR OF FORMAT RTN M1748 44430002 BALR RETREG,R15 GO FORMAT 3525 LINE M1748 44450002 BRWRITE 1 WRITE 3525 LINE M1748 44470002 B DEBDONE DONE WITH DEB M1748 44490002 SPACE 44510002 *********************************************************************** 44530002 * * 44550002 * DONE WITH THIS DEB...LOOK FOR ANOTHER * 44570002 * * 44590002 *********************************************************************** 44610002 SPACE 44630002 DEBDONE TM DEBFLG,X'01' DOES DEB EXTN EXIST @Y02006 44631002 BO FMTDEBX YES, GO FORMAT IT @Y02006 44632002 DEBDONE1 NI DEBSW,XFF-DADEV RESET DIRECT ACCESS FLAG @Y02006 44650002 NI ISAMSW,XFF-ISAMTST RESET ISAM SW 44670002 BRWRITE 1 SPACE A LINE 44690002 LA PREG,4(R2) ADDR OF NEXT DEB PTR 44810002 B DEBPRNT8 LOOP THROUGH DEB CHAIN 44830002 SPACE 2 44850002 *********************************************************************** 44851002 * * 44852002 * FORMAT DEB EXTENSION * 44853002 * * 44854002 *********************************************************************** 44855002 SPACE 1 44856002 FMTDEBX LR PREG,R2 DEB ADDR TO PREG @Y02006 44857002 SH PREG,EIGHT BACK UP TO EXTN PTR @Y02006 44858002 OI DEBSW,DEBX INDICATE FMT DEBXTN @Y02006 44858202 BRREAD (PREG) @Y02006 44859002 MVC DBXLN2A(4),0(PREG) MOVE ADDR TO FMTPTRN @Y02006 44860002 LA PREG,DBXLN1 ADDR OF PATTERN FOR LINE 1 @Y02006 44861002 L R15,AFMTLINE ADDR OF FMT RTN @Y02006 44862002 BALR R14,R15 FORMAT LINE @Y02006 44863002 BRWRITE 1 PRINT LINE @Y02006 44864002 LA PREG,DBXLN2 DO SAME FOR LINE 2 @Y02006 44865002 L R15,AFMTLINE @Y02006 44866002 BALR R14,R15 @Y02006 44867002 FMTDEBX1 BRWRITE 1 @Y02006 44868002 NI DEBSW,XFF-DEBX END OF DEBXTN @Y02006 44868202 B DEBDONE1 GO GET NEXT DEB @Y02006 44869002 SPACE 2 44869202 *********************************************************************** 44870002 * * 44890002 * DONE WITH DEB CHAIN...RETURN TO FORMAT ROUTINE * 44910002 * * 44930002 *********************************************************************** 44950002 SPACE 44970002 NODEB TM DEBSW,DEBFND WAS THERE A DEB 44990002 BZ NODEB1 NO--WRITE A MSG TO THAT AFFECT 45010002 BRWRITE 1 SPACE ANOUTHER LINE 45030002 NODEB2 MVC ERRADDR,DEBERSV RESTORE PREVIOUS ERROR ROUTINE ADDR 45050002 L R13,4(R13) POINT TO CALLER'S SAVE AREA 45070002 LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS 45090002 BR RETREG RETURN TO FORMAT ROUTINE 45110002 SPACE 45130002 NODEB1 MVC ADDR(26),NODEBMSG MOVE MSG TO BUFFER 45150002 NODEB3 BRWRITE 3 PRINT MSG AND SPACE 3 LINES 45170002 TM DEBSW,DEBAVT AVT PROCESSING? OZ09676 45176000 BO DEBNOAVT YES - TRY TO CONTINUE OZ09676 45182000 B NODEB2 RETURN TO FORMAT 45190002 SPACE 2 45210002 *********************************************************************** 45230002 * * 45250002 * GREATER THAN 200 DEBS...CONSIDER IT AN INFINITE LOOP * 45270002 * * 45290002 *********************************************************************** 45310002 SPACE 45330002 DEBINF MVC ADDR(26),DEBIFMSG MOVE INFINITE LOOP MSG TO BUFFER 45350002 B NODEB3 PRINT MSG AND RETURN TO FORMAT 45370002 EJECT 45390002 *********************************************************************** 45410002 * * 45430002 * ERROR IN DEB CHAIN...WRITE MSG AND RETURN TO FORMAT * 45450002 * * 45470002 *********************************************************************** 45490002 SPACE 45510002 DROP BASE1 45530002 USING DEBERR,R15 45550002 DEBERR LA R13,DEBSAVE POINT TO DEB PRINT'S SAVE AREA 45570002 LM R14,R12,12(R13) RESTORE OUR REGS 45590002 DROP R15 45610002 USING DEBBASE,BASE1 SHIFT BACK TO REG 11 AS BASE 45630002 TM DEBSW,DEBX WAS DEBXTN BEING DONE @Y02006 45631002 BNO DEBERR1 NO, QUIT @Y02006 45632002 BRWRITE 1 SPACE A LINE @Y02006 45633002 MVC ADDR(L'DEBXRMG),DEBXRMG MOVE MSG TO BUFFER @Y02006 45634002 B FMTDEBX1 CONTINUE @Y02006 45635002 DEBERR1 L BUFREG,CURBUF RELOAD BUFFER ADDR A41628 45650002 BRWRITE 1 SPACE A LINE 45670002 MVC ADDR(18),DEBERMSG MOVE ERROR MSG TO BUFFER 45690002 NI SWB,XFF-FMTERR-IOERR RESET ERROR SWITCHES 45710002 TM DEBSW,DEBAVT AVT PROCESSING? OZ09676 45715000 BNO NODEB3 NO - RETURN TO FORMAT OZ09676 45720000 MVC ADDR(43),DEBAVTMG SET MESSAGE OZ09676 45725000 B NODEB3 RETURN TO FORMAT 45730002 EJECT 45750002 *********************************************************************** 45770002 * * 45790002 * SAVE AREA AND CONSTANTS FOR DEBPRNT ROUTINE * 45810002 * * 45830002 *********************************************************************** 45850002 SPACE 45870002 DEBSAVE DC 18F'0' DEB PRINT'S SAVE AREA 45890002 DEBWORK DC 3F'0' 45910002 DEBERSV DC F'0' 45930002 DEBCNT DC H'0' 45950002 DEBFLG DC X'00' @Y02006 45951002 DEBSW DC X'00' 45970002 XTNTNO DC X'00' NUMB OF EXTENTS FOR CURRENT DEB 45990002 ISAMSW DC X'00' ISAM DATA SET IF X'80' 46010002 DEBLO DC A(0) BEGIN ADDR OF BDE DEVICE SEC Y01980 46030002 DEBHI DC A(0) END ADDR OF DEB DEVICE SECTIONY01980 46050002 DEBDCB DC F'0' DCB ADDR SAVE M1748 46070002 H3525 DC C'UCB RDRDCB PCHDCB WTRDCB' M1748 46090002 F3525 FMTPTRN (DTA,DTAP),,4,,13,,(F3525D,0) M1748 46110002 FMTPTRN (DTA),,4,,24 M1748 46130002 FMTPTRN (DTA),,4,,35 M1748 46150002 FMTPTRN (DTA),,4,,46,,,LAST M1748 46170002 DBXLN1 FMTPTRN (DTA,DTAP,LBL,LBLP,DTAC),6,3,14,21,(DBXID),(DBXLN2A+1)*46171002 ,LAST @Y02006 46171202 DBXLN2 FMTPTRN (DTA,DTAP,LBL),2,2,13,16,,(DBXLN2A,0) @Y02006 46173002 FMTPTRN (DTA,LBL),4,2,23,28 @Y02006 46174002 FMTPTRN (DTA,LBL),4,4,35,40 @Y02006 46175002 FMTPTRN (DTA,LBL),4,4,51,56 @Y02006 46176002 FMTPTRN (DTA,LBL),3,4,67,71 @Y02006 46177002 FMTPTRN (DTA,LBL),5,2,82,88 @Y02006 46178002 FMTPTRN (DTA,LBL),4,2,95,100 @Y02006 46179002 FMTPTRN (DTA,LBL),4,4,107,112,,,LAST @Y02006 46180002 DBXID DC C'DEBXTNLNRESVDSABDCBMDEBDSORGMACRXARG' @Y02006 46181002 DEBID DC C'DEB' 46190002 APPID DC CL15'APPENDAGES' 46210002 DC CL16'EOEA' X01980 46230002 DC CL16'SIOA' X01980 46250002 DC CL16'PCIA' X01980 46270002 DC CL16'CEA' X01980 46290002 DC CL16'XCEA' X01980 46310002 PFXID DC C'PFX' 46330002 DTCBID DC C'TCB' 46350002 NDEBID DC C'NDEB' 46370002 IRBAID DC C'IRBA' @Y02006 46390002 FLGSID DC C'FLGS' @Y02006 46410002 UPRGID DC C'UPRG' 46430002 PLSTID DC C'PLST' 46450002 DCBID DC C'DCB' 46470002 AVTID DC C'AVT' 46490002 OPUCBID DC C'OP-UCB' 46510002 FMUCBID DC CL11'FM-UCB' 46530002 DC CL12'START' 46550002 DC CL9'END' 46570002 DC CL4'TRKS' 46590002 NODEBMSG DC C'TASK HAS NO OPEN DATA SETS' 46610002 DEBERMSG DC C'ERROR IN DEB CHAIN' 46630002 DEBXRMG DC C'ERROR FORMATTING DEB EXTENSION' @Y02006 46631002 DEBAVTMG DC C'UNABLE TO ACCESS AVT - WILL TRY TO CONTINUE' OZ09676 46640000 DEBIFMSG DC C'INFINITE LOOP IN DEB CHAIN' 46650002 FDBPCH DC 20F'0' PATCH AREA X01980 46670002 DROP BUFREG,BASE1,COMBASE 46690002 EJECT 46710002 AMDPRFIO CSECT 46730002 SPACE 46750002 *********************************************************************** 46770002 * *** AMDPRFIO - TIOT PRINT *** * 46790002 * * 46810002 * STATUS--OS/VS2 RELEASE 2.0 * 46830002 * * 46850002 * FUNCTION-- * 46870002 * THIS ROUTINE PRINTS THE TIOT OF THE TCB BEING FORMATTED. * 46890002 * * 46910002 * ENTRY POINTS-- * 46930002 * AMDPRFIO IS THE ONLY ENTRY. CONTROL IS RECEIVED FROM AMDPRFSC. * 46950002 * STANDARD SUBROUTINE LINKAGE USED. * 46970002 * * 46990002 * INPUTS-- * 47010002 * REGISTER 0 - ASID OF STORAGE CONTAINING TCB TO BE FORMATTED * 47030002 * REGISTER 2 - TCB ADDRESS TO BE FORMATTED * 47050002 * REGISTER 12 - ADDRESS OF COMMON AREA * 47070002 * * 47090002 * OUTPUTS-- * 47110002 * WRITES FORMATTED TIOT * 47130002 * WRITES MESSAGES 'TASK HAS NO TIOT','TIOT FORMATTED ON PAGE XXXX' * 47150002 * WRITES ERROR MESSAGE 'ERROR IN TIOT', 'INVALID TIOT', AND * 47170002 * 'INFINITE LOOP IN TIOT' * 47190002 * * 47210002 * EXTERNAL REFERENCES-- * 47230002 * BRREAD - TO OBTAIN DATA FROM THE INPUT DUMP. * 47250002 * BRWRITE - TO WRITE DATA TO THE 'PRINTER' DATA SET. * 47270002 * WRDCNVT - FROM AN ADDRESS IN COMMON, TO CONVERT 4 BYTES * 47290002 * TO PRINTABLE HEX. * 47310002 * ADRCNVT - FROM ADDRESS IN COMMON, TO CONVERT 3 BYTES TO * 47330002 * PRINTABLE HEX. * 47350002 * * 47370002 * EXITS,NORMAL-- * 47390002 * RETURN TO CALLER THROUGH STANDARD LINKAGE. * 47410002 * * 47430002 * EXITS,ERROR-- * 47450002 * SAME AS NORMAL EXIT * 47470002 * * 47490002 * TABLES/WORK AREAS-- NONE * 47510002 * * 47530002 * ATTRIBUTES-- REUSABLE * 47550002 * * 47570002 * CHARACTER CODE DEPENDENCY-- NONE * 47590002 * * 47610002 * NOTES-- * 47630002 * BRREAD ERROR HANDLER: IF THE TIOT CANNOT BE READ FROM THE INPUT * 47650002 * DUMP, A MESSAGE IS PRINTED AND CONTROL RETURNS TO AMDPRFSC. * 47670002 * * 47690002 *********************************************************************** 47710002 SPACE 47730002 TIOTVLD EQU 128 47770002 STM R14,R12,12(R13) SAVE CALLER'S REGISTERS 47790002 BALR BASE1,0 ESTABLISH REG 11 AS BASE 47810002 USING TIOTBASE,BASE1 47830002 TIOTBASE LA R3,TIOSAV SAVE AREA CHAINING 47850002 ST R13,TIOSAV+4 47870002 ST R3,8(R13) 47890002 LR R13,R3 47910002 SPACE 47930002 USING COMMON,COMBASE 47950002 SPACE 47970002 MVC TIOERSV,ERRADDR SAVE PREVIOUS ERROR ROUTINE ADDR 47990002 LA R15,TIOTERR ADDR OF TIOTPRT ERROR ROUTINE 48010002 ST R15,ERRADDR STORE IN ERROR ADDR WORD 48030002 L BUFREG,CURBUF LOAD BUFFER ADDR 48050002 USING OUTBUF,BUFREG 48070002 STH R0,TIOTASID SAVE ASID @Y02006 48071002 LA PREG,TCBTIOT(R2) LOAD TIOT PTR ADDR 48090002 BRREAD (PREG),DATA,ASID=(R0) @Y02006 48110002 L R2,0(PREG) LOAD TIOT ADDR 48130002 LA R2,0(R2) CLEAR POSSIBLE HIGH ORDER BYTE 48150002 LTR R2,R2 IS THERE A TIOT 48170002 BZ NOTIOT NO--WRITE MSG AND RETURN TO FORMAT 48190002 C R2,TIOTLAST IS TIOT SAME AS LAST @Y02006 48191002 BNE TIOTNEW NO,BR @Y02006 48192002 CLC TIOTASID(2),ASIDLAST IS IT SAME ASID @Y02006 48193002 BNE TIOTNEW NO, BR @Y02006 48195002 TM SWF,PAGEOK IS PAGE NO VALID @Y02006 48195202 BNO TIOTNEW NO, FORMAT TIOT @Y02006 48195402 MVC ADDR(L'SAMEMSG),SAMEMSG MOVE MSG TO BUFFER @Y02006 48196002 BRWRITE 1 @Y02006 48197002 B TIOTDONE RETURN TO FORMAT @Y02006 48198002 TIOTNEW MVC ASIDLAST(2),TIOTASID SET NEW LAST ASID @Y02006 48199002 ST R2,TIOTLAST SET NEW LAST TIOT @Y02006 48200002 NI SWF,XFF-PAGEOK NO VALID PAGE YET @Y02006 48201002 MVC ADDR(4),TIOTID MOVE 'TIOT' TO BUFFER 48250002 LA R4,ADDR+5 ADDR OF WHERE TO PUT TIOT ADDR 48270002 L R15,AADRCNVT ADDR OF 3 BYTE CONVERT ROUTINE 48290002 BALR RETREG,R15 CONVERT TIOT ADDR 48310002 MVC ADDR+13(3),JOBID MOVE 'JOB' TO BUFFER 48330002 BRREAD (R2) TIOT ADDR IN REG 2 48350002 MVC ADDR+17(8),0(PREG) MOVE JOBNAME TO BUFFER 48370002 LR R3,PREG LOAD INDEX REG 48390002 LA R4,1 LOAD INCREMENT REG 48410002 LA R5,7(PREG) LOAD COMPARITOR REG 48430002 TIOTLP4 TM 0(R3),X'40' TEST FOR VALID JOBNAME IN TIOT 48450002 BZ TIOTPRT2 BR IF FOUND INVALID 48470002 BXLE R3,R4,TIOTLP4 LOOP TO END OF JOBNAME 48490002 OI TIOTSW,TIOTVLD SET VALID TIOT SW 48510002 B TIOTPRT3 BR AROUND 48530002 TIOTPRT2 NI TIOTSW,XFF-TIOTVLD RESET VALID TIOT SW 48550002 TIOTPRT3 EQU * 48570002 MVC ADDR+28(4),STEPID MOVE 'STEP' TO BUFFER 48590002 LA PREG,8(R2) ADDR OF STEP NAME 48610002 BRREAD (PREG) 48630002 MVC ADDR+33(8),0(PREG) MOVE STEPNAME TO BUFFER 48650002 MVC ADDR+44(4),PROCID MOVE 'PROC' TO BUFFER 48670002 LA PREG,16(R2) ADDR OF PROCEEDURE NAME 48690002 BRREAD (PREG) 48710002 MVC ADDR+49(8),0(PREG) MOVE PROC STEP NAME 48730002 BRWRITE 2 PRINT TIOT NAMES AND SPACE 2 LINES 48750002 MVC TIOTPGE(4),TITLEPGE+5 MOVE PAGE NUMBER TO MSG @Y02006 48751002 OI SWF,PAGEOK PAGE IS VALID @Y02006 48752002 TM TIOTSW,TIOTVLD IS TIOT VALID 48770002 BZ TIONVLD BR IF NOT VALID TIOT 48790002 LA R3,24(R2) ADDR OF FIRST DD ENTRY 48810002 SR R7,R7 CLEAR IC REG 48830002 BRREAD (R3) 48850002 IC R7,0(PREG) LOAD LENGTH OF DD ENTRY 48870002 LTR R7,R7 ARE THERE ANY DD ENTRIES 48890002 BZ NODDEN BR IF THERE ARE NONE 48910002 MVC ADDR+13(49),DDENIDS MOVE DD ENTRY IDS TO BUFFER 48930002 LR R4,PREG SAVE PREG ACCROSS BRWRITE 48950002 BRWRITE 1 PRINT DD ENTRY IDS 48970002 LR PREG,R4 RESTORE PREG 48990002 LH R9,DDMAX SET LOOP CTR TO 1 MORE THAN @Y02006 49010002 LA R9,1(R9) MAXIMUM ALLOWED @Y02006 49030002 BCT R9,TIOTLP3 DECREMENT, BR IF NOT 0 @Y02006 49036002 B TIOTDONE LOOP CONTROL WAS 0, ALL DONE @Y02006 49042002 TIOTLP3 LR R5,R3 DD ENTRY ADDR TO R5 49050002 SR R5,R2 SUBTRACT TIOT ADDR FOR OFFSET 49070002 ST R5,TIOTWORK STORE IN WORK AREA FOR CONVERSION 49090002 LR R4,R1 SAVE R1 ACCROSS HEXCNVT 49110002 HEXCNVT ADDR+14,TIOTWORK+2,2 CONVERT OFFSET 49130002 LR R1,R4 RESTORE R1 49150002 LA R4,ADDR+22 ADDR FOR FIRST WORD 49170002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 49190002 BALR RETREG,R15 CONVERT FIRST WORD OF DD ENTRY 49210002 LA R3,4(R3) INCR ADDR 49230002 LA R8,2 LOAD LOOP COUNT 49250002 LA R4,ADDR+33 ADDR OF WHERE TO PUT DDNAME 49270002 TIOTLP1 BRREAD (R3) 49290002 MVC 0(4,R4),0(PREG) MOVE FOUR BYTES OF DDNAME 49310002 LA R4,4(R4) INCR 49330002 LA R3,4(R3) ADDRS 49350002 BCT R8,TIOTLP1 LOOP TO MOVE ENTIRE NAME 49370002 BRREAD (R3) ADDR OF TTR-STC FIELD OF DD ENTRY 49390002 LA R4,ADDR+44 ADDR OF WHERE TO PUT IT 49410002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 49430002 BALR RETREG,R15 CONVERT TTR-STC FIELD 49450002 SH R7,SIXTEEN SUBTRACT 16 FROM LENGTH 49470002 BNP TIOTPRT1 NO DEVICE ENTRY 49490002 SRL R7,2 DIVIDE BY 4 49510002 LTR R7,R7 TEST AGAIN 49530002 BNP TIOTPRT1 NO DEVICE ENTRY 49550002 LA R4,ADDR+55 ADDR FOR DEV ENT IN BUFFER 49570002 TIOTLP2 LA R3,4(R3) INCR TO DEVICE ENTRY 49590002 BRREAD (R3) 49610002 L R15,AWRDCNVT ADDR OF 4 BYTE CONVERT ROUTINE 49630002 BALR RETREG,R15 CONVERT DEVICE ENTRY 49650002 BRWRITE 1 PRINT THIS LINE 49670002 BCT R7,TIOTLP2 LOOP FOR NUMB OF ENTRIES 49690002 TIOTPRT1 LA R3,4(R3) INCR TO NEXT ENTRY IF ANY 49710002 BRREAD (R3) 49730002 IC R7,0(PREG) LENGTH OF NEXT ENTRY 49750002 LTR R7,R7 IS THERE ANOTHER ENTRY 49770002 BNP TIOTDONE NO SET UP TO RETURN SA55854 49790002 BCT R9,TIOTLP3 HAVE MAX DDS BEEN PROCESSED SA55854 49810002 MVC ADDR(L'TIOTLOOP),TIOTLOOP PUT INFINITE LOOP MSG SA55854 49830002 * IN MSG BUFFER (YES) SA55854 49850002 BRWRITE 1 PUT OUT LOOP MESSAGE SA55854 49870002 SPACE 2 49890002 *********************************************************************** 49910002 * * 49930002 * ALL DONE WITH TIOT...RETURN TO FORMAT ROUTINE * 49950002 * * 49970002 *********************************************************************** 49990002 SPACE 50010002 TIOTDONE DS 0H 50030002 TIOTDN1 MVC ERRADDR,TIOERSV RESTORE PREVIOUS ERROR ROUTINE ADDR 50050002 L R13,4(R13) POINT TO CALLER'S SAVE AREA 50070002 LM R14,R12,12(R13) RESTORE HIS REGS 50090002 BR RETREG RETURN TO FORMAT ROUTINE 50110002 SPACE 2 50130002 *********************************************************************** 50150002 * * 50170002 * NO DD ENTRIES...SPACE 1 LINE AND RETURN * 50190002 * * 50210002 *********************************************************************** 50230002 SPACE 50250002 NODDEN BRWRITE 1 SPACE A LINE 50270002 B TIOTDN1 RETURN TO FORMAT 50290002 SPACE 2 50310002 *********************************************************************** 50330002 * * 50350002 * NO TIOT...PRINT MESSAGE AND RETURN * 50370002 * * 50390002 *********************************************************************** 50410002 SPACE 50430002 NOTIOT MVC ADDR(16),NOTIOMSG MOVE MESSAG TO BUFFER 50450002 BRWRITE 1 PRINT MSG 50470002 B TIOTDONE RETURN 50490002 SPACE 2 50510002 *********************************************************************** 50530002 * * 50550002 * INVALID TIOT...PRINT MESSAGE AND RETURN TO FORMAT * 50570002 * * 50590002 *********************************************************************** 50610002 SPACE 50630002 TIONVLD MVC ADDR(12),NVLDMSG MOVE NOT VALID MSG TO BUFFER 50650002 BRWRITE 1 PRINT MSG AND SPACE A LINE 50670002 B TIOTDN1 RETURN TO FORMAT 50690002 EJECT 50710002 *********************************************************************** 50730002 * * 50750002 * ERROR FORMATTING TIOT...PRINT ERROR MESSAGE AND RETURN TO FORMAT * 50770002 * * 50790002 *********************************************************************** 50810002 SPACE 50830002 DROP BASE1 50850002 USING TIOTERR,R15 50870002 TIOTERR LA R13,TIOSAV GET ADDR OF TIOT PRINT'S SAVE AREA 50890002 LM R14,R12,12(R13) RESTORE HIS REGS 50910002 DROP R15 50930002 USING TIOTBASE,BASE1 50950002 L BUFREG,CURBUF RELOAD BUFFER ADDR 50970002 BRWRITE 1 SPACE A LINE 50990002 MVC ADDR(13),TIOERMSG MOVE ERROR MSG TO BUFFER 51010002 BRWRITE 1 PRINT AND SPACE A LINE 51030002 B TIOTDN1 RETURN TO FORMAT ROUTINE 51050002 EJECT 51070002 *********************************************************************** 51090002 * * 51110002 * SAVE AREA AND CONSTANTS FOR TIOTPRT ROUTINE * 51130002 * * 51150002 *********************************************************************** 51170002 SPACE 51190002 TIOSAV DC 18F'0' TIOT PRINT'S SAVE AREA 51210002 TIOTWORK DC F'0' 51230002 TIOERSV DC F'0' 51250002 TIOTLAST DC F'0' @Y02006 51251002 TIOTASID DC H'0' @Y02006 51252002 ASIDLAST DC XL2'FFFF' @Y02006 51253002 TIOTSW DC X'00' 51270002 TIOTID DC C'TIOT' 51290002 JOBID DC C'JOB' 51310002 STEPID DC C'STEP' 51330002 PROCID DC C'PROC' 51350002 DDENIDS DC CL10'OFFSET' 51370002 DC CL10'LN-STA' 51390002 DC CL11'DDNAME' 51410002 DC CL11'TTR-STC' 51430002 DC CL7'STB-UCB' 51450002 NOTIOMSG DC C'TASK HAS NO TIOT' 51470002 TIOERMSG DC C'ERROR IN TIOT' 51490002 NVLDMSG DC C'INVALID TIOT' 51510002 TIOTLOOP DC C'INFINITE LOOP IN TIOT' SA55854 51530002 SAMEMSG DC CL27'TIOT FORMATTED ON PAGE XXXX' @Y02006 51531002 TIOTPGE EQU SAMEMSG+23 @Y02006 51532002 FIOPCH DC 10F'0' PATCH AREA X01980 51550002 SPACE 51570002 DROP BUFREG,BASE1,COMBASE 51590002 END 51591002