LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    4000  DECLARATIONS

   (1)   10200  LOADER - LOAD A DEVICE DRIVER/DATABASE

   (1)   16900  CHECK_DRV - CHECK IF DRIVER ALREADY LOADED

   (1)   19900  LOAD_DB - LOAD THE DATABASE

   (1)   43700  DB_ERROR - ERROR LOADING DATABASE

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   1

X01                                                                                                                              (1)



                                     0000   100 	.TITLE	LOADER - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS

                                     0000   200 	.IDENT	/X01/

                                     0000   300 

                                     0000   400 ;

                                     0000   500 ; COPYRIGHT (C) 1978

                                     0000   600 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   700 ;

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

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

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

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

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

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

                                     0000  1400 ; REMAIN IN DEC.

                                     0000  1500 ;

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

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

                                     0000  1800 ; CORPORATION.

                                     0000  1900 ;

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

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

                                     0000  2200 ;

                                     0000  2300 

                                     0000  2400 ;++

                                     0000  2500 ; FACILITY:	SYSGEN

                                     0000  2600 ;

                                     0000  2700 ; ABSTRACT:	LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS

                                     0000  2800 ;

                                     0000  2900 ;

                                     0000  3000 ; ENVIRONMENT:	USER MODE PRIVILEGED CODE

                                     0000  3100 ;

                                     0000  3200 ; AUTHOR:	LEN KAWELL, CREATION DATE:16-JUN-716

                                     0000  3300 ;

                                     0000  3400 ; MODIFIED BY:

                                     0000  3500 ;

                                     0000  3600 ;	, : VERSION

                                     0000  3700 ; 01	- 

                                     0000  3800 ;--

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   2

X01             DECLARATIONS                                                                                                     (1)



                                     0000  4000 	.SBTTL	DECLARATIONS

                                     0000  4100 

                                     0000  4200 

                                     0000  4300 ;

                                     0000  4400 ; INCLUDE FILES:

                                     0000  4500 ;

                                     0000  4800 

                                     0000  4900 ;

                                     0000  5000 ; MACROS:

                                     0000  5100 ;

                                     0000  5200 

                                     0000  5300 ;

                                     0000  5400 ; EQUATED SYMBOLS:

                                     0000  5500 ;

                                     0000  5600 

                                     0000  5700 	$SYSGMSGDEF			;DEFINE SYSGEN MESSAGES

                                     0000  5800 	$IPLDEF				;DEFINE SYSTEM IPL'S

                                     0000  5900 	$DYNDEF				;DEFINE DYNAMIC MEMORY TYPES

                                     0000  6000 	$DDBDEF				;DEFINE DEVICE DATA BLOCK

                                     0000  6100 	$UCBDEF				;DEFINE UNIT CONTROL BLOCK

                                     0000  6200 	$CRBDEF				;DEFINE CHANNEL CONTROL BLOCK

                                     0000  6300 	$VECDEF				;DEVICE INTERRUPT VECTOR 

                                     0000  6400 	$IDBDEF				;DEFINE INTERRUPT DISPATCH BLOCK

                                     0000  6500 	$ADPDEF				;DEFINE ADAPTER CONTROL BLOCK

                                     0000  6600 	$PRDEF				;DEFINE PROCESSOR REGISTERS

                                     0000  6700 	$DPTDEF				;DEFINE DRIVER PROLOGUE TABLE

                                     0000  6800 	$ACFDEF				;DEFINE AUTO-CONFIGURE ARG LIST

                                     0000  6900 	$PTEDEF				;DEFINE PAGE TABLE ENTRIES

                                     0000  7000 	$UBADEF				;DEFINE UNIBUS ADAPTER

                                     0000  7002 	$DDTDEF				;DEFINE DDT

                                     0000  7100 

                                     0000  7200 ;

                                     0000  7300 ; OWN STORAGE:

                                     0000  7400 ;

                                     0000  7500 

                                 00000000  7600 	.PSECT	IOGEN$DATA RD,WRT,NOEXE

                                     0000  7700 

                                     0000  7800 IOGEN$GL_DPT::			;ADDRESS OF DRIVER PROLOGUE TABLE

                           00000004  0000  7900 	.BLKL	1

                                     0004  8000 LOAD_FLAGS:				;CONTROL BLOCKS CREATED FLAGS

                           00000005  0004  8100 	.BLKB	1

                                     0005  8200 	_VIELD	LOAD,0,<-		; FLAG DEFINTIONS

                                     0005  8300 		<DDB,,M>,-		;  DDB CREATED

                                     0005  8400 		<CRB,,M>,-		;  CRB CREATED

                                     0005  8500 		<IDB,,M>,-		;  IDB CREATED

                                     0005  8600 		<UCB,,M>,-		;  UCB CREATED

                                     0005  8700 		>

                                     0005  8800 DDB_BLINK:				;DDB BACKWARD LINK

                           00000009  0005  8900 	.BLKL	1

                                     0009  9000 UCB_BLINK:				;UCB BACKWARD LINK

                           0000000D  0009  9100 	.BLKL	1

                                     000D  9200 

                                 00000000  9300 	.PSECT	IOGEN$CODE RD,NOWRT,EXE

                                     0000  9400 

                                     0000  9500 INT_DISP:				;INTERRUPT DISPATCHER MODEL

                          3C     BB  0000  9600 	PUSHR	#^M<R2,R3,R4,R5>

                 00000000'9F     16  0002  9700 	JSB	@#INT_DISP

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   3

X01             DECLARATIONS                                                                                                     (1)



                                     0008  9800 

                                     0008  9900 

                                     0008 10000 

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   4

X01             LOADER - LOAD A DEVICE DRIVER/DATABASE                                                                           (1)



                                     0008 10200 	.SBTTL	LOADER - LOAD A DEVICE DRIVER/DATABASE

                                     0008 10300 

                                     0008 10400 ;++

                                     0008 10500 ; FUNCTIONAL DESCRIPTION:

                                     0008 10600 ;

                                     0008 10700 ;	This routine will load a device driver, a device driver and

                                     0008 10800 ;	database, or just a single unit into an already existing

                                     0008 10900 ;	database.

                                     0008 11000 ;

                                     0008 11100 ; CALLING SEQUENCE:

                                     0008 11200 ;

                                     0008 11300 ;	CALL IOGEN$LOADER(ACF_LIST)

                                     0008 11400 ;

                                     0008 11500 ; INPUT PARAMETERS:

                                     0008 11600 ;

                                     0008 11650 ;	ACF_LIST -

                                     0008 11675 ;

                                     0008 11700 ;	ACF$L_ADAPTER(AP) = ADDRESS OF ADAPTER CONTROL BLOCK

                                     0008 11800 ;	ACF$L_CONFIGREG(AP) = ADDRESS OF CONFIGURATION STATUS REGISTER

                                     0008 11900 ;	ACF$W_AVECTOR(AP) = OFFSET TO ADAPTER INTERRUPT VECTOR (SCB)

                                     0008 12000 ;	ACF$B_AUNIT(AP) = ADAPTER UNIT NUMBER

                                     0008 12100 ;	ACF$B_AFLAG(AP) = ADAPTER GENERATION CONTROL FLAGS

                                     0008 12200 ;	ACF$L_CONTRLREG(AP) = ADDRESS OF CONTROL REGISTER

                                     0008 12300 ;	ACF$W_CVECTOR(AP) = OFFSET TO CONTROLLER INTERRUPT VECTOR (TABLE)

                                     0008 12400 ;	ACF$B_CUNIT(AP) = CONTROLLER UNIT NUMBER

                                     0008 12500 ;	ACF$B_CNUMVEC(AP) = NUMBER OF CONTROLLER VECTORS

                                     0008 12600 ;	ACF$L_DEVNAME(AP) = ADDRESS OF DEVICE NAME COUNTED STRING

                                     0008 12700 ;	ACF$L_DRVNAME(AP) = ADDRESS OF DRIVER NAME COUNTED STRING

                                     0008 12800  

                                     0008 12900 ;

                                     0008 13000 ; IMPLICIT INPUTS:

                                     0008 13100 ;

                                     0008 13200 ;	NONE

                                     0008 13300 ;

                                     0008 13400 ; OUTPUT PARAMETERS:

                                     0008 13500 ;

                                     0008 13600 ;	NONE

                                     0008 13700 ;

                                     0008 13800 ; IMPLICIT OUTPUTS:

                                     0008 13900 ;

                                     0008 14000 ;	DRIVER AND/OR DATABASE LOADED

                                     0008 14100 ;

                                     0008 14200 ; COMPLETION CODES:

                                     0008 14300 ;

                                     0008 14400 ;	R0 = STATUS OF OPERATION

                                     0008 14500 ;

                                     0008 14600 ; SIDE EFFECTS:

                                     0008 14700 ;

                                     0008 14800 ;	NONE

                                     0008 14900 ;

                                     0008 15000 ;--

                                     0008 15100 

                                     0008 15200 IOGEN$LOADER::

                               0000  0008 15300 	.WORD	0

         0B AC            00     E0  000A 15400 	BBS	#ACF$V_RELOAD,ACF$B_AFLAG(AP),10$ ;BR IF RELOAD REQUESTED

                          10         000E       

                                     000F 15500 	$CMKRNL_S W^CHECK_DRV,(AP)	;CHECK IF DRIVER LOADED

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   5

