JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      37  DECLARATIONS

   (2)      59  START A DETCHED JOB

   (3)     180  FIND DETACHED JOB

   (3)     234  NEXT FILE FOR A DETCHED JOB

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   1

V01                                                                                                                              (1)



                                     0000     1 	.TITLE	JBCSTADET - JOB CONTROLLER START DETACHED JOB

                                     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:	JOB CONTROLLER

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:	MODULE TO START A DETCHED JOB

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:	USER MODE NATIVE CODE

                                     0000    29 ;

                                     0000    30 ; AUTHOR:	W.H.BROWN, CREATION DATE: 9-JUN-1977

                                     0000    31 ;

                                     0000    32 ; MODIFIED BY:

                                     0000    33 ;

                                     0000    34 ;	, : VERSION

                                     0000    35 ; 01	- 

                                     0000    36 ;--

                                     0000    37 	.SBTTL	DECLARATIONS

                                     0000    38 ;

                                     0000    39 ; INCLUDE FILES:

                                     0000    40 ;

                                     0000    41 ;	[235,10]J/ML

                                     0000    42 ;

                                     0000    43 ; MACROS:

                                     0000    44 ;

                                     0000    45 ;

                                     0000    46 ; EQUATED SYMBOLS:

                                     0000    47 ;

                                     0000    48 	$MSGDEF				; SYSTEM WIDE MESSAGE CODES

                                     0000    49 	JBCPARDEF			; DEFINE JOB CONTROLLER PARAMETERS

                                     0000    50 	JBCQUEDEF			; DEFINE QUEUE OFFSETS

                           00000010  0000    51 	BATCH	= <1@4>			; JOB IS A BATCH JOB

                           00000004  0000    52 	NOSWAP	= <1@2>			; INHIBIT SWAPPING

                                     0000    53 ;

                                     0000    54 ; OWN STORAGE:

                                     0000    55 ;

                                     0000    56 ;	NONE

                                     0000    57 ;

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   2

V01             START A DETCHED JOB                                                                                              (2)



                                     0000    59 	.SBTTL	START A DETCHED JOB

                                     0000    60 ;++

                                     0000    61 ; FUNCTIONAL DESCRIPTION:

                                     0000    62 ;

                                     0000    63 ;	THIS MODULE IS ENTERED WHEN IS APPEARS TO BE NECESSARY

                                     0000    64 ;	TO INITIATE AN ADDITIONAL DETCHED (BATCH) JOB.

                                     0000    65 ;

                                     0000    66 ; CALLING SEQUENCE:

                                     0000    67 ;

                                     0000    68 ;	JSB/BSB	JBC$STADET

                                     0000    69 ;

                                     0000    70 ; INPUT PARAMETERS:

                                     0000    71 ;

                                     0000    72 ;	R6 CONTAINS THE ADDRESS FOR THE QUEUE FROM WHICH JOB SHOULD

                                     0000    73 ;	BE STARTED.

                                     0000    74 ;

                                     0000    75 ; OUTPUT PARAMETERS:	NONE

                                     0000    76 ;

                                     0000    77 ; COMPLETION CODES:	NONE

                                     0000    78 ;

                                     0000    79 ; SIDE EFFECTS:		NONE

                                     0000    80 ;--

                                     0000    81 	PURE_SECTION

                                     0000    82  

                                     0000    83 	.ENABL	LSB

                                     0000    84  

                                     0000    85 JBC$STADET::				; START A DETACHED JOB

                       13'AF     9F  0000    86 	PUSHAB	B^100$			; INIT CO-ROUTINE ADDRESS

                          9E     16  0003    87 10$:	JSB	@(SP)+			; COROUTINE LINK FOR NEXT QUEUE

            0A            50     E9  0005    88 	BLBC	R0,40$			; BR IF NO MORE

                                 93  0008    89 	BITB	#<SMQ$M_CREPND!SMQ$M_STOPPED>,-	; CHECK IF CREATE IS PENDING OR

         08 A6            0C         0009    90 		SMQ$B_FLAGS(R6)		; OR DEQUEUING IS STOPPED FOR THIS QUEUE

                          F5     12  000C    91 	BNEQ	10$			; IF EITHER LOOK AT NEXT

                          2F     10  000E    92 	BSBB	200$			; INIT THE JOB

                          F1     11  0010    93 	BRB	10$			; TRY FOR NEXT QUEUE

                                 05  0012    94 40$:	RSB				; RETURN

                                     0013    95  

                                     0013    96 ;+

                                     0013    97 ; COROUTINE TO SCAN FOR DETACHED JOB QUEUES

                                     0013    98 ;

                                     0013    99 ; INPUTS:	NONE

                                     0013   100 ;

                                     0013   101 ; OUTPUTS:	R6 IS ADDRESS OF NEXT DETACHED JOB QUEUE LIST HEADER.

                                     0013   102 ;

                                     0013   103 ; SIDE EFFECTS:	R8 IS USED AND MUST BE PRESERVED BY CALLER.

                                     0013   104 ;-

                                     0013   105  

            56       0100 CA     9E  0013   106 100$:	MOVAB	SQH$K_SIZE-SMQ$K_SIZE(R10),R6 ; POINT AT START OF QUEUE SPACE

            58         06 AA     9A  0018   107 	MOVZBL	SQH$B_MAXQUE(R10),R8	; GET NUMBER OF BUSY QUEUES

                          50     D4  001C   108 110$:	CLRL	R0			; ASSUME SEARCH WILL FAIL

            56            20     C0  001E   109 	ADDL	#SMQ$K_SIZE,R6		; POINT AT NEXT QUEUE

         08 A6            00     E1  0021   110 	BBC	#SMQ$V_INUSE,SMQ$B_FLAGS(R6),130$ ; BR IF NOT IN USE

                          09         0025       

         08 A6            01     E1  0026   111 	BBC	#SMQ$V_DETJOB,SMQ$B_FLAGS(R6),130$ ; BR IF NOT DETACHED JOB

                          04         002A       

                          50     D6  002B   112 	INCL	R0			; SET SUCESSFUL FIND

                          9E     16  002D   113 	JSB	@(SP)+			; CO-ROUTINE LINK

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   3

