CRFPREFIX                                                        22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      41  DECLARATIONS

   (2)     180  DECLARATIONS

   (3)     209  ALBLK 

   (4)     307  DEALLOCATE BLOCK 

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   1

X01.00          DECLARATIONS                                                                                                     (1)



                                     0000     1 	.TITLE	ALBLK 

                                     0000     2 	.IDENT	/X01.00/

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000     9 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000    10 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000    11 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000    12 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000    13 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000    14 ; REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000    17 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000    18 ; CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 

                                     0000    24 ;++

                                     0000    25 ; FACILITY:  CROSS REFERENCE PROGRAM

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:  ALLOCATE AND DEALLOCATE VIRTUAL BLOCK

                                     0000    28 ;

                                     0000    29 ;

                                     0000    30 ; ENVIRONMENT:  PART OF LINKABLE IMAGE

                                     0000    31 ;

                                     0000    32 ; AUTHOR:  K.D. MORSE, CREATION DATE:  25-APR-77

                                     0000    33 ;

                                     0000    34 ; MODIFIED BY:

                                     0000    35 ;

                                     0000    36 ;	, : VERSION

                                     0000    37 ; 01	- 

                                     0000    38 ;--

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   2

X01.00          DECLARATIONS                                                                                                     (2)



                                     0000    40 	.SBTTL	DECLARATIONS

                                     0000    41 ;

                                     0000    42 ; INCLUDE FILES:

                                     0000    43 ;

                                     0000    44 

                                     0000    45 ;

                                     0000    46 ; MACROS:

                                     0000    47 ;

                                     0000    48 

                                     0000    49 	$CRFDEF					; DEFINE CRF GLOBALS

                                     0000    50 

                                     0000    51 ;

                                     0000    52 ; EQUATED SYMBOLS:

                                     0000    53 ;

                                     0000    54 

                           00000004  0000    55 BLK$L_SIZE = 4					; OFFSET TO SIZE OF THIS BLOCK

                           00000000  0000    56 BLK$L_ADDR = 0					; OFFSET TO ADDR OF NEXT BLOCK

                           0000000A  0000    57 CRF$K_MEMEXP = 10				; NUMBER OF PAGES TO EXPAND BY

                           00001400  0000    58 CRF$K_MAXBLK = CRF$K_MEMEXP * 512		; LARGEST BLOCK THAT CAN BE ALLOCATED

                                     0000    59 

                                     0000    60 ;

                                     0000    61 ; OWN STORAGE:

                                     0000    62 ;

                                     0000    63 

                                 00000000    64 	.PSECT	CRF$DATA,RD,WRT,NOEXE,NOSHR,PIC

                                     0000    65 

                  00000000 00000000  0000    66 NEW$L_BLKS:: .LONG	0,0			; ADDRESSES OF EXPANDED PAGES

                  00000000 00000000  0008    67 CRF$L_DYNMEM:: .LONG	0,0			; LISTHEAD OF DYNAMIC MEMORY

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   3

