DCL DD SPCPTRS CHAR(48) BDRY(16); DCL SPCPTR .WCBSPC DEF(SPCPTRS) POS( 1); DCL SPCPTR .WCB-ROOT DEF(SPCPTRS) POS(17); DCL SPCPTR .WCB-ENTRY DEF(SPCPTRS) POS(33); DCL DD OWN-PCO CHAR(512) BASPCO; DCL SYSPTR @WCBT00 DEF(OWN-PCO) POS(433); DCL DD WCB-ROOT CHAR(2048) BAS(.WCB-ROOT); DCL SYSPTR .WCB-TABLES(30) DEF(WCB-ROOT) POS(577); DCL DD THE-TABLE BIN(4); DCL DD THE-OFFSET BIN(4); DCL DD WCBTBL-SPACE CHAR(256) BAS(.WCBSPC); DCL DD WCBTBL-SIZE BIN(4) DEF(WCBTBL-SPACE) POS(21); DCL DD WCB-ENTRY CHAR(1024) BAS(.WCB-ENTRY); DCL DD WCB-DEVICE CHAR(10) DEF(WCB-ENTRY) POS( 1); DCL DD WCB-USER CHAR(10) DEF(WCB-ENTRY) POS( 11); DCL DD WCB-NUMBER CHAR(6) DEF(WCB-ENTRY) POS( 21); DCL SYSPTR .WCB-PCS DEF(WCB-ENTRY) POS( 33); DCL DD WCB-TYPE CHAR(1) DEF(WCB-ENTRY) POS( 97); DCL DD WCB-STATUS CHAR(1) DEF(WCB-ENTRY) POS( 98); DCL DD WCB-GROUP CHAR(1) DEF(WCB-ENTRY) POS(100); DCL DD WCB-START-TIME CHAR(8) DEF(WCB-ENTRY) POS(345); DCL SPCPTR .WCB-PCO; DCL DD WCB-PCO CHAR(1024) BAS(.WCB-PCO); DCL SYSPTR @DMCQ DEF(WCB-PCO) POS(33); ENTRY * EXT; GET-WCB-ROOT: SETSPPFP .WCB-ROOT, @WCBT00; SEARCH-WORK-CONTROL-TABLES: CPYNV LAST-ENTRY-NBR, 0; CPYNV THE-TABLE, 0; SEARCH-NEXT-TABLE: ADDN(S) THE-TABLE, 1; CMPNV(B) THE-TABLE, 30 /HI(DONE-WITH-TABLES); CMPPTRT(B) .WCB-TABLES(THE-TABLE), */EQ(DONE-WITH-TABLES); SETSPPFP .WCBSPC, .WCB-TABLES(THE-TABLE); PREPARE-TO-SEARCH-WCB-TABLE: SETSPPFP .WCB-ENTRY, .WCBSPC; CPYNV(B) THE-OFFSET, H'0300'/POS(=+2); NEXT-WCBTBL-ENTRY: ADDN(S) THE-OFFSET, H'0400';: CMPNV(B) THE-OFFSET, WCBTBL-SIZE/NLO(SEARCH-NEXT-TABLE); SETSPPO .WCB-ENTRY, THE-OFFSET; CHECK-WCBTBL-ENTRY: CMPBLA(B) WCB-STATUS, X'20'/NEQ (NEXT-WCBTBL-ENTRY); /*ACTIVE */ HAVE-ACTIVE-JOB-ENTRY: SETSPPFP .WCB-PCO, .WCB-PCS; CALLI PROCESS-JOB-ENTRY, *, .PROCESS-JOB-ENTRY; B NEXT-WCBTBL-ENTRY; DONE-WITH-TABLES: BRK "1"; /* BREAK POINT TO LOOK AT ENTRIES */ RTX *; /********************************************************************/ DCL DD CUR-ENTRY-NBR BIN(4); DCL DD LAST-ENTRY-NBR BIN(4); DCL DD ENTRIES(100000) CHAR(64) BDRY(16); DCL DD THE-ENTRY CHAR(64) BDRY(16); DCL DD ENTRY-DEVICE CHAR(10) DEF(THE-ENTRY) POS( 1); DCL DD ENTRY-USER CHAR(10) DEF(THE-ENTRY) POS(11); DCL DD ENTRY-NUMBER CHAR(6) DEF(THE-ENTRY) POS(21); DCL DD ENTRY-TYPE CHAR(1) DEF(THE-ENTRY) POS(27); DCL DD ENTRY-FILE CHAR(10) DEF(THE-ENTRY) POS(28); DCL DD ENTRY-LIBRARY CHAR(10) DEF(THE-ENTRY) POS(38); DCL DD ENTRY-OPERATION CHAR(1) DEF(THE-ENTRY) POS(48); DCL DD ENTRY-COUNT BIN(4) DEF(THE-ENTRY) POS(49); DCL DD ENTRY-MEMBER CHAR(10) DEF(THE-ENTRY) POS(53); DCL SPCPTR .DMCQ; DCL DD DMCQ CHAR(4096) BAS(.DMCQ); DCL SYSPTR DMCQ-PROCESS-ACCESS-GROUP DEF(DMCQ) POS( 1); DCL SYSPTR DMCQ-PROCESS-CONTROL-SPACE DEF(DMCQ) POS( 17); DCL SPCPTR * DEF(DMCQ) POS( 33); DCL SPCPTR DMCQ-DM-ENTRY-POINT-TABLE DEF(DMCQ) POS( 49); DCL DD DMCQ-SIZE-OF-DMCQ BIN(4) DEF(DMCQ) POS(125); DCL DD DMCQ-FIRST-FREE-ENTRY BIN(4) DEF(DMCQ) POS(129); DCL DD DMCQ-LAST-FREE-ENTRY BIN(4) DEF(DMCQ) POS(133); DCL DD *(4) BIN(4) DEF(DMCQ) POS(137); DCL DD DMCQ-FIRST-SHARED-ODP BIN(4) DEF(DMCQ) POS(153); DCL DD DMCQ-LAST-SHARED-ODP BIN(4) DEF(DMCQ) POS(157); DCL DD DMCQ-FIRST-NON-SHARED-ODP BIN(4) DEF(DMCQ) POS(161); DCL DD DMCQ-LAST-NON-SHARED-ODP BIN(4) DEF(DMCQ) POS(165); DCL DD DMCQ-ENTRY CHAR(96) BAS(.WALK); DCL DD DMCQ-NEXT-ENTRY-OFFSET BIN(4) DEF(DMCQ-ENTRY) POS( 1); DCL DD DMCQ-PREV-ENTRY-OFFSET BIN(4) DEF(DMCQ-ENTRY) POS( 5); DCL DD * CHAR(8) DEF(DMCQ-ENTRY) POS( 9); DCL SPCPTR .DMCQ-WORK-SPACE DEF(DMCQ-ENTRY) POS(17); DCL SPCPTR * DEF(DMCQ-ENTRY) POS(33); DCL SYSPTR .DMCQ-ODP DEF(DMCQ-ENTRY) POS(49); DCL DD DMCQ-NEXT-X BIN(4) DEF(DMCQ-ENTRY) POS(65); DCL DD DMCQ-PREV-X BIN(4) DEF(DMCQ-ENTRY) POS(69); DCL DD DMCQ-NEXT-Y BIN(4) DEF(DMCQ-ENTRY) POS(73); DCL DD DMCQ-PREV-Y BIN(4) DEF(DMCQ-ENTRY) POS(77); DCL DD DMCQ-FLAGS CHAR(4) DEF(DMCQ-ENTRY) POS(81); DCL DD * CHAR(12) DEF(DMCQ-ENTRY) POS(85); DCL DD CHAIN BIN(4); DCL MSPPTR .WALK; DCL INSPTR .PROCESS-JOB-ENTRY; ENTRY PROCESS-JOB-ENTRY INT; CPYBLA ENTRY-DEVICE, WCB-DEVICE; CPYBLA ENTRY-USER, WCB-USER; CPYBLA ENTRY-NUMBER, WCB-NUMBER; CPYBLA ENTRY-TYPE, WCB-TYPE; GET-ODP: SETSPPFP .WALK, @DMCQ; /* TO DMCQ ROOT */ CPYNV CHAIN, 144; /* ODP BASE */ GET-ODP-CHAIN: ADDN(S) CHAIN, 8; /* NEXT CHAIN */ CMPNV(B) CHAIN, 160/HI(DONE-WITH-ODPS); SETSPPO .WALK, CHAIN; WALK-ODP-CHAIN: CMPNV(B) DMCQ-NEXT-ENTRY-OFFSET, -1/EQ(GET-ODP-CHAIN); SETSPPO .WALK, DMCQ-NEXT-ENTRY-OFFSET; SETSPPFP .ODP, .DMCQ-ODP; /* GET SPACE POINTER TO ODP */ CALLI PROCESS-THIS-ODP, *, .PROCESS-THIS-ODP; B WALK-ODP-CHAIN; DONE-WITH-ODPS: B .PROCESS-JOB-ENTRY; /********************************************************************/ DCL SPCPTR .ODP; DCL DD ODP CHAR(1024) BAS(.ODP); DCL DD ODP-STATUS CHAR(4) DEF(ODP) POS( 1); DCL DD ODP-DEV-LENGTH BIN(4) DEF(ODP) POS( 5); DCL DD ODP-OPEN-SIZE BIN(4) DEF(ODP) POS( 9); DCL DD ODP.OPEN-FEEDBACK BIN(4) DEF(ODP) POS( 13); DCL DD ODP.DEV-NAMELIST BIN(4) DEF(ODP) POS( 17); DCL DD ODP.IO-FEEDBACK BIN(4) DEF(ODP) POS( 21); DCL DD ODP.LOCK-LIST BIN(4) DEF(ODP) POS( 25); DCL DD ODP.SPOOL-OUTPUT BIN(4) DEF(ODP) POS( 29); DCL DD ODP.MBR-DESCR BIN(4) DEF(ODP) POS( 33); DCL DD ODP.CUR-IN-REC BIN(4) DEF(ODP) POS( 37); DCL DD ODP.CUR-OUT-REC BIN(4) DEF(ODP) POS( 41); DCL DD ODP.OPEN-DMCQ BIN(4) DEF(ODP) POS( 45); DCL DD ODP.OUTSTANDINGS BIN(4) DEF(ODP) POS( 49); DCL DD * CHAR(12) DEF(ODP) POS( 53); DCL SYSPTR .ODP-CURSOR DEF(ODP) POS( 65); DCL SPCPTR * DEF(ODP) POS( 81); DCL SPCPTR .ODP-CDM-ERROR DEF(ODP) POS( 97); DCL SPCPTR .ODP-INPUT-BUFFER DEF(ODP) POS(113); DCL SPCPTR .ODP-OUTPUT-BUFFER DEF(ODP) POS(129); DCL DD ODP.CDM-CLOSING BIN(2) DEF(ODP) POS(145); DCL DD ODP-DEV-NAME-IDX BIN(2) DEF(ODP) POS(147); DCL DD ODP-NBR-OF-DEVS BIN(2) DEF(ODP) POS(149); DCL DD ODP-SEQUENCE-NBR BIN(4) DEF(ODP) POS(151); DCL DD ODP-REC-LENGTH BIN(2) DEF(ODP) POS(155); DCL DD ODP-REC-LENGTH2 BIN(2) DEF(ODP) POS(157); DCL DD ODP-NBR-OF-*RDS BIN(2) DEF(ODP) POS(159); DCL DD ODP-RELEASE-NBR BIN(2) DEF(ODP) POS(161); DCL DD ODP-OPEN-POSN CHAR(1) DEF(ODP) POS(163); DCL DD ODP-OVR-REC-LEN BIN(2) DEF(ODP) POS(164); DCL DD ODP-COM-DEV-CNT BIN(2) DEF(ODP) POS(166); DCL DD ODP.INPUT-BPCA BIN(4) DEF(ODP) POS(168); DCL DD ODP.OUTPUT-BPCA BIN(4) DEF(ODP) POS(172); DCL DD * CHAR(1) DEF(ODP) POS(176); DCL SPCPTR .OPEN-FEEDBACK; DCL DD OPEN-FEEDBACK CHAR(256) BAS(.OPEN-FEEDBACK); DCL DD ODP-TYPE CHAR(2) DEF(OPEN-FEEDBACK) POS( 1); DCL DD ODP-FILE CHAR(10) DEF(OPEN-FEEDBACK) POS( 3); DCL DD ODP-LIBRARY CHAR(10) DEF(OPEN-FEEDBACK) POS( 13); DCL DD ODP-SPOOL-FILE CHAR(10) DEF(OPEN-FEEDBACK) POS( 23); DCL DD ODP-SPOOL-LIB CHAR(10) DEF(OPEN-FEEDBACK) POS( 33); DCL DD ODP-SPOOL-NBR BIN(2) DEF(OPEN-FEEDBACK) POS( 43); DCL DD ODP-MAX-RCD-SIZE BIN(2) DEF(OPEN-FEEDBACK) POS( 45); DCL DD ODP-MAX-KEY-SIZE BIN(2) DEF(OPEN-FEEDBACK) POS( 47); DCL DD ODP-MEMBER CHAR(10) DEF(OPEN-FEEDBACK) POS( 49); DCL DD * BIN(4) DEF(OPEN-FEEDBACK) POS( 59); DCL DD * BIN(4) DEF(OPEN-FEEDBACK) POS( 63); DCL DD ODP-DEVICE-TYPE BIN(4) DEF(OPEN-FEEDBACK) POS( 67); DCL DD * CHAR(3) DEF(OPEN-FEEDBACK) POS( 69); DCL DD ODP-NBR-LINES BIN(2) DEF(OPEN-FEEDBACK) POS( 72); DCL DD ODP-NBR-COLUMNS BIN(2) DEF(OPEN-FEEDBACK) POS( 74); DCL DD ODP-NBR-REC-OPEN BIN(4) DEF(OPEN-FEEDBACK) POS( 76); DCL DD ODP-ACCESS-TYPE CHAR(2) DEF(OPEN-FEEDBACK) POS( 80); DCL DD ODP-DUPL-KEY CHAR(1) DEF(OPEN-FEEDBACK) POS( 82); DCL DD ODP-SOURCE-FILE CHAR(1) DEF(OPEN-FEEDBACK) POS( 83); DCL DD * CHAR(10) DEF(OPEN-FEEDBACK) POS( 84); DCL DD * CHAR(10) DEF(OPEN-FEEDBACK) POS( 94); DCL DD ODP-VOL-LABEL BIN(2) DEF(OPEN-FEEDBACK) POS(104); DCL DD ODP-MAX-RCD-BLK BIN(2) DEF(OPEN-FEEDBACK) POS(106); DCL DD ODP-OVERFLOW-LN BIN(2) DEF(OPEN-FEEDBACK) POS(108); DCL DD ODP-BLK-RCD-INCR BIN(2) DEF(OPEN-FEEDBACK) POS(110); DCL DD * BIN(4) DEF(OPEN-FEEDBACK) POS(112); DCL DD ODP-MISC-FLAGS1 CHAR(1) DEF(OPEN-FEEDBACK) POS(116); DCL DD ODP-REQUESTER CHAR(10) DEF(OPEN-FEEDBACK) POS(117); DCL DD ODP-OPEN-FILES BIN(2) DEF(OPEN-FEEDBACK) POS(127); DCL DD * BIN(2) DEF(OPEN-FEEDBACK) POS(129); DCL DD ODP-NBR-FILES BIN(2) DEF(OPEN-FEEDBACK) POS(131); DCL DD ODP-MISC-FLAGS2 CHAR(1) DEF(OPEN-FEEDBACK) POS(133); DCL DD ODP-OPEN-ID CHAR(2) DEF(OPEN-FEEDBACK) POS(134); DCL DD ODP-MAX-FMT-SIZE BIN(2) DEF(OPEN-FEEDBACK) POS(136); DCL DD * BIN(2) DEF(OPEN-FEEDBACK) POS(138); DCL DD ODP-MISC-FLAGS3 CHAR(1) DEF(OPEN-FEEDBACK) POS(140); DCL DD * CHAR(6) DEF(OPEN-FEEDBACK) POS(141); DCL DD ODP-NBR-DEVICES BIN(2) DEF(OPEN-FEEDBACK) POS(147); DCL DD ODP-DEV-LIST... CHAR(1) DEF(OPEN-FEEDBACK) POS(149); DCL SPCPTR .IO-FEEDBACK; DCL DD IO-FEEDBACK CHAR(512) BAS(.IO-FEEDBACK); DCL DD IO-FILE-DEPNT-AREA BIN(2) DEF(IO-FEEDBACK) POS( 1); DCL DD IO-WRITE-COUNT BIN(4) DEF(IO-FEEDBACK) POS( 3); DCL DD IO-READ-COUNT BIN(4) DEF(IO-FEEDBACK) POS( 7); DCL DD IO-UPDATE-COUNT BIN(4) DEF(IO-FEEDBACK) POS(11); DCL DD IO-OTHER-COUNT BIN(4) DEF(IO-FEEDBACK) POS(15); DCL DD * CHAR(1) DEF(IO-FEEDBACK) POS(19); DCL DD IO-CUR-OPERATION CHAR(1) DEF(IO-FEEDBACK) POS(20); DCL DD IO-RECORD-FORMAT CHAR(10) DEF(IO-FEEDBACK) POS(21); DCL DD IO-DEVICE-CLASS CHAR(2) DEF(IO-FEEDBACK) POS(31); DCL DD IO-DEVICE-NAME CHAR(10) DEF(IO-FEEDBACK) POS(33); DCL DD IO-RECORD-LENGTH BIN(4) DEF(IO-FEEDBACK) POS(43); DCL DD * CHAR(80) DEF(IO-FEEDBACK) POS(47); DCL DD IO-RECORDS-IN-BLOCK BIN(2) DEF(IO-FEEDBACK) POS(127); DCL DD IO-RCD-FORMAT-LENGTH BIN(2) DEF(IO-FEEDBACK) POS(129); DCL DD * CHAR(2) DEF(IO-FEEDBACK) POS(131); DCL DD IO-BLOCK-COUNT BIN(4) DEF(IO-FEEDBACK) POS(133); DCL DD * CHAR(8) DEF(IO-FEEDBACK) POS(137); DCL INSPTR .PROCESS-THIS-ODP; ENTRY PROCESS-THIS-ODP INT; ADDSPP .OPEN-FEEDBACK, .ODP, ODP.OPEN-FEEDBACK; SKIP-IF-DISPLAY-FILE: CMPBLA(B) ODP-TYPE, "DS"/EQ(.PROCESS-THIS-ODP); SKIP-IF-LOGICAL-FILE: TSTBUM(B) ODP-MISC-FLAGS1, X'08'/ONES(.PROCESS-THIS-ODP); HAVE-DATABASE-OR-SPOOLFILE: ADDSPP .IO-FEEDBACK, .ODP, ODP.IO-FEEDBACK; CMPBLA(B) IO-CUR-OPERATION, X'00'/ EQ(.PROCESS-THIS-ODP); CPYBLA ENTRY-OPERATION, IO-CUR-OPERATION; CPYNV ENTRY-COUNT, IO-WRITE-COUNT; ADDN(S) ENTRY-COUNT, IO-READ-COUNT; ADDN(S) ENTRY-COUNT, IO-UPDATE-COUNT; ADDN(S) ENTRY-COUNT, IO-OTHER-COUNT; CMPNV(B) ENTRY-COUNT, 0/EQ(.PROCESS-THIS-ODP); CPYBLA ENTRY-LIBRARY, ODP-LIBRARY; CPYBLA ENTRY-FILE, ODP-FILE; CPYBLA ENTRY-MEMBER, ODP-MEMBER; CMPNV(B) LAST-ENTRY-NBR, 100000/NLO(.PROCESS-THIS-ODP); ADDN(S) LAST-ENTRY-NBR, 1; CPYBWP ENTRIES(LAST-ENTRY-NBR), THE-ENTRY; B .PROCESS-THIS-ODP;