JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      39  DECLARATIONS

   (2)      73  JOB_CONTROL INITIALIZATION

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   1

V01                                                                                                                              (1)



                                     0000     1 	.TITLE	JBCINIT-JOB_CONTROLLER INIT ROUTINE

                                     0000     2 	.IDENT	/V01/

                                     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 ; FACILITY:	STARLET JOB_CONTROLLER

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:	THIS MODULE CONTAINS THE JOB_CONTROLLER INITIALIZATION

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:	THIS MODULE MAKES UP PART OF THE JOB_CONTROLLER

                                     0000    29 ;		SYSTEM PROCESS.

                                     0000    30 ;

                                     0000    31 ; AUTHOR:	W.H.BROWN, CREATION DATE: 3-JAN-77

                                     0000    32 ;

                                     0000    33 ; MODIFIED BY:

                                     0000    34 ;

                                     0000    35 ;  , VERSION  ,

                                     0000    36 ; 01	- 

                                     0000    37 ;--

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   2

V01             DECLARATIONS                                                                                                     (1)



                                     0000    39 	.SBTTL	DECLARATIONS

                                     0000    40 ;

                                     0000    41 ; INCLUDE FILES:

                                     0000    42 ;

                                     0000    43 ;	[231,10]J/ML

                                     0000    44 ;

                                     0000    45 ; EQUATED SYMBOLS:

                                     0000    46 ;

                                     0000    47 	JBCPARDEF			; JOB CONTROLLER PARAMETERS

                                     0000    48 	JBCQUEDEF			; THE QUEUE DEFINITONS

                                     0000    49 	$FABDEF				; RMS FILE ACCESS BLOCK DEFINITIONS

                                     0000    50 	$SECDEF				; GLOBAL/PROCESS SECTION DEFINITIONS

                                     0000    51 ;

                                     0000    52 ; OWN STORAGE:

                                     0000    53  

                                     0000    54 	PURE_SECTION	JBC$INIT

                                     0000    55  

                                     0000    56 	.ENABL	LSB

                                     0000    57  

                           00000009' 0000    58 SECNAM:	.LONG	30$-20$			; SYSTEM QUEUE GLOBAL SECTION NAME

                           00000013' 0004    59 	.LONG	20$			; QUADWORD DESCRIPTOR

                                     0008    60  

                                     0008    61 SECFILNAM:				; SECTION FILE NAME

   3A 4D 45 54 53 59 53 24 53 59 53  0008    62 10$:	.ASCII	\SYS$SYSTEM:\		; DEVICE AND DIRECTORY

         45 55 51 53 59 53 43 42 4A  0013    63 20$:	.ASCII	\JBCSYSQUE\		; FILE NAME AND SECTION NAME

                        45 58 45 2E  001C    64 30$:	.ASCII	\.EXE\			; FILE TYPE

                                     0020    65  

                           00000018  0020    66 FILNAMSIZ = . - SECFILNAM		;

                                     0020    67  

                                     0020    68 	.DSABL	LSB

                                     0020    69  

                                     0020    70 JBC$Q_MBNAME:				; JOB_CONTROLLER MAILBOX NAME

                                     0020    71 	STRING_DESC	<_MB1:>		; SPECIAL MAILBOX FOR JOB CONTROLLER

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   3

V01             JOB_CONTROL INITIALIZATION                                                                                       (2)



                                     002D    73 	.SBTTL	JOB_CONTROL INITIALIZATION

                                     002D    74 ;++

                                     002D    75 ; FUNCTIONAL DESCRIPTION:

                                     002D    76 ;

                                     002D    77 ;	THIS ROUTINE SETS UP THE JOB_CONTROLLERS LOCAL DATA,

                                     002D    78 ;	ASSIGNS CHANNEL FOR MESSAGE READS,

                                     002D    79 ;	ISSUES A READ ON THE MAILBOX,

                                     002D    80 ;	THEN ENTERS THE PROCESS MAIN LOOP.

                                     002D    81 ;

                                     002D    82 ; CALLING SEQUENCE:

                                     002D    83 ;

                                     002D    84 ;	NONE-ENTERED DIRECTLY FRON THE IMAGE ACTIVATOR

                                     002D    85 ;

                                     002D    86 ; INPUT PARAMETERS:	NONE

                                     002D    87 ;

                                     002D    88 ; OUTPUT PARAMETERS:	NONE

                                     002D    89 ;

                                     002D    90 ; COMPLETION CODES:	NONE

                                     002D    91 ;

                                     002D    92 ; SIDE EFFECTS:		NONE

                                     002D    93 ;

                                     002D    94 ;--

                                     002D    95  

                                     002D    96 	PURE_SECTION	JBC$INIT	; INIT CODE SEGMENT

                                     002D    97  

                               0000' 002D    98 	.ENTRY	JBC$INIT,^M<>		;

                                     002F    99  

            6D   00000000'EF     9E  002F   100 	MOVAB	JBC$EXCEPTION,(FP)	; SET EXCEPTION HANDLER

            5B       0000'CF     9E  0036   101 	MOVAB	W^JBC$T_DATABLK,R11	; SET ADDRESS OF DATA BLOCK

                                     003B   102 	$DCLCMH_S	W^JBC$ERRORMSG	; SET ERROR TRAP HANDLER ADDRESS

            6B            00     2C  004A   103 	MOVC5	#0,(R11),#0,-		; ZERO OUT THE BLOCK

                                     004D       

                          00         004D   104 		#JCD_K_SIZE,-		; SIZE OF JOB CONTROLLER DATA BLOCK

         C4 AB       00FC 8F         004E   105 		JCD_T_START(R11)	; START OF BLOCK

            6B            00     2C  0053   106 	MOVC5	#0,(R11),#0,-		; ZERO OUT THE SYMBIONT CONTROL TABLE

                                     0056       

                          00         0056   107 		#<SYM$G_SYMCTLTBE-SYM$G_SYMCTLTBL>,- ; SIZE OF TABLE AREA

       0000'CF       0000'8F         0057   108 		W^SYM$G_SYMCTLTBL	; BASE ADDRESS OF TABLE

            6B            00     2C  005D   109 	MOVC5	#0,(R11),#0,-		; ZERO THE JOB CONTROLLER INTERACTIVE

                                     0060       

                          00         0060   110 		#<JBC$G_INTJOBEND-JBC$G_INTJOBFLG>,- ; FLAG BIT ARRAY

       0000'CF       0000'8F         0061   111 		W^JBC$G_INTJOBFLG	;

                                 9E  0067   112 	MOVAB	JCD_T_LINBUF(R11),-	; SET ADDRESS OF LINE BUFFER

         0C AB         1E AB         0068   113 		JCD_A_LBUFADR(R11)	; INTO BUFFER DESCRIPTOR

                                 9B  006C   114 	MOVZBW	#<JCD_T_LINBFE-JCD_T_LINBUF>,- ; ALSO SET SIZE

         0A AB         A2 8F         006D   115 		JCD_W_LBUFSIZ(R11)	; INTO HI 1/2 OF LENTGH LONGWORD

                                     0071   116 	$ASSIGN_S  W^JBC$Q_MBNAME,-	; ASSIGN A CHANNEL TO SPECIAL

                                     0071   117 		JCD_W_MBCHAN(R11)	; MAILBOX FOR JOB CONTROLLER INPUT

                                     0081   118 	CHECK_ERROR	MAILBOX_ASSIGN	; REPORT ERROR ASSINGING MAILBOX

                                     0086   119  

                                     0086   120 ;

                                     0086   121 ; INIT WORK LIST AREA

                                     0086   122 ;

                                     0086   123  

            50         D0 AB     9E  0086   124 	MOVAB	JCD_G_WORKLIST(R11),R0	; BASE ADDRESS OF WORKLIST AREA

            51            6B     9E  008A   125 	MOVAB	JCD_G_LISTS(R11),R1	; ENDING ADDRESS OF LIST AREA

            60            50     D0  008D   126 20$:	MOVL	R0,(R0)			; POINT FLINK AT SELF

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   4

