/********************************************************************/ 00202037 /* */ 00204037 /* MACRO NAME = IGGMCDCL */ 00206037 /* */ 00208037 /* DESCRIPTIVE NAME = VSAM CATALOG COMMON DECLARATIONS */ 00210037 /* */ 00212037 /* FUNCTION = CONTAINS THE COMMONLY USED CONTROL BLOCK FORMATS, */ 00214037 /* CONSTANTS, FUNDAMENTAL MAPPINGS, AND INTERFACE */ 00216037 /* MACROS FOR VSAM CATALOG MANAGEMENT PROCESSING. */ 00218037 /* */ 00220037 /* INCLUDED MACROS = IGGMCTRC IKJTCB IEZCTGWA */ 00222037 /* IGGCCA IFGACB IEZCTGVL */ 00224037 /* IEZCTGPL AMCBS IEZCTGCV */ 00226037 /* IEZCTGFL IGGCAXWA */ 00228037 /* CVT IEZCTGFV */ 00230037 /* */ 00232037 /* METHOD OF ACCESS = PL/S - RESPECIFY A BASE FOR SOME STRUCTURES */ 00234037 /* */ 00236037 * /* MACSTAT Y-2 74218/ZA00964 @ZA00964*/ 00352002 /* STATUS = VS/2 RELEASE 3 (CHANGE FLAG @Y30SSXX) */ 00400037 /* */ 00440037 /* DATE OF LAST CHANGE = 17 JAN 75 @Y30SSPJ*/ 00480037 /* */ 00520037 /********************************************************************/ 00560037 % EXECPARM: 02000090 MACRO; /* SETS MACRO VARIABLES IN */ 02200037 /* ACCORDANCE WITH EXEC STMT */ 02400037 /* MACPARM VALUES */ 02600037 DCL SYSTEM CHAR EXT ; /* TYPE OF SYSTEM INDICATOR */ 02800037 IF MACPARM = 'DOS' /* COMPILE FOR DOS SYSTEM? */ 03000037 THEN SYSTEM = 'DOS'; /* YES - INDICATE DOS */ 03200037 ELSE SYSTEM = 'AOS'; /* NO - DEFAULT TO AOS */ 03400037 % END; 03600090 %DCL SYSTEM CHAR EXT; /* TYPE OF SYSTEM INDICATOR */ 03800037 ?EXECPARM; 04000037 /********************************************************************/ 04100037 /* DECLARATION OF CONSTANTS */ 04200037 /********************************************************************/ 04400037 DECLARE 04600037 ON BIT(1) CONSTANT('1'B), /* ON - A '1' BIT */ 04800037 OFF BIT(1) CONSTANT('0'B), /* OFF - A '0' BIT */ 05000037 TRUEGC BIT(8) CONSTANT('3F'X), /* TO GET TRUE GROUP CODE */ 05200037 LOWKEYTY BIT(8) CONSTANT('00'X), /* LOW KEY TYPE */ 05400037 CATEXTID CHAR(1) CONSTANT('E'), /* CATALOG EXTENSION RECRD ID*/ 05600037 VOLEXTID CHAR(1) CONSTANT('W'), /* VOLUME EXTENSION RECRD ID */ 05800037 VOLGOPLN FIXED(31) CONSTANT(6), /* VOLUME GOP LENGTH */ 06000037 CATGOPLN FIXED(31) CONSTANT(5), /* CATALOG GOP LENGTH */ 06200037 VOLSNLN FIXED(31) CONSTANT(2), /* VOLUME SEQUENCE NO. LENGTH */ 06400037 CATSNLN FIXED(31) CONSTANT(1), /* CATALOG SEQUENCE NO. LENGTH */ 06600037 PSWDGC FIXED(31) CONSTANT(4), /* SECURITY GROUP CODE */ 06800037 K256 FIXED(31) CONSTANT(256),/* CONSTANT OF 256 @Y30SSPJ*/ 06805037 IGNOREIT FIXED(31) CONSTANT(0), /* CLEAR ERROR CODE @Y30SSPJ*/ 06807037 NOGETMSE FIXED(31) CONSTANT(0), /* NO GETMAIN ERROR CODE 06810037 @Y30SSPJ*/ 06815037 VSRELID1 PTR(8) CONSTANT(0), /* VSAM REL 1 ID @Y30SSPJ*/ 06820037 VSRELID2 PTR(8) CONSTANT(1), /* VSAM REL 2 ID @Y30SSPJ*/ 06825037 CURELID PTR(8) CONSTANT(1), /* CURRENT VSAM REL ID @Y30SSPJ*/ 06830037 SSUBPOOL FIXED(8) CONSTANT(241), /* SYSTEM SUBPOOL NO. @Y30SSDW*/ 06835037 FSUBPOOL FIXED(8) CONSTANT(229), /* FETCH PROTECTED SP @ZA29164*/ 06837037 USUBPOOL FIXED(8) CONSTANT(252),/* USER SUBPOOL NUMBER @Y30SSDW*/ 06840037 SASIZ FIXED(31) CONSTANT(12); /* SAVE AREA SIZE */ 07000037 /********************************************************************/ 07010037 /* DECLARATION OF REGISTERS */ 07020037 /********************************************************************/ 07030037 DECLARE /* GENERAL REGISTERS */ 07040037 (RP0 REG(0), /* PARAMETER REG 0 */ 07400037 RP1 REG(1), /* PARAMETER REG 1 */ 07600037 WKR2 REG(2), /* WORK REGISTER */ 07800037 WKR3 REG(3), /* WORK REGISTER */ 08000037 WKR4 REG(4), /* WORK REGISTER */ 08200037 RSAVE REG(13), /* SAVE AREA REGISTER 13 */ 08400037 RET REG(14), /* RETURN REGISTER */ 08600037 RGO REG(15)) PTR(31); /* ENTRY POINT REGISTER */ 08800037 /********************************************************************/ 08810037 /* DECLARATION OF REGISTERS */ 08820037 /********************************************************************/ 08830037 DECLARE /* GENERAL REGISTERS */ 08840037 (RZERO REG(0), /* GR 0 FOR GETMAIN USAGE */ 09200037 RWA REG(2), /* GR 2 POINTS TO WORK AREA */ 09400037 RNDX REG(3), /* GR 3 FOR INDEX */ 09600037 RFLD REG(4), /* GR 4 POINTS TO FIELD */ 09800037 RWK1 REG(6), /* GR 6 IS WORK REGISTER */ 10000037 RWK2 REG(7), /* GR 7 IS WORK REGISTER */ 10200037 RWK3 REG(8), /* GR 8 IS WORK REGISTER */ 10400037 RWK4 REG(9)) PTR(31); /* GR 9 IS WORK REGISTER */ 10600037 /********************************************************************/ 10640037 /* DECLARATION OF REGISTERS */ 10680037 /********************************************************************/ 10720037 DECLARE /* GENERAL REGISTERS */ 10760037 R0 REG(0) PTR(31), /* STANDARD REGISTER */ 11200037 R1 REG(1) PTR(31), /* STANDARD REGISTER */ 11400037 R2 REG(2) PTR(31) RSTD, /* LOCAL WORK REGISTER */ 11600037 R3 REG(3) PTR(31) RSTD, /* LOCAL WORK REGISTER */ 12000037 R4 REG(4) PTR(31) RSTD, /* LOCAL WORK REGISTER */ 12400037 R5 REG(5) PTR(31), /* WORK REGISTER */ 12800037 R6 REG(6) PTR(31), /* WORK REGISTER */ 13000037 R7 REG(7) PTR(31), /* WORK REGISTER */ 13200037 R8 REG(8) PTR(31), /* WORK REGISTER */ 13400037 R9 REG(9) PTR(31), /* WORK REGISTER */ 13600037 R10 REG(10) PTR(31), /* WORK REGISTER */ 13800037 R11 REG(11) PTR(31) RSTD, /* CCA BASE REGISTER */ 14000037 R12 REG(12) PTR(31) RSTD, /* ASSEMBLER CODE BASE REGISTER */ 14400037 R13 REG(13) PTR(31), /* SAVE AREA REGISTER */ 14800037 R14 REG(14) PTR(31), /* RETURN REGISTER */ 15000037 R15 REG(15) PTR(31); /* ENTRY POINT REGISTER */ 15200037 @EJECT; 15300037 %INCLUDE SYSLIB(IGGMCTRC); /* CATALOG RETURN CODES */ 15400037 @EJECT; 15500037 %CCAPTR = 'R11'; /* NEW CCA BASE VARIABLE */ 15600037 %INCLUDE SYSLIB(IGGCCA); /* CATALOG COMMUNICATIONS AREA */ 15800037 %DCL IGGMODID CHAR EXT; /* GLOBAL MODULE ID @Y30SSPJ*/ 15810037 @EJECT; 15820037 %CTGPLPTR = 'CCACPL'; /* NEW IEZCTGPL BASE */ 16000037 %INCLUDE SYSLIB(IEZCTGPL); /* CATALOG PARAMETER LIST */ 16200037 @EJECT; 16230037 %CTGFLPTR = 'CCAFLPT'; /* TEMPORARY IEZCTGFL BASE */ 16260037 %INCLUDE SYSLIB(IEZCTGFL); /* FIELD PARAMETER LIST */ 16290037 @EJECT; 16320037 /********************************************************************/ 16350037 /* USER WORKAREA DECLARATION */ 16400037 /********************************************************************/ 16460037 DECLARE 16520037 1 USERWKA BASED(CTGWKA), /* USER WORK AREA */ 16600037 2 WKALEN1 FIXED(15), /* LENGTH OF USER WORK AREA */ 16800037 2 WKALEN2 FIXED(15), /* REQUIRED LENGTH FOR USER AREA */ 17000037 2 WKA CHAR(0), /* SPACE FOR RETRIEVED INFO */ 17200037 3 ENTNAMES(*), /* ENTRYNAME SET ARRAY */ 17400037 4 ENTNAMET CHAR(1), /* ENTRYNAME TYPE CODE */ 17600037 4 ENTNAMEV CHAR(44); /* ENTRYNAME VALUE */ 17800037 DCL CTGVLDSP FIXED(15) BASED(ADDR(CTGFLDGC)); /* PARTIAL EXTRACT */ 18600037 /********************************************************************/ 18700037 /* DECLARATION OF FIELD NAME */ 18800037 /********************************************************************/ 18900037 DECLARE FIELDNM CHAR(8) BASED(CTGFLDNM); /* FIELD NAME */ 19000037 /********************************************************************/ 19100037 /* CATALOG FIELD DICTIONARY INFORMATION DECLARATION */ 19200037 /********************************************************************/ 19260037 DECLARE 19320037 1 DICTENT BASED(ADDR(CTGFLDWA)), /* DICTIONARY ENTRY */ 19400037 2 DICTFLGS BIT(8), /* FIELD FLAGS */ 19600037 3 DICTVAR BIT(1), /* VARIABLE OR FIXED */ 19800037 3 DICTREP BIT(1), /* REPEATING OR NON-REPEATING */ 20000037 3 DICTCOMB BIT(1), /* COMBINATION/SPECIAL OR NOT */ 20200037 3 DICTFLG BIT(1), /* FLAG FIELD OR NOT */ 20400037 3 DICTMV BIT(1), /* MULTI-VALUED OR NOT */ 20600037 3 DICTSCRA BIT(1), /* SUPPRESS CRA UPDATES @Y30SSPJ*/ 20660037 3 DICTUPGD BIT(1), /* UPGRADE ENTRY NAME @Y30SSPJ*/ 20720037 3 * BIT(1), /* RESERVED @Y30SSPJ*/ 20800037 2 DICTST PTR(8), /* STARTING POINT */ 21000037 2 DICTLC PTR(8), /* LENGTH OR COUNT */ 21200037 2 DICTGC PTR(8); /* GROUP CODE */ 21400037 DECLARE 21410037 DTCMBMK BIT(8) CONSTANT('F0'X), /* COMBINATION MASK @Y30SSPJ*/ 21420037 /* A FIELD IS A COMBINATION */ 21470037 /* FIELD IF DICTFLGS&DTCMBMK = */ 21520037 /* DTCMB */ 21570037 /* THE FOLLOWING DICTIONARY ENTRY FLAGS ARE USED TO IDENTIFY */ 21580037 /* SPECIAL FIELD NAMES */ 21590037 DTCMB BIT(8) CONSTANT('20'X), /* COMBINATION FIELD NAME */ 21600037 DTSRR BIT(8) CONSTANT('60'X), /* RELREPNO, REPNO FIELD NAME */ 21800037 DTSTR BIT(8) CONSTANT('E8'X), /* TRBAEXT FIELD NAME */ 22000037 DTSCC BIT(8) CONSTANT('60'X); /* CATACB, CNTREPNO, GENDSP */ 22200037 /* FIELD NAMES */ 22250037 /* THE FOLLOWING DICTIONARY ENTRY VALUES ARE USED TO IDENTIFY */ 22300037 /* SPECIFIC SPECIAL FIELD NAMES */ 22350037 DECLARE 22400037 DTREL BIT(8) CONSTANT('03'X), /* RELREPNO - CTGFLDWA(2) */ 22600037 DTREP BIT(8) CONSTANT('04'X), /* REPNO - CTGFLDWA(2) */ 22800037 DTCNT BIT(8) CONSTANT('02'X), /* CNTREPNO - CTGFLDWA(2) */ 23000037 DTCAT BIT(8) CONSTANT('01'X), /* CATACB - CTGFLDWA(2) */ 23200037 DTGDP BIT(8) CONSTANT('05'X); /* GENDSP - CTGFLDWA(2) */ 23400037 /********************************************************************/ 23500037 /* CATALOG FIELD DICTIONARY INFORMATION DECLARATION */ 23600037 /********************************************************************/ 23660037 DECLARE 23720037 1 DIC2ENT BASED(ADDR(CCADICT)), /* DICTIONARY ENTRY */ 23800037 2 DIC2FLGS BIT(8), /* FIELD FLAGS */ 24000037 3 DIC2VAR BIT(1), /* VARIABLE OR FIXED */ 24200037 3 DIC2REP BIT(1), /* REPEATING OR NON-REPEATING */ 24400037 3 DIC2COMB BIT(1), /* COMB/SPECIAL OR NOT */ 24600037 3 DIC2FLG BIT(1), /* FLAG FIELD OR NOT */ 24800037 3 DIC2MV BIT(1), /* MULTI-VALUED OR NOT */ 25000037 3 DIC2SCRA BIT(1), /* SUPPRESS CRA UPDATES @Y30SSPJ*/ 25010037 3 DIC2UPGD BIT(1), /* UPGRADE ENTRY NAME @Y30SSPJ*/ 25020037 3 * BIT(1), /* RESERVED @Y30SSPJ*/ 25030037 2 DIC2ST PTR(8), /* STARTING POINT */ 25400037 2 DIC2LC PTR(8), /* LENGTH OR COUNT */ 25600037 2 DIC2GC PTR(8); /* GROUP CODE */ 25800037 /********************************************************************/ 25900037 /* CATALOG ENTRY POINTERS DECLARATION */ 26000037 /********************************************************************/ 26060037 DECLARE 26120037 1 CCARAB BASED(CCAURAB), /* CATALOG RAB POINTERS */ 26200037 2 CCARABFL PTR(8), /* RAB FLAGS */ 26400037 3 CCARBUR BIT(1), /* RAB IN-USE MODIFY, EXTRACT */ 26600037 3 CCARBU1 BIT(1), /* RAB IN-USE TESTS */ 26800037 3 CCARBU2 BIT(1), /* RAB IN-USE TESTS */ 27000037 3 CCARBWR BIT(1), /* WRITE IT BEFORE READ */ 27200037 3 CCARBPA BIT(1), /* PUT-ADD WRITE */ 27400037 3 * BIT(2), /* RESERVED */ 27600037 3 CCARBUPD BIT(1), /* UPDATE BUFFER NOT REUSED */ 27800037 2 CCARABRI PTR(8), /* LAST ASSIGNED RPL INDEX */ 28000037 2 * CHAR(2), /* RESERVED */ 28200037 2 CCACPE1 PTR(31), /* START ENTRY RECORD PTR */ 28400037 2 CCACPE2 PTR(31), /* PTR TO REPEATING FIELD */ 28600037 /* CONTROL INFORMATION */ 28800037 2 CCACPE3 PTR(31), /* PTR TO FIRST GROUP OCCURRENCE */ 29000037 2 CCACPE4 PTR(31); /* PTR TO END OF RECORD ENTRY */ 29400037 /********************************************************************/ 29500037 /* GROUP OCCURRENCE POINTER DECLARATION */ 29600037 /********************************************************************/ 29660037 DECLARE 29720037 1 CATGOPT BASED(CCACPE5), /* GROUP OCCURRENCE POINTER */ 29800037 2 CATGOCI CHAR(3), /* CI NUMBER OR */ 30000037 3 CATGOFLG BIT(8), /* GROUP OCCURRENCE FLAG */ 30200037 4 * BIT(8), /* RESERVED */ 30400037 3 CATGODSP FIXED(15) /* DISPLACEMENT TO GROUP */ 30600037 BDY(BYTE), /* OCCURRENCE */ 30800037 2 CATGOGC1 PTR(8), /* GROUP CODE INFORMATION */ 31000037 3 CATGOEXT BIT(1), /* GROUP OCCURRENCE OUTSIDE RECD */ 31200037 3 CATGODEL BIT(1), /* DELETED GROUP OCCURRENCE PTR */ 31600037 3 CATGOGC BIT(6), /* TRUE GROUP CODE */ 31800037 2 CATGOSEQ PTR(8); /* (HIGH) SEQUENCE NUMBER */ 32000037 /********************************************************************/ 32100037 /* DECLARATION OF VARIABLE LENGTH SEQUENCE NUMBER */ 32200037 /********************************************************************/ 32300037 DECLARE CATSN CHAR(2) BASED(ADDR(CATGOSEQ)); /* SEQUENCE NUMBER */ 32400037 /********************************************************************/ 32500037 /* DECLARATION OF CATALOG RECORD KEY INFORMATION */ 32600037 /********************************************************************/ 32660037 DECLARE 32720037 1 CATRCD BASED(CCACPE1), /* CATALOG RECORD */ 32800037 2 RCDKEYTY CHAR(1), /* KEY TYPE */ 33000037 2 RCDCINO PTR(24), /* RECORD CI NUMBER */ 33200037 2 RCDRELID PTR(8), /* RELEASE INDICATOR @Y30SSPJ*/ 33205037 2 RCDCRAVL CHAR(6), /* CRA VOLUME SERIAL @Y30SSPJ*/ 33210037 2 RCDCRACI PTR(24) BDY(BYTE), /* CRA CI NUMBER @Y30SSPJ*/ 33215037 2 RCDCRADT CHAR(4), /* CRA DEVICE TYPE @Y30SSPJ*/ 33220037 2 RCDRACTS CHAR(4), /* CRA CREATION TIME STAMP 33225037 @Y30SSSB*/ 33230037 2 RCDDICTS CHAR(4), /* D/I IDENTIFIER TIME STAMP 33235037 @Y30SSSB*/ 33240037 2 * CHAR(18), /* RESERVED @Y30SSSB*/ 33400037 2 RCDID CHAR(1), /* RECORD ID */ 33600037 2 RCDSIZ FIXED(15) BDY(BYTE), /* RECORD SIZE */ 33800037 2 NREPCV PTR(8), /* COUNT OF VARIABLE FIELDS */ 34200037 2 NREPLF PTR(8); /* LENGTH OF FIXED FIELDS */ 34400037 /********************************************************************/ 34500037 /* DECLARATION OF CONTROL INFORMATION FOR REPEATING FIELDS */ 34600037 /********************************************************************/ 34660037 DECLARE 34720037 1 REPCNTRL BASED(CCACPE2), /* CONTROL INFORMATION */ 34800037 2 EXTRCDPT CHAR(5), /* EXTENSION RECORD POINTER */ 35000037 3 EXTGOCI CHAR(3), /* CI NUMBER OF EXTENSION RECORD */ 35200037 3 * CHAR(2), /* RESERVED */ 35250037 2 REPCNT PTR(8), /* COUNT OF GROUP OCCURRENCE PTRS*/ 36400037 2 REPGOPT(*) CHAR(5); /* VARIABLE NUMBER OF GROUP */ 36800037 /* OCCURRENCE POINTERS */ 37000037 /********************************************************************/ 37100037 /* DECLARATION OF VARIABLE LENGTH FIELD */ 37200037 /********************************************************************/ 37260037 DECLARE 37320037 1 VARFIELD BASED(CCACPE7), /* VARIABLE FIELD */ 37400037 2 VARLEN FIXED(15) BDY(BYTE), /* LENGTH OF FIELD */ 37600037 2 VARINFO CHAR(512); /* FIELD INFORMATION */ 38000037 /********************************************************************/ 38100037 /* DECLARATION OF CONTROL INFORMATION */ 38200037 /********************************************************************/ 38260037 DECLARE 38320037 1 CNTRLINF BASED(CCACPE6), /* CONTROL INFORMATION */ 38400037 2 CNTVAR PTR(8), /* COUNT OF VARIABLE FIELDS */ 38600037 2 LENFIX PTR(8); /* LENGTH OF FIXED FIELDS */ 38800037 @EJECT; 38860037 /********************************************************************/ 38920037 /* DECLARATION OF CVT BASE POINTER */ 39000037 /********************************************************************/ 39100037 DECLARE CVTPTR PTR(31) LOCATION(16); /* BASE FOR CVT */ 39400037 %INCLUDE SYSLIB(CVT); /* COMMUNICATIONS VECTOR TABLE */ 39600037 %DEACT OFF; 39650090 @EJECT; 39800090 /********************************************************************/ 39900037 /* POINTERS TO NEXT AND CURRENT TCB'S */ 40000037 /********************************************************************/ 40060037 DECLARE 40120037 1 TCBWORDS BASED(CVTTCBP), /* TCB LIST */ 40200037 2 NEXTTCB PTR(31), /* POINTER TO NEXT TCB */ 40400037 2 TCBPTR PTR(31); /* POINTER TO CURRENT TCB */ 40600037 %INCLUDE SYSLIB(IKJTCB); /* TASK CONTROL BLOCK */ 41000037 @EJECT; 41200090 %INCLUDE SYSLIB(IHAPSA); 41450002 @EJECT; 41500037 %INCLUDE SYSLIB(IFGACB); 43000090 RFY IFGACB BASED(CCAACB); /* ACB BASE IN CCA */ 43050037 @EJECT; 43200090 /********************************************************************/ 43240037 /* ACCESS METHOD FLAGS */ 43280037 /********************************************************************/ 43320037 DECLARE 43360037 1 MCATDSTR PTR(31) BDY(BYTE) DEF(CVTAMFF), /* FLAGS ARE IN CVT */ 44200037 2 CVTAMF1 BIT(8), /* VSAM CVT FLAGS @Y30SSPJ*/ 44600037 3 AMF1OPEN BIT(1), /* MASTER CATALOG OPEN */ 44800037 3 AMF1NONX BIT(1), /* MASTER CATALOG NON-EXISTENT */ 45000037 3 * BIT(6), /* RESERVED */ 45200037 2 * PTR(24) BDY(BYTE); /* RESERVED */ 45400037 %DECLARE MCATOPEN CHAR, /* MASTER CATALOG OPEN */ 45450037 MCATNONX CHAR, /* MASTER CATALOG NON-EXISTENT */ 45500037 CBSPTR CHAR; /* ADDRESS OF THE AMCBS */ 45550037 %MCATOPEN = 'AMF1OPEN'; /* MASTER CATALOG OPEN */ 45600037 %MCATNONX = 'AMF1NONX'; /* MASTER CATALOG NON-EXISTENT */ 45800037 %CBSPTR = 'CVTCBSP'; /* ADDRESS OF THE AMCBS */ 46800037 @EJECT; 47200090 %INCLUDE SYSLIB(AMCBS); /* ACCESS METHOD CNTRL BLK STRUC */ 47400037 @EJECT; 47600090 /********************************************************************/ 47700037 /* D U M M Y D E C L A R A T I O N S */ 47800037 /********************************************************************/ 47900037 DECLARE CI CHAR(3) BASED; /* DUMMY CI NUMBER */ 48000037 DECLARE TNAM CHAR(44) BASED; /* DUMMY TRUE NAME */ 48200037 @EJECT; 48400090 %CAXWAPTR = 'ACBUAPTR'; 48800090 %INCLUDE SYSLIB(IGGCAXWA); /* CATALOG AUXILIARY WORKAREA */ 49000037 @EJECT; 49200090 %INCLUDE SYSLIB(IEZCTGFV); /* FIELD VECTOR TABLE */ 49400037 @EJECT; 49800090 %INCLUDE SYSLIB(IEZCTGWA); /* SCHEDULER WORK AREA */ 50400037 @EJECT; 50500037 %INCLUDE SYSLIB(IEZCTGVL); /* CATALOG VOLUME LIST */ 50600037 @EJECT; 50700037 %INCLUDE SYSLIB(IEZCTGCV); /* CONTROL VOLUME LIST */ 50800037 @EJECT; 50830037 /********************************************************************/ 50860037 /* WORK AREA FOR OS/VS LOCATE */ 50890037 /********************************************************************/ 50920037 DECLARE 50950037 1 MWA BASED(RWA), /* WORK AREA FOR OS/VS LOCATE */ 51000037 3 VOLENTCT FIXED(15), /* VOLUME ENTRY COUNT */ 51200037 3 VLST(20) BDY(HWORD), /* VOLUME LIST */ 51400037 5 DEVTYP CHAR(4), /* DEVICE TYPE */ 51600037 5 VOLSER CHAR(6), /* VOLUME SERIAL NUMBER */ 51800037 5 FSN PTR(16) BDY(BYTE), /* FILE SEQUENCE NUMBER */ 52000037 3 * CHAR(10), /* BINARY ZEROS */ 52200037 3 CVOLIND BDY(BYTE), /* CAN BE DEVICE TYPE */ 52400037 5 TTR1 CHAR(3), /* TTR - NEXT BLOCK(OVER 20 VOL) */ 52600037 5 BIN0 BIT(8), /* BINARY ZEROS */ 52800037 3 TTR2 CHAR(3), /* TTR FOR NEXT BLOCK READ */ 53000037 3 CVLSER CHAR(6); /* VOLUME SERIAL OF REQ CVOL */ 53200037 % CALLSF: MACRO ; /*GENERATES LABELED CALLS */ 53400090 DCL IGGMODID EXT; /* GLOBAL MODULE ID @Y30SSPJ*/ 53400437 DCL IGGBASE2 EXT; /* SECONDARY BASE REG @ZA29164*/ 53400737 DCL (XMODTBL,XMODTBLB,WARG) CHAR; /* WORK VARIABLES @Y30SSPJ*/ 53401037 DCL (HIT1,HIT2) FIXED; /* WORK VARIABLES @Y30SSPJ*/ 53402037 XMODTBL='-SLEN-SLIV-AA;-ACDV-AB;-MCO-AC;-MCO2-TINQ'|| /*@Y30SSPJ*/ 53403037 '-TIDQ-RAOP-AD;-DCME-MEBM-AE;-DELC-EMSG-EMIO-AF;-IORA'|| /*@Y30SSPJ*/ 53406637 '-ISCI-PUPC-PDE-PDEC-PAD-PADC-AOCI-AXCI-RCCR' || /*@Y30SSPJ*/ 53407237 '-CCCR-XIO-AG;-SCAT-QNQC-AH;-FDSP-DFM1-AI;-DBDI' || /*@Y30SSPJ*/ 53407837 '-AJ;-DCMB-AK;-DTIM-DEF-AL;-DBVC-SLOC-SLEI-SLEL' || /*@Y30SSPJ*/ 53408437 '-AM;-DRDA-DSCB-DCCE-PSEM-AN;-DEFB-DEFX-AO;-DCDA-AP;' || /*@Y30SSPJ*/ 53409037 '-DEFS-AQ;-SALL-AR;-DCRC-DEFC-AS;-CDVR-ARFS-AT;-SALS' || /*@Y30SSPJ*/ 53411037 '-AU;-MOD-UPD-DEL2-SGOP-AV;-ADGO-GNEX-GREL-IGOP' || /*@Y30SSPJ*/ 53412037 '-PREC-AW;-ALT2-EXPD-SHNK-MGO-DGO-DGOP-AX;-SCNC' || /*@Y30SSPJ*/ 53413037 '-AY;-EXT-LOC-AZ;-GLOC-GDGL-A2;-SC2-GRE-RPLM' || /*@Y30SSPJ*/ 53413437 '-RPLF-A3;-DGDS-ERUG-A4;-DELX-DALL-DELB' || /*@Y30SSPJ*/ 53415037 '-A5;-DFS2-BJFB-CBPT-CRTC-A6;-VMSC-DEMV-DVMV-DUSC' || /*@Y30SSDW*/ 53417037 '-MCRA-DF4T-A7;-DFRS-A8;-CMRR-CCBC-A9;' ; /*@Y30SSPJ*/ 53417437 XMODTBLB='-TSTS-GVAL-GREC-BA;-UPDE-BB;-INIT-SVOL' || /*@Y30SSPJ*/ 53419437 '-BC;-ALT-BD;-ALVL-ALEC-ANVV-BE;-SSCR-BF;-DEL' || /*@Y30SSPJ*/ 53420037 '-DOPN-DEXA-DLXT-BG;-DEFA-DAVO-BH;-GET-GETC-TNXO'|| /*@Y30SSPJ*/ 53421437 '-UCRS-TXO-BI;-GDSP-BJ;-LSP-LDCS-BK;-DELS-DUCB' || /*@Y30SSPJ*/ 53422037 '-DLVM-DLET-BL;-CKAU-BM;-ALVR-VRD-ALMD-ALSV-BN;' || /*@Y30SSPJ*/ 53423037 '-RAPA-RAPU-RAG-RAPD-RARC-XRIO-RASC-BO;-SPAC-RET1'||/*@Y30SSPJ*/ 53423437 '-BP;-LSTC-BQ;-BMR-BR;-XVAL-XEXT-BS;-XMOD-XLT2' || /*@Y30SSPJ*/ 53425037 '-XEL2-XDGO-BT;-F4RD-F4WR-F4DQ-BU;-SMFA-SMFF-SMFS'||/*@Y30SSPJ*/ 53426037 '-SMFL-SMFR-SMFZ-BV;-DEIN-BW;-DSPC-BX;-DRSP-BY;' || /*@Y30SSPJ*/ 53428037 '-CONV-GALO-VALI-BZ;' || /*@Y30SSSG*/ 53428837 '-DCNV-ITER-CMKY-DPBI-DCCO-FPDA-B0;' || /*@Y30SSSG*/ 53428937 '-UADD-UDEL-B1;-AUPG-B2;' || /*@Y30SSDW*/ 53429237 '-SMF-SMFG-B3;-DCRA-B4;-DEAX-DIAX-DEPT-DIPT' || /*@Y30SSDW*/ 53430837 '-DCLS-DUPG-B5;-WTSO-SPSC-INMD-B6;-RUS-B7;-DFBO' || /*@Y30SSPJ*/ 53431237 '-DUND-CNBO-B8;-PAIX-PATH-B9;' || /*@Y30SSDW*/ 53432237 '-RAPV-MODI-WCRA-WCAT-DA;' ; /*@Y30SSDW*/ 53432337 WARG='-'||MACLIST(1)||'-'; /* SEARCH AGUMENT @Y30SSPJ*/ 53432437 HIT1=INDEX(XMODTBL,WARG); /* SEARCH TABLE A @Y30SSPJ*/ 53432737 IF HIT1=0 THEN /* NAME FOUND TABLE A? @Y30SSPJ*/ 53433037 DO; /* NO-NOT FOUND IN TBL A @Y30SSPJ*/ 53433337 XMODTBL=XMODTBLB; /* SET-UP TABLE A WITH B @Y30SSPJ*/ 53433637 HIT1=INDEX(XMODTBL,WARG); /* SEARCH TABLE B @Y30SSPJ*/ 53433937 END; /*@Y30SSPJ*/ 53434037 ELSE; /*@Y30SSPJ*/ 53434237 IF HIT1^=0 THEN /* NAME FOUND TABLES? @Y30SSPJ*/ 53434637 DO; /* YES-NAME FOUND @Y30SSPJ*/ 53434737 HIT2=INDEX(XMODTBL(HIT1:LENGTH(XMODTBL)),';')+HIT1-1; 53434837 /* SEARCH FOR MOD NAME @Y30SSPJ*/ 53435137 IF IGGMODID(2:3) ^= XMODTBL(HIT2-2:HIT2-1) THEN 53435437 DO; /*@Y30SSPJ*/ 53435837 ANS ('/') SKIP COL(MACCOL); /*@Y30SSPJ*/ 53436037 ANS ('*') COL(MACCOL+1); /*@Y30SSPJ*/ 53459337 ANS(' CALL TO MODULE IGG0CL' || /*@Y30SSPJ*/ 53469337 XMODTBL(HIT2-2:HIT2-1) || ' ') 53479337 COL(MACCOL+2); /*@Y30SSPJ*/ 53481337 ANS('*') COL(70); /*GENERATE COMMENT @Y30SSPJ*/ 53481737 ANS('/') COL(71); /*GENERATE COMMENT @Y30SSPJ*/ 53481937 END; /*@Y30SSPJ*/ 53482537 ELSE; /*@Y30SSPJ*/ 53482937 END; /* @Y30SSPJ*/ 53576637 ANS ('Z' || MACINDEX(2:4) || MACLIST(1) || ':') SKIP COL(2); 53699937 IF IGGBASE2 ^= '' THEN /* BASE REG 2 SPECIFIED? @ZA29164*/ 53800037 DO; /* YES @ZA29164*/ 53809037 ANS('DO;') COL(MACCOL); /* @ZA29164*/ 53818037 ANS('CALL IGGP'||MACLIST(1)||';') COL(MACCOL+2);/* @ZA29164*/ 53827037 ANS('GEN(RLDSBREG IGGP'||MACLIST(1)||');') COL(MACCOL+2); 53836037 ANS('/* RELOAD SECONDARY BASE REG */') COL(37);/* @ZA29164*/ 53845037 ANS('END;') COL(MACCOL); /* @ZA29164*/ 53854037 END; /* @ZA29164*/ 53863037 ELSE /* NO BASE REG 2 @ZA29164*/ 53872037 ANS ('CALL IGGP' || MACLIST(1) || ';') COL(MACCOL); /*@Y30SSPJ*/ 53890037 ANS (' ') SKIP COL(MACCOL+LENGTH(MACLIST)+7); /*@Y30SSPJ*/ 54000037 % END ; 54200090 % CATPROB: /* PROBLEM DETERMINATION @Y30SSPJ*/ 54250037 MACRO KEYS(MODID,ECD,RCD); /* MACRO @Y30SSPJ*/ 54300037 DCL IGGMODID CHAR EXT; /* EBCDIC MODULE ID @Y30SSPJ*/ 54310037 DCL (ERROR,REASON,ERRCOM) CHAR;/* WORK VARIABLES @Y30SSPJ*/ 54320037 DCL (RSNTBL,RNUM,CARG) CHAR; /* WORK VARIABLES @Y30SSPJ*/ 54330037 DCL (HIT1,HIT2,RCODE) FIXED; /* WORK VARIABLES @Y30SSPJ*/ 54340037 RCODE = 0; /* INTERNAL RETURN CODE @Y30SSPJ*/ 54340437 RNUM = '0,1,2,3,4,5,6,7,8,9,'; /* NUMERIC SEARCH TABLE @Y30SSPJ*/ 54340537 RSNTBL = '0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,'|| 54340637 '30,32,34,36,38,40,42,44,46,48,50,52,54,' || 54340737 '56,58,60,62,64,66,68,70,72,74,76,78,80,' || 54344537 '82,84,86,88,90,92,94,96,98,100,102,104,' || 54346537 '106,108,110,112,114,116,118,120,122,124,'|| 54348537 '126,' ; /* REASON SEARCH TABLE @Y30SSPJ*/ 54349037 IF MODID(1) = '*' THEN /* MODULE ID ONLY? @Y30SSPJ*/ 54349437 DO; /* YES-MODULE ID ONLY @Y30SSPJ*/ 54349837 ANS('/') SKIP COL(MACCOL); /*@Y30SSPJ*/ 54349937 ANS('*') COL(MACCOL+1); /*@Y30SSPJ*/ 54353237 ANS(' SET CCAMODID=' || IGGMODID || 54355237 ', CCAREASN=RSN0, CCARETRN=RCS ' ) COL(MACCOL+2);/*@Y30SSPJ*/ 54355637 ANS('*') COL(70); /*@Y30SSPJ*/ 54356037 ANS('/') COL(71); /*@Y30SSPJ*/ 54356437 ANS('CCAPROB=IGGSEGID;') SKIP COL(MACCOL); /*@Y30SSPJ*/ 54356537 ANS(' ') COL(MACCOL+LENGTH(MACKEYS)+8); /*@Y30SSPJ*/ 54356637 RETURN CODE(RCODE); /* RETURN @Y30SSPJ*/ 54356737 END; /*@Y30SSPJ*/ 54357837 ELSE; /*@Y30SSPJ*/ 54359837 ERROR = ECD(1); /* PICK-UP ERROR CODE @Y30SSPJ*/ 54359937 IF RCD(1) = '' THEN /*REASON CODE SPECIFIED? @Y30SSPJ*/ 54362737 IF MODID(1) ^= 'NO' THEN /*NO-MODID = NO? @Y30SSPJ*/ 54364737 REASON = '0'; /*DEFAULT REASON @Y30SSPJ*/ 54365137 ELSE; /*@Y30SSPJ*/ 54365537 ELSE /*YES-REASON SPECIFIED @Y30SSPJ*/ 54365937 REASON = RCD(1); /*USER SPECIFIED REASON @Y30SSPJ*/ 54366137 IF REASON ^= '' THEN /*REASON SPECIFIED? @Y30SSPJ*/ 54366537 IF REASON(1:1) ^= '(' THEN /*YES-IS IT IN A FIELD? @Y30SSPJ*/ 54366637 DO; /*NO-NOT IN A FIELD @Y30SSPJ*/ 54367437 CARG = REASON(1:1)||','; /*FORM SEARCH ARGUMENT @Y30SSPJ*/ 54367837 HIT1 = INDEX(RNUM,CARG); /*SEARCH FOR NUMERIC @Y30SSPJ*/ 54368237 IF HIT1 = 0 THEN /*1ST CHAR NUMERIC? @Y30SSPJ*/ 54368637 DO; /*NO-INVALID SPECIFIED @Y30SSPJ*/ 54369037 RCODE = 12; /*SET RETURN CODE @Y30SSPJ*/ 54369137 ERRCOM = ' ***ERROR*** RCD(' || REASON || 54371737 ') IS NOT AN VALID NUMERIC REASON CODE.'; /*@Y30SSPJ*/ 54373737 ANS(COMMENT(ERRCOM)) SKIP COL(2); /*@Y30SSPJ*/ 54374137 REASON = '(' || REASON || ')'; /*@Y30SSPJ*/ 54374237 GO TO BV; /*BYPASS FURTHER TESTS @Y30SSPJ*/ 54374337 END; /*@Y30SSPJ*/ 54375037 ELSE; /*@Y30SSPJ*/ 54375437 BU: HIT2=HIT2+1; /*REASON CHAR POINTER @Y30SSPJ*/ 54375837 IF REASON(HIT2:HIT2)='0' THEN /*REASON CHAR = 0? @Y30SSPJ*/ 54376237 IF HIT2