V01             START A DETCHED JOB                                                                                              (2)



            EA            58     F5  002F   114 130$:	SOBGTR	R8,110$			; TRY NEXT

                                 05  0032   115 140$:	RSB				;

                                     0033   116  

                                     0033   117 ;+

                                     0033   118 ; SUBROUTINE TO INITIATE A DETACHED JOB 

                                     0033   119 ;

                                     0033   120 ; INPUTS:	R6 IS ADDRESS OF QUEUE HEADER

                                     0033   121 ;

                                     0033   122 ; OUTPUTS:	THE JOB IS STARTED

                                     0033   123 ;

                                     0033   124 ; SIDE EFFECTS:	R0 - R4 ARE USED

                                     0033   125 ;-

                                     0033   126  

                  0000003B'00000004  0033   127 190$:	.LONG	4,.+4			; DESCRIPTOR

                        30 41 50 4F  003B   128 	.ASCII	\OPA0\			; THE GENERIC TERMINAL

                                     003F   129  

                                 91  003F   130 200$:	CMPB	SMQ$B_JOBCNT(R6),-	; CHECK IF CURRENT JOB COUNT AGAINST

         0B A6         09 A6         0040   131 		SMQ$B_JOBLIM(R6)	; JOB LIMIT FOR THIS QUEUE

                          EC     1E  0044   132 	BGEQU	140$			; BR IF CAN'T START JOB

                          FFB7'  30  0046   133 	BSBW	SYM$FINDACTJOB		; SEARCH FOR JOB READY TO START

            E6            50     E9  0049   134 	BLBC	R0,140$			; BR IF NONE TO START IN THIS QUEUE

                          1C     BB  004C   135 	PUSHR	#^M<R2,R3,R4>		; SAVE CRITICAL VALUES FOR QUEUE SEARCH

            57            52     D0  004E   136 	MOVL	R2,R7			; COPY JOB HEADER ADDRESS

            5E            08     C2  0051   137 	SUBL	#8,SP			; MAKE BUFFER FOR JOB NUMBER

            52            6E     9E  0054   138 	MOVAB	(SP),R2			; SET ADDRESS OF BUFFER

                 424F4A5F 8F     DD  0057   139 	PUSHL	#^A/_JOB/		; SET JOB NAME PREFIX

            50         04 A7     3C  005D   140 	MOVZWL	SJH$W_JOBSEQ(R7),R0	; GET JOB SEQUENCE NUMBER

                          FF9C'  30  0061   141 	BSBW	JBC$BIN2ASC		; CONVERT TO ASCII STRING

                          6E     DF  0064   142 	PUSHAL	(SP)			; ADDRESS OF NAME STRING

            52            6E     C3  0066   143 	SUBL3	(SP),R2,-(SP)		; FIND LENGTH OF NAME

                          7E         0069       

            55            6E     7E  006A   144 	MOVAQ	(SP),R5			; SET NAME FOR OUTPUT AND RPOCESS

            52            10     D0  006D   145 	MOVL	#BATCH,R2		; SET BATCH JOB FLAG

         0A A6            04     E1  0070   146 	BBC	#SMQ$V_NOSWAP,SMQ$B_CHAR(R6),210$ ; BR IF JOB SHOULD BE SWAPPED

                          03         0074       

                                     0075   147 	SETBIT	NOSWAP,R2		; OR IN THE FLAG FOR NO SWAPPING

                          00     EF  0078   148 210$:	EXTZV	#SMQ$V_INIPRI,#SMQ$S_INIPRI,-

         0A A6            04         007A   149 		SMQ$B_CHAR(R6),R1	; EXTRACT INITIAL JOB PRIORITY

                          51         007D       

                          07     12  007E   150 	BNEQ	220$			; BR IF PRIORITY SUPPLIED

            51   00000000'9F     9A  0080   151 	MOVZBL	@#SYS$GB_DEFPRI,R1	; SET SYSTEM DEFINED PRIORITY

                                     0087   152 220$:	$CREPRC_S	-		; CREATE A PROCESS

                                     0087   153 		INPUT=	190$,-		; DEIVICE INPUT IS TERMINAL

                                     0087   154 		OUTPUT=	(R5),-		; AND FOR THE DEVICE OUTPUT

                                     0087   155 		ERROR=	(R5),-		; ERROR EQUALS OUTPUT

                                     0087   156 		BASPRI=	R1,-		; INITIAL PRIORITY OF JOB

                                     0087   157 		STSFLG=	R2,-		; AND THE PROCESS FLAGS

                                     0087   158 		PIDADR= SJH$L_PROCID(R7),- ; PLACE TO STORE PROCESS ID

                                     0087   159 		PRCNAM=	(R5),-		; ESTABLISH PROCESS NAME=OUTPUT

                                     0087   160 		IMAGE=	W^JBC$Q_LOGIN,-	; IMAGE TO RUN IS LOGIN

                                     0087   161 		PRVADR=	W^JBC$Q_PRIVMASK,-; PROCESS DEFAULT PRIVLEDGE

                                     0087   162 		UIC=#<^O10@16+^O40>	; UIC IS [10,40]

            5E            14     C0  00B1   163 	ADDL	#<8+4+8>,SP		; CLEAR THE STACK

                          3C     BA  00B4   164 	POPR	#^M<R2,R3,R4,R5>	; POP VALUES PLUS COROUTINE LINK

            1F            50     E9  00B6   165 	BLBC	R0,240$			; FORGET IT IF CREATE FAILED

                          65     16  00B9   166 	JSB	(R5)			; RETURN TO REMOVE RECORD FROM QUEUE

                          8E     D5  00BB   167 	TSTL	(SP)+			; REMOVE COROUTINE LINK

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   4

