* 00010002 * % GOTO MSGL1; /* 00020002 MACRO 00050002 IGGMSG 00100002 .* /* START OF SPECIFICATIONS **** 00100402 .* 00100802 .*01 MODULE-NAME = IGGMSG 00100902 .* 00101502 .*01 COPYRIGHT = NONE 00101902 .* 00105102 .*01 STATUS = OS/VS2 RELEASE 2, LEVEL 0 00107102 .* 00109102 .*01 CHANGE-ACTIVITY = NONE 00109502 .* 00109902 .*01 DESCRIPTIVE-NAME = MESSAGE CSECT MAPPING 00110302 .* 00110502 .*01 FUNCTION = MAP S/P/D MESSAGE CSECTS 00110902 .* 00111202 .*01 NOTES = NONE 00111602 .* 00111702 .*01 MODULE-TYPE = MACRO 00113702 .*02 PROCESSOR = ASSEMBLER-370R PLS 00113902 .* 00116802 .*02 EXTERNAL-REFERENCES = N/A 00116902 .* 00117002 .*01 INNER-MACROS = NONE 00119602 .* 00119802 .*01 SYSTEM-MACROS = NONE 00120002 .* 00120802 .* 00121002 .**** END OF SPECIFICATIONS ***/ 00121202 *% MSGL1:; 00121402 * /* MACCOMP Y-2 SC1D0/SJD48 */ 00121602 * /* MACSTAT Y-2 73040/021160 */ 00121802 */* */ 00122002 */* **************************************************************** */ 00123202 */* */ 00126402 */* ****** MESSAGE CSECT ****** */ 00129602 */* */ 00132802 */* OS/VS2 RELEASE 2 */ 00136002 */* */ 00139202 */* METHOD OF ACCESS */ 00142402 */* PL/S - RFY MSGINDEX BASED ON A PTR */ 00145602 */* - DECLARE 'MSGNO' AS NUMBER OF DESIRED MESSAGE */ 00147602 */* OR VARIABLE CONTAINING MESSAGE NUMBER */ 00148002 */* BAL - FOUR DSECTS ARE PRODUCED. USING ON A DSECT NAME */ 00148802 */* GIVES ADDRESSABILITY FOR ALL SYMBOLS WITHIN THAT */ 00152002 */* DSECT. THE DSECT NAMES AND SYMBOLS WITHIN EACH ARE: */ 00155202 */* MSGINDEX - MSGINDLN, MSGINDOF */ 00158402 */* MSGENTRY - MSGOFF, MSGLNG, MSGOFF1, MSGOFF2, */ 00161602 */* MSGOFF3, MSGOFF4, MSGOFF5 */ 00164802 */* MSGTXTD - MSGTXT */ 00168002 */* MSGTXTFD - MSGLNGF, MSGTXTF */ 00171202 */* */ 00174402 */* FUNCTION */ 00177602 */* THE MESSAGE CSECT CONTAINS MESSAGES FROM SAM/PAM/DAM CODE. */ 00180802 */* THIS DSECT IS USED TO MAP THOSE MESSAGES. */ 00184002 */* */ 00187202 */* **************************************************************** */ 00190402 * 00193602 *% GOTO MSGL2; /* 00196802 * THIS DSECT IS TO COVER THE MESSAGE CSECT. THE MESSAGE 00200002 * CSECT IS DIVIDED INTO TWO PARTS 00250002 * 00300002 * THE FIRST IS THE INDEX. TO FIND THE OFFSET TO A GIVEN 00350002 * MESSAGE THE FOLLOWING SEQUENCE OF INSTRUCTIONS 00400002 * MAY BE USED. 00450002 * USING MSGINDEX,MSGBASE 00500002 * MXXX EQU MSGNO*2 00550002 * LH RWK1,MSGINDOF+MXXX 00600002 * AT THIS POINT RWK1 HAS THE OFFSET TO THE MESSAGE ENTRY 00700002 * FROM THE BEGINNING OF THE CSECT. 00750002 * 00800002 MSGINDEX DSECT 00850002 MSGINDLN DS H LENGTH OF INDEX 00900002 MSGINDOF DS H OFFSET TO MESSAGE ENTRY 00950002 * 01000002 * ONCE THE MESSAGE ENTRY IS FOUND THE MESSAGE ITSELF IS FOUND 01050002 * BY ADDING THE MSGOFF FIELD TO THE BEGINNING OF THE ENTRY. 01100002 * THE OFFSET TO ANY VARIABLE FIELDS THAT MUST BE FILLED IN ARE 01150002 * CONTAINED IN MSGOFF1 THROUGH MSGOFF5. MSGLNG CONTAINS THE 01200002 * LENGTH OF THIS PARTICULAR MESSAGE MINUS ONE. THE LENGTH IS 01250002 * ONE LESS TO ALLOW IT TO BE USED IN AN EXECUTE OF A MOVE. 01300002 * 01350002 MSGENTRY DSECT 01400002 MSGOFF DS FL1 OFFSET TO MESSAGE TEXT FROM 01450002 * BEGINNING OF ENTRY 01500002 MSGLNG DS FL1 LENGTH OF MESSAGE TEXT - 1 01550002 MSGOFF1 DS FL1 OFFSET TO FIRST VARIABLE 01600002 MSGOFF2 DS FL1 OFFSET TO SECOND VARIABLE 01650002 MSGOFF3 DS FL1 OFFSET TO THIRD VARIABLE 01700002 MSGOFF4 DS FL1 OFFSET TO FOURTH VARIABLE 01750002 MSGOFF5 DS FL1 OFFSET TO FIFTH VARIABLE 01800002 MSGOFF6 DS FL1 OFFSET TO SIXTH VARIABLE 01810002 MSGOFF7 DS FL1 OFFSET TO SEVENTH VARIABLE 01820002 * 01850002 * THIS IS USED TO CREATE A LABEL THAT MAY BE USED IN THE 01900002 * OBJECT OF AN EXECUTE INSTRUCTION. 01950002 * 02000002 MSGTXTD DSECT 02050002 MSGTXT DS CL1 MESSAGE TEXT 02100002 * 02110002 * THIS SECTION OF THE DSECT DESCRIBES THE NO VARIABLE MESSAGES 02120002 * SUCH AS THOSE USED IN SYNADAF.. 02130002 * 02140002 MSGTXTFD DSECT 02142002 MSGLNGF DS AL1 LENGTH OF MESSAGE TEXT 02144002 MSGTXTF DS CL1 MESSAGE TEXT 02146002 MEND , */ 02150002 * % MSGL2:; 02200002 * /* *************************************************************** */ 02250002 * /* MESSAGE INDEX SECTION */ 02300002 * /* *************************************************************** */ 02450002 * 02500002 * DECLARE 02550002 * 1 MSGINDEX BASED BDY(WORD), 02600002 * 2 MSGINDLN PTR (15), /* LENGTH OF INDEX SECTION */ 02650002 * 2 MSGINDOF(*) PTR (15), /* OFFSET TO MESSAGE ENTRY */ 02700002 * 02750002 * /* *************************************************************** */ 02800002 * /* MESSAGE ENTRY SECTION */ 02850002 * /* *************************************************************** */ 02900002 * 02950002 * 1 MSGENTRY BASED(ADDR(MSGINDEX) + MSGINDOF(MSGNO+1)) BDY(HWORD), 03000002 * 2 MSGOFF PTR (8), /*OFFSET TO MESSAGE TEXT */ 03050002 * 2 MSGLNG PTR (8), /*LENGTH OF MESSAGE TEXT - 1 */ 03100002 * 2 MSGOFF1 PTR (8), /*OFFSET TO FIRST VARIABLE */ 03150002 * 2 MSGOFF2 PTR (8), /*OFFSET TO SECOND VARIABLE */ 03250002 * 2 MSGOFF3 PTR (8), /*OFFSET TO THIRD VARIABLE */ 03300002 * 2 MSGOFF4 PTR (8), /*OFFSET TO FOURTH VARIABLE */ 03350002 * 2 MSGOFF5 PTR (8), /*OFFSET TO FIFTH VARIABLE */ 03400002 * 2 MSGOFF6 PTR (8), /*OFFSET TO SIXTH VARIABLE */ 03410002 * 2 MSGOFF7 PTR (8), /*OFFSET TO SEVENTH VARIABLE */ 03420002 * 03450002 * /* *************************************************************** */ 03500002 * /* MESSAGE TEXT */ 03550002 * /* *************************************************************** */ 03600002 * 03650002 * 1 MSGTXTD BASED(ADDR(MSGENTRY) + MSGOFF) BDY(BYTE), 03700002 * 2 MSGTXT CHAR(*), /* MESSAGE TEXT */ 03750002 * /* *************************************************************** */ 03800002 * /* MESSAGE ENTRY NO VARIABLES */ 03850002 * /* *************************************************************** */ 03900002 * 03950002 * 1 MSGTXTFD BASED(ADDR(MSGINDEX) + MSGINDOF(MSGNO+1)) BDY(BYTE), 04000002 * 2 MSGLNGF PTR(8), /*LENGTH OF ENTRY */ 04050002 * 2 MSGTXTF CHAR(*); /*MESSAGE TEXT */ 04100002 * 04150002