*COPY ALLOC 00001000 PUSH PRINT 00001200 AIF ('&SYSPARM' NE 'SUP').ALL01 00001400 PRINT OFF,NOGEN 00001600 .ALL01 ANOP 00001800 OWNDLIST DSECT 00004000 SPACE 00005000 *** OWNDLIST - CP OWNED VOLUME LIST 00006000 * 00007000 * 0 +-----------------------------------+-----------+ 00008000 * | OWNDVSER | OWNDRDEV | 00009000 * 8 +-----------------------------------+-----------+ 00010000 * 00011000 *** OWNDLIST - CP OWNED VOLUME LIST 00012000 SPACE 00015000 OWNDVSER DS CL6 VOLUME SERIAL NUMBER 00016000 OWNDRDEV DS 1H DISPLACEMENT OF RDEVBLOK FOR THE VOLUME 00017000 ORG OWNDRDEV 00018000 OWNDPREF DS 1H ALLOCATION PREFERENCE 00019000 EJECT 00020000 ALOCBLOK DSECT 00021000 SPACE 1 00022000 *** ALOCBLOK - DASD CYLINDER ALLOCATION BLOCK 00023000 * 00024000 * 0 +-----------------------+-----------+-----------+ 00025000 * | ALOCPNT | ALOCUSED | ALOCMAX | 00026000 * 8 +-----------+-----------+-----------+-----------+ 00026500 * | ALOCNTMP | | 00027000 * 10 +-----------+-----------------------------------+ 00027500 * | | 00028000 * = ALOCMAP = 00029000 * | | 00030000 * +-----------------------------------------------+ 00031000 * 00032000 *** ALOCBLOK - DASD CYLINDER ALLOCATION BLOCK 00033000 SPACE 1 00034000 ALOCPNT DS 1F POINTER TO NEXT ALOCBLOK ON CHAIN 00035000 ALOCUSED DS 1H NUMBER OF CYLINDERS CURRENTLY IN USE 00036000 ALOCMAX DS 1H MAXIMUM NUMBER OF CYLINDERS AVAILABLE 00037000 ALOCNTMP DS 1H NO. OF NON-TEMP CYLINDERS 00037250 DS 3H RESERVED FOR IBM USE 00037500 ALOCMAP DS 0F CYLINDER ALLOCATION BIT MAP 00038000 SPACE 1 00039000 * BITS DEFINED IN ALOCMAP 00040000 * BIT = 0 - CYLINDER IS AVAILABLE 00041000 * BIT = 1 - CYLINDER HAS BEEN ASSIGNED 00042000 SPACE 1 00043000 * NOTE THAT THE SIZE OF THE ALOCMAP IS VARIABLE AND DEPENDS ON 00044000 * THE NUMBER OF CYLINDERS ON THE DEVICE. GENERALLY, THE SIZE 00045000 * OF THE ALOCBLOK IS GIVEN BY THE FORMULA 00046000 * 00047000 * ALOCSIZE(DOUBLE WORDS) = ((ALOCMAX+63)/64)+2 00047500 * = (NO OF CYLS / BITS PER DOUBLEWORD) + HEADER 00048000 * 00049000 * WHERE ALOCMAX FOR 2314 = 203, FOR 3340 = (35MB=349,70MB=698), 00050100 * FOR 3330 MODEL 1 = 404, FOR 3330 MODEL 11 = 808, 00050200 * FOR 3350 = 555, FOR 2305 MODEL 1 = 48 AND MODEL 2 = 96 00050300 * ANY BITS IN THE MAP THAT REPRESENT CYLINDERS NOT PRESENT ON 00052000 * THE DEVICE ARE SET TO ONE 00053000 SPACE 1 00054000 * FOR TDISK ALLOCATION BLOCKS 00055000 ORG ALOCUSED 00056000 ALOCCYL1 DS 1H FIRST CYLINDER OF TDISK AREA 00057000 ALOCCYL2 DS 1H LAST CYLINDER OF TDISK AREA 00058000 SPACE 1 00059000 * BYTES DEFINED IN ALOCMAP 00060000 * BYTE = X'00' - CYLINDER IS AVAILABLE 00061000 * BYTE = X'AA' - CYLINDER HAS BEEN ALLOCATED 00062000 SPACE 1 00063000 * NOTE THAT THE SIZE OF THE TDISK ALOCMAP IS VARIABLE AND 00064000 * DEPENDS ON THE NUMBER OF CYLINDERS IN THE RANGE ALOCCYL1 TO 00065000 * ALOCCYL2. GENERALLY, THE SIZE OF A GIVEN BLOK IS GIVEN BY 00066000 * THE FORMULA 00067000 * ALOCSIZE(DOUBLE WORDS) = ((ALOCCYL2-ALOCCYL1+1+7)/8)+2 00067500 * = (NO OF CYLS (INCLUSIVE) / BYTES PER DOUBLEWORD) + HEADER 00068000 * ALOCSIZE(DOUBLE WORDS) = ((ALOCCYL2-ALOCCYL1+8)/8)+1 00069000 * 00070000 * BYTES FOR CYLINDERS NOT AVAILABLE WILL BE MARKED ALLOCATED 00071000 EJECT 00072000 RECBLOK DSECT 00073000 SPACE 1 00074000 *** RECBLOK - DASD PAGE ALLOCATION BLOCK 00075000 * 00076000 * 0 +-----------------------+-----------+-----+-----+ 00077000 * | RECPNT | RECCYL | R*1 | R*2 | 00078000 * 8 +-----------------------+-----------+-----+-----+ 00079000 * | RECMAP | 00080000 * | (192 pages max) | C106DK 00081300 * 20 +-----------------------------------------------+ C106DK 00081400 * 00082000 *** RECBLOK - DASD PAGE ALLOCATION BLOCK 00083000 SPACE 1 00086000 RECPNT DS 1F POINTER TO NEXT RECBLOK ON CHAIN 00087000 RECCYL DS 1H CYLINDER ADDRESS FOR PAGES IN THIS BLOCK 00088000 RECUSED DS 1X R*1 NUMBER OF PAGES CURRENTLY IN USE 00089000 RECMAX DS 1X R*2 MAXIMUM NUMBER OF PAGES AVAILABLE 00090000 RECMAP DS CL24 Page allocation bit map HRC106DK 00091200 SPACE 1 00092000 RECSIZE EQU (*-RECBLOK)/8 RECBLOK SIZE IN DOUBLE WORDS 00093000 SPACE 1 00094000 * BITS DEFINED IN RECMAP 00095000 * BIT = 0 - PAGE IS AVAILABLE 00096000 * BIT = 1 - PAGE HAS BEEN ASSIGNED 00097000 * 00098000 * NOTE THAT ALTHOUGH THE SIZE OF RECMAP IS FIXED, THE MAXIMUM 00099000 * NUMBER OF PAGES AVAILABLE ON A CYLINDER IS DEVICE DEPENDENT 00100000 * ANY PAGES THAT ARE NOT PHYSICALLY PRESENT ON A CYLINDER 00101000 * WILL HAVE THEIR CORRESPONDING BITS SET TO ONE 00102000 EJECT 00103000 POP PRINT 00104000 SPACE 00105000