X01             LOADER - LOAD A DEVICE DRIVER/DATABASE                                                                           (1)



            0D            50     E9  001C 15600 	BLBC	R0,20$			;BR IF DRIVER LOADED

                       18 AC     DD  001F 15700 10$:	PUSHL	ACF$L_DRVNAME(AP)	;SET ADDR OF DRIVER NAME

   00000000'EF            01     FB  0022 15800 	CALLS	#1,IOGEN$LOADDRIV	;LOAD THE DRIVER

            15            50     E9  0029 15900 	BLBC	R0,EXIT			;BR IF ERROR

                                     002C 16000 20$:

            50            01     D0  002C 16100 	MOVL	#1,R0			;ASSUME WE'RE DONE

                       14 AC     D5  002F 16200 	TSTL	ACF$L_DEVNAME(AP)	;DEVICE NAME SPECIFIED?

                          0D     13  0032 16300 	BEQL	EXIT			;BR IF NOT - DON'T LOAD DATABASE

                                     0034 16400 	$CMKRNL_S W^LOAD_DB,(AP)	;LOAD THE DATABASE

                                     0041 16500 EXIT:

                                 04  0041 16600 	RET

                                     0042 16700 

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   6

X01             CHECK_DRV - CHECK IF DRIVER ALREADY LOADED                                                                       (1)



                                     0042 16900 	.SBTTL	CHECK_DRV - CHECK IF DRIVER ALREADY LOADED

                                     0042 17000 ;++

                                     0042 17100 ;

                                     0042 17200 ; Local kernel mode routine to check if the driver is already loaded.

                                     0042 17300 ;

                                     0042 17400 ;--

                                     0042 17500 CHECK_DRV:

                               00FC  0042 17600 	.WORD	^M<R2,R3,R4,R5,R6,R7>

                          FFB9'  30  0044 17700 	BSBW	IOGEN$LOCK_IODB		;LOCK THE I/O DATABASE

            55         18 AC     D0  0047 17800 	MOVL	ACF$L_DRVNAME(AP),R5	;GET ADDR OF DRIVER NAME

            54            85     9A  004B 17900 	MOVZBL	(R5)+,R4		;GET SIZE OF DRIVER NAME

            56   00000000'GF     9E  004E 18000 	MOVAB	G^IOC$GL_DPTLIST,R6	;GET ADDR OF DPT LIST

            57            56     D0  0055 18100 	MOVL	R6,R7			;SAVE IT

                                     0058 18200 10$:

            50            01     D0  0058 18300 	MOVL	#1,R0			;ASSUME NOT LOADED

            56            66     D0  005B 18400 	MOVL	DPT$L_FLINK(R6),R6	;GET ADDR OF NEXT DRIVER PROLOGUE

            57            56     D1  005E 18500 	CMPL	R6,R7			;END OF LIST?

                          14     13  0061 18600 	BEQL	20$			;BR IF YES

            51         16 A6     9E  0063 18700 	MOVAB	DPT$T_NAME(R6),R1	;GET ADDR OF DRIVER NAME

            50            81     9A  0067 18800 	MOVZBL	(R1)+,R0		;GET SIZE OF DRIVER NAME

            61            50     2D  006A 18900 	CMPC5	R0,(R1),#0,R4,(R5)	;COMPARE DRIVER NAMES

            54            00         006D       

                          65         006F       

                          E6     12  0070 19000 	BNEQ	10$			;BR IF NOT EQUAL

       0000'CF            56     D0  0072 19100 	MOVL	R6,W^IOGEN$GL_DPT	;SET ADDR OF DRIVER PROLOGUE

                                     0077 19200 20$:

                          50     DD  0077 19300 	PUSHL	R0			;SAVE STATUS

                          FF84'  30  0079 19400 	BSBW	IOGEN$UNLK_IODB		;UNLOCK THE I/O DATABASE

                          50   8ED0  007C 19500 	POPL	R0			;RESTORE THE STATUS

                                 04  007F 19600 	RET

                                     0080 19700 

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   7

X01             LOAD_DB - LOAD THE DATABASE                                                                                      (1)



                                     0080 19900 	.SBTTL	LOAD_DB - LOAD THE DATABASE

                                     0080 20000 ;++

                                     0080 20100 ;

                                     0080 20200 ; Local kernel mode routine to load the UCB and if not loaded yet,

                                     0080 20300 ; the DDB, CRB, and IDB.

                                     0080 20400 ;

                                     0080 20500 ;--

                                     0080 20600 LOAD_DB:

                               0FFC  0080 20700 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                     0004'CF     94  0082 20800 	CLRB	W^LOAD_FLAGS		;CLEAR LOADER FLAGS

            5B       0000'CF     D0  0086 20900 	MOVL	W^IOGEN$GL_DPT,R11	;GET ADDR OF DRIVER PROLOGUE

                          FF72'  30  008B 21000 	BSBW	IOGEN$LOCK_IODB		;LOCK THE I/O DATABASE

                                     008E 21100 	SETIPL	#IPL$_SYNCH		;SYNCHRONIZE I/O DATABASE ACCESS

                                     0091 21200 ;

                                     0091 21300 ; CHECK IF DEVICE DATABASE ALREADY LOADED

                                     0091 21400 ;

            55         14 AC     D0  0091 21500 	MOVL	ACF$L_DEVNAME(AP),R5	;GET ADDR OF DEVICE NAME

            54            85     9A  0095 21600 	MOVZBL	(R5)+,R4		;GET SIZE OF DEVICE NAME

            5A   00000000'GF     DE  0098 21700 	MOVAL	G^IOC$GL_DEVLIST,R10	;GET ADDR OF DEVICE LISTHEAD

                          6A     D5  009F 21800 20$:	TSTL	DDB$L_LINK(R10)		;IS THERE A NEXT DDB?

                          31     13  00A1 21900 	BEQL	CREATE_DDB		;BR IF NOT - CREATE A NEW DDB

            5A            6A     D0  00A3 22000 	MOVL	DDB$L_LINK(R10),R10	;GET ADDR OF NEXT DDB

            51         14 AA     9E  00A6 22100 	MOVAB	DDB$T_NAME(R10),R1	;GET ADDR OF DEVICE NAME

            50            81     9A  00AA 22200 	MOVZBL	(R1)+,R0		;GET SIZE OF DEVICE NAME

            61            50     2D  00AD 22300 	CMPC5	R0,(R1),#0,R4,(R5)	;COMPARE DEVICE NAMES

            54            00         00B0       

                          65         00B2       

                          EA     12  00B3 22400 	BNEQ	20$			;BR IF NOT EQUAL

                                     00B5 22500 

            50         04 AA     D0  00B5 22600 	MOVL	DDB$L_UCB(R10),R0	;GET ADDR OF FIRST UCB

            59         20 A0     D0  00B9 22700 	MOVL	UCB$L_CRB(R0),R9	;GET ADDR OF CRB

            58         1C A9     D0  00BD 22800 	MOVL	CRB$L_INTD+VEC$L_IDB(R9),R8 ;GET ADDR OF IDB

         48 A0         12 AC     91  00C1 22810 30$:	CMPB	ACF$B_CUNIT(AP),UCB$W_UNIT(R0) ;IS UCB ALREADY LOADED?

                          03     12  00C6 22820 	BNEQ	40$			;BR IF NOT

                          0230   31  00C8 22830 	BRW	DB_EXIT			;ELSE NOTHING TO DO - EXIT

            50         2C A0     D0  00CB 22840 40$:	MOVL	UCB$L_LINK(R0),R0	;GET ADDR OF NEXT UCB

                          F0     12  00CF 22850 	BNEQ	30$			;BR IF THERE IS ONE

                          011F   31  00D1 22900 	BRW	CREATE_UCB		;CREATE THE NEW UCB

                                     00D4 23000 ;

                                     00D4 23100 ; CREATE THE DDB

                                     00D4 23200 ;

                                     00D4 23300 CREATE_DDB:

            51            34     9A  00D4 23400 	MOVZBL	#DDB$K_LENGTH,R1	;GET SIZE OF DDB

                          FF26'  30  00D7 23500 	BSBW	IOGEN$ALLOBLOCK		;CREATE THE DDB

            03            50     E8  00DA 23600 	BLBS	R0,10$			;BR IF SUCCESS

                          0222   31  00DD 23700 	BRW	DB_ERROR		;ELSE - ERROR

       0004'CF            01     88  00E0 23800 10$:	BISB	#LOAD_M_DDB,W^LOAD_FLAGS ;SET DDB LOADED FLAG

       0005'CF            6A     DE  00E5 23900 	MOVAL	DDB$L_LINK(R10),W^DDB_BLINK ;SAVE DDB BACKWARD LINK

            6A            52     D0  00EA 24000 	MOVL	R2,DDB$L_LINK(R10)	;SET LINK TO THIS DDB

            5A            52     D0  00ED 24100 	MOVL	R2,R10			;GET ADDR OF DDB

         08 AA            51     B0  00F0 24200 	MOVW	R1,DDB$W_SIZE(R10)	;SET SIZE

         0A AA            06     90  00F4 24300 	MOVB	#DYN$C_DDB,DDB$B_TYPE(R10) ;SET TYPE

                       0B AB     96  00F8 24400 	INCB	DPT$B_REFC(R11)		;INCREMENT DPT REFERENCE COUNT

            50         14 BC     9A  00FB 24500 	MOVZBL	@ACF$L_DEVNAME(AP),R0	;GET SIZE OF DEVICE NAME

                          50     D6  00FF 24600 	INCL	R0			;ADD 1 BYTE FOR COUNT

         14 BC            50     28  0101 24700 	MOVC	R0,@ACF$L_DEVNAME(AP),DDB$T_NAME(R10) ;SET DEVICE NAME

                       14 AA         0105       

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   8

