*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