X01.00          ALBLK                                                                                                            (3)



                                     0010    69 	.SBTTL	ALBLK 

                                     0010    70 ;++

                                     0010    71 ; FUNCTIONAL DESCRIPTION:

                                     0010    72 ;

                                     0010    73 ; THIS ROUTINE ALLOCATES A BLOCK OF DYNAMIC MEMORY.  THE REQUESTED BLOCK

                                     0010    74 ; SIZE IS ROUNDED UP TO THE NEAREST FOUR BYTES.  AN ERROR CONDITION IS

                                     0010    75 ; RETURNED IF THE BLOCK CANNOT BE ALLOCATED AND THE CORRESPONDING ERROR

                                     0010    76 ; MESSAGE IS OUTPUT OVER THE USER'S ERROR CHANNEL.  A FIRST FIT ALGORITHM

                                     0010    77 ; IS USED.

                                     0010    78 ;

                                     0010    79 ; CALLING SEQUENCE:

                                     0010    80 ;

                                     0010    81 ;	CALL_S	#0,CRF$ALBLK

                                     0010    82 ;

                                     0010    83 ; INPUT PARAMETERS:

                                     0010    84 ;

                                     0010    85 ;	NONE

                                     0010    86 ;

                                     0010    87 ; IMPLICIT INPUTS:

                                     0010    88 ;

                                     0010    89 ;	R0 - CONTAINS SIZE OF BLOCK TO ALLOCATE

                                     0010    90 ;

                                     0010    91 ; OUTPUT PARAMETERS:

                                     0010    92 ;

                                     0010    93 ;	NONE

                                     0010    94 ;

                                     0010    95 ; IMPLICIT OUTPUTS:

                                     0010    96 ;

                                     0010    97 ;	SUCCESS:

                                     0010    98 ;		R0 - CONTAINS A ONE

                                     0010    99 ;		R1 - CONTAINS THE ADDRESS OF THE BLOCK

                                     0010   100 ;	FAILURE:

                                     0010   101 ;		R0 - CONTAINS A ZERO

                                     0010   102 ;

                                     0010   103 ; COMPLETION CODES:

                                     0010   104 ;

                                     0010   105 ;	NONE

                                     0010   106 ;

                                     0010   107 ; SIDE EFFECTS:

                                     0010   108 ;

                                     0010   109 ; THE DYNAMIC MEMORY LIST IS UPDATED.  MORE DYNAMIC MEMORY IS ACQUIRED

                                     0010   110 ; IF NEED BE.

                                     0010   111 ;

                                     0010   112 ;--

                                     0010   113 

                                     0010   114 

                                 00000000   115 	.PSECT	CRF$CODE,RD,NOWRT,EXE,SHR,PIC

                                     0000   116 

                                     0000   117 CRF$ALBLK::

                                     0000   118 

                               000C  0000   119 	.WORD	^M<R2,R3>			; SAVE REGISTERS

            50            03     C1  0002   120 	ADDL3	#3,R0,R3			; ROUND UP TO THE NEAREST

                          53         0005       

            53            03     CA  0006   121 	BICL2	#3,R3				; MULTIPLE OF FOUR BYTES

                          09     15  0009   122 	BLEQ	10$				; CHECK FOR SIZE <= 0

   00001400 8F            53     D1  000B   123 	CMPL	R3,#CRF$K_MAXBLK		; CHECK SIZE > MAXIMUM

                          42     15  0012   124 	BLEQ	35$				; BRANCH ON LEGAL SIZE

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   4

X01.00          ALBLK                                                                                                            (3)



            50   00658082 8F     D0  0014   125 10$:	MOVL	#CRF$_ILLBLKSIZE,R0		; REPORT ILLEGAL BLOCK SIZE

                          0065   31  001B   126 	BRW	AL_BLK_EXIT			; RETURN

                                     001E   127 ;

                                     001E   128 ; EXPAND THE PROGRAM REGION

                                     001E   129 ;

                                     001E   130 20$:	$EXPREG_S	#CRF$K_MEMEXP,NEW$L_BLKS ; EXPAND DYNAMIC MEMORY

            09            50     E8  0031   131 	BLBS	R0,30$				; BRANCH ON SUCCESS

            50   0065806A 8F     D0  0034   132 	MOVL	#CRF$_EXPREGFAIL,R0		; REPORT EXPAND REGION FAILURE

                          46     11  003B   133 	BRB	AL_BLK_EXIT			; RETURN

                                     003D   134 ;

                                     003D   135 ; NOW INSERT MEMORY INTO LIST.

                                     003D   136 ;

            51   00000000'EF     D0  003D   137 30$:	MOVL	NEW$L_BLKS,R1			; GET ADDRESS OF NEW BLOCK

            50       1400 8F     3C  0044   138 	MOVZWL	#CRF$K_MAXBLK,R0		; GET SIZE OF NEW BLOCK

   00000084'EF            00     FB  0049   139 	CALLS	#0,CRF$DEALBLK			; GO INSERT NEW BLK IN LIST

            03            50     E8  0050   140 	BLBS	R0,35$				; GO SEARCH MEMORY LIST

                          002D   31  0053   141 	BRW	AL_BLK_EXIT			; FAILED TO INSERT NEW BLOCK

                                     0056   142 ;

                                     0056   143 ; SEARCH DOWN LIST FOR FIRST BLOCK >= SIZE REQUESTED.

                                     0056   144 ;

            51   00000008'EF     9E  0056   145 35$:	MOVAB	CRF$L_DYNMEM,R1			; GET LISTHEAD OF DYNAMIC MEMORY

            52            51     D0  005D   146 40$:	MOVL	R1,R2				; SET NEW PREVIOUS BLOCK

            51            62     D0  0060   147 	MOVL	(R2),R1				; GET ADDRESS OF FREE BLOCK

                          B9     13  0063   148 	BEQL	20$				; END OF LIST, GO EXPAND MEMORY

         04 A1            53     D1  0065   149 	CMPL	R3,BLK$L_SIZE(R1)		; REQUESTED SIZE > BLOCK SIZE?

                          F2     14  0069   150 	BGTR	40$				; YES, KEEP LOOKING

                          0A     13  006B   151 	BEQL	50$				; BRANCH ON SAME SIZE

                                     006D   152 ;

                                     006D   153 ; TAKE PART OF THIS BLOCK AND LINK THE REST BACK INTO THE LIST.

                                     006D   154 ;

         04 A1            53     C2  006D   155 	SUBL2	R3,BLK$L_SIZE(R1)		; SUBTRACT OFF REQUESTED SIZE

            51         04 A1     C0  0071   156 	ADDL2	BLK$L_SIZE(R1),R1		; GET ADDRESS OF REQUESTED BLOCK

                          05     11  0075   157 	BRB	60$				; RETURN

                                     0077   158 ;

                                     0077   159 ; BLOCK WAS PERFECT FIT.  DELETE IT FROM THE LIST.

                                     0077   160 ;

            62            61     D0  0077   161 50$:	MOVL	BLK$L_ADDR(R1),BLK$L_ADDR(R2)	; SET POINTER TO NEXT BLOCK

                          61     7C  007A   162 	CLRQ	BLK$L_ADDR(R1)			; CLEAN UP THE BLOCK

            50   00658001 8F     D0  007C   163 60$:	MOVL	#CRF$_SUCCESS,R0		; SET SUCCESS STATUS CODE

                                     0083   164 AL_BLK_EXIT:

                                 04  0083   165 	RET					; RETURN

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   5

