COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      62  COM$DELATTNAST - DELIVER ATTENTION ASTS

   (3)     100  COM$FLUSHATTNS - FLUSH ATTENTION AST LIST

   (4)     143  COM$POST - POST I.O COMPLETION INDEPENDENT OF U

   (5)     174  COM$DRVDEALMEM - DEALLOCATE DRIVER MEMORY

   (6)     219  COM$SETATTNAST - SET UP ATTENTION AST

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   1

V06                                                                                                                              (1)



                                     0000     1 	.TITLE	COMDRVSUB - COMMUNUCATION DRIVERS SUBROUTINES

                                     0000     2 	.IDENT	/V06/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1978

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     6 ;

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

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

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

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

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

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

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

                                     0000    14 ;

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

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

                                     0000    17 ; EQUIPMENT CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 ;

                                     0000    22 ;++

                                     0000    23 ; FACILITY:

                                     0000    24 ;

                                     0000    25 ;	VAX/VMS I/O DRIVERS

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:

                                     0000    28 ;

                                     0000    29 ;	THIS MODULE CONTAINS SUBROUTINES FOR THE TERMINAL,MAILBOX AND DMC11 DRIVERS.

                                     0000    30 ;

                                     0000    31 ; AUTHOR:

                                     0000    32 ;

                                     0000    33 ;	R.HEINEN 8-SEPT-1977

                                     0000    34 ;--

                                     0000    35 ;

                                     0000    36 ; EXTERNAL SYMBOLS

                                     0000    37 ;

                                     0000    38 	$ACBDEF				; DEFINE AST CONTROL BLOCK

                                     0000    39 	$CCBDEF				; DEFINE CCB

                                     0000    40 	$DYNDEF				; DEFINE DYNAMIC MEMORY BLOCKS

                                     0000    41 	$IPLDEF				; DEFINE IPL LEVELS

                                     0000    42 	$IRPDEF				; DEFINE I/O PACKET

                                     0000    43 	$PCBDEF				; DEFINE PCB

                                     0000    44 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000    45 	$PRIDEF				; DEFINE NEW PRIORITIES

                                     0000    46 	$PRVDEF				; DEFINE PRIVELEGE BITS

                                     0000    47 	$PSLDEF				; DEFINE PSL

                                     0000    48 	$RSNDEF				; DEFINE RESOURCES

                                     0000    49 	$UCBDEF				; DEFINE UCB

                                     0000    50 ;

                                     0000    51 ; LOCAL DEFINITIONS

                                     0000    52 ;

                           00000000  0000    53 P1= 0

                           00000004  0000    54 P2= 4

                           00000008  0000    55 P3= 8

                           0000000C  0000    56 P4= 12

                           00000010  0000    57 P5= 16

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   2

V06                                                                                                                              (1)



                           00000014  0000    58 P6= 20

                                     0000    59  

                                 00000000    60 	.PSECT	WIONONPAGED

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   3

V06             COM$DELATTNAST - DELIVER ATTENTION ASTS                                                                          (2)



                                     0000    62 	.SBTTL	COM$DELATTNAST - DELIVER ATTENTION ASTS

                                     0000    63 ;++

                                     0000    64 ; COM$DELATTNAST - DELIVER ATTENION ASTS

                                     0000    65 ;

                                     0000    66 ; FUNCTIONAL DESCRIPTION:

                                     0000    67 ;

                                     0000    68 ; THIS ROUTINE IS USED BY THE TERMINAL AND MAILBOX DRIVERS TO DELIVER 

                                     0000    69 ; ALL OF THE ASTS AWAITING ATTENTION. THE CONTROL BLOCKS ARE USED AS FORK BLOCKS

                                     0000    70 ; TO IPL$_QUEUEAST.

                                     0000    71 ;

                                     0000    72 ; INPUTS:

                                     0000    73 ;

                                     0000    74 ;	R4 = ADDRESS OF LIST HEAD OF AST CONTROL BLOCKS

                                     0000    75 ;	R5 = UCB OF UNIT

                                     0000    76 ;

                                     0000    77 ; OUTPUTS:

                                     0000    78 ;

                                     0000    79 ;	R2,R3,R4,R5 ARE PRESERVED.

                                     0000    80 ;--

                                     0000    81 COM$DELATTNAST::			; DELIVER ATTENTION ASTS

                          38     BB  0000    82 	PUSHR	#^M<R3,R4,R5>		;

            55         04 BE     D0  0002    83 10$:	MOVL	@4(SP),R5		; GET NEXT ENTRY

                          28     13  0006    84 	BEQL	50$			; IF EQL THEN NONE

         04 BE            65     D0  0008    85 	MOVL	(R5),@4(SP)		; CLOSE LIST

                       F3 AF     9F  000C    86 	PUSHAB	B^10$			; SET UP RETURN ADDRESS

                                     000F    87 	FORK				; CREATE FORK PROCESS

                                     0015    88 ;

                                     0015    89 ; AST QUEUE FORK PROCESS

                                     0015    90 ;

         10 A5         18 A5     7D  0015    91 	MOVQ	ACB$L_KAST(R5),ACB$L_AST(R5); REARRANGE ENTRIES

         0B A5         20 A5     90  001A    92 	MOVB	ACB$L_KAST+8(R5),ACB$B_RMOD(R5);

         0C A5         24 A5     D0  001F    93 	MOVL	ACB$L_KAST+12(R5),ACB$L_PID(R5);

                       18 A5     D4  0024    94 	CLRL	ACB$L_KAST(R5)		;

            52            01     9A  0027    95 	MOVZBL	#PRI$_IOCOM,R2		; SET UP PRIORITY INCREMENT

                 00000000'GF     17  002A    96 	JMP	G^SCH$QAST		; QUEUE THE AST

                          38     BA  0030    97 50$:	POPR	#^M<R3,R4,R5>		;

                                 05  0032    98 	RSB

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   4