X01             LOAD_DB - LOAD THE DATABASE                                                                                      (1)



            50         18 BC     9A  0107 24800 	MOVZBL	@ACF$L_DRVNAME(AP),R0	;GET SIZE OF DRIVER NAME

                          50     D6  010B 24900 	INCL	R0			;ADD 1 BYTE FOR COUNT

         18 BC            50     28  010D 25000 	MOVC	R0,@ACF$L_DRVNAME(AP),DDB$T_DRVNAME(R10) ;SET DRIVER NAME

                       24 AA         0111       

                                     0113 25100 ;

                                     0113 25200 ; CHECK IF CRB/IDB NEED TO BE CREATED

                                     0113 25300 ;

         0D AB            00     E0  0113 25400 	BBS	#DPT$V_SUBCNTRL,DPT$B_FLAGS(R11),CREATE_CRB ;BR IF SUBCONTROLLER

                          15         0117       

         0C AB         00'8F     91  0118 25500 	CMPB	#AT$_UBA,DPT$B_ADPTYPE(R11) ;UBA DEVICE?

                          0E     13  011D 25600 	BEQL	CREATE_CRB		;BR IF YES

            50            6C     D0  011F 25700 	MOVL	ACF$L_ADAPTER(AP),R0	;GET ADDR OF ADP

            59         10 A0     D0  0122 25800 	MOVL	ADP$L_CRB(R0),R9	;GET ADDR OF EXISTING CRB

            58         1C A9     D0  0126 25900 	MOVL	CRB$L_INTD+VEC$L_IDB(R9),R8 ;GET ADDR OF IDB

                          00C6   31  012A 26000 	BRW	CREATE_UCB		;CREATE A NEW UCB

                                     012D 26100 ;

                                     012D 26200 ; CREATE CRB

                                     012D 26300 ;

                                     012D 26400 CREATE_CRB:

            51         13 AC     9A  012D 26500 	MOVZBL	ACF$B_CNUMVEC(AP),R1	;GET NUMBER OF INT VECTORS

                          51     D7  0131 26600 	DECL	R1			;ONE IS ALWAYS ASSUMED

            51            24     A4  0133 26700 	MULW	#VEC$K_LENGTH,R1	;COMPUTE SIZE OF EXTRA DISPATCHERS

            51            38     A0  0136 26800 	ADDW	#CRB$K_LENGTH,R1	;COMPUTE TOTAL SIZE OF CRB

                          FEC4'  30  0139 26900 	BSBW	IOGEN$ALLOBLOCK		;ALLOCATE THE CRB

            03            50     E8  013C 27000 	BLBS	R0,10$			;BR IF SUCCESS

                          01C0   31  013F 27100 	BRW	DB_ERROR		;ELSE - ERROR

       0004'CF            02     88  0142 27200 10$:	BISB	#LOAD_M_CRB,W^LOAD_FLAGS ;SET CRB LOADED FLAG

            59            52     D0  0147 27300 	MOVL	R2,R9			;GET ADDR OF CRB

         08 A9            51     B0  014A 27400 	MOVW	R1,CRB$W_SIZE(R9)	;SET SIZE

         0A A9            05     90  014E 27500 	MOVB	#DYN$C_CRB,CRB$B_TYPE(R9) ;SET TYPE

            69            69     DE  0152 27600 	MOVAL	CRB$L_WQFL(R9),CRB$L_WQFL(R9) ;SET WAIT QUEUE LISTHEAD

         04 A9            69     DE  0155 27700 	MOVAL	CRB$L_WQFL(R9),CRB$L_WQBL(R9) ;...

         0D AB            00     E1  0159 27800 	BBC	#DPT$V_SUBCNTRL,DPT$B_FLAGS(R11),CREATE_IDB ;BR IF NOT SUBCONTROLLER

                          19         015D       

            50            6C     D0  015E 27900 	MOVL	ACF$L_ADAPTER(AP),R0	;GET ADDR OF ADAPTER CONTROL BLOCK

            51         10 A0     D0  0161 28000 	MOVL	ADP$L_CRB(R0),R1	;GET ADDR OF SECONDARY CRB

         10 A9            51     D0  0165 28100 	MOVL	R1,CRB$L_LINK(R9)	;SET ADDR OF SECONDARY CRB

            52         1C A1     D0  0169 28200 	MOVL	CRB$L_INTD+VEC$L_IDB(R1),R2 ;GET ADDR OF SECONDARY IDB

            53         0A AC     9A  016D 28300 	MOVZBL	ACF$B_AUNIT(AP),R3	;GET ADAPTER UNIT NUMBER

         10 A243       15 A9     9E  0171 28400 	MOVAB	CRB$L_INTD+1(R9),IDB$L_UCBLST(R2)[R3] ;SET ADDR OF DISPATCHER

                                     0177 28500 ;

                                     0177 28600 ; CREATE IDB

                                     0177 28700 ;

                                     0177 28800 CREATE_IDB:

            51            30     9A  0177 28900 	MOVZBL	#IDB$K_LENGTH,R1	;SET LENGTH OF IDB

                          FE83'  30  017A 29000 	BSBW	IOGEN$ALLOBLOCK		;ALLOCATE THE IDB

            03            50     E8  017D 29100 	BLBS	R0,10$			;BR IF SUCCESS

                          017F   31  0180 29200 	BRW	DB_ERROR		;ELSE - ERROR

       0004'CF            04     88  0183 29300 10$:	BISB	#LOAD_M_IDB,W^LOAD_FLAGS ;SET IDB LOADED FLAG

            58            52     D0  0188 29400 	MOVL	R2,R8			;GET ADDR OF IDB

         08 A8            51     B0  018B 29500 	MOVW	R1,IDB$W_SIZE(R8)	;SET SIZE

         0A A8            09     90  018F 29600 	MOVB	#DYN$C_IDB,IDB$B_TYPE(R8) ;SET TYPE

         0C A8            6C     D0  0193 29700 	MOVL	ACF$L_ADAPTER(AP),IDB$L_ADP(R8) ;SET ADDR OF ADP

            68         0C AC     D0  0197 29800 	MOVL	ACF$L_CONTRLREG(AP),IDB$L_CSR(R8) ;SET ADDR OF CSR

         0B A8            08     90  019B 29900 	MOVB	#8,IDB$B_UNITS(R8)	;ALWAYS SET UP FOR 8 UNITS

                                     019F 30000 ;

                                     019F 30100 ; CREATE INTERRUPT VECTOR DISPATCHER(S)

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page   9