X01.00          DEALLOCATE BLOCK                                                                                                 (4)



                                     0084   167 	.SBTTL	DEALLOCATE BLOCK 

                                     0084   168 ;++

                                     0084   169 ; FUNCTIONAL DESCRIPTION:

                                     0084   170 ;

                                     0084   171 ; THIS ROUTINE DEALLOCATES A BLOCK OF MEMORY AND INSERTS IT INTO A DYNAMIC

                                     0084   172 ; MEMORY LIST.  THE BLOCK IS ZEROED AND ITS SIZE IS ROUNDED UP TO THE

                                     0084   173 ; NEAREST FOUR BYTES.  IF IT IS ADJACENT TO ANOTHER BLOCK, THE TWO BLOCKS

                                     0084   174 ; ARE COMPACTED INTO ONE.

                                     0084   175 ;

                                     0084   176 ; CALLING SEQUENCE:

                                     0084   177 ;

                                     0084   178 ;	CALLS	#0,CRF$DEALBKL

                                     0084   179 ;

                                     0084   180 ; INPUT PARAMETERS:

                                     0084   181 ;

                                     0084   182 ;	NONE

                                     0084   183 ;

                                     0084   184 ; IMPLICIT INPUTS:

                                     0084   185 ;

                                     0084   186 ;	R0 - SIZE OF BLOCK TO RELEASE

                                     0084   187 ;	R1 - ADDRESS OF BLOCK TO RELEASE

                                     0084   188 ;

                                     0084   189 ; OUTPUT PARAMETERS:

                                     0084   190 ;

                                     0084   191 ;	NONE

                                     0084   192 ;

                                     0084   193 ; IMPLICIT OUTPUTS:

                                     0084   194 ;

                                     0084   195 ;	SUCCESS:

                                     0084   196 ;		R0 - CONTAINS A ONE

                                     0084   197 ;	FAILURE:

                                     0084   198 ;		R0 - CONTAINS A ZERO

                                     0084   199 ;		ERROR MESSAGE IS OUTPUT ON USER'S CHANNEL.

                                     0084   200 ;

                                     0084   201 ; COMPLETION CODES:

                                     0084   202 ;

                                     0084   203 ;	NONE

                                     0084   204 ;

                                     0084   205 ; SIDE EFFECTS:

                                     0084   206 ;

                                     0084   207 ;	NONE

                                     0084   208 ;

                                     0084   209 ;--

                                     0084   210 

                                     0084   211 

                                 00000084   212 	.PSECT	CRF$CODE,RD,NOWRT,EXE,SHR,PIC

                                     0084   213 

                                     0084   214 CRF$DEALBLK::

                               003C  0084   215 	.WORD	^M<R2,R3,R4,R5>			; ENTRY POINT (OR MASK)

            50            03     C1  0086   216 	ADDL3	#3,R0,R3			; ROUND UP TO THE NEAREST

                          53         0089       

            53            03     CA  008A   217 	BICL2	#3,R3				; MULTIPLE OF FOUR BYTES

                          09     15  008D   218 	BLEQ	10$				; CHECK FOR SIZE <= 0

   00001400 8F            53     D1  008F   219 	CMPL	R3,#CRF$K_MAXBLK		; CHECK SIZE > MAXIMUM

                          0A     15  0096   220 	BLEQ	20$				; BRANCH ON LEGAL SIZE

            50   00658082 8F     D0  0098   221 10$:	MOVL	#CRF$_ILLBLKSIZE,R0		; REPORT ILLEGAL BLOCK SIZE

                          0072   31  009F   222 	BRW	DEAL_BLK_EXIT			; RETURN

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   6

