OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     145  OPC$INTILOG - INITIALIZE THE LOG FILE

   (3)     186  OPC$ALLOCATE - ALLOCATE MEMORY FROM POOL

   (4)     244  OPC$RESTART - RECEIVE NEW MESSAGE

   (5)     268  RECEIVE - RECEIVE MESSAGE

   (6)     319  PROCESS DEVICE OFFLINE/ONLINE

   (7)     354  REQUEST - PROCESS OPERATOR REQUEST MESSAGE

   (8)     415  STATUS - GET OPERATOR TERMINAL STATUS

   (9)     490  RET_BAD_OPR - SEND "INVALID OPERATOR REQUEST" E

   (10)    512  CANCEL - CANCEL USER REQUEST

   (11)    547  TERMINIT - INITIALIZE OPERATOR TERMINAL

   (12)    625  DISPLAY_NEXT - DISPLAY NEXT MESSAGE ON ALL TERM

   (13)    676  SETUP_RQST - SET UP REQUEST _RQST

   (14)    710  REPLY - PROCESS OPERATOR REPLY MESSAGE

   (15)    777  SENDREPLY - SEND REPLY TO MESSAGE

   (16)    847  LOG_BRD_MSG - LOG AND BROADCAST MESSAGE

   (17)    887  FORMAT_MSG - FORMAT MESSAGE TEXT

   (18)    919  BRD_SINGLE - BROADCAST TO OPERATOR TERMINAL

   (19)    945  DEALLOCATE MEMORY BLOCK

   (20)    987  LOG_MSG - MAKE A LOG ENTRY

   (21)   1011  FIND_OPR - FIND OPERATOR TERMINAL RESPONSIBLE F

   (22)   1051  SEARCH_LIST - SEARCH LIST CO-ROUTINE

   (23)   1080  OPC$TIMESTAMP - TIMESTAMP LOG

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   1

V06                                                                                                                              (1)



                                     0001     1 	.TITLE	OPCOMSUB -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES

                                     0001     2 	.IDENT	/V06/

                                     0001     3 ;

                                     0001     4 ; COPYRIGHT (C) 1978

                                     0001     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0001     6 ;

                                     0001     7 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0001     8 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0001     9 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0001    10 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0001    11 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0001    12 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0001    13 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0001    14 ;

                                     0001    15 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0001    16 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0001    17 ; EQUIPMENT CORPORATION.

                                     0001    18 ;

                                     0001    19 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0001    20 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0001    21 ;++

                                     0001    22 ; 

                                     0001    23 ; FACILITY:

                                     0001    24 ;

                                     0001    25 ;	VAX/VMS OPERATOR COMMUNICATIONS PROCESS

                                     0001    26 ;

                                     0001    27 ; ABSTRACT:

                                     0001    28 ;

                                     0001    29 ;	OPERATOR COMMUNICATIONS PROCESS SUBROUTINES.

                                     0001    30 ;

                                     0001    31 ; AUTHOR:

                                     0001    32 ;

                                     0001    33 ;	R.HEINEN 28-JUN-1977

                                     0001    34 ;--

                                     0001    35 ;

                                     0001    36 ; EXTERNAL SYMBOLS

                                     0001    37 ;

                                     0001    38 	$RABDEF				; DEFINE RAB

                                     0001    39 	$FABDEF				; DEFINE FAB

                                     0001    40 	$TTDEF				; DEFINE TERMINAL CHARS

                                     0001    41  

                                 00000000    42 	.PSECT	OPCOM_CODE,NOWRT

                                     0000    43 ;

                                     0000    44 ; LOCAL DATA

                                     0000    45 ;

                           00000000  0000    46 TESTNUM=0

                           00000004  0000    47 TARGET=4

                           00000008  0000    48 CONTROL=8

                           00000010  0000    49 PARAM0=16

                           00000014  0000    50 PARAM1=20

                           00000018  0000    51 PARAM2=24

                           0000001C  0000    52 PARAM3=28

                           00000020  0000    53 PARAM4=32

                           00000024  0000    54 PARAM5=36

                           00000028  0000    55 PARAM6=40

                           0000002C  0000    56 PARAM7=44

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   2

V06             OPC$INTILOG - INITIALIZE THE LOG FILE                                                                            (2)



                                     0000    58 	.SBTTL	OPC$INTILOG - INITIALIZE THE LOG FILE

                                     0000    59 ;++

                                     0000    60 ; OPC$INITLOG - INITIALIZE THE LOG FILE

                                     0000    61 ;

                                     0000    62 ; FUNCTIONAL DESCRIPTION:

                                     0000    63 ;

                                     0000    64 ; THIS ROUTINE IS USED TO SET UP THE LOG FILE.

                                     0000    65 ;

                                     0000    66 ; INPUTS:

                                     0000    67 ;

                                     0000    68 ;	R2 = ADDRESS OF THE RESPONSIBLE TERMINAL IF OPC$INITLOG.

                                     0000    69 ;

                                     0000    70 ; OUTPUTS:

                                     0000    71 ;

                                     0000    72 ;	R0 = STATUS OF THE INITIALIZE OPERATION

                                     0000    73 ;--

                                     0000    74 	.ENABL	LSB

                                     0000    75 INITLOG:				;

                          06A3   30  0000    76 	BSBW	FIND_OPR		; FIND THE OPERATOR

                          03     13  0003    77 	BEQL	10$			; IF EQL THEN FOUND

                          0289   31  0005    78 	BRW	RET_BAD_OPR		; SEND ERROR TO REQUEST

                                     0008    79 ;

                                     0008    80 ; OPEN NEW OR CLOSE LOGFILE

                                     0008    81 ;

                       36 A7     B5  0008    82 10$:	TSTW	OPC$L_MS_RQSTID+MSG_HDR(R7); OPEN OR CLOSE

                          12     13  000B    83 	BEQL	OPC$INITLOG		; IF EQL THEN OPEN

                                     000D    84 	$CLOSE	FAB=W^OPC$GL_FAB	; CLOSE THE FILE

            58       0000'CF     9E  0018    85 	MOVAB	W^OPC$T_LOGCLOS,R8	;

                          30     11  001D    86 	BRB	30$			; CONTINUE

                                     001F    87 OPC$INITLOG::				; INITIALIZE THE LOG FILE

            58       0000'CF     9E  001F    88 	MOVAB	W^OPC$T_LOGFAIL,R8	; ASSUME FAILURE

                                     0024    89 	$CLOSE	FAB=W^OPC$GL_FAB	; CLOSE THE LOG FILE

                                     002F    90 	$CREATE	FAB=W^OPC$GL_FAB,	; CREATE THE LOG

            12            50     E9  003A    91 	BLBC	R0,30$			; IF ERROR THEN BRANCH

                                     003D    92 	$CONNECT RAB=OPC$GL_RAB		; CONNECT TO DATA STREAM

            58       0000'CF     9E  004A    93 	MOVAB	W^OPC$T_LOGINIT,R8	; SET SUCCESS MESSAGE

                          055C   31  004F    94 30$:	BRW	LOG_BRD_MSG		; LOG AND BRAODCAST THE MESSAGE

                                 05  0052    95 35$:	RSB

                                     0053    96  

                                     0053    97 	.DSABL	LSB

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   3

V06             OPC$ALLOCATE - ALLOCATE MEMORY FROM POOL                                                                         (3)



                                     0053    99 	.SBTTL	OPC$ALLOCATE - ALLOCATE MEMORY FROM POOL

                                     0053   100 ;++

                                     0053   101 ; OPC$ALLOCATE - ALLOCATE MEMORY FROM POOL

                                     0053   102 ;

                                     0053   103 ; FUNCTIONAL DESCRIPTION:

                                     0053   104 ;

                                     0053   105 ; THIS ROUTINE ALLOCATES MEMORY FROM A CORE POOL THAT IS EXPANDED AS NEEDED.

                                     0053   106 ; IF THE EXPAND FAILS THE IMAGE IS EXITED.

                                     0053   107 ;

                                     0053   108 ; INPUTS:

                                     0053   109 ;

                                     0053   110 ;	R1 = SIZE TO ALLOCATE

                                     0053   111 ;

                                     0053   112 ; OUTPUTS:

                                     0053   113 ;

                                     0053   114 ;	R1 = BLOCK SIZE

                                     0053   115 ;	R2 = ADDRESS OF ALLOCATED BLOCK

                                     0053   116 ;

                                     0053   117 ;	R0 DISTROYED

                                     0053   118 ;--

                                     0053   119 OPC$ALLOCATE::				; ALLOCATE MEMORY

            50       0000'CF     9E  0053   120 	MOVAB	W^OPC$GQ_POOL,R0	; ADDRESS CORE POOL LIST HEAD

            51            07     C0  0058   121 	ADDL	#7,R1			; ALLOCATE ON QUAD BOUNDRIES

            51            07     8A  005B   122 	BICB	#7,R1			;

            52            50     D0  005E   123 10$:	MOVL	R0,R2			; COPY CURRENT BLOCK ADDRESS

            50            62     D0  0061   124 	MOVL	(R2),R0			; ADDRESS NEXT BLOCK

                          24     13  0064   125 	BEQL	100$			; IF EQUAL THEN FAILURE TO ALLOCATE

         04 A0            51     D1  0066   126 	CMPL	R1,4(R0)		; IS THE NEXT BLOCK LARGE ENOUGH?

                          F2     1A  006A   127 	BGTRU	10$			; IF GTRU THEN NO

                          15     13  006C   128 	BEQL	20$			; IF EQL THEN EXACT FIT

         04 A0            51     C2  006E   129 	SUBL	R1,4(R0)		; CALC NEW BLOCK SIZE

            51            50     C0  0072   130 	ADDL	R0,R1			; CALC ADDRESS OF NEW NEXT ENTRY

            61            60     D0  0075   131 	MOVL	(R0),(R1)		; INSERT LINK WORD

         04 A1         04 A0     D0  0078   132 	MOVL	4(R0),4(R1)		; INSERT SIZE

            60            51     D0  007D   133 	MOVL	R1,(R0)			; INSERT LINK TO FREE BLOCK

            51            50     C2  0080   134 	SUBL	R0,R1			; CALC ALLOCATED SIZE

            62            60     D0  0083   135 20$:	MOVL	(R0),(R2)		; LINK TO LIST

            52            50     D0  0086   136 	MOVL	R0,R2			; RETURN ADDRESS IN R2

                                 05  0089   137 	RSB

                                     008A   138 ;

                                     008A   139 ; ALLOCATION FAILURE

                                     008A   140 ;

                          51     DD  008A   141 100$:	PUSHL	R1			; SAVE REQUEST SIZE

                          7E     7C  008C   142 	CLRQ	-(SP)

            52            5E     D0  008E   143 	MOVL	SP,R2

                                     0091   144 	$EXPREG_S	#2,(R2),,#0	; CREATE THE SPACE

            13            50     E9  00A0   145 	BLBC	R0,120$			; IF LOW CLEAR THEN FAILURE

            51       0400 8F     3C  00A3   146 	MOVZWL	#1024,R1		; SET SIZE OF BLOCK

            50            62     D0  00A8   147 	MOVL	(R2),R0			; ADDRESS BLOCK

                          0592   30  00AB   148 	BSBW	OPC$DEALLOCATE		; DEALLOCATE IT TO POOL

            50            8E     7D  00AE   149 	MOVQ	(SP)+,R0		; REMOVE STACK

                          51   8ED0  00B1   150 	POPL	R1			; RESTORE SIZE

                          9D     11  00B4   151 	BRB	OPC$ALLOCATE		; TRY AGAIN

                                     00B6   152 ;

                                     00B6   153 ; FAILURE TO ALLOCATE ADDITIONAL SPACE

                                     00B6   154 ;

                                     00B6   155 120$:	$EXIT_S	#SS$_INSFMEM

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   4

V06             OPC$RESTART - RECEIVE NEW MESSAGE                                                                                (4)



                                     00C3   157 	.SBTTL	OPC$RESTART - RECEIVE NEW MESSAGE

                                     00C3   158 ;++

                                     00C3   159 ; OPC$RESTART - RECEIVE NEW MESSAGE

                                     00C3   160 ;

                                     00C3   161 ; FUNCTIONAL DESCRIPTION:

                                     00C3   162 ;

                                     00C3   163 ; THIS ROUTINE IS USED TO RECEIVE A NEW MESSAGE. THAT IS, ALLOCATE A NEW

                                     00C3   164 ; MESSAGE BLOCK AND RECEIVE A MESSAGE. IF NO DYNAMIC MEMORY IS AVAILABLE,

                                     00C3   165 ; THE PROCESS IS EXITED WITH AN ERROR

                                     00C3   166 ;

                                     00C3   167 ; INPUTS:

                                     00C3   168 ;

                                     00C3   169 ;	NONE

                                     00C3   170 ;

                                     00C3   171 ; OUTPUTS:

                                     00C3   172 ;

                                     00C3   173 ;	R7 = ADDRESS OF A MESSAGE BLOCK

                                     00C3   174 ;

                                     00C3   175 ;--

                                     00C3   176 OPC$RESTART::				; RECEIVE A NEW MESSAGE

            51       00CC 8F     3C  00C3   177 	MOVZWL	#MSG_SIZE,R1		; ALLOCATE MESSAGE BLOCK

                          FF88   30  00C8   178 	BSBW	OPC$ALLOCATE		;

            57            52     D0  00CB   179 	MOVL	R2,R7			; COPY ADDRESS

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   5