X01             LOAD_DB - LOAD THE DATABASE                                                                                      (1)



                                     019F 30200 ;

                                     019F 30300 CREATE_VEC:

            56         10 AC     32  019F 30400 	CVTWL	ACF$W_CVECTOR(AP),R6	;GET VECTOR TABLE OFFSET

                          0A     14  01A3 30410 	BGTR	5$			;BR IF VECTOR SPECIFIED

            50   007C802A 8F     D0  01A5 30420 	MOVL	#SYSG$_INVVEC,R0	;SET INVALID VECTOR ERROR

                          0153   31  01AC 30430 	BRW	DB_ERROR		;...EXIT

            55         13 AC     9A  01AF 30500 5$:	MOVZBL	ACF$B_CNUMVEC(AP),R5	;GET NUMBER OF INTERRUPT VECTORS

            54         14 A9     DE  01B3 30600 	MOVAL	CRB$L_INTD(R9),R4	;GET ADDR OF FIRST DISPATCHER

            64       FE45 CF     D0  01B7 30700 10$:	MOVL	W^INT_DISP,VEC$Q_DISPATCH(R4) ;SET "PUSHR #^M<R2,R3,R4,R5>"

                                     01BC 30800 					; AND "JSB @#"

         14 A4            6C     D0  01BC 30900 	MOVL	ACF$L_ADAPTER(AP),VEC$L_ADP(R4) ;SET ADDR OF ADP

         08 A4            58     D0  01C0 31000 	MOVL	R8,VEC$L_IDB(R4)	;SET ADDR OF IDB

         0C AB         00'8F     91  01C4 31100 	CMPB	#AT$_UBA,DPT$B_ADPTYPE(R11) ;UBA DEVICE?

                          1F     12  01C9 31200 	BNEQ	30$			;BR IF NOT

            50            6C     D0  01CB 31300 	MOVL	ACF$L_ADAPTER(AP),R0	;GET ADDR OF ADP

            56         10 A0     C1  01CE 31400 	ADDL3	ADP$L_VECTOR(R0),R6,R0	;GET ADDR OF VECTOR TABLE ENTRY

                          50         01D2       

            60   00000000'8F     D1  01D3 31500 	CMPL	#UBA$UNEXINT,(R0)	;IS VECTOR IN USE?

                          0A     13  01DA 31600 	BEQL	20$			;BR IF NOT

            50   007C801A 8F     D0  01DC 31700 	MOVL	#SYSG$_VECINUSE,R0	;SET ERROR STATUS

                          011C   31  01E3 31800 	BRW	DB_ERROR		;...EXIT

                                     01E6 31900 20$:

            60         02 A4     9E  01E6 32000 	MOVAB	VEC$Q_DISPATCH+2(R4),(R0) ;SET ADDR OF DISPATCHER IN TABLE

            56            04     C0  01EA 32100 30$:	ADDL	#4,R6			;INCREMENT VECTOR OFFSET

            54            24     C0  01ED 32200 	ADDL	#VEC$K_LENGTH,R4	;INCREMENT DISPATCH ADDR

            C4            55     F5  01F0 32300 	SOBGTR	R5,10$			;DECREMENT VECTOR COUNT - BR IF MORE

                                     01F3 32400 ;

                                     01F3 32500 ; CREATE A UCB

                                     01F3 32600 ;

                                     01F3 32700 CREATE_UCB:

            51         0E AB     3C  01F3 32800 	MOVZWL	DPT$W_UCBSIZE(R11),R1	;GET SIZE OF UCB

                          FE06'  30  01F7 32900 	BSBW	IOGEN$ALLOBLOCK		;ALLOCATE THE UCB

            03            50     E8  01FA 33000 	BLBS	R0,5$			;BR IF SUCCESS

                          0102   31  01FD 33100 	BRW	DB_ERROR		;ELSE - ERROR

       0004'CF            08     88  0200 33200 5$:	BISB	#LOAD_M_UCB,W^LOAD_FLAGS ;SET UCB LOADED FLAG

            57            52     D0  0205 33300 	MOVL	R2,R7			;GET ADDR OF UCB

         08 A7            51     B0  0208 33400 	MOVW	R1,UCB$W_SIZE(R7)	;SET SIZE

         0A A7            10     90  020C 33500 	MOVB	#DYN$C_UCB,UCB$B_TYPE(R7) ;SET TYPE

         0C A7         0C A7     DE  0210 33600 	MOVAL	UCB$L_ASTQFL(R7),UCB$L_ASTQFL(R7) ;SET AST QUEUE LISTHEAD

         10 A7         0C A7     DE  0215 33700 	MOVAL	UCB$L_ASTQFL(R7),UCB$L_ASTQBL(R7) ;...

         20 A7            59     D0  021A 33800 	MOVL	R9,UCB$L_CRB(R7)	;SET ADDR OF CRB

                       0C A9     B6  021E 33900 	INCW	CRB$W_REFC(R9)		;INCREMENT CRB REFERENCE COUNT

            50         12 AC     9A  0221 34000 	MOVZBL	ACF$B_CUNIT(AP),R0	;GET CONTROLLER UNIT NUMBER

         10 A840          57     D0  0225 34100 	MOVL	R7,IDB$L_UCBLST(R8)[R0]	;SET ADDR OF UCB IN IDB

         24 A7            5A     D0  022A 34200 	MOVL	R10,UCB$L_DDB(R7)	;SET ADDR OF DDB

         40 A7         40 A7     DE  022E 34300 	MOVAL	UCB$L_IOQFL(R7),UCB$L_IOQFL(R7) ;SET I/O QUEUE LISTHEAD

         44 A7         40 A7     DE  0233 34400 	MOVAL	UCB$L_IOQFL(R7),UCB$L_IOQBL(R7) ;...

         48 A7         12 AC     9B  0238 34500 	MOVZBW	ACF$B_CUNIT(AP),UCB$W_UNIT(R7) ;SET UNIT NUMBER

         74 A7         0A AC     90  023D 34600 	MOVB	ACF$B_AUNIT(AP),UCB$B_SLAVE(R7) ;SET SLAVE CNTRLER NUMBER

                                     0242 34700 

            51         04 AA     DE  0242 34800 	MOVAL	DDB$L_UCB(R10),R1	;GET ADDR OF ADDR OF FIRST UCB

            50            61     D0  0246 34900 	MOVL	(R1),R0			;GET ADDR OF FIRST UCB

                          09     13  0249 35000 	BEQL	20$			;BR IF NONE

            51         2C A0     DE  024B 35100 10$:	MOVAL	UCB$L_LINK(R0),R1	;GET ADDR OF ADDR OF NEXT UCB

            50            61     D0  024F 35200 	MOVL	(R1),R0			;GET ADDR OF NEXT UCB

                          F7     12  0252 35300 	BNEQ	10$			;BR IF IT EXISTS

       0009'CF            51     D0  0254 35400 20$:	MOVL	R1,W^UCB_BLINK		;SAVE UCB BACKWARD LINK

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  10

