DCL DD L_EXT_ATTR CHAR( 1) DEF(L_RECEIVER) POS(81);
DCL DD ᑍ CHAR( 7) DEF(L_RECEIVER) POS(82);
DCL DD L_TIMESTAMP CHAR( 8) DEF(L_RECEIVER) POS(89);
DCL DD L_ENTRY CHAR(32) DEF(L_RECEIVER) POS(97);
/ᑍ Individual object entry layout ᑍ/
DCL DD OBJ_ENTRY CHAR(32) BAS(OBJ_ENTRY@);
DCL DD OBJ_INFO_X CHAR( 2) DEF(OBJ_ENTRY) POS( 1);
DCL DD OBJ_TYPE_X CHAR( 1) DEF(OBJ_INFO_X) POS( 1);
DCL DD OBJ_STYPE_X CHAR( 1) DEF(OBJ_INFO_X) POS( 2);
DCL DD OBJ_NAME CHAR(3) DEF(OBJ_ENTRY) POS( 3);
/ᑍ Define basing pointers: ᑍ/
DCL SPCPTR L_RECEIVER@;
DCL SPCPTR OBJ_ENTRY@;
/ᑍ Define various working variables ᑍ/
DCL DD SIZE BIN( 4); /ᑍ number of objects materialized ᑍ/
DCL DD NUM_DONE BIN( 4) /ᑍ number of objects processed ᑍ/
AUTO INIT();
/ᑍ Define needed parameters for QMHSNDM API ᑍ/
DCL DD MSG_ID CHAR (7) INIT(" ");
DCL SPCPTR MSG_ID@ INIT(MSG_ID);
DCL DD MSG_FILE CHAR(2) INIT(" ");
DCL SPCPTR MSG_FILE@ INIT(MSG_FILE);
DCL DD MSG_TEXT CHAR(57);
DCL DD ᑍ CHAR( 8) DEF(MSG_TEXT) POS( 1)
INIT("OBJECT: ");
DCL DD OBJ_NAME_T CHAR(3) DEF(MSG_TEXT) POS( 9);
DCL DD ᑍ CHAR(15) DEF(MSG_TEXT) POS(39)
INIT(" TYPE/SUBTYPE: ");
DCL DD OBJ_INFO_C CHAR( 4) DEF(MSG_TEXT) POS(54);
DCL DD OBJ_TYPE_C CHAR( 2) DEF(OBJ_INFO_C) POS( 1);
DCL DD OBJ_STYPE_C CHAR( 2) DEF(OBJ_INFO_C) POS( 3);
DCL SPCPTR MSG_TEXT@ INIT(MSG_TEXT);
DCL DD MSG_SIZE BIN( 4) INIT(57);
DCL SPCPTR MSG_SIZE@ INIT(MSG_SIZE);
DCL DD MSG_TYPE CHAR(1) INIT("ᑍINFO ");
DCL SPCPTR MSG_TYPE@ INIT(MSG_TYPE);
DCL DD MSG_QS CHAR(2) INIT("ᑍREQUESTER ");
DCL SPCPTR MSG_QS@ INIT(MSG_QS);
DCL DD MSG_QSN BIN( 4) INIT(1);
DCL SPCPTR MSG_QSN@ INIT(MSG_QSN);
DCL DD REPLY_Q CHAR(2) INIT(" ");
DCL SPCPTR REPLY_Q@ INIT(REPLY_Q);
DCL DD MSG_KEY CHAR( 4);
DCL SPCPTR MSG_KEY@ INIT(MSG_KEY);
DCL DD ERR_COD BIN( 4) INIT();
DCL SPCPTR ERR_COD@ INIT(ERR_COD);
DCL OL QMHSNDMOL (MSG_ID@, MSG_FILE@, MSG_TEXT@, MSG_SIZE@,
MSG_TYPE@, MSG_QS@, MSG_QSN@, REPLY_Q@,
MSG_KEY@, ERR_COD@) ARG;
/ᑍ Start the instruction stream ᑍ/
7-34 System API Programming V4R1