V06             RECEIVE - RECEIVE MESSAGE                                                                                        (5)



                                     00CE   181 	.SBTTL RECEIVE - RECEIVE MESSAGE

                                     00CE   182 ;++

                                     00CE   183 ; RECEIVE - RECEIVE MESSAGE FROM OPERATOR MAILBOX

                                     00CE   184 ;

                                     00CE   185 ; FUNCTIONAL DESCRIPTION:

                                     00CE   186 ;

                                     00CE   187 ; THIS ROUTINE READS THE OPERATOR MAILBOX AND DISPATCHES ON THE

                                     00CE   188 ; MESSAGE CONTENTS TO THE APPROPRIATE PROCESSING ROUTINE.

                                     00CE   189 ; 

                                     00CE   190 ; INPUTS:

                                     00CE   191 ;

                                     00CE   192 ;	R7 = ADDRESS OF A MESSAGE PACKET

                                     00CE   193 ;

                                     00CE   194 ; OUTPUTS:

                                     00CE   195 ;

                                     00CE   196 ;	NONE

                                     00CE   197 ;--

                                     00CE   198 RECEIVE:				; RECEIVE A MESSAGE

       0000'CF            00     E4  00CE   199 	BBSC	#STV_TIMER,W^OPC$GB_STATUS,5$; IF TIMER INTERLOCK CLEAR THEN TIMESTAMP

                          05         00D3       

       06FB'CF            00     FB  00D4   200 	CALLS	#0,W^OPC$TIMESTAMP	; RESTART THE TIMER

            67            00     2C  00D9   201 5$:	MOVC5	#0,(R7),#0,#MSG_SIZE,(R7); CLEAR THE MESSAGE BLOCK

       00CC 8F            00         00DC       

                          67         00E0       

                                     00E1   202 	$QIOW_S	#1,W^OPC$GL_BOX,#IO$_READVBLK,W^OPC$GL_IOSB,-

                                     00E1   203 		P1=MSG_MSG(R7),P2=#MSG_SIZE-MSG_MSG

                                     0107   204 ;

                                     0107   205 ; PROCESS MESSAGE

                                     0107   206 ;

       0000'CF            00     E2  0107   207 30$:	BBSS	#STV_TIMER,W^OPC$GB_STATUS,35$	; SET PROCESSING FLAG FOR TIMER

                          00         010C       

                     FFBD CF     9F  010D   208 35$:	PUSHAB	W^RECEIVE		; SET UP RETURN

            50         0C A7     9A  0111   209 	MOVZBL	MSG_MSG(R7),R0		; GET MESSAGE TYPE

         0C A7       0002'CF     B0  0115   210 	MOVW	W^OPC$GL_IOSB+2,MSG_MSG(R7); SAVE SIZE

            05            50     B1  011B   211 	CMPW	R0,#MSG$_DEVOFFLIN	; OFFLINE?

                          2E     13  011E   212 	BEQL	OFFLINE			; IF EQL THEN YES

            07            50     B1  0120   213 	CMPW	R0,#MSG$_DEVONLIN	; ONLINE?

                          30     13  0123   214 	BEQL	ONLINE			; IF EQL THEN YES

            08            50     B1  0125   215 	CMPW	R0,#MSG$_OPRQST		; OPERATOR REQUEST?

                          23     12  0128   216 	BNEQ	40$			; IGNORE IF NO

            2E         0C A7     B1  012A   217 	CMPW	MSG_MSG(R7),#MSG_HDR+OPC$L_MS_TEXT-MSG_MSG; ENOUGH DATA?

                          1D     1F  012E   218 	BLSSU	40$			; IF LSSU THEN NO

            50         32 A7     9A  0130   219 	MOVZBL	OPC$B_MS_TYPE+MSG_HDR(R7),R0; GET REQUEST TYPE

       FFFE'CF40       0C A7     B1  0134   220 	CMPW	MSG_MSG(R7),W^OPC$GW_SIZES-2[R0]; CHECK FOR MINUMUM DATA

                          10     1F  013B   221 	BLSSU	40$			; IF LSSU THEN NOT ENOUGH

                                     013D   222 	CASE	TYPE=B,LIMIT=#1,R0,<-

                                     013D   223 		TERMINIT,-		; SET UP OPERATOR TERMINAL

                                     013D   224 		INITLOG,-		; START LOG

                                     013D   225 		REQUEST,-		; OPERATOR REQUEST

                                     013D   226 		REPLY,-			; REPLY TO REQUEST

                                     013D   227 		CANCEL,-		; CANCEL REQUEST

                                     013D   228 		STATUS,-		; GET STATUS

                                     013D   229 		>			; 

                                 05  014D   230 40$:	RSB				; RETURN

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   6

V06             PROCESS DEVICE OFFLINE/ONLINE                                                                                    (6)



                                     014E   232 	.SBTTL	 PROCESS DEVICE OFFLINE/ONLINE

                                     014E   233  

                                     014E   234 	.ENABL	LSB

                                     014E   235 ;++

                                     014E   236 ; OFFLINE/ONLINE - PROCESS DEVICE ONLINE/OFFLINE

                                     014E   237 ;

                                     014E   238 ; FUNCTIONAL DESCRIPTION:

                                     014E   239 ;

                                     014E   240 ; THESE ROUTINES DISPLAY DEVICE ONLINE/OFFLINE MESSAGES TO THE 

                                     014E   241 ; OPC$M_NM_DEVICE OPERATORS. THE MESSAGES ARE GENERATED BY DEVICE DRIVERS.

                                     014E   242 ; THE MESSAGE FORMAT IS:

                                     014E   243 ;

                                     014E   244 ;	.BLKW	MSG$_DEVON/OFFLIN

                                     014E   245 ;	.BLKW	UNIT

                                     014E   246 ;	.ASCIC	/DEVICE NAME/

                                     014E   247 ;

                                     014E   248 ; INPUTS:

                                     014E   249 ;

                                     014E   250 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     014E   251 ;

                                     014E   252 ; OUTPUTS:

                                     014E   253 ;

                                     014E   254 ;	R7 = ADDRESS OF THE MESAGE BLOCK

                                     014E   255 ;--

                                     014E   256 OFFLINE:				; DEVICE OFFLINE

            58       0000'CF     9E  014E   257 	MOVAB	W^OPC$T_OFFLINE,R8	; ADDRESS DESC FOR MESSAGE

                          05     11  0153   258 	BRB	10$			; CONTINUE IN COMMON

                                     0155   259 ONLINE:					; DEVICE ONLINE

            58       0000'CF     9E  0155   260 	MOVAB	W^OPC$T_ONLINE,R8	; ADDRESS MESSAGE DESC

         1C A8         10 A7     9E  015A   261 10$:	MOVAB	MSG_DEVCNT(R7),PARAM3(R8); INSERT ADDRESS OF DEVICE NAME

         20 A8         0E A7     B0  015F   262 	MOVW	MSG_DEVUNIT(R7),PARAM4(R8); INSERT UNIT NUMBER

                          044C   31  0164   263 	BRW	LOG_BRD_MSG2		; BRAODCAST IT AND LOG IT

                                     0167   264  

                                     0167   265 	.DSABL	LSB

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   7

V06             REQUEST - PROCESS OPERATOR REQUEST MESSAGE                                                                       (7)



                                     0167   267 	.SBTTL	REQUEST - PROCESS OPERATOR REQUEST MESSAGE

                                     0167   268 ;++

                                     0167   269 ; REQUEST - PROCESS OPERATOR REQUEST MESSAGE

                                     0167   270 ;

                                     0167   271 ; FUNCTIONAL DESCRIPTION:

                                     0167   272 ;

                                     0167   273 ; THIS ROUTINE PROCESSES OPERATOR REQUEST MESSAGES.

                                     0167   274 ;

                                     0167   275 ; 1. A REPLY-ID IS ASSIGNED TO THE REQUEST IF IT REQUESTS

                                     0167   276 ;	A REPLY. THE ID IS A COMBO OF AN EVER INCREASING NUMBER

                                     0167   277 ;	AND THE MAILBOX UNIT SPECIFIED FOR THE REPLY.

                                     0167   278 ; 2. THE REQUEST IS LOGED AND IF IF REQUESTS NO REPLY IT IS DISPLAYED.

                                     0167   279 ; 3. IF THE REQUEST SPECIFIES A REPLY THEN THE MESSAGE IS QUEUED

                                     0167   280 ;	AND THEN DISPLAYED ON ALL SPECIFIED TERMINALS.

                                     0167   281 ;

                                     0167   282 ; INPUTS:

                                     0167   283 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     0167   284 ;

                                     0167   285 ; OUTPUTS:

                                     0167   286 ;

                                     0167   287 ;	R7 = ADDRESS OF THE MESSAGE BLOCK IF NO REPLY SPECIFIED

                                     0167   288 ;--

                                     0167   289 REQUEST:				; PROCESS OPERATOR REQUEST

            55            57     D0  0167   290 	MOVL	R7,R5			; COPY MESSAGE ADDRESS

         08 A7         0E A7     3C  016A   291 	MOVZWL	MSG_REPLYMBX(R7),MSG_NUMBER(R7); REPLY REQUESTED?

                          0D     12  016F   292 	BNEQ	20$			; IF NEQ THEN REPLY SPECIFIED

                          029E   30  0171   293 	BSBW	SETUP_RQST		; SET UP THE RESUEST DISPLAY

            18            00     EF  0174   294 	EXTZV	#0,#24,OPC$B_MS_TARGET+MSG_HDR(R7),TARGET(R8); INSERT TARGET

         04 A8         33 A7         0177       

                          0438   31  017B   295 	BRW	LOG_BRD			; BROADCAST MESSAGE

                                     017E   296 ;

                                     017E   297 ; REPLY DESIRED

                                     017E   298 ;

            50       0000'CF     9E  017E   299 20$:	MOVAB	W^OPC$GL_RQSTID,R0	; ADDRESS TABLE BASE

            51            50     D0  0183   300 	MOVL	R0,R1			; COPY ADDRESS

            20            00     EB  0186   301 50$:	FFC	#0,#32,(R0),MSG_NUMBER(R7); GET A MESSAGE NUMBER

         08 A7            60         0189       

                          08     12  018C   302 	BNEQ	60$			; IF EQL THEN TRY NEXT

            04            1C     3D  018E   303 	ACBW	#28,#4,R0,50$		; POINT TO NEXT LONGWORD

            FFF2          50         0191       

                          29     11  0194   304 	BRB	100$			; IF DONE THEN NONE TO ALLOCATE

            60         08 A7     E2  0196   305 60$:	BBSS	MSG_NUMBER(R7),(R0),65$; ALLOCATE THE NUMBER

                          00         019A       

            50            51     C2  019B   306 65$:	SUBL	R1,R0			; ADDRESS OFFSET IN TABLE

            50         FE 8F     78  019E   307 	ASHL	#-2,R0,R0		; DIVIDE BY 4

                          50         01A2       

            05            50     F0  01A3   308 	INSV	R0,#5,#5,MSG_NUMBER(R7)	; SET TABLE OFFSET

         08 A7            05         01A6       

                       32 A7     94  01A9   309 	CLRB	OPC$B_MS_TYPE+MSG_HDR(R7); SET UP FOR EASY ENABLE BIT TEST

                          0263   30  01AC   310 	BSBW	SETUP_RQST		; SET UP THE DISPLAY

                          04D3   30  01AF   311 	BSBW	LOG_MSG			; LOG THE MESSAGE

            6E       FF0D CF     9E  01B2   312 	MOVAB	W^OPC$RESTART,(SP)	; CHANGE RETURN ADDRESS

       0004'DF            67     0E  01B7   313 	INSQUE	(R7),@W^OPC$GQ_MSGLIST+4; QUEUE MESSAGE

                          01F3   31  01BC   314 	BRW	DISPLAY_NEXT		; START OUTPUT

                                     01BF   315 ;

                                     01BF   316 ; NO MESSAGE NUMBER TO ALLOCATE

                                     01BF   317 ;

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   8

V06             REQUEST - PROCESS OPERATOR REQUEST MESSAGE                                                                       (7)



            52       0000'CF     9E  01BF   318 100$:	MOVAB	W^OPC$GL_RQTERM,R2	; FAKE TERMINAL FOR REJECT

            54         32 A7     9E  01C4   319 	MOVAB	OPC$B_MS_TYPE+MSG_HDR(R7),R4; ADDRESS MESSAGE

            53            08     D0  01C8   320 	MOVL	#8,R3			; SET SIZE

         02 A4       8084 8F     B0  01CB   321 	MOVW	#OPC$_RQSTCAN&^X0FFFF,2(R4); INSERT CANCELED STATUS

            55            57     D0  01D1   322 	MOVL	R7,R5			; SET UP REPLY MESSAGE ID

       0004'DF            67     0E  01D4   323 	INSQUE	(R7),@W^OPC$GQ_MSGLIST+4; INSERT ON QUEUE

            6E       FEE6 CF     9E  01D9   324 	MOVAB	W^OPC$RESTART,(SP)	; CHANGE RETURN ADDRESS

                          02E7   31  01DE   325 	BRW	SEND_REPLY		; DISPOSE OF MESSAGE AND RETURN

                                     01E1   326 	

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page   9