V06             COM$FLUSHATTNS - FLUSH ATTENTION AST LIST                                                                        (3)



                                     0033   100 	.SBTTL	COM$FLUSHATTNS - FLUSH ATTENTION AST LIST

                                     0033   101 ;++

                                     0033   102 ; COM$FLUSHATTNS - FLUNS ATTENTION AST LIST

                                     0033   103 ;

                                     0033   104 ; THIS ROUTINE IS USED BY THE TERMINAL AND MAILBOX DRIVERS TO FLUSH

                                     0033   105 ; AN ATTENTION AST LIST. THIS IS DONE AT CANCEL I/O TIME AND WHEN A

                                     0033   106 ; QIO SPECIFIES A 0 AST ADDRESS ON A SET ATTENTION AST FUNCTION.

                                     0033   107 ; IF THE AST CONTROL BLOCK OWNER IS NO LONGER IN THE SYSTEM THE AST IS ALSO

                                     0033   108 ; FLUSHED.

                                     0033   109 ;

                                     0033   110 ;

                                     0033   111 ; INPUTS:

                                     0033   112 ;

                                     0033   113 ;	R4 = PCB ADDRESS 

                                     0033   114 ;	R5 = UCB ADDRESS OF RELATED UNIT

                                     0033   115 ;	R6 = CHANNEL NUMBER

                                     0033   116 ;	R7 = LIST HEAD

                                     0033   117 ;

                                     0033   118 ; OUTPUTS:

                                     0033   119 ;

                                     0033   120 ;	R0 = SS$_NORMAL

                                     0033   121 ;	R1,R2,R7 ARE DISTROYED.

                                     0033   122 ;

                                     0033   123 ;--

                                     0033   124 COM$FLUSHATTNS::			; FLUSH ATTENTION AST LIST

                                     0033   125 	DSBINT	UCB$B_DIPL(R5)		; DISABLE INTERRUPTS

            50            67     D0  003A   126 10$:	MOVL	(R7),R0			; GET LIST ENTRY

                          1F     13  003D   127 	BEQL	50$			; IF EQL THEN DONE

         24 A0         60 A4     D1  003F   128 	CMPL	PCB$L_PID(R4),ACB$L_KAST+12(R0); PID MATCH?

                          13     12  0044   129 	BNEQ	40$			; IF NEQ THEN NO

         22 A0            56     B1  0046   130 	CMPW	R6,ACB$L_KAST+10(R0)	; CHANNEL MATCH?

                          0D     12  004A   131 	BNEQ	40$			; IF NEQ THEN NO

            67            60     D0  004C   132 	MOVL	(R0),(R7)		; CLOSE UP LIST TO REMOVE ENTRY

                                     004F   133 	ENBINT				; REENABLE INTERRUPTS

                       3C A4     B6  0052   134 	INCW	PCB$W_ASTCNT(R4)	; RESTORE AST QUOTA

                          1F     10  0055   135 	BSBB	COM$DRVDEALMEM		; DEALLOCATE THE BLOCK

                          DA     11  0057   136 	BRB	COM$FLUSHATTNS		; CONTINUE

            57            50     D0  0059   137 40$:	MOVL	R0,R7			; LOOK TO NEXT ENTRY

                          DC     11  005C   138 	BRB	10$			; CONTINUE

                                     005E   139 50$:	ENBINT				; REENABLE INTERRUPTS

            50         00'8F     9A  0061   140 	MOVZBL	#SS$_NORMAL,R0		; SET NORMAL RETURN

                                 05  0065   141 	RSB

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   5