X01             LOAD_DB - LOAD THE DATABASE                                                                                      (1)



            61            57     D0  0259 35500 	MOVL	R7,(R1)			;SET FORWARD LINK TO UCB

                                     025C 35550 

         0D AB            01     E1  025C 35600 	BBC	#DPT$V_SVP,DPT$B_FLAGS(R11),INIT_DB ;BR IF NO SYS PAGE REQUIRED

                          32         0260       

            52   00000000'EF     9E  0261 35650 	MOVAB	MMG$A_SYSPARAM,R2	;GET ADDR OF SYS PARAMS

            50       0000'C2     D0  0268 35700 	MOVL	BOO$GL_SPTFREL-EXE$A_SYSPARAM(R2),R0 ;GET NEXT FREE SPT ENTRY

       0000'C2            50     D1  026D 35800 	CMPL	R0,BOO$GL_SPTFREH-EXE$A_SYSPARAM(R2) ;SPT FULL?

                          0A     1B  0272 35900 	BLEQU	30$			;BR IF NO

            50   007C8022 8F     D0  0274 36000 	MOVL	#SYSG$_SPTFULL,R0	;SET ERROR STATUS

                          0084   31  027B 36100 	BRW	DB_ERROR		;...EXIT

                     0000'C2     D6  027E 36200 30$:	INCL	BOO$GL_SPTFREL-EXE$A_SYSPARAM(R2) ;INCREMENT NEXT FREE  POINTER

            51       0000'C2     D0  0282 36300 	MOVL	MMG$GL_SPTBASE-EXE$A_SYSPARAM(R2),R1 ;GET ADDR OF SPT

            6140 901FFFFF 8F     D0  0287 36400 	MOVL	#<PTE$M_VALID!PTE$C_KW!PTE$M_PFN>,(R1)[R0] ;VALIDATE THIS ENTRY

         64 A7            50     D0  028F 36500 	MOVL	R0,UCB$L_SVPN(R7)	;SET SYS PAGE NUMBER IN UCB

                                     0293 36600 ;

                                     0293 36700 ; INITIALIZE ALL THE CONTROL BLOCKS

                                     0293 36800 ;

                                     0293 36900 INIT_DB:

            54            5B     D0  0293 37000 	MOVL	R11,R4			;SET ADDR OF DRIVER PROLOGUE

            55            57     D0  0296 37100 	MOVL	R7,R5			;SET ADDR OF UCB

                 00000000'GF     16  0299 37200 	JSB	G^IOC$INITDRV		;INIT THE CONTROL BLOCKS

            0A            50     E8  029F 37300 	BLBS	R0,INIT_CNTRL		;BR IF SUCCESS

            50   007C800A 8F     D0  02A2 37400 	MOVL	#SYSG$_INVDPTINI,R0	;SET ERROR STATUS

                          0056   31  02A9 37500 	BRW	DB_ERROR		;...EXIT

                                     02AC 37600 ;

                                     02AC 37700 ; CALL THE CONTROLLER AND DRIVE INITIALIZATION ROUTINES

                                     02AC 37800 ;

                                     02AC 37900 INIT_CNTRL:

                                     02AC 38300 	DSBINT				;DISABLE INTERRUPTS

       0004'CF            01     E1  02B2 38400 	BBC	#LOAD_V_CRB,W^LOAD_FLAGS,INIT_UNIT ;BR IF CRB NOT JUST CREATED

                          06         02B7       

            56            5A     D0  02B8 38500 	MOVL	R10,R6			;SET ADDR OF DDB

                          FD42'  30  02BB 38600 	BSBW	IOGEN$CNTRL_INI		;INITIALIZE THE CONTROLLER

                                     02BE 38700 

                                     02BE 40700 INIT_UNIT:

            55            57     D0  02BE 40800 	MOVL	R7,R5			;GET ADDR OF UCB

            54            68     D0  02C1 40850 	MOVL	IDB$L_CSR(R8),R4	;GET ADDR OF CSR

            53            54     D0  02C4 40900 	MOVL	R4,R3			;ASSUME ONLY ONE CSR

            50         10 A9     D0  02C7 41000 	MOVL	CRB$L_LINK(R9),R0	;GET ADDR OF SECONDARY CRB

                          07     13  02CB 41100 	BEQL	10$			;BR IF NONE

            50         1C A0     D0  02CD 41200 	MOVL	CRB$L_INTD+VEC$L_IDB(R0),R0 ;GET ADDR OF SECONDARY IDB

            54            60     D0  02D1 41300 	MOVL	IDB$L_CSR(R0),R4	;GET SECONDARY CSR ADDR

         0C AB         00'8F     91  02D4 41400 10$:	CMPB	#AT$_UBA,DPT$B_ADPTYPE(R11) ;UBA DEVICE?

                          15     12  02D9 41500 	BNEQ	20$			;BR IF NOT

            50            6C     D0  02DB 41540 	MOVL	ACF$L_ADAPTER(AP),R0	;GET ADDR OF ADP

            50            60     D0  02DE 41580 	MOVL	ADP$L_CSR(R0),R0	;GET ADDR OF UBA CSR

                          64     B5  02E1 41620 	TSTW	(R4)			;TRY TO READ CONTROLLER

         08 A0         08 A0     D0  02E3 41660 	MOVL	UBA$L_SR(R0),UBA$L_SR(R0) ;TEST FOR ERROR AND CLEAR IT

                          06     13  02E8 41700 	BEQL	20$			;BR IF IT EXISTS

         58 A7            10     AA  02EA 41800 	BICW	#UCB$M_ONLINE,UCB$W_STS(R7) ;SET DEVICE OFFLINE

                          08     11  02EE 41900 	BRB	30$			;

                       2C A9     D5  02F0 42000 20$:	TSTL	CRB$L_INTD+VEC$L_UNITINIT(R9) ;UNIT INIT ROUTINE SPECIFIED?

                          03     13  02F3 42100 	BEQL	30$			;BR IF NOT

                       2C B9     16  02F5 42300 	JSB	@CRB$L_INTD+VEC$L_UNITINIT(R9)	 ;CALL UNIT INIT ROUTINE

                                     02F8 42500 30$:

                                     02F8 42600 	ENBINT				;RE-ENABLE INTERRUPTS

                                     02FB 42700 ;

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  11

X01             LOAD_DB - LOAD THE DATABASE                                                                                      (1)



                                     02FB 42800 ; OPERATION COMPLETED - UNLOCK I/O DATABASE AND EXIT

                                     02FB 42900 ;

                                     02FB 43000 DB_EXIT:

                          FD02'  30  02FB 43100 	BSBW	IOGEN$UNLK_IODB		;UNLOCK I/O DATABASE

                                     02FE 43200 					; AND LOWER IPL

            50            01     D0  02FE 43300 	MOVL	#1,R0			;SET SUCCESS

                                 04  0301 43400 	RET				;...EXIT

                                     0302 43500 

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  12

X01             DB_ERROR - ERROR LOADING DATABASE                                                                                (1)



                                     0302 43700 	.SBTTL	DB_ERROR - ERROR LOADING DATABASE

                                     0302 43800 ;++

                                     0302 43900 ;

                                     0302 44000 ; DB_ERROR - LOCAL ROUTINE TO UNLOAD A PARTIALLY LOADED DATABASE

                                     0302 44100 ;

                                     0302 44200 ;	This routine checks the loading flags (LOAD_FLAGS) and

                                     0302 44300 ;	unload and unlinks any control blocks that were just created.

                                     0302 44400 ;

                                     0302 44500 ; INPUTS:

                                     0302 44600 ;

                                     0302 44700 ;	LOAD_FLAGS = FLAGS INDICATING CONTROL BLOCKS THAT HAVE JUST

                                     0302 44800 ;		     BEEN CREATED

                                     0302 44900 ;

                                     0302 45000 ; OUTPUTS:

                                     0302 45100 ;

                                     0302 45200 ;	R0 = ERROR STATUS THAT CAUSED UNLOADING

                                     0302 45300 ;

                                     0302 45400 ;--

                                     0302 45500 DB_ERROR:

                          50     DD  0302 45600 	PUSHL	R0			;SAVE ERROR STATUS

                                     0304 45602 ;

                                     0304 45604 ; UCB UNLOADING

                                     0304 45606 ;

       0004'CF            03     E1  0304 45608 	BBC	#LOAD_V_UCB,W^LOAD_FLAGS,20$ ;BR IF UCB NOT CREATED

                          1D         0309       

                     0009'DF     D4  030A 45610 	CLRL	@W^UCB_BLINK		;CLEAR POINTER TO UCB

                       0C A9     B7  030E 45612 	DECW	CRB$W_REFC(R9)		;DECREMENT CRB REFERENCE COUNT

            50         12 AC     9A  0311 45614 	MOVZBL	ACF$B_CUNIT(AP),R0	;GET CONTROLLER UNIT NUMBER

                       10 A840   D4  0315 45616 	CLRL	IDB$L_UCBLST(R8)[R0]	;CLEAR IDB POINTER TO UCB

            50            57     D0  0319 45618 	MOVL	R7,R0			;SET ADDR OF UCB

                          02     10  031C 45620 	BSBB	10$			;DEALLOCATE THE UCB

                          07     11  031E 45622 	BRB	20$			;

                                     0320 45624 ;

                                     0320 45626 ; LOCAL SUBROUTINE TO DEALLOCATE A CONTROL BLOCK

                                     0320 45628 ;

                                     0320 45630 ; 	INPUT - R0 = ADDRESS OF BLOCK TO DEALLOCATE

                                     0320 45632 ;

                 00000000'GF     16  0320 45634 10$:	JSB	G^EXE$DEANONPAGED	;DEALLOCATE TO NON-PAGED POOL

                                 05  0326 45636 	RSB

                                     0327 45638 

                                     0327 45640 ;

                                     0327 45642 ; IDB UNLOADING

                                     0327 45644 ;

       0004'CF            02     E1  0327 45646 20$:	BBC	#LOAD_V_IDB,W^LOAD_FLAGS,30$ ;BR IF IDB NOT CREATED

                          05         032C       

            50            58     D0  032D 45648 	MOVL	R8,R0			;SET ADDR OF IDB

                          EE     10  0330 45650 	BSBB	10$			;DEALLOCATE THE IDB

                                     0332 45652 ;

                                     0332 45654 ; CRB UNLOADING

                                     0332 45656 ;

       0004'CF            01     E1  0332 45658 30$:	BBC	#LOAD_V_CRB,W^LOAD_FLAGS,50$ ;BR IF CRB NOT CREATED

                          1A         0337       

         0D AB            00     E1  0338 45660 	BBC	#DPT$V_SUBCNTRL,DPT$B_FLAGS(R11),40$ ;BR IF NOT SUBCONTROLLER

                          10         033C       

            51         10 A9     D0  033D 45662 	MOVL	CRB$L_LINK(R9),R1	;GET ADDR OF SECONDARY CRB

            51         1C A1     D0  0341 45664 	MOVL	CRB$L_INTD+VEC$L_IDB(R1),R1 ;GET ADDR OF SECONDARY IDB

            50         0A AC     9A  0345 45666 	MOVZBL	ACF$B_AUNIT(AP),R0	;GET ADAPTER UNIT NUMBER

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  13