V06             STATUS - GET OPERATOR TERMINAL STATUS                                                                            (8)



                                     01E1   328 	.SBTTL	STATUS - GET OPERATOR TERMINAL STATUS

                                     01E1   329 ;++

                                     01E1   330 ; STATUS - GET OPERATOR TERMINAL STATUS

                                     01E1   331 ;

                                     01E1   332 ; FUNCTIONAL DESCRIPTION:

                                     01E1   333 ;

                                     01E1   334 ; THIS ROUTINE IS USED BY OPERATOR TERMINALS TO GET THE ENABLES OF THE

                                     01E1   335 ; TERMINAL AND CURRENT REQUEST.

                                     01E1   336 ;

                                     01E1   337 ; INPUTS:

                                     01E1   338 ;

                                     01E1   339 ;	R7 = ADDRESS OF THE STATUS MESSAGE

                                     01E1   340 ;

                                     01E1   341 ; OUTPUTS:

                                     01E1   342 ;

                                     01E1   343 ;	R7 = ADDRESS OF THE STATUS MESSAGE

                                     01E1   344 ;--

                                     01E1   345 STATUS:					; SHO OPERATOR STATUS

                          04C2   30  01E1   346 	BSBW	FIND_OPR		; FIND THE OPERATOR TERMINAL

                          03     13  01E4   347 	BEQL 	SHOW_STATUS		; IF EQL THEN FOUND

                          00A8   31  01E6   348 	BRW	RET_BAD_OPR		; SEND ERROR TO USER

                                     01E9   349 ;

                                     01E9   350 ; SHOW STATUS

                                     01E9   351 ;

                                     01E9   352 SHOW_STATUS:

            58       0000'CF     9E  01E9   353 	MOVAB	W^OPC$T_STATUS,R8	; ADDRESS MESSAGE TEXT

            59            52     D0  01EE   354 	MOVL	R2,R9			; COPY TERMINAL ADDRESS

         14 A8         10 A2     7D  01F1   355 	MOVQ	OT_DESC(R2),PARAM1(R8)	; SET UP TERMINAL NAME 

            53         32 A7     9E  01F6   356 	MOVAB	MSG_HDR(R7),R3		; ADDRESS PLACE TO BUILD TEXT

         20 A8            53     D0  01FA   357 	MOVL	R3,PARAM4(R8)		; SET UP MESSAGE DESC

                          5A     D4  01FE   358 	CLRL	R10			; START AT ENABLE 0

            0C            5A     C3  0200   359 20$:	SUBL3	R10,#12,R0		; CALC SEARCH SIZE

                          50         0203       

                          29     13  0204   360 	BEQL	40$			; DONE IF EQL

            50            5A     EA  0206   361 	FFS	R10,R0,OT_SERVICE(R9),R10; GET FIRST ENABLE

            5A         08 A9         0209       

                          21     13  020C   362 	BEQL	40$			; IF EQL THEN DONE WITH FIRST SECTION

            54       0000'CF4A   7E  020E   363 	MOVAQ	W^OPC$A_NAMES[R10],R4	; ADDRESS NAME TEXT

            64         7F 8F     93  0214   364 	BITB	#^X07F,(R4)		; NULL NAME?

                          11     13  0218   365 	BEQL	35$			; IF EQL THEN SKIP

            08            00     3A  021A   366 	LOCC	#0,#8,(R4)

                          64         021D       

            08            50     C3  021E   367 	SUBL3	R0,#8,R0		; GET MOVE SIZE

                          50         0221       

            64            50     28  0222   368 	MOVC3	R0,(R4),(R3)		; MOVE STRING

                          63         0225       

            83       202C 8F     B0  0226   369 	MOVW	#^A/, /,(R3)+		; INSERT DELIM

                          5A     D6  022B   370 35$:	INCL	R10			; POINT TO START AT NEXT

                          D1     11  022D   371 	BRB	20$			; CONTINUE

                                     022F   372 ;

                                     022F   373 ; OUTPUT "OPER" DATA

                                     022F   374 ;

            53         20 A8     C3  022F   375 40$:	SUBL3	PARAM4(R8),R3,PARAM3(R8);

                       1C A8         0233       

         28 A8            53     D0  0235   376 	MOVL	R3,PARAM6(R8)		; SET UP NEXT DESC

         08 A9   00FFF000 8F     D3  0239   377 	BITL	#^X0FFF000,OT_SERVICE(R9); ANY ENABLES?

                          38     13  0241   378 	BEQL	100$			; IF EQL THEN NO DATA

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  10

V06             STATUS - GET OPERATOR TERMINAL STATUS                                                                            (8)



            83   5245504F 8F     D0  0243   379 	MOVL	#^A/OPER/,(R3)+		; INSERT KEY WORD

            83            28     90  024A   380 	MOVB	#^A/(/,(R3)+		;

            5A            0C     D0  024D   381 	MOVL	#12,R10			; START AT 12

            18            5A     C3  0250   382 50$:	SUBL3	R10,#24,R0		;

                          50         0253       

                          21     13  0254   383 	BEQL	75$			; IF EQL THEN DONE

            50            5A     EA  0256   384 	FFS	R10,R0,OT_SERVICE(R9),R10

            5A         08 A9         0259       

                          19     13  025C   385 	BEQL	75$			; IF EQL THEN NOT FOUND

            5A            15     91  025E   386 55$:	CMPB	#9+12,R10		; IN SINGLE DIGIT RANGE?

                          09     1A  0261   387 	BGTRU	60$			; IF GTRU THEN SINGLE DIGIT

            83            31     90  0263   388 	MOVB	#^A/1/,(R3)+		;

            5A            1B     81  0266   389 	ADDB3	#<^A/0/>-9-12,R10,(R3)+

                          83         0269       

                          04     11  026A   390 	BRB	65$

            5A            25     81  026C   391 60$:	ADDB3	#<^A/1/>-12,R10,(R3)+	; INSERT DIGIT

                          83         026F       

            83            2C     90  0270   392 65$:	MOVB	#^A/,/,(R3)+		; INSERT DELIM

                          5A     D6  0273   393 	INCL	R10			; ADJUST SEARCH

                          D9     11  0275   394 	BRB	50$			; CONTINUE SEARCH

         FF A3            29     90  0277   395 75$:	MOVB	#^A/)/,-1(R3)		; INSERT END OF LINE

            53         28 A8     C3  027B   396 100$:	SUBL3	PARAM6(R8),R3,PARAM5(R8);

                       24 A8         027F       

                          0359   30  0281   397 	BSBW	FORMAT_MSG2		; BUILD MESSAGE TEXT

            52            59     D0  0284   398 	MOVL	R9,R2			; RESTORE TERMINAL ADDRESS

                          0392   30  0287   399 	BSBW	BRD_SINGLE		; OUTPUT MESSAGE

         0C A2            01     8A  028A   400 	BICB	#1@OTV_ACTIVE,OT_STATUS(R2); MARK INACTIVE

                          0121   31  028E   401 	BRW	DISPLAY_NEXT		; CONTINUE

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  11

V06             RET_BAD_OPR - SEND "INVALID OPERATOR REQUEST" E                                                                  (9)



                                     0291   403 	.SBTTL	RET_BAD_OPR - SEND "INVALID OPERATOR REQUEST" ERROR

                                     0291   404 ;++

                                     0291   405 ; RET_BAD_OPR - BROADCAST REPLY TO BAD OPERATOR REQUEST

                                     0291   406 ;

                                     0291   407 ; FUNCTIONAL DESCRIPTION:

                                     0291   408 ;

                                     0291   409 ; THIS ROUTINE IS USED TO BROADCAST TO THE SOURCE OF A REQUEST

                                     0291   410 ; THE GENERAL ERROR MESSAGE FOR ILLEGAL REQUEST.

                                     0291   411 ;

                                     0291   412 ; INPUTS:

                                     0291   413 ;

                                     0291   414 ;	R7 = ILLEGAL MESSAGE

                                     0291   415 ;

                                     0291   416 ; OUTPUTS:

                                     0291   417 ;

                                     0291   418 ;	R7 = ILLEGAL MESSAGE

                                     0291   419 ;--

                                     0291   420 RET_BAD_OPR:				; SEND BAD OPERATOR MESSAGE

            58       0000'CF     9E  0291   421 	MOVAB	W^OPC$T_ILLRQST,R8	; ADDRESS MESSAGE DESC

                          033F   30  0296   422 	BSBW	FORMAT_MSG		; FORMAT THE MESSAGE

                          0380   31  0299   423 	BRW	BRD_SINGLE		; SEND MESSAGE

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  12

V06             CANCEL - CANCEL USER REQUEST                                                                                    (10)



                                     029C   425 	.SBTTL	CANCEL - CANCEL USER REQUEST

                                     029C   426 ;++

                                     029C   427 ; CANCEL - CANCEL USER REQUEST

                                     029C   428 ;

                                     029C   429 ; FUNCTIONAL DESCRIPTION:

                                     029C   430 ;

                                     029C   431 ; THIS ROUTINE CANCELS A USER REQUEST ALREADY IN PROGRESS.

                                     029C   432 ;

                                     029C   433 ; INPUTS:

                                     029C   434 ;

                                     029C   435 ;	R7 = ADDRESS OF THE CANCEL MESSAGE

                                     029C   436 ;

                                     029C   437 ; OUTPUTS:

                                     029C   438 ;

                                     029C   439 ;	R7 = ADDRESS OF THE CANCEL MESSAGE

                                     029C   440 ;--

                                     029C   441 CANCEL:					; CANCEL REQUEST

            52       0000'CF     9E  029C   442 	MOVAB	W^OPC$GQ_MSGLIST,R2	; ADDRESS MESSAGE LIST

                     06EB'CF     9F  02A1   443 	PUSHAB	W^SEARCH_LIST		; SET UP CO-ROUTINE

                          9E     16  02A5   444 10$:	JSB	@(SP)+			;

                          2C     13  02A7   445 	BEQL	100$			; IF EQL THEN NOT FOUND

         36 A2         36 A7     D1  02A9   446 	CMPL	OPC$L_MS_RQSTID+MSG_HDR(R7),OPC$L_MS_RQSTID+MSG_HDR(R2)

                          F5     12  02AE   447 	BNEQ	10$			; IF RQST ID'S NOT SAME THEN SEARCH

         0E A2         0E A7     B1  02B0   448 	CMPW	MSG_REPLYMBX(R7),MSG_REPLYMBX(R2); MAILBOX MATCH?

                          EE     12  02B5   449 	BNEQ	10$			; IF NEQ THEN NOT SAME

                          50   8ED0  02B7   450 	POPL	R0			; REMOVE CO-ROUTINE - FOUND MESSAGE

            55            52     D0  02BA   451 	MOVL	R2,R5			; COPY MESSAGE FOR REPLY

            54         32 A7     9E  02BD   452 	MOVAB	OPC$B_MS_TYPE+MSG_HDR(R7),R4; ADDRESS REPLY AREA

         02 A4       8084 8F     B0  02C1   453 	MOVW	#OPC$_RQSTCAN&^X0FFFF,2(R4); SET CANCELED

            53            08     9A  02C7   454 	MOVZBL	#8,R3			; MINIMUM SIZE

            52       0000'CF     9E  02CA   455 	MOVAB	W^OPC$GL_RQTERM,R2	; FAKE OPERATOR TERMINAL

                          01F6   30  02CF   456 	BSBW	SEND_REPLY

                          00DD   31  02D2   457 	BRW	DISPLAY_NEXT		; RESET OPERATOR TERMINAL

                                 05  02D5   458 100$:	RSB				; RETURN

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  13