V06             COM$POST - POST I.O COMPLETION INDEPENDENT OF U                                                                  (4)



                                     0066   143 	.SBTTL	COM$POST - POST I.O COMPLETION INDEPENDENT OF UNIT STATUS

                                     0066   144 ;++

                                     0066   145 ; COM$POST - POST I/O COMPLETION INDEPENDENT OF UNIT STATUS

                                     0066   146 ;

                                     0066   147 ; FUNCTIONAL DESCRIPTION:

                                     0066   148 ;

                                     0066   149 ; THIS ROUTINE IS USED BY THE TERMINAL, MAILBOX AND DMC DRIVER TO COMPLETE

                                     0066   150 ; I/O OPERATIONS INDEPENDENT OF THE STATUS OF THE UNIT. NO ATTEMPT IS MADE

                                     0066   151 ; TO DE-QUEUE ANOTHER PACKET OR CHANGE THE BUSY STATUS OF THE UNIT.

                                     0066   152 ;

                                     0066   153 ; INPUTS:

                                     0066   154 ;

                                     0066   155 ;	R3 = I/O PACKET ADDRESS

                                     0066   156 ;	R5 = UCB ADDRESS

                                     0066   157 ;

                                     0066   158 ; IMPLICIT INPUTS:

                                     0066   159 ;

                                     0066   160 ;	CALLER AT DRIVER FORK IPL OR GREATER.

                                     0066   161 ;	IRP$L_MEDIA AND IRP$L_MEDIA+4 ARE THE IOSB QUAD WORD.

                                     0066   162 ;

                                     0066   163 ; OUTPUTS:

                                     0066   164 ;

                                     0066   165 ;	R0,R1 ARE DISTROYED.

                                     0066   166 ;--

                                     0066   167 COM$POST::				; COMPLETE I/O

                       60 A5     D6  0066   168 	INCL	UCB$L_OPCNT(R5)		; INCREMENT OPERATION COUNT

   00000000'FF            63     0E  0069   169 	INSQUE	(R3),@IOC$GL_PSBL	; INSERT PACKET ON QUEUE

                          03     12  0070   170 	BNEQ	10$			; IF NEQ THEN NOT FIRST

                                     0072   171 	SOFTINT	#IPL$_IOPOST		; REQUEST FORK

                                 05  0075   172 10$:	RSB				; RETURN

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   6

V06             COM$DRVDEALMEM - DEALLOCATE DRIVER MEMORY                                                                        (5)



                                     0076   174 	.SBTTL	COM$DRVDEALMEM - DEALLOCATE DRIVER MEMORY

                                     0076   175 ;++

                                     0076   176 ; COM$DRVDEALMEM - DEALLOCATE DRIVER MEMORY

                                     0076   177 ;

                                     0076   178 ; FUNCTIONAL DESCRIPTION:

                                     0076   179 ;

                                     0076   180 ; THIS ROUTINE IS USED BY DRIVERS TO DEALLOCATE SYSTEM DYNAMIC MEMORY.

                                     0076   181 ;

                                     0076   182 ; IT CAN BE CALLED AT ANY IPL.

                                     0076   183 ;

                                     0076   184 ; INPUTS:

                                     0076   185 ;

                                     0076   186 ;	R0 = ADDRESS OF THE BLOCK TO DEALLOCATE

                                     0076   187 ;

                                     0076   188 ;******************************************************

                                     0076   189 ;

                                     0076   190 ; THE BUFFER MUST BE AT LEAST 24 BYTES LONG!

                                     0076   191 ;

                                     0076   192 ;******************************************************

                                     0076   193 ;

                                     0076   194 ; OUTPUTS:

                                     0076   195 ;

                                     0076   196 ;	R0-R5 ARE PRESERVED.

                                     0076   197 ;--

                                     0076   198 COM$DRVDEALMEM::			; DEALLOCATE DRIVER MEMORY

         08 A0            18     B1  0076   199 	CMPW	#24,8(R0)		; BIG ENOUGH BUFFER TO DEALLOCATE?

                          1E     1A  007A   200 	BGTRU	30$			; IF GTRU THEN NO - ERROR

                          38     BB  007C   201 	PUSHR	#^M<R3,R4,R5>		; SAVE FORKING REGS

         0B A0            06     90  007E   202 	MOVB	#IPL$_QUEUEAST,11(R0)	; INSERT PROPER IPL

            55            50     D0  0082   203 	MOVL	R0,R5			; COPY ADDRESS

                       97'AF     9F  0085   204 	PUSHAB	B^20$			; SET UP RETURN ADDRESS

                 00000000'GF     16  0088   205 	JSB	G^EXE$FORK		; CREATE FORK

                                     008E   206 ;

                                     008E   207 ; IPL$_QUEUEAST FORK ROUTINE

                                     008E   208 ;

            50            55     D0  008E   209 	MOVL	R5,R0			; DEALLOCATE THE BLOCK

                 00000000'GF     17  0091   210 	JMP	G^EXE$DEANONPAGED	;

                          38     BA  0097   211 20$:	POPR	#^M<R3,R4,R5>		;

                                 05  0099   212 	RSB				;

                                     009A   213 ;

                                     009A   214 ; BUGCHECK ON TOO SMALL A BUFFER

                                     009A   215 ;

                                     009A   216 30$:	BUG_CHECK BADDALRQSZ		; BUGCHECK

                                 05  009E   217 	RSB				; CONTINUE

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   7