X01             DB_ERROR - ERROR LOADING DATABASE                                                                                (1)



                       10 A140   D4  0349 45668 	CLRL	IDB$L_UCBLST(R1)[R0]	;CLEAR DISPATCHER POINTER

            50            59     D0  034D 45670 40$:	MOVL	R9,R0			;SET ADDR OF CRB

                          CE     10  0350 45672 	BSBB	10$			;DEALLOCATE THE CRB

                                     0352 45674 ;

                                     0352 45676 ; DDB UNLOADING

                                     0352 45678 ;

       0004'CF            00     E1  0352 45800 50$:	BBC	#LOAD_V_DDB,W^LOAD_FLAGS,60$ ;BR IF DDB NOT CREATED

                          0C         0357       

                       0B AB     97  0358 45900 	DECB	DPT$B_REFC(R11)		;DECREMENT DPT REFERENCE COUNT

                     0005'DF     D4  035B 46000 	CLRL	@W^DDB_BLINK		;CLEAR LINK TO THE DDB

            50            5A     D0  035F 46100 	MOVL	R10,R0			;SET ADDR OF DDB

                          BC     10  0362 46200 	BSBB	10$			;DEALLOCATE THE DDB

                                     0364 46300 60$:

                          FC99'  30  0364 46400 	BSBW	IOGEN$UNLK_IODB		;UNLOCK THE I/O DATABASE

                                     0367 46500 					; AND LOWER IPL

                          50   8ED0  0367 46600 	POPL	R0			;RESTORE STATUS

                                 04  036A 46700 	RET				;...EXIT

                                     036B 46800 	.END

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



ACF$B_AFLAG      0000000B            CREATE_CRB       0000012D R     04   DYN$C_FCB      = 00000007            

ACF$B_AUNIT      0000000A            CREATE_DDB       000000D4 R     04   DYN$C_FRK      = 00000008            

ACF$B_CNUMVEC    00000013            CREATE_IDB       00000177 R     04   DYN$C_GSD      = 00000015            

ACF$B_CUNIT      00000012            CREATE_UCB       000001F3 R     04   DYN$C_IDB      = 00000009            

ACF$C_LENGTH     0000001C            CREATE_VEC       0000019F R     04   DYN$C_IRP      = 0000000A            

ACF$K_LENGTH     0000001C            DB_ERROR         00000302 R     04   DYN$C_JPB      = 0000001F            

ACF$L_ADAPTER    00000000            DB_EXIT          000002FB R     04   DYN$C_KFH      = 00000026            

ACF$L_CONFIGREG  00000004            DDB$B_ACPCLASS   00000013            DYN$C_KFI      = 00000018            

ACF$L_CONTRLREG  0000000C            DDB$B_TYPE       0000000A            DYN$C_LOG      = 0000000B            

ACF$L_DEVNAME    00000014            DDB$C_LENGTH     00000034            DYN$C_MTL      = 00000019            

ACF$L_DRVNAME    00000018            DDB$K_LENGTH     00000034            DYN$C_MVL      = 00000016            

ACF$M_RELOAD   = 00000001            DDB$L_ACPD       00000010            DYN$C_NDB      = 0000001C            

ACF$V_RELOAD   = 00000000            DDB$L_DDT        0000000C            DYN$C_NET      = 00000017            

ACF$W_AVECTOR    00000008            DDB$L_LINK       00000000            DYN$C_PBH      = 00000020            

ACF$W_CVECTOR    00000010            DDB$L_UCB        00000004            DYN$C_PCB      = 0000000C            

ADP$B_NUMBER     0000000B            DDB$T_DRVNAME    00000024            DYN$C_PDB      = 00000021            

ADP$B_TYPE       0000000A            DDB$T_NAME       00000014            DYN$C_PFL      = 00000023            

ADP$C_MBAADPLEN  00000014            DDB$W_SIZE       00000008            DYN$C_PIB      = 00000022            

ADP$C_NUMDATAP = 00000010            DDB_BLINK        00000005 R     03   DYN$C_PQB      = 0000000D            

ADP$C_UBAADPLEN  00000070            DDT$L_CANCEL     0000000C            DYN$C_PTR      = 00000025            

ADP$K_MBAADPLEN  00000014            DDT$L_FDT        00000008            DYN$C_RVT      = 0000000E            

ADP$K_UBAADPLEN  00000070            DDT$L_INIT       00000018            DYN$C_SFT      = 00000024            

ADP$L_CRB        00000010            DDT$L_REGDUMP    00000010            DYN$C_SSB      = 0000001D            

ADP$L_CSR        00000000            DDT$L_START      00000000            DYN$C_TQE      = 0000000F            

ADP$L_DPQBL      00000018            DDT$L_UNSOLINT   00000004            DYN$C_TYPAHD   = 00000014            

ADP$L_DPQFL      00000014            DDT$W_DIAGBUF    00000014            DYN$C_UCB      = 00000010            

ADP$L_INTD       00000064            DDT$W_ERRORBUF   00000016            DYN$C_VCB      = 00000011            

ADP$L_LINK       00000004            DPT$B_ADPTYPE    0000000C            DYN$C_WCB      = 00000012            

ADP$L_MRQBL      00000020            DPT$B_FLAGS      0000000D            EXE$A_SYSPARAM   ********   X   04   

ADP$L_MRQFL      0000001C            DPT$B_REFC       0000000B            EXE$DEANONPAGED  ********   X   04   

ADP$L_VECTOR     00000010            DPT$B_TYPE       0000000A            EXIT             00000041 R     04   

ADP$W_ADPTYPE    0000000E            DPT$C_LENGTH     00000022            GBL...         = 00000000            

ADP$W_DPBITMAP   00000024            DPT$K_LENGTH     00000022            IDB$B_TYPE       0000000A            

ADP$W_MRBITMAP   00000026            DPT$L_BLINK      00000004            IDB$B_UNITS      0000000B            

ADP$W_SIZE       00000008            DPT$L_FLINK      00000000            IDB$C_LENGTH     00000030            

ADP$W_TR         0000000C            DPT$M_NOUNLOAD = 00000004            IDB$K_LENGTH     00000030            

AT$_UBA          ********   X   04   DPT$M_SUBCNTRL = 00000001            IDB$L_ADP        0000000C            

BIT...         = 00000004            DPT$M_SVP      = 00000002            IDB$L_CSR        00000000            

BOO$GL_SPTFREH   ********   X   04   DPT$T_NAME       00000016            IDB$L_OWNER      00000004            

BOO$GL_SPTFREL   ********   X   04   DPT$V_NOUNLOAD = 00000002            IDB$L_UCBLST     00000010            

CHECK_DRV        00000042 R     04   DPT$V_SUBCNTRL = 00000000            IDB$W_SIZE       00000008            

CRB$B_MASK       0000000E            DPT$V_SVP      = 00000001            INIT_CNTRL       000002AC R     04   

CRB$B_TT_ATTN    00000004            DPT$W_INITTAB    00000010            INIT_DB          00000293 R     04   

CRB$B_TT_EXPEC   00000005            DPT$W_REINITTAB  00000012            INIT_UNIT        000002BE R     04   