V06             TERMINIT - INITIALIZE OPERATOR TERMINAL                                                                         (11)



                                     02D6   460 	.SBTTL	TERMINIT - INITIALIZE OPERATOR TERMINAL

                                     02D6   461 ;++

                                     02D6   462 ; TERMINIT - INITIALIZE AN OPERATOR TERMINAL

                                     02D6   463 ;

                                     02D6   464 ; FUNCTIONAL DESCRIPTION:

                                     02D6   465 ;

                                     02D6   466 ; THIS ROUTINE PROCESSES REQUESTS TO INITIALIZE OF CHANGE THE STATUS OF

                                     02D6   467 ; AN OPERATOR TERMINAL.

                                     02D6   468 ;

                                     02D6   469 ; INPUTS:

                                     02D6   470 ;

                                     02D6   471 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     02D6   472 ;

                                     02D6   473 ; OUTPUS:

                                     02D6   474 ;

                                     02D6   475 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     02D6   476 ;--

                                     02D6   477 TERMINIT:				; INITIALIZE OPERATOR TERMINAL

         3D A7         5F 8F     91  02D6   478 	CMPB	#^A/_/,OPC$T_MS_ONAME+MSG_HDR+1(R7); START WITH "_"?

                          42     12  02DB   479 	BNEQ	20$			; IF NEQ THEN IGNORE

                          03C6   30  02DD   480 	BSBW	FIND_OPR		; FIND THE SOURCE OPERATOR TERMINAL

                          49     12  02E0   481 	BNEQ	35$			; IF NEQ THEN NOT FOUND

            18            00     EF  02E2   482 	EXTZV	#0,#24,OPC$B_MS_TARGET+MSG_HDR(R7),R0; GET THE NEW ENABLES

            50         33 A7         02E5       

            18            00     EF  02E8   483 	EXTZV	#0,#24,OPC$L_MS_RQSTID+MSG_HDR(R7),R1; GET THE CHANGING BITS

            51         36 A7         02EB       

         08 A2            51     CA  02EE   484 	BICL	R1,OT_SERVICE(R2)	; INSERT THEM

            51            51     D2  02F2   485 	MCOML	R1,R1			; FIND NEW VALUES

            50            51     CA  02F5   486 	BICL	R1,R0			;

         08 A2            50     C8  02F8   487 	BISL	R0,OT_SERVICE(R2)	;

                          03     13  02FC   488 	BEQL	5$			; IF EQL THEN FULL DISABLE

                          FEE8   31  02FE   489 	BRW	SHOW_STATUS		; OTHERWISE SHOW THE STATUS

            52            62     0F  0301   490 5$:	REMQUE	(R2),R2			;

            58       0000'CF     9E  0304   491 10$:	MOVAB	W^OPC$T_TERMD,R8	; ADDRESS MESSAGE TO OUTPUT

                          52     DD  0309   492 	PUSHL	R2			; SAVE BLOCK ADDRESS

                          02A0   30  030B   493 	BSBW	LOG_BRD_MSG		; TELL WORLD

         08 A2            00     E0  030E   494 	BBS	#OPC$V_NM_CENTRL,OT_SERVICE(R2),15$; BR IF THIS TERMINAL HEARD

                          03         0312       

                          0306   30  0313   495 	BSBW	BRD_SINGLE

                          50   8ED0  0316   496 15$:	POPL	R0			; DEALLOCATE THE BLOCK

            51            28     9A  0319   497 	MOVZBL	#OT_SIZE,R1		; DEALLOCATE THE BLOCK AND RETURN

                          0321   30  031C   498 	BSBW	OPC$DEALLOCATE		; 

                                 05  031F   499 20$:	RSB				; RETURN

            58       0000'CF     9E  0320   500 30$:	MOVAB	W^OPC$T_ILLRQST,R8	; ILLEGAL REQUEST

                          02B0   30  0325   501 	BSBW	FORMAT_MSG		; BUILD TEXT

                          02F1   31  0328   502 	BRW	BRD_SINGLE		; OUTPUT MESSAGE TO REQUEST TERMINAL ONLY

                                     032B   503 35$:	$GETDEV_S	DEVNAM=(R10),PRIBUF=W^OPC$GL_IDESC

            DE            50     E9  033E   504 	BLBC	R0,20$			; IF LOW CLEAR THEN IGNORE MESSAGE

            50       0004'CF     D0  0341   505 	MOVL	W^OPC$GL_IDESC+4,R0	; ADDRESS BUFFER

            60            00'    E1  0346   506 	BBC	S^#DEV$V_TRM,(R0),20$	; BR IF NOT TERMINAL

                          D5         0349       

         08 A0            0D     E0  034A   507 	BBS	#TT$V_REMOTE,8(R0),30$	; BR IF REMOTE TERMINAL - ILLEGAL

                          D1         034E       

            51            28     9A  034F   508 	MOVZBL	#OT_SIZE,R1		; GET SIZE OF BLOCK

                          FCFE   30  0352   509 	BSBW	OPC$ALLOCATE		; ALLOCATE A BLOCK

                       0C A2     D4  0355   510 	CLRL	OT_STATUS(R2)		; SET UP THE BLOCK

         10 A2            6A     D0  0358   511 	MOVL	(R10),OT_DESC(R2)	; SET UP NAME

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  14

V06             TERMINIT - INITIALIZE OPERATOR TERMINAL                                                                         (11)



         14 A2         18 A2     9E  035C   512 	MOVAB	OT_NAME(R2),OT_DESC+4(R2); SET UP NAME DESC

                          52     DD  0361   513 	PUSHL	R2			; SAVE BLOCK ADDRESS

         04 BA            6A     2C  0363   514 	MOVC5	(R10),@4(R10),#0,#16,OT_NAME(R2); INSERT TEXT

            10            00         0367       

                       18 A2         0369       

            58       0000'CF     9E  036B   515 	MOVAB	W^OPC$T_TERME,R8	; ADDRESS ENABLE MESSAGE

                          52   8ED0  0370   516 	POPL	R2			; RESTORE BLOCK ADDRESS

            18            00     EF  0373   517 	EXTZV	#0,#24,OPC$B_MS_TARGET+MSG_HDR(R7),R0; GET THE NEW ENABLES

            50         33 A7         0376       

            18            00     EF  0379   518 	EXTZV	#0,#24,OPC$L_MS_RQSTID+MSG_HDR(R7),R1; GET THE CHANGING BITS

            51         36 A7         037C       

         08 A2            51     CA  037F   519 	BICL	R1,OT_SERVICE(R2)	; INSERT THEM

            51            51     D2  0383   520 	MCOML	R1,R1			; FIND NEW VALUES

            50            51     CA  0386   521 	BICL	R1,R0			;

         08 A2            50     C8  0389   522 	BISL	R0,OT_SERVICE(R2)	;

                          13     13  038D   523 	BEQL	60$			; IF EQL THEN ERROR

       0004'DF            62     0E  038F   524 	INSQUE	(R2),@W^OPC$GQ_TERMLIST+4

                          0217   30  0394   525 40$:	BSBW	LOG_BRD_MSG		; LOG AND BRAODCAST

         08 A2            00     E0  0397   526 	BBS	#OPC$V_NM_CENTRL,OT_SERVICE(R2),50$; BR IF THIS TERMINAL HEARD

                          03         039B       

                          027D   30  039C   527 	BSBW	BRD_SINGLE		; OUTPUT TO HIM ALONE

                          FE47   31  039F   528 50$:	BRW	SHOW_STATUS		; FOLLOW WITH INFO

                                     03A2   529 ;

                                     03A2   530 ; BAD REQUEST

                                     03A2   531 ;

            51            28     9A  03A2   532 60$:	MOVZBL	#OT_SIZE,R1		; DEALLOCATE THE BLOCK

            50            52     D0  03A5   533 	MOVL	R2,R0			; LOOSE BLOCK ADDRESS

                          0295   30  03A8   534 	BSBW	OPC$DEALLOCATE		;

            52         F0 AA     9E  03AB   535 	MOVAB	-OT_DESC(R10),R2	; POINT TO TERMINAL NAME

                          FF6E   31  03AF   536 	BRW	30$			; SEND ERROR

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  15

V06             DISPLAY_NEXT - DISPLAY NEXT MESSAGE ON ALL TERM                                                                 (12)



                                     03B2   538 	.SBTTL	DISPLAY_NEXT - DISPLAY NEXT MESSAGE ON ALL TERMINALS

                                     03B2   539 ;++

                                     03B2   540 ; DISPLAY_NEXT - DISPLAY NEXT MESSAGE ON ALL TERMINALS

                                     03B2   541 ;

                                     03B2   542 ; FUNCTIONAL DESCRIPTION:

                                     03B2   543 ;

                                     03B2   544 ; THIS ROUTINE DISPLAYS THE NEXT AVALIABLE MESSAGE ON ALL IDLE

                                     03B2   545 ; OPERATOR TERMINALS.

                                     03B2   546 ;

                                     03B2   547 ; INPUTS:

                                     03B2   548 ;

                                     03B2   549 ;	NONE

                                     03B2   550 ;

                                     03B2   551 ; OUTPUTS:

                                     03B2   552 ;

                                     03B2   553 ;	R0,R1,R2,R3,R4,R5,R10,R11 ARE USED

                                     03B2   554 ;--

                                     03B2   555 DISPLAY_NEXT:				; DISPLAY NEXT MESSAGE

                          57     DD  03B2   556 	PUSHL	R7			; SAVE MESSAGE ADDR

                     06EB'CF     9F  03B4   557 5$:	PUSHAB	W^SEARCH_LIST		; START TERMINAL SEARCH

                          50     DD  03B8   558 	PUSHL	R0			; SET GARBAGE

                     0000'CF     9F  03BA   559 	PUSHAB	W^OPC$GQ_MSGLIST	; SET TO START AT LIST HEAD

                     0804 8F     BA  03BE   560 10$:	POPR	#^M<R2,R11>		; RESTORE ENTRY AND KEY

                          9E     16  03C2   561 	JSB	@(SP)+			; GET NEXT ENTRY

                          48     13  03C4   562 	BEQL	100$			; IF EQL THEN DONE

                     0804 8F     BB  03C6   563 	PUSHR	#^M<R2,R11>		; SAVE ENTRY AND KEY

            57            52     D0  03CA   564 	MOVL	R2,R7			; SAVE MESSAGE ADDRESS

                          59     D4  03CD   565 	CLRL	R9			; SET NO OPRS HEARD MESSAGE

                          0040   30  03CF   566 	BSBW	SETUP_RQST		; BUILD REQUEST TEXT

            52       0000'CF     9E  03D2   567 	MOVAB	W^OPC$GQ_TERMLIST,R2	; SET UP SEARCH FOR TERMINAL

                     06EB'CF     9F  03D7   568 	PUSHAB	W^SEARCH_LIST		; START MESSAGE SEARCH

                          9E     16  03DB   569 20$:	JSB	@(SP)+			;

                          13     13  03DD   570 	BEQL	30$			; IF EQL THEN DONE

         33 A7         08 A2     D3  03DF   571 	BITL	OT_SERVICE(R2),OPC$B_MS_TARGET+MSG_HDR(R7); THIS MESSAGE GO?

                          F5     13  03E4   572 	BEQL	20$			; IF EQL THEN NO

                          59     D6  03E6   573 	INCL	R9			;

         0C A2            00     E2  03E8   574 	BBSS	#OTV_ACTIVE,OT_STATUS(R2),20$; SET TERMINAL ACTIVE AND BR IF ALREADY

                          EE         03EC       

                          022C   30  03ED   575 25$:	BSBW	BRD_SINGLE		; OUTPUT TO THIS TERMINAL

                          E9     11  03F0   576 	BRB	20$			; GET NEXT TERMINAL

                          59     D5  03F2   577 30$:	TSTL	R9			; ANY OPERATORS HEAR THIS MESSAGE?

                          C8     12  03F4   578 	BNEQ	10$			; IF NEQ THEN KEEP GOING

            54         32 A7     9E  03F6   579 	MOVAB	OPC$B_MS_TYPE+MSG_HDR(R7),R4; CANCEL REQUEST

            53            08     9A  03FA   580 	MOVZBL	#8,R3			;

            55            57     D0  03FD   581 	MOVL	R7,R5			; COPY ADDRESS OF THE MESSAGE

         02 A4       8061 8F     B0  0400   582 	MOVW	#OPC$_NOPERATOR&^X0FFFF,2(R4); SET STATUS

                          00BF   30  0406   583 	BSBW	SEND_REPLY		; SEND THE REPLY

            5E            0C     C0  0409   584 	ADDL	#12,SP			; REMOVE AND RESTART SCAN

                          A6     11  040C   585 	BRB	5$			; CONTINUE

                          57   8ED0  040E   586 100$:	POPL	R7			;

                                 05  0411   587 	RSB				;

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  16

V06             SETUP_RQST - SET UP REQUEST _RQST                                                                               (13)



                                     0412   589 	.SBTTL	SETUP_RQST - SET UP REQUEST _RQST

                                     0412   590 ;++

                                     0412   591 ; SETUP_RQST - SET UP A DISPLAY OF A REQUEST MESSAGE

                                     0412   592 ;

                                     0412   593 ; FUNCTIONAL DESCRIPTION:

                                     0412   594 ;

                                     0412   595 ; THIS ROUTINE SETS UP THE DISPLAY TEXT FOR A REQUEST MESSAGE.

                                     0412   596 ;

                                     0412   597 ; INPUTS:

                                     0412   598 ;

                                     0412   599 ;	R7 = ADDRESS OF THE REQUEST MESSAGE

                                     0412   600 ;

                                     0412   601 ; OUTPUTS:

                                     0412   602 ;

                                     0412   603 ;	R7 = ADDRESS OF THE REQUEST MESSAGE

                                     0412   604 ;	R8 = ADDRESS OF THE OUTPUT MESSAGE DESC

                                     0412   605 ;	OPC$GL_ODESC DESCRIBES THE MESSAGE BUILT

                                     0412   606 ;--

                                     0412   607 SETUP_RQST:				; SET UP REQUEST _RQST

            58       0000'CF     9E  0412   608 	MOVAB	W^OPC$T_REPLY,R8	; ASSUME REPLY DESIRED

         24 A8         08 A7     D0  0417   609 	MOVL	MSG_NUMBER(R7),PARAM5(R8); INSERT NUMBER

                       0E A7     B5  041C   610 	TSTW	MSG_REPLYMBX(R7)	; REPLY DESIRED?

                          05     12  041F   611 	BNEQ	10$			; IF NEQ THEN REPLY YES

            58       0000'CF     9E  0421   612 	MOVAB	W^OPC$T_RQST,R8		; SET FOR NO REPLY

         18 A8         1C A7     9E  0426   613 10$:	MOVAB	MSG_USRNAME(R7),PARAM2(R8); INSERT ADDRESS OF USER NAME

         14 A8            0C     9A  042B   614 	MOVZBL	#12,PARAM1(R8)

         20 A8         28 A7     9E  042F   615 	MOVAB	MSG_ACCOUNT(R7),PARAM4(R8); INSER ACCOUNT NAME

         1C A8            08     9A  0434   616 	MOVZBL	#8,PARAM3(R8)

         2C A8         3A A7     9E  0438   617 	MOVAB	OPC$L_MS_TEXT+MSG_HDR(R7),PARAM7(R8); INSERT USER TEXT DESC.

         0C A7            2E     A3  043D   618 	SUBW3	#OPC$L_MS_TEXT+MSG_HDR-MSG_MSG,MSG_MSG(R7),PARAM6(R8)

                       28 A8         0441       

            18            00     EF  0443   619 	EXTZV	#0,#24,OPC$B_MS_TARGET+MSG_HDR(R7),TARGET(R8); SET UP TARGET MASK

         04 A8         33 A7         0446       

                                     044A   620 	$FAOL_S	CONTROL(R8),W^OPC$GL_ODESC,W^OPC$GL_IDESC,PARAM0(R8)

                                 05  045F   621 	RSB

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  17

