*%IF DVCIBASE = '' /* IF NO DVCTI BASE SPECIFIED*/ 00149902 *%THEN %DVCIBASE = 'BASED(CVTZDTAB)'; /* USE CVTZDTAB */ 00249902 *%IF DVCTBASE = '' /* IF NO DVCT BASE SPECIFIED */ 00299902 * /* USE UCBTYP TO INDEX DVCTI */ 00309902 * /* AND USE CVTZDTAB + OFFSET */ 00319902 *%THEN %DVCTBASE = 'BASED(CVTZDTAB+DVCTIOFF(UCBTYP & DVCTYPMK))'; 00349902 *%;/* 00399902 MACRO 00500002 IHADVCT &DSECT=YES 01000002 .* /* START OF SPECIFICATIONS **** 01050002 .* 01100002 .*01 MODULE-NAME = IHADVCT 01150002 .* 01250002 .*01 COPYRIGHT = NONE 01300002 .* 01350002 .*01 STATUS = OS/VS2 RELEASE 2, LEVEL 0 01400002 .* 01450002 .*01 CHANGE-ACTIVITY = NONE 01460002 .* 01470002 .*01 DESCRIPTIVE-NAME = DEVICE CHARACTERISTICS TABLE MAPPING 01480002 .* 01490002 .*01 FUNCTION = THIS TABLE DESCRIBES PHYSICAL ATTRIBUTES OF EACH DASD 01492002 .* DEVICE WHICH HAS BEEN SYSGENED 01492402 .* 01494002 .*01 NOTES = THE TABLE IS POINTED TO BY CVTZDTAB. 01496002 .* 01498002 .*01 MODULE-TYPE = MACRO 01579902 .*02 PROCESSOR = ASSEMBLER-370R 01581902 .* 01587902 .*02 MACRO-SIZE = 200 STATEMENTS 01588302 .* 01723102 .**** END OF SPECIFICATIONS ***/ 01739802 * /* MACCOMP Y-2 SC1D0/SJD48 */ 01789802 * /* MACSTAT Y-2 73226/021160 */ 01839802 */********************************************************************/ 01889802 */* DEVICE CHARACTERISTICS TABLE */ 02000002 */********************************************************************/ 02500002 */* */ 03510002 */* THIS TABLE MAY BE USED TO FIND THE CHARACTERISTICS */ 05000002 */* OF DIRECT ACCESS DEVICES. THE APPLICABLE DEVICES ARE */ 05500002 */* THOSE CONTAINING UCBDACC IN UCBTBYT3 (SEE IEFUCBOB). */ 06000002 */* */ 06010002 */* NOTE: DEVTYPE MAY BE USED TO EXTRACT INFORMATION */ 06020002 */* FROM THIS TABLE. ITS OUTPUT AREA IS IN A SLIGHTLY */ 06030002 */* DIFFERENT FORMAT, AND IS MAPPED BY IHADVA. */ 06040002 */* */ 06050002 */* THE TABLE IS COMPOSED OF AN INDEX FOLLOWED BY ONE */ 06100002 */* ENTRY FOR EACH DASD DEVICE WHICH HAS BEEN SYSGENED */ 06150002 */* */ 06160002 */* FOR ASSEMBLER USE, TWO SEPARATE DSECTS ARE PROVIDED. */ 06170002 */* A USING ON DVCTI GIVES ADDRESSIBILITY TO THE INDEX, */ 06180002 */* AND A USING ON DVCT GIVES ADDRESSIBILITY TO AN ENTRY. */ 06190002 */* SPECIFYING DSECT=NO SUPPRESSES THE INDEX AND PROVIDES */ 06192002 */* AN ENTRY DESCRIPTION WITHOUT A DSECT STATEMENT */ 06194002 */* */ 06196002 */* FOR PLS USE, TWO STRUCTURES ARE PROVIDED. THEIR STORAGE */ 06198002 */* ATTRIBUTES ARE CONTROLLED BY SETTING STRING MACRO */ 06198102 */* VARIABLES AS FOLLOWS: */ 06198202 */* STRUCTURE MACRO-VAR DEFAULT SETTING */ 06198302 */* DVCTI %DVCIBASE 'BASED(CVTZDTAB)' */ 06198802 */* DVCT %DVCTBASE 'BASED(CVTZDTAB */ 06199202 */* +DVCTIOFF(UCBTYP&DVCTYPMK))' */ 06199602 */* */ 06199702 */* THE DEFAULT SETTINGS WILL PROVIDE ADDRESSIBILITY TO */ 06199802 */* ALL FIELDS, BUT DEPEND ON CVT AND UCB ADDRESSIBILITY. */ 06199902 */* */ 06200002 */* FORMAT OF EACH ENTRY */ 06250002 */* _____________________________________________ */ 06300002 */* 0(00) | | | */ 06350002 */* | DVCCYL | DVCTRK | */ 06400002 */* |_____________________|_____________________| */ 06450002 */* 4(04) | | DVCOVHD | */ 06460002 */* | DVCTRKLN | DVCOVNLB | DVCOVLB | */ 06470002 */* |_____________________|__________|__________| */ 06480002 */* 8(08) | | | | */ 06490002 */* | DVCOVNK | DVCFLAGS | DVCTOL | */ 06492002 */* |__________|__________|_____________________| */ 06494002 */* 12(0C) | |______________________ */ 06496002 */* | DVCALT | | */ 06498002 */* |_____________________| DVCOVR0 | RPS */ 06498402 */* ______________________|_____________________| ONLY */ 06498802 */* 16(10) | | | SECTION */ 06499202 */* | DVCSECT | DVCSECTD | */ 06499602 */* |__________|__________| */ 06499702 */********************************************************************/ 06500002 *%/* 06550002 AIF ('&DSECT' EQ 'NO').NODSECT 06600002 DVCTI DSECT , INDEX TO DVCT 07000002 * THIS INDEX IS LOCATED FROM CVTZDTAB. 07500002 * THE PROPER ENTRY IS FOUND BY ADDING THE LOW ORDER 08000002 * 4 BITS OF UCBTYP TO THE ADDRESS IN CVTZDTAB. 08500002 DVCTYPMK EQU X'0000000F' TYPICAL USAGE: 09000002 * LA RWRK,DVCTYPMK MASK FOR UNIT TYPE NUMBER 09500002 * N RWRK,UCBTYP PICK UP UNIT TYPE NUMBER 10000002 * IC RWRK,DVCTIOFF(RWRK) PICK UP OFFSET 10500002 DVCTIOFF DS AL1 OFFSET TO DVCT ENTRY 11000002 *********************************************************************** 11500002 SPACE 3 12000002 DVCT DSECT , FORMAT OF DVCT ENTRY 12010002 * THE ENTRY IS LOCATED BY ADDING DVCTIOFF TO CVTZDTAB 12020002 AGO .ENTRY 12050002 .NODSECT ANOP 12100002 DVCT DS 0H FORMAT OF DVCT ENTRY 21500002 .ENTRY ANOP 21550002 * 22500002 DVCCYL DS H PHYS NO. CYL PER VOLUME 23000002 DVCTRK DS H NO. TRACKS PER CYLINDER 23500002 DVCTRKLN DS H NO. OF BYTES PER TRACK 24000002 * 24500002 DVCOVHD DS 0H BLOCK OVERHEAD IF DVC2BOV=1 25000002 * USE FOLLOWING TWO CONSTANTS IF DVC2BOV=0 25500002 DVCOVNLB DS XL1 OVERHEAD NOT LAST BLOCK 26000002 DVCOVLB DS XL1 OVERHEAD LAST BLOCK 26500002 * 27000002 DVCOVNK DS XL1 OVERHEAD DECREMENT NOT KEYED 27500002 * 28000002 DVCFLAGS DS BL1 28500002 DVC2BOV EQU X'08' IF 1, USE DVCOVHD 29000002 * IF 0, USE DVCOVNLB,DVCOVLB 29500002 DVCFTOL EQU X'01' IF 1, APPLY TOLERANCE FACTOR 30000002 * 30500002 DVCTOL DS H TOLERANCE FACTOR 31000002 * APPLY TOLERANCE FACTOR AS FOLLOWS: 33500002 * 1. ADD BLOCKSIZE AND KEYLENGTH 34000002 * 2. MULTIPLY BY DVCTOL 34500002 * 3. SHIFT RIGHT DVCTSHFT BITS 35000002 * 4. ADD APPROPRIATE OVERHEADS 35500002 DVCTSHFT EQU 9 SHIFT AMT TO DIVIDE BY 512 36500002 * 37000002 DVCALT DS H NUMBER ALTERNATE TRKS/VOLUME 37500002 * 38000002 DVCENTLG EQU *-DVCT BASIC SIZE OF DEVICE TABLE 38050002 * ENTRY, NOT INCLUDING ADD'L 38100002 * CHARACTERISTICS FOR RPS 38150002 ********************************************************************** 38500002 * THE FOLLOWING SECTION OF THE TABLE IS PRESENT * 39000002 * ONLY FOR RPS DEVICES--TEST UCBTBYT2 FOR UCB2OPT3 * 39500002 ********************************************************************** 40000002 DVCRPS DS 0CL4 RPS SECTION 40500002 DVCOVR0 DS H OVERHEAD BYTES FOR RECORD 0 41000002 DVCSECT DS XL1 NUMBER SECTORS IN FULL TRACK 41500002 DVCSECTD DS XL1 NUMBER DATA SECTORS 42000002 * 43000002 * END OF DVCT 43500002 MEND 44000002 **/; 44050002 * 44100002 * DCL 1 DVCTI DVCIBASE, /* INDEX TO DVCT */ 44150002 * 2 * PTR(8), /* OFFSET TO ENTRY 0 */ 44160002 * 2 DVCTIOFF (*) PTR(8); /* OFFSETS TO ENTRIES 1 TO N */ 44200002 */* */ 44250002 */* USE THE LAST 4 BITS OF UCBTYP TO INDEX DVCTIOFF. */ 44300002 */* DVCTYPMK MAY BE USED AS A MASK TO 'AND' WITH UCBTYP. */ 44320002 */* THE INDEX ENTRIES ARE OFFSETS RELATIVE TO CVTZDTAB. */ 44350002 */********************************************************************/ 44450002 * 44460002 * DCL 1 DVCT DVCTBASE, /* FORMAT OF DVCT ENTRY */ 44500002 * 2 DVCCYL FIXED(15) UNSIGNED, /* PHYS NO. CYL PER VOLUME */ 44550002 * 2 DVCTRK FIXED(15) UNSIGNED, /* NO. TRACKS PER CYLINDER */ 44600002 * 2 DVCTRKLN FIXED(15) UNSIGNED, /* NO. BYTES PER TRACK */ 44650002 * 44700002 * 2 DVCOVHD FIXED(15), /* BLOCK OVERHD IF DVC2BOV=1 */ 44750002 * /* USE THE FOLLOWING TWO CONSTANTS IF DVC2BOV=0 */ 44850002 * 3 DVCOVNLB FIXED(8), /* OVERHEAD NOT LAST BLOCK */ 44900002 * 3 DVCOVLB FIXED(8), /* OVERHEAD FOR LAST BLOCK */ 44950002 * 45000002 * 2 DVCOVNK FIXED(8), /* OVERHD DECREMENT NOT KEYED*/ 45050002 * 45100002 * 2 DVCFLAGS BIT(8), 45150002 * 3 * BIT(4), /* RESERVED */ 45160002 * 3 DVC2BOV BIT(1), /* IF 1, USE DVCOVHD */ 45200002 * /* IF 0, USE DVCOVNLB,OVLB */ 45250002 * 3 * BIT(2), /* RESERVED */ 45260002 * 3 DVCFTOL BIT(1), /* IF 1, APPLY TOLER FACTOR */ 45300002 * 45350002 * 2 DVCTOL FIXED(15) UNSIGNED, /* TOLERANCE FACTOR */ 45400002 */* APPLY TOLERANCE AS FOLLOWS: */ 45450002 */* (BLOCKSIZE+KEYLENGTH) * DVCTOL / DVCTSHFT + OVERHEADS */ 45500002 * 45510002 * 2 DVCALT FIXED(15), /* NO. OF ALTERNATE TRACKS */ 45550002 */********************************************************************/ 45552002 */* THE FOLLOWING SETION OF THE TABLE IS PRESENT */ 45560002 */* ONLY FOR RPS DEVICES (UCB2OPT3=1) */ 45570002 */********************************************************************/ 45580002 * 2 DVCRPS, /*RPS SECTION */ 45600002 * 3 DVCOVR0 FIXED(15), /* OVERHD BYTES FOR RECORD 0 */ 45650002 * 3 DVCSECT FIXED(8), /* NO. SECTORS IN FULL TRACK */ 45700002 * 3 DVCSECTD FIXED(8); /* NO. OF DATA SECTORS */ 45750002 */********************************************************************/ 45760002 * 45800002 * DCL DVCTSHFT FIXED(15) CONSTANT(512); /* DENOMINATOR FOR DVCTOL */ 45850002 */* THE FOLLOWING CONSTANT CAN BE USED TO MASK OUT ALL BUT */ 45900002 */* THE DVCTIOFF SUBSCRIPT FROM THE UCB WORD UCBTYP */ 45910002 * DCL DVCTYPMK BIT(32) CONSTANT('0000000F'X); /* UCBTYP MASK */ 46000002 * 46050002 */* END OF DVCT */ 46100002