V01             JOB_CONTROL INITIALIZATION                                                                                       (2)



            80            80     D0  0090   127 	MOVL	(R0)+,(R0)+		; POINT BLINK AT FLINK

            51            50     D1  0093   128 	CMPL	R0,R1			; DONE ALL LISTS

                          F5     1F  0096   129 	BLSSU	20$

                                     0098   130  

                                     0098   131 ;

                                     0098   132 ; INIT FREE MESSAGE BUFFER LIST

                                     0098   133 ;

                                     0098   134  

            51       0000'CF     DE  0098   135 	MOVAL	W^JBC$T_MSGBUFR,R1	; POINT AT FREE BUFFERS

         F0 BB            61     0E  009D   136 40$:	INSQUE	(R1),@JCD_Q_FREEBUFR(R11) ; INSERT BUFFERS INTO FREE LIST

            51       00C0 C1     DE  00A1   137 	MOVAL	JCM_K_SIZE(R1),R1	; ADVANCE TO NEXT BUFFER

   00000000'8F            51     D1  00A6   138 	CMPL	R1,#JBC$T_MBUFEND	; PAST THE END?

                          EE     1F  00AD   139 	BLSSU	40$			; BR IF MORE TO DO

                                     00AF   140  

                                     00AF   141 ;

                                     00AF   142 ; OPEN THE ACCOUNTING FILE

                                     00AF   143 ;

                                     00AF   144  

                          FF4E'  30  00AF   145 	BSBW	JBC$OPENACNT		; SET A PLACE FOR ACCOUNTING

                                     00B2   146  

                                     00B2   147 ;

                                     00B2   148 ; INITIALIZE THE JOB INDICATOR

                                     00B2   149 ;

         06 AB         64 8F     9B  00B2   150 	MOVZBW	#100,JCD_W_JOBSEQ(R11)	; SET JOB TO START AT 100.

                                     00B7   151 ;

                                     00B7   152 ;

                                     00B7   153 ; CREATE AND MAP A GLOBAL SECTION

                                     00B7   154 ;

                                     00B7   155  

                                     00B7   156 	$EXPREG_S  #1,-			; EXPAND P0 SPACE 0 PAGES IN ORDER

                                     00B7   157 		RETADR=W^JBC$Q_INADR	; TO FIND PLACE TO MAP THE QUEUE.

       0004'CF   3FFFFFFF 8F     D0  00C8   158 	MOVL	#<1@30>-1,W^JBC$Q_INADR+4 ; SET MAXIMUM UPPER LIMIT AS END OF P0

                                     00D1   159 	$MGBLSC_S -			; TRY TO MAP THE SECTION

                                     00D1   160 		INADR=W^JBC$Q_INADR,-	; INPUT RANGE DESCRIPTOR

                                     00D1   161 		RETADR=W^JBC$Q_RETADR,-	; RETURN RANGE DESCRIPTOR

                                     00D1   162 		FLAGS=#<SEC$M_GBL!SEC$M_WRT!SEC$M_PERM!SEC$M_SYSGBL>,- ; FLAGS

                                     00D1   163 		GSDNAM=SECNAM		; GLOBAL SECTION NAME DESCRIPTOR

            78            50     E8  00F0   164 	BLBS	R0,80$			; BR IF MAP WORKED

            5E         B0 AE     DE  00F3   165 	MOVAL	-FAB$C_BLN(SP),SP	; ALLOCATE A FAB IN THE STACK

            6E            00     2C  00F7   166 	MOVC5	#0,(SP),#0,#FAB$C_BLN,(SP) ; ZERO THE FAB

       0050 8F            00         00FA       

                          6E         00FE       

            52            5E     D0  00FF   167 	MOVL	SP,R2			; GET THE ADDRESS OF THE FAB

                                     0102   168 	ASSUME	FAB$B_BLN EQ FAB$B_BID+1 ; ASSUME THESE ARE ADJACENT

            62       5003 8F     B0  0102   169 	MOVW	#<FAB$C_BLN@8+FAB$C_BID>,FAB$B_BID(R2) ; SET ID AND SIZE OF FAB

         34 A2            18     90  0107   170 	MOVB	#FILNAMSIZ,FAB$B_FNS(R2) ; SIZE OF FILE NAME STRING

         2C A2       FEF9 CF     9E  010B   171 	MOVAB	SECFILNAM,FAB$L_FNA(R2)	; ADDRESS OF FILE NAME STRING

         16 A2            01     90  0111   172 	MOVB	#FAB$M_PUT,FAB$B_FAC(R2) ; ACCESS FOR WRITING

                                     0115   173 	SETBIT	#FAB$V_UFO,FAB$L_FOP(R2) ; SET USER FILE OPEN

                                     011A   174 	$OPEN	(R2)			; OPEN THE FILE

            53         0C A2     3C  0123   175 	MOVZWL	FAB$L_STV(R2),R3	; GET THE CHANNEL NUMBER

            5E         50 AE     9E  0127   176 	MOVAB	FAB$C_BLN(SP),SP	; DEALLOCATE THE FAB

            2B            50     E9  012B   177 	BLBC	R0,60$			; BRANCH IF FAILED

                                     012E   178 	$CRMPSC_S -			; CREATE AND MAP THE SECTION

                                     012E   179 		INADR=W^JBC$Q_INADR,-	; INPUT RANGE DESCRIPTOR

                                     012E   180 		RETADR=W^JBC$Q_RETADR,-	; RETURN RANGE DESCRIPTOR

                                     012E   181 		FLAGS=#<SEC$M_GBL!SEC$M_WRT!SEC$M_PERM!SEC$M_SYSGBL>,- ; FLAGS

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   5