V01             START A DETCHED JOB                                                                                              (2)



         08 A6            04     88  00BD   168 	BISB	#SMQ$M_CREPND,SMQ$B_FLAGS(R6) ; INDICATE CREATE IS OUTSTANDING

                                 D0  00C1   169 	MOVL	SMQ$L_CURRENT(R6),-	; SET FIRST IN LIST OF CURRENT JOBS AS

         08 A7            66         00C2   170 		SJH$L_NEXTJOB(R7)	; NEXT AFTER THIS JOB IN ACTIVE LIST

            57            5A     C3  00C5   171 	SUBL3	R10,R7,SMQ$L_CURRENT(R6) ; SET PENDING AS FIRST IN LIST

                          66         00C8       

                       09 A6     96  00C9   172 	INCB	SMQ$B_JOBCNT(R6)	; COUNT NUMBER OF JOBS RUNNING

                                     00CC   173 	$CMKRNL_S B^250$		; COUNT UP BATCH JOBS

                                 05  00D8   174 240$:	RSB				;

                                     00D9   175  

                               0000  00D9   176 250$:	.WORD	0			; KERNAL MODE ENTRY MASK

                 00000000'9F     B6  00DB   177 	INCW	@#SYS$GW_BJOBCNT	;

                                 04  00E1   178 	RET

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   5