X01.00          DEALLOCATE BLOCK                                                                                                 (4)



            53            04     C7  00A2   223 20$:	DIVL3	#4,R3,R4			; GET SIZE IN LONGWORDS

                          54         00A5       

            52            51     D0  00A6   224 	MOVL	R1,R2				; GET BLOCK ADDRESS

                          82     D4  00A9   225 25$:	CLRL	(R2)+				; CLEAN UP BLOCK

            FB            54     F5  00AB   226 	SOBGTR	R4,25$				; KEEP CLEANING

            50   00000008'EF     9E  00AE   227 	MOVAB	CRF$L_DYNMEM,R0			; GET LISTHEAD OF DYNAMIC MEMORY

            54            52     D0  00B5   228 	MOVL	R2,R4				; GET ADDR FOLLOWING NEW BLOCK

                                     00B8   229 ;

                                     00B8   230 ; SEARCH DOWN LIST FOR INSERTION POINT.

                                     00B8   231 ;

            52            50     D0  00B8   232 30$:	MOVL	R0,R2				; R2 CONTAINS PREV BLOCK

            50            60     D0  00BB   233 	MOVL	(R0),R0				; R0 CONTAINS NEXT BLOCK ADDR

                          25     13  00BE   234 	BEQLU	37$				; BRANCH ON END OF LIST

            50            51     D1  00C0   235 	CMPL	R1,R0				; IS NEW ADDR > NEXT ADDR

                          F3     1A  00C3   236 	BGTRU	30$				; YES, KEEP LOOKING

                                     00C5   237 ;

                                     00C5   238 ; FOUND INSERTION POINT.

                                     00C5   239 ;	R2 = ADDR OF PREVIOUS BLOCK

                                     00C5   240 ;	R1 = ADDR OF NEW BLOCK

                                     00C5   241 ;	R0 = ADDR OF NEXT BLOCK

                                     00C5   242 ;

            62            51     D0  00C5   243 	MOVL	R1,BLK$L_ADDR(R2)		; POINT PREV TO NEW

            50            54     D1  00C8   244 	CMPL	R4,R0				; IS NEW ADJACENT TO NEXT?

                          0B     13  00CB   245 	BEQLU	35$				; YES, BRANCH TO COMPACT

                          35     1A  00CD   246 	BGTRU	45$				; ERROR, WITHIN BLOCK

            61            50     D0  00CF   247 	MOVL	R0,BLK$L_ADDR(R1)		; NO, POINT NEW TO NEXT

         04 A1            53     D0  00D2   248 	MOVL	R3,BLK$L_SIZE(R1)		; SET SIZE OF NEW BLOCK

                          14     11  00D6   249 	BRB	40$				; GO CHECK ADJACENT TO PREV

                                     00D8   250 ;

                                     00D8   251 ; COMPACT WITH NEXT BLOCK.

                                     00D8   252 ;

         04 A0            53     C1  00D8   253 35$:	ADDL3	R3,BLK$L_SIZE(R0),BLK$L_SIZE(R1) ; SET SIZE = NEW+NEXT

                       04 A1         00DC       

            61            60     D0  00DE   254 	MOVL	BLK$L_ADDR(R0),BLK$L_ADDR(R1)	; SET NEXT POINTER

                          60     7C  00E1   255 	CLRQ	(R0)				; CLEAR OLD NEXT BLOCK

                          07     11  00E3   256 	BRB	40$				; GO CHECK FOR COMPACTION

                                     00E5   257 ;

                                     00E5   258 ; SET UP NEW BLOCK ON END OF LIST.

                                     00E5   259 ;

            62            51     D0  00E5   260 37$:	MOVL	R1,BLK$L_ADDR(R2)		; POINT PREV TO NEW

         04 A1            53     D0  00E8   261 	MOVL	R3,BLK$L_SIZE(R1)		; SET NEW BLOCK SIZE

                                     00EC   262 ;

                                     00EC   263 ; CHECK FOR COMPACT WITH PREVIOUS BLOCK.

                                     00EC   264 ;

         04 A2            52     C1  00EC   265 40$:	ADDL3	R2,BLK$L_SIZE(R2),R5		; GET END OF PREV BLOCK

                          55         00F0       

            51            55     D1  00F1   266 	CMPL	R5,R1				; IS NEW ADJACENT TO PREV?

                          0E     1A  00F4   267 	BGTRU	45$				; ERROR, BLOCK WITHIN PREV

                          15     12  00F6   268 	BNEQU	55$				; NO, NOT ADJACENT

                                     00F8   269 ;

                                     00F8   270 ; COMPACT WITH PREVIOUS BLOCK.

                                     00F8   271 ;

         04 A2         04 A1     C0  00F8   272 	ADDL2	BLK$L_SIZE(R1),BLK$L_SIZE(R2)	; PREV SIZE = NEW+PREV

            62            61     D0  00FD   273 	MOVL	BLK$L_ADDR(R1),BLK$L_ADDR(R2)	; SET UP NEXT PNTR

                          61     7C  0100   274 	CLRQ	(R1)				; CLEAR NEW BLOCK PNTR & SIZE

                          09     11  0102   275 	BRB	55$				; BRANCH TO EXIT

                                     0104   276 ;

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   7