V01             JOB_CONTROL INITIALIZATION                                                                                       (2)



                                     012E   182 		GSDNAM=SECNAM,-		; GLOBAL SECTION NAME DESCRIPTOR

                                     012E   183 		CHAN=R3,-		; CHANNEL FOR FILE OPEN

                                     012E   184 		VBN=#1			; STARTING VIRTUAL BLOCK IN SECTION

            08            50     E8  0156   185 	BLBS	R0,70$			; BR IF ERROR

                                     0159   186 60$:	SHOW_ERROR	GBL_SEC_ERR	;

                       18 AB     D4  015B   187 	CLRL	JCD_A_QUEBASE(R11)	; DISABLE SYMBIONT FUNCTIONS

                          0195   31  015E   188 	BRW	JBCGO			; START REST OF JOB CONTROLLER

                                     0161   189 70$:	$DASSGN_S CHAN=R3		; DEASSIGN CHANNEL FOR GLOBAL SECTION

                                 D0  016B   190 80$:	MOVL	W^JBC$Q_RETADR,-	; SET ADDRESS ACTUALLY MAPPED

            5A       0000'CF         016C   191 		R10			; INTO WORK REGISTER

         18 AB            5A     D0  0170   192 	MOVL	R10,JCD_A_QUEBASE(R11)	; AND INTO WORK AREA

                                     0174   193 ;

                                     0174   194 ;	RECONSTRUCT THE QUEUE AS BEST AS POSSIBLE

                                     0174   195 ;

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   6

V01             JOB_CONTROL INITIALIZATION                                                                                       (3)



                                     0174   197 	.ENABL	LSB

                                     0174   198  

                                     0174   199 	$GETTIM_S  JCD_Q_TIME(R11)	; GET TIME FOR QUEUE INSERTS

                          6A     D4  017E   200 	CLRL	(R10)			; ZERO AVAILIABLE RECORD LIST

                                     0180   201 	ASSUME	SQH$L_OPENJOB+4 EQ SQH$L_TIMQUE ; 

                       14 AA     7C  0180   202 	CLRQ	SQH$L_OPENJOB(R10)	; DUMP OPEN JOBS AND TIMER QUEUE

                                     0183   203 	ASSUME	SQH$B_FLAGS+1 EQ SQH$B_NUMQUE ;

                       04 AA     B4  0183   204 	CLRW	SQH$B_FLAGS(R10)	; CLEARS FLAGS AND NUMBER OF QUEUES

            6A            00     2C  0186   205 	MOVC5	#0,(R10),#0,-		; ZERO OUT ALL QUEUES

                                     0189       

       0100 8F            00         0189   206 		#<32*8>,SQH$Q_QUEUE(R10) ; FOR WAITING JOBS

                       20 AA         018D       

       0004'CF            5A     C3  018F   207 	SUBL3	R10,W^JBC$Q_RETADR+4,SQH$L_LASTREC(R10) ; SET OFFSET TO END OF FILE

                       10 AA         0194       

            59         06 AA     9A  0196   208 	MOVZBL	SQH$B_MAXQUE(R10),R9	; GET MAXIMUM NUMBER OF QUEUES

            56            63     9E  019A   209 	MOVAB	(R3),R6			; SET FIRST ADDRESS OF A QUEUE HEADER

         08 A6            00     E1  019D   210 20$:	BBC	#SMQ$V_INUSE,SMQ$B_FLAGS(R6),40$ ; BR IF QUEUE IDLE

                          15         01A1       

                                     01A2   211 	ASSUME	SMQ$M_CREPND EQ SMQ$M_PAUSED

         08 A6            04     8A  01A2   212 	BICB	#SMQ$M_PAUSED,SMQ$B_FLAGS(R6) ; CLEAR PAUSED OR CREATE PENDING

         08 A6            08     88  01A6   213 	BISB	#SMQ$M_STOPPED,SMQ$B_FLAGS(R6) ; SET QUEUE STOPPPED

                                     01AA   214 	ASSUME	SMQ$L_CURRENT+4 EQ SMQ$L_HOLDLST ;

                          66     7C  01AA   215 	CLRQ	SMQ$L_CURRENT(R6)	; REMOVE CURRENT AND EMPTY HOLD LIST

                       05 AA     96  01AC   216 	INCB	SQH$B_NUMQUE(R10)	; ADD UP THE NUMBER OF QUEUES HERE

         08 A6            01     E1  01AF   217 	BBC	#SMQ$V_DETJOB,SMQ$B_FLAGS(R6),40$ ; BR IF NOT A DETACHED JOB

                          03         01B3       

                       09 A6     94  01B4   218 	CLRB	SMQ$B_JOBCNT(R6)	; ZERO NUMBER OF CURRENT JOBS

            56         20 A6     9E  01B7   219 40$:	MOVAB	SMQ$K_SIZE(R6),R6	; ADVANCE POINTER TO NEXT HEADER

            DF            59     F5  01BB   220 	SOBGTR	R9,20$			; COUNT DOWN NUBER TO OPERATE UPON

            57            66     9E  01BE   221 	MOVAB	(R6),R7			; SET STARTING ADDRESS OF QUEUE RECORDS

            57            5A     C3  01C1   222 	SUBL3	R10,R7,SQH$L_FIRSTREC(R10) ; SET START OF RECORD SPACE IN QUEUE

                       08 AA         01C4       

            5A         0C AA     C1  01C6   223 	ADDL3	SQH$L_NEXTREC(R10),R10,R9 ; FIND END OF ALLOCATED QUEUE SPACE

                          59         01CA       

       0004'CF            59     D1  01CB   224 	CMPL	R9,W^JBC$Q_RETADR+4	; IS THIS WITHIN THE QUEUE?

                          05     18  01D0   225 	BGEQ	45$			; BR IF NO - QUEUE IS A MESS

            57            59     D1  01D2   226 	CMPL	R9,R7			; IS IT ABOVE THE FIRST RECORD?

                          07     14  01D5   227 	BGTR	50$			; BR IF YES - LOOKS OK

         0C AA         08 AA     D0  01D7   228 45$:	MOVL	SQH$L_FIRSTREC(R10),SQH$L_NEXTREC(R10) ; SET QUEUE EMPTY

                          54     11  01DC   229 	BRB	MAPQUE			; GO MAP THE EMPTY QUEUE

            50         06 A7     3C  01DE   230 50$:	MOVZWL	SJH$W_QINDEX(R7),R0	; IS THIS RECORD IN USE AS A JOB HEADER

                          44     13  01E2   231 	BEQL	80$			; IF EQL NO - CHECK NEXT

         08 AA            50     D1  01E4   232 	CMPL	R0,SQH$L_FIRSTREC(R10)	; IS THIS IN THE QUEUE HEADER AREA?

                          3E     1E  01E8   233 	BGEQU	80$			; BR IF NO

                                 B1  01EA   234 	CMPW	SJH$W_JOBSEQ(R7),-	; CHECK IF THIS JOB NUMBER IS -

         06 AB         04 A7         01EB   235 		JCD_W_JOBSEQ(R11)	; HIGHER THAT THE NEXT TO ALLOCATE

                          06     1F  01EF   236 	BLSSU	54$			; IF LSSU THEN NO, ALL IS WELL

                          01     A1  01F1   237 	ADDW3	#1,SJH$W_JOBSEQ(R7),-	; SET ONE HIGHER AS NEXT TO ALLOCATE TO-

         06 AB         04 A7         01F3   238 		JCD_W_JOBSEQ(R11)	; PREVENT TWO JOBS WITH SAME NUMBER.

            58            57     D0  01F7   239 54$:	MOVL	R7,R8			; SET JOB HEADER TO FOLLOW RECORD LINKS

                                     01FA   240 	ASSUME	SJH$L_RECLINK EQ SQR$L_RECLINK ; ASSUMED RECORD LINKAGE

            50            68     D0  01FA   241 60$:	MOVL	SQR$L_RECLINK(R8),R0	; INDEX TO NEXT RECORD

                          20     13  01FD   242 	BEQL	70$			; BR IF NO MORE

         08 AA            50     D1  01FF   243 	CMPL	R0,SQH$L_FIRSTREC(R10)	; IS THIS A VALID QUEUE RECORD?

                          1A     1F  0203   244 	BLSSU	70$			; BR IF BELOW QUEUE RECORD SPACE

         0C AA            50     D1  0205   245 	CMPL	R0,SQH$L_NEXTREC(R10)	; CHECK AGAINST UPPER LIMIT

                          14     1A  0209   246 	BGTRU	70$			; BR IF NOT IN USED PORTION OF THE QUEUE

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   7