V01             FIND DETACHED JOB                                                                                                (3)



                                     00E2   180 	.SBTTL	FIND DETACHED JOB

                                     00E2   181 ;++

                                     00E2   182 ; FUNCTIONAL DESCRIPTION:

                                     00E2   183 ;

                                     00E2   184 ;	THIS ROUTINE IS CALLED TO FIND THE DETACHED JOB QUEUE ENTRY

                                     00E2   185 ;	ASSOCIATED WITH A PARTICULAR PROCESS.

                                     00E2   186 ;

                                     00E2   187 ; CALLING SEQUENCE:

                                     00E2   188 ;

                                     00E2   189 ;	JSB/BSB	SYM$FINDETJOB

                                     00E2   190 ;

                                     00E2   191 ; INPUT PARAMETERS:

                                     00E2   192 ;

                                     00E2   193 ;	R1 CONTAINS THE PROCESS ID

                                     00E2   194 ;

                                     00E2   195 ; OUTPUT PARAMETERS:

                                     00E2   196 ;

                                     00E2   197 ;	R1 CONTIANS NONE ZERO VALUE IF NOT FIRST JOB IN QUEUE

                                     00E2   198 ;	R5 CONTAINS THE LINK WORD TO THIS JOB

                                     00E2   199 ;	R6 CONTAINS THE QUEUE HEADER ASSOCIATED WITH THE JOB

                                     00E2   200 ;	R7 CONTAINS THE JOB HEADER ADDRESS

                                     00E2   201 ;

                                     00E2   202 ; IMPLICIT OUTPUTS:

                                     00E2   203 ;

                                     00E2   204 ;	'Z' IS SET IF THIS IS THE FIRST JOB IN THE QUEUE

                                     00E2   205 ;

                                     00E2   206 ; COMPLETION CODES:

                                     00E2   207 ;

                                     00E2   208 ;	R0 CONTAINS TRUE IF JOB IS FOUND, ELSE FALSE

                                     00E2   209 ;

                                     00E2   210 ; SIDE EFFECTS:

                                     00E2   211 ;

                                     00E2   212 ;	REGISTERS R0,R1,R4,R5,R6,R8 ARE USED

                                     00E2   213 ;--

                                     00E2   214  

                                     00E2   215 SYM$FINDETJOB::				; FIND A DETACHED JOB

                          00     DD  00E2   216 	PUSHL	#0			; SET FLAG OF FIRST JOB IN QUEUE

                     FF2B CF     9F  00E4   217 	PUSHAB	100$			; INIT COROUTINE TO FIND QUEUE

                          9E     16  00E8   218 300$:	JSB	@(SP)+			; GET ADDRESS OF NEXT DETACHED QUEUE

            1F            50     E9  00EA   219 	BLBC	R0,350$			; BR IF DIDN'T FIND JOB

            55            66     DE  00ED   220 	MOVAL	SMQ$L_CURRENT(R6),R5	; SET ADDRESS OF LINK WORD

                       04 AE     D4  00F0   221 	CLRL	4(SP)			; SET START ANOTHER JOB FLAG

            57            65     D0  00F3   222 320$:	MOVL	(R5),R7			; GET OFFSET TO NEXT JOB

                          F0     13  00F6   223 	BEQL	300$			; BR IF NO MORE JOBS

            57            5A     C0  00F8   224 	ADDL	R10,R7			; FIND REAL ADDRESS

         10 A7            51     D1  00FB   225 	CMPL	R1,SJH$L_PROCID(R7)	; IS THIS THE JOB?

                          09     13  00FF   226 	BEQL	340$			; BR IF YES

                       04 AE     D6  0101   227 	INCL	4(SP)			; CLEAR START ANOTHER FLAG

            55         08 A7     DE  0104   228 	MOVAL	SJH$L_NEXTJOB(R7),R5	; SET LINK WORD ADDRESS

                          E9     11  0108   229 	BRB	320$			; CHECK NEXT

                          8E     D5  010A   230 340$:	TSTL	(SP)+			; CLEAR CO-ROUTINE RETURN ADDRESS

            51            8E     D0  010C   231 350$:	MOVL	(SP)+,R1		; GET FIRST JOB IN QUEUE FLAG

                                 05  010F   232 	RSB				; RETURN WITH 'Z' SET IF FIRST JOB

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   6

