DCL SPCPTR .P1 PARM; DCL DD SAVE-FILE CHAR(10) BAS(.P1); DCL OL PARMS(.P1) PARM EXT MIN(1); 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 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 ENTRIES 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); /*******************************************************************/ ENTRY * (PARMS) EXT; 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: 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); POINT-TO-DUMP-CATALOG: ADDSPP .SPCPTR, .DESCR, H'1000'; CMPBLA(B) DUMP-TYPE, X'19DB'/NEQ(DONE); CPYNV(B) ENTRIES, DUMP-NBR-ENTRIES/ZER(DONE); NEXT-DUMP-DESCRIPTOR: MULT DESCR-SIZE, DESCR-UNITS, 512; ADDSPP .DESCR, .DESCR, DESCR-SIZE; CMPBLA(B) DESCR-FFFFFFFF, X'FFFFFFFF'/NEQ(DONE); POINT-TO-BINARY-OBJECT: ADDSPP .SPCPTR, .DESCR, H'1000'; /* 'STORAGE' NOW CONTAINS THE OBJECT */ BRK "1"; SUBN(SB) ENTRIES, 1/POS(NEXT-DUMP-DESCRIPTOR); DONE: RTX *;