V06             REPLY - PROCESS OPERATOR REPLY MESSAGE                                                                          (14)



                                     0460   623 	.SBTTL	REPLY - PROCESS OPERATOR REPLY MESSAGE

                                     0460   624 ;++

                                     0460   625 ; REPLY - PROCESS OPERATOR REPLY MESSAGE

                                     0460   626 ;

                                     0460   627 ; FUNCTIONAL DESCRIPTION:

                                     0460   628 ;

                                     0460   629 ; THIS ROUTINE PROCESSES OPERATOR REPLY MESSAGES.

                                     0460   630 ; THE REPLY IS PROCESSED AS FOLLOWS:

                                     0460   631 ;

                                     0460   632 ; 1. THE MESSAGE LIST IS SEARCHED FOR THE MESSAGE MATCHING THE REPLY-ID.

                                     0460   633 ;	IF IT IS NOT FOUND, "MESSAGE NOT PENDING" IS DISPLAYED AT THE

                                     0460   634 ;	SOURCE TERMINAL.

                                     0460   635 ; 2. THE SPECIFIED REPLY IS SENT TO THE MESSAGE REPLY MAILBOX.

                                     0460   636 ; 3. IF THE MESSAGE STATUS IS PENDING,

                                     0460   637 ;	"MESSAGE PENDING" IS DISPLAYED ON THE SOURCE OPERATOR TERMINAL

                                     0460   638 ;	AND THE OPERATION IS COMPLETE.

                                     0460   639 ;  OTHERWISE,

                                     0460   640 ;	THE STATUS OF THE REQUEST, "COMPLETE OR KILLED" IS LOGED

                                     0460   641 ;	AND ALL TERMINALS WHO SAW THE MESSAGE ARE ALSO TOLD OF THE STATUS.

                                     0460   642 ; 	THE MESSAGE BLOCK IS THEN REMOVED FROM THE LIST AND DEALLOCATED.

                                     0460   643 ;

                                     0460   644 ; INPUTS:

                                     0460   645 ;

                                     0460   646 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     0460   647 ;

                                     0460   648 ; OUTPUTS:

                                     0460   649 ;

                                     0460   650 ;	R7 = ADDRESS OF THE MESSAGE BLOCK

                                     0460   651 ;--

                                     0460   652 REPLY:					; PROCESS OPERATOR REPLY

                          0243   30  0460   653 	BSBW	FIND_OPR		; FIND THE SOURCE OPERATOR

                          52     DD  0463   654 	PUSHL	R2			; SAVE OPERATOR CONTROL BLOCK ADDRESS

            52       0000'CF     9E  0465   655 	MOVAB	W^OPC$GQ_MSGLIST,R2	; GET LIST HEAD

                     06EB'CF     9F  046A   656 	PUSHAB	W^SEARCH_LIST		; SET UP CO-ROUTINE CALL

                          9E     16  046E   657 10$:	JSB	@(SP)+			; CALL BACK FOR NEXT MESSAGE

                          09     13  0470   658 	BEQL	100$			; IF EQL THEN NOT FOUND

         08 A2         36 A7     D1  0472   659 	CMPL	OPC$L_MS_RPLYID+MSG_HDR(R7),MSG_NUMBER(R2); MESSAGE FOUND?

                          15     13  0477   660 	BEQL	110$			; IF EQL THEN REPLY

                          F3     11  0479   661 	BRB	10$			; ELSE SEARCH

                                     047B   662 ;

                                     047B   663 ; MESSAGE NOT FOUND - TELL OPERATOR

                                     047B   664 ;

            58       0000'CF     9E  047B   665 100$:	MOVAB	W^OPC$T_NORQST,R8	; GET ERROR MESSAGE CONTROL BLOCK

         24 A8         36 A7     D0  0480   666 	MOVL	OPC$L_MS_RPLYID+MSG_HDR(R7),PARAM5(R8); INSERT MESSAGE NUMBER

                          52   8ED0  0485   667 	POPL	R2			; RESTORE TERMINAL CONTROL BLOCK

                          014D   30  0488   668 	BSBW	FORMAT_MSG		; FORMAT MESSAGE

                          018E   31  048B   669 	BRW	BRD_SINGLE		; SEND ONLY TO SOURCE

                                     048E   670 ;

                                     048E   671 ; SEND REPLY TO REQUEST

                                     048E   672 ;

                          01     BA  048E   673 110$:	POPR	#^M<R0>			; REMOVE CO-ROUTINE

            55            52     D0  0490   674 	MOVL	R2,R5			; COPY ADDRESS OF MESSAGE TO REPLY TO

                          52   8ED0  0493   675 	POPL	R2			; RESTORE TERMINAL CONTROL BLOCK ADDRESS

            54         32 A7     9E  0496   676 	MOVAB	OPC$B_MS_TYPE+MSG_HDR(R7),R4; ADDRESS REPLY MESSAGE BUILD PLACE

         04 A4         36 A5     D0  049A   677 	MOVL	OPC$L_MS_RQSTID+MSG_HDR(R5),4(R4); INSERT REQUEST ID TO RETURN

         0C A7   00000040 8F     C3  049F   678 	SUBL3	#OPC$L_MS_OTEXT+MSG_HDR-MSG_MSG,MSG_MSG(R7),R3; GET SIZE OF REPLY TEXT

                          53         04A7       

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  18

V06             REPLY - PROCESS OPERATOR REPLY MESSAGE                                                                          (14)



                          02     1A  04A8   679 	BGTRU	115$			; IF GTRU THEN OK

                          53     D4  04AA   680 	CLRL	R3			; SET NO MESSAGE OTHERWISE

                          3C     BB  04AC   681 115$:	PUSHR	#^M<R2,R3,R4,R5>	; SAVE REGS

         4C A7            53     2E  04AE   682 	MOVTC	R3,OPC$L_MS_OTEXT+MSG_HDR(R7),#0,W^OPC$GB_TRNS,-

                          00         04B2       

            53       0000'CF         04B3   683 		R3,8(R4)

                       08 A4         04B7       

                          3C     BA  04B9   684 	POPR	#^M<R2,R3,R4,R5>	;

            53            08     C0  04BB   685 	ADDL	#8,R3			; CALC MESSAGE SIZE

         02 A4         34 A7     B0  04BE   686 	MOVW	OPC$W_MS_STATUS+MSG_HDR(R7),2(R4); INSERT REPLY STATUS

                          03     10  04C3   687 	BSBB	SEND_REPLY		; SEND THE REPLY

                          FEEA   31  04C5   688 	BRW	DISPLAY_NEXT		; RESET TERMINALS

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  19

V06             SENDREPLY - SEND REPLY TO MESSAGE                                                                               (15)



                                     04C8   690 	.SBTTL	SENDREPLY - SEND REPLY TO MESSAGE

                                     04C8   691 ;++

                                     04C8   692 ; SEND_REPLY - SEND REPLY TO REQUEST

                                     04C8   693 ;

                                     04C8   694 ; FUNCTIONAL DESCRIPTION:

                                     04C8   695 ;

                                     04C8   696 ; THIS ROUTINE SENDS A REPLY MESSAGE TO A REQUEST SPECIFIED MAILBOX.

                                     04C8   697 ; THEN IT DISPOSES OF THE MESSAGE BLOCK IF THE REQUEST WAS KILLED OR

                                     04C8   698 ; COMPLETED.

                                     04C8   699 ;

                                     04C8   700 ; INPUTS:

                                     04C8   701 ;

                                     04C8   702 ;	R2 = OPERATOR TERMINAL FOR IDENTITY

                                     04C8   703 ;	R3 = SIZE OF THE REPLY

                                     04C8   704 ;	R4 = ADDRESS OF THE REPLY TEXT

                                     04C8   705 ;	R5 = ADDRESS OF THE MESSAGE BEING REPLIED TO

                                     04C8   706 ;

                                     04C8   707 ; OUTPUTS:

                                     04C8   708 ;

                                     04C8   709 ;	R7 IS PRESERVED.

                                     04C8   710 ;

                                     04C8   711 ;--

                                     04C8   712 SEND_REPLY:				; SEND A REPLY TO REQUEST

            64            09     B0  04C8   713 	MOVW	#MSG$_OPREPLY,(R4)	; INSERT MESSAGE TYPE

                                     04CB   714 	$FAO_S	W^OPC$GL_MBNAME,W^OPC$GL_ODESC,W^OPC$GL_IDESC,MSG_REPLYMBX(R5);

                                     04E1   715 	$ASSIGN_S	W^OPC$GL_ODESC,W^OPC$GL_CHAN; ASSIGN DEVICE

            08            50     E8  04F2   716 	BLBS	R0,10$			; BR IF SUCCESS

         02 A4       8084 8F     B0  04F5   717 5$:	MOVW	#OPC$_RQSTCAN&^X0FFFF,2(R4); SET REQUEST CANCELED

                          5A     11  04FB   718 	BRB	20$			; CONTINUE

                                     04FD   719 10$:	

                                     04FD   720 	$GETCHN_S	W^OPC$GL_CHAN,,W^OPC$GL_IDESC

            58       0004'CF     D0  0513   721 	MOVL	W^OPC$GL_IDESC+4,R8	; ADDRESS DATA

         06 A8            53     B1  0518   722 	CMPW	R3,6(R8)		; MAILBOX SIZE JIVE?

                          04     15  051C   723 	BLEQ	15$			; SEND JUST ENOUGH

            53         06 A8     B0  051E   724 	MOVW	6(R8),R3		;

                                     0522   725 15$:	$QIOW_S	#0,W^OPC$GL_CHAN,#IO$_WRITEVBLK!IO$M_NOW,(R8),,,-

                                     0522   726 		(R4),R3			; SEND MESSAGE

            B1            50     E9  0541   727 	BLBC	R0,5$			; BR IF ERROR

            AE            68     E9  0544   728 	BLBC	(R8),5$			; 

         02 A4       8021 8F     B1  0547   729 	CMPW	#OPC$_RQSTPEND&^X0FFFF,2(R4); PENDING?

                          52     13  054D   730 	BEQL	100$			; IF EQL THEN DONE

         02 A4       8061 8F     B1  054F   731 	CMPW	#OPC$_NOPERATOR&^X0FFFF,2(R4); NO OPERATOR?

                          3F     13  0555   732 	BEQL	40$			; IF EQL THEN DONE

                                     0557   733 ;

                                     0557   734 ; DISPOSE OF MESSAGE

                                     0557   735 ;

            58       0000'CF     9E  0557   736 20$:	MOVAB	W^OPC$T_COMPLTE,R8	; ADDRESS REQUEST COMPLETE MESSAGE

            68         02 A4     B0  055C   737 	MOVW	2(R4),(R8)		; INSERT FORMAT MESSAGE NUMBER

         24 A8         08 A5     D0  0560   738 	MOVL	MSG_NUMBER(R5),PARAM5(R8); INSERT MESSAGE NUMBER

       0000'CF         08 A5     E5  0565   739 	BBCC	MSG_NUMBER(R5),W^OPC$GL_RQSTID,25$; RELEASE ID NUMBER

                          00         056B       

            18            00     EF  056C   740 25$:	EXTZV	#0,#24,OPC$B_MS_TARGET+MSG_HDR(R5),TARGET(R8)

         04 A8         33 A5         056F       

         1C A8         10 A2     7D  0573   741 	MOVQ	OT_DESC(R2),PARAM3(R8)	; INSERT NAME OF REPLYING OPERATOR

                          0033   30  0578   742 	BSBW	LOG_BRD_MSG		; LOG AND BRAODCAST REPLY

                                     057B   743 ;

                                     057B   744 ; MARK ALL OPERATORS WHO HAD THAT MESSAGE INACTIVE

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  20

V06             SENDREPLY - SEND REPLY TO MESSAGE                                                                               (15)



                                     057B   745 ;

            52       0000'CF     9E  057B   746 	MOVAB	W^OPC$GQ_TERMLIST,R2	; SEARCH LIST

                     06EB'CF     9F  0580   747 	PUSHAB	W^SEARCH_LIST		; SET UP FOR CO-ROUTINE

                          9E     16  0584   748 30$:	JSB	@(SP)+			; GET AN OPERATOR TERMINAL

                          0E     13  0586   749 	BEQL	40$			; IF EQL THEN DONE

         08 A2         33 A5     D3  0588   750 	BITL	OPC$B_MS_TARGET+MSG_HDR(R5),OT_SERVICE(R2); THIS TERMINAL ENABLED?

                          F5     13  058D   751 	BEQL	30$			; IF EQL THEN NO

         0C A2            00     E5  058F   752 	BBCC	#OTV_ACTIVE,OT_STATUS(R2),35$; SET IDLE

                          00         0593       

                          EE     11  0594   753 35$:	BRB	30$			; CONTINUE

            50            65     0F  0596   754 40$:	REMQUE	(R5),R0			; REMOVE ENTRY FROM LIST

            51       00CC 8F     3C  0599   755 	MOVZWL	#MSG_SIZE,R1		; DEALLOCATE MESSAGE

                          009F   30  059E   756 	BSBW	OPC$DEALLOCATE		; 

                                     05A1   757 100$:	$DASSGN_S	W^OPC$GL_CHAN	; DEASSIGN CHANNEL

                                 05  05AD   758 	RSB

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  21