V01             NEXT FILE FOR A DETCHED JOB                                                                                      (3)



                                     0110   234 	.SBTTL	NEXT FILE FOR A DETCHED JOB

                                     0110   235 ;++

                                     0110   236 ; FUNCTIONAL DESCRIPTION:

                                     0110   237 ;

                                     0110   238 ;	THIS ROUTINE IS CALLED WHEN A DETACHED JOB INDICATES THAT IT

                                     0110   239 ;	IS READY FOR ITS NEXT JOB COMMAND FILE.  A SPECIAL CASE IS

                                     0110   240 ;	WHEN THIS IS THE FIRST JOB FOR THE PROCESS.

                                     0110   241 ;

                                     0110   242 ; CALLING SEQUENCE:

                                     0110   243 ;

                                     0110   244 ;	ENTERED FROM THE SYMBIONT MANAGER DISPATCHER WITH A CASE FOLLOWING A

                                     0110   245 ;	CALL.

                                     0110   246 ;

                                     0110   247 ; INPUT PARAMETERS:

                                     0110   248 ;

                                     0110   249 ;	R6 CONTAINS THE ADDRESS FOR THE QUEUE FROM WHICH JOB SHOULD

                                     0110   250 ;	BE STARTED.

                                     0110   251 ;

                                     0110   252 ; OUTPUT PARAMETERS:	NONE

                                     0110   253 ;

                                     0110   254 ; COMPLETION CODES:	NONE

                                     0110   255 ;

                                     0110   256 ; SIDE EFFECTS:		NONE

                                     0110   257 ;--

                                     0110   258  

                                     0110   259 SYM$NXTJOBSTEP::			; NEXT FILE FOR DETACHED JOB

            53         0C BB     9E  0110   260 	MOVAB	@JCD_A_LBUFADR(R11),R3	; POINT AT DATA BUFFER

            83            11     3C  0114   261 	MOVZWL	#MSG$_ABOOPR,(R3)+	; ASSUME OPERATION SHOULD BE ABORTED

            51         FC A9     D0  0117   262 	MOVL	SMR$L_PROCID(R9),R1	; GET PROCESS ID OF BATCH JOB

                          C5     10  011B   263 	BSBB	SYM$FINDETJOB		; FIND THE JOB

            55            50     E9  011D   264 	BLBC	R0,460$

                          07     12  0120   265 	BNEQ	420$			; BR IF NOT FIRST JOB IN THIS QUEUE

         08 A6            02     E4  0122   266 	BBSC	#SMQ$V_CREPND,SMQ$B_FLAGS(R6),420$ ; BR IF CREATE PENDING

                          02         0126       

                          51     D6  0127   267 	INCL	R1			; FLAG NO CREATE NECESSARY

            58            67     D0  0129   268 420$:	MOVL	SJH$L_RECLINK(R7),R8	; GET OFFSET TO RECORD

                          47     13  012C   269 	BEQL	460$			; TELL JOB TO EXIT

                          51     DD  012E   270 	PUSHL	R1			; SAVE INITIATE NEW JOB FLAG

            58            5A     C0  0130   271 	ADDL	R10,R8			; FIND ADDRESS OF JOB RECORD

         FC A3            10     B0  0133   272 	MOVW	#MSG$_INIOPR,-4(R3)	; SET MESSAGE TYPE INTO BUFFER

         FE A3         38 A8     9B  0137   273 	MOVZBW	SQR$B_FLAGS(R8),-2(R3)	; DELETE FILE FLAG

                                     013C   274 	ASSUME	SJH$L_UIC+4  EQ SJH$T_USERNAM

                                     013C   275 	ASSUME	SJH$L_UIC+16 EQ SJH$Q_ACNTNAM

         14 A7            18     28  013C   276 	MOVC3	#<4+12+8>,SJH$L_UIC(R7),(R3) ; INSERT UIC, NAME AND ACCOUNT

                          63         0140       

                                     0141   277 	ASSUME	SQR$T_VOLNAM+16 EQ SQR$W_FILNUM

                                     0141   278 	ASSUME	SQR$T_VOLNAM+22 EQ SQR$W_DIRNUM

                                     0141   279 	ASSUME	SQR$T_VOLNAM+28 EQ SQR$T_FILNAM

                                 28  0141   280 	MOVC3	#<16+6+6>,-		; COPY DEVICE, FILE AND DIRECTORY ID'S -

         08 A8            1C         0142   281 		SQR$T_VOLNAM(R8),(R3)	; INTO SYMBIONT INIT MESSAGE

                          63         0145       

            83         34 A7     7D  0146   282 	MOVQ	SJH$Q_JOBNAME(R7),(R3)+	; PASS JOB NAME FOR BATCH LOG FILE

                                 D0  014A   283 	MOVL	SQR$L_RECLINK(R8),-	; REMOVE JOB FROM LIST

            67            68         014B   284 		SJH$L_RECLINK(R7)	;

                                     014D   285 	SYM_QUECHANGE

            50            58     D0  0150   286 430$:	MOVL	R8,R0			; COPY JOB FILE RECORD ADDRESS

                          FEAA'  30  0153   287 	BSBW	SYM$DEARECORD		; AND GET RID OF THAT RECORD

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   7

