* % GOTO DVAL1; /* BILINGUAL MAPPING */ 00500002 MACRO 01000002 IHADVA &DSECT=YES 01500002 .* /* START OF SPECIFICATIONS **** 01510002 .* 01520002 .*01 MODULE-NAME = IHADVA 01530002 .* 01540002 .*01 COPYRIGHT = NONE 01550002 .* 01560002 .*01 STATUS = VS2 RELEASE 2 LEVEL 0 01570002 .* 01580002 .*01 DESCRIPTIVE-NAME = DEVTYPE PARAMETER AREA 01590002 .* 01600002 .*01 FUNCTION = TO MAP THE PARAMETER AREA RETURNED TO THE CALLER 01610002 .* BY THE DEVTYPE SVC. 01612002 .* 01620002 .*01 MODULE-TYPE = MACRO 01630002 .* 01640002 .*02 MACRO-SIZE = NA FOR MAPPING MACRO 01650002 .* 01660002 .*02 PARAMETER-RECEIVED = DSECT 01670002 .* 01680002 .*03 TYPE = CHARACTER STRING 01690002 .* 01700002 .*04 VALUE = YES OR NO 01710002 .* 01720002 .*01 TABLES = NONE 01730002 .* 01740002 .*01 INNER-MACROS = NONE 01750002 .* 01760002 .*01 SYSTEM-MACROS = NONE 01770002 .* 01780002 .*01 CHANGE-ACTIVITY = SEE BELOW 01790002 .* VS2 RELEASE 2 01800002 .* MACRO CREATED 01810002 .* 01820002 .* 01830002 .**** END OF SPECIFICATIONS ***/ 01840002 * %DVAL1: ; 01850002 * /* MACCOMP Y-2 SC1D0/SJD48 */ 01860002 * /* MACSTAT Y-2 73138/021160 */ 01870002 */********************************************************************/ 03000002 */* DEVTYPE PARAMETER AREA */ 03500002 */* THIS MACRO MAPS THE PARAMETER AREA RETURNED TO THE CALLER BY */ 04000002 */* THE DEVTYPE SVC. */ 04500002 */* IN AN ASSEMBLER CALL DSECT=NO MAY BE CODED. */ 05000002 */* */ 05010002 */* IN A PLS INCLUDE, DVABASE MAY BE DECLARED AS DEF(LABEL) */ 05020002 */* TO CAUSE IT TO BE USED IN A STRUCTURE. IF DVABASE IS */ 05030002 */* OMITTED THE STRUCTURE IS DECLARED AS BASED. */ 05040002 */* */ 05500002 */********************************************************************/ 06000002 * % GOTO DVAL2; 06500002 AIF ('&DSECT' EQ 'NO').DVANOD 06510002 DVAREA DSECT OUTPUT AREA FROM DEVTYPE MACRO 07000002 AGO .DVACONT 07010002 .DVANOD ANOP 07020002 DVAREA EQU * 07030002 .DVACONT ANOP 07040002 * 07500002 *********************************************************************** 08000002 * THE FIRST TWO FULL WORDS OF THE OUTPUT AREA CONTAIN THE * 08500002 * UCBTYPE FIELD AND MAXIMUM RECORD SIZE FOR ALL DEVICES. THEY ARE * 09000002 * FOLLOWED BY THE DEVICE TABLE ENTRY IF THE DEVICE IS DIRECT ACCESS * 09500002 * AND IF KEYWORD DEVTAB WAS SPECIFIED. * 10000002 *********************************************************************** 10500002 DVAPREFX DS 0CL8 PREFIX WORDS OF DEVTYPE OUTPUT 11000002 DVAUCBTY DS 0F UCBTYPE FIELD 11500002 DVAOPTS DS XL2 UCB OPTIONS 12000002 DVACLASS DS XL1 DEVICE CLASS 12500002 DVAUNIT DS XL1 UNIT TYPE 13000002 DVAMAXRC DS F MAXIMUM RECORD SIZE 13500002 DVADEVLG EQU *-DVAREA LENGTH OF THE DEVTYPE OUTPUT 14000002 * PREFIX 14500002 * 15000002 *********************************************************************** 15500002 * DEVTAB SECTION FOR DASD DEVICES * 16000002 *********************************************************************** 16500002 DVATAB DS 0CL12 17000002 DVACYL DS H PHYS NO CYL PER VOLUME 17500002 DVATRK DS H NO TRACKS PER CYLINDER 18000002 DVATRKLN DS H NO. OF BYTES PER TRACK 18500002 * 19000002 DVAOVHD DS 0H BLOCK OVERHEAD IF DVA2BOV=1 19500002 * **************************** 20000002 * * IF DVA2BOV=0 USE INSTEAD * 20500002 * * THE FOLLOWING TWO VALUES * 21000002 * **************************** 21500002 DVAOVNLB DS XL1 OVERHEAD NOT LAST BLOCK 22000002 DVAOVLB DS XL1 OVERHEAD LAST BLOCK 22500002 * 23000002 DVAOVNK DS XL1 OVERHEAD DECREMENT NOT KEYED 23500002 * 24000002 DVAFLAGS DS BL1 24500002 DVABDCYL EQU X'80' IF 1, DVACYL IS INVALID YL02130 24550002 DVA2BOV EQU X'08' IF 1, USE DVAOVHD 25000002 * IF 0, USE DVAOVNLB,DVAOVLB 25500002 DVAFTOL EQU X'01' IF 1, APPLY TOLERANCE FACTOR 26000002 * 26500002 DVATOL DS H TOLERANCE FACTOR 27000002 * ************************************* 27500002 * * APPLY TOLERANCE FACTOR AS FOLLOWS:* 28000002 * * 1. ADD BLOCKSIZE AND KEYLENGTH * 28500002 * * 2. MULTIPLY BY DVATOL * 29000002 * * 3. SHIFT RIGHT DVASHFT BITS * 29500002 * * 4. ADD APPROPRIATE OVERHEADS * 30000002 * ************************************* 30500002 DVASHFT EQU 9 SHIFT AMT TO DIVIDE BY 512 31000002 * 31500002 DVAENTLG EQU *-DVATAB BASIC SIZE OF DEVICE TABLE 32000002 * ENTRY, NOT INCLUDING ADDITIONAL 32500002 * CHARACTERISTICS FOR RPS 33000002 * 33500002 ********************************************************************** 34000002 * THE FOLLOWING SECTION OF THE TABLE IS PRESENT * 34500002 * ONLY FOR RPS DEVICES--TEST UCBTBYT2 FOR UCB2OPT3 * 35000002 ********************************************************************** 35500002 DVARPS DS 0CL4 RPS SECTION 36000002 DVAOVR0 DS H OVERHEAD BYTES FOR RECORD 0 36500002 DVASECT DS XL1 NR. SECTORS IN FULL TRACK 37000002 DVASECTD DS XL1 NR. DATA SECTORS 37500002 DVARPSLG EQU *-DVARPS SIZE OF RPS SECTION 38000002 * 38500002 * END OF DVA 39000002 MEND 39500002 *% DVAL2: ; 40000002 * % IF DVABASE = '' 40010002 * % THEN 40020002 * % DVABASE = 'BASED'; 40030002 *DCL 1 DVAREA DVABASE, 40500002 * 2 DVAPREFX, /* WORDS PREFIXED BY DEVTYPE */ 41000002 * 3 DVAUCBTY FIXED(32), /* UCB TYPE FIELD */ 41500002 * 4 DVAOPTS BIT(16), /* UCB OPTIONS */ 42000002 * 4 DVACLASS BIT(8), /* DEVICE CLASS */ 42500002 * 4 DVAUNIT BIT(8), /* UNIT TYPE */ 43000002 * 3 DVAMAXRC FIXED(31), /* MAXIMUM RECORD SIZE */ 43500002 * 44000002 * 2 DVATAB, /* SECTION INCLUDED BY DEVTAB */ 44500002 * 3 DVACYL FIXED(15), /* PHYS NUMBER CYL PER VOLUME */ 45000002 * 3 DVATRK FIXED(15), /* NR OF TRACKS PER CYL */ 45500002 * 3 DVATRKLN FIXED(15), /* TRACK LENGTH ( BYTES) */ 46000002 * 3 DVAOVHD FIXED(15), /* BLOCK OVERHEAD IF DVA2BOV IS ON */ 46500002 * /***********************************/ 47000002 * /* IF DVA2BOV IS OFF USE INSTEAD */ 47500002 * /* THE FOLLOWING TWO VALUES */ 48000002 * 4 DVAOVNLB PTR(8), /* OVERHEAD NOT LAST BLOCK */ 48500002 * 4 DVAOVLB PTR(8), /* OVERHEAD LAST BLOCK */ 49000002 * /***********************************/ 49500002 * 3 DVAOVNK PTR(8), /* OVERHEAD DECR IF NOT KEYED */ 50000002 * 3 DVAFLAGS BIT(8), /* FLAG BYTE */ 50500002 * 4 DVABDCYL BIT(1), /* IF 1, DVACYL IS INVALID YL02130 */ 50550002 * 4 * BIT(3), /* RESERVED */ 51000002 * 4 DVA2BOV BIT(1), /* IF ON, USE DVAOVHD */ 51500002 * /* ELSE USE DVAOVNLB & DVAOVLB */ 52000002 * 4 * BIT(2), /* RESERVED */ 52500002 * 4 DVAFTOL BIT(1), /* IF ON, APPLY TOLERANCE FACTOR */ 53000002 * 53500002 * 3 DVATOL FIXED(15), /* TOLERANCE FACTOR */ 54000002 * /***********************************/ 54500002 * /* (BLKSI+KEYLE)*DVATOL/DVADVSR */ 55000002 * /* GIVES THE ADJUSTED BLOCK SIZE */ 55500002 * /* TO WHICH APPROPRIATE OVERHEADS */ 56000002 * /* ARE THEN ADDED. */ 56500002 * /***********************************/ 57000002 * % DVADVSR = '512'; /* FRACTION DENOMINATOR FOR DVATOL */ 57500002 * 58000002 * 2 DVARPS, /* RPS SECTION */ 58500002 * 3 DVAOVR0 FIXED(15), /* OVERHEAD BYTES FOR RECORD 0 */ 59000002 * 3 DVASECT PTR(8), /* NUMBER OF SECTORS IN FULL TRACK */ 59500002 * 3 DVASECTD PTR(8); /* NUMBER OF DATA SECTORS */ 60000002