X01.00          DEALLOCATE BLOCK                                                                                                 (4)



                                     0104   277 ; ERROR, BLOCK WITHIN BLOCK.

                                     0104   278 ;

            50   00658072 8F     D0  0104   279 45$:	MOVL	#CRF$_BLKWTHINBL,R0		; REPORT BLOCK WITHIN BLOCK

                          07     11  010B   280 	BRB	DEAL_BLK_EXIT			; RETURN

            50   00658001 8F     D0  010D   281 55$:	MOVL	#CRF$_SUCCESS,R0		; SET SUCCESS STATUS CODE

                                     0114   282 DEAL_BLK_EXIT:

                                 04  0114   283 	RET					; RETURN

                                     0115   284 

                                     0115   285 	.END

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   8

SYMBOL TABLE                                                                                                                     (4)



AL_BLK_EXIT      00000083 R     04   DMY$L_KEYADDR  = 00000008            

BIT...         = 006580AA            DMY$L_LINKUP   = 00000004            

BLK$L_ADDR     = 00000000            DMY$W_1STFREE  = 0000000E            

BLK$L_SIZE     = 00000004            DMY$W_FIRST    = 00000000            

CRF$ALBLK        00000000 RG    04   DMY$W_LAST     = 00000002            

CRF$B_FLAGS      00000009            DMY$W_NUMFREE  = 0000000C            

CRF$B_IR_DEFIND  00000014            FLD$B_MAXLNG   = 00000003            

CRF$B_KEYTYPE    00000008            FLD$B_SET_CLR  = 00000002            

CRF$B_OU_PAG1    0000000C            FLD$K_LENGTH   = 0000000C            

CRF$B_OU_PRTIND  00000014            FLD$L_FAODSC   = 00000004            

CRF$B_OU_SAVIND  00000018            FLD$W_MASK     = 00000000            

CRF$B_OU_SUCPAG  00000010            GBL...         = 00000000            

CRF$DEALBLK      00000084 RG    04   HIS$K_ENTRYSIZE= 00000010            

CRF$K_FACILCOD = 00000065            HIS$K_LISTSIZE = 00000070            

CRF$K_MAXBLK   = 00001400            HIS$L_FATHER   = FFFFFFF0            

CRF$K_MEMEXP   = 0000000A            HIS$L_FATHROFF = FFFFFFF4            

