* /* START OF SPECIFICATIONS **** 00090000 *02* PROCESSOR = ASSEMBLER 00180000 **** END OF SPECIFICATIONS ***/ 00270000 GBLC &COMPNM,&ASMID 00360000 SPACE 5 00410000 JHEAD 'ABORT ROUTINE - PROLOG', X00600000 PHASEID=X0I, X00900000 LEVEL=10 01200000 * * 01500000 *FUNCTION/OPERATION- * 01800000 * THIS MODULE IS CALLED WHEN AN IRRECOVERABLE ERROR EXISTS. IT IS * 02100000 * ENTERED FOR PERMANENT I/O ERRORS, MISSING DD CARDS (SYSPRINT, * 02400000 * SYSUT1, SYSUT2, SYSUT3, SYSIN), INSUFFICIENT MEMORY AND CERTAIN * 02700000 * PROGRAM LOGIC ERRORS. THIS ROUTINE FREES ALL CORE, CLOSES ALL * 03000000 * FILES, FREEPOOL AS NECESSARY, WRITES A MESSAGE TO THE OPERATOR * 03300000 * AND DELETES ALL LOADED PHASES EXCEPT ITSELF AND COMMON. * 03600000 * * 03900000 *ENTRY POINT- * 04200000 * START - ENTER BY LOAD AND BRANCH FROM DRIVER * 04500000 * * 04800000 *INPUT- * 05100000 * REGISTER R10 CONTAINS THE VALUE OF ERR260, ERR261, ERR262 OR * 05400000 * ERR263 DEPENDING UPON THE ERROR. * 05700000 * REGISTER R11 CONTAINS THE VALUE OF R1 AT THE TIME THE ASSEMBLER * 06000000 * WAS INVOKED (PARAMETER LIST PTR) (VALID ONLY FOR ERR260). * 06300000 * REGISTER R11 CONTAINS THE CONTENTS OF R0 AT THE TIME THE SYNAD * 06600000 * EXIT WAS TAKEN (VALID ONLY FOR ERR261). * 06900000 * REGISTER R2 CONTAINS THE DCB ADDRESS (VALID ONLY FOR ERR261). * 07200000 * * 07500000 *OUTPUT- * 07800000 * MESSAGE TO PROGRAMMER USING WTP MACRO * 08100000 * * 08400000 *EXTERNAL ROUTINES- * 08700000 * N/A * 09000000 * * 09300000 *EXITS, NORMAL- * 09600000 * RETURN TO DRIVER BY JRETURN MACRO * 09900000 * * 10200000 *EXITS, ERROR- * 10500000 * N/A * 10800000 * * 11100000 *TABLE/WORK AREAS- * 11400000 * REGISTER R13 POINTS TO COMMON. * 11700000 * JTRTABLE IN COMMON USED AS BUFFER WORKSPACE. * 12000000 * * 12300000 *ATTRIBUTES- * 12600000 * REFRESHABLE. * 12900000 * * 13200000 *NOTES- * 13500000 SPACE 5 13600000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - JCOMMON COPY CODE' 13650000 COPY JCOMMON JCOMMON COPY CODE 14100000 SPACE 3 14150000 BUFFER EQU J+((JTRTABLE+3-J)/4)*4 MESSAGE BUF FULLWORD BOUNDARY 14200000 SPACE 3 14250000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - JINCOM COPY CODE' 14400000 COPY JINCOM X0E, X0F INPUT COMMON 14700000 SPACE 5 14750000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - JOUTCOM COPY CODE' 15000000 COPY JOUTCOM X0G, X0H OUTPUT COMMON 15300000 SPACE 5 15350000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - JERMSGCD COPY CODE' 15600000 COPY JERMSGCD JERMSGCD COPY CODE 15900000 SPACE 5 15950000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - DCBD MACRO' 16200000 DCBD DSORG=(PO,PS),DEVD=DA 16500000 SPACE 5 16550000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - DDNAME OVERRIDE DSECT' 16800000 P DSECT DDNAME OVERRIDE LIST 17100000 PLEN DS H LENGTH OF LIST 17400000 DS 3CL8 (NOT APPLICABLE) 18000000 PSYSLIB DS CL8 SYSLIB DDNAME 18300000 PSYSIN DS CL8 SYSIN DDNAME 18600000 PSYSPRIN DS CL8 SYSPRINT DDNAME 18900000 PSYSPUNC DS CL8 SYSPUNCH DDNAME 19200000 PSYSUT1 DS CL8 SYSUT1 DDNAME 19500000 PSYSUT2 DS CL8 SYSUT2 DDNAME 19800000 PSYSUT3 DS CL8 SYSUT3 DDNAME 20100000 PSYSGO DS CL8 SYSGO DDNAME 20102000 PSYSTERM DS CL8 SYSTERM DD NAME 20106000 SPACE 5 20110000 D50 EQU 50 OFFSET OF JOBNAME FROM SYNADAF 20120000 D84 EQU 84 OFFSET OF OPERATION FIELD 20130000 SPACE 5 20180000 TITLE '&COMPNM&ASMID - ABORT ROUTINE' 20400000 JCSECT (X0I00) SECTION ID 20700000 JMODID 21000000 START JSAVE BASE=YES SAVE REGISTERS 21300000 JENTRY (X0I01=START) MODULE ENTRY POINT 21600000 LM R0,R1,JSLEN GET LENGTH AND ADDR OF AREA 21900000 LTR R0,R0 IS LENGTH ZERO (SET BY DRIVER) 22200000 BZ FREEPARM YES, NO BLOCK TO FREE 22500000 FREEMAIN R,LV=(0),A=(1) FREE STORAGE 22800000 FREEPARM L R1,JPARMPTR FREE TRANSLATED PARM AREA 23100000 LTR R1,R1 HAS AREA BEEN FREED BY INIT 23400000 BZ FREED YES. ALREADY FREED 23700000 LH R0,D0(,R1) GET LENGTH OF AREA 24000000 FREEMAIN R,LV=(0),A=(1) FREE STORAGE 24300000 EJECT 24600000 FREED MVC BUFFER(CERR266L),CERR266 MOVE MSG TO WORKAREA 24700000 MVC BUFFER+CERR266D(L'JPHNAME),JPHNAME MOVE IN PHASE NAME 24800000 WTO MF=(E,BUFFER) TELL WHAT WAS LAST PHASE 24900000 CH R10,=Y(ERR260) IS IT A MISSING DD CARD 25000000 BNE TRYIOERR NO,TRY IOERROR 25200000 MVC BUFFER(CERR260L),CERR260 MOVE MSG TO WORKAREA 25500000 SR R6,R6 MAKE R6 & R7 EQUAL IN CASE 25800000 LR R7,R6 THERE IS NO OVERRIDING DD 26100000 TM D0(R11),BIT0 ANY OVERRIDING DDNAMES 26400000 BO TSYSTERM NO. R5 WILL BE GT R7 NOW 26700000 L R6,D4(,R11) PT TO DDNAME LIST 27000000 USING P,R6 '' 27300000 LA R7,P CALC END-OF-LINE (-2) 27600000 AH R7,PLEN '' 27900000 SPACE 3 28200000 TSYSTERM GOIF JTERM,OFF=TSYSLIN NOTERMINAL SPECIFIED 28220000 LA R5,PSYSTERM PT TO OVERRIDING DDNAME 28240000 CR R5,R7 IS IT PAST END OF LIST 28260000 BH XSYSTERM YES GO CHANGE POINTER 28280000 OC D0(D8,R5),D0(R5) IS DDNAME OVERIDEN 28300000 BNZ DSYSTERM YES 28320000 XSYSTERM LA R5,CSYSTERM PT TO STANDARD NAME 28340000 DSYSTERM DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 28360000 LTR R15,R15 WAS DDNAME FOUND 28380000 BZ TSYSLIN YES 28400000 BAL R9,TELWORLD LOGERR 28420000 SPACE 3 28440000 TSYSLIN GOIF JLINK,OFF=TSYSIN NOLOAD SPECIFIED 28500000 LA R5,PSYSGO PT TO OVERRIDING DDNAME 28800000 CR R5,R7 IS IT PAST END OF LIST 29100000 BH XSYSLIN YES. GO CHANGE PTR 29400000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 29700000 BNZ DSYSLIN YES. 30000000 XSYSLIN LA R5,CSYSGO PT TO STANDARD NAME 30300000 DSYSLIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 30600000 LTR R15,R15 WAS DDNAME FOUND 30900000 BZ TSYSIN YES 31200000 BAL R9,TELWORLD NO. LOG ERROR 31500000 SPACE 3 31800000 TSYSIN LA R5,PSYSIN PT TO OVERRIDING DDNAME 32100000 CR R5,R7 IS IT PAST END OF LIST 32400000 BH XSYSIN YES. GO CHANGE PTR 32700000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 33000000 BNZ DSYSIN YES. 33300000 XSYSIN LA R5,CSYSIN PT TO STANDARD NAME 33600000 DSYSIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 33900000 LTR R15,R15 WAS DDNAME FOUND 34200000 BZ TSYSPRIN YES 34500000 BAL R9,TELWORLD NO. LOG ERROR 34800000 SPACE 3 35100000 TSYSPRIN GOIF JLIST,OFF=TSYSPUNC NOLIST SPECIFIED 35400000 LA R5,PSYSPRIN PT TO OVERRIDING DDNAME 35700000 CR R5,R7 IS IT PAST END OF LIST 36000000 BH XSYSPRIN YES. GO CHANGE PTR 36300000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 36600000 BNZ DSYSPRIN YES. 36900000 XSYSPRIN LA R5,CSYSPRIN PT TO STANDARD NAME 37200000 DSYSPRIN DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 37500000 LTR R15,R15 WAS DDNAME FOUND 37800000 BZ TSYSPUNC YES 38100000 BAL R9,TELWORLD NO. LOG ERROR 38400000 SPACE 3 38700000 TSYSPUNC GOIF JDECK,OFF=TSYSUT1 NODECK SPECIFIED 39000000 LA R5,PSYSPUNC PT TO OVERRIDING DDNAME 39300000 CR R5,R7 IS IT PAST END OF LIST 39600000 BH XSYSPUNC YES. GO CHANGE PTR 39900000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 40200000 BNZ DSYSPUNC YES. 40500000 XSYSPUNC LA R5,CSYSPUNC PT TO STANDARD NAME 40800000 DSYSPUNC DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 41100000 LTR R15,R15 WAS DDNAME FOUND 41400000 BZ TSYSUT1 YES 41700000 BAL R9,TELWORLD NO. LOG ERROR 42000000 SPACE 3 42300000 TSYSUT1 LA R5,PSYSUT1 PT TO OVERRIDING DDNAME 42600000 CR R5,R7 IS IT PAST END OF LIST 42900000 BH XSYSUT1 YES. GO CHANGE PTR 43200000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 43500000 BNZ DSYSUT1 YES. 43800000 XSYSUT1 LA R5,CSYSUT1 PT TO STANDARD NAME 44100000 DSYSUT1 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 44400000 LTR R15,R15 WAS DDNAME FOUND 44700000 BZ TSYSUT2 YES 45000000 BAL R9,TELWORLD NO. LOG ERROR 45300000 SPACE 3 45600000 TSYSUT2 LA R5,PSYSUT2 PT TO OVERRIDING DDNAME 45900000 CR R5,R7 IS IT PAST END OF LIST 46200000 BH XSYSUT2 YES. GO CHANGE PTR 46500000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 46800000 BNZ DSYSUT2 YES. 47100000 XSYSUT2 LA R5,CSYSUT2 PT TO STANDARD NAME 47400000 DSYSUT2 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 47700000 LTR R15,R15 WAS DDNAME FOUND 48000000 BZ TSYSUT3 YES 48300000 BAL R9,TELWORLD NO. LOG ERROR 48600000 SPACE 3 48900000 TSYSUT3 LA R5,PSYSUT3 PT TO OVERRIDING DDNAME 49200000 CR R5,R7 IS IT PAST END OF LIST 49500000 BH XSYSUT3 YES. GO CHANGE PTR 49800000 OC D0(D8,R5),D0(R5) IS DDNAME OVERRIDEN 50100000 BNZ DSYSUT3 YES. 50400000 XSYSUT3 LA R5,CSYSUT3 PT TO STANDARD NAME 50700000 DSYSUT3 DEVTYPE (R5),JDWORD GET DEVICE CHARACTERISTICS 51000000 LTR R15,R15 WAS DDNAME FOUND 51300000 BZ CLEANUP YES 51600000 BAL R9,TELWORLD NO. LOG ERROR 51900000 B CLEANUP GO CLEANUP CORE 52200000 SPACE 6 52500000 TELWORLD MVC BUFFER+CERR260D(L'DCBDDNAM),D0(R5) MOVE IN DDNAME 52800000 WTO MF=(E,BUFFER) TELL SOMEONE 53100000 BR R9 RETURN 53400000 EJECT 53700000 TRYIOERR CH R10,=Y(ERR261) IS IT AN I/O ERROR 54000000 BNE TRYNOCOR NO, TRY NEXT ERROR 54300000 MVC BUFFER(LNGER61A),CERR261A MOVE FIRST MSG TO WORK AREA 54310000 MVC BUFFER+LNGER61A(LNGER61B),CERR261B MOVE SECOND MSG 54320000 LR R0,R11 RELOAD SYNADAF REGS 54900000 LR R1,R2 '' 54910000 LA R2,BUFFER+FIRSTAST PT TO FIELD TO BE REPLACED 54920000 SPACE 3 55800000 CL R1,=X'FF000000' ERROR DURING FIND ON SYSLIB 56100000 BL IOERRSAM NO, TRY BSAM OR QSAM ERROR 56400000 LA R1,D0(,R1) CLEAR ERROR FLAGS 56700000 SYNADAF ACSMETH=BPAM RETRIEVE AVAILABLE DATA 57000000 MVC D0(LNGFLD1,R2),D50(R1) MOVE TO FIRST MSG 57300000 MVC SECNDAST(LNGFLD2,R2),D84(R1) MOVE TO SECOND MSG 60610000 MVC SECNDAST(D22,R2),=CL22'FIND ,' 60620000 B IOERRRLS GO RELEASE DATA 60630000 SPACE 3 60640000 USING IHADCB,R1 PT TO DCB 60650000 IOERRSAM TM DCBMACRF,BIT1 IS I/O ERROR ON QSAM FILE 60660000 BZ IOERRBSM NO, TRY BSAM 60670000 DROP R1 DROP DCB PTR 60680000 SYNADAF ACSMETH=QSAM PERFORM ANALYSIS 60690000 B IOERRMSG GO BUILD MSG 60700000 IOERRBSM SYNADAF ACSMETH=BSAM PERFORM ANALYSIS 60710000 IOERRMSG MVC D0(LNGFLD1,R2),D50(R1) MOVE TO FIRST MSG 60720000 MVC SECNDAST(LNGFLD2,R2),D84(R1) MOVE TO SECOND MSG 60730000 IOERRRLS SYNADRLS RELEASE DATA 60900000 WTO MF=(E,BUFFER) TELL THE WORLD 61200000 WTO MF=(E,BUFFER+LNGER61A) 61300000 B CLEANUP GO CLEAN UP 61500000 SPACE 6 61800000 TRYNOCOR CH R10,=Y(ERR262) DID WE RUN OUT OF STORAGE 62100000 BNE TRYLOGIC NO, TRY NEXT ERROR 62400000 WTO MF=(E,CERR262) TELL THE WORLD 62700000 B CLEANUP GO CLEAN UP 63000000 SPACE 5 63300000 TRYLOGIC WTO MF=(E,CERR263) TELL THE WORLD ABOUT LOGIC ERR 63600000 SPACE 5 63900000 CLEANUP L R1,JSYSCLOS PT TO CLOSE PARM LIST 64200000 CLOSE MF=(E,(1)) CLOSE WORKFILES 64500000 SPACE 3 64800000 L R7,JADINCM PT TO INPUT COMMON 65100000 USING JINCOM,R7 ESTABLISH ADDRESSABILITY 65400000 LTR R7,R7 IS IT PRESENT 65700000 BZ NOIN NO, TRY OUTPUT COMMON 66000000 SPACE 3 66300000 L R6,JSYSLIB PT TO SYSLIB DCB 66600000 USING IHADCB,R6 '' 66900000 TM DCBOFLGS,BIT3 WAS OPEN SUCCESSFUL 67200000 BZ NOTSUC NO, NOT SUCCESSFUL 67500000 LH R0,DCBBLKSI GET BLOCKSIZE 67800000 DROP R6 DOP DCB PTR 68100000 L R1,JLIBBUF GET BUFFER ADDRESS 68400000 FREEMAIN R,LV=(0),A=(1) FREE BUFFER 68700000 NOTSUC L R1,JINCLOS PT TO CLOSE PARM LIST 69000000 CLOSE MF=(E,(1)) CLOSE INPUT FILES 69300000 SPACE 3 69600000 L R1,JSYSIN PT TO SYSIN DCB 69900000 USING IHADCB,R1 PT TO SYSIN DCB 70200000 TM DCBBUFCB+D3,BIT7 ANY BUFCB 70500000 BO NOIN NO, DON'T DO FREEPOOL 70800000 FREEPOOL (1) FREEPOOL BUFFERS 71100000 DROP R1,R7 DROP DCB AND COMMON PTRS 71400000 EJECT 71700000 NOIN L R7,JADOUTCM PT TO OUTPUT COMMON 72000000 USING JOUTCOM,R7 ESTABLISH ADDRESSABILITY 72300000 LTR R7,R7 IS IT PRESENT 72600000 BZ NOOUT NO 72900000 L R1,JOUTCLOS PT TO CLOSE PARM LIST 73200000 CLOSE MF=(E,(1)) CLOSE OUTPUT FILES 73500000 SPACE 3 73800000 USING IHADCB,R1 ESTABLISH ADDRESSABILITY 74100000 L R1,JSYSLST PT TO SYSPRINT DCB 74400000 TM DCBBUFCB+D3,BIT7 ANY BUFCB 74700000 BO FREEPCH NO, DON'T DO FREEPOOL 75000000 FREEPOOL (1) FREEPOOL BUFFERS 75300000 SPACE 1 75600000 FREEPCH L R1,JSYSPCH PT TO SYSPUNCH DCB 75900000 TM DCBBUFCB+D3,BIT7 ANY BUFCB 76200000 BO FREELNK NO, DON'T DO FREEPOOL 76500000 FREEPOOL (1) FREEPOOL BUFFERS 76800000 SPACE 1 77100000 FREELNK L R1,JSYSLNK PT TO SYSLIN DCB 77400000 TM DCBBUFCB+D3,BIT7 ANY BUFCB 77700000 BO NOOUT NO, DON'T DO FREEPOOL 78000000 FREEPOOL (1) FREEPOOL BUFFERS 78300000 DROP R1,R7 DROP DCB AND COMMON PTRS 78600000 EJECT 78900000 NOOUT DELETE EP=&COMPNM.X62 DELETE ALL LOADED MODULES 79200000 DELETE EP=&COMPNM.X61 EXCEPT THE DRIVER, MASTER 79500000 DELETE EP=&COMPNM.X51 COMMON AND THE ABORT ROUTINE. 79800000 DELETE EP=&COMPNM.X41 '' 80100000 DELETE EP=&COMPNM.X31 '' 80400000 DELETE EP=&COMPNM.X21 '' 80700000 DELETE EP=&COMPNM.X11 '' 81000000 DELETE EP=&COMPNM.X06 '' 81300000 DELETE EP=&COMPNM.X05 '' 81600000 DELETE EP=&COMPNM.X04 '' 81900000 DELETE EP=&COMPNM.X03 '' 82200000 DELETE EP=&COMPNM.X02 '' 82500000 SPACE 3 82800000 RETURN JRETURN RETURN TO DRIVER 83100000 SPACE 5 83150000 TITLE '&COMPNM&ASMID - ABORT ROUTINE - CONSTANTS AND PATCH AREA' 83200000 * CONSTANTS 83700000 * 84000000 CSYSTERM DC CL8'SYSTERM' STANDARD FILE NAME FOR SYSTERM 84100000 CSYSGO DC CL8'SYSGO' STANDARD FILE NAME FOR SYSGO 84300000 CSYSIN DC CL8'SYSIN' STANDARD FILE NAME FOR SYSIN 84600000 CSYSPRIN DC CL8'SYSPRINT' STANDARD FILE NAME FOR SYSPRINT 84900000 CSYSPUNC DC CL8'SYSPUNCH' STANDARD FILE NAME FOR SYSPUNCH 85200000 CSYSUT1 DC CL8'SYSUT1' STANDARD FILE NAME FOR SYSUT1 85500000 CSYSUT2 DC CL8'SYSUT2' STANDARD FILE NAME FOR SYSUT2 85800000 CSYSUT3 DC CL8'SYSUT3' STANDARD FILE NAME FOR SYSUT3 86100000 SPACE 3 86400000 CERR260 WTO '&COMPNM.260 ASSEMBLY TERMINATED. DD CARD MISSING FOR X86700000 ********',ROUTCDE=(2,11),MF=L 87000000 CERR260L EQU *-CERR260 LENGTH OF MESSAGE 87300000 CERR260D EQU CERR260L-12 DISPLACEMENT TO VARIABLE DATA 87600000 SPACE 1 87900000 CERR261A WTO '&COMPNM.261 ASSEMBLY TERMINATED -- PERM I/O ERROR ***X88200000 *****,********,***,**,********, (1/2)',ROUTCDE=(2,11), X88300000 MF=L 88400000 LNGER61A EQU (*-CERR261A+3)/4*4 LENGTH OF FIRST MESSAGE 88500000 FIRSTAST EQU 51 DISP OF 1ST ASTERISK REPLACED 88600000 LNGFLD1 EQU 34 LNG OF MSG FLD TO BE REPLACED 88700000 SPACE 88800000 CERR261B WTO '&COMPNM.261 ******,***************,**************X88900000 ******* (2/2)',ROUTCDE=(2,11),MF=L 89000000 LNGER61B EQU *-CERR261B LENGTH OF SECOND MESSAGE 89100000 SECNDAST EQU 62 DISP OF 2ND ASTERISK REPLACED 89200000 LNGFLD2 EQU 44 LNG OF MSG FLD TO BE REPLACED 89300000 SPACE 89400000 CERR262 WTO '&COMPNM.262 ASSEMBLY TERMINATED. INSUFFICIENT MAIN STX89500000 ORAGE',ROUTCDE=(2,11),MF=L 89600000 CERR263 WTO '&COMPNM.263 ASSEMBLY TERMINATED. PROGRAM LOGIC ERROR'X89700000 ,ROUTCDE=11,MF=L 89800000 CERR266 WTO '&COMPNM.266 LAST ASSEMBLER PHASE LOADED WAS ********',X89900000 ROUTCDE=11,MF=L 90000000 CERR266L EQU *-CERR266 LENGTH OF MESSAGE 91380000 CERR266D EQU CERR266L-12 DISPLACEMENT TO VARIABLE DATA 91440000 SPACE 3 91500000 JPATCH X0I00,6A0 5% PATCH AREA 91800000 SPACE 3 92100000 END START 92400000