V06             LOG_BRD_MSG - LOG AND BROADCAST MESSAGE                                                                         (16)



                                     05AE   760 	.SBTTL	LOG_BRD_MSG - LOG AND BROADCAST MESSAGE

                                     05AE   761 ;++

                                     05AE   762 ; LOG_BRD_MSG - LOG AND BROADCAST MESSAGE

                                     05AE   763 ;

                                     05AE   764 ; FUNCTIONAL DESCRIPTION:

                                     05AE   765 ;

                                     05AE   766 ; THIS ROUTINE LOGS A MESSAGE AND BROADCASTS IT TO ANY TERMINALS ENABLED TO HERE

                                     05AE   767 ; IT.

                                     05AE   768 ;

                                     05AE   769 ; INPUTS:

                                     05AE   770 ;

                                     05AE   771 ;	R2 = ADDRESS OF THE TERMINAL CONTROL BLOCK

                                     05AE   772 ;	R7 = ADDRESS OF THE CURRENT MESSAGE

                                     05AE   773 ;

                                     05AE   774 ;	OPC$GL_ODESC DESCRIBES THE MESSAGE

                                     05AE   775 ;

                                     05AE   776 ; OUTPUTS:

                                     05AE   777 ;

                                     05AE   778 ;	R2,R4,R5,R7 ARE PRESERVED

                                     05AE   779 ;--

                                     05AE   780 LOG_BRD_MSG:				; LOG,BROADCAST MESSAGE

                          0027   30  05AE   781 	BSBW	FORMAT_MSG		;

                          03     11  05B1   782 	BRB	LOG_BRD

                                     05B3   783 LOG_BRD_MSG2:				; NO ASSOCIATED OPERATOR

                          0027   30  05B3   784 	BSBW	FORMAT_MSG2

                                     05B6   785 LOG_BRD:				; OUTPUT MESSAGE

                          00CC   30  05B6   786 	BSBW	LOG_MSG			; MAKE THE LOG ENTRY

                                     05B9   787 MSG_BRD:

                          52     DD  05B9   788 	PUSHL	R2			; SAVE THIS TERMINAL CONTROL BLOCK

            52       0000'CF     9E  05BB   789 	MOVAB	W^OPC$GQ_TERMLIST,R2	; SEARCH AND MATCH RECEIVERS

                     06EB'CF     9F  05C0   790 	PUSHAB	W^SEARCH_LIST		; SET UP CO-ROUTINE

                          9E     16  05C4   791 10$:	JSB	@(SP)+			;

                          0C     13  05C6   792 	BEQL	100$			; IF EQL THEN DONE

         04 A8         08 A2     D3  05C8   793 	BITL	OT_SERVICE(R2),TARGET(R8);

                          F5     13  05CD   794 	BEQL	10$			; CONTINUE 

                          004A   30  05CF   795 	BSBW	BRD_SINGLE		; BROADCAST THE MESSAGE

                          F0     11  05D2   796 	BRB	10$			; CONTINUE

                          52   8ED0  05D4   797 100$:	POPL	R2			; RESTORE ORIGIONAL TERMINAL ADDRESS

                                 05  05D7   798 	RSB				; RETURN

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  22

V06             FORMAT_MSG - FORMAT MESSAGE TEXT                                                                                (17)



                                     05D8   800 	.SBTTL	FORMAT_MSG - FORMAT MESSAGE TEXT

                                     05D8   801 ;++

                                     05D8   802 ; FORMAT_MSG - FORMAT MESSAGE TEXT

                                     05D8   803 ;

                                     05D8   804 ; FUNCTIONAL DESCRIPTION:

                                     05D8   805 ;

                                     05D8   806 ; THIS ROUTINE BUILDS MESSAGE TEXT BASSED ON THE CONTENTS OF THE MESSAGE DESC

                                     05D8   807 ; BLOCK.

                                     05D8   808 ;

                                     05D8   809 ; INPUTS:

                                     05D8   810 ;

                                     05D8   811 ;	R2 = ADDRESS OF THE RESPONSIBLE OPERATOR CONTROL BLOCK

                                     05D8   812 ;	R8 = ADDRESS OF THE MESSAGE DESC BLOCK

                                     05D8   813 ;

                                     05D8   814 ; OUTPUTS:

                                     05D8   815 ;

                                     05D8   816 ;	OPC$GL_ODESC DESCRIBES THE MESSAGE

                                     05D8   817 ;

                                     05D8   818 ;	R2,R7,R8 ARE PRESERVED.

                                     05D8   819 ;--

                                     05D8   820 FORMAT_MSG:				; FORMAT MESSAGE

         1C A8         10 A2     7D  05D8   821 	MOVQ	OT_DESC(R2),PARAM3(R8)	; INSERT OPERATOR NAME

                                     05DD   822 FORMAT_MSG2:				; ENTRY WITH NO ASSOCIATED OPERATOR

                     0000'CF     D4  05DD   823 	CLRL	W^OPC$GQ_MSGDESC	; SET UP DESC

                          68     B5  05E1   824 	TSTW	(R8)			; ANY MESSAGE NUMBER

                          21     13  05E3   825 	BEQL	10$			; IF EQL THEN NO

       0000'CF         84 8F     9A  05E5   826 	MOVZBL	#132,W^OPC$GQ_MSGDESC	; SET UP DESC

                                     05EB   827 	$GETMSG_S	(R8),W^OPC$GQ_MSGDESC,W^OPC$GQ_MSGDESC,#1

         14 A8       0000'CF     7D  0600   828 	MOVQ	W^OPC$GQ_MSGDESC,PARAM1(R8); SET UP FOR FAO CALL

                                     0606   829 10$:	$FAOL_S	CONTROL(R8),W^OPC$GL_ODESC,W^OPC$GL_IDESC,PARAM0(R8)

                                 05  061B   830 	RSB				;

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  23

V06             BRD_SINGLE - BROADCAST TO OPERATOR TERMINAL                                                                     (18)



                                     061C   832 	.SBTTL BRD_SINGLE - BROADCAST TO OPERATOR TERMINAL

                                     061C   833 ;++

                                     061C   834 ; BRD_SINGLE - BROADCAST TO OPERATOR TERMINAL

                                     061C   835 ;

                                     061C   836 ; FUNCTIONAL DESCRIPTION:

                                     061C   837 ;

                                     061C   838 ; THIS ROUTINE BROADCASTS A MESSAGE TO A TERMINAL.

                                     061C   839 ;

                                     061C   840 ; INPUTS:

                                     061C   841 ;

                                     061C   842 ;	R2 = ADDRESS OF THE TERMINAL CONTROL BLOCK

                                     061C   843 ;

                                     061C   844 ;	OPC$GL_ODESC DESCRIBED THE MESSAGE

                                     061C   845 ;

                                     061C   846 ; OUTPUTS:

                                     061C   847 ;

                                     061C   848 ;	R0,R1 ARE USED

                                     061C   849 ;--

                                     061C   850 BRD_SINGLE:				; BROADCAST TO TERMINAL

                          3C     BB  061C   851 	PUSHR	#^M<R2,R3,R4,R5>

       0004'DF       0000'CF     2E  061E   852 	MOVTC	W^OPC$GL_ODESC,@W^OPC$GL_ODESC+4,#0,W^OPC$GB_TRNS,-

                          00         0625       

       0000'CF       0000'CF         0626   853 		W^OPC$GL_ODESC,@W^OPC$GL_ODESC+4

                     0004'DF         062C       

                          3C     BA  062F   854 	POPR	#^M<R2,R3,R4,R5>

                                     0631   855 	$BRDCST_S	W^OPC$GL_ODESC,OT_DESC(R2)

                                 05  063F   856 	RSB

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  24

V06             DEALLOCATE MEMORY BLOCK                                                                                         (19)



                                     0640   858 	.SBTTL	DEALLOCATE MEMORY BLOCK

                                     0640   859 ;++

                                     0640   860 ; OPC$DEALLOCATE - DEALLOCATE MEMORY BLOCK TO CORE POOL

                                     0640   861 ;

                                     0640   862 ; FUNCTIONAL DESCRIPTION:

                                     0640   863 ;

                                     0640   864 ; THIS ROUTINE RETURNS ALLOCATED STORAGE TO THE PER IMAGE CORE POOL.

                                     0640   865 ;

                                     0640   866 ; INPUTS:

                                     0640   867 ;

                                     0640   868 ;	R0 = ADDRESS OF BLOCK TO RETURN

                                     0640   869 ;	R1 = SIZE OF BLOCK TO RETURN

                                     0640   870 ;

                                     0640   871 ; OUTPUTS:

                                     0640   872 ;

                                     0640   873 ;--

                                     0640   874 OPC$DEALLOCATE::			; DEALLOCATE MEMORY

            51            07     C0  0640   875 	ADDL	#7,R1			; ROUND BLOCK SIZE

            51            07     CA  0643   876 	BICL	#7,R1			;

            53       0000'CF     9E  0646   877 	MOVAB	W^OPC$GQ_POOL,R3	; ADDRESS LIST HEAD

            52            53     D0  064B   878 10$:	MOVL	R3,R2			; ADDRESS NEXT ENTRY

            53            62     D0  064E   879 	MOVL	(R2),R3			; COPY LINK WORD

                          05     13  0651   880 	BEQL	20$			; IF EQL THEN END OF LIST

            53            50     D1  0653   881 	CMPL	R0,R3			; DEALLOCATE HERE?

                          F3     1E  0656   882 	BGEQU	10$			; IF GEQU THEN NO

            60            53     D0  0658   883 20$:	MOVL	R3,(R0)			; ASSUME NO AGLOMERATION

            51            50     C1  065B   884 	ADDL3	R0,R1,-(SP)		; CALC END OF BLOCK ADDRESS

                          7E         065E       

            8E            53     D1  065F   885 	CMPL	R3,(SP)+		; AGLOMERATE?

                          06     12  0662   886 	BNEQ	30$			; IF NEQ THEN NO

            60            83     D0  0664   887 	MOVL	(R3)+,(R0)		; SAVE LINK TO NEXT

            51            63     C0  0667   888 	ADDL	(R3),R1			; CALC NEW SIZE

                          52     DD  066A   889 30$:	PUSHL	R2			; CALC ADDRESS OF BLOCK

            82            50     D0  066C   890 	MOVL	R0,(R2)+		; ASSUME NO AGLOMERATION

            6E            62     C0  066F   891 	ADDL	(R2),(SP)		; ADD IN SIZE

            8E            50     D1  0672   892 	CMPL	R0,(SP)+		; END EQUAL TO BLOCK RELEASED?

                          09     12  0675   893 	BNEQ	40$			; IF YES THEN DONE

            51            62     C0  0677   894 	ADDL	(R2),R1			; ACCUMULATE BLOCK SIZE

            72            60     D0  067A   895 	MOVL	(R0),-(R2)		; MOVE LINK TO PREVIOUS

            50            52     D0  067D   896 	MOVL	R2,R0			; ADDRESS NEW FREE BLOCK

         04 A0            51     D0  0680   897 40$:	MOVL	R1,4(R0)		; INSERT SIZE OF BLOCK

                                 05  0684   898 	RSB				; AND RETURN

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  25

V06             LOG_MSG - MAKE A LOG ENTRY                                                                                      (20)



                                     0685   900 	.SBTTL	LOG_MSG - MAKE A LOG ENTRY

                                     0685   901 ;++

                                     0685   902 ; LOG_MSG - MAKE A LOG ENTRY

                                     0685   903 ;

                                     0685   904 ; FUNCTIONAL DESCRIPTION:

                                     0685   905 ;

                                     0685   906 ; THIS ROUTINE OUTPUTS A RECORD TO THE LOG FILE

                                     0685   907 ;

                                     0685   908 ; INPUTS:

                                     0685   909 ;

                                     0685   910 ;	OPC$GL_ODESC CONTAINS DESC OF MESSAGE

                                     0685   911 ;

                                     0685   912 ; OUTPUTS:

                                     0685   913 ;

                                     0685   914 ;	R0,R1 ARE USED.

                                     0685   915 ;--

                                     0685   916 LOG_MSG:				; MAKE LOG ENTRY

                     0000'CF     94  0685   917 	CLRB	W^OPC$GB_TIMER		; SET TIMER FLAG

            50       0000'CF     9E  0689   918 	MOVAB	W^OPC$GL_RAB,R0		; ADDRESS RAB

       0004'CF            04     C1  068E   919 	ADDL3	#4,W^OPC$GL_ODESC+4,RAB$L_RBF(R0); INSERT ADDRESS

                       28 A0         0693       

       0000'CF            04     A3  0695   920 	SUBW3	#4,W^OPC$GL_ODESC,RAB$W_RSZ(R0); INSERT SIZE

                       22 A0         069A       

                                     069C   921 	$PUT	RAB=R0			; DO THE OPERATION

                                 05  06A5   922 	RSB				; RETURN

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  26