V06             COM$SETATTNAST - SET UP ATTENTION AST                                                                            (6)



                                     009F   219 	.SBTTL	COM$SETATTNAST - SET UP ATTENTION AST

                                     009F   220 ;++

                                     009F   221 ; COM$SETATTNAST - SET UP ATTENTION AST

                                     009F   222 ;

                                     009F   223 ; FUNCTIONAL DESCRIPTION:

                                     009F   224 ;

                                     009F   225 ; THIS ROUTINE IS A SUBROUTINE USED BY THE TERMINAL AND MAILBOX DRIVERS

                                     009F   226 ; TO PROCESS REQUESTS FOR ENABLE OR DISABLE OF ATTENTION ASTS.

                                     009F   227 ; P1 IS THE ADDRESS OF THE AST SERVICE FOR ENABLES. P1 = 0 FOR DISABLE.

                                     009F   228 ; FOR DISABLES, THE SPECIFIED LIST IS SEARCHED AND THE ENTRY EXTRACTED AND

                                     009F   229 ; DEALLOCATED.

                                     009F   230 ; FOR ENABLES, A CONTROL BLOCK IS SET UP THAT WILL DOUBLE AS THE AST CONTROL

                                     009F   231 ; BLOCK WHEN THE AST IS DELIVERED. THE BLOCK IS FORMATTED AS FOLLOWS:

                                     009F   232 ;

                                     009F   233 ;	ACB$B_RMOD = IPR$_QUEUEAST

                                     009F   234 ;	ACB$L_KAST = AST PC

                                     009F   235 ;	ACB$L_KAST+4 = AST PARAMETER (P2)

                                     009F   236 ;	ACB$L_KAST+8 = ACCESS MODE OF REQUEST

                                     009F   237 ;	ACB$L_KAST+10 = CHANNEL NUMBER

                                     009F   238 ;	ACB$L_KAST+12 = PID OF REQUEST

                                     009F   239 ;

                                     009F   240 ; THE NEW BLOCK IS PLACED AT THE HEAD OF THE CURRENT LIST.

                                     009F   241 ;

                                     009F   242 ; IN BOTH CASES THE I/O IS COMPLETED.

                                     009F   243 ;

                                     009F   244 ; INPUTS:

                                     009F   245 ;

                                     009F   246 ;	R3 = I/O PACKET ADDRESS

                                     009F   247 ;	R4 = CURRENT PCB

                                     009F   248 ;	R5 = UCB ADDRESS

                                     009F   249 ;	R6 = ASSIGNED CCB

                                     009F   250 ;	R7 = ADDRESS OF THE CONTROL AST LIST HEAD TO CHANGE

                                     009F   251 ;	AP = ADDRESS OF THE QIO ARGLIST

                                     009F   252 ;

                                     009F   253 ; OUTPUTS:

                                     009F   254 ;

                                     009F   255 ;	R0 = STATUS OF THE I/O

                                     009F   256 ;	R3 = PACKET ADDRESS

                                     009F   257 ;	R5 = UCB ADDRESS

                                     009F   258 ;

                                     009F   259 ;	NO OTHER REGISTERS ARE PRESERVED.

                                     009F   260 ;

                                     009F   261 ; COMPLETION CODES:

                                     009F   262 ;

                                     009F   263 ;	SS$_NORMAL

                                     009F   264 ;	SS$_EXQUOTA  -- BUFFERED I/O OR AST QUOTA FAILURE

                                     009F   265 ;	SS$_INSUFMEM -- DYNAMIC MEMORY FAILURE

                                     009F   266 ;--

                                     009F   267 COM$SETATTNAST::			; SET UP ATTENTION AST

            56         28 A3     3C  009F   268 	MOVZWL	IRP$W_CHAN(R3),R6	; GET PACKET CHANNEL NUMBER

            58            6C     D0  00A3   269 	MOVL	P1(AP),R8		; GET USER AST ADDRESS

                          8B     13  00A6   270 	BEQL	COM$FLUSHATTNS		; IF EQL THEN DISABLE FUNCTION

                                     00A8   271 ;

                                     00A8   272 ; REQUEST TO ENABLE AST

                                     00A8   273 ;

                                     00A8   274 ; SET UP AST BLOCK

                                     00A8   275 ;

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   8