CRB$B_TYPE       0000000A            DPT$W_SIZE       00000008            INT_DISP         00000000 R     04   

CRB$C_LENGTH     00000038            DPT$W_UCBSIZE    0000000E            IOC$GL_DEVLIST   ********   X   04   

CRB$K_LENGTH     00000038            DPT$W_UNLOAD     00000014            IOC$GL_DPTLIST   ********   X   04   

CRB$L_INTD       00000014            DYN$C_ACB      = 00000002            IOC$INITDRV      ********   X   04   

CRB$L_INTD2      00000038            DYN$C_ADP      = 00000001            IOGEN$ALLOBLOCK  ********   X   04   

CRB$L_LINK       00000010            DYN$C_AQB      = 00000003            IOGEN$CNTRL_INI  ********   X   04   

CRB$L_TT_DIAL    00000000            DYN$C_BRDCST   = 0000001A            IOGEN$GL_DPT     00000000 RG    03   

CRB$L_WQBL       00000004            DYN$C_BUFIO    = 00000013            IOGEN$LOADDRIV   ********   X   04   

CRB$L_WQFL       00000000            DYN$C_CEB      = 00000004            IOGEN$LOADER     00000008 RG    04   

CRB$M_BSY      = 00000001            DYN$C_CRB      = 00000005            IOGEN$LOCK_IODB  ********   X   04   

CRB$V_BSY      = 00000000            DYN$C_CXB      = 0000001B            IOGEN$UNLK_IODB  ********   X   04   

CRB$W_REFC       0000000C            DYN$C_DDB      = 00000006            IPL$_ASTDEL    = 00000002            

CRB$W_SIZE       00000008            DYN$C_DPT      = 0000001E            IPL$_HWCLK     = 00000018            

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



IPL$_IOPOST    = 00000004            PR$_USP        = 00000003            SYSG$_NOUNLOAD = 007C8012            

IPL$_MAILBOX   = 0000000B            PR$_WCSA       = 0000002C            SYSG$_SPTFULL  = 007C8022            

IPL$_POWER     = 0000001F            PR$_WCSD       = 0000002D            SYSG$_VECINUSE = 007C801A            

IPL$_QUEUEAST  = 00000006            PTE$C_EOWN     = 00800000            SYSGN$_FACILITY= 0000007C            

IPL$_SCHED     = 00000003            PTE$C_ER       = 38000000            UBA$L_BRRVR      00000030            

IPL$_SYNCH     = 00000007            PTE$C_ERKW     = 30000000            UBA$L_BRSVR      00000020            

IPL$_TIMER     = 00000007            PTE$C_EW       = 28000000            UBA$L_CR         00000004            

LOAD_DB          00000080 R     04   PTE$C_KOWN     = 00000000            UBA$L_CSR        00000000            

LOAD_FLAGS       00000004 R     03   PTE$C_KR       = 18000000            UBA$L_DCR        0000000C            

LOAD_M_CRB     = 00000002            PTE$C_KW       = 10000000            UBA$L_DPR        00000040            

LOAD_M_DDB     = 00000001            PTE$C_NA       = 00000000            UBA$L_FMER       00000010            

LOAD_M_IDB     = 00000004            PTE$C_SOWN     = 01000000            UBA$L_FUBAR      00000014            

LOAD_M_UCB     = 00000008            PTE$C_SR       = 58000000            UBA$L_MAP        00000800            

LOAD_V_CRB     = 00000001            PTE$C_SREW     = 48000000            UBA$L_SR         00000008            

LOAD_V_DDB     = 00000000            PTE$C_SRKW     = 50000000            UBA$M_BRRVR_AIR= 80000000            

LOAD_V_IDB     = 00000002            PTE$C_SW       = 40000000            UBA$M_CR_ARLVL = 00000180            

LOAD_V_UCB     = 00000003            PTE$C_UOWN     = 01800000            UBA$M_CR_BRIE  = 00000020            

MMG$A_SYSPARAM   ********   X   04   PTE$C_UR       = 78000000            UBA$M_CR_CNFIE = 00000004            

MMG$GL_SPTBASE   ********   X   04   PTE$C_UREW     = 68000000            UBA$M_CR_IFSIE = 00000040            

PR$_ACCR       = 00000029            PTE$C_URKW     = 70000000            UBA$M_CR_INIT  = 00000001            

PR$_ACCS       = 00000028            PTE$C_URSW     = 60000000            UBA$M_CR_SUEFIE= 00000008            

PR$_ASTLVL     = 00000013            PTE$C_UW       = 20000000            UBA$M_CR_UBPF  = 00000002            

PR$_ESP        = 00000001            PTE$M_CRF      = 00010000            UBA$M_CR_USEFIE= 00000010            

PR$_ICCS       = 00000018            PTE$M_DZRO     = 00020000            UBA$M_CSR_IS   = 10000000            

PR$_ICR        = 0000001A            PTE$M_GPTX     = 003FFFFF            UBA$M_CSR_MT   = 08000000            

PR$_IPL        = 00000012            PTE$M_MODIFY   = 04000000            UBA$M_CSR_OT   = 00200000            

PR$_ISP        = 00000004            PTE$M_OWN      = 01800000            UBA$M_CSR_PD   = 00800000            

PR$_KSP        = 00000000            PTE$M_PFN      = 001FFFFF            UBA$M_CSR_PE   = 80000000            

PR$_MAPEN      = 00000038            PTE$M_PGFLVB   = 003FFFFF            UBA$M_CSR_PU   = 00400000            

PR$_NICR       = 00000019            PTE$M_PROT     = 78000000            UBA$M_CSR_UBIC = 00010000            

PR$_P0BR       = 00000008            PTE$M_TYP0     = 00400000            UBA$M_CSR_UBIIP= 00040000            

PR$_P0LR       = 00000009            PTE$M_TYP1     = 04000000            UBA$M_CSR_UBPDN= 00020000            

PR$_P1BR       = 0000000A            PTE$M_VALID    = 80000000            UBA$M_CSR_URD  = 20000000            

PR$_P1LR       = 0000000B            PTE$M_WRT      = 00040000            UBA$M_CSR_WS   = 40000000            

PR$_PCBB       = 00000010            PTE$S_GPTX     = 00000016            UBA$M_CSR_XMFLT= 04000000            

PR$_PME        = 0000003D            PTE$S_OWN      = 00000002            UBA$M_DPR_BNE  = 80000000            

PR$_RXCS       = 00000020            PTE$S_PFN      = 00000015            UBA$M_DPR_DPF  = 20000000            

PR$_RXDB       = 00000021            PTE$S_PGFLVB   = 00000016            UBA$M_DPR_XMTER= 40000000            

PR$_SBIER      = 00000034            PTE$S_PROT     = 00000004            UBA$M_MAP_BO   = 02000000            

PR$_SBIFS      = 00000030            PTE$S_STX      = 00000010            UBA$M_MAP_VALID= 80000000            

PR$_SBIMT      = 00000033            PTE$V_CRF      = 00000010            UBA$M_SR_BRID  = 00000800            

PR$_SBIQC      = 00000036            PTE$V_DZRO     = 00000011            UBA$M_SR_BRSVF = 10000000            

PR$_SBIS       = 00000031            PTE$V_GPTX     = 00000000            UBA$M_SR_CRD   = 00000100            

PR$_SBISC      = 00000032            PTE$V_MODIFY   = 0000001A            UBA$M_SR_CXTER = 00000080            

PR$_SBITA      = 00000035            PTE$V_OWN      = 00000017            UBA$M_SR_CXTMO = 00000040            

PR$_SBR        = 0000000C            PTE$V_PFN      = 00000000            UBA$M_SR_DPPE  = 00000020            

PR$_SCBB       = 00000011            PTE$V_PGFLVB   = 00000000            UBA$M_SR_IVMR  = 00000010            

PR$_SID        = 0000003E            PTE$V_PROT     = 0000001B            UBA$M_SR_LER   = 00000004            

PR$_SIRR       = 00000014            PTE$V_STX      = 00000000            UBA$M_SR_MRPE  = 00000008            

PR$_SISR       = 00000015            PTE$V_TYP0     = 00000016            UBA$M_SR_RDS   = 00000200            

PR$_SLR        = 0000000D            PTE$V_TYP1     = 0000001A            UBA$M_SR_RDTO  = 00000400            

PR$_SSP        = 00000002            PTE$V_VALID    = 0000001F            UBA$M_SR_RIE   = 20000000            