V01             NEXT FILE FOR A DETCHED JOB                                                                                      (3)



            58         3C A7     D0  0156   288 	MOVL	SJH$L_PARMBLK(R7),R8	; GET COMMAND PARAMETERS

                          0E     13  015A   289 	BEQL	450$			; BR IF THERE ARE NONE

            58            5A     C0  015C   290 	ADDL	R10,R8			; FIND REAL ADDRESS

            68       0040 8F     28  015F   291 	MOVC3	#SYM$K_RECSIZE,(R8),(R3); COPY PARAMETERS INTO INITIATE MESSAGE

                          63         0164       

                       3C A7     D4  0165   292 	CLRL	SJH$L_PARMBLK(R7)	; ONLY USE IT ONCE

                          E6     11  0168   293 	BRB	430$			; GO DEALLOCATE THE RECORD

                          8E     D5  016A   294 450$:	TSTL	(SP)+			; SHOULD A RESTART BE ATTEMPTED

                          07     12  016C   295 	BNEQ	460$			; BR IF NO

                          53     DD  016E   296 	PUSHL	R3			; SAVE MESSAGE POINTER

                          FECC   30  0170   297 	BSBW	200$			; TRY TO INITIATE A JOB

                          08     BA  0173   298 	POPR	#^M<R3>			; RESTORE THAT ADDRESS

                          FE88'  30  0175   299 460$:	BSBW	JBC$SNDRESP		; SEND RESPONCE TO BATCH PROCESSOR

                                 04  0178   300 	RET				;

                                     0179   301  

                                     0179   302 	.END

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   8

SYMBOL TABLE                                                                                                                     (3)



$$T1           = 00000000            JBC$_SMINVREQ  = 00048068            MSG$_ABOOPR    = 00000011            

ACM$B_PROCPRI    00000024            JBC$_SMZEROJOB = 00048070            MSG$_ABORT     = 00000030            

ACM$L_PROCID     FFFFFFFC            JBC$_SNDRESP   = 00048420            MSG$_ACCRSP    = 00000021            

ACM$L_UIC        0000000C            JBC$_SYMBASN   = 00048440            MSG$_CONFIRM   = 00000031            

ACM$Q_ACNTNAM    0000001C            JBC$_SYMBCRE   = 000484D8            MSG$_CONNECT   = 00000032            