CRF$L_DYNMEM     00000008 RG    03   HIS$L_LEFTBRO  = FFFFFFF8            

CRF$L_ERROR      0000000C            HIS$L_LEFTSON  = 00000008            

CRF$L_IK_CTLTBL  00000004            HIS$L_LINKUP   = 00000008            

CRF$L_IK_KEYADR  00000008            HIS$L_LINKUPOFF= 0000000C            

CRF$L_IK_VALADR  0000000C            HIS$L_NODE     = 00000000            

CRF$L_IR_CTLTBL  00000004            HIS$L_NTH      = 0000000C            

CRF$L_IR_KEYADR  00000008            HIS$L_OFFSET   = 00000004            

CRF$L_IR_REFADR  0000000C            HIS$L_RIGHTBRO = FFFFFFFC            

CRF$L_K1FMTBL    00000014            HIS$L_RIGHTSON = 0000000C            

CRF$L_K2FMTBL    00000018            HIS$L_TOP      = 00000004            

CRF$L_OUTPUT     00000010            KEY$B_DEFLNG   = 00000018            

CRF$L_OU_CTLTBL  00000004            KEY$K_DATASIZE = 0000001C            

CRF$L_OU_LINWID  00000008            KEY$K_SIZE     = 00000028            

CRF$L_R1FMTBL    00000024            KEY$L_DATA     = 0000000C            

CRF$L_R2FMTBL    00000028            KEY$L_KEYADDR  = 00000008            

CRF$L_ROOT       00000000            KEY$L_LINKUP   = 00000004            

CRF$L_V1FMTBL    0000001C            KEY$L_REFLIST  = 00000010            

CRF$L_V2FMTBL    00000020            KEY$L_VALADDR  = 0000000C            

CRF$W_ENTSIZE    00000004            KEY$T_DEFNAME  = 00000019            

CRF$W_ERRSTS     0000000A            KEY$W_DEFFLAG  = 00000016            

CRF$W_IK_VALFLG  00000010            KEY$W_NEXT     = 00000000            

CRF$W_IR_REFLAG  00000010            KEY$W_PREV     = 00000002            

CRF$W_NODSIZE    00000006            KEY$W_VALFLAG  = 00000014            

CRF$_BLDNODFAIL= 00658052            NEW$L_BLKS       00000000 RG    03   

CRF$_BLKWTHINBL= 00658072            NOD$K_1STFREE  = 00000010            

CRF$_EXPREGFAIL= 0065806A            NOD$K_NUMFREE  = 0000000C            

CRF$_FAILINSRT = 0065807A            NOD$K_SIZE     = 000001F0            

CRF$_FAOFAIL   = 0065809A            REF$B_REFLNG   = 00000006            

CRF$_FOUNDKEY  = 00658021            REF$K_SIZE     = 00000016            

CRF$_HISTOVRFLO= 00658062            REF$L_FLINK    = 00000000            

CRF$_ILLBLKSIZE= 00658082            REF$T_REFNAME  = 00000007            

CRF$_KEY1STENTR= 00658011            REF$W_REFFLAG  = 00000004            

CRF$_KEYPRVENTR= 00658009            SYS$EXPREG       ********   X   04   

CRF$_KEYTYPE   = 006580A2            

CRF$_LINELNG   = 00658092            

CRF$_NO_OUTRTN = 0065808A            

CRF$_REFLNG    = 0065805A            

CRF$_REFPRVENTR= 00658019            

CRF$_SUCCESS   = 00658001            

DEAL_BLK_EXIT    00000114 R     04   

DMY$K_SIZE     = 00000010            

ALBLK                                                            22-AUG-1978 04:41:35   VAX-11 MACRO X0.3-11               Page   9

PROGRAM SECTION SYNOPSIS                                                                                                         (4)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            0000002C      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

CRF$DATA         00000010      03       PIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT BYTE  

CRF$CODE         00000115      04       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

23256. BYTES LEFT IN FREE MEMORY POOL.

1160. BYTES OF RECLAIMED MEMORY.

OBJ$:ALBLK,LIS$:ALBLK/-SP=LIB$:CRF/ML,SRC$:CRFPREFIX,ALBLK

20 MLB DIR RDS - 163 GETS TO DEFINE 10 MACROS. 9 INTER. FILE WRITES. 