PR$_TBIA       = 00000039            PTE$V_WRT      = 00000012            UBA$M_SR_SSYNC = 00000001            

PR$_TBIS       = 0000003A            SYS$CMKRNL       ********   X   04   UBA$M_SR_UBIFS = 40000000            

PR$_TODR       = 0000001B            SYSG$_INVDPT   = 007C8032            UBA$M_SR_UBSTO = 00000002            

PR$_TXCS       = 00000022            SYSG$_INVDPTINI= 007C800A            UBA$S_BRRVR_IVA= 00000010            

PR$_TXDB       = 00000023            SYSG$_INVVEC   = 007C802A            UBA$S_CR_ARLVL = 00000002            

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



UBA$S_CR_MRDSB = 00000005            UBA$V_SR_RIE   = 0000001D            UCB$L_MEDIA      0000008C            

UBA$S_CSR_ADCOD= 00000008            UBA$V_SR_SSYNC = 00000000            UCB$L_NT_DATSSB  00000074            

UBA$S_DPR_ADDR = 00000010            UBA$V_SR_UBIFS = 0000001E            UCB$L_NT_INTSSB  00000078            

UBA$S_DPR_STATE= 00000008            UBA$V_SR_UBSTO = 00000001            UCB$L_OPCNT      00000060            

UBA$S_FMER_MRN = 00000009            UCB$B_AMOD       00000053            UCB$L_OWNUIC     0000001C            

UBA$S_FUBAR_ADR= 00000012            UCB$B_CEX        00000077            UCB$L_PID        00000028            

UBA$S_MAP_ADDR = 00000015            UCB$B_CM1        0000004A            UCB$L_RQBL       00000004            

UBA$S_MAP_DPD  = 00000004            UCB$B_CM2        0000004B            UCB$L_RQFL       00000000            

UBA$S_SR_BRRVF = 00000004            UCB$B_DEVCLASS   00000038            UCB$L_SVAPTE     00000068            

UBA$UNEXINT      ********   X   04   UCB$B_DEVTYPE    00000039            UCB$L_SVPN       00000064            

UBA$V_BRRVR_AIR= 0000001F            UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            

UBA$V_BRRVR_IVA= 00000000            UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            

UBA$V_CR_ARLVL = 00000007            UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            

UBA$V_CR_BRIE  = 00000005            UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            

UBA$V_CR_CNFIE = 00000002            UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            

UBA$V_CR_IFSIE = 00000006            UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            

UBA$V_CR_INIT  = 00000000            UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            

UBA$V_CR_MRDSB = 0000001A            UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            

UBA$V_CR_SUEFIE= 00000003            UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            

UBA$V_CR_UBPF  = 00000001            UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            

UBA$V_CR_USEFIE= 00000004            UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            

UBA$V_CSR_ADCOD= 00000000            UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            

UBA$V_CSR_IS   = 0000001C            UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            

UBA$V_CSR_MT   = 0000001B            UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            

UBA$V_CSR_OT   = 00000015            UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            

UBA$V_CSR_PD   = 00000017            UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            

UBA$V_CSR_PE   = 0000001F            UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            

UBA$V_CSR_PU   = 00000016            UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            

UBA$V_CSR_UBIC = 00000010            UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            

UBA$V_CSR_UBIIP= 00000012            UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            

UBA$V_CSR_UBPDN= 00000011            UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            

UBA$V_CSR_URD  = 0000001D            UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            

UBA$V_CSR_WS   = 0000001E            UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            

UBA$V_CSR_XMFLT= 0000001A            UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            

UBA$V_DPR_ADDR = 00000000            UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            

UBA$V_DPR_BNE  = 0000001F            UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            

UBA$V_DPR_DPF  = 0000001D            UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            

UBA$V_DPR_STATE= 00000010            UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            

UBA$V_DPR_XMTER= 0000001E            UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            

UBA$V_FMER_MRN = 00000000            UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            

UBA$V_FUBAR_ADR= 00000000            UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            

UBA$V_MAP_ADDR = 00000000            UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            

UBA$V_MAP_BO   = 00000019            UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            

UBA$V_MAP_DPD  = 00000015            UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            

UBA$V_MAP_VALID= 0000001F            UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            

UBA$V_SR_BRID  = 0000000B            UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            

UBA$V_SR_BRRVF = 00000018            UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            

UBA$V_SR_BRSVF = 0000001C            UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            

UBA$V_SR_CRD   = 00000008            UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            

UBA$V_SR_CXTER = 00000007            UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            

UBA$V_SR_CXTMO = 00000006            UCB$L_FR4        00000014            UCB$V_INT      = 00000001            

UBA$V_SR_DPPE  = 00000005            UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            

UBA$V_SR_IVMR  = 00000004            UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            

UBA$V_SR_LER   = 00000002            UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            

UBA$V_SR_MRPE  = 00000003            UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            

UBA$V_SR_RDS   = 00000009            UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            

UBA$V_SR_RDTO  = 0000000A            UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



UCB$V_MSGFLO   = 00000003            VEC$Q_DISPATCH   00000000            

UCB$V_NOCNVRT  = 00000002            VEC$S_DATAPATH = 00000007            

UCB$V_NT_BFROVF= 00000002            VEC$S_MAPREG   = 0000000F            

UCB$V_NT_BREAK = 00000005            VEC$V_DATAPATH = 00000000            

UCB$V_NT_NAME  = 00000004            VEC$V_MAPLOCK  = 0000000F            

UCB$V_ONLINE   = 00000004            VEC$V_MAPREG   = 00000000            

UCB$V_POWER    = 00000005            VEC$V_PATHLOCK = 00000007            

UCB$V_PRMMBX   = 00000000            VEC$W_MAPREG     00000010            

UCB$V_SEGFLO   = 00000002            

UCB$V_TIM      = 00000000            

UCB$V_TIMOUT   = 00000006            

UCB$V_TT_NOTIF = 00000002            

UCB$V_TT_TIMO  = 00000001            

UCB$V_UNLOAD   = 0000000C            

UCB$V_VALID    = 0000000B            

UCB$W_BCNT       0000006E            

UCB$W_BCR        00000096            

UCB$W_BOFF       0000006C            

UCB$W_BUFQUO     00000018            

UCB$W_BYTESTOGO  0000003E            

UCB$W_CHARGE     0000004A            

UCB$W_CYLINDERS  0000003E            

UCB$W_DA         0000008C            

UCB$W_DC         0000008E            

UCB$W_DEVBUFSIZ  0000003A            

UCB$W_DEVSTS     0000005A            

UCB$W_DIRSEQ     00000088            

UCB$W_DSTADDR    00000018            

UCB$W_DX_BCR     000000A4            

UCB$W_EC1        00000090            

UCB$W_EC2        00000092            

UCB$W_ERRCNT     00000072            

UCB$W_FUNC       0000007E            

UCB$W_MB_SEED    FFFFFFFC            

UCB$W_MSGCNT     00000016            

UCB$W_MSGMAX     00000014            

UCB$W_NT_CHAN    0000007C            

UCB$W_OFFSET     0000008A            

UCB$W_REFC       00000050            

UCB$W_SIZE       00000008            

UCB$W_SRCADDR    0000001A            

UCB$W_STS        00000058            

UCB$W_UNIT       00000048            

UCB$W_VPROT      0000001A            

UCB_BLINK        00000009 R     03   

VEC$B_DATAPATH   00000013            

VEC$B_NUMREG     00000012            

VEC$C_LENGTH     00000024            

VEC$K_LENGTH     00000024            

VEC$L_ADP        00000014            

VEC$L_IDB        00000008            

VEC$L_INITIAL    0000000C            

VEC$L_START      0000001C            

VEC$L_UNITDISC   00000020            

VEC$L_UNITINIT   00000018            

VEC$M_MAPLOCK  = 00008000            

VEC$M_PATHLOCK = 00000080            

LOADER          - LOAD A DRIVER AND/OR DEVICE CONTROL BLOCKS     21-AUG-1978 22:27:58   VAX-11 MACRO X0.3-11               Page  18

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







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$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

IOGEN$DATA       0000000D      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT BYTE  

IOGEN$CODE       0000036B      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

9630. BYTES LEFT IN FREE MEMORY POOL.

2934. BYTES OF RECLAIMED MEMORY.

OBJ$:LOADER,LIS$:LOADER/-SP=EXECML$/ML,SRC$:LOADER

17 MLB DIR RDS - 894 GETS TO DEFINE 30 MACROS. 68 INTER. FILE WRITES. 