ACM$Q_PRVMSK     00000004            JBC$_SYMBDSAB  = 00048078            MSG$_CRUNSOLIC = 00000002            

ACM$T_DATA       00000028            JBC$_SYMBWRT   = 00048448            MSG$_DELPROC   = 00000003            

ACM$T_USERNAM    00000010            JBC$_SYMDEL    = 00048470            MSG$_DELSMB    = 00000014            

ACM$W_MAILBOX    00000002            JBC$_UAFOPN    = 000484A0            MSG$_DEVOFFLIN = 00000005            

ACM$W_TYPE       00000000            JBC$_UNESYMMSG = 000484C0            MSG$_DEVONLIN  = 00000007            

ACM$W_USERREQ    00000026            JBC$_USERVAL   = 00048498            MSG$_DISCON    = 00000033            

BATCH          = 00000010            JBC_K_MAXBUFR  = 00000004            MSG$_EXIT      = 00000034            

BIT...         = 00000005            JBC_K_PRTIMFLAG= 00000002            MSG$_INIOPR    = 00000010            

GBL...         = 00000000            JBC_K_SYNCFLAG = 00000001            MSG$_INTMSG    = 00000035            

JBC$BIN2ASC      ********   X   03   JBC_K_UPDFLG   = 00000008            MSG$_OPREPLY   = 00000009            

JBC$Q_LOGIN      ********   X   03   JBC_M_CREJOBREQ= 00000008            MSG$_OPRQST    = 00000008            

JBC$Q_PRIVMASK   ********   X   03   JBC_M_MBREADREQ= 00000001            MSG$_PATHLOST  = 00000036            

JBC$SNDRESP      ********   X   03   JBC_M_SRVTIMQUE= 00000010            MSG$_PROTOCOL  = 00000037            

JBC$STADET       00000000 RG    03   JBC_M_SYMCREREQ= 00000002            MSG$_REJECT    = 00000038            

JBC$_ACMINVOP  = 00048088            JBC_M_SYMINIREQ= 00000004            MSG$_RESOPR    = 00000013            

JBC$_ACNTOPN   = 00048478            JBC_V_CREJOBREQ= 00000003            MSG$_SCANBAD   = 00000028            

JBC$_ACNTWRT   = 00048480            JBC_V_MBREADREQ= 00000000            MSG$_SCANRSP   = 00000029            

JBC$_ENTQUE    = 000484A8            JBC_V_SRVTIMQUE= 00000004            MSG$_SMBDON    = 00000009            

JBC$_ILLDEVNAM = 00048000            JBC_V_SYMCREREQ= 00000001            MSG$_SMBINI    = 00000008            

JBC$_ILLDEVTYP = 00048008            JBC_V_SYMINIREQ= 00000002            MSG$_SMBRSP    = 00000020            

JBC$_ILLFILNAM = 00048010            JCD_A_LBUFADR    0000000C            MSG$_SNDACC    = 0000000A            

JBC$_ILLQUENAM = 00048018            JCD_A_QUEBASE    00000018            MSG$_SNDSMB    = 00000004            

JBC$_INPASGN   = 00048488            JCD_B_CURPDEV    0000001D            MSG$_SUSOPR    = 00000012            

JBC$_INPREAD   = 00048490            JCD_B_CURSYMB    0000001C            MSG$_THIRDPARTY= 00000039            

JBC$_INVMSG    = 00048418            JCD_G_LISTS      00000000            MSG$_TIMEOUT   = 0000003A            

JBC$_INVSCT    = 00048468            JCD_G_WLEND      FFFFFFF0            MSG$_TRMHANGUP = 00000006            

JBC$_JOBABORT  = 00048080            JCD_G_WORKLIST   FFFFFFD0            MSG$_TRMUNSOLIC= 00000001            

JBC$_JOBCRD    = 000484B0            JCD_K_SIZE     = 000000FC            MSG$_XM_ATTN   = 0000000D            

JBC$_LOSTREC   = 00048438            JCD_L_SMBPID     FFFFFFCC            MSG$_XM_DATAVL = 0000000B            

JBC$_MBASGN    = 00048400            JCD_Q_ACNTFIL    FFFFFFE8            MSG$_XM_SHUTDN = 0000000C            