V06             COM$SETATTNAST - SET UP ATTENTION AST                                                                            (6)



            50       0000'8F     3C  00A8   276 	MOVZWL	#SS$_EXQUOTA,R0		; ASSUME AST QUOTA EXCEEDED

                       3C A4     B5  00AD   277 	TSTW	PCB$W_ASTCNT(R4)	; AST QUOTA ALLOW CONTINUE?

                          52     15  00B0   278 	BLEQ	20$			; IF LEQ THEN NO

                       3C A4     B7  00B2   279 	DECW	PCB$W_ASTCNT(R4)	; ADJUST QUOTA

            51            28     9A  00B5   280 	MOVZBL	#ACB$L_KAST+16,R1	; SET SIZE OF NEEDED BLOCK

                          53     DD  00B8   281 	PUSHL	R3			; SAVE PACKET ADDRESS

                 00000000'GF     16  00BA   282 	JSB	G^EXE$ALLOCBUF		; ALLOCATE THE BUFFERED BLOCK

                          53   8ED0  00C0   283 	POPL	R3			; RESTORE PACKET ADDRESS

            3E            50     E9  00C3   284 	BLBC	R0,20$			; IF LOW SET THEN ALLOCATED

         0B A2            06     90  00C6   285 	MOVB	#IPL$_QUEUEAST,ACB$B_RMOD(R2); INSERT FORK IPL

         18 A2            58     D0  00CA   286 	MOVL	R8,ACB$L_KAST(R2)	; INSERT AST ROUTINE ADDRESS

         1C A2         04 AC     D0  00CE   287 	MOVL	P2(AP),ACB$L_KAST+4(R2)	; INSERT PARAMETER FOR AST

            50         08 AC     9A  00D3   288 	MOVZBL	P3(AP),R0		; GET REQUEST ACCESS MODE

                 00000000'GF     16  00D7   289 	JSB	G^EXE$MAXACMODE		; MAXIMIZE ACCESS MODE

         20 A2            50     9A  00DD   290 	MOVZBL	R0,ACB$L_KAST+8(R2)	; INSERT IN CONTROL BLOCK

         20 A2         40 8F     88  00E1   291 	BISB	#ACB$M_QUOTA,ACB$L_KAST+8(R2); INSERT TARGET ACCESS MODE

         22 A2            56     B0  00E6   292 	MOVW	R6,ACB$L_KAST+10(R2)	; SAVE CHANNEL

         24 A2         60 A4     D0  00EA   293 	MOVL	PCB$L_PID(R4),ACB$L_KAST+12(R2); INSERT PID ADDRESS OF REQUESTOR

                                     00EF   294 ;

                                     00EF   295 ; LOCK OUT INTERRUPTS TO ENTER BLOCK ON UCB

                                     00EF   296 ;

                                     00EF   297 	DSBINT	UCB$B_DIPL(R5)		; LOCK OUT INTERRUPTS

            62            67     D0  00F6   298 	MOVL	(R7),(R2)		;  MERGE WITH CURRENT ENTRY

            67            52     D0  00F9   299 	MOVL	R2,(R7)			; INSERT NEW ENTRY VALUE

                                     00FC   300 	ENBINT				; LOWER IPL

            50         00'8F     9A  00FF   301 	MOVZBL	#SS$_NORMAL,R0		; SET NORMAL RETURN

                                 05  0103   302 	RSB				; RETURN VIA CALLER

                          FEF9'  31  0104   303 20$:	BRW	EXE$ABORTIO		; ABORT THE I/O

                                     0107   304 ;

                                     0107   305 	.END

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (6)



ACB$B_RMOD       0000000B            DYN$C_PQB      = 0000000D            IRP$M_PRIVIO   = 00000200            

ACB$B_TYPE       0000000A            DYN$C_PTR      = 00000025            IRP$M_SWAPIO   = 00000040            

ACB$L_AST        00000010            DYN$C_RVT      = 0000000E            IRP$M_VIRTUAL  = 00000010            

ACB$L_ASTPRM     00000014            DYN$C_SFT      = 00000024            IRP$Q_NT_PRVMSK  0000003C            

ACB$L_ASTQBL     00000004            DYN$C_SSB      = 0000001D            IRP$S_FCODE    = 00000006            

ACB$L_ASTQFL     00000000            DYN$C_TQE      = 0000000F            IRP$S_FMOD     = 0000000A            

ACB$L_KAST       00000018            DYN$C_TYPAHD   = 00000014            IRP$S_MODE     = 00000002            

ACB$L_PID        0000000C            DYN$C_UCB      = 00000010            IRP$V_BUFIO    = 00000000            