V06             FIND_OPR - FIND OPERATOR TERMINAL RESPONSIBLE F                                                                 (21)



                                     06A6   924 	.SBTTL FIND_OPR - FIND OPERATOR TERMINAL RESPONSIBLE FOR MESSAGE

                                     06A6   925 ;++

                                     06A6   926 ; FIND_OPR - FIND OPERATOR TERMINAL RESPONSIBLE FOR MESSAGE

                                     06A6   927 ;

                                     06A6   928 ; FUNCTIONAL DESCRIPTION:

                                     06A6   929 ;

                                     06A6   930 ; THIS ROUTINE FINDS THE OPERATOR CONTROL BLOCK ASSOCIATED WITH A MESSAGE

                                     06A6   931 ; THE NAME OF THE OPERATOR TERMINAL IS IN THE MESSAGE BLOCK AND IT IS

                                     06A6   932 ; MATCHED TO THE NAME STORED IN THE CONTROL BLOCK.

                                     06A6   933 ;

                                     06A6   934 ; INPUTS:

                                     06A6   935 ;

                                     06A6   936 ;	R7 = ADDRESS OF THE MESSAGE

                                     06A6   937 ;

                                     06A6   938 ; OUTPUTS:

                                     06A6   939 ;

                                     06A6   940 ;	CONDITION CODES CONSISTENT WITH EQUALITY.

                                     06A6   941 ;	R2 = ADDRESS OF THE OPERATOR TERMINAL CONTROL BLOCK

                                     06A6   942 ;	R10 = ADDRESS OF A NAME DESC. FOR THE TERMINAL NAME

                                     06A6   943 ;--

                                     06A6   944 FIND_OPR:				; FIND MESSAGE OPERATOR SOURCE

            5A       0000'CF     9E  06A6   945 	MOVAB	W^OPC$GQ_OPRDESC,R10	; ADDRESS DESC.

            6A            14     D0  06AB   946 	MOVL	#20,(R10)		; SET UP DESC

            50         3C A7     9E  06AE   947 	MOVAB	OPC$T_MS_ONAME+MSG_HDR(R7),R0; ADDRESS OPERATOR NAME STRING

                                     06B2   948 	$FAO_S	W^OPC$GL_DEVNAME,(R10),(R10),-

                                     06B2   949 		R0,OPC$W_MS_OUNIT+MSG_HDR(R7)

            52       0000'CF     9E  06C6   950 	MOVAB	W^OPC$GQ_TERMLIST,R2	; START SERACH

                       EB'AF     9F  06CB   951 	PUSHAB	B^SEARCH_LIST		; SET UP CALL

                          9E     16  06CE   952 10$:	JSB	@(SP)+			; CALL ROUTINE

                          12     13  06D0   953 	BEQL	30$			; IF EQL THEN NO MORE

                          52     DD  06D2   954 	PUSHL	R2			; SAVE LIST ENTRY

         18 A2         10 A2     2D  06D4   955 	CMPC5	OT_DESC(R2),OT_NAME(R2),#0,(R10),@4(R10)

            6A            00         06D9       

                       04 BA         06DB       

                          04     BA  06DD   956 	POPR	#^M<R2>

                          ED     12  06DF   957 	BNEQ	10$			; IF NEQ THEN NO MATCH

                          01     BA  06E1   958 	POPR	#^M<R0>

                                 05  06E3   959 	RSB

            52         F0 AA     9E  06E4   960 30$:	MOVAB	-OT_DESC(R10),R2	; SET UP ORIGINAL NAME AS OPERATOR

                          02     95  06E8   961 	TSTB	#2			; SET NOT FOUND

                                 05  06EA   962 	RSB				;

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  27

V06             SEARCH_LIST - SEARCH LIST CO-ROUTINE                                                                            (22)



                                     06EB   964 	.SBTTL	SEARCH_LIST - SEARCH LIST CO-ROUTINE

                                     06EB   965 ;++

                                     06EB   966 ; SEARCH_LIST - SEARCH LIST CO-ROUTINE

                                     06EB   967 ;

                                     06EB   968 ; FUNCTIONAL DESCRIPTION:

                                     06EB   969 ;

                                     06EB   970 ; THIS IS A CO-ROUTINE, THAT ON EVERY CALL BACK RETURNS THE ADDRESS OF THE

                                     06EB   971 ; NEXT BLOCK IN A LIST.

                                     06EB   972 ;

                                     06EB   973 ; INPUTS:

                                     06EB   974 ;

                                     06EB   975 ;	R2 = ADDRESS TO BEGIN OR PICK UP SEARCH

                                     06EB   976 ;	ON SUBSEQUENT CALLS, R11 IS THE SEARCH KEY

                                     06EB   977 ;

                                     06EB   978 ; OUTPUTS:

                                     06EB   979 ;

                                     06EB   980 ;	R2 = ADDRESS OF THE CONTROL BLOCK

                                     06EB   981 ;	R11 = SEARCH KEY

                                     06EB   982 ;	CONDITION CODE OF NEQ MEANS FOUND

                                     06EB   983 ;--

                                     06EB   984 SEARCH_LIST:				; SEARCH OPERATOR CO-ROUTINE

            5B            52     D0  06EB   985 	MOVL	R2,R11			; SET UP SEARCH LIMIT

            52            62     D0  06EE   986 10$:	MOVL	(R2),R2			; LINK TO NEXT

            5B            52     D1  06F1   987 	CMPL	R2,R11			; END?

                          04     13  06F4   988 	BEQL	20$			; IF EQL THEN YES

                          9E     16  06F6   989 	JSB	@(SP)+			; CALL BACK

                          F4     11  06F8   990 	BRB	10$			; CONTINUE

                                 05  06FA   991 20$:	RSB				; RETURN IF DONE

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  28

V06             OPC$TIMESTAMP - TIMESTAMP LOG                                                                                   (23)



                                     06FB   993 	.SBTTL	OPC$TIMESTAMP - TIMESTAMP LOG

                                     06FB   994 ;++

                                     06FB   995 ; OPC$TIMESTAMP - TIMESTAMP TERMINALS AND LOG

                                     06FB   996 ;

                                     06FB   997 ; FUNCTIONAL DESCRIPTION:

                                     06FB   998 ;

                                     06FB   999 ; THIS ROUTINE IS ENTERED AT START TIME AND EVERY 15 MINUTES THEREAFTER.

                                     06FB  1000 ; IF A MESSATGE IS BEING PROCESSED THEN ONLY A BIT IS RAISED TO SIGNAL

                                     06FB  1001 ; THAT A TIME STAMP SHOULD BE DONE. WHEN THE MESSAGE IS PROCESSED, IT IS DONE

                                     06FB  1002 ; IF NON MESSAGE IS BEING PROCESSED, THEN THE OPERATION IS DONE DIRECTLY.

                                     06FB  1003 ;

                                     06FB  1004 ; INPUTS:

                                     06FB  1005 ;

                                     06FB  1006 ;	NONE

                                     06FB  1007 ;

                                     06FB  1008 ; OUTPUTS:

                                     06FB  1009 ;

                                     06FB  1010 ;	NONE

                                     06FB  1011 ;--

                                     06FB  1012 OPC$TIMESTAMP::				; TIME STAMP LOG AND TERMINALS

                               0FFC  06FB  1013 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>;

       0000'CF            00     E4  06FD  1014 	BBSC	#STV_TIMER,W^OPC$GB_STATUS,100$; BR IF IN MESSAGE PROCESSING

                          56         0702       

   FFFFD8F0 8F   000493E0 8F     7A  0703  1015 	EMUL	#OPC$C_REPEAT*60*1000,#-10000,#0,W^OPC$GQ_TIME; SET UP TIME VALUE

       0000'CF            00         070E       

                                     0712  1016 	$SETIMR_S	,W^OPC$GQ_TIME,B^OPC$TIMESTAMP

                                     0724  1017 	$FLUSH	RAB=W^OPC$GL_RAB	; FLUSH CURRENT LOG

            52       0000'CF     9E  072F  1018 	MOVAB	W^OPC$GQ_TERMLIST,R2	; SEARCH TERMINAL LIST

                     FFB3 CF     9F  0734  1019 	PUSHAB	W^SEARCH_LIST		; START SEARCH

                          9E     16  0738  1020 10$:	JSB	@(SP)+			;

                          07     13  073A  1021 	BEQL	20$			; IF EQL THEN DONE

         0C A2            00     E5  073C  1022 	BBCC	#OTV_ACTIVE,OT_STATUS(R2),10$; SET NOT ACTIVE

                          F7         0740       

                          F5     11  0741  1023 	BRB	10$			; CONTINUE

                          FC6C   30  0743  1024 20$:	BSBW	DISPLAY_NEXT		; DISPLAY ALL ACTIVE MESSAGES

            01            06     9D  0746  1025 	ACBB	#6,#1,W^OPC$GB_TIMER,100$; BR IF NO STAMP NEEDED

            000B     0000'CF         0749       

            58       0000'CF     9E  074E  1026 	MOVAB	W^OPC$T_LOGTIME,R8	; OUTPUT THE TIME TO THE LOG

                          FE87   30  0753  1027 	BSBW	FORMAT_MSG2		; FORMAT IT

                          FF2C   30  0756  1028 	BSBW	LOG_MSG			;

                                 04  0759  1029 100$:	RET				; RETURN WHEN DONE

                                     075A  1030 ;

                                     075A  1031 	.END

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  29

SYMBOL TABLE                                                                                                                    (23)



$$.TMP1        = 00000001            FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            

$$.TMP2        = 000000CF            FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            

$$T1           = 00000001            FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            

$$T2           = 00000005            FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            

BIT...         = 00000008            FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            

BRD_SINGLE       0000061C R     04   FAB$M_GET      = 00000002            FAB$V_MSE      = 00000004            

CANCEL           0000029C R     04   FAB$M_INP      = 00080000            FAB$V_MXV      = 00000001            

CONTROL        = 00000008            FAB$M_JNL      = 00400000            FAB$V_NAM      = 00000018            

DEV$V_TRM        ********   X   04   FAB$M_KFO      = 40000000            FAB$V_NEF      = 0000000A            

DISPLAY_NEXT     000003B2 R     04   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            FIND_OPR         000006A6 R     04   

FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            FORMAT_MSG       000005D8 R     04   

FAB$L_STS        00000008            FAB$V_BLK      = 00000003            FORMAT_MSG2      000005DD R     04   

FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            GBL...         = 00000000            

FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            INITLOG          00000000 R     04   

FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            IO$M_NOW         ********   X   04   

FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            IO$_READVBLK     ********   X   04   

FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            IO$_WRITEVBLK    ********   X   04   

FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            LOG_BRD          000005B6 R     04   

FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            LOG_BRD_MSG      000005AE R     04   

FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            LOG_BRD_MSG2     000005B3 R     04   

FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            LOG_MSG          00000685 R     04   

FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            MSG$_ABOOPR    = 00000011            

FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            MSG$_ABORT     = 00000030            

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  30

SYMBOL TABLE                                                                                                                    (23)



MSG$_ACCRSP    = 00000021            OPC$GB_STATUS    ********   X   04   OPC$T_OFFLINE    ********   X   04   

MSG$_CONFIRM   = 00000031            OPC$GB_TIMER     ********   X   04   OPC$T_ONLINE     ********   X   04   

MSG$_CONNECT   = 00000032            OPC$GB_TRNS      ********   X   04   OPC$T_REPLY      ********   X   04   

MSG$_CRUNSOLIC = 00000002            OPC$GL_BOX       ********   X   04   OPC$T_RQST       ********   X   04   

MSG$_DELPROC   = 00000003            OPC$GL_CHAN      ********   X   04   OPC$T_STATUS     ********   X   04   

MSG$_DELSMB    = 00000014            OPC$GL_DEVNAME   ********   X   04   OPC$T_TERMD      ********   X   04   

MSG$_DEVOFFLIN = 00000005            OPC$GL_FAB       ********   X   04   OPC$T_TERME      ********   X   04   

MSG$_DEVONLIN  = 00000007            OPC$GL_IDESC     ********   X   04   OPC$V_NM_CARDS = 00000005            

MSG$_DISCON    = 00000033            OPC$GL_IOSB      ********   X   04   OPC$V_NM_CENTRL= 00000000            

MSG$_EXIT      = 00000034            OPC$GL_MBNAME    ********   X   04   OPC$V_NM_DEVICE= 00000004            

MSG$_INIOPR    = 00000010            OPC$GL_ODESC     ********   X   04   OPC$V_NM_DISKS = 00000003            

MSG$_INTMSG    = 00000035            OPC$GL_RAB       ********   X   04   OPC$V_NM_NTWORK= 00000006            

MSG$_OPREPLY   = 00000009            OPC$GL_RQSTID    ********   X   04   OPC$V_NM_OPER1 = 0000000C            

MSG$_OPRQST    = 00000008            OPC$GL_RQTERM    ********   X   04   OPC$V_NM_OPER10= 00000015            

MSG$_PATHLOST  = 00000036            OPC$GQ_MSGDESC   ********   X   04   OPC$V_NM_OPER11= 00000016            

MSG$_PROTOCOL  = 00000037            OPC$GQ_MSGLIST   ********   X   04   OPC$V_NM_OPER12= 00000017            

MSG$_REJECT    = 00000038            OPC$GQ_OPRDESC   ********   X   04   OPC$V_NM_OPER2 = 0000000D            

MSG$_RESOPR    = 00000013            OPC$GQ_POOL      ********   X   04   OPC$V_NM_OPER3 = 0000000E            

MSG$_SCANBAD   = 00000028            OPC$GQ_TERMLIST  ********   X   04   OPC$V_NM_OPER4 = 0000000F            

MSG$_SCANRSP   = 00000029            OPC$GQ_TIME      ********   X   04   OPC$V_NM_OPER5 = 00000010            

MSG$_SMBDON    = 00000009            OPC$GW_SIZES     ********   X   04   OPC$V_NM_OPER6 = 00000011            

MSG$_SMBINI    = 00000008            OPC$INITLOG      0000001F RG    04   OPC$V_NM_OPER7 = 00000012            

MSG$_SMBRSP    = 00000020            OPC$L_MS_MASK    00000004            OPC$V_NM_OPER8 = 00000013            

MSG$_SNDACC    = 0000000A            OPC$L_MS_MAXSZ   0000009A            OPC$V_NM_OPER9 = 00000014            

MSG$_SNDSMB    = 00000004            OPC$L_MS_OTEXT   0000001A            OPC$V_NM_PRINT = 00000001            

