TITLE 'PWRSASEX - SAS EXAMPLE PROGRAM' 00001000 MACRO 00002000 &LABEL DPLAY &LINE,&LENGTH,&ID=1 00003000 .* 00004000 GBLB &FDSP(15) 00005000 LCLA &LINLEN,&LENLEN 00006000 LCLC &LENREG,&LINREG,&DISP 00007000 LCLB &LENSW,&LINSW,&TXT,&DEF 00008000 .* 00009000 AIF (T'&ID EQ 'N' AND &ID LE 15).L001 00010000 MNOTE 8,'ID NOT NUMERIC OR GREATER THAN 15' 00011000 MEXIT 00012000 .* 00013000 .L001 AIF (T'&LINE NE 'O').L002 00014000 MNOTE 8,'LINE NOT SPECIFIED' 00015000 MEXIT 00016000 .* 00017000 .L002 AIF ('&LINE'(1,1) EQ '''').L003 00018000 AIF (T'&LENGTH NE 'O').L004 00019000 MNOTE 8,'LENGTH NOT SPECIFIED' 00020000 MEXIT 00021000 .* 00022000 .L003 ANOP 00023000 &LENLEN SETA K'&LINE-2 00024000 &LENSW SETB 1 00025000 &TXT SETB 1 00026000 AGO .L007 00027000 .* 00028000 .L004 ANOP 00029000 AIF ('&LENGTH'(1,1) EQ '(').L006 00030000 AIF (T'&LENGTH NE 'N').L005A 00031000 AIF (&LENGTH LE 120).L005 00032000 MNOTE 4,'LENGTH = 120 ASSUMED' 00033000 &LENLEN SETA 120 00034000 &LENSW SETB 1 00035000 AGO .L007 00036000 .* 00037000 .L005 ANOP 00038000 &LENLEN SETA &LENGTH 00039000 &LENSW SETB 1 00040000 AGO .L007 00041000 .* 00042000 .L005A ANOP 00043000 MNOTE 8,'INVALID LENGTH SPECIFICATION' 00044000 MEXIT 00045000 .* 00046000 .L006 ANOP 00047000 &LENLEN SETA K'&LENGTH-2 00048000 &LENREG SETC '&LENGTH'(2,&LENLEN) 00049000 .* AIF (T'&LENREG EQ 'N').L007 00050000 .* MNOTE 8,'INVALID LENGTH SPECIFICATION' 00051000 .* MEXIT 00052000 .* 00053000 .L007 ANOP 00054000 AIF ('&LINE'(1,1) EQ '(').L008 00055000 .* 00056000 &LINSW SETB 1 00057000 AGO .L009 00058000 .* 00059000 .L008 ANOP 00060000 &LINLEN SETA K'&LINE-2 00061000 &LINREG SETC '&LINE'(2,&LINLEN) 00062000 .* AIF (T'&LINREG EQ 'N').L009 00063000 .* MNOTE 8,'INVALID REGISTER NOTATION FOR LINE SPECIFICATION' 00064000 .* MEXIT 00065000 .* 00066000 .L009 ANOP 00067000 .* 00068000 AIF (&FDSP(&ID) NE 0).L010 00069000 &FDSP(&ID) SETB 1 00070000 &DEF SETB 1 00071000 .* 00072000 &LABEL DS 0H 00073000 B DSPL&SYSNDX 00074000 DSCCB&ID CCB SYSLOG,DSCCW&ID 00075000 DSCCW&ID CCW X'09',0,X'20',0 00076000 .* 00077000 .L010 ANOP 00078000 AIF (NOT &TXT).L012 00079000 AIF (&TXT AND &DEF).L011 00080000 .* 00081000 &LABEL DS 0H 00082000 B DSPL&SYSNDX 00083000 .* 00084000 .L011 ANOP 00085000 .* 00086000 MDS&SYSNDX DC CL&LENLEN&LINE 00087000 .* 00088000 .L012 ANOP 00089000 AIF (&DEF OR &TXT).L012A 00090000 &LABEL DS 0H 00091000 AGO .L012B 00092000 .L012A ANOP 00093000 DSPL&SYSNDX DS 0H 00094000 .L012B ANOP 00095000 AIF (&LENSW).L013 00096000 .* 00097000 LR 0,&LENREG 00098000 AGO .L014 00099000 .* 00100000 .L013 ANOP 00101000 LA 0,&LENLEN 00102000 .L014 ANOP 00103000 STCM 0,3,DSCCW&ID+6 00104000 .* 00105000 AIF (NOT &TXT).L017 00106000 LA 0,MDS&SYSNDX 00107000 AGO .L019 00108000 .* 00109000 .L017 AIF ('&LINE'(1,1) NE '(').L018 00110000 LR 0,&LINREG 00111000 AGO .L019 00112000 .* 00113000 .L018 ANOP 00114000 L 0,=A(&LINE) 00115000 .* 00116000 .L019 ANOP 00117000 STCM 0,7,DSCCW&ID+1 00118000 L 1,=A(DSCCB&ID) 00119000 EXCP (1) 00120000 WAIT (1) 00121000 .* 00122000 MEND 00123000 PUNCH ' PHASE PWRSASEX,*' 00124000 *********************************************************************** 00125000 ** ** 00126000 ** P W R S A S E X ** 00127000 ** ** 00128000 ** VSE/POWER SPOOL ACCESS SUPPORT: EXAMPLE PROGRAM ** 00129000 ** ** 00130000 *********************************************************************** 00131000 * * 00132000 * THIS PROGRAM - NAMED PWRSASEX - ACTS AS A SPOOL-ACCESS-SERVICE * 00133000 * USER THAT INTERACTS WITH VSE/POWER USING THE SPOOL-ACCESS SUPPORT * 00134000 * * 00135000 * PWRSASEX CAN RUN IN ANY PARTITION, UNDER OR OUTSIDE THE CONTROL * 00136000 * OF VSE/POWER. FOR SUCCESSFUL COMPLETION, HOWEVER, AN ADDITIONAL * 00137000 * PARTITION UNDER CONTROL OF VSE/POWER AND WITH EXECUTION ... * 00138000 * C L A S S = 4 * 00139000 * MUST BE WAITING FOR WORK. * 00140000 * N O T E : THE MANUAL SUGGESTS TO SUBMIT JOB 'PWRSARUN' TO THE * 00141000 * EXECUTION CLASS=A. PWRSARUN GIVES CONTROL TO 'PWRSASEX' * 00142000 * THAT SUBMITS JOB 'EXAMPLE' FOR CLASS=4 AND THAT SURVEYS * 00143000 * THE EXECUTION OF JOB EXAMPLE. YOU MAY CHANGE THE EXE- * 00144000 * CUTION CLASS OF JOB EXAMPLE BY ALTERING THE * $$ JOB * 00145000 * STATEMENT AT CODE LABEL 'JECL1'. JOB PWRSARUN AND JOB * 00146000 * EXAMPLE MAY EVEN HAVE THE SAME DYNAMIC CLASS, PROVIDED * 00147000 * THIS CLASS ALLOWS AT LEAST TWO PARTITIONS TO BE ACTIVE. * 00148000 * * 00149000 * THE PROGRAM'S OPERATIONAL STEPS ARE: * 00150000 * * 00151000 * 1. IDENTIFY ITSELF TO THE SYSTEM'S XPCC SUPPORT WITH THE USER * 00152000 * IDENTIFICATION 'PWRSASEX'. * 00153000 * * 00154000 * 2. TRY TO ESTABLISH A COMMUNICATION PATH TO VSE/POWER -- TERMIN- * 00155000 * ATE IF THIS PATH CANNOT BE ESTABLISHED WITHIN TWO MINUTES * 00156000 * * 00157000 * 3. USE THE PUT SERVICE TO SUBMIT THE JOB 'EXAMPLE' TO THE * 00158000 * VSE/POWER RDR QUEUE FOR EXECUTION IN CLASS=4. * 00159000 * * 00160000 * 4. USE THE CTL SERVICE TO SUBMIT A PDISPLAY COMMAND, IN * 00161000 * ORDER TO LOCATE THE OUTPUT OF JOB 'EXAMPLE' IN THE * 00162000 * VSE/POWER LST QUEUE, AND SHOW THE QUEUE-DISPLAY MESSAGE ON * 00163000 * THE CONSOLE. IF THE OUTPUT IS NOT YET AVAILABLE, THE PROGRAM * 00164000 * RE-ISSUES THE PDISPLAY COMMAND EVERY 10TH OF A SECOND FOR TWO * 00165000 * MINUTES. IF THEN THE OUTPUT IS STILL NOT AVAILABLE, PWRSASEX * 00166000 * TERMINATES. * 00167000 * N O T E : THE CTL SERVICE IS PRESENTED IN TWO FLAVOURS, YOU * 00168000 * MAY SELECT FLAVOUR TWO AT CODE LABEL 'CTL1'. * 00169000 * * 00170000 * 5. RETRIEVE THE LST QUEUE ENTRY 'EXAMPLE' USING THE GET SERVICE. * 00171000 * N O T E : THE GET SERVICE IS PRESENTED IN TWO FLAVOURS ACC. * 00172000 * TO THE PRE-SELECTION AT CODE LABEL 'CTL1'. * 00173000 * * 00174000 * THE PROGRAM CAUSES THE COMPLETE ENTRY TO BE DISPLAYED ON THE * 00175000 * CONSOLE. PWRSASEX ISSUES A GET-RESTART REQUEST THAT POSITIONS * 00176000 * THE RETRIEVAL POINTER IN THE MIDDLE OF THE QUEUE ENTRY AND * 00177000 * REDISPLAYS THE SECOND HALF. * 00178000 * * 00179000 * PWRSASEX ENDS GET PROCESSING BY ISSUING A QUIT REQUEST. * 00180000 * * 00181000 * 6. SUBMIT THE DATA CARDS OF JOB 'EXAMPLE' TO THE VSE/POWER * 00182000 * LST-QUEUE AS ENTRY 'EXAMPSEG' AND ISSUE PUT-SEGMENT REQUESTS * 00183000 * TO GET THREE (RBS-LIKE) SEGMENTS OF EQUAL SIZE. * 00184000 * * 00185000 * NOTE: THE ASA CONTROL 'CHARACTER PRINT-AND-SKIP-2' IS USED * 00186000 * FOR THE SUBMITTED LINES. * 00187000 * * 00188000 * 7. DISCONNECT THE COMMUNICATION PATH TO VSE/POWER. * 00189000 * * 00190000 * 8. TERMINATE (LOG OFF FROM) THE VSE XPCC SUPPORT. * 00191000 * * 00192000 * 9. TERMINATE PWRSASEX PROGRAM. * 00193000 * * 00194000 *********************************************************************** 00195000 * * 00196000 * THE FOLLOWING MACROS ARE REQUIRED: * 00197000 * * 00198000 * SYSTEM MACROS: XPCC * 00199000 * XPCCB * 00200000 * MAPXPCCB * 00201000 * SETIME * 00202000 * WAITM * 00203000 * WAIT * 00204000 * * 00205000 * VSE/POWER: PWRSPL * 00206000 * * 00207000 * * 00208000 * AN INLINE MACRO (AVAILABLE WITH THE EXAMPLE). IT IS USED FOR * 00209000 * DISPLAYING MESSAGES ON THE CONSOLE. THE MACRO CALLS ARE IN * 00210000 * THE FORMAT: * 00211000 * * 00212000 * DPLAY MESSAGE-LABEL,LENGTH * 00213000 * DPLAY (REG1),(REG2) * 00214000 * * 00215000 * NOTE: LINES WITH THE §-SIGN AT THE END REPRESENT THE INTERFACE * 00216000 * TO VSE/POWER. * 00217000 * LINES WITHOUT THE §-SIGN AT THE END REPRESENT THE INTERFACE * 00218000 * TO THE SYSTEM'S XPCC SUPPORT (STEPS 1, 2, 7, 8 AND 9). * 00219000 * * 00220000 * CHANGE ACTIVITY: * 00221000 * * 00222000 * DO NOT CONNECT TO POWER IF XPCC IDENT RC >= X'08' §DY43262* 00223000 * VSE/POWER 6.1.1 TURBO DISPATCHER SHIPMENT §DY44055* 00224000 * GUIDANCE FOR FIXED-FORMAT DISPLAY AND DIRECT GET REQUEST §DY45495* 00225000 *********************************************************************** 00226000 EJECT 00227000 SPACE 2 00228000 * REGISTER USAGE 00229000 SPACE 1 00230000 * R0 - **** - WORK REGISTER 00231000 * R1 - **** - WORK REGISTER, ALSO USED BY PWRSPL MACRO 00232000 * R2 - **** - WORK REGISTER 00233000 * R3 - **** - WORK REGISTER 00234000 * R4 - **** - ADDR REG FOR CROSS PARTITION CONTROL BLOCK XPCCB 00235000 * R5 - **** - ADDRESS REGISTER FOR USER DATA TO BE SENT 00236000 * R6 - **** - ADDRESS REGISTER FOR RECEIVED USER DATA 00237000 * R7 - **** - ADDRESS REGISTER FOR SPL DSECT 00238000 * R8 - **** - FIRST BASE REGISTER OF PWRSASEX 00239000 * R9 - **** - SECOND BASE REGISTER OF PWRSASEX 00240000 * RA - **** - WORK REGISTER 00241000 * RB - **** - WORK REGISTER 00242000 * RC - **** - WORK REGISTER 00243000 * RD - **** - BRANCH AND LINK REGISTER FOR SENDR SUBROUTINE 00244000 * RE - **** - BRANCH AND LINK REGISTER FOR DATDSPLY SUBROUTINE 00245000 * RF - **** - MACRO CALL RETURN CODE REGISTER 00246000 EJECT 00247000 SAMPIN START 120 START OF THIS SAMPLE PROGRAM 00248000 BALR R8,0 GET START ADDRESS 00249000 USING *,R8,R9 ESTABLISH ADDRESSABILITY 00250000 SPACE 1 00251000 LA R9,4095(,R8) LOAD SECOND BASE REGISTER WITH 00252000 LA R9,1(,R9) CONTENTS OF FIRST + 4096 00253000 SPACE 1 00254000 LA R4,OWNXPCCB GET ADDR OF CROSS PART. CONTROL BLK 00255000 USING IJBXPCCB,R4 ESTABLISH ADDRESSABILITY FOR DSECT 00256000 SPACE 2 00257000 LA R5,IJBXSUSR GET ADDR OF USER DATA TO BE SENT 00258000 USING PXUUSER,R5 ESTABLISH ADDRESSABILITY FOR DSECT 00259000 SPACE 2 00260000 LA R6,IJBXRUSR GET ADDR OF RECEIVED USER DATA 00261000 USING PXPUSER,R6 ESTABLISH ADDRESSABILITY FOR DSECT 00262000 SPACE 2 00263000 LA R7,OWNSPL GET ADDR OF SPL 00264000 USING OWNSPLDS,R7 ESTABLISH ADDRESSABILITY FOR DSECT 00265000 SPACE 2 00266000 MVC FAILCOPY,FAILMSG PRESERVE EMPTY MESSAGE SKELETON 00267000 EJECT 00268000 *********************************************************************** 00269000 ** S T E P : 1 ** 00270000 ** >> IDENTIFY PWRSASEX AS VSE/AF XPCC USER << ** 00271000 ** IF THE MACRO FAILS, THE PROGRAM DISPLAYS A MESSAGE AND TERMINATES ** 00272000 ** - WITHOUT A DUMP IF IT FAILED BECAUSE OF LACK OF STORAGE ** 00273000 ** - WITH A DUMP OTHERWISE. ** 00274000 *********************************************************************** 00275000 SPACE 1 00276000 IDENT DS 0H 00277000 SPACE 1 00278000 XPCC XPCCB=(R4),FUNC=IDENT IDENTIFY 'PWRSASEX' TO AF-XPCC 00279000 SPACE 1 00280000 CLM RF,M1,EIGHTDC RETURN CODE < X'08'? 00281000 BL CONCT ..YES, CONNECT TO POWER 00282000 SPACE 1 00283000 MVC FAILFUNC,=C'IDENTIFY' INSERT FAILING FUNCTION INTO MSG 00284000 BAL RE,MSGRETC INSERT XPCC RETURN CODE INTO MSG 00285000 MVC FAILLABL,=C'IDENT ' INSERT CODE LABEL FOR DIAGNOSTIC 00286000 BAL RE,MSGDSPLY DISPLAY MESSAGE ON CONSOLE 00287000 CLI IJBXRETC,IJBXNSTO DID IDENT FAIL DUE TO NO STORAGE ? 00288000 BE FINEND ..YES, TERMINATE WITH EOJ MACRO 00289000 B FINDUMP BRANCH TO TERMINATION WITH DUMP 00290000 EJECT 00291000 *********************************************************************** 00292000 ** S T E P : 2 ** 00293000 ** >> ESTABLISH THE XPCC CONNECTION TO VSE/POWER << ** 00294000 ** IF THE MACRO FAILS, THE PROGRAM DISPLAYS A FAILURE MESSAGE AND ** 00295000 ** TERMINATES. THE PROGRAM WAITS UP TO TWO MINUTES FOR THE CONNEC- ** 00296000 ** TION TO BE COMPLETED. ** 00297000 ** IF THE CONNECTION IS ESTABLISHED AS REQUESTED, THE PROGRAM DIS- ** 00298000 ** PLAYS A CONFIRMATION MESSAGE. ** 00299000 *********************************************************************** 00300000 SPACE 1 00301000 CONCT DS 0H 00302000 SPACE 1 00303000 XPCC XPCCB=(R4),FUNC=CONNECT CONNECT TO VSE/POWER 00304000 SPACE 1 00305000 LTR RF,RF IS CONNECTION ALREADY AVAILABLE ? 00306000 BZ CONNOK ..YES, BYPASS WAIT FOR CONNECTION 00307000 SPACE 1 00308000 CLM RF,M1,EIGHTDC WAS RETURN CODE X'08' GIVEN BACK ? 00309000 BL WAITCECB ..NO, MUST BE '04', SO WAIT FOR CECB 00310000 CLI IJBXRETC,IJBXQSCE DID POWER GIVE XPCC TERMQSCE ? 00311000 BE TERMQSCE ..YES, GO TO HANDLE THAT STATE 00312000 MVC FAILFUNC,=C'CONNECT ' INSERT FAILING FUNCTION INTO MSG 00313000 BAL RE,MSGRETC INSERT XPCC RETURN CODE INTO MSG 00314000 MVC FAILLABL,=C'CONCT ' INSERT CODE LABEL FOR DIAGNOSTIC 00315000 BAL RE,MSGDSPLY DISPLAY MESSAGE ON CONSOLE 00316000 CLI IJBXRETC,IJBXNSTO DID CONNECT FAIL DUE TO NO STOR. ? 00317000 BE TERMN ..YES, GO TO CLOSE XPCC INTERFACE 00318000 SPACE 1 00319000 B FINDUMP GO TO TERMINATION WITH DUMP 00320000 SPACE 1 00321000 TERMQSCE DS 0H 00322000 DPLAY FAILM1,72 DISPLAY FAILURE MESSAGE 00323000 SPACE 1 00324000 B TERMN GO TO CLOSE XPCC INTERFACE CORRECTLY 00325000 SPACE 1 00326000 WAITCECB DS 0H CONNECTION IS STILL 'PENDING' 00327000 SETIME 120,INTECB INSTALL WAIT INTERVAL OF TWO MIN. 00328000 LA R3,IJBXCECB LOAD ADDRESS OF CONNECTION ECB 00329000 ST R3,LISTCECB COMPLETE WAITLIST 00330000 WAITM WAITLIST WAIT FOR CONNECTION OR 2 MIN. COMPL. 00331000 TM IJBXCECB+2,POSTBIT CONNECTION COMPLETE? 00332000 BO CONNOK ..YES, CONTINUE AT CONNOK 00333000 SPACE 1 00334000 DPLAY FAILM3,72 ISSUE MSG THAT TIME LIMIT EXCEEDED 00335000 SPACE 1 00336000 B DISCT GO TO DISCONNECT AND TERMINATE 00337000 SPACE 1 00338000 CONNOK DS 0H NOW, CONNECTION ECB IS POSTED 00339000 DPLAY SUCCM1,72 00340000 EJECT 00341000 **********************************************************************§ 00342000 ** S T E P : 3 *§ 00343000 ** >> PUT-REQUEST TO RDR QUEUE << *§ 00344000 ** THE JOB 'EXAMPLE' IS SUBMITTED TO THE VSE/POWER RDR QUEUE. *§ 00345000 **********************************************************************§ 00346000 SPACE 1 § 00347000 * REGISTER USAGE FOR PUT-REQUEST TO RDR QUEUE § 00348000 SPACE 2 § 00349000 * R3 - ***** - WORK REGISTER § 00350000 * RA - BUFPTR - POINTER FOR THE SEND BUFFER § 00351000 * RB - DATAPTR - POINTER FOR THE INPUT CARDS § 00352000 * RC - ***** - TEMPORARY ADDR. REG FOR SPL DSECT § 00353000 SPACE 2 § 00354000 * THE GENERATED SPL (OWNSPL) IS UPDATED INDICATING A PUT OPEN § 00355000 * REQUEST AND IS THEN SENT TO VSE/POWER. § 00356000 SPACE 2 § 00357000 PUTA1 DS 0H § 00358000 SPACE 1 § 00359000 DPLAY SUCCM1A,72 00360000 SPACE 1 § 00361000 * THE SPL IS UPDATED FOR A 'PUT-OPEN JOB' REQUEST, SPECIFYING § 00362000 * - THE MANDATORY FIELDS 'QUEUE, USERID' § 00363000 * FOR DETAILS ON MANDAT./OPT. FIELDS SEE PWRSPL REQ=PUT (JOB).§ 00364000 * NOTE: THE JOB ATTRIBUTES WILL BE EXTRACTED FROM THE JECL § 00365000 * JOB STATEMENT SUBMITTED LATER WITH THE JOB DATA. § 00366000 SPACE 1 § 00367000 PWRSPL TYPE=UPD,SPL=OWNSPL,REQ=PUT,QUEUE=RDR § 00368000 SPACE 2 § 00369000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00370000 MVI PXUACT1,0 CLEAR ALL OTHER BYTES IN PXUUSER, § 00371000 MVI PXUSIGNL,0 WHICH MAY BE CHANGED BY THE USER § 00372000 SPACE 1 § 00373000 * THE SPL IS DIRECTLY USED AS XPCC SEND BUFFER § 00374000 SPACE 1 § 00375000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00376000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00377000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00378000 SPACE 1 § 00379000 MVC FAILLABL,=C'PUTA1 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00380000 BAL RD,SENDR GO TO SENDR ROUTINE § 00381000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00382000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00383000 * THE VERIFICATION SPL RETURNED BY VSE/POWER FOR A PUT-OPEN § 00384000 * REQUEST IS IGNORED, THE VERIFICATION SPL RETURNED LATER FOR § 00385000 * A PUT-CLOSE REQUEST MAY BE OF MORE INTEREST. § 00386000 SPACE 2 § 00387000 * FOR THE SUBSEQUENT 'PUT-SPOOL' REQUESTS THE PXU-USER FIELD § 00388000 * SETTINGS ARE ESTABLISHED, AND § 00389000 * THE SEND BUFFER IS FILLED WITH INPUT CARDS (EACH CARD § 00390000 * PRECEDED BY A RECORD PREFIX) UNTIL NO MORE CARD FITS. § 00391000 * THE BUFFER IS THEN PASSED TO VSE/POWER IN THE ACTUALLY § 00392000 * USED LENGTH. § 00393000 SPACE 1 § 00394000 MVI PXUBTYP,PXUBTNDB BUFFER TYPE = NORMAL DATA BUFFER § 00395000 MVI PXUACT1,0 CLEAR ACTION BYTE § 00396000 SPACE 1 § 00397000 LA BUFPTR,SENDBUF GET ADDRESS OF SEND BUFFER § 00398000 STCM BUFPTR,M7,IJBXADR INSERT BUFFER ADDRESS INTO XPCCB § 00399000 LA DATAPTR,JECL1 GET ADDR OF FIRST INPUT CARD, ... § 00400000 * USUALLY THE * $$ JOB STATEMENT § 00401000 SPACE 1 § 00402000 FILLBUF DS 0H § 00403000 CLC ENDIND,0(DATAPTR) END OF FILE REACHED? § 0 00404000 BE PUTA3 YES, GO TO SEND FINAL BUFFER § 00405000 CL BUFPTR,LASTPREC ENOUGH SPACE FOR ONE MORE RECORD? § 00406000 BH PUTA2 NO, GO TO SEND NORMAL BUFFER § 00407000 USING RECPRFIX,BUFPTR GET DSECT FOR RECORD LAYOUT § 00408000 XC 0(RECPRFXL,BUFPTR),0(BUFPTR) CLEAR BYTES FOR PREFIX § 00409000 MVI RECTYPE,RECTNORM INSERT REC. TYPE IN REC. PREFIX § 00410000 LA R3,L'DATACARD LOAD LENGTH OF DATA CARD § 00411000 STH R3,RECLNGTH INSERT LENGTH OF DATA CARD IN PREF.§ 00412000 LA BUFPTR,RECPRFXL(,BUFPTR) SKIP PREFIX IN BUFFER § 00413000 DROP BUFPTR § 00414000 MVC 0(L'DATACARD,BUFPTR),0(DATAPTR) MOVE DATA INTO BUFFER § 00415000 LA BUFPTR,L'DATACARD(,BUFPTR) POINT TO NEXT FREE B.SPACE§ 00416000 LA DATAPTR,L'DATACARD(,DATAPTR) POINT TO NEXT INPUT CARD § 00417000 B FILLBUF TRY TO FILL IN NEXT INPUT CARD § 00418000 SPACE 1 § 00419000 PUTA2 DS 0H § 00420000 LA R3,SENDBUF GET AGAIN START ADDR OF SEND BUFFER§ 00421000 SR BUFPTR,R3 CALC. ACTUALLY USED BUFFER LENGTH § 00422000 ST BUFPTR,IJBXBLN INSERT ACTUAL BUF.LENGTH INTO XPCCB§ 00423000 MVC FAILLABL,=C'PUTA2 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00424000 BAL RD,SENDR GO TO SENDR ROUTINE § 00425000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00426000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00427000 LA BUFPTR,SENDBUF GET AGAIN ADDRESS OF SEND BUFFER § 00428000 B FILLBUF GO TO FILL BUFFER AGAIN § 00429000 SPACE 2 § 00430000 * FOR THE SUBSEQUENT 'PUT-CLOSE' REQUEST THE PXU-USER FIELD § 00431000 * IS SET UP WITH THE END-OF-DATA INDICATION, AND § 00432000 * THE BUFFER BEING FILLED WHEN END OF FILE WAS DETECTED § 00433000 * IS PASSED TO VSE/POWER AS FINAL BUFFER. § 00434000 SPACE 1 § 00435000 PUTA3 DS 0H § 00436000 SPACE 1 § 00437000 MVI PXUACT1,PXUATEOD INDICATE END OF DATA § 00438000 LA R3,SENDBUF GET AGAIN START ADDR OF SEND BUFFER§ 00439000 SR BUFPTR,R3 CALC. ACTUALLY USED BUFFER LENGTH § 00440000 ST BUFPTR,IJBXBLN INSERT ACTUAL BUF.LENGTH INTO XPCCB§ 00441000 MVC FAILLABL,=C'PUTA3 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00442000 BAL RD,SENDR GO TO SENDR ROUTINE § 00443000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00444000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00445000 CLI PXPFBKCD,PXP00OK WAS POWER FEEDBACKCODE ALSO ZERO? § 00446000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00447000 SPACE 1 § 00448000 * THE VERIFICATION SPL RETURNED BY VSE/POWER IS ANALYZED, AND § 00449000 * JOBNAME AND JOBNUMBER ARE SAVED. § 00450000 * IF MESSAGES ARE QUEUED, A 'RETURN MESSAGE' REQUEST IS SENT. SUB- 00451000 * SEQUENTLY, THE DATDSPLY ROUTINE IS CALLED IN ORDER TO DISPLAY § 00452000 * THE RETURNED MESSAGES. § 00453000 SPACE 1 § 00454000 LA RC,REPLBUF GET AD. OF REPLY AREA FOR SPL DSECT§ 00455000 DROP R7 § 00456000 USING OWNSPLDS,RC ESTABLISH ADDRESSABILITY FOR DSECT § 00457000 MVC JOBNAME,SPLGJB SAVE JOBNAME RETURNED BY POWER § 00458000 MVC JOBNUM,SPLGJN SAVE RETURNED BINARY JOBNUMBER § 00459000 DROP RC § 00460000 USING OWNSPLDS,R7 REESTABLISH ADDRESSABILITY FOR SPL § 00461000 SPACE 1 § 00462000 TM PXPINFO,PXPIMSG ARE MESSAGES QUEUED? § 00463000 BZ CTL1 NO, CONTINUE WITH CONTROL REQUEST § 00464000 SPACE 1 § 00465000 PUTA4 DS 0H § 00466000 XC IJBXBLN,IJBXBLN INDICATE ZERO BUFFER LENGTH § 00467000 MVI PXUBTYP,0 CLEAR BUFFER TYPE BYTE IN USER DATA§ 00468000 MVI PXUACT1,PXUATRMR INDICATE RETURN MESSAGE REQUEST § 00469000 MVC FAILLABL,=C'PUTA4 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00470000 BAL RD,SENDR GO TO SENDR ROUTINE § 00471000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00472000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00473000 BAL RE,DATDSPLY YES, GO TO DISPLAY RETURNED MSG'S § 00474000 EJECT § 00475000 **********************************************************************§ 00476000 ** S T E P : 4 *§ 00477000 ** >> CONTROL REQUEST << *§ 00478000 ** *§ 00479000 ** COMMANDS CAN BE SUBMITTED TO VSE/POWER IN *§ 00480000 ** 1) FIXED FORMAT - SEE 'PWRSPL FUNC=ALTER!CANCEL!DELETE!... *§ 00481000 ** ...DISPLAY!HOLD!RELEASE', OR *§ 00482000 ** 2) FREE FORMAT - SEE 'PWRSPL FUNC=COMMAND' IN THE FORMAT AS AN *§ 00483000 ** OPERATOR WOULD KEY IT - FOR *§ 00484000 ** ALL ALLOWED COMMANDS ACCEPTED *§ 00485000 ** VIA THE SPOOL-ACCESS INTERFACE*§ 00486000 ** *§ 00487000 ** DISPLAY COMMANDS CAN REQUEST MESSAGES TO BE RETURNED AS *§ 00488000 ** A) FIXED FORMAT RECORDS - SEE 'PWRSPL OPT=FORMAT', TO BE *§ 00489000 ** PROCESSED ACC. TO DSECT 'PXFMDSCT' *§ 00490000 ** B) FREE FORMAT MESSAGES - SEE 'PWRSPL OPT=RESET', TO BE *§ 00491000 ** PROCESSED AS CONSOLE DISPLAY MESSAGES *§ 00492000 ** *§ 00493000 ** FOR PDISPLAY, THE COMMAND FORMATS 1) AND 2) CAN BE COMBINED WITH *§ 00494000 ** ANY MESSAGE FORMAT A) OR B). IN THE FOLLOWING, PWRSASEX OFFERS *§ 00495000 ** TWO COMBINATIONS AT LABEL *§ 00496000 ** - 'CTLA1' - CMD FORMAT 1) WITH MSG FORMAT B). THIS IS STANDARD *§ 00497000 ** FLOW, LEADS INTO LABEL 'GETB1' REQUEST.*§ 00498000 ** - 'CTLAB1' - CMD FORMAT 2) WITH MSG FORMAT A). THIS FLOW MUST BE *§ 00499000 ** SELECTED, LEADS INTO GETBB1 REQUEST. *§ 00500000 **********************************************************************§ 00501000 SPACE 1 § 00502000 CTL1 DS 0H § 00503000 SPACE 1 § 00504000 DPLAY SUCCM1B,72 00505000 SPACE 1 § 00506000 B CTLA1 TAKE STANDARD FLOW, OR SELECT ... § 00507000 * B CTLAB1 ... ALTERNATIVE FLOW BY YOUR OWN § 00508000 SPACE 1 § 00509000 SPACE 1 § 00510000 **********************************************************************§ 00511000 ** >> C T L S T A N D A R D F L O W << *§ 00512000 ** A FIXED FORMAT PDISPLAY COMMAND (FOR FREE FORMAT MESSAGES) IS *§ 00513000 ** SUBMITTED IN ORDER TO LOCATE THE OUTPUT OF JOB 'EXAMPLE' IN THE *§ 00514000 ** LST QUEUE (CLASS=S, ACC. TO * $$ LST) AND PRESENT THE LIST QUEUE *§ 00515000 ** DISPLAY LINE ON THE CONSOLE. *§ 00516000 ** NOTE: THE FREE FORMAT DISPLAY LINE(S) IS PRECEDED BY THE 'QUEUE *§ 00517000 ** HEADER' LINE AS WITH NORMAL OPERATOR DISPLAY. *§ 00518000 ** NOTE: THE FIRST LST OUTPUT OF A JOB HAS ALWAYS THE SAME JOBNUMBER *§ 00519000 ** AS THE PARENT JOB. ITS JOBNUMBER HAS BEEN SAVED IN BINARY *§ 00520000 ** FORMAT. IT IS NEEDED NOW IN THE SAME FORMAT. *§ 00521000 **********************************************************************§ 00522000 SPACE 1 § 00523000 * REGISTER USAGE FOR CTL-REQUEST § 00524000 SPACE 1 § 00525000 * RA - ***** - COUNTER FOR NUMBER OF WAIT INTERVALS § 00526000 SPACE 1 § 00527000 * THE SPL IS UPDATED FOR A DISPLAY-CTL REQUEST, SPECIFYING § 00528000 * - THE MANDATORY SELECTION FIELDS 'QUEUE, JOBNAME, USERID' § 00529000 * - PLUS OPTIONAL SELECTION FIELDS 'CLASS, JOBNUMBER' § 00530000 * - PLUS RESETTING (FOR SAFETY) THE OPTIONAL 'OPT=..'. § 00531000 * FOR DETAILS ON MANDATORY/OPTIONAL SEE PWRSPL REQ=CTL. § 00532000 SPACE 1 § 00533000 CTLA1 DS 0H § 00534000 PWRSPL TYPE=UPD,SPL=OWNSPL,QUEUE=LST,REQ=CTL,CLASS=S, *00535000 JOBN=JOBNAME,JNUM=JOBNUM,FUNC=DISPLAY,OPT=RESET § 00536000 SPACE 1 § 00537000 LA RA,12 PREPARE COUNTER FOR WAIT INTERVALS § 00538000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00539000 MVI PXUACT1,0 CLEAR ACTION BYTE § 00540000 SPACE 1 § 00541000 * THE UPDATED SPL IS DIRECTLY USED AS XPCC BUFFER. § 00542000 SPACE 1 § 00543000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00544000 SPACE 1 § 00545000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00546000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00547000 SPACE 1 § 00548000 MVC FAILLABL,=C'CTLA2 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00549000 CTLA2 DS 0H § 00550000 BAL RD,SENDR GO TO SENDR ROUTINE § 00551000 SPACE 1 § 00552000 * THE PROGRAM TESTS THE POWER RC/FBKCD TO SEE IF THE OUTPUT OF THE § 00553000 * JOB 'EXAMPLE' COULD BE LOCATED. § 00554000 * IF THIS OUTPUT COULD NOT YET BE LOCATED, THE PROGRAM REPEATS THE § 00555000 * CTL REQUEST EVERY 10 SECONDS IN ORDER TO WAIT FOR REQUEST § 00556000 * COMPLETION. HOWEVER PWRSASEX DISCONNECTS AFTER 12 UNSUCCESSFUL § 00557000 * ATTEMPTS. § 00558000 * ANY OTHER RC/FBKCD COMBINATION SHOULD NOT OCCUR AND INDICATES A § 00559000 * FAILURE OF THE REQUEST. § 00560000 SPACE 1 § 00561000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00562000 BE CTLA3 YES, CONTINUE WITH MSG DISPLAY § 00563000 CLI PXPRETCD,PXPRCOKF WAS POWER RETURN CODE X'04' § 00564000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00565000 CLI PXPFBKCD,PXP04DNF WAS OUTPUT NOT FOUND ? (PARENT .. § 00566000 * .. JOB NOT YET COMPLETED) )§ 00567000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00568000 SPACE 1 § 00569000 SETIME 10,INTECB INSTALL WAIT INTERVAL OF 10 SEC. § 00570000 WAIT INTECB WAIT § 00571000 BCT RA,CTLA2 LOOP (MAX. 12 TIMES) § 00572000 SPACE 1 § 00573000 DPLAY FAILM4,72 DISPLAY FAILURE MESSAGE § 00574000 SPACE 1 § 00575000 B DISCT DISCONN AND TERMIN XPCC LINK, EOJ § 00576000 SPACE 1 § 00577000 CTLA3 DS 0H § 00578000 SPACE 1 § 00579000 DPLAY SUCCM1C,72 00580000 SPACE 1 § 00581000 BAL RE,DATDSPLY GO TO DISPLAY THE MESSAGE RETURNED § 00582000 * ... IN 'CONSOLE DISPLAY' FORMAT § 00583000 B GETB1 GO FOR NORMAL GET-OPEN REQUEST § 00584000 EJECT § 00585000 SPACE 1 § 00586000 **********************************************************************§ 00587000 ** >> C T L A L T E R N A T I V E << *§ 00588000 ** A FREE FORMAT PDISPLAY COMMAND (FOR FIXED FORMAT MESSAGE) IS *§ 00589000 ** SUBMITTED IN ORDER TO LOCATE THE OUTPUT OF JOB 'EXAMPLE' IN THE *§ 00590000 ** LST QUEUE (CLASS=S, ACC. TO * $$ LST). SELECTED FIELDS OF THE *§ 00591000 ** FIXED FORMAT MESSAGE ARE PASSED TO THE ARTIFICIALLY BUILT '1QSAS' *§ 00592000 ** MESSAGE, WHICH IS THEN DISPLAYED ON THE CONSOLE. *§ 00593000 ** NOTE: FIXED FORMAT MESSAGES ARE NOT PRECEDED BY A 'QUEUE HEADER' *§ 00594000 ** LINE; QUEUE TYPE CAN BE DERIVED FROM PXFMQUID & -FLG1/-FLG3.*§ 00595000 ** NOTE: THE FIRST LST OUTPUT OF A JOB HAS ALWAYS THE SAME JOBNUMBER *§ 00596000 ** AS THE PARENT JOB ITSELF. THE SAVED BINARY JOBNUMBER HAS *§ 00597000 ** TO BE CONVERTED TO DECIMAL FOR USE IN THE PDISPLAY COMMAND. *§ 00598000 **********************************************************************§ 00599000 SPACE 1 § 00600000 * REGISTER USAGE FOR CTL-REQUEST § 00601000 SPACE 1 § 00602000 * RA - ***** - COUNTER FOR NUMBER OF WAIT INTERVALS § 00603000 SPACE 1 § 00604000 * THE SPL IS UPDATED FOR A COMMON-CTL REQUEST, SPECIFYING § 00605000 * - THE MANDATORY SELECTION FIELD 'USERID' § 00606000 * - PLUS SELECTION CRITERIA IN A FREE FORMAT COMMAND § 00607000 * - PLUS THE OPTIONAL SELECTION CRITERION 'OPT=FORMAT'. § 00608000 * FOR DETAILS ON MANDATORY/OPTIONAL SEE PWRSPL REQ=CTL. § 00609000 SPACE 1 § 00610000 CTLAB1 DS 0H § 00611000 PWRSPL TYPE=UPD,SPL=OWNSPL,REQ=CTL,FUNC=COMMAND, *00612000 OPT=FORMAT § 00613000 SPACE 1 § 00614000 * § 00615000 * CONSTRUCT: 'PDISPLAY LST,,,CCLASS=S ' § 00616000 * § 00617000 SPACE 1 § 00618000 * FEED JOBNAME TO FREE FORMAT COMMAND SKELETON § 00619000 SPACE 1 § 00620000 MVC CMDBODY(L'JOBNAME),JOBNAME PLUG SAVED NAME INTO CMD § 00621000 LA R3,CMDBODY POINT TO START OF JOBNAME § 00622000 CTLAB1A DS 0H § 00623000 CLI 0(R3),C' ' FIRST TRAILING BLANK FOUND ? § 00624000 BE CTLAB1C YES, GO TO PROVIDE 'COMMA' § 00625000 LA R3,1(R3) PROCEED TO NEXT NAME BYTE § 00626000 B CTLAB1A GO AND CHECK FOR BLANK § 00627000 CTLAB1C DS 0H § 00628000 MVI 0(R3),C',' PROVIDE 'COMMA' AFTER JOBNAME § 00629000 LA R3,1(R3) POINT TO BEGIN OF JOBNUMBER § 00630000 SPACE 1 § 00631000 * FEED DECIMAL JOBNUMBER TO FREE FORMAT COMMAND § 00632000 SPACE 1 § 00633000 SR R1,R1 CLEAR REGISTER § 00634000 ICM R1,3,JOBNUM PICK UP BINARY JOB NUMBER § 00635000 CVD R1,HELP8 CONVERT TO PACKED DECIMAL § 00636000 UNPK HELP5,HELP8+5(3) UNPACK 3 DIGITS § 00637000 OI HELP5+4,X'F0' CHANGE X'C.' TO PRINTABLE X'F.' § 00638000 MVC 0(5,R3),HELP5 PLUG 5 DIGIT JOBNUMBER WITH ... § 00639000 LA R3,5(R3) POINT BEHIND JOBNUMBER § 00640000 MVI 0(R3),C',' PROVIDE 'COMMA' AFTER JOBNAME § 00641000 LA R3,1(R3) POINT TO BEGIN OF C-SELECTION FLD. § 00642000 SPACE 1 § 00643000 * TERMINATE COMMAND BY 'CCLASS=S ', PASS COMMAND TO PWRSPL § 00644000 SPACE 1 § 00645000 MVC 0(L'CMDCLAS,R3),CMDCLAS PASS CLASS SELECTION OPERAND § 00646000 MVC SPLCFLD,JOBCMD PLUG FREE FORMAT CMD INTO PWRSPL § 00647000 SPACE 1 § 00648000 LA RA,12 PREPARE COUNTER FOR WAIT INTERVALS § 00649000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00650000 MVI PXUACT1,0 CLEAR ACTION BYTE § 00651000 SPACE 1 § 00652000 * THE UPDATED SPL IS DIRECTLY USED AS XPCC BUFFER. § 00653000 SPACE 1 § 00654000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00655000 SPACE 1 § 00656000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00657000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00658000 SPACE 1 § 00659000 MVC FAILLABL,=C'CTLAB2' INSERT CODE LABEL FOR DIAGNOSTIC § 00660000 CTLAB2 DS 0H § 00661000 BAL RD,SENDR GO TO SENDR ROUTINE § 00662000 SPACE 1 § 00663000 * THE PROGRAM TESTS THE POWER RC/FBKCD TO SEE IF THE OUTPUT OF THE § 00664000 * JOB 'EXAMPLE' COULD BE LOCATED. § 00665000 * IF THIS OUTPUT COULD NOT YET BE LOCATED, THE PROGRAM REPEATS THE § 00666000 * CTL REQUEST EVERY 10 SECONDS IN ORDER TO WAIT FOR REQUEST COMPLE- § 00667000 * TION. HOWEVER PWRSASEX DISCONNECTS AFTER 12 UNSUCCESSFUL AT- § 00668000 * TEMPTS. § 00669000 * ANY OTHER RC/FBKCD COMBINATION SHOULD NOT OCCUR AND INDICATES A § 00670000 * FAILURE OF THE REQUEST. § 00671000 SPACE 1 § 00672000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00673000 BE CTLAB3 YES, CONTINUE WITH MSG DISPLAY § 00674000 CLI PXPRETCD,PXPRCOKF WAS POWER RETURN CODE X'04' § 00675000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00676000 CLI PXPFBKCD,PXP04DNF WAS OUTPUT NOT FOUND ? (PARENT .. § 00677000 * .. JOB NOT YET COMPLETED) )§ 00678000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00679000 SPACE 1 § 00680000 SETIME 10,INTECB INSTALL WAIT INTERVAL OF 10 SEC. § 00681000 WAIT INTECB WAIT § 00682000 BCT RA,CTLAB2 LOOP (MAX. 12 TIMES) § 00683000 SPACE 1 § 00684000 DPLAY FAILM4,72 DISPLAY FAILURE MESSAGE § 00685000 SPACE 1 § 00686000 B DISCT DISCONN AND TERMIN XPCC LINK, EOJ § 00687000 SPACE 1 § 00688000 CTLAB3 DS 0H § 00689000 SPACE 1 § 00690000 DPLAY SUCCM1C,72 00691000 SPACE 1 § 00692000 BAL RE,DATDSPLY GO TO INTERPRET THE FIXED FORMAT § 00693000 * MSG (ONLY ONE MESSAGE RECORD IS § 00694000 * EXPECTED) VIA PXFMDSCT, DISPLAY § 00695000 * '1QSAS', SAVE INTERNAL Q-ENTRY § 00696000 * NUMBER FOR THE SUBSEQUENT 'DIRECT' § 00697000 * GET REQUEST. § 00698000 B GETBB1 GO FOR 'DIRECT' GET-OPEN REQUEST § 00699000 EJECT § 00700000 **********************************************************************§ 00701000 ** S T E P : 5 *§ 00702000 ** >> GET REQUEST FROM LST QUEUE << *§ 00703000 ** *§ 00704000 ** GET SERVICE REQUESTS CAN BE SUBMITTED TO VSE/POWER AS *§ 00705000 ** 1) 'GET FOR UPDATE' - ALLOWING ACCESS TO DISPATCHABLE ENTRIES, *§ 00706000 ** AND TERMINATE GET BY 'CLOSE' (MAY DELETE *§ 00707000 ** ENTRY) OR BY 'QUIT' (PRESERVES ENTRY) *§ 00708000 ** 2) 'GET FOR BROWSE' - SEE PWRSPL MODE=BROWSE (SPLGFB1) FOR *§ 00709000 ** ACCESSING ENTRIES INDEPENDENT OF THEIR *§ 00710000 ** DISPOSITION, BUT TERMINATE GET REQUEST *§ 00711000 ** BY 'QUIT' ONLY. *§ 00712000 ** BOTH GET REQUEST TYPES CAN BE INITIATED IN TWO FLAVOURS AS *§ 00713000 ** A) NORMAL GET - WITH MANDATORY 'QUEUE, JOBNAME, CLASS, AND *§ 00714000 ** FROM/TO USERID ' AS PWRSPL SEARCH FIELDS *§ 00715000 ** B) DIRECT GET - WITH SAME MANDATORY SEARCH FIELDS PLUS FIELD *§ 00716000 ** SPLXQNUM, SPECIFYING THE INTERNAL QUEUE *§ 00717000 ** ENTRY NUMBER - PROVIDED IT IS KNOWN BEFORE.*§ 00718000 ** SEE ALSO "DIRECT QUEUE ENTRY GET ACCESS..."*§ 00719000 ** IN THIS MANUAL FOR ADVANTAGES OF 'DIRECT'. *§ 00720000 ** *§ 00721000 ** GET REQUEST TYPE 1) AND 2) CAN BE INITIATED WITH ANY A) OR B) *§ 00722000 ** SELECTION FLAVOURS. IN THE FOLLOWING, PWRSASEX OFFERS TWO *§ 00723000 ** COMBINATIONS AT LABEL *§ 00724000 ** - 'GETB1' - GET FOR UPDATE 1) WITH FLAVOUR A) 'NORMAL'. THIS IS *§ 00725000 ** THE STANDARD CONTROL FLOW. *§ 00726000 ** - 'GETBB1' - GET FOR BROWSE 2) WITH FLAVOUR B) 'DIRECT'. THIS *§ 00727000 ** FLOW IS SELECTED WHEN ENABLING 'CTLAB1'*§ 00728000 ** *§ 00729000 ** N O T E : REFER TO "SCOPE OF GET/CTL(^DISPLAY) ACCESS TO QUEUE *§ 00730000 ** ENTRIES" IN THIS MANUAL FIRST: *§ 00731000 ** THE SUBSEQUENT GET REQ. WITH INHERITED USERID=SASUSER1 *§ 00732000 ** IS ALLOWED TO ACCESS OUTPUT ENTRY 'EXAMPLE', BECAUSE *§ 00733000 ** PARENT JOB WAS SUBMITTED BY 'PWRSPL USERID=SASUSER1', *§ 00734000 ** WHICH IS PROPAGATED TO ITS OUTPUT - HAVING ALSO THE *§ 00735000 ** FROM/TO=SASUSER1 ATTRIBUTE. *§ 00736000 ** WHEN ACCESSING QUEUE ENTRIES WITH FROM/TO USERID NOT *§ 00737000 ** MATCHING TO YOUR PWRSPL SPECIFICATION, CONSIDER TO *§ 00738000 ** GENERATE POWER WITH A 'MASTER PASSWORD'. WHEN SUPPLY- *§ 00739000 ** ING THIS PASSWORD (LEFT BOUND, PADDED BLANK) IN FIELD *§ 00740000 ** 'SPLGPW', YOUR GET/CTL REQUEST IS ENTITLED FOR *§ 00741000 ** UNLIMITED ACCESS TO ANY QUEUE ENTRY. *§ 00742000 **********************************************************************§ 00743000 SPACE 2 § 00744000 **********************************************************************§ 00745000 ** >> G E T S T A N D A R D F L O W << *§ 00746000 ** THE 'GET FOR UPDATE' SERVICE WITH 'NORMAL' SELECTION SPECIFIED *§ 00747000 ** IS USED TO RETRIEVE THE LST QUEUE ENTRY OF JOB 'EXAMPLE' AND TO *§ 00748000 ** DISPLAY ITS DATA ON THE CONSOLE. THEN THE GET-RESTART FUNCTION *§ 00749000 ** IS USED TO DISPLAY THE SECOND HALF OF THE ENTRY AGAIN. *§ 00750000 **********************************************************************§ 00751000 SPACE 1 § 00752000 * REGISTER USAGE FOR GET-REQUEST FROM LST QUEUE § 00753000 SPACE 1 § 00754000 * R3 - **** - WORK REGISTER § 00755000 * RA - BUFPTR - POINTER FOR THE SEND BUFFER § 00756000 SPACE 1 § 00757000 GETB1 DS 0H § 00758000 DPLAY SUCCM7,72 DISPLAY MESSAGE § 00759000 SPACE 1 § 00760000 * THE SPL IS UPDATED FOR A 'GET-OPEN' REQUEST, SPECIFYING § 00761000 * - THE MANDATORY SELECTION 'CLASS, JOBNAME, QUEUE, USERID' § 00762000 * - PLUS OPTIONAL SELECTION FIELD 'JOBNUMBER' § 00763000 * - PLUS RESETTING (FOR SAFETY) THE OPTIONAL 'OPT=..'. § 00764000 * FOR DETAILS ON MANDATORY/OPTIONAL SEE PWRSPL REQ=GET. § 00765000 * NOTE: ONLY PARAMETERS WHICH ARE DIFFERENT FROM THOSE USED IN THE § 00766000 * PREVIOUS CTL-REQUEST ARE SPECIFIED IN THE UPDATE SPL. § 00767000 SPACE 1 § 00768000 PWRSPL TYPE=UPD,SPL=(R7),REQ=GET,OPT=RESET § 00769000 SPACE 1 § 00770000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00771000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 § 00772000 SPACE 1 § 00773000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00774000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00775000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00776000 SPACE 1 § 00777000 MVC FAILLABL,=C'GETB1 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00778000 BAL RD,SENDR GO TO SENDR ROUTINE § 00779000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00780000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00781000 B GETB2 GO AND TAKE STANDARD FLOW, WHEN § 00782000 * COMING FROM 'CTLA1' CONTROL REQ. § 00783000 SPACE 2 § 00784000 **********************************************************************§ 00785000 ** >> G E T A L T E R N A T I V E << *§ 00786000 ** THE 'GET FOR BROWSE' SERVICE WITH 'DIRECT' SELECTION SPECIFIED *§ 00787000 ** IS USED TO RETRIEVE THE LST QUEUE ENTRY OF JOB 'EXAMPLE' AND TO *§ 00788000 ** DISPLAY ITS DATA ON THE CONSOLE. THEN THE GET-RESTART FUNCTION *§ 00789000 ** IS USED TO DISPLAY THE SECOND HALF OF THE ENTRY AGAIN. *§ 00790000 **********************************************************************§ 00791000 SPACE 1 § 00792000 * REGISTER USAGE FOR GET-REQUEST FROM LST QUEUE § 00793000 SPACE 1 § 00794000 * R3 - **** - WORK REGISTER § 00795000 * RA - BUFPTR - POINTER FOR THE SEND BUFFER § 00796000 SPACE 1 § 00797000 GETBB1 DS 0H § 00798000 DPLAY SUCCM7,72 DISPLAY MESSAGE § 00799000 SPACE 1 § 00800000 * THE SPL IS UPDATED FOR 'DIRECT GET-OPEN' REQUEST, SPECIFYING § 00801000 * - THE MANDATORY SELECTION 'CLASS, JOBNAME, QUEUE, USERID' § 00802000 * - PLUS OPTIONAL SELECTION FIELD 'MODE=BROWSE' § 00803000 * - PLUS RESETTING (FOR SAFETY) THE OPTIONAL 'OPT=..'. § 00804000 * FOR DETAILS ON MANDATORY/OPTIONAL SEE PWRSPL REQ=GET. § 00805000 SPACE 1 § 00806000 PWRSPL TYPE=UPD,SPL=(R7),REQ=GET,OPT=RESET,MODE=BROWSE, *00807000 JOBN=JOBNAME,CLASS=S,QUEUE=LST,JNUM=ZERONUM § 00808000 SPACE 1 § 00809000 * SEE "DIRECT QUEUE ENTRY GET (ALSO CTL) ACCESS ..." IN THIS § 00810000 * MANUAL FOR REQUIRED PWRSPL SPECIFICTIONS. § 00811000 SPACE 1 § 00812000 MVC SPLXQNUM,JOBQNUM SPECIFY SAVED Q-ENTRY-# FOR DIRECT § 00813000 * GET ACCESS TO DISPLAYED Q-ENTRY, § 00814000 * NO JOBNUMBER NEEDED FOR UNIQUENESS § 00815000 OI SPLGOPT2,SPLGO2QN INDICATE 'USE QUEUE ENTRY NUMBER' § 00816000 * TO ENABLE 'DIRECT' GET REQUEST § 00817000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00818000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 § 00819000 SPACE 1 § 00820000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00821000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00822000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00823000 SPACE 1 § 00824000 MVC FAILLABL,=C'GETBB1' INSERT CODE LABEL FOR DIAGNOSTIC § 00825000 BAL RD,SENDR GO TO SENDR ROUTINE § 00826000 NI SPLGOPT2,X'FF'-SPLGO2QN RESET 'USE INT. Q-ENTRY-#' § 00827000 XC SPLXQNUM,SPLXQNUM RESET INTERNAL QUEUE ENTRY NUMBER § 00828000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00829000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE, § 00830000 * DISPLAY ALSO PXPFBKC2 IF NOT FOUND § 00831000 B GETB2 GO AND JOIN COMMON FLOW NOW § 00832000 SPACE 1 § 00833000 EJECT § 00834000 * THE VERIFICATION SPL RETURNED BY VSE/POWER, WHICH COULD BE CHECKED§ 00835000 * FOR USEFUL INFORMATION (SUCH AS FORMSID), IS IGNORED BY PWRSASEX. § 00836000 * § 00837000 * FOR THE SUBSEQUENT 'GET-SPOOL-DATA' REQUEST, THE PXU-USER FIELD § 00838000 * IS FLAGGED WITH A SEND-DATA REQUEST, AND A NULL BUFFER IS PASSED § 00839000 * TO VSE/POWER. § 00840000 SPACE 1 § 00841000 GETB2 DS 0H § 00842000 XC IJBXBLN,IJBXBLN INDICATE ZERO BUFFER LENGTH § 00843000 MVI PXUBTYP,0 CLEAR BUFFER TYPE BYTE IN USER DATA§ 00844000 MVI PXUACT1,PXUATSDR INDICATE SEND DATA REQUEST § 00845000 MVC FAILLABL,=C'GETB2 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00846000 BAL RD,SENDR GO TO SENDR ROUTINE § 00847000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00848000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00849000 MVI GETFCT,C'G' INDICATE: DATDSPLY IS CALLED BY GET§ 00850000 BAL RE,DATDSPLY GO TO DISPLAY RETURNED DATA § 00851000 * AND DO NOT RETURN UNTIL LAST DATA § 00852000 * RECORD IS DISPLAYED § 00853000 MVI GETFCT,C' ' RESET INDICATION § 00854000 SPACE 1 § 00855000 DPLAY SUCCM2,72 DISPLAY MSG TO INDICATE RESTART RQ.§ 00856000 SPACE 2 § 00857000 * A 'RESTART CONTROL RECORD' IS BUILT IN THE SEND BUFFER AND § 00858000 * PASSED TO VSE/POWER. THE LOGICAL RECORD NUMBER - PREVIOUSLY § 00859000 * SAVED BY THE DATDSPLY ROUTINE - IS USED AS RESTART POINT. § 00860000 SPACE 1 § 00861000 GETB3 DS 0H § 00862000 SPACE 1 § 00863000 MVI PXUBTYP,PXUBTCTL BUFFER TYPE = CONTROL RECORD § 00864000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 § 00865000 LA BUFPTR,SENDBUF GET ADDRESS OF SEND BUFFER § 00866000 STCM BUFPTR,M7,IJBXADR INSERT BUFFER ADDRESS INTO XPCCB § 00867000 SPACE 1 § 00868000 USING PXRSDSCT,BUFPTR GET DSECT FOR RESTART CONTROL REC. § 00869000 XC 0(PXRSLENG,BUFPTR),0(BUFPTR) CLEAR RESTART CONTROL R.§ 00870000 MVI PXRSTYPE,PXRSTRST INDICATE RECORD TYPE = RESTART CTL.§ 00871000 MVC PXRSRECN,PWRRECNO INSERT PREVIOUSLY SAVED LOG. REC.# § 00872000 LA R3,PXRSLENG LOAD LENGTH OF RESTART CTL. REC. § 00873000 STH R3,PXRSRLEN INSERT LENGTH INTO RESTART CTL. REC§ 00874000 ST R3,IJBXBLN INSERT LENGTH INTO XPCCB § 00875000 DROP BUFPTR § 00876000 SPACE 1 § 00877000 MVC FAILLABL,=C'GETB3 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00878000 BAL RD,SENDR GO TO SENDR ROUTINE § 00879000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00880000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00881000 MVI GETFCT,C'G' INDICATE: DATDSPLY IS CALLED BY GET§ 00882000 BAL RE,DATDSPLY YES, GO TO DISPLAY RETURNED DATA § 00883000 * AND DO NOT RETURN UNTIL LAST DATA § 00884000 * RECORD IS DISPLAYED § 00885000 MVI GETFCT,C' ' RESET INDICATION § 00886000 SPACE 1 § 00887000 * FOR THE SUBSEQUENT 'GET-QUIT' REQUEST, THE PXU-USER FIELD IS § 00888000 * FLAGGED WITH A 'QUIT' INDICATION, AND A NULL BUFFER IS PASSED § 00889000 * TO VSE/POWER. § 00890000 SPACE 1 § 00891000 GQUIT DS 0H § 00892000 XC IJBXBLN,IJBXBLN INSERT ZERO BUFFER LENGTH § 00893000 MVI PXUBTYP,0 CLEAR BUFFER TYPE BYTE IN USER DATA§ 00894000 MVI PXUACT1,PXUATABR INDICATE QUIT REQUEST § 00895000 SPACE 1 § 00896000 * IF A CLOSE OR PURGE REQUEST IS DESIRED (ONLY IN CASE OF § 00897000 * 'NORMAL' GET), ONE OF THE FOLLOWING STATEMENTS MUST BE CODED § 00898000 SPACE 1 § 00899000 *GCLOSE MVI PXUACT1,PXUATRQS REQUIRED SETTING FOR A CLOSE REQU. § 00900000 *GPURGE MVI PXUACT1,PXUATPRG REQUIRED SETTING FOR A PURGE REQU. § 00901000 SPACE 1 § 00902000 MVC FAILLABL,=C'GQUIT ' INSERT CODE LABEL FOR DIAGNOSTIC § 00903000 BAL RD,SENDR GO TO SENDR ROUTINE § 00904000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00905000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00906000 SPACE 2 § 00907000 EJECT § 00908000 **********************************************************************§ 00909000 ** S T E P : 6 *§ 00910000 ** >> PUT REQUEST TO LST QUEUE << *§ 00911000 ** THE DATA CARDS OF THE EXAMPLE JOB ARE SUBMITTED TO THE VSE/POWER *§ 00912000 ** LST QUEUE AS 'EXAMPSEG'. A SEGMENT REQUEST IS ISSUED *§ 00913000 ** AFTER EACH SEVENTH RECORD. *§ 00914000 **********************************************************************§ 00915000 SPACE 1 § 00916000 * REGISTER USAGE FOR PUT-REQUEST TO LST QUEUE § 00917000 SPACE 2 § 00918000 * R2 - RECORDCT - RECORD COUNTER FOR SEGMENTATION IN LOOP § 00919000 * RA - BUFPTR - POINTER FOR THE SEND BUFFER § 00920000 * RB - DATAPTR - POINTER FOR THE INPUT CARDS § 00921000 SPACE 2 § 00922000 PUTB1 DS 0H § 00923000 SPACE 1 § 00924000 DPLAY SUCCM8,72 DISPLAY MESSAGE § 00925000 SPACE 1 § 00926000 * THE SPL IS UPDATED FOR A 'PUT-OPEN OUTPUT' REQ., SPECIFYING § 00927000 * - THE MANDATORY FIELDS 'QUEUE, JOBNAME, USERID', AND § 00928000 * - THE OPTIONAL FIELDS 'CLASS, MODE, (OPT, PWD)' FOR UPD REQ.§ 00929000 * FOR DETAILS ON MANDAT./OPT. FIELDS SEE PWRSPL REQ=PUT OUTPUT.§ 00930000 * NOTE: ALL FURTHER OUTPUT ATTRIBUTES HAVE TO BE SET BY OWN § 00931000 * CODE, TO FEED UPDATE SPL FIELDS ACC. TO "SUBMITTING § 00932000 * OUTPUT DATA" IN THIS MANUAL. § 00933000 SPACE 1 § 00934000 PWRSPL TYPE=UPD,REQ=PUT,SPL=OWNSPL,CLASS=Z,JOBN=JOBNLAB, *00935000 QUEUE=LST,MODE=RESET § 00936000 SPACE 2 § 00937000 * SET ADDITIONAL OUTPUT SPECIFIC FIELDS IN THE SPL BY OWN CODE § 00938000 MVI SPLDDP,DISP INDICATE OUTPUT DISPOSITION § 00939000 MVI SPLONSEP,SEPPAGE INDICATE OUTPUT SEPARATOR PAGES § 00940000 MVI SPLDPR,PRIOR INDICATE OUTPUT PRIORITY § 00941000 MVC SPLOFORM,FORMS INDICATE OUTPUT FORMS § 00942000 MVI SPLORCFM,SPLORASA INDICATE ASA CC FOR OUTPUT § 00943000 MVI SPLDSID,C'N' INDICATE 'NO' SPECIFIC TARGET SYSID§ 00944000 * FIELD IS REQUIRED FOR SHARED SYST. § 00945000 SPACE 1 § 00946000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 IN USER DATA § 00947000 MVI PXUBTYP,PXUBTSPL INDICATE BUFFER TYPE = SPL § 00948000 SPACE 1 § 00949000 STCM R7,M7,IJBXADR INSERT SPL ADDRESS AS BUFFER ADDR. § 00950000 LA R3,SPLGLEN LOAD LENGTH OF SPL § 00951000 ST R3,IJBXBLN INSERT BUFFER LENGTH INTO XPCCB § 00952000 SPACE 1 § 00953000 MVC FAILLABL,=C'PUTB1 ' INSERT CODE LABEL FOR DIAGNOSTIC § 00954000 BAL RD,SENDR GO TO SENDR ROUTINE § 00955000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 00956000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 00957000 SPACE 2 § 00958000 * THE VERIFICATION SPL RETURNED BY VSE/POWER IS IGNORED. § 00959000 * § 00960000 * FOR THE SUBSEQUENT 'PUT-SPOOL-DATA' REQUEST, THE PXU-USER FIELD § 00961000 * SETTINGS ARE ESTABLISHED, AND THE SEND BUFFER IS FILLED WITH § 00962000 * 'OUTPUT LINE RECORDS' (EACH RECORD PRECEDED BY A RECORD PREFIX) § 00963000 * UNTIL NO MORE RECORD FITS. § 00964000 * THE BUFFER IS THEN PASSED TO VSE/POWER IN THE ACTUALLY USED § 00965000 * LENGTH. THE OUTPUT IS ALWAYS SEGMENTED AFTER SEVEN RECORDS. § 00966000 SPACE 1 § 00967000 PUTB2 DS 0H § 00968000 MVI PXUBTYP,PXUBTNDB BUFFER TYPE = NORMAL DATA BUFFER § 00969000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 IN USER DATA § 00970000 SPACE 1 § 00971000 LA BUFPTR,SENDBUF GET ADDRESS OF SEND BUFFER § 00972000 STCM BUFPTR,M7,IJBXADR INSERT BUFFER ADDRESS INTO XPCCB § 00973000 LA DATAPTR,DATACARD GET ADDR OF FIRST INPUT CARD § 00974000 SPACE 1 § 00975000 LA RECORDCT,NOOFRECS INITIALIZE RECORD COUNTER § 00976000 FILLBUFO DS 0H § 00977000 CLC JCL2(3),0(DATAPTR) END OF DATA REACHED? § 00978000 BE SDEOD YES, GO TO SEND FINAL BUFFER § 00979000 SPACE 1 § 00980000 CL BUFPTR,LASTPREC ENOUGH SPACE FOR ONE MORE RECORD? § 00981000 BH SDNDB NO, GO TO SEND NORMAL BUFFER § 00982000 SPACE 1 § 00983000 USING RECPRFIX,BUFPTR GET DSECT FOR RECORD LAYOUT § 00984000 XC 0(RECPRFXL,BUFPTR),0(BUFPTR) CLEAR BYTES FOR PREFIX § 00985000 MVI RECTYPE,RECTNORM INSERT REC. TYPE INTO REC. PREFIX § 00986000 MVI RECCCODE,C'-' SET ASA CC IN REC. PREFIX TO SKIP2 § 00987000 LA R3,NOOFRECS MAX NUMBER OF RECORDS IN A SEGMENT § 00988000 CLR RECORDCT,R3 FIRST RECORD OF SEGMENT? § 00989000 BNE LAB1 NO, CONTINUE AT LABEL LABL1 § 00990000 MVI RECCCODE,C'1' SET ASA CC IN REC.PREF. TO NXT.PAGE§ 00991000 SPACE 1 § 00992000 LAB1 DS 0H § 00993000 LA R3,L'DATACARD LOAD LENGTH OF DATA § 00994000 STH R3,RECLNGTH INSERT LENGTH OF DATACARD IN PREFIX§ 00995000 LA BUFPTR,RECPRFXL(,BUFPTR) SKIP PREFIX IN BUFFER § 00996000 MVC 0(L'DATACARD,BUFPTR),0(DATAPTR) MOVE DATA IN BUFFER § 00997000 LA BUFPTR,L'DATACARD(,BUFPTR) POINT TO NEXT FREE BUFSPACE § 00998000 LA DATAPTR,L'DATACARD(,DATAPTR) POINT TO NEXT INPUT CARD § 00999000 BCT RECORDCT,FILLBUFO DO LOOP AND DECREMENT RECORDCOUNTER§ 01000000 SPACE 1 § 01001000 CLC JCL2(3),0(DATAPTR) END OF DATA REACHED? § 01002000 BE SDEOD YES, GO TO SEND FINAL BUFFER § 01003000 MVI PXUACT1,PXUATSGM INDICATE OUTPUT SEGMENTATION § 01004000 SDNDB DS 0H § 01005000 LA R3,SENDBUF GET AGAIN START ADDR. OF SEND BUFF § 01006000 SR BUFPTR,R3 CALC. ACTUALLY USED BUFFER LENGTH § 01007000 ST BUFPTR,IJBXBLN INSERT ACTUAL BUF.LENGTH INTO XPCCB§ 01008000 MVC FAILLABL,=C'SDNDB ' INSERT PART OF CODE LABEL FOR DIAGN§ 01009000 BAL RD,SENDR GO TO SENDR ROUTINE § 01010000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 01011000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 01012000 LA BUFPTR,SENDBUF GET ADDRESS OF SEND BUFFER § 01013000 LTR RECORDCT,RECORDCT IS RECORD COUNTER ZERO? § 01014000 BNZ KEEPRCT NO, KEEP ACTUAL VALUE OF RECORDCT § 01015000 LA RECORDCT,NOOFRECS INITIALIZE REC COUNTER AGAIN § 01016000 KEEPRCT DS 0H § 01017000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 IN USER DATA § 01018000 B FILLBUFO GOTO CHECK NEXT INPUT CARD § 01019000 SPACE 2 § 01020000 SDEOD DS 0H § 01021000 MVI PXUACT1,0 CLEAR ACTION BYTE 1 IN USER DATA § 01022000 MVI PXUACT1,PXUATEOD ACTION BYTE = END OF DATA § 01023000 LA R3,SENDBUF GET AGAIN START ADDR. OF SEND BUFF § 01024000 SR BUFPTR,R3 CALC. ACTUALLY USED BUFFER LENGTH § 01025000 ST BUFPTR,IJBXBLN INSERT ACTUAL BUF.LENGTH INTO XPCCB§ 01026000 L R3,IJBXBLN LOAD ACTUAL SEND BUFFER LENGTH § 01027000 LTR R3,R3 IS BUFFER LENGTH ZERO? § 01028000 BNZ NOTNLB NO, IND. NORMAL DATA BUFFER § 01029000 MVI PXUBTYP,0 CLEAR BUFFER TYPE IN USER DATA § 01030000 NOTNLB DS 0H § 01031000 MVC FAILLABL,=C'SDEOD ' INSERT PART OF CODE LABEL FOR DIAGN§ 01032000 BAL RD,SENDR GO TO SENDR ROUTINE § 01033000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 01034000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 01035000 SPACE 2 § 01036000 * THE EXTENDED SPL RETURNED BY VSE/POWER IS IGNORED. § 01037000 SPACE 1 § 01038000 PUTB3 DS 0H § 01039000 TM PXPINFO,PXPIMSG MESSAGES QUEUED? § 01040000 BNO DISPLAY NO, GO TO DISPLAY INFO MESSAGES § 01041000 MVC FAILLABL,=C'PUTB3 ' INSERT CODE LABEL FOR DIAGNOSTIC § 01042000 XC IJBXBLN,IJBXBLN INDICATE ZERO BUFFER LENGTH § 01043000 MVI PXUBTYP,0 CLEAR USER DATA IN XPCCB § 01044000 MVI PXUACT1,PXUATRMR INDICATE RETURN QUEUED MESSAGES § 01045000 BAL RD,SENDR GO TO SENDR ROUTINE § 01046000 CLI PXPRETCD,PXPRCOK WAS POWER RETURN CODE ZERO? § 01047000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE § 01048000 BAL RE,DATDSPLY YES, GO TO DISPLAY RETURNED MSG'S § 01049000 SPACE 1 § 01050000 DISPLAY DS 0H § 01051000 DPLAY SUCCM3,72 DISPLAY MESSAGE § 01052000 DPLAY SUCCM4,72 DISPLAY MESSAGE § 01053000 DPLAY SUCCM6,72 DISPLAY MESSAGE § 01054000 SPACE 1 § 01055000 B DISCT DISCONN AND TERMIN XPCC LINK, EOJ § 01056000 EJECT § 01057000 *********************************************************************** 01058000 ** S T E P : 7 ** 01059000 ** >> DISCONNECT THE XPCC COMMUNICATION LINK TO VSE/POWER << ** 01060000 ** IF THE MACRO FAILS, THE PROGRAM DISPLAYS A DIAGNOSTIC MESSAGE AND ** 01061000 ** TERMINATES WITH A DUMP. ** 01062000 *********************************************************************** 01063000 SPACE 1 01064000 DISCT DS 0H 01065000 XPCC XPCCB=(R4),FUNC=DISCONN DISCONNECT LINK TO VSE/POWER 01066000 SPACE 1 01067000 LTR RF,RF WAS DISCONNECT SUCCESSFUL, RF='00' ? 01068000 BZ TERMN ..YES CONTINUE WITH XPCC TERMINATION 01069000 SPACE 1 01070000 MVC FAILFUNC,=C'DISCONN ' INSERT FAILING FUNCTION 01071000 BAL RE,MSGRETC INSERT XPCC RETURN CODE INTO MSG 01072000 MVC FAILLABL,=C'DISCT ' INSERT CODE LABEL FOR DIAGNOSTIC 01073000 BAL RE,MSGDSPLY DISPLAY MESSAGE ON CONSOLE 01074000 B FINDUMP GO TO TERMINATION WITH DUMP 01075000 EJECT 01076000 *********************************************************************** 01077000 ** S T E P : 8 ** 01078000 ** >> TERMINATE INTERACTION WITH THE VSE/AF XPCC SUPPORT << ** 01079000 ** IF THE MACRO FAILS, THE PROGRAM DISPLAYS A DIAGNOSTIC MESSAGE AND ** 01080000 ** TERMINATES WITH A DUMP. ** 01081000 *********************************************************************** 01082000 SPACE 1 01083000 TERMN DS 0H 01084000 XPCC XPCCB=(R4),FUNC=TERMIN TERMINATE CROSS PART. INTERFACE 01085000 LTR RF,RF DID WE GET A ZERO RET-CODE ? 01086000 BZ FINEND ..YES, GO TO NORMAL EOJ MACRO 01087000 SPACE 1 01088000 MVC FAILFUNC,=C'TERMIN ' INSERT FAILING FUNCTION INTO MSG 01089000 BAL RE,MSGRETC INSERT XPCC RETURN CODE INTO MSG 01090000 MVC FAILLABL,=C'TERMN ' INSERT CODE LABEL FOR DIAGNOSTIC 01091000 BAL RE,MSGDSPLY DISPLAY MESSAGE ON CONSOLE 01092000 B FINDUMP GO TO TERMINATION WITH DUMP 01093000 EJECT 01094000 *********************************************************************** 01095000 ** S T E P : 9 ** 01096000 ** >> TERMINATE PWRSASEX << ** 01097000 *********************************************************************** 01098000 SPACE 1 01099000 FINDUMP DS 0H TERMINATION FORCED DUE TO ERROR 01100000 * DUMP A PARTITION DUMP CAN BE FORCED IF 01101000 * NECESSARY FOR DEBUG PURPOSES 01102000 SPACE 1 01103000 FINEND DS 0H NORMAL TERMINATION 01104000 EOJ NORMAL END OF PWRSASEX PROGRAM 01105000 EJECT 01106000 *********************************************************************** 01107000 ** S U B R O U T I N E S ** 01108000 ** >> DATDSPLY ROUTINE << ** 01109000 ** THIS ROUTINE DISPLAYS THE FOLLOWING INFO RETURNED BY VSE/POWER: ** 01110000 ** - MESSAGES IN 'OPERATOR' DISPLAY FORMAT (CTL OR PUT REQUEST) ** 01111000 ** - MESSAGES IN 'FIXED FORMAT' (CTL OPT=FORMAT), CONVERTED TO THE ** 01112000 ** OWN CONSOLE MESSAGE '1QSAS' ** 01113000 ** - DATA RECORDS OF RETRIEVED QUEUE ENTRIES (GET REQUEST) ** 01114000 *********************************************************************** 01115000 SPACE 1 01116000 * REGISTER USAGE FOR DATDSPLY ROUTINE 01117000 SPACE 1 01118000 * RA - BUFPTR - POINTER FOR THE REPLY BUFFER 01119000 * RC - BUFLN - REG TO CALCULATE THE LENGTH OF THE DATA STILL 01120000 * TO BE DISPLAYED 01121000 * R0, R1, R2, R3 - WORK REGISTER 01122000 * 01123000 * CALLED FROM: PUT REQUEST TO RDR QUEUE 01124000 * CTL REQUEST 01125000 * GET REQUEST 01126000 * PUT REQUEST TO LST QUEUE 01127000 * 01128000 * EXIT TO CALLER IF ALL AVAILABLE MESSAGES/DATA ARE DISPLAYED 01129000 SPACE 2 01130000 DATDSPLY DS 0H 01131000 SR R0,R0 SET R0 TO ZERO 01132000 CLM R0,M7,IJBXSLN NO MORE DATA TO DISPLAY? 01133000 BER RE RETURN TO CALLER 01134000 LA BUFPTR,REPLBUF POINT TO REPLY BUFFER 01135000 SR BUFLN,BUFLN CLEAR REGISTER 01136000 ICM BUFLN,M7,IJBXSLN GET LENGTH OF DATA TO BE DISPLAYED 01137000 SPACE 1 01138000 * PWRSASEX DISPLAYS, RECORD AFTER RECORD, THE DATA OR MESSAGES RE- 01139000 * TURNED BY VSE/POWER. THE RECORD PREFIX OF EACH DATA RECORD IS 01140000 * ANALIZED BUT NOT DISPLAYED. 01141000 * IF DATDSPLY IS CALLED TO DISPLAY PARTS OF A FIXED FORMAT MESSAGE 01142000 * RECORD (ONLY ONE EXPECTED), THE RETURNED 'INTERNAL' QUEUE ENTRY 01143000 * NUMBER OF OUTPUT 'EXAMPLE' IS SAVED FOR THE ALTERNATIVE FLOW OF THE 01144000 * 'DIRECT GET' REQUEST. 01145000 * IF DATDSPLY IS CALLED BY THE GET FUNCTION, THE LOGICAL RECORD 01146000 * NUMBER OF THE 12TH DATA CARD OF OUTPUT ENTRY 'EXAMPLE' IS SAVED. 01147000 * PWRSASEX USES THIS NUMBER LATER AS A RESTART POINT. 01148000 SPACE 1 01149000 DSPL0 DS 0H 01150000 USING RECPRFIX,BUFPTR GET DSECT OF RECORD LAYOUT 01151000 CLI GETFCT,C'G' WAS DATDSPLY CALLED BY GET? 01152000 BNE DSPL1 NO, GO FOR MESSAGE INTERPRETATION 01153000 CLC RECPRFXL(4,BUFPTR),=C'* 12' IS THE CURRENT CARD NO.12 01154000 BNE DSPL1X NO, GO TO DISPLAY DATA RECORD 01155000 MVC PWRRECNO,RECLOGNO SAVE LOGICAL RECORD NUMBER 01156000 B DSPL1X GO TO DISPLAY DATA RECORD 01157000 SPACE 1 01158000 DSPL1 DS 0H 01159000 CLI RECTYPE,RECTFIXM FIXED FORMAT MSG RECORD RETURNED ? 01160000 BNE DSPL1X GO TO DISPLAY CONSOLE MESSAGE 01161000 LH R2,RECLNGTH GET LENGTH OF FIRST/NEXT DATA REC. 01162000 LA BUFPTR,RECPRFXL(,BUFPTR) POINT TO FIX FORMAT RECORD 01163000 DROP BUFPTR RELEASE PREFIX ADDRESSABILITY 01164000 USING PXFMDSCT,BUFPTR MAKE FIX FORM MSG ADDRESSABLE 01165000 MVC FFMHD+15(L'JOBNAME),PXFMNAME PASS NAME TO MSG SKELET. 01166000 SR R1,R1 CLEAR REGISTER 01167000 ICM R1,3,PXFMJNUM PICK UP BINARY JOB NUMBER 01168000 CVD R1,HELP8 CONVERT TO PACKED DECIMAL 01169000 UNPK HELP5,HELP8+5(3) UNPACK 3 DIGITS 01170000 OI HELP5+4,X'F0' CHANGE X'C.' TO PRINTABLE X'F.' 01171000 MVC FFNHD+5(5),HELP5 PASS DEC. JOBNUMBER TO MSG SKEL 01172000 MVC FFCHD+7(1),PXFMCLSS PASS JOB CLASS TO MSG SKELETON 01173000 MVC JOBQNUM,PXFMQNUM SAVE INTERNAL Q-ENTRY-# FOR DIR. GET 01174000 DROP BUFPTR RELEASE FF-MSG ADDRESSABILITY 01175000 SPACE 1 01176000 DPLAY FFDSPLY,72 DISPLAY ASSEMBLED DISPLAY LINE 01177000 SPACE 1 01178000 B DSPL1Y GO PROCESS NEXT/LAST PASSED RECORD 01179000 SPACE 2 01180000 DSPL1X DS 0H 01181000 USING RECPRFIX,BUFPTR MAKE RECORD PREFIX ADDRESSABLE 01182000 LH R2,RECLNGTH GET LENGTH OF FIRST/NEXT DATA REC. 01183000 LA BUFPTR,RECPRFXL(,BUFPTR) SKIP RECORD PREFIX 01184000 DROP BUFPTR RELEASE PREFIX ADDRESSABILITY 01185000 SPACE 1 01186000 DPLAY (BUFPTR),(R2) DISPLAY CURRENT DATA RECORD 01187000 SPACE 2 01188000 DSPL1Y DS 0H 01189000 LA R1,RECPRFXL(,R2) CALC. LENGTH OF RECORD INCL. PREFIX 01190000 SR BUFLN,R1 CALC.LENGTH OF DATA STILL IN BUFFER 01191000 LA BUFPTR,0(R2,BUFPTR) POINT TO NEXT RECORD 01192000 LTR BUFLN,BUFLN ALL DATA IN BUFFER DISPLAYED? 01193000 BNZ DSPL0 NO, GO TO DISPLAY NEXT DATA REC. 01194000 SPACE 1 01195000 CLI PXPFBKCD,PXP00EOD END OF DATA? 01196000 BER RE YES, RETURN TO CALLER 01197000 SPACE 1 01198000 * IF THIS ROUTINE IS CALLED BY THE GET FUNCTION, 'SEND (MORE) DATA' 01199000 * HAS TO BE INDICATED IN THE ACTION BYTE. IN ALL OTHER CASES 01200000 * 'RETURN (MORE) MESSAGES' MUST BE SET. 01201000 SPACE 1 01202000 DSPL2 DS 0H 01203000 XC IJBXBLN,IJBXBLN INDICATE ZERO BUFFER LENGTH 01204000 MVI PXUBTYP,0 CLEAR BUFFER TYPE BYTE 01205000 MVI PXUACT1,PXUATRMR INDICATE A 'RETURN MESSAGE' REQUEST 01206000 CLI GETFCT,C'G' WAS DATDSPLY CALLED BY GET? 01207000 BNE DSPL3 NO, KEEP RETURN MESSAGE INDICATION 01208000 MVI PXUACT1,PXUATSDR INDICATE A 'SEND DATA' REQUEST 01209000 DSPL3 DS 0H 01210000 MVC FAILLABL,=C'DSPL2 ' INSERT CODE LABEL FOR DIAGNOSTIC 01211000 BAL RD,SENDR GO TO SENDR ROUTINE 01212000 CLI PXPRETCD,PXPRCOK WAS POWER RETURNCODE ZERO? 01213000 BNE REQFAIL NO, GO TO HANDLE REQUEST FAILURE 01214000 B DATDSPLY YES, START DISPLAYING AGAIN 01215000 EJECT 01216000 *********************************************************************** 01217000 ** >> ROUTINE TO HANDLE REQUEST FAILURES << ** 01218000 ** THE ROUTINE IS CALLED IF POWER RC/FBKC WAS NOT ZERO ** 01219000 *********************************************************************** 01220000 SPACE 1 01221000 REQFAIL DS 0H 01222000 MVC FAILFUNC,=C'SENDR ' INSERT FAILING FUNCTION INTO MSG 01223000 BAL RE,MSGRCFB PREPARE RC/FBKC DISPLAY 01224000 BAL RE,MSGDSPLY DISPLAY MESSAGE ON CONSOLE 01225000 B FINDUMP GO TO TERMINATION WITH DUMP 01226000 EJECT 01227000 *********************************************************************** 01228000 ** >> MESSAGE BUILD ROUTINE FOR FAILMSG << ** 01229000 ** BRANCHED TO FROM ANY CALLER TO FILL SELECTED FIELDS OF THE DIAG- ** 01230000 ** NOSTIC MESSAGE. RETURNS TO CALLER VIA REGISTER 14 (RE). ** 01231000 *********************************************************************** 01232000 SPACE 1 01233000 MSGRETC DS 0H 01234000 UNPK HELP,IJBXRETC(2) UNPACK HEX XPCC RETURN CODE 01235000 TR HELP(2),TRTAB CONVERT TO PRINTABLE HEX-VALUE 01236000 MVC FAILRETC,HELP INSERT PRINTABLE XPCC RET. CODE 01237000 BR RE RETURN TO CALLER 01238000 SPACE 1 01239000 MSGREAS DS 0H 01240000 UNPK HELP,IJBXREAS(2) UNPACK HEX XPCC REASON CODE 01241000 TR HELP(2),TRTAB CONVERT TO PRINTABLE HEX-VALUE 01242000 MVC FAILREAS,HELP INSERT PRINTABLE XPCC REAS. CODE 01243000 BR RE RETURN TO CALLER 01244000 SPACE 1 01245000 MSGRCFB DS 0H 01246000 UNPK HELP,PXPRETCD(2) UNPACK HEX POWER RETURN CODE 01247000 TR HELP(2),TRTAB CONVERT TO PRINTABLE HEX-VALUE 01248000 MVC FAILPWRC,HELP INSERT PRINTABLE POWER RET. CODE 01249000 SPACE 1 01250000 UNPK HELP,PXPFBKCD(2) UNPACK HEX POWER FEEDBACK CODE 01251000 TR HELP(2),TRTAB CONVERT TO PRINTABLE HEX-VALUE 01252000 MVC FAILPWFB,HELP INSERT POWER FEEDACK CODE 01253000 SPACE 1 01254000 CLC FAILLABL,=C'GETBB1' CALLED FROM 'DIRECT' GET, WHERE 01255000 * FEEDBACK CODE 2 IS MEANINGFUL ? 01256000 BNE MSGRCFB2 NO, CONTINUE 01257000 CLI PXPRETCD,PXPRCOKF POWER RETCD = X'04' ? 01258000 BNE MSGRCFB2 NO, CONTINUE 01259000 CLI PXPFBKCD,PXP04NOF POWER FEEDBACK-1 = X'01' ? 01260000 BNE MSGRCFB2 NO, CONTINUE 01261000 UNPK HELP,PXPFBKC2(2) UNPACK HEX POWER FEEDBACK-2 CODE 01262000 TR HELP(2),TRTAB CONVERT TO PRINTABLE HEX-VALUE 01263000 MVC FAILPWF2,HELP INSERT POWER FEEDACK-2 CODE 01264000 MSGRCFB2 DS 0H 01265000 SPACE 1 01266000 * FOR RETC/FBKCD CODE PXP08CON (08/22) OR PXP08ROS (08/25) GENERALLY, 01267000 * CONSIDER TO DISPLAY ALSO THE FEEDBACK-2 CODE FROM PXPFBKC2. 01268000 BR RE RETURN TO CALLER 01269000 SPACE 1 01270000 MSGDSPLY DS 0H 01271000 DPLAY FAILMSG,72 DISPLAY FAILURE MESSAGE 01272000 MVC FAILMSG,FAILCOPY REFRESH FAILURE MESSAGE 01273000 SPACE 1 01274000 BR RE 01275000 EJECT 01276000 *********************************************************************** 01277000 ** >> CENTRAL XPCC SENDR ROUTINE << ** 01278000 ** BEFORE THIS ROUTINE IS CALLED, THE PROGRAM INSERTS THE CALLING ** 01279000 ** POINT IN THE DIAGNOSTIC MESSAGE THAT IS ISSUED SHOULD THE SENDR ** 01280000 ** MACRO FAIL. THIS ROUTINE: ** 01281000 ** - ISSUES THE XPCC MACRO WITH FUNC=SENDR AND WAITS FOR THE ** 01282000 ** SECB TO BE POSTED. IT CHECKS REGISTER 15 (RF) AND THE VSE ** 01283000 ** - CHECKS REGISTER 15 (RF) AND THE VSE RETURN- AND REASON CODES ** 01284000 ** IN FIELDS IJBXRETC AND IJBXREAS, RESPECTIVELY. ** 01285000 ** - CHECKS THE VSE/POWER RETURN CODE IN FIELD PXPRETCD IF ** 01286000 ** VSE/POWER DISCONNECTS THE COMMUNICATION PATH WITH A PURGE. ** 01287000 ** THE ROUTINE RETURNS TO THE CALLER IF THE XPCC MACRO CALL COM- ** 01288000 ** PLETED SUCCESSFULLY OR, IN CASE OF A FAILURE, THE VSE/POWER RE- ** 01289000 ** TURN CODE IS NOT TOO SEVERE. RETURN IS PROVIDED VIA REGISTER ** 01290000 ** 13 (RD). ** 01291000 *********************************************************************** 01292000 SPACE 1 01293000 * REGISTER USAGE FOR SENDR ROUTINE 01294000 SPACE 2 01295000 * R3 - WORK REGISTER (FOR WAIT) 01296000 * RD - REGISTER USED TO RETURN TO CALLER 01297000 * 01298000 * CALLED FROM: PUT REQUEST TO RDR QUEUE 01299000 * CTL REQUEST 01300000 * GET REQUEST 01301000 * PUT REQUEST TO LST QUEUE 01302000 * DATDSPLY ROUTINE 01303000 * 01304000 * EXIT TO CALLER (SEE COMMENT ABOVE) 01305000 * OR TO DISCT OR FINDUMP IN CASE OF A FAILURE 01306000 * 01307000 SPACE 2 01308000 SPACE 1 01309000 SENDR DS 0H 01310000 XPCC XPCCB=(R4),FUNC=SENDR SEND BUFFER TO VSE/POWER 01311000 LTR RF,RF DID WE GET A ZERO RETURN CODE ? 01312000 BZ WAITSECB ..YES, THEN WAIT FOR REPLY OF POWER 01313000 SPACE 2 01314000 * IF THE SENDR MACRO COMPLETES WITH RF=X'08', THEN THE ROUTINE: 01315000 * 1. FILLS THE DIAGNOSTIC MESSAGE ACCORDING TO THE VSE RETURN CODE. 01316000 * 2. DISPLAYS THE MESSAGE. 01317000 * 3. TERMINATES WITH OR WITHOUT A DUMP. 01318000 * THERE IS NO RETURN TO THE CALLER OF SENDR. 01319000 SPACE 1 01320000 TESTRETC DS 0H 01321000 CLI IJBXRETC,IJBXNOC3 DID POWER ABNORMALLY TERMINATE ? 01322000 BE ABNPOW ..YES, THEN GO TO STOP PWRSASEX 01323000 MVC FAILFUNC,=C'SENDR ' INSERT 'SENDR ' INTO MSG TEXT 01324000 BAL RE,MSGRETC PUT XPCC RETURN CODE INTO MSG 01325000 CLI IJBXRETC,IJBXNOC2 DID POWER GIVE A DISCONNECT PURGE ? 01326000 BE TERMCONN ..YES,THEN GO TO SHOW WHY, TERMINATE 01327000 BAL RE,MSGDSPLY DISPLAY DIAGNOSTIC MESSAGE ON CONS. 01328000 B FINDUMP TERMINATE PWRSASEX WITH PART.DUMP 01329000 SPACE 1 01330000 ABNPOW DS 0H 01331000 DPLAY FAILM2,72 01332000 SPACE 1 01333000 B DISCT DISCONN AND TERMIN XPCC LINK, EOJ 01334000 SPACE 2 01335000 * THE ROUTINE WAITS FOR THE SEND ECB TO BE POSTED. IT RETURNS TO THE 01336000 * CALLER IF THE SYSTEM PASSED A REASON CODE OF ZERO, THAT IS, THE 01337000 * XPCC CONNECTION IS ERROR FREE. 01338000 * FOR A NON-ZERO REASON CODE, THE ROUTINE DISPLAYS A DIAGNOSTIC 01339000 * MESSAGE AND TERMINATES WITH OR WITHOUT A DUMP. 01340000 SPACE 1 01341000 WAITSECB DS 0H 01342000 LA R3,IJBXSECB LOAD ADDRESS OF SEND COMPLETION ECB 01343000 WAIT (R3) WAIT FOR COMPLETION OF SENDR 01344000 CLI IJBXREAS,REASOK DID ANY CONNECTION ERROR OCCUR ? 01345000 BER RD .. NO, THEN RETURN TO CALLER 01346000 SPACE 1 01347000 BADREAS DS 0H 01348000 TM IJBXREAS,IJBXABDC DID POWER TERMINATE ABNORMALLY ? 01349000 BO ABNPOW .. YES, GIVE MESSAGE AND GO TO EOJ 01350000 MVC FAILFUNC,=C'SENDR ' INSERT 'SENDR ' INTO MSG TEXT 01351000 BAL RE,MSGREAS FILL XPCC REASON CODE INTO MSG 01352000 TERMCONN DS 0H 01353000 BAL RE,MSGRCFB PUT POWER RETURN/FEEDBACK TO MSG 01354000 BAL RE,MSGDSPLY DISPLAY DIAGNOSTIC MESSAGE 01355000 CLI PXPRETCD,PXPRCPVL POWER RC = PROTOCOL VIOLATION? 01356000 BE FINDUMP .. YES, USER ERROR 01357000 B DISCT SYSTEM ERROR OCCURED §D23QDIR 01358000 EJECT 01359000 *********************************************************************** 01360000 ** D E F I N I T I O N S ** 01361000 *********************************************************************** 01362000 SPACE 2 01363000 TRTAB EQU *-240 ENTRY POINT FOR TRANSLATE TABLE 01364000 DC X'F0F1F2F3F4F5F6F7F8F9C1C2C3C4C5C6' TRANSLATE TABLE 01365000 SPACE 1 01366000 EIGHTDC DC X'08' BYTE TO TEST RETURN CODE 01367000 HELP DC CL3' ' FIELD FOR UNPACK RET CODE 01368000 HELP5 DS CL5 FIELD FOR UNPACK JOBNUMBER 01369000 DS 0D ENFORCE ALIGNMENT FOR 'CVD' FIELD 01370000 HELP8 DS CL8 FIELD FOR CONVERT DECIMAL JOBNUMBER 01371000 SPACE 1 01372000 WAITLIST DC A(INTECB) INTECB = 1ST ELEMENT OF WAITLIST 01373000 LISTCECB DC A(0) IJBXCECB = 2ND ELEM. OF WAITLIST 01374000 LISTEND DC X'FF' INDICATE END OF WAITLIST 01375000 SPACE 1 01376000 INTECB DS F ECB USED TO WAIT FOR TIMER INTERVALS 01377000 SPACE 1 01378000 EIGHT EQU X'08' RETURN CODE X'08' 01379000 POSTBIT EQU X'80' MASK FOR A POSTED ECB 01380000 REASOK EQU X'00' ZERO VSE/AF REASON CODE 01381000 EJECT 01382000 *********************************************************************** 01383000 * DEFINITIONS FOR PUT,CTL AND GET REQUEST * 01384000 *********************************************************************** 01385000 SPACE 1 01386000 M1 EQU 1 MASK BIT SETTING 01387000 M7 EQU 7 MASK BIT SETTING 01388000 ZERO EQU 0 01389000 ONE EQU 1 01390000 SPACE 1 01391000 NOOFRECS EQU 7 NUMBER OF RECORDS IN A SEGMENT 01392000 DISP EQU C'L' DISPOSITION OF OUTPUT TO BE SENT 01393000 PRIOR EQU C'9' PRIORITY OF OUTPUT TO BE SENT 01394000 SEPPAGE EQU 4 NUMBER OR SEPARATOR PAGES/CARDS 01395000 SPACE 1 01396000 RECORDCT EQU 2 USE R2 AS REC COUNTER IN LOOP 01397000 BUFPTR EQU 10 USE RA AS BUFPOINTER 01398000 DATAPTR EQU 11 USE RB AS DATA POINTER 01399000 BUFLN EQU 12 USE RC TO CALC REMAINING BUFLEN 01400000 SPACE 2 01401000 JOBNAME DS CL8 FIELD TO SAVE JOBNAME RET'D BY POW. 01402000 JOBNUM DS XL2 FIELD TO SAVE JOBNUMB.RET'D BY POW. 01403000 PWRRECNO DS F FIELD TO SAVE POW. LOGICAL REC NO. 01404000 JOBQNUM DS F FIELD TO SAVE INT. QUEUE ENTRY NO. 01405000 ZERONUM DC H'0' TO INDICATE 'NO JOBNUMBER SPECIFIED' 01406000 * BECAUSE SPLXQNUM IS 'UNIQUE' 01407000 GETFCT DC C' ' FIELD TO IDENTIFY GET AS CALLER OF 01408000 * DATDSPLY 01409000 SPACE 1 01410000 FORMS DC CL8'AABB' FORMS OF OUTPUT TO BE SENT 01411000 JOBNLAB DC CL8'EXAMPSEG' NAME OF OUTPUT TO BE SPOOLED 01412000 SPACE 1 01413000 JOBCMD DS 0CL72 COMMAND AT ITS MAXIMUM LENGTH, TER- 01414000 * MINATED WITH AT LEAST ONE BLANK(Ü) 01415000 CMDHEAD DC CL13'PDISPLAY LST,' FIXED START OF COMMAND 01416000 CMDBODY DC CL59' ' DYNAMIC BODY/END OF COMMAND 01417000 SPACE 1 01418000 CMDCLAS DC C'CCLASS=S ' SELECTION CLASS FOR PDISPLAY 01419000 SPACE 1 01420000 FFDSPLY DS 0CL72 MESSAGE EXTRACT FROM FF MSG RECORD 01421000 FFMHD DC CL23'1QSAS LST JNM= ' MSG HEADER PLUS JOBNAME 01422000 FFNHD DC CL10' JNB= ' JOBNUMBER ONLY 01423000 FFCHD DC CL8' CLASS= ' JOBCLASS ONLY 01424000 DC CL31' ' BLANK MESSAGE TRAILER 01425000 EJECT 01426000 *********************************************************************** 01427000 * MESSAGE AREA FOR FAILING MACRO CALLS * 01428000 *********************************************************************** 01429000 SPACE 1 01430000 FAILMSG DS 0CL72 01431000 F1 DC C'FUNC=' 01432000 FAILFUNC DC CL8' ' REQUESTED FUNCTION 01433000 F2 DC C' FAILED AT: ' 01434000 FAILLABL DC CL6' ' CODE LABEL OF FAILING FUNCTION 01435000 F3 DC C' XPCC=' 01436000 FAILRETC DC CL2'00' RETURN CODE RECEIVED IN IJBXRETC 01437000 F4 DC C'/' 01438000 FAILREAS DC CL2'00' REASON CODE RECEIVED IN IJBXREAS 01439000 F5 DC C' PWR-RC/FB1/FB2=' 01440000 FAILPWRC DC CL2'00' VSE/POWER RETURN CODE IN IJBXRUSR 01441000 F6 DC C'/' 01442000 FAILPWFB DC CL2'00' POWER FEEDBACK CODE 1 IN IJBXRUSR 01443000 F7 DC C'/' 01444000 FAILPWF2 DC CL2'00' POWER FEEDBACK CODE 2 IN IJBXRUSR 01445000 F8 DC CL6' ' 01446000 SPACE 1 01447000 FAILCOPY DS CL72 01448000 SPACE 1 01449000 FAILM1 DC CL72'VSE/POWER ALREADY IN TERMINATION, NO MORE CONNECTIO*01450000 N REQUEST ACCEPTED' 01451000 FAILM2 DC CL72'VSE/POWER ABNORMAL TERMINATION, CONNECTION DISRUPTE*01452000 D' 01453000 FAILM3 DC CL72'CONNECTION COULD NOT BE COMPLETED WITHIN 2 MINUTES' 01454000 FAILM4 DC CL72'LIST QUEUE ENTRY COULD NOT BE FOUND, PWRSASEX WILL *01455000 STOP' 01456000 SPACE 1 01457000 SUCCM1 DC CL72'>>> XPCC CONNECTION TO VSE/POWER SUCCESSFULLY BUILT*01458000 <<<' 01459000 SUCCM1A DC CL72'>>> PWRSASEX WILL SUBMIT JOB ''EXAMPLE'' FOR EXECUT*01460000 ION IN CLASS 4 (Ü) <<<' 01461000 SUCCM1B DC CL72'>>> PWRSASEX WILL WAIT FOR EXECUTION OF JOB ''EXAMP*01462000 LE'' IN CLASS 4 <<<' 01463000 SUCCM1C DC CL72'>>> NOW ISSUE PDISPLAY FOR OUTPUT ''EXAMPLE'' AND P*01464000 ASS IT TO CONSOLE <<<' 01465000 SUCCM2 DC CL72'>>> NOW PWRSASEX WILL RESTART ON RECORD NO.12 <<<' 01466000 SUCCM3 DC CL72'>>> THE VSE/POWER LIST QUEUE MUST NOW CONTAIN 3 RBS*01467000 -LIKE SEGMENTS ... <<<' 01468000 SUCCM4 DC CL72'>>> ... NAMED ''EXAMPSEG'' AND A SINGLE ENTRY NAMED*01469000 ''EXAMPLE'' <<<' 01470000 SUCCM6 DC CL72'>>> *** SUCCESSFUL TERMINATION OF PWRSASEX *** <<<' 01471000 SUCCM7 DC CL72'>>> NOW FOLLOWS THE DISPLAY OF THE LIST ENTRY ''EXA*01472000 MPLE'' <<<' 01473000 SUCCM8 DC CL72'>>> NEXT PWRSASEX WILL SUBMIT DATA TO THE LIST QUEU*01474000 E <<<' 01475000 EJECT 01476000 *********************************************************************** 01477000 * JOB 'EXAMPLE' TO BE PASSED TO VSE/POWER * 01478000 *********************************************************************** 01479000 SPACE 1 01480000 JECL1 DC C'* $$ JOB JNM=EXAMPLE,DISP=K,CLASS=4 ' 01481000 JECL2 DC C'* $$ LST LST=SYSLST,DISP=K,CLASS=S ' 01482000 JCL1 DC C'// JOB EXAMPLE ' 01483000 DATACARD DC C'* 01---------------------*----------------------01 *' 01484000 DC C'* 02-------------------* *-------------------02 *' 01485000 DC C'* 03-----------------* *-----------------03 *' 01486000 DC C'* 04---------------* *---------------04 *' 01487000 DC C'* 05-------------* *-------------05 *' 01488000 DC C'* 06-----------* *-----------06 *' 01489000 DC C'* 07---------* *---------07 *' 01490000 DC C'* 08-------* *-------08 *' 01491000 DC C'* 09-----* *-----09 *' 01492000 DC C'* 10---* *---10 *' 01493000 DC C'* 11-* *-11 *' 01494000 DC C'* 12---* *---12 *' 01495000 DC C'* 13-----* *-----13 *' 01496000 DC C'* 14-------* *-------14 *' 01497000 DC C'* 15---------* *---------15 *' 01498000 DC C'* 16-----------* *-----------16 *' 01499000 DC C'* 17-------------* *-------------17 *' 01500000 DC C'* 18---------------* *---------------18 *' 01501000 DC C'* 19-----------------* *-----------------19 *' 01502000 DC C'* 20-------------------* *-------------------20 *' 01503000 DC C'* 21---------------------*----------------------21 *' 01504000 JCL2 DC C'/&& ' 01505000 JECL3 DC C'* $$ EOJ ' 01506000 ENDIND DC C'/+' 01507000 EJECT 01508000 *********************************************************************** 01509000 * CROSS PARTITION CONTROL BLOCK * 01510000 *********************************************************************** 01511000 SPACE 1 01512000 OWNXPCCB XPCCB APPL=PWRSASEX,TOAPPL=SYSPWR, *01513000 BUFFER=(SENDBUF,400),REPAREA=(REPLBUF,500) 01514000 SPACE 2 01515000 *********************************************************************** 01516000 * STORAGE RESERVATION FOR XPCC SEND AND REPLY BUFFER * 01517000 *********************************************************************** 01518000 SPACE 1 01519000 SENDBUF DS CL400 BUFFER USED FOR XPCC SENDR TO POWER 01520000 LASTPREC DC A(SENDBUF+L'SENDBUF-RECPRFXL-L'DATACARD) LAST POSSIBLE 01521000 * RECORD THAT FITS INTO SEND BUFFER 01522000 REPLBUF DS CL500 BUFFER FOR RECEIPT OF DATA FROM POWER 01523000 EJECT 01524000 *********************************************************************** 01525000 LTORG 01526000 *********************************************************************** 01527000 EJECT 01528000 **********************************************************************§ 01529000 ** >> GENERATE S P L << *§ 01530000 ** THIS SPL IS LATER ON UPDATED IN ORDER TO INDICATE A *§ 01531000 ** PUT, CTL, OR GET REQUEST WITH THE DESIRED PARAMETERS *§ 01532000 **********************************************************************§ 01533000 SPACE 1 § 01534000 OWNSPL PWRSPL TYPE=GEN,USERID=SASUSER1,PRFX=OWN § 01535000 EJECT § 01536000 *********************************************************************** 01537000 * DUMMY SECTION OF VSE/POWER SPOOL PARAMETER LIST (SPL) * 01538000 *********************************************************************** 01539000 SPACE 1 01540000 OWNSPLDS PWRSPL TYPE=MAP 01541000 EJECT 01542000 *********************************************************************** 01543000 * DUMMY SECTION OF CROSS PARTITION CONTROL BLOCK (XPCCB) * 01544000 *********************************************************************** 01545000 SPACE 1 01546000 MAPXPCCB 01547000 EJECT 01548000 *********************************************************************** 01549000 * GENERAL EQUATES * 01550000 *********************************************************************** 01551000 SPACE 1 01552000 R0 EQU 0 WORK REGISTER 01553000 R1 EQU 1 WORK REGISTER + USED BY PWRSPL MACRO 01554000 R2 EQU 2 WORK REGISTER 01555000 R3 EQU 3 WORK REGISTER 01556000 R4 EQU 4 ADDR REG FOR XPCCB DSECT 01557000 R5 EQU 5 ADDR REG FOR USER DATA TO BE SENT 01558000 R6 EQU 6 ADDR REG FOR RECEIVED USER DATA 01559000 R7 EQU 7 ADDR REG FOR SPL DSECT 01560000 R8 EQU 8 FIRST BASE REGISTER OF PWRSASEX 01561000 R9 EQU 9 SECOND BASE REGISTER OF PWRSASEX 01562000 RA EQU 10 WORK REGISTER 01563000 RB EQU 11 WORK REGISTER 01564000 RC EQU 12 WORK REGISTER 01565000 RD EQU 13 BRANCH AND LINK REGISTER FOR SENDR 01566000 RE EQU 14 BRANCH AND LINK REG. FOR DATDSPLY 01567000 RF EQU 15 MACRO CALL RETURN CODE REGISTER 01568000 SPACE 1 01569000