ACB$M_QUOTA    = 00000040            DYN$C_VCB      = 00000011            IRP$V_CHAINED  = 00000005            

ACB$S_MODE     = 00000002            DYN$C_WCB      = 00000012            IRP$V_COMPLX   = 00000003            

ACB$V_KAST     = 00000007            EXE$ABORTIO      ********   X   03   IRP$V_DIAGBUF  = 00000007            

ACB$V_MODE     = 00000000            EXE$ALLOCBUF     ********   X   03   IRP$V_FCODE    = 00000000            

ACB$V_QUOTA    = 00000006            EXE$DEANONPAGED  ********   X   03   IRP$V_FMOD     = 00000006            

ACB$W_SIZE       00000008            EXE$FORK         ********   X   03   IRP$V_FUNC     = 00000001            

BIT...         = 00000000            EXE$MAXACMODE    ********   X   03   IRP$V_MBXIO    = 0000000A            

BUG$_BADDALRQSZ  ********   X   03   GBL...         = 00000000            IRP$V_MODE     = 00000000            

CCB$B_AMOD       00000009            IOC$GL_PSBL      ********   X   03   IRP$V_PAGIO    = 00000002            

CCB$B_STS        00000008            IPL$_ASTDEL    = 00000002            IRP$V_PHYSIO   = 00000008            

CCB$C_LENGTH     00000010            IPL$_HWCLK     = 00000018            IRP$V_PRIVIO   = 00000009            

CCB$K_LENGTH     00000010            IPL$_IOPOST    = 00000004            IRP$V_SWAPIO   = 00000006            

CCB$L_DIRP       0000000C            IPL$_MAILBOX   = 0000000B            IRP$V_VIRTUAL  = 00000004            

CCB$L_UCB        00000000            IPL$_POWER     = 0000001F            IRP$W_ABCNT      0000003C            

CCB$L_WIND       00000004            IPL$_QUEUEAST  = 00000006            IRP$W_BCNT       00000032            

CCB$W_IOC        0000000A            IPL$_SCHED     = 00000003            IRP$W_BOFF       00000030            

COM$DELATTNAST   00000000 RG    03   IPL$_SYNCH     = 00000007            IRP$W_CHAN       00000028            

COM$DRVDEALMEM   00000076 RG    03   IPL$_TIMER     = 00000007            IRP$W_FUNC       00000020            

COM$FLUSHATTNS   00000033 RG    03   IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            

COM$POST         00000066 RG    03   IRP$B_EFN        00000022            IRP$W_SIZE       00000008            

COM$SETATTNAST   0000009F RG    03   IRP$B_PRI        00000023            IRP$W_STS        0000002A            

DYN$C_ACB      = 00000002            IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            

DYN$C_ADP      = 00000001            IRP$B_TYPE       0000000A            P1             = 00000000            

DYN$C_AQB      = 00000003            IRP$C_LENGTH     0000004C            P2             = 00000004            

DYN$C_BRDCST   = 0000001A            IRP$K_LENGTH     0000004C            P3             = 00000008            

DYN$C_BUFIO    = 00000013            IRP$L_AST        00000010            P4             = 0000000C            

DYN$C_CEB      = 00000004            IRP$L_ASTPRM     00000014            P5             = 00000010            

DYN$C_CRB      = 00000005            IRP$L_DIAGBUF    00000044            P6             = 00000014            

DYN$C_CXB      = 0000001B            IRP$L_IOQBL      00000004            PCB$B_ASTACT     0000000C            

DYN$C_DDB      = 00000006            IRP$L_IOQFL      00000000            PCB$B_ASTEN      0000000D            

DYN$C_DPT      = 0000001E            IRP$L_IOSB       00000024            PCB$B_PRI        0000000B            

DYN$C_FCB      = 00000007            IRP$L_IOST1      00000034            PCB$B_PRIB       00000033            

DYN$C_FRK      = 00000008            IRP$L_IOST2      00000038            PCB$B_TYPE       0000000A            

DYN$C_GSD      = 00000015            IRP$L_MEDIA      00000034            PCB$B_WEFC       00000032            

DYN$C_IDB      = 00000009            IRP$L_PID        0000000C            PCB$C_LENGTH     0000007C            

DYN$C_IRP      = 0000000A            IRP$L_SEGVBN     00000040            PCB$K_LENGTH     0000007C            

DYN$C_JPB      = 0000001F            IRP$L_SEQNUM     00000048            PCB$L_ASTQBL     00000014            

DYN$C_KFH      = 00000026            IRP$L_SVAPTE     0000002C            PCB$L_ASTQFL     00000010            

DYN$C_KFI      = 00000018            IRP$L_TT_TERM    00000038            PCB$L_EFC2P      00000058            

DYN$C_LOG      = 0000000B            IRP$L_UCB        0000001C            PCB$L_EFC3P      0000005C            