MSG$_SUSOPR    = 00000012            OPC$L_MS_RPLYID  00000004            OPC$V_NM_TAPES = 00000002            

MSG$_THIRDPARTY= 00000039            OPC$L_MS_RQSTID  00000004            OPC$W_MS_OUNIT   00000008            

MSG$_TIMEOUT   = 0000003A            OPC$L_MS_TEXT    00000008            OPC$W_MS_STATUS  00000002            

MSG$_TRMHANGUP = 00000006            OPC$M_NM_CARDS = 00000020            OPC$_DEVNOTERM = 00058074            

MSG$_TRMUNSOLIC= 00000001            OPC$M_NM_CENTRL= 00000001            OPC$_DEVOFFLINE= 0005804C            

MSG$_XM_ATTN   = 0000000D            OPC$M_NM_DEVICE= 00000010            OPC$_DEVONLINE = 00058054            

MSG$_XM_DATAVL = 0000000B            OPC$M_NM_DISKS = 00000008            OPC$_ILLRQST   = 0005807C            

MSG$_XM_SHUTDN = 0000000C            OPC$M_NM_NTWORK= 00000040            OPC$_LOGCLOS   = 000580A4            

MSG_ACCOUNT      00000028            OPC$M_NM_OPER1 = 00001000            OPC$_LOGFAIL   = 00058034            

MSG_BRD          000005B9 R     04   OPC$M_NM_OPER10= 00200000            OPC$_LOGINIT   = 00058009            

MSG_DEVCNT       00000010            OPC$M_NM_OPER11= 00400000            OPC$_LOGTIME   = 00058099            

MSG_DEVNAME      00000011            OPC$M_NM_OPER12= 00800000            OPC$_NOCLI     = 0005805C            

MSG_DEVUNIT      0000000E            OPC$M_NM_OPER2 = 00002000            OPC$_NOPERATOR = 00058061            

MSG_HDR          00000032            OPC$M_NM_OPER3 = 00004000            OPC$_NOSUCHRQST= 00058044            

MSG_LINK         00000000            OPC$M_NM_OPER4 = 00008000            OPC$_OPREPLY   = 00058091            

MSG_MSG          0000000C            OPC$M_NM_OPER5 = 00010000            OPC$_OPRNOTIF  = 00058089            

MSG_NUMBER       00000008            OPC$M_NM_OPER6 = 00020000            OPC$_RQSTABORT = 0005801C            

MSG_PRI          00000030            OPC$M_NM_OPER7 = 00040000            OPC$_RQSTCAN   = 00058084            

MSG_PRIV         00000010            OPC$M_NM_OPER8 = 00080000            OPC$_RQSTCMPLTE= 00058029            

MSG_REPLYMBX     0000000E            OPC$M_NM_OPER9 = 00100000            OPC$_RQSTPEND  = 00058021            

MSG_SIZE         000000CC            OPC$M_NM_PRINT = 00000002            OPC$_RQ_CANCEL = 00000005            

MSG_UIC          00000018            OPC$M_NM_TAPES = 00000004            OPC$_RQ_LOGI   = 00000002            

MSG_USRNAME      0000001C            OPC$RESTART      000000C3 RG    04   OPC$_RQ_REPLY  = 00000004            

OFFLINE          0000014E R     04   OPC$TIMESTAMP    000006FB RG    04   OPC$_RQ_RQST   = 00000003            

ONLINE           00000155 R     04   OPC$T_COMPLTE    ********   X   04   OPC$_RQ_STATUS = 00000006            

OPC$ALLOCATE     00000053 RG    04   OPC$T_ILLRQST    ********   X   04   OPC$_RQ_TERME  = 00000001            

OPC$A_NAMES      ********   X   04   OPC$T_LOGCLOS    ********   X   04   OPC$_TERMDSBL  = 00058011            

OPC$B_MS_ENAB    00000001            OPC$T_LOGFAIL    ********   X   04   OPC$_TERMENAB  = 00058001            

OPC$B_MS_TARGET  00000001            OPC$T_LOGINIT    ********   X   04   OPC$_TERMFAIL  = 0005803C            

OPC$B_MS_TYPE    00000000            OPC$T_LOGTIME    ********   X   04   OPC$_UNKNOPR   = 0005806C            

OPC$C_REPEAT   = 00000005            OPC$T_MS_ONAME   0000000A            OTV_ACTIVE     = 00000000            

OPC$DEALLOCATE   00000640 RG    04   OPC$T_NORQST     ********   X   04   OT_DESC          00000010            

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  31

SYMBOL TABLE                                                                                                                    (23)



OT_LINK          00000000            RAB$M_NLK      = 00100000            SETUP_RQST       00000412 R     04   

OT_NAME          00000018            RAB$M_NXR      = 00800000            SHOW_STATUS      000001E9 R     04   

OT_SERVICE       00000008            RAB$M_PMT      = 40000000            SS$_INSFMEM      ********   X   04   

OT_SIZE          00000028            RAB$M_PPF_IND  = 00004000            STATUS           000001E1 R     04   

OT_STATUS        0000000C            RAB$M_PPF_RAT  = 00003FC0            STV_TIMER        00000000            

PARAM0         = 00000010            RAB$M_PTA      = 20000000            SYS$ASSIGN       ********   X   04   

PARAM1         = 00000014            RAB$M_RAH      = 00000200            SYS$BRDCST       ********   X   04   

PARAM2         = 00000018            RAB$M_RLK      = 00080000            SYS$CLOSE        ********  GX   04   

PARAM3         = 0000001C            RAB$M_RNE      = 01000000            SYS$CONNECT      ********  GX   04   

PARAM4         = 00000020            RAB$M_RNF      = 08000000            SYS$CREATE       ********  GX   04   

PARAM5         = 00000024            RAB$M_TMO      = 02000000            SYS$DASSGN       ********   X   04   

PARAM6         = 00000028            RAB$M_TPT      = 00000002            SYS$EXIT         ********   X   04   

PARAM7         = 0000002C            RAB$M_UIF      = 00000010            SYS$EXPREG       ********   X   04   

RAB$B_BID        00000000            RAB$M_ULK      = 00040000            SYS$FAO          ********   X   04   

RAB$B_BLN        00000001            RAB$M_WAT      = 00020000            SYS$FAOL         ********   X   04   

RAB$B_KRF        00000035            RAB$M_WBH      = 00000400            SYS$FLUSH        ********  GX   04   

RAB$B_KSZ        00000034            RAB$S_PPF_RAT  = 00000008            SYS$GETCHN       ********   X   04   

RAB$B_MBC        00000037            RAB$V_ASY      = 00000000            SYS$GETDEV       ********   X   04   

RAB$B_MBF        00000036            RAB$V_BIO      = 0000000B            SYS$GETMSG       ********   X   04   

RAB$B_PSZ        00000034            RAB$V_CCO      = 0000001F            SYS$PUT          ********  GX   04   

RAB$B_RAC        0000001E            RAB$V_CVT      = 0000001A            SYS$QIOW         ********   X   04   

RAB$B_ROP1       00000005            RAB$V_EOF      = 00000008            SYS$SETIMR       ********   X   04   

RAB$B_ROP2       00000006            RAB$V_FDL      = 00000006            TARGET         = 00000004            

RAB$B_ROP3       00000007            RAB$V_HSH      = 00000007            TERMINIT         000002D6 R     04   

RAB$B_TMO        0000001F            RAB$V_KGE      = 00000015            TESTNUM        = 00000000            

RAB$C_BID      = 00000001            RAB$V_KGT      = 00000016            TT$C_BAUD_110  = 00000003            

RAB$C_BLN        00000044            RAB$V_LIM      = 0000000E            TT$C_BAUD_1200 = 00000008            

RAB$C_KEY      = 00000001            RAB$V_LOA      = 0000000D            TT$C_BAUD_134  = 00000004            

RAB$C_RFA      = 00000002            RAB$V_LOC      = 00000010            TT$C_BAUD_150  = 00000005            

RAB$C_SEQ      = 00000000            RAB$V_MAS      = 00000005            TT$C_BAUD_1800 = 00000009            

RAB$K_BLN        00000044            RAB$V_NLK      = 00000014            TT$C_BAUD_2000 = 0000000A            

RAB$L_BKT        00000038            RAB$V_NXR      = 00000017            TT$C_BAUD_2400 = 0000000B            

RAB$L_CTX        00000018            RAB$V_PMT      = 0000001E            TT$C_BAUD_300  = 00000006            

RAB$L_DCT        00000038            RAB$V_PPF_IND  = 0000000E            TT$C_BAUD_3600 = 0000000C            

RAB$L_FAB        0000003C            RAB$V_PPF_RAT  = 00000006            TT$C_BAUD_4800 = 0000000D            

RAB$L_KBF        00000030            RAB$V_PTA      = 0000001D            TT$C_BAUD_50   = 00000001            

RAB$L_PBF        00000030            RAB$V_RAH      = 00000009            TT$C_BAUD_600  = 00000007            

RAB$L_RBF        00000028            RAB$V_RLK      = 00000013            TT$C_BAUD_7200 = 0000000E            

RAB$L_RFA0       00000010            RAB$V_RNE      = 00000018            TT$C_BAUD_75   = 00000002            

RAB$L_RHB        0000002C            RAB$V_RNF      = 0000001B            TT$C_BAUD_9600 = 0000000F            

RAB$L_ROP        00000004            RAB$V_TMO      = 00000019            TT$M_ALTRPAR   = 00000020            

RAB$L_STS        00000008            RAB$V_TPT      = 00000001            TT$M_CRFILL    = 00000400            

RAB$L_STV        0000000C            RAB$V_UIF      = 00000004            TT$M_EIGHTBIT  = 00008000            

RAB$L_UBF        00000024            RAB$V_ULK      = 00000012            TT$M_ESCAPE    = 00000008            

RAB$M_ASY      = 00000001            RAB$V_WAT      = 00000011            TT$M_HOLDSCREEN= 00004000            

RAB$M_BIO      = 00000800            RAB$V_WBH      = 0000000A            TT$M_HOSTSYNC  = 00000010            

RAB$M_CCO      = 80000000            RAB$W_ISI        00000002            TT$M_LFFILL    = 00000800            

RAB$M_CVT      = 04000000            RAB$W_RFA        00000010            TT$M_LOWER     = 00000080            

RAB$M_EOF      = 00000100            RAB$W_RFA4       00000014            TT$M_MBXDSABL  = 00010000            

RAB$M_FDL      = 00000040            RAB$W_RSZ        00000022            TT$M_MECHTAB   = 00000100            

RAB$M_HSH      = 00000080            RAB$W_USZ        00000020            TT$M_NOBRDCST  = 00020000            

RAB$M_KGE      = 00200000            RECEIVE          000000CE R     04   TT$M_NOECHO    = 00000002            

RAB$M_KGT      = 00400000            REPLY            00000460 R     04   TT$M_NOTYPEAHD = 00000004            

RAB$M_LIM      = 00004000            REQUEST          00000167 R     04   TT$M_ODD       = 00000080            

RAB$M_LOA      = 00002000            RET_BAD_OPR      00000291 R     04   TT$M_PAGE      = FE000000            

RAB$M_LOC      = 00010000            SEARCH_LIST      000006EB R     04   TT$M_PARITY    = 00000040            

RAB$M_MAS      = 00000020            SEND_REPLY       000004C8 R     04   TT$M_PASSALL   = 00000001            

OPCOMSUB        -- OPERATOR COMMUNICATIONS PROCESS SUBROUTINES   22-AUG-1978 00:41:37   VAX-11 MACRO X0.3-11               Page  32

SYMBOL TABLE                                                                                                                    (23)



TT$M_READSYNC  = 00040000            

TT$M_REMOTE    = 00002000            

TT$M_SCOPE     = 00001000            

TT$M_SCRIPT    = 00000040            

TT$M_TTSYNC    = 00000020            

TT$M_WRAP      = 00000200            

TT$S_PAGE      = 00000008            

TT$V_ALTRPAR   = 00000005            

TT$V_CRFILL    = 0000000A            

TT$V_EIGHTBIT  = 0000000F            

TT$V_ESCAPE    = 00000003            

TT$V_HOLDSCREEN= 0000000E            

TT$V_HOSTSYNC  = 00000004            

TT$V_LFFILL    = 0000000B            

TT$V_LOWER     = 00000007            

TT$V_MBXDSABL  = 00000010            

TT$V_MECHTAB   = 00000008            

TT$V_NOBRDCST  = 00000011            

TT$V_NOECHO    = 00000001            

TT$V_NOTYPEAHD = 00000002            

TT$V_ODD       = 00000007            

TT$V_PAGE      = 00000019            

TT$V_PARITY    = 00000006            

TT$V_PASSALL   = 00000000            

TT$V_READSYNC  = 00000012            

TT$V_REMOTE    = 0000000D            

TT$V_SCOPE     = 0000000C            

TT$V_SCRIPT    = 00000006            

TT$V_TTSYNC    = 00000005            

TT$V_WRAP      = 00000009            

TT$_LA36       = 00000020            

TT$_LAX        = 00000020            

TT$_UNKNOWN    = 00000000            

TT$_VT05       = 00000001            

TT$_VT52       = 00000040            

TT$_VT55       = 00000041            

TT$_VT5X       = 00000040            





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  

OPCOM_DEF        000000CC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            0000009E      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

OPCOM_CODE       0000075A      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

9006. BYTES LEFT IN FREE MEMORY POOL.

14. BYTES OF RECLAIMED MEMORY.

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

27 MLB DIR RDS - 762 GETS TO DEFINE 37 MACROS. 70 INTER. FILE WRITES. 