V01             JOB_CONTROL INITIALIZATION                                                                                       (3)



            50            5A     C0  020B   247 	ADDL	R10,R0			; FIND REAL ADDRESS

                       06 A0     B5  020E   248 	TSTW	SQR$W_JOBSEQ+2(R0)	; IS THIS RECORD A JOB HEADER?

                          0C     12  0211   249 	BNEQ	70$			; BR IF THIS CANT BE JOB FILE RECORD

         04 A8         04 A0     B1  0213   250 	CMPW	SQR$W_JOBSEQ(R0),SJH$W_JOBSEQ(R8) ; IS THIS RECORD IN THIS JOB?

                          05     12  0218   251 	BNEQ	70$			; BR IF NO-CLOSE OUT THE JOB AS IS

            58            50     D0  021A   252 	MOVL	R0,R8			; SET THIS AS NEXT RECORD

                          DB     11  021D   253 	BRB	60$			; CHECK IT OUT

                          68     D4  021F   254 70$:	CLRL	SQR$L_RECLINK(R8)	; MAKE SURE LAST LINK IS ZERO

                          67     D5  0221   255 	TSTL	SJH$L_RECLINK(R7)	; ANY RECORDS IN THIS JOB

                          03     13  0223   256 	BEQL	80$			; BR IF NO - DON'T QUEUE THIS JOB

                          FDD8'  30  0225   257 	BSBW	SYM$JOBINSQUE		; INSERT THIS IN THE QUEUE

   00000040 8F            59     F1  0228   258 80$:	ACBL	R9,#SYM$K_RECSIZE,R7,50$ ; INDEX TO NEXT RECORD

            FFAC          57         022F       

                                     0232   259  

                                     0232   260 	.DSABL	LSB

                                     0232   261  

                                     0232   262 ;

                                     0232   263 ;	NOW BUILD A MAP OF RECORDS THAT ARE MISSING

                                     0232   264 ;

                                 C3  0232   265 MAPQUE:	SUBL3	SQH$L_FIRSTREC(R10),-	; FIND NUMBER OF BYTES IN USE

         0C AA         08 AA         0233   266 		SQH$L_NEXTREC(R10),R6	; IN THE QUEUE FILE RECORD SPACE

                          56         0237       

            56   00000040 8F     C6  0238   267 	DIVL	#SYM$K_RECSIZE,R6	; CHAGE THAT TO NUMBER OF RECORDS

                          7B     13  023F   268 	BEQL	99$			; BR IF NO RECORDS ALLOCATED

            56            07     C1  0241   269 	ADDL3	#7,R6,R0		; ROUND UP TO MODULO 8

                          50         0244       

            50         FD 8F     78  0245   270 	ASHL	#-3,R0,R0		; FIND NUMBER OF BYTES TO MAP FILE

                          50         0249       

            5E            50     C2  024A   271 	SUBL	R0,SP			; MAKE SPACE FOR BIT MAP

                          50     DD  024D   272 	PUSHL	R0			; SAVE NUMBER OF BYTES ALLOCATED

            6E            00     2C  024F   273 	MOVC5	#0,(SP),#0,R0,4(SP)	; ZERO THE AREA

            50            00         0252       

                       04 AE         0254       

                          50     D4  0256   274 	CLRL	R0			; SET TO ZERO AS FIRST BIT

            55         04 AE     9E  0258   275 	MOVAB	4(SP),R5		; SET ADDRESS OF BIT ARRAY

                                     025C   276 10$:	SETBIT	R0,(R5)			; SET BITS FOR ALLOCATED RECORDS

            50            56     F2  0260   277 	AOBLSS	R6,R0,10$		; SET ONE BIT FOR EACH RECORD

                          F8         0263       

            56       0120 CA     DE  0264   278 20$:	MOVAL	SQH$K_SIZE(R10),R6	; SET FOR START OF CHECK

            54         06 AA     9A  0269   279 	MOVZBL	SQH$B_MAXQUE(R10),R4	; GET NUMBER OF QUEUES

         08 A6            00     E1  026D   280 30$:	BBC	#SMQ$V_INUSE,SMQ$B_FLAGS(R6),40$ ; BR IF NOT IN USE

                          09         0271       

            50         04 A6     D0  0272   281 	MOVL	SMQ$L_HOLDLST(R6),R0	; HEAD OF JOB LIST

                          03     13  0276   282 	BEQL	40$			; BR IF NOTHING HERE

                          0043   30  0278   283 	BSBW	100$			; CHECK THAT OUT

            56            20     C0  027B   284 40$:	ADDL	#SMQ$K_SIZE,R6		; ADVANCE POINTER

            EC            54     F5  027E   285 	SOBGTR	R4,30$			; DO ALL DEVICE QUEUES

            50         18 AA     D0  0281   286 	MOVL	SQH$L_TIMQUE(R10),R0	; GET ENTRIES IN TIME QUEUE

                          02     13  0285   287 	BEQL	50$			; BR IF THERE ARE NONE

                          35     10  0287   288 	BSBB	100$			; PROCESS THIS JOB LIST

            6E            08     C5  0289   289 50$:	MULL3	#8,(SP),R6		; FIND NUMBER OF BITS IN ARRAY

                          56         028C       

            55            6E     C0  028D   290 	ADDL	(SP),R5			; FIND ADDRESS OF LAST BYTE IN ARRAY+1

            56            08     C2  0290   291 60$:	SUBL	#8,R6			; COUNT DOWN NUMBER OF BITS CHECKED

                          24     19  0293   292 	BLSS	90$			; BR WHEN NO MORE

                          75     95  0295   293 	TSTB	-(R5)			; ANY RECORDS HERE TO BE ALLOCATED

                          F7     13  0297   294 	BEQL	60$			; BR IF NO - CHECK NEXT BYTE

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   8