DYN$C_MTL      = 00000019            IRP$L_WIND       00000018            PCB$L_EFCS       00000050            

DYN$C_MVL      = 00000016            IRP$M_BUFIO    = 00000001            PCB$L_EFCU       00000054            

DYN$C_NDB      = 0000001C            IRP$M_CHAINED  = 00000020            PCB$L_EFWM       0000004C            

DYN$C_NET      = 00000017            IRP$M_COMPLX   = 00000008            PCB$L_OWNER      0000001C            

DYN$C_PBH      = 00000020            IRP$M_DIAGBUF  = 00000080            PCB$L_PHD        00000064            

DYN$C_PCB      = 0000000C            IRP$M_FUNC     = 00000002            PCB$L_PHYPCB     00000018            

DYN$C_PDB      = 00000021            IRP$M_MBXIO    = 00000400            PCB$L_PID        00000060            

DYN$C_PFL      = 00000023            IRP$M_PAGIO    = 00000004            PCB$L_PQB        0000004C            

DYN$C_PIB      = 00000022            IRP$M_PHYSIO   = 00000100            PCB$L_SQBL       00000004            

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (6)



PCB$L_SQFL       00000000            PR$_KSP        = 00000000            PRV$V_PSWAPM   = 0000000C            

PCB$L_STS        00000028            PR$_MAPEN      = 00000038            PRV$V_SETPRI   = 0000000D            

PCB$L_UIC        00000020            PR$_NICR       = 00000019            PRV$V_SETPRV   = 0000000E            

PCB$L_WSSWP      00000024            PR$_P0BR       = 00000008            PRV$V_SYSGBL   = 00000019            

PCB$L_WTIME      0000002C            PR$_P0LR       = 00000009            PRV$V_SYSNAM   = 00000002            

PCB$T_LNAME      0000006C            PR$_P1BR       = 0000000A            PRV$V_TMPMBX   = 0000000F            

PCB$V_ASTPEN   = 00000011            PR$_P1LR       = 0000000B            PRV$V_VOLPRO   = 00000015            

PCB$V_BATCH    = 0000000E            PR$_PCBB       = 00000010            PRV$V_WORLD    = 00000010            

PCB$V_DELPEN   = 00000001            PR$_PME        = 0000003D            PSL$C_EXEC     = 00000001            

PCB$V_FORCPEN  = 00000002            PR$_RXCS       = 00000020            PSL$C_KERNEL   = 00000000            

PCB$V_HIBER    = 00000013            PR$_RXDB       = 00000021            PSL$C_SUPER    = 00000002            

PCB$V_INQUAN   = 00000003            PR$_SBIER      = 00000034            PSL$C_USER     = 00000003            

PCB$V_LOGIN    = 00000014            PR$_SBIFS      = 00000030            PSL$M_CM       = 80000000            

PCB$V_NETWRK   = 00000015            PR$_SBIMT      = 00000033            PSL$M_CURMOD   = 03000000            

PCB$V_NOACNT   = 0000000F            PR$_SBIQC      = 00000036            PSL$M_DV       = 00000080            

PCB$V_NODELET  = 00000017            PR$_SBIS       = 00000031            PSL$M_FPD      = 08000000            

PCB$V_PHDRES   = 00000012            PR$_SBISC      = 00000032            PSL$M_FU       = 00000040            

PCB$V_PSWAPM   = 00000004            PR$_SBITA      = 00000035            PSL$M_IPL      = 001F0000            

PCB$V_PWRAST   = 00000016            PR$_SBR        = 0000000C            PSL$M_IS       = 04000000            

PCB$V_RES      = 00000000            PR$_SCBB       = 00000011            PSL$M_IV       = 00000020            

PCB$V_RESPEN   = 00000005            PR$_SID        = 0000003E            PSL$M_PRVMOD   = 00C00000            

PCB$V_SSFEXC   = 00000006            PR$_SIRR       = 00000014            PSL$M_SAFBITS  = 000037FF            

PCB$V_SSFEXCE  = 00000007            PR$_SISR       = 00000015            PSL$M_TBIT     = 00000010            

PCB$V_SSFEXCS  = 00000008            PR$_SLR        = 0000000D            PSL$M_TP       = 40000000            

PCB$V_SSFEXCU  = 00000009            PR$_SSP        = 00000002            PSL$S_CURMOD   = 00000002            

PCB$V_SSRWAIT  = 0000000A            PR$_TBIA       = 00000039            PSL$S_IPL      = 00000005            

PCB$V_SUSPEN   = 0000000B            PR$_TBIS       = 0000003A            PSL$S_PRVMOD   = 00000002            

PCB$V_SWPVBN   = 00000010            PR$_TODR       = 0000001B            PSL$V_CM       = 0000001F            

