DCL SPCPTR .P1 PARM; DCL DD SAVE-FILE CHAR(10) BAS(.P1); DCL SPCPTR .P2 PARM; DCL DD SAVED-OBJ CHAR(10) BAS(.P2); DCL SPCPTR .P3 PARM; DCL DD SAVED-TYPE CHAR( 4) BAS(.P3); DCL OL PARMS(.P1, .P2, .P3) PARM EXT MIN(3); DCL DD OBJECT-TYPE CHAR(2); DCL DD OBJECT-NAME CHAR(30); DCL DD RESOLVE CHAR(34); DCL DD RESOLVE-TYPE CHAR( 2) DEF(RESOLVE) POS( 1); DCL DD RESOLVE-NAME CHAR(30) DEF(RESOLVE) POS( 3); DCL DD RESOLVE-AUTH CHAR( 2) DEF(RESOLVE) POS(33) INIT(X'0000'); DCL DD SAVE-POINTER CHAR(16) BDRY(16); DCL SYSPTR .SAV-FILE DEF(SAVE-POINTER) POS(1); DCL SPCPTR .MAKPTR INIT(MAKPTR); DCL DD MAKPTR CHAR(16) BDRY(16); DCL SPCPTR .SPCPTR DEF(MAKPTR) POS(1); DCL SYSPTR .SYSPTR DEF(MAKPTR) POS(1); DCL DD PTR-ADDRESS CHAR(8) DEF(MAKPTR) POS(9); DCL OL MIMAKPTR (.MAKPTR) ARG; DCL SYSPTR .MIMAKPTR; DCL DD STORAGE CHAR(16000000) BAS(.SPCPTR); DCL DD OFFSET BIN(4); DCL SPCPTR .DESCR; DCL DD DESCR-SIZE BIN(4); DCL DD DUMP-DESCRIPTOR CHAR(4096) BAS(.DESCR); DCL DD DESCR-FFFFFFFF CHAR(4) DEF(DUMP-DESCRIPTOR) POS( 1); DCL DD DESCR-DUMP-ID CHAR(10) DEF(DUMP-DESCRIPTOR) POS( 5); DCL DD DESCR-UNITS BIN(4) DEF(DUMP-DESCRIPTOR) POS(205); DCL DD CUR-ENTRY BIN(4); DCL DD CATALOG CHAR(16000000) BAS(.SPCPTR); DCL DD DUMP-TYPE CHAR(2) DEF(CATALOG) POS( 35); DCL DD DUMP-CONTEXT CHAR(30) DEF(CATALOG) POS(259); DCL DD DUMP-CONTEXT-TYPE CHAR(2) DEF(CATALOG) POS(289); DCL DD DUMP-TIMESTAMP CHAR(8) DEF(CATALOG) POS(291); DCL DD DUMP-SERIAL-NBR CHAR(7) DEF(CATALOG) POS(310); DCL DD DUMP-NBR-ENTRIES BIN(4) DEF(CATALOG) POS(329); DCL DD DUMP-ENTRY (512) CHAR(151) DEF(CATALOG) POS(337) AEO(151); DCL DD DUMP-OBJ-NAME(512) CHAR(30) DEF(CATALOG) POS(337) AEO(151); DCL DD DUMP-OBJ-TYPE(512) CHAR(2) DEF(CATALOG) POS(367) AEO(151); DCL DD DUMP-OBJ-USER(512) CHAR(30) DEF(CATALOG) POS(369) AEO(151); DCL DD DUMP-OBJ-MORE(512) BIN(4) DEF(CATALOG) POS(408) AEO(151); DCL DD DUMP-OBJ-INFO(512) BIN(4) DEF(CATALOG) POS(412) AEO(151); DCL SPCPTR .HEADER; /*******************************************************************/ ENTRY * (PARMS) EXT; CPYBLAP OBJECT-NAME, SAVED-OBJ, " "; CVTCH OBJECT-TYPE, SAVED-TYPE; RESOLVE-TO-HELPER-PROGRAM: CPYBLA RESOLVE-TYPE, X'0201'; CPYBLAP RESOLVE-NAME, "MIMAKPTR", " "; RSLVSP .MIMAKPTR, RESOLVE, *, *; RESOLVE-TO-SAVE-FILE: CPYBLA RESOLVE-TYPE, X'1901'; CPYBLAP RESOLVE-NAME, SAVE-FILE, " "; RSLVSP .SAV-FILE, RESOLVE, *, *; GET-ASSOCIATED-SPACE: CPYBWP .SYSPTR, .SAV-FILE; CALLX .MIMAKPTR, MIMAKPTR, *; SETSPPFP .SPCPTR, .SAV-FILE; GET-DUMP-SPACE: ADDSPP .SPCPTR, .SPCPTR, H'0280'; /* DUMP SPACE */ CPYBLAP PTR-ADDRESS, STORAGE(9:5), X'00'; CALLX .MIMAKPTR, MIMAKPTR, *; GET-DATA-ADDRESS: ADDSPP .SPCPTR, .SPCPTR, H'1000'; CPYBLA PTR-ADDRESS, STORAGE(1:8); CALLX .MIMAKPTR, MIMAKPTR, *; POINT-TO-SECOND-PAGE: ADDSPP .SPCPTR, .SPCPTR, H'1000'; POINT-TO-DUMP-DESCRIPTOR: ADDSPP .DESCR, .SPCPTR, H'1000'; CMPBLA(B) DESCR-DUMP-ID, "QSRDSSPC.1"/NEQ(DONE); MULT DESCR-SIZE, DESCR-UNITS, 512; POINT-TO-DUMP-CATALOG: ADDSPP .SPCPTR, .DESCR, H'1000'; CMPBLA(B) DUMP-TYPE, X'19DB'/NEQ(DONE); CPYNV CUR-ENTRY, 0; FIND-OBJ: ADDN(S) CUR-ENTRY, 1; CMPNV(B) CUR-ENTRY, DUMP-NBR-ENTRIES/HI(DONE); CMPBLA(B) DUMP-OBJ-NAME(CUR-ENTRY), OBJECT-NAME/NEQ(FIND-OBJ); CHECK-TYPE: CMPBLA(B) DUMP-OBJ-TYPE(CUR-ENTRY), OBJECT-TYPE/NEQ(FIND-OBJ); POINT-TO-OBJ-INFORMATION: ADDSPP .HEADER, .SPCPTR, H'0100'; CMPNV(B) DUMP-OBJ-INFO(CUR-ENTRY), 0/EQ(=+4); HAVE-OBJECT-INFO: ADDSPP .INFO, .HEADER, DUMP-OBJ-INFO(CUR-ENTRY); CPYNV SIZE, 214; CALLI SHOW-INFO, *, .SHOW-INFO;: CMPNV(B) DUMP-OBJ-MORE(CUR-ENTRY), 0/EQ(=+4); HAVE-OBJECT-MORE-INFO: ADDSPP .INFO, .HEADER, DUMP-OBJ-MORE(CUR-ENTRY); CPYNV SIZE, 2000; CALLI SHOW-INFO, *, .SHOW-INFO;: DONE: RTX *; DCL SPCPTR .INFO; DCL DD INFO CHAR(4096) BAS(.INFO); DCL DD CHAR CHAR(1); DCL DD WHERE BIN(2); DCL DD SIZE BIN(2); DCL DD FROM BIN(2); DCL DD TO BIN(2); DCL INSPTR .SHOW-INFO; ENTRY SHOW-INFO INT; CPYBREP MSG-TEXT, " "; CPYNV FROM, 0; CPYNV TO, 0; SHOW-NEXT-CHAR: CMPNV(B) FROM, SIZE/NLO(SHOW-IT); ADDN(S) FROM, 1; CPYBLA CHAR, INFO(FROM:1); VERIFY(B) WHERE, CHAR, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" /NZER(SHOW-NEXT-CHAR); CMPNV(B) TO, 70/NLO(SHOW-IT); ADDN(S) TO, 1; CPYBLA MSG-TEXT(TO:1), CHAR; B SHOW-NEXT-CHAR; SHOW-IT: CALLI SHOW-MESSAGE, *, .SHOW-MESSAGE; B .SHOW-INFO; %INCLUDE SHOWMSG