V01             JOB_CONTROL INITIALIZATION                                                                                       (3)



            54            07     D0  0299   295 	MOVL	#7,R4			; SET FIRST BIT TO CHECK IN BYTE

            65            54     E5  029C   296 70$:	BBCC	R4,(R5),80$		; BR IF THIS RECORD IS ALREADY ALLOCATED

                          14         029F       

            56            54     C1  02A0   297 	ADDL3	R4,R6,R0		; FIND RECORD NUMBER OF MISSING RECORD

                          50         02A3       

            50   00000040 8F     7A  02A4   298 	EMUL	#SYM$K_RECSIZE,R0,SQH$L_FIRSTREC(R10),R0 ; FIND BYTE OFFSET

            50         08 AA         02AB       

            50            5A     C0  02AE   299 	ADDL	R10,R0			; NOW GET THE REAL ADDRESS IN QUEUE FILE

                          FD4C'  30  02B1   300 	BSBW	SYM$DEARECORD		; PUT THE RECORD IN THE FREE LIST

            E5            54     F4  02B4   301 80$:	SOBGEQ	R4,70$			; CHECK ALL BITS IN BYTE?

                          D7     11  02B7   302 	BRB	60$			; DONE WITH THAT BYTE - CHECK NEXT

            5E            8E     C0  02B9   303 90$:	ADDL	(SP)+,SP		; CLEAR BIT BUFFER FROM STACK

                          38     11  02BC   304 99$:	BRB	JBCGO			; START THE JOB CONTROLLER

                                     02BE   305 ;

                                     02BE   306 ; LOCAL SUBROUTINE TO CLEAR ALL THE BITS ASSOCIATED WITH

                                     02BE   307 ; A LIST OF PRINT JOBS

                                     02BE   308 ;

            50            5A     C1  02BE   309 100$:	ADDL3	R10,R0,R2		; FIND REAL ADDRESS OF JOB HEADER RECORD

                          52         02C1       

            50         3C A2     D0  02C2   310 	MOVL	SJH$L_PARMBLK(R2),R0	; GET JOB PARAMETER BLOCK

                          02     13  02C6   311 	BEQL	105$			; BR IF NONE

                          16     10  02C8   312 	BSBB	150$			; SET THE BIT

            52            5A     C3  02CA   313 105$:	SUBL3	R10,R2,R0		; RESET INDEX TO JOB HEADER

                          50         02CD       

            50            5A     C1  02CE   314 110$:	ADDL3	R10,R0,R1		; FIND REAL ADDRESS OF RECORD

                          51         02D1       

                          0C     10  02D2   315 	BSBB	150$			; SET THE BIT

            50            61     D0  02D4   316 	MOVL	SQR$L_RECLINK(R1),R0	; FOLLOW JOB LIST TO NEXT RECORD

                          F5     12  02D7   317 	BNEQ	110$			; BR IF MORE FILES IN JOB

            50         08 A2     D0  02D9   318 	MOVL	SJH$L_NEXTJOB(R2),R0	; GET OFFSET TO NEXT JOB

                          DF     12  02DD   319 	BNEQ	100$			; DO THIS JOB

                                 05  02DF   320 	RSB

                                     02E0   321  

            50         08 AA     C2  02E0   322 150$:	SUBL	SQH$L_FIRSTREC(R10),R0	; FIND OFFSET TO RECORD

            50   00000040 8F     C6  02E4   323 	DIVL	#SYM$K_RECSIZE,R0	; FIND RECORD NUMBER

            65            50     E4  02EB   324 	BBSC	R0,(R5),160$		; BR IF RECORD NOT FOUND BEFORE

                          06         02EE       

                          51     DD  02EF   325 	PUSHL	R1			; SAVE RECORD POINTER

                                     02F1   326 	SHOW_ERROR	MULT_ALLOCATE	; TELL THAT MULTIPLE ALLOCATIONS EXIST

                          02     BA  02F3   327 	POPR	#^M<R1>			;

                                 05  02F5   328 160$:	RSB				;

                                     02F6   329  

                                     02F6   330 	.DSABL	LSB

                                     02F6   331  

                          FD07'  30  02F6   332 JBCGO:	BSBW	JBC$READMB		; ISSUE INITIAL READ ON MAILBOX

                                     02F9   333 	$CMKRNL_S B^10$			; SET USER NAME

                          FCF8'  31  0305   334 	BRW	JBC$LOOP		; START THE MAIN LOOP

                               0000  0308   335 10$:	.WORD	0			;

       0004'DF       0000'CF     2C  030A   336 	MOVC5	W^JBC$Q_JBCNAM,@W^JBC$Q_JBCNAM+4,#^A/ /,- ; SET USER NAME

                                     0311       

            0C            20         0311   337 		#12,@#CTL$T_USERNAME	; TO JOB CONTROL FOR ERROR MESSAGES

                 00000000'9F         0313       

                                 04  0318   338 	RET				;

                                     0319   339 

                                     0319   340 	.END	JBC$INIT		;

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (3)