PCB$V_WAKEPEN  = 0000000C            PR$_TXCS       = 00000022            PSL$V_CURMOD   = 00000018            

PCB$V_WALL     = 0000000D            PR$_TXDB       = 00000023            PSL$V_DV       = 00000007            

PCB$W_APTCNT     00000034            PR$_USP        = 00000003            PSL$V_FPD      = 0000001B            

PCB$W_ASTCNT     0000003C            PR$_WCSA       = 0000002C            PSL$V_FU       = 00000006            

PCB$W_BIOCNT     0000003E            PR$_WCSD       = 0000002D            PSL$V_IPL      = 00000010            

PCB$W_BIOLM      00000040            PRI$_IOCOM     = 00000001            PSL$V_IS       = 0000001A            

PCB$W_BYTCNT     00000042            PRI$_NULL      = 00000000            PSL$V_IV       = 00000005            

PCB$W_BYTLM      00000068            PRI$_RESAVL    = 00000002            PSL$V_PRVMOD   = 00000016            

PCB$W_DIOCNT     00000044            PRI$_TICOM     = 00000004            PSL$V_TBIT     = 00000004            

PCB$W_DIOLM      00000046            PRI$_TIMER     = 00000002            PSL$V_TP       = 0000001E            

PCB$W_FILCNT     00000048            PRI$_TOCOM     = 00000003            RSN$_ASTWAIT   = 00000001            

PCB$W_GPGCNT     00000038            PRV$V_ALLSPOOL = 00000004            RSN$_BRKTHRU   = 00000006            

PCB$W_GRP        00000022            PRV$V_BUGCHK   = 00000017            RSN$_IACLOCK   = 00000007            

PCB$W_MEM        00000020            PRV$V_CMEXEC   = 00000001            RSN$_MAILBOX   = 00000002            

PCB$W_MTXCNT     0000000E            PRV$V_CMKRNL   = 00000000            RSN$_NPDYNMEM  = 00000003            

PCB$W_PPGCNT     0000003A            PRV$V_DETACH   = 00000005            RSN$_PGDYNMEM  = 00000005            

PCB$W_PRCCNT     0000006A            PRV$V_DIAGNOSE = 00000006            RSN$_PGFILE    = 00000004            

PCB$W_SIZE       00000008            PRV$V_EXQUOTA  = 00000013            SCH$QAST         ********   X   03   

PCB$W_STATE      00000030            PRV$V_GROUP    = 00000008            SS$_EXQUOTA      ********   X   03   

PCB$W_TMBU       00000036            PRV$V_GRPNAM   = 00000003            SS$_NORMAL       ********   X   03   

PCB$W_TQCNT      0000004A            PRV$V_LOG_IO   = 00000007            UCB$B_AMOD       00000053            

PR$_ACCR       = 00000029            PRV$V_MOUNT    = 00000011            UCB$B_CEX        00000077            

PR$_ACCS       = 00000028            PRV$V_NETMBX   = 00000014            UCB$B_CM1        0000004A            

PR$_ASTLVL     = 00000013            PRV$V_NOACNT   = 00000009            UCB$B_CM2        0000004B            

PR$_ESP        = 00000001            PRV$V_OPER     = 00000012            UCB$B_DEVCLASS   00000038            

PR$_ICCS       = 00000018            PRV$V_PHY_IO   = 00000016            UCB$B_DEVTYPE    00000039            

PR$_ICR        = 0000001A            PRV$V_PRMCEB   = 0000000A            UCB$B_DIPL       00000052            

PR$_IPL        = 00000012            PRV$V_PRMGBL   = 00000018            UCB$B_DX_SCTCNT  000000A6            

PR$_ISP        = 00000004            PRV$V_PRMMBX   = 0000000B            UCB$B_ERTCNT     00000070            

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (6)



UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            

UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            

UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            

UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            

UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            

UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            

UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            

UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            

UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            

UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            

UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            

UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            

UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            

UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            

UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            

UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            

UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            

UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            

UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            

UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            

UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            

UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            

UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            

UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            

UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            

UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            

UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            

UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            

UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            

UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            

UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            

UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            

UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            

UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            

UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            

UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            

COMDRVSUB       - COMMUNUCATION DRIVERS SUBROUTINES              21-AUG-1978 19:40:06   VAX-11 MACRO X0.3-11               Page  12

PROGRAM SECTION SYNOPSIS                                                                                                         (6)







PROGRAM SECTION SYNOPSIS



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

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

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

WIONONPAGED      00000107      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

12110. BYTES LEFT IN FREE MEMORY POOL.

3364. BYTES OF RECLAIMED MEMORY.

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

9 MLB DIR RDS - 804 GETS TO DEFINE 26 MACROS. 58 INTER. FILE WRITES. 