JBC$_MBDEAS    = 00048460            JCD_Q_FREEBUFR   FFFFFFF0            NOSWAP         = 00000004            

JBC$_MBREAD    = 00048408            JCD_Q_LBUFDES    00000008            SJH$B_COPYCNT    0000000E            

JBC$_MBSETAST  = 000484C8            JCD_Q_PROCDEL    FFFFFFE0            SJH$B_FLAGS      0000000C            

JBC$_MBWRITE   = 000484D0            JCD_Q_SYMBMAN    FFFFFFD8            SJH$B_FORMS      0000000D            

JBC$_MULTREC   = 00048430            JCD_Q_SYMBSRV    FFFFFFD0            SJH$B_PRTPRI     0000000F            

JBC$_NOOPENJOB = 00048048            JCD_Q_SYMBWAIT   FFFFFFF8            SJH$L_NEXTJOB    00000008            

JBC$_NOPRIV    = 00048020            JCD_Q_TIME       FFFFFFC4            SJH$L_PARMBLK    0000003C            

JBC$_NOQUEHDR  = 00048028            JCD_Q_TMPDESC    00000010            SJH$L_PROCID     00000010            

JBC$_NOQUESPACE= 00048030            JCD_T_INDEX0     00000000            SJH$L_RECLINK    00000000            

JBC$_NORMAL    = 00040001            JCD_T_LINBFE     000000C0            SJH$L_UIC        00000014            

JBC$_NOSUCHJOB = 00048040            JCD_T_LINBUF     0000001E            SJH$M_HOLD     = 00000001            

JBC$_NOSUCHQUE = 00048038            JCD_T_START      FFFFFFC4            SJH$M_JOBABORT = 00000004            

JBC$_PASSCRD   = 000484B8            JCD_W_FLAGS      00000004            SJH$M_LOWER    = 00000002            

JBC$_PRCREAT   = 00048410            JCD_W_JOBSEQ     00000006            SJH$Q_ACNTNAM    00000024            

JBC$_PRINTOUT  = 000484E0            JCD_W_LBUFCNT    00000008            SJH$Q_JOBNAME    00000034            

JBC$_QUECNT    = 00048428            JCD_W_LBUFSIZ    0000000A            SJH$Q_TIME       0000002C            

JBC$_QUEERR    = 00048458            JCD_W_MBCHAN     00000002            SJH$T_USERNAM    00000018            

JBC$_QUENOSTOP = 00048050            JCD_W_TMPCHAN    00000000            SJH$V_HOLD     = 00000000            

JBC$_QUEUPD    = 000484E8            JCM_K_SIZE       000000C0            SJH$V_JOBABORT = 00000002            

JBC$_SCTERR    = 00048450            JCM_Q_IOSB       00000008            SJH$V_LOWER    = 00000001            

JBC$_SMINVOPR  = 00048058            JCM_Q_LINKS      00000000            SJH$W_JOBSEQ     00000004            

JBC$_SMINVOPT  = 00048060            JCM_T_MSGDATA    00000010            SJH$W_MBCHAN     0000000D            

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (3)



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$FINDACTJOB   ********   X   03   

SMQ$V_PAUSED   = 00000002            SYM$FINDETJOB    000000E2 RG    03   

SMQ$V_REDIRECT = 00000004            SYM$K_RECSIZE    00000040            

SMQ$V_STOPPED  = 00000003            SYM$NXTJOBSTEP   00000110 RG    03   

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$CMKRNL       ********   X   03   

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

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

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

SQH$B_FLAGS      00000004            _$$_           = 000000EF            

SQH$B_MAXQUE     00000006            

SQH$B_NUMQUE     00000005            

SQH$B_SPARE      00000007            

SQH$C_SIZE       00000120            

SQH$K_SIZE       00000120            

JBCSTADET       - JOB CONTROLLER START DETACHED JOB              22-AUG-1978 00:47:45   VAX-11 MACRO X0.3-11               Page  10

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_PURE         00000179      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

15890. BYTES LEFT IN FREE MEMORY POOL.

166. BYTES OF RECLAIMED MEMORY.

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

45 MLB DIR RDS - 545 GETS TO DEFINE 27 MACROS. 32 INTER. FILE WRITES. 

