* %GOTO MTPLS1; /* BILINGUAL MAPPING 00200401 MACRO 00200501 IKJEFFMT &MTDSECT=NO,&MTNINST=4 00200601 .*A-000000-999999 @Y02993 00200701 .*C-REL. 4 TWO BUFFERS FOR EXTRACTING MESSAGES @Z40GQKU 00200801 AGO .MTBAL01 ** SKIP PLS MACRO STATEMENT ** */ 00200901 *%MTPLS1: ; /* BAL/PLS HEADER 00201001 .MTBAL01 ANOP */ 00201101 */********************************************************************/ 00201201 */* */ 00201301 */* *** IKJEFFMT *** LEVEL= 7/29/75 OS/VS2 RELEASE 04.1 */ 00201401 */* */ 00201501 */* DESCRIPTION - BILINGUAL MAPPING MACRO FOR PARAMETER LIST TO */ 00201601 */* IKJEFF02 (TSO MESSAGE ISSUER SERVICE ROUTINE) */ 00201701 */* */ 00201801 */* FUNCTION - THE PARAMETER LIST IDENTIFIES A MESSAGE (WHICH */ 00201901 */* MAY HAVE A SECOND LEVEL MESSAGE), DESCRIBES */ 00202001 */* INSERT(S) FOR THE MESSAGE, AND INDICATES WHETHER */ 00202101 */* TO ISSUE THE MESSAGE AS A PUTLINE, PUTGET, WTO, */ 00202201 */* OR A WRITE TO PROGRAMMER AND/OR RETURN THE MESSAGE */ 00202301 */* (TWO LEVELS IF MULTILEVEL) IN CALLER'S BUFFER. */ 00202401 */* */ 00202501 */* THE PARAMETER LIST ALSO POINTS TO A MESSAGE */ 00202601 */* CSECT CONTAINING THE MESSAGE'S TEXT. THE */ 00202701 */* IKJTSMSG MACRO IS USED TO GENERATE THE */ 00202801 */* NECESSARY DC'S FOR THE TEXT AND THE OFFSETS */ 00202901 */* TO INSERTS IN THE MESSAGE. THE LAST ENTRY IN */ 00203001 */* THE CSECT MUST BE AN IKJTSMSG MACRO WITH NO */ 00203101 */* OPERANDS. SEE THE MICROFICHE LISTING OF MODULE */ 00203201 */* IKJEFF55 FOR EXAMPLES OF MESSAGE TEXTS GENERATED */ 00203301 */* BY THE IKJTSMSG MACRO. */ 00203401 */* */ 00203501 */* REGISTER 1 -> MTPARML = MSGTABLE PARMLIST */ 00203601 */* REGISTER 15 WILL CONTAIN IKJEFF02'S RETURN CODE */ 00203701 */* TO THE CALLER (0 IF SUCCESSFUL, */ 00203801 */* 76 IF PARAMETER LIST ERROR (MESSAGE IS */ 00203901 */* ALSO ISSUED), OR ERROR RETURN CODE */ 00204001 */* FROM PUTLINE OR PUTGET) */ 00204101 */* */ 00204201 */* METHOD OF ACCESS */ 00204301 */* PL/S - %MTNEW='1' - - - - - - IF DON'T WANT BASED */ 00204401 */* %MTBASE='ANY BASE' - - IF MTNEW ISN'T SPECIFIED, */ 00204501 */* DEFAULTS TO BASED(MSGPTR) */ 00204601 */* %MTINSRTN='N' - - - - TO GET INSERT ARRAY WITH N */ 00204701 */* ELEMENTS - DEFAULTS TO */ 00204801 */* 4 INSERTS, NO ARRAY */ 00204901 */* %INCLUDE SYSLIB(IKJEFFMT) */ 00205001 */* */ 00205101 */* BAL - <> */ 00205301 */* MTDSECT=YES IF DON'T WANT TO GET CORE, */ 00205401 */* THEN CODE LA REG,MYMTCORE *CALLER AREA* */ 00205501 */* USING MTDSECTD,REG */ 00205601 */* MTDSECT=NO IS THE DEFAULT. */ 00205701 */* */ 00205801 */* MTNINST=NUMBER SPECIFIES NUMBER OF INSERT ENTRIES */ 00205901 */* IN THE PARAMETER LIST. MTNINST=4 IS THE DEFAULT. */ 00206001 */* */ 00206101 */* F.E.'S - MICROFICHE LISTING = IKJEFFMT */ 00206201 */* */ 00206301 */********************************************************************/ 00206401 * %GOTO MTPLS2; /* BAL ONLY FOLLOWS 00206501 .* SET UP DSECT CARD IF MTDSECT=YES ON MACRO 00206601 AIF ('&MTDSECT' EQ 'NO').MTBAL1 **MACRO STATEMENT** 00206701 MTDSECTD DSECT 00206801 .MTBAL1 ANOP **MACRO STATEMENT** 00206901 DS 0F 00207001 MTPARML EQU * .<> 00207101 * . UNUSED NON-INSERT FIELDS MUST BE ZEROED 00207201 MTPLPTR DC A(0) .LISTPTR = POINTER TO MESSAGE DESCRIPTION 00207301 * . SECTION OF PARAMETER LIST 00207401 MTCPPLP DC A(0) .TMCTPTR = POINTER TO TMP'S CPPL CONTROL 00207501 * . BLOCK (REQUIRED FOR PUTLINE OR PUTGET) 00207601 MTECBP DC A(0) .ECBPTR = OPTIONAL PUTGET/PUTLINE ECB POINTER 00207701 MTRESV1 DC A(0) .** RESERVED FOR FUTURE USE ** 00207801 ORG MTRESV1 00207901 MTHIGH DC B'10000000' .CAN SET HIGH-ORDER BIT FOR STANDARD LINKAGE 00208001 ORG MTRESV1+4 00208101 *********************************************************************** 00208201 * IKJEFFMT - MESSAGE DESCRIPTION SECTION OF PARAMETER LIST * 00208301 *********************************************************************** 00208401 MTCSECTP DC A(0) .MSGCSECT = POINTER TO CSECT WITH CALLER'S 00208501 * . MESSAGE TEXTS, BUILT WITH IKJTSMSG MACRO 00208601 MTSW1 DC B'0' .SW = BYTE OF SWITCHES 00208701 MTNOIDSW EQU X'80' .BIT ON IF PRINTING DATA (SEE IKJEFF02'S 00208801 * . PROLOGUE FOR DETAILS) 00208901 MTPUTLSW EQU X'40' .BIT ON IF ISSUE MESSAGE AS PUTLINE, NOT 00209001 * . DEFAULT OF PUTGET. FOR PUTLINE, MESSAGE 00209101 * . INSERTS FOR A SECOND LEVEL MESSAGE MUST 00209201 * . BE LISTED BEFORE INSERTS FOR FIRST LEVEL. 00209301 * . PUTGET MESSAGES MUST HAVE A SECOND LEVEL. 00209401 MTWTOSW EQU X'20' .BIT ON IF ISSUE MESSAGE AS A WTO WITH 00209501 * . ROUTCDE=(2), DESC=(6). MESSAGE IS 00209601 * . TRUNCATED IF IT EXCEEDS 124 CHARACTERS. 00209701 MTHEXSW EQU X'10' .BIT ON IF TRANSLATE NUMERIC INSERTS TO 00209801 * . PRINTABLE HEX (X'VALUE'), NOT DECIMAL 00209901 MTKEY1SW EQU X'08' .BIT ON IF DO MODESET TO KEY 0 BEFORE ISSUE 00210001 * . A PUTLINE OR PUTGET, THEN RETURN TO 00210101 * . KEY 1 (IF KEY 0 OR 8, DON'T NEED MODESET) 00210201 MTJOBISW EQU X'04' .BIT ON IF COMPRESS BLANKS OUT OF XX(YY) 00210301 * . TYPE INSERT 00210401 MTWTPSW EQU X'02' .BIT ON IF ISSUE MESSAGE AS A WRITE TO 00210501 * . PROGRAMMER (WITH DESC=(7) ). SEVERAL 00210601 * . WTP'S ARE ISSUED IF MESSAGE EXCEEDS 00210701 * . 124 CHARACTERS. 00210801 MTNHEXSW EQU X'01' .BIT ON IF TRANSLATE ALL NUMERIC INSERTS 00210901 * . TO PRINTABLE DECIMAL (DEFAULT IS 00211001 * . DECIMAL IF VALUE LESS THAN X'FFFF', 00211101 * . OTHERWISE TRANSLATE TO PRINTABLE HEX) 00211201 *********************************************************************** 00211301 MTREPLYP DC AL3(0) .RETMSG = POINTER TO REPLY FROM PUTGET, 00211401 * . IN THE FORMAT LL-TEXT, WHERE LL IS 00211501 * . A TWO-BYTE LENGTH FIELD WITH LENGTH OF 00211601 * . THE REPLY (INCLUDING LENGTH OF LL FIELD). 00211701 * . IKJEFF02 OBTAINS THIS BUFFER IN SUBPOOL 0 00211801 * . AND IT MAY BE FREED BY THE CALLER. 00211901 * . THE REPLY IS CONVERTED TO UPPER CASE. 00212001 */* NOTE: */ 00212101 */* PARSE IS A BETTER INTERFACE TO USE FOR @Z40GQKU*/ 00212201 */* PROMPTING RATHER THAN THIS IKJEFF02 PUTGET @Z40GQKU*/ 00212301 */* INTERFACE. (IKJIDENT OR IKJKEYWORD/IKJNAME @Z40GQKU*/ 00212401 */* MACROS CAN BE USED TO DESCRIBE THE SYNTAX OF @Z40GQKU*/ 00212501 */* THE REQUIRED REPLY, AND THEN PARSE WILL DO @Z40GQKU*/ 00212601 */* ALL PROMPTING FOR INVALID REPLIES AND WILL @Z40GQKU*/ 00212701 */* ISSUE A MESSAGE IF IT IS UNABLE TO PROMPT. @Z40GQKU*/ 00212801 */* SEE MICROFICHE MODULE IKJEFF13 FOR AN EXAMPLE@Z40GQKU*/ 00212901 */* OF PROMPTING USING PARSE.) @Z40GQKU*/ 00213001 MTSW2 DC B'0' .SW2 = SECOND BYTE OF SWITCHES 00213101 MT2OLDSW EQU X'80' .BIT ON IF MTOLDPTR POINTS TO SECOND LEVEL 00213201 * . MESSAGE ALREADY IN PUTLINE/PUTGET O.L.D. 00213301 * . FORMAT. (USED FOR TSO STATUS COMMAND.) 00213401 MTDOMSW EQU X'40' .BIT ON IF DELETE WRITE TO PROGRAMMER OR 00213501 * . WTO MESSAGES FROM DISPLAY CONSOLE 00213601 MTNOXQSW EQU X'20' .BIT ON TO OVERRIDE DEFAULT OF X' ' AROUND 00213701 * . INSERTS CONVERTED TO PRINTABLE HEX 00213801 MTNPLMSW EQU X'10' .BIT ON TO OVERRIDE DEFAULT OF WRITE TO 00213901 * . PROGRAMMER ERROR MESSAGE IF PUTLINE FAILS 00214001 MTPGMSW EQU X'08' .BIT ON IF WANT ERROR MESSAGE IF PUTGET FAILS 00214101 MTEXTRCN EQU X'04' .BIT ON IF WANT EXTRACT AND ALSO @Z40GQKU 00214201 * . ISSUE MESSAGE @Z40GQKU 00214301 *********************************************************************** 00214401 MTRESV2 DC AL3(0) .** RESERVED FOR FUTURE USE ** 00214501 MTOLDPTR DC A(0) .POINTS TO O.L.D. IF MT2OLDSW IS ON 00214601 MTEXTRCT DS 0F .DESCRIBES BUFFER CONTAINING FIRST @Z40GQKU 00214701 * . LEVEL MESSAGE EXTRACT INFORMATION @Z40GQKU 00214801 MTEXTRLN DC AL1(0) .LENGTH OF EXTRACT BUFFER. ACTS AS @Z40GQKU 00214901 * . SWITCH TO INDICATE EXTRACT WANTED.@Z40GQKU 00215001 MTEXTRBF DC AL3(0) .PTR TO EXTRACT BUFFER SUPPLIED BY @Z40GQKU 00215101 * . CALLER. THE MESSAGE IS RETURNED @Z40GQKU 00215201 * . IN THE FORM 'LL00TEXT' WHERE LL @Z40GQKU 00215301 * . IS THE LENGTH OF TEXT +4. IF THE @Z40GQKU 00215401 * . CALLER'S BUFFER IS TOO SMALL, AS @Z40GQKU 00215501 * . MUCH OF LL00TEXT IS MOVED AS @Z40GQKU 00215601 * . POSSIBLE. @Z40GQKU 00215701 * . THE CALLER MUST COMPARE MESSAGE @Z40GQKU 00215801 * . SIZE WITH BUFFER SIZE TO KNOW IF @Z40GQKU 00215901 * . MESSAGE HAS BEEN TRUNCATED. @Z40GQKU 00216001 MTEXTRC2 DS 0F .AREA DESCRIBING BUFFER CONTAINING @Z40GQKU 00216101 * . INFO FOR EXTRACT OF SECOND LEVEL @Z40GQKU 00216201 * . MESSAGE. @Z40GQKU 00216301 MTEXTRL2 DC AL1(0) .LENGTH OF EXTRACT BUFFER FOR @Z40GQKU 00216401 * . SECOND LEVEL MESSAGE - ACTS AS @Z40GQKU 00216501 * . SWITCH TO INDICATE EXTRACT WANTED @Z40GQKU 00216601 * . FOR SECOND LEVEL MESSAGE @Z40GQKU 00216701 MTEXTRB2 DC AL3(0) .PTR TO EXTRACT BUFFER, CALLER- @Z40GQKU 00216801 * . SUPPLIED, FOR SECOND LEVEL @Z40GQKU 00216901 * . MESSAGE. SEE MTEXTRBF FOR @Z40GQKU 00217001 * . DESCRIPTION. @Z40GQKU 00217101 * . IF THERE IS NO SECOND LEVEL @Z40GQKU 00217201 * . MESSAGE, THE LENGTH FIELD OF THE @Z40GQKU 00217301 * . SECOND BUFFER WILL BE ZERO ON @Z40GQKU 00217401 * . RETURN TO CALLER. @Z40GQKU 00217501 MTMSGID DC C'XXXX' .MSGID = ID USED TO SEARCH FOR MESSAGE 00217601 * . TEXT IN THE MESSAGE CSECT 00217701 MTINSRTS DC &MTNINST.A(0) .AREA WITH INFO FOR MESSAGE INSERT(S). 00217801 * . HAVE MAXIMUM OF 255 PARTS TO A FIRST OR 00217901 * . LATER LEVEL MESSAGE, BUT IF A MESSAGE 00218001 * . LEVEL EXCEEDS 256 CHARACTERS, IT IS 00218101 * . TRUNCATED. TRAILING BLANKS ARE DELETED 00218201 * . FROM INSERTS. EXTRA INSERT FIELDS NEED 00218301 * . NOT BE ZEROED. 00218401 MTEND EQU * .USE TO COMPUTE MT LENGTH AND FOR ORG'S 00218501 ORG MTINSRTS 00218601 MTLEN DS AL1 .LENGTH OF AN INSERT FOR THE MESSAGE. IF 00218701 * . LENGTH (OR ADDRESS) IS ZERO, NO INSERTION 00218801 * . IS DONE FOR THIS ENTRY, BUT FOLLOWING 00218901 * . INSERTIONS ARE DONE. MAXIMUM IS 127. 00219001 ORG MTLEN+0 00219101 MTHIGHL DS BL1 .HIGH-ORDER BIT ON IF TRANSLATE FIRST ONE TO 00219201 * . FOUR BYTES OF THE INSERT FROM HEX TO 00219301 * . CHARACTER (IGNORE REST). SEE MTHEXSW. 00219401 ORG MTLEN+1 00219501 MTADDR DS AL3 .ADDRESS OF AN INSERT FOR THE MESSAGE. 00219601 * . INSERTS FOR SECOND LEVEL MESSAGE MUST 00219701 * . BE FIRST IF ISSUING PUTLINE OR WTP. 00219801 ORG MTLEN+0 00219901 MTINSRT DS AL4 .USE THIS LABEL TO REFER TO AN INSERT ENTRY. 00220001 ORG MTEND 00220101 MTLENMT EQU MTEND-MTPARML .LENGTH OF PARMLIST TO IKJEFF02 00220201 *********************************************************************** 00220301 MEND , */ 00220401 *%MTPLS2: ; 00220501 * DCL 1 MSGTABLE 00220601 *%IF MTNEW='1' %THEN 00220701 *%GOTO MTSKIP1; 00220801 *%IF MTBASE='' %THEN 00220901 *%MTBASE='BASED(MSGPTR)'; 00221001 * MTBASE 00221101 *%MTSKIP1:; 00221201 * , /* <> UNUSED 00221301 * FIELDS MUST BE ZEROED */ 00221401 * 2 LISTPTR PTR(31), /* POINTER TO MESSAGE DESCRIPTION SECTION OF 00221501 * PARAMETER LIST */ 00221601 * 2 TMCTPTR PTR (31),/* POINTER TO TMP'S TMCT CONTROL BLOCK 00221701 * (REQUIRED FOR PUTLINE OR PUTGET) */ 00221801 * 3 MTCPPL PTR(31), /* (ALSO CALLED CPPL) */ 00221901 * 2 ECBPTR PTR(31), /* OPTIONAL PUTLINE/PUTGET ECB POINTER */ 00222001 * 2 * PTR(31), /* ** RESERVED FOR FUTURE USE ** */ 00222101 * 3 MTHIGH BIT(1), /* CAN TURN ON FOR STANDARD LINKAGE */ 00222201 * 2 MSGCSECT PTR(31), /* <> 00222301 * POINTER TO CSECT WITH CALLER'S MESSAGE 00222401 * TEXTS, BUILT WITH IKJTSMSG MACRO */ 00222501 * 2 SW PTR(8), /* FIRST BYTE OF SWITCHES */ 00222601 * 3 MTNOIDSW BIT(1), /* ON IF PRINTING DATA (SEE IKJEFF02'S 00222701 * PROLOGUE FOR DETAILS) */ 00222801 * 3 MTPUTLSW BIT(1), /* ON IF ISSUE PUTLINE, NOT DEFAULT OF PUTGET. 00222901 * FOR PUTLINE, MESSAGE INSERTS FOR A SECOND 00223001 * LEVEL MESSAGE MUST BE LISTED BEFORE INSERTS 00223101 * FOR A FIRST LEVEL. PUTGET MESSAGES MUST 00223201 * HAVE A SECOND LEVEL. */ 00223301 * 3 MTWTOSW BIT(1), /* ON IF ISSUE MESSAGE AS A WTO WITH 00223401 * ROUTCDE=(2), DESC=(6). MESSAGE IS 00223501 * TRUNCATED IF IT EXCEEDS 124 CHARACTERS. */ 00223601 * 3 MTHEXSW BIT(1), /* ON IF TRANSLATE NUMERIC INSERTS TO 00223701 * PRINTABLE HEX (X'VALUE'), NOT DECIMAL */ 00223801 * 3 MTKEY1SW BIT(1), /* ON IF DO MODESET TO KEY 0 BEFORE ISSUE 00223901 * A PUTLINE OR PUTGET, THEN RETURN TO KEY 1 00224001 * (IF KEY 0 OR 8, DON'T NEED MODESET) */ 00224101 * 3 MTJOBISW BIT(1), /* ON IF COMPRESS BLANKS OUT OF XX(YY) 00224201 * TYPE INSERT */ 00224301 * 3 MTWTPSW BIT(1), /* ON IF ISSUE MESSAGE AS A WRITE TO 00224401 * PROGRAMMER (WITH DESC=(7). IF MESSAGE IS 00224501 * LONGER THAN 124 CHARACTERS, SEVERAL WTP'S 00224601 * ARE ISSUED. */ 00224701 * 3 MTNHEXSW BIT(1), /* ON IF TRANSLATE ALL NUMERIC INSERTS 00224801 * TO PRINTABLE DECIMAL (DEFAULT IS 00224901 * DECIMAL IF VALUE LESS THAN X'FFFF', 00225001 * OTHERWISE TRANSLATE TO PRINTABLE HEX) */ 00225101 * 2 RETMSG PTR(24), /* POINTER TO REPLY FROM PUTGET */ 00225201 * 2 SW2 PTR(8), /* SECOND BYTE OF SWITCHES */ 00225301 * 3 MT2OLDSW BIT(1), /* ON IF MTOLDPTR POINTS TO SECOND LEVEL 00225401 * MESSAGE ALREADY IN PUTLINE/PUTGET O.L.D. 00225501 * FORMAT. IKJEFF02 WILL COPY IKJ MSG ID FROM 00225601 * FIRST LEVEL INTO FIRST SEGMENT OF SECOND 00225701 * LEVEL MESSAGE. (FOR TSO STATUS COMMAND.)*/ 00225801 * 3 MTDOMSW BIT(1), /* ON IF DELETE WRITE TO PROGRAMMER OR WTO 00225901 * MESSAGES FROM DISPLAY CONSOLE */ 00226001 * 3 MTNOXQSW BIT(1), /* ON IF OVERRIDE DEFAULT OF X' ' AROUND 00226101 * INSERTS CONVERTED TO PRINTABLE HEX */ 00226201 * 3 MTNPLMSW BIT(1), /* ON IF OVERRIDE DEFAULT OF WRITE TO 00226301 * PROGRAMMER ERROR MESSAGE IF PUTLINE FAILS*/ 00226401 * 3 MTPGMSW BIT(1), /* ON IF WANT AN ERROR MSG IF PUTGET FAILS */ 00226501 * 3 MTEXTRCN BIT(1), /*ON IF WANT EXTRACT PUT IN BUFFER @Z40GQKU 00226601 * AND CONTINUE TO ISSUE MESSAGE @Z40GQKU*/ 00226701 * 3 * BIT(2), /* ** RESERVED ** @Z40GQKU*/ 00226801 * 2 * PTR(24), /* ** RESERVED ** */ 00226901 * 2 MTOLDPTR PTR(31), /* POINTS TO O.L.D. IF MT2OLDSW IS ON */ 00227001 * 2 MTEXTRCT PTR(31), /*AREA TO DESCRIBE BUFFER @Z40GQKU 00227101 * CONTAINING INFO FOR EXTRACT @Z40GQKU 00227201 * OF FIRST LEVEL MESSAGE @Z40GQKU*/ 00227301 * 3 MTEXTRLN PTR(8), /*LENGTH OF EXTRACT BUFFER - ACTS @Z40GQKU 00227401 * AS SWITCH TO INDICATE EXTRACT @Z40GQKU 00227501 * WANTED FOR FIRST LEVEL MESSAGE. @Z40GQKU*/ 00227601 * 3 MTEXTRBF PTR(24), /* PTR TO EXTRACT BUFFER SUPPLIED BY CALLER. 00227701 * THE MESSAGE IS RETURNED IN THE FORM 00227801 * 'LL00TEXT' WHERE LL IS THE LENGTH OF THE 00227901 * TEXT +4. IF THE CALLER'S BUFFER IS TOO 00228001 * SMALL, AS MUCH OF LL00TEXT IS MOVED AS 00228101 * POSSIBLE. 00228201 * THE CALLER MUST COMPARE MESSAGE @Z40GQKU 00228301 * SIZE WITH BUFFER SIZE TO KNOW IF @Z40GQKU 00228401 * MESSAGE HAS BEEN TRUNCATED. @Z40GQKU*/ 00228501 * 2 MTEXTRC2 PTR(31), /*AREA DESCRIBING BUFFER CONTAINING @Z40GQKU 00228601 * INFO FOR EXTRACT OF SECOND LEVEL @Z40GQKU 00228701 * MESSAGE. @Z40GQKU*/ 00228801 * 3 MTEXTRL2 PTR(8), /*LENGTH OF EXTRACT BUFFER FOR @Z40GQKU 00228901 * SECOND LEVEL MESSAGE - ACTS AS @Z40GQKU 00229001 * SWITCH TO INDICATE EXTRACT WANTED @Z40GQKU 00229101 * FOR SECOND LEVEL MESSAGE. @Z40GQKU*/ 00229201 * 3 MTEXTRB2 PTR(24),/*PTR TO EXTRACT BUFFER, CALLER- @Z40GQKU 00229301 * SUPPLIED, FOR SECOND LEVEL @Z40GQKU 00229401 * MESSAGE. SEE MTEXTRBF FOR @Z40GQKU 00229501 * DESCRIPTION. @Z40GQKU 00229601 * IF THERE IS NO SECOND LEVEL @Z40GQKU 00229701 * MESSAGE, THE LENGTH FIELD OF THE @Z40GQKU 00229801 * SECOND BUFFER WILL BE ZERO ON @Z40GQKU 00229901 * RETURN TO CALLER. @Z40GQKU*/ 00230001 * 2 MSGID CHAR (4), /* MESSAGE ID USED TO SEARCH FOR MESSAGE 00230101 * TEXT IN THE MESSAGE CSECT */ 00230201 * 2 MTINSRTS, /* USE THIS NAME TO ZERO INSERT AREA. HAVE 00230301 * MAXIMUM OF 255 PARTS TO A FIRST OR LATER 00230401 * LEVEL MESSAGE, BUT IF A MESSAGE LEVEL 00230501 * EXCEEDS 256 CHARACTERS, IT IS TRUNCATED. 00230601 * TRAILING BLANKS ARE DELETED FROM INSERTS. 00230701 * EXTRA INSERT FIELDS NEED NOT BE ZEROED. 00230801 * IF AN INSERT LENGTH (OR ADDRESS) FIELD IS 00230901 * ZERO, NO INSERT IS DONE FOR THE ENTRY, BUT 00231001 * FOLLOWING INSERTS ARE DONE. */ 00231101 *%IF MTINSRTN='' %THEN /* DO NOT CREATE ARRAY FOR INSRTS IF NULL KWD*/ 00231201 *%GOTO MTSKIP2; /* ARRAY WITH INSERTS FOLLOWS */ 00231301 * 3 MTINSRT(MTINSRTN), /* ARRAY OF INSERTS */ 00231401 * 4 MTLEN PTR(8), /* LENGTH OF INSERT(N). MAXIMUM LENGTH 00231501 * IS 127. */ 00231601 * 5 MTHIGHL BIT(1),/* ON IF TRANSLATE FIRST ONE TO FOUR 00231701 * BYTES OF INSERT(N) FROM HEX TO CHARACTER 00231801 * (IGNORE REST). SEE MTHEXSW. */ 00231901 * 4 MTADDR PTR(24); /* ADDRESS OF INSERT(N). INSERTS FOR 00232001 * SECOND LEVEL MESSAGE MUST BE FIRST IF 00232101 * ISSUING PUTLINE OR WTP. */ 00232201 *%GOTO MTSKIP3; /* DCLS FOR 4 INSERTS, NO ARRAY, FOLLOW */ 00232301 *%MTSKIP2:; 00232401 * 3 L1 PTR (8), /* LENGTH OF INSERT 1. MAXIMUM 00232501 * LENGTH IS 127. */ 00232601 * 4 HIGHL1 BIT (1), /* ON IF TRANSLATE FIRST 00232701 * 4 BYTES OF INSERT 00232801 * FROM HEX TO CHARACTER 00232901 * (IGNORE REST). SEE MTHEXSW. */ 00233001 * 3 VAR1 PTR (24), /* ADDRESS OF INSERT1 00233101 * -NOTE- INSERTS FOR 00233201 * SECOND LEVEL MSG MUST 00233301 * BE FIRST IF PUTLINE OR WTP */ 00233401 * 3 L2 PTR (8),/* LEN OF INSERT2 */ 00233501 * 4 HIGHL2 BIT (1), /* BIT FOR INSERT2 */ 00233601 * 3 VAR2 PTR (24),/* ADDR OF INSERT2 */ 00233701 * 3 L3 PTR (8), /* LEN OF INSERT3 */ 00233801 * 4 HIGHL3 BIT (1), /* BIT FOR INSERT3 */ 00233901 * 3 VAR3 PTR (24), /* ADDR OF INSERT3 */ 00234001 * 3 L4 PTR (8), /* LEN OF INSERT4 */ 00234101 * 4 HIGHL4 BIT (1), /* BIT FOR INSERT4 */ 00234201 * 3 VAR4 PTR (24), /* ADDR OF INSERT4 */ 00234301 * 2 MSGRTN PTR (31);/* MESSAGE ROUTINE ADDRESS - NOT USED 00234401 * BY IKJEFF02 */ 00234501 *%MTSKIP3:; 00234601 * 00234701 */********************************************************************/ 00234801 */* IKJEFFMT - FORMAT OF REPLY FROM TSO USER */ 00234901 */* NOTE: */ 00235001 */* PARSE IS A BETTER INTERFACE TO USE FOR @Z40GQKU*/ 00235101 */* PROMPTING RATHER THAN THIS IKJEFF02 PUTGET @Z40GQKU*/ 00235201 */* INTERFACE. (IKJIDENT OR IKJKEYWORD/IKJNAME @Z40GQKU*/ 00235301 */* MACROS CAN BE USED TO DESCRIBE THE SYNTAX OF @Z40GQKU*/ 00235401 */* THE REQUIRED REPLY, AND THEN PARSE WILL DO @Z40GQKU*/ 00235501 */* ALL PROMPTING FOR INVALID REPLIES AND WILL @Z40GQKU*/ 00235601 */* ISSUE A MESSAGE IF IT IS UNABLE TO PROMPT. @Z40GQKU*/ 00235701 */* SEE MICROFICHE MODULE IKJEFF13 FOR AN EXAMPLE@Z40GQKU*/ 00235801 */* OF PROMPTING USING PARSE.) @Z40GQKU*/ 00235901 */********************************************************************/ 00236001 * DCL 1 RET BDY(WORD) BASED(RETMSG), /* MESSAGE REPLY BUFFER. 00236101 * IKJEFF02 OBTAINS THE BUFFER IN SUBPOOL 0 00236201 * AND THE CALLER MAY FREE THIS BUFFER. */ 00236301 * 2 RETSIZE FIXED(15), /* BUFFER SIZE, INCLUDING THESE TWO 00236401 * BYTES */ 00236501 * 2 RETCHAR CHAR(999); /* REPLY TEXT FROM PUTGET. @Z40GQKU 00236601 * IKJEFF02 CONVERTS REPLY TO UPPER CASE. */ 00236701 * 00236801 */********************************************************************/ 00236901 */* IKJEFFMT - CPPL AND ECB POINTED TO BY MESSAGE TABLE */ 00237001 */********************************************************************/ 00237101 * DCL MSGTMCT BASED (TMCTPTR); /* TMP'S CPPL CONTROL BLOCK */ 00237201 * DCL MSGECB BASED (ECBPTR); /* ECB FOR PUTLINE/PUTGET */ 00237301 */********************************************************************/ 00237401 */* END OF IKJEFFMT MAPPING MACRO */ 00237501 */********************************************************************/ 00237601