$$.TMP1        = 00000001            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

$$.TMP2        = 00000062            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

$$T1           = 00000000            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

.$$.           = 00000005            FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            

ACM$B_PROCPRI    00000024            FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            

ACM$L_PROCID     FFFFFFFC            FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            

ACM$L_UIC        0000000C            FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            

ACM$Q_ACNTNAM    0000001C            FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            

ACM$Q_PRVMSK     00000004            FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            

ACM$T_DATA       00000028            FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            

ACM$T_USERNAM    00000010            FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            

ACM$W_MAILBOX    00000002            FAB$M_GET      = 00000002            FAB$V_MSE      = 00000004            

ACM$W_TYPE       00000000            FAB$M_INP      = 00080000            FAB$V_MXV      = 00000001            

ACM$W_USERREQ    00000026            FAB$M_JNL      = 00400000            FAB$V_NAM      = 00000018            

BIT...         = 00000003            FAB$M_KFO      = 40000000            FAB$V_NEF      = 0000000A            

CTL$T_USERNAME   ********   X   03   FAB$M_MSE      = 00000010            FAB$V_NFS      = 00000010            

FAB$B_BID        00000000            FAB$M_MXV      = 00000002            FAB$V_NIL      = 00000005            

FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            FAB$V_OFP      = 0000001D            

FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            FAB$V_ORG      = 00000004            

FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            FAB$V_POS      = 00000008            

FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            FAB$V_PPF      = 00000012            

FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            FAB$V_PPF_IND  = 0000000E            

FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            FAB$V_PPF_RAT  = 00000006            

FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            FAB$V_PRN      = 00000002            

FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            FAB$V_PUT      = 00000000            

FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            FAB$V_RCK      = 00000017            

FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            FAB$V_RWC      = 0000000B            

FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            FAB$V_RWO      = 00000007            

FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            FAB$V_SCF      = 0000000E            

FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            FAB$V_SHRDEL   = 00000002            

FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            FAB$V_SHRGET   = 00000001            

FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            FAB$V_SHRPUT   = 00000000            

FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            FAB$V_SHRUPD   = 00000003            

FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            FAB$V_SPL      = 0000000D            

FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            FAB$V_SQO      = 00000006            

FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            FAB$V_SUP      = 00000002            

FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            FAB$V_TEF      = 0000001C            

FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            FAB$V_TMD      = 00000004            

FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            FAB$V_TMP      = 00000003            

FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            FAB$V_TRN      = 00000004            

FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            FAB$V_UFM      = 0000001A            

FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            FAB$V_UFO      = 00000011            

FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            FAB$V_UPD      = 00000003            

FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            FAB$V_UPI      = 00000006            

FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            FAB$V_WCK      = 00000009            

FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            FAB$W_BLS        0000003C            

FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            FAB$W_DEQ        00000014            

FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            FAB$W_IFI        00000002            

FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            FAB$W_MRS        00000036            

FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            FILNAMSIZ      = 00000018            

FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            GBL...         = 00000000            

FAB$L_STS        00000008            FAB$V_BLK      = 00000003            GBL_SEC_ERR      ********   X   03   

FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            JBC$ERRORMSG     ********   X   03   

FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            JBC$EXCEPTION    ********   X   03   

FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            JBC$G_INTJOBEND  ********   X   03   

FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            JBC$G_INTJOBFLG  ********   X   03   

FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            JBC$INIT         0000002D RG    03   

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (3)



JBC$LOOP         ********   X   03   JBC$_UNESYMMSG = 000484C0            SEC$K_MATEQU   = 00000001            

JBC$OPENACNT     ********   X   03   JBC$_USERVAL   = 00048498            SEC$K_MATLEQ   = 00000002            

JBC$Q_INADR      ********   X   03   JBCGO            000002F6 R     03   SEC$L_CCB        00000000            

JBC$Q_JBCNAM     ********   X   03   JBC_K_MAXBUFR  = 00000004            SEC$L_GSD        00000000            

JBC$Q_MBNAME     00000020 R     03   JBC_K_PRTIMFLAG= 00000002            SEC$L_PAGCNT     0000001C            

JBC$Q_RETADR     ********   X   03   JBC_K_SYNCFLAG = 00000001            SEC$L_REFCNT     00000018            

JBC$READMB       ********   X   03   JBC_K_UPDFLG   = 00000008            SEC$L_VBN        00000010            

JBC$T_DATABLK    ********   X   03   JBC_M_CREJOBREQ= 00000008            SEC$L_VPXPFC     00000008            

JBC$T_MBUFEND    ********   X   03   JBC_M_MBREADREQ= 00000001            SEC$L_WINDOW     0000000C            

