DCL SPCPTR .ARG1 INIT(POINTER); DCL DD POINTER CHAR(16) BDRY(16); DCL PTR .POINTER DEF(POINTER) POS( 1); DCL DD PTR-TYPE CHAR(8) DEF(POINTER) POS( 1); DCL DD PTR-ADDRESS CHAR(8) DEF(POINTER) POS( 9); DCL DD PTR-SEGMENT CHAR(5) DEF(POINTER) POS( 9); /* REDEF */ DCL DD PTR-OFFSET CHAR(3) DEF(POINTER) POS(14); DCL OL MIMAKPTR (.ARG1) ARG; DCL SYSPTR .MIMAKPTR; 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 SPCPTR .PARM1 PARM; DCL DD PARM-PROGRAM CHAR(10) BAS(.PARM1); DCL OL PARAMETERS(.PARM1) EXT PARM MIN(1); DCL SPCPTR .EPA-HEADER; DCL DD EPA-HEADER CHAR(256) BAS(.EPA-HEADER); DCL DD EPA-PGM-HEADER-ADDR CHAR(8) DEF(EPA-HEADER) POS(81); DCL SPCPTR .PROGRAM-HEADER; DCL DD PROGRAM-HEADER CHAR(256) BAS(.PROGRAM-HEADER); DCL DD PGM-VERSION-TBL-ADDR CHAR(8) DEF(PROGRAM-HEADER) POS( 9); DCL DD PGM-WRITABLE-HDR-ADDR CHAR(8) DEF(PROGRAM-HEADER) POS(129); DCL SPCPTR .PGM-VERSION-TBL; DCL DD PGM-VERSION-TBL CHAR(48) BAS(.PGM-VERSION-TBL); DCL DD PVT-PATCH-INFO CHAR(7) DEF(PGM-VERSION-TBL) POS(41); DCL SPCPTR .HIST-LOG; DCL DD HIST-LOG CHAR(256) BAS(.HIST-LOG); DCL DD HIST-SIZE BIN(4) DEF(HIST-LOG) POS( 1); DCL DD HIST-MAX BIN(4) DEF(HIST-LOG) POS( 5); DCL DD HIST-COUNTS BIN(2) DEF(HIST-LOG) POS( 9); DCL DD HIST-ENTRY(15) CHAR(16) DEF(HIST-LOG) POS(17); DCL DD ENTRY-NBR BIN(4); DCL DD CUR-ENTRY CHAR(16); DCL DD CUR-ENTRY-OP-CODE CHAR(1) DEF(CUR-ENTRY) POS( 1); DCL DD CUR-ENTRY-NESTING CHAR(1) DEF(CUR-ENTRY) POS( 2); DCL DD CUR-ENTRY-YMDMHS CHAR(6) DEF(CUR-ENTRY) POS( 3); DCL DD CUR-ENTRY-VRM CHAR(2) DEF(CUR-ENTRY) POS( 9); DCL DD CUR-ENTRY-STATUS CHAR(1) DEF(CUR-ENTRY) POS(11); DCL DD CUR-ENTRY-DATA CHAR(5) DEF(CUR-ENTRY) POS(12); ENTRY * (PARAMETERS) EXT; CPYBLA RESOLVE-TYPE, X'0201'; CPYBLAP RESOLVE-NAME, "MIMAKPTR", " "; RSLVSP .MIMAKPTR, RESOLVE, *, *; GET-PROGRAM: CPYBLAP RESOLVE-NAME, PARM-PROGRAM, " "; RSLVSP .POINTER, RESOLVE, *, *; GET-EPA-HEADER: CPYBRAP PTR-OFFSET, X'20', X'00'; CALLX .MIMAKPTR, MIMAKPTR, *; CPYBWP .EPA-HEADER, .POINTER; GET-PROGRAM-HEADER: CPYBLA PTR-ADDRESS, EPA-PGM-HEADER-ADDR; CALLX .MIMAKPTR, MIMAKPTR, *; CPYBWP .PROGRAM-HEADER, .POINTER; RESET-PATCH-INFO: CPYBLA PTR-ADDRESS, PGM-VERSION-TBL-ADDR; CALLX .MIMAKPTR, MIMAKPTR, *; CPYBWP .PGM-VERSION-TBL, .POINTER; CPYBREP PVT-PATCH-INFO, X'00'; RESET-HISTORY-LOG: CPYBLA PTR-ADDRESS, PGM-WRITABLE-HDR-ADDR; ADDLC(S) PTR-OFFSET, X'000080'; /* OFFSET TO HIST LOG */ CALLX .MIMAKPTR, MIMAKPTR, *; CPYBWP .HIST-LOG, .POINTER; CPYNV HIST-COUNTS, 1; CPYNV ENTRY-NBR, 1; CPYBLA CUR-ENTRY, HIST-ENTRY(ENTRY-NBR); CPYBLA CUR-ENTRY-OP-CODE, X'01'; /* CREATE */ CPYBLA CUR-ENTRY-NESTING, X'01'; /* INITIAL */ CPYBLA CUR-ENTRY-STATUS , X'00'; /* OK */ CPYBREP CUR-ENTRY-DATA , X'00'; /* NONE */ CPYBLA HIST-ENTRY(ENTRY-NBR), CUR-ENTRY; NEXT-ENTRY: ADDN(S) ENTRY-NBR, 1; CPYBREP HIST-ENTRY(ENTRY-NBR), X'00'; CMPNV(B) ENTRY-NBR, HIST-MAX/LO(NEXT-ENTRY); RTX *;