JBC$T_MSGBUFR    ********   X   03   JBC_M_SRVTIMQUE= 00000010            SEC$M_AMOD     = 00000300            

JBC$_ACMINVOP  = 00048088            JBC_M_SYMCREREQ= 00000002            SEC$M_CRF      = 00000002            

JBC$_ACNTOPN   = 00048478            JBC_M_SYMINIREQ= 00000004            SEC$M_DZRO     = 00000004            

JBC$_ACNTWRT   = 00048480            JBC_V_CREJOBREQ= 00000003            SEC$M_GBL      = 00000001            

JBC$_ENTQUE    = 000484A8            JBC_V_MBREADREQ= 00000000            SEC$M_PERM     = 00004000            

JBC$_ILLDEVNAM = 00048000            JBC_V_SRVTIMQUE= 00000004            SEC$M_SYSGBL   = 00008000            

JBC$_ILLDEVTYP = 00048008            JBC_V_SYMCREREQ= 00000001            SEC$M_WRT      = 00000008            

JBC$_ILLFILNAM = 00048010            JBC_V_SYMINIREQ= 00000002            SEC$S_AMOD     = 00000002            

JBC$_ILLQUENAM = 00048018            JCD_A_LBUFADR    0000000C            SEC$S_CRF      = 00000001            

JBC$_INPASGN   = 00048488            JCD_A_QUEBASE    00000018            SEC$S_DZRO     = 00000001            

JBC$_INPREAD   = 00048490            JCD_B_CURPDEV    0000001D            SEC$S_GBL      = 00000001            

JBC$_INVMSG    = 00048418            JCD_B_CURSYMB    0000001C            SEC$S_PERM     = 00000001            

JBC$_INVSCT    = 00048468            JCD_G_LISTS      00000000            SEC$S_PFC      = 00000008            

JBC$_JOBABORT  = 00048080            JCD_G_WLEND      FFFFFFF0            SEC$S_SYSGBL   = 00000001            

JBC$_JOBCRD    = 000484B0            JCD_G_WORKLIST   FFFFFFD0            SEC$S_VPX      = 00000016            

JBC$_LOSTREC   = 00048438            JCD_K_SIZE     = 000000FC            SEC$S_WRT      = 00000001            

JBC$_MBASGN    = 00048400            JCD_L_SMBPID     FFFFFFCC            SEC$V_AMOD     = 00000008            

JBC$_MBDEAS    = 00048460            JCD_Q_ACNTFIL    FFFFFFE8            SEC$V_CRF      = 00000001            

JBC$_MBREAD    = 00048408            JCD_Q_FREEBUFR   FFFFFFF0            SEC$V_DZRO     = 00000002            

JBC$_MBSETAST  = 000484C8            JCD_Q_LBUFDES    00000008            SEC$V_GBL      = 00000000            

JBC$_MBWRITE   = 000484D0            JCD_Q_PROCDEL    FFFFFFE0            SEC$V_PERM     = 0000000E            

JBC$_MULTREC   = 00048430            JCD_Q_SYMBMAN    FFFFFFD8            SEC$V_PFC      = 00000018            

JBC$_NOOPENJOB = 00048048            JCD_Q_SYMBSRV    FFFFFFD0            SEC$V_SYSGBL   = 0000000F            

JBC$_NOPRIV    = 00048020            JCD_Q_SYMBWAIT   FFFFFFF8            SEC$V_VPX      = 00000000            

JBC$_NOQUEHDR  = 00048028            JCD_Q_TIME       FFFFFFC4            SEC$V_WRT      = 00000003            

JBC$_NOQUESPACE= 00048030            JCD_Q_TMPDESC    00000010            SEC$W_FLAGS      00000014            

JBC$_NORMAL    = 00040001            JCD_T_INDEX0     00000000            SEC$W_SECXBL     00000006            

JBC$_NOSUCHJOB = 00048040            JCD_T_LINBFE     000000C0            SEC$W_SECXFL     00000004            

JBC$_NOSUCHQUE = 00048038            JCD_T_LINBUF     0000001E            SECFILNAM        00000008 R     03   

JBC$_PASSCRD   = 000484B8            JCD_T_START      FFFFFFC4            SECNAM           00000000 R     03   

JBC$_PRCREAT   = 00048410            JCD_W_FLAGS      00000004            SJH$B_COPYCNT    0000000E            

JBC$_PRINTOUT  = 000484E0            JCD_W_JOBSEQ     00000006            SJH$B_FLAGS      0000000C            

JBC$_QUECNT    = 00048428            JCD_W_LBUFCNT    00000008            SJH$B_FORMS      0000000D            

JBC$_QUEERR    = 00048458            JCD_W_LBUFSIZ    0000000A            SJH$B_PRTPRI     0000000F            

JBC$_QUENOSTOP = 00048050            JCD_W_MBCHAN     00000002            SJH$L_NEXTJOB    00000008            

JBC$_QUEUPD    = 000484E8            JCD_W_TMPCHAN    00000000            SJH$L_PARMBLK    0000003C            

JBC$_SCTERR    = 00048450            JCM_K_SIZE       000000C0            SJH$L_PROCID     00000010            

JBC$_SMINVOPR  = 00048058            JCM_Q_IOSB       00000008            SJH$L_RECLINK    00000000            

JBC$_SMINVOPT  = 00048060            JCM_Q_LINKS      00000000            SJH$L_UIC        00000014            

JBC$_SMINVREQ  = 00048068            JCM_T_MSGDATA    00000010            SJH$M_HOLD     = 00000001            

JBC$_SMZEROJOB = 00048070            MAILBOX_ASSIGN   ********   X   03   SJH$M_JOBABORT = 00000004            

JBC$_SNDRESP   = 00048420            MAPQUE           00000232 R     03   SJH$M_LOWER    = 00000002            

JBC$_SYMBASN   = 00048440            MULT_ALLOCATE    ********   X   03   SJH$Q_ACNTNAM    00000024            

JBC$_SYMBCRE   = 000484D8            SEC$B_AMOD       00000015            SJH$Q_JOBNAME    00000034            

JBC$_SYMBDSAB  = 00048078            SEC$B_PFC        0000000B            SJH$Q_TIME       0000002C            

JBC$_SYMBWRT   = 00048448            SEC$C_LENGTH     00000020            SJH$T_USERNAM    00000018            

JBC$_SYMDEL    = 00048470            SEC$K_LENGTH     00000020            SJH$V_HOLD     = 00000000            

JBC$_UAFOPN    = 000484A0            SEC$K_MATALL   = 00000000            SJH$V_JOBABORT = 00000002            

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (3)



SJH$V_LOWER    = 00000001            SQH$B_SPARE      00000007            SYS$MGBLSC       ********   X   03   

SJH$W_JOBSEQ     00000004            SQH$C_SIZE       00000120            SYS$OPEN         ********  GX   03   

SJH$W_MBCHAN     0000000D            SQH$K_SIZE       00000120            _$$_           = 00000050            

SJH$W_QINDEX     00000006            SQH$L_FIRSTREC   00000008            

SMQ$B_CHAR       0000000A            SQH$L_FREEREC    00000000            

SMQ$B_FLAGS      00000008            SQH$L_LASTREC    00000010            

SMQ$B_FORMS      00000009            SQH$L_NEXTREC    0000000C            

SMQ$B_JOBCNT     00000009            SQH$L_OPENJOB    00000014            

SMQ$B_JOBLIM     0000000B            SQH$L_TIMQUE     00000018            

SMQ$C_SIZE       00000020            SQH$Q_QUEUE      00000020            

SMQ$K_SIZE       00000020            SQH$W_QUESEQ     0000001C            

SMQ$L_ASNSCT     0000000C            SQR$B_COPYCNT    00000039            

SMQ$L_CURRENT    00000000            SQR$B_FLAGS      00000038            

SMQ$L_HOLDLST    00000004            SQR$L_RECLINK    00000000            

SMQ$M_CREPND   = 00000004            SQR$M_BRSTPAG  = 00000004            

SMQ$M_DEFBRST  = 00000002            SQR$M_DELETE   = 00000001            

SMQ$M_DEFFLAG  = 00000001            SQR$M_DOUBLE   = 00000008            

SMQ$M_DETJOB   = 00000002            SQR$M_FLAGPAG  = 00000002            

SMQ$M_GENDEV   = 00000010            SQR$M_NOFEED   = 00000010            

SMQ$M_INIPRI   = 0000000F            SQR$M_PAGHDR   = 00000020            

SMQ$M_INUSE    = 00000001            SQR$T_FILNAM     00000024            

SMQ$M_LOWER    = 00000008            SQR$T_VOLNAM     00000008            

SMQ$M_NOGENERIC= 00000020            SQR$V_BRSTPAG  = 00000002            

SMQ$M_NOSWAP   = 00000010            SQR$V_DELETE   = 00000000            

SMQ$M_PAUSED   = 00000004            SQR$V_DOUBLE   = 00000003            

SMQ$M_REDIRECT = 00000010            SQR$V_FLAGPAG  = 00000001            

SMQ$M_STOPPED  = 00000008            SQR$V_NOFEED   = 00000004            

SMQ$M_TRMDEV   = 00000004            SQR$V_PAGHDR   = 00000005            

SMQ$S_INIPRI   = 00000004            SQR$W_DIRNUM     0000001E            

SMQ$T_NAME       00000010            SQR$W_DIRSEQ     00000020            

SMQ$V_CREPND   = 00000002            SQR$W_DIRVOL     00000022            

SMQ$V_DEFBRST  = 00000001            SQR$W_FILNUM     00000018            

SMQ$V_DEFFLAG  = 00000000            SQR$W_FILSEQ     0000001A            

SMQ$V_DETJOB   = 00000001            SQR$W_JOBSEQ     00000004            

SMQ$V_GENDEV   = 00000004            SQR$W_PAGCNT     0000003A            

SMQ$V_INIPRI   = 00000000            SQR$W_RECID      00000006            

SMQ$V_INUSE    = 00000000            SQR$W_RELVOL     0000001C            

SMQ$V_LOWER    = 00000003            SYM$C_RECSIZE    00000040            

SMQ$V_NOGENERIC= 00000005            SYM$DEARECORD    ********   X   03   

SMQ$V_NOSWAP   = 00000004            SYM$G_SYMCTLTBE  ********   X   03   

SMQ$V_PAUSED   = 00000002            SYM$G_SYMCTLTBL  ********   X   03   

SMQ$V_REDIRECT = 00000004            SYM$JOBINSQUE    ********   X   03   

SMQ$V_STOPPED  = 00000003            SYM$K_RECSIZE    00000040            

SMQ$V_TRMDEV   = 00000002            SYM_K_MAXDEVNAM= 0000000F            

SMR$B_PROCPRI    00000024            SYM_K_MAXFILNAM= 00000013            

SMR$L_PROCID     FFFFFFFC            SYM_K_MAXSYMB  = 00000010            

SMR$L_UIC        0000000C            SYM_K_NUMQUEUE = 0000001F            

SMR$Q_ACNTNAM    0000001C            SYM_K_NUMRECORD= 00000400            

SMR$Q_PRVMSK     00000004            SYM_K_PRTPRI   = 00000020            

SMR$T_DATA       00000028            SYM_K_QUENAM   = 0000000F            

SMR$T_USERNAM    00000010            SYS$ASSIGN       ********   X   03   

SMR$W_MAILBOX    00000002            SYS$CMKRNL       ********   X   03   

SMR$W_TYPE       00000000            SYS$CRMPSC       ********   X   03   

SMR$W_USERREQ    00000026            SYS$DASSGN       ********   X   03   

SQH$B_FLAGS      00000004            SYS$DCLCMH       ********   X   03   

SQH$B_MAXQUE     00000006            SYS$EXPREG       ********   X   03   

SQH$B_NUMQUE     00000005            SYS$GETTIM       ********   X   03   

JBCINIT         -JOB_CONTROLLER INIT ROUTINE                     22-AUG-1978 00:41:46   VAX-11 MACRO X0.3-11               Page  12

PROGRAM SECTION SYNOPSIS                                                                                                         (3)







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

JBC$INIT         00000319      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

9232. BYTES LEFT IN FREE MEMORY POOL.

850. BYTES OF RECLAIMED MEMORY.

OBJ$:JBCINIT,LIS$:JBCINIT/-SP=EXECML$/ML,LIB$:JOBCTL/ML,SRC$:JBCINIT

66 MLB DIR RDS - 799 GETS TO DEFINE 39 MACROS. 52 INTER. FILE WRITES. 

