RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     132  STARLET AST SERVICE ROUITNES

   (6)     244  POST AST TO IMAGE

   (7)     364  RSX$RETURNAST - RETURN NEXT AST CONTEXT

   (8)     424  GETNEXTAST - GET THE NEXT AST CONTROL BLOCK

   (9)     453  RSX-11M ASTX$ DIRECTIVE

   (10)    563  RSX$SETUPAST - ALLOCATE AN AST CONTROL BLOCK

   (11)    592  I/O DONE AST SERVICE

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   1

V04.0                                                                                                                            (1)



                                     0000     1 	.TITLE	RSXASTSRV - AST SERVICE ROUTINES FOR THE RSX AME

                                     0000     2 	.IDENT	/V04.0/		;

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

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

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

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

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

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

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

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

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

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

                                     0000    17 ; 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 ; FACILITY:

                                     0000    23 ;

                                     0000    24 ;	STARLET RSX AME.

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;

                                     0000    28 ;	STARLET/RSX AST SERVICE ROUTINES AND AST SUPPORT.

                                     0000    29 ;

                                     0000    30 ; AUTHOR:

                                     0000    31 ;

                                     0000    32 ;	R.HEINEN 5-NOV-76

                                     0000    33 ;--

                                     0000    34 ;

                                     0000    35 ; EXTERNAL SYMBOLS

                                     0000    36 ;

                                     0000    37 	$RSXDEF			; DEFINE RSX SYMBOLS

                                     0000    38 	$DEVDEF			; DEFINE DEVICE CHARACTERISTICS

                                     0000    39 	IOERR$			; DEFINE RSX I/O ERROR CODES

                                     0000    40  

                                 00000000    41 	.PSECT	RSXCODE,NOWRT

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   2

V04.0           STARLET AST SERVICE ROUITNES                                                                                     (2)



                                     0000    43 	.SBTTL	STARLET AST SERVICE ROUITNES

                                     0000    44 ;++

                                     0000    45 ; RSX$POWERAST - POWERFAIL AST SERVICE

                                     0000    46 ;

                                     0000    47 ; FUNCTIONAL DESCRIPTION:

                                     0000    48 ;

                                     0000    49 ; THIS ROUTINE IS THE AST SERVICE FOR POWERFAIL AST'S.

                                     0000    50 ; IT IS ENTERED AS A RESULT OF THE IMAGE DOING A SPRA$ DIRECTIVE AND THE

                                     0000    51 ; POWER RECOVERY OCCURING.

                                     0000    52 ; THE AST IS DELIVERED TO THE IMAGE IF THE IMAGE IS STILL ENABLED TO HEAR IT.

                                     0000    53 ; THE IMAGE IS ENABLED IF SV_PWRAST IS SET IN THE CURRENT IMAGE STATUS VECTOR.

                                     0000    54 ;

                                     0000    55 ; INPUTS:

                                     0000    56 ;

                                     0000    57 ;	AP = ADDRESS OF THE AST ARGUMENT LIST ( IGNORED )

                                     0000    58 ;

                                     0000    59 ; OUTPUTS:

                                     0000    60 ;

                                     0000    61 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0000    62 ;

                                     0000    63 ;	THE ADDRESS OF THE POWER FAIL AST CONTEXT BLOCK IS PLACED

                                     0000    64 ;	ON TOP OF THE AP AST ARGUMNET LIST PARAMETER POINTER.

                                     0000    65 ;--

                                     0000    66 RSX$POWERAST::				; POWERFAIL AST SERIVCE

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

            5A       0000'CF     9E  0002    68 	MOVAB	W^RSX$A_IMPURE,R10	; ADDRESS IMPURE DATA AREA

       014C CA            09     E1  0007    69 	BBC	#SV_PWRAST,I_STATE(R10),ASTEXIT; BR IF POWER AST NOT ENABLED

                          2B         000C       

         04 AC       019C CA     D0  000D    70 	MOVL	I_PWRAST(R10),AST_PARAM(AP); ADDRESS CONTEXT BLOCK

                          2B     11  0013    71 	BRB	POSTAST			; POST THE AST

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   3

V04.0           STARLET AST SERVICE ROUITNES                                                                                     (3)



                                     0015    73 ;++

                                     0015    74 ; RSX$RCVAST - DATA IN RCVD$ MAILBOX AST SERVICE

                                     0015    75 ;

                                     0015    76 ; FUNCTIONAL DESCRIPTION:

                                     0015    77 ;

                                     0015    78 ; THIS ROUTINE IS THE AST SERVICE FOR THE RCVA$ DIRECTIVE.

                                     0015    79 ; IT IS ENTERED WHEN AN AST OCCURS BECAUSE A MESSAGE HAS BEEN PLACED IN

                                     0015    80 ; THE IMAGE'S RCVD$ MAILBOX.

                                     0015    81 ; THE AST IS DELIVERED TO THE IMAGE IF IT IS STILL ENABLED TO HEAR IT.

                                     0015    82 ; THE IMAGE IS ENABLED IF SV_RCVAST IS SET IN THE CURRENT IMAGE STATE VECTOR.

                                     0015    83 ;

                                     0015    84 ; INPUTS:

                                     0015    85 ;

                                     0015    86 ;	AP = ADDRESS OF THE AST ARGUMENT LIST 

                                     0015    87 ;

                                     0015    88 ; OUTPUTS:

                                     0015    89 ;

                                     0015    90 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0015    91 ;--

                                     0015    92 RSX$RCVAST::				;

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

            5A       0000'CF     9E  0017    94 	MOVAB	W^RSX$A_IMPURE,R10	; ADDRESS IMPURE DATA AREA

       014C CA            08     E1  001C    95 	BBC	#SV_RCVAST,I_STATE(R10),ASTEXIT; BR IF NOT ENABLED

                          16         0021       

                          1C     11  0022    96 	BRB	POSTAST

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   4

V04.0           STARLET AST SERVICE ROUITNES                                                                                     (4)



                                     0024    98 ;++

                                     0024    99 ; RSX$CTRLCAST - TERMINAL UNSOLICITED DATA AST

                                     0024   100 ;

                                     0024   101 ; FUNCTIONAL DESCRIPTION:

                                     0024   102 ;

                                     0024   103 ; THIS ROUTINE SUPPORTS THE IO.ATA FUNCTION ON TERMINALS.

                                     0024   104 ; IN RSX-11M THIS FUNCTION SIGNALS UNSOLICTED DATA FROM THE TERMINAL.

                                     0024   105 ; SINCE TERMINAL DATA IS BUFFERED AHEAD ON STARLET, A COMPLETE EMULATION

                                     0024   106 ; OF THIS FUNCTION CANNOT BE DONE. THE FUNCTION IN STARLET IS TO

                                     0024   107 ; SET UP AN ENABLE FOR CONTROL C AST ON THE TERMINAL AND THEN DELIVER

                                     0024   108 ; THE AST SIGNALLING A CONTROL C AS THE DATA CHARACTER.

                                     0024   109 ; THE AST IS DELIVERED TO THE IMAGE IF IT IS STILL ENABLED TO HEAR IT.

                                     0024   110 ; THE IMAGE IS ENABLED IF LUTV_CTRLC IS SET IN THE LUT ASSOCIATED WITH

                                     0024   111 ; THE TERMINAL.

                                     0024   112 ;

                                     0024   113 ; INPUTS:

                                     0024   114 ;

                                     0024   115 ;	AST_PARAM(AP) = ADDRESS OF THE AST CONTEXT BLOCK

                                     0024   116 ;

                                     0024   117 ; OUTPUTS:

                                     0024   118 ;

                                     0024   119 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0024   120 ;

                                     0024   121 ;--

                                     0024   122 RSX$CTRLCAST::				; CONTROL C AST

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

            5A       0000'CF     9E  0026   124 	MOVAB	W^RSX$A_IMPURE,R10	; ADDRESS IMPURE DATA BASE

            52         04 AC     D0  002B   125 	MOVL	AST_PARAM(AP),R2	; ADDRESS BLOCK FOR AST

            53         0E A2     D0  002F   126 	MOVL	ACB_FLAGS+2(R2),R3	; ADDRESS LUT OF CHANNEL

         0A A3            02     E0  0033   127 	BBS	#LUTV_CTRLC,LUT_FLAGS(R3),POSTAST; POST IF STILL ENABLED

                          08         0037       

                                     0038   128 ;

                                     0038   129 ; COMMON AST EXIT

                                     0038   130 ;

                                     0038   131 ASTEXIT:

                                 04  0038   132 	RET				;

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   5

V04.0           STARLET AST SERVICE ROUITNES                                                                                     (5)



                                     0039   134 ;++

                                     0039   135 ; RSX$MARKAST - AST SERVICE ROUTINE FOR MARK TIME DIRECTIVE

                                     0039   136 ;

                                     0039   137 ; FUNCTIONAL DESCRIPTION:

                                     0039   138 ;

                                     0039   139 ; THIS ROUTINE IS THE AST SERVICE FOR MARK TIME DIRECTIVES THAT

                                     0039   140 ; REQUESTED AN AST WHEN THE TIMER EXPIRED.

                                     0039   141 ; AN AST IS DELIVERED TO THE IMAGE.

                                     0039   142 ;

                                     0039   143 ; INPUTS:

                                     0039   144 ;

                                     0039   145 ;	AST STACK WITH AST_PARAM = THE AST CONTEXT BLOCK

                                     0039   146 ;

                                     0039   147 ; OUTPUTS:

                                     0039   148 ;

                                     0039   149 ;	SEE BELOW.

                                     0039   150 ;--

                                     0039   151 RSX$MARKAST::				; MARK TIME AST SERVICE

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

            5A       0000'CF     9E  003B   153 	MOVAB	W^RSX$A_IMPURE,R10	; SET UP ADDRESS OF THE IMPURE AREA

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   6

V04.0           POST AST TO IMAGE                                                                                                (6)



                                     0040   155 	.SBTTL	POST AST TO IMAGE

                                     0040   156 ;++

                                     0040   157 ; POSTAST - POST AN AST TO THE CURRENT IMAGE

                                     0040   158 ;

                                     0040   159 ; FUNCTIONAL DESCRIPTION:

                                     0040   160 ;

                                     0040   161 ; THIS ROUTINE IS USED TO POST AN AST TO THE CURRENT IMAGE.

                                     0040   162 ;

                                     0040   163 ; THIS ROUTINE PUTS THE AST CONTEXT BLOCK ON AN AST QUEUE (I_ASTQUEUE)

                                     0040   164 ; AND THEN CHECKS THE STATE OF THE IMAGE WHEN THE AST OCCURED.

                                     0040   165 ;

                                     0040   166 ; IF THE AST OCCURED IN CM ---

                                     0040   167 ;

                                     0040   168 ;	IF THE IMAGE IS NOT AT AST LEVEL AND AST'S ARE ENABLED,

                                     0040   169 ;	THE AST SHOULD BE DELIVERED HERE AND NOW.

                                     0040   170 ;	THIS IS DONE BY OVERWRITING THE AST PC/PSL AND R6

                                     0040   171 ;	AND DOING A RETURN. THE AST IS THUS DELIVERED.

                                     0040   172 ;

                                     0040   173 ; IF THE AST OCCURED IN NATIVE MODE ---

                                     0040   174 ;

                                     0040   175 ;	THE AST SHOULD BE QUEUED UNTIL THE NEXT IMAGE RESTORE IS

                                     0040   176 ;	DONE BY RSX$RESTORE.

                                     0040   177 ;	SPECIAL ATTENTION IS GIVEN TO 2 POSIBLE RSX STATES.

                                     0040   178 ;

                                     0040   179 ;	A. THE RSX IS IN RSX$RESTORE.

                                     0040   180 ;		THE PC IS RESET TO CAUSE THE RESTORE TO BE DONE AGAIN.

                                     0040   181 ;		THIS TEST IS BY INTERLOCK BIT AND PC VALUE.

                                     0040   182 ;

                                     0040   183 ;	B. THE RSX IS IN A WAIT STATE BECAUSE OF A WTSE$ OR WTLO$ DIRECTIVE.

                                     0040   184 ;		THE WAIT CONTEXT IS SAVED AND THE WAIT IS FLUSHED BY CLEARING

                                     0040   185 ;		THE WAIT FOR CONTEXT IN THE IMPURE DATA BASE. THIS OPERATION

                                     0040   186 ;		NEEDS TO BE INTERLOCKED AND A BIT IS USED TO SIGNAL RSX$WAIT

                                     0040   187 ;		TO AVOID THE WAIT IF THIS OCCURS JUST BEFORE THE SETTING

                                     0040   188 ;		OF THE INTERLOCK BIT SV_WAIT.

                                     0040   189 ;

                                     0040   190 ; INPUTS:

                                     0040   191 ;

                                     0040   192 ;	R10 = ADDRESS OF THE IMAGE IMPURE AREA

                                     0040   193 ;	AST_PARAM(AP) = ADDRESS OF THE AST CONTEXT BLOCK AS FOLLOWS:

                                     0040   194 ;

                                     0040   195 ;

                                     0040   196 ;		2 LONG WORDS OF SPACE FOR AST QUEUE

                                     0040   197 ;		1 WORD OF OPTIONAL AST DATA TO BE PLACED ON THE

                                     0040   198 ;			IMAGE STACK AT ACTUAL DELIVERY

                                     0040   199 ;			-1 SIGNALS NO DATA

                                     0040   200 ;		1 WORD OF IMAGE AST PC

                                     0040   201 ;		1 WORD OF TYPE CODE FOR AST POST PROCESSING

                                     0040   202 ;

                                     0040   203 ;

                                     0040   204 ; IMPLICIT INPUTS:

                                     0040   205 ;

                                     0040   206 ; IT IS ASSUMED THAT THE CURRENT STACK FRAME IS THAT OF AN AST.

                                     0040   207 ;

                                     0040   208 ; OUTPUTS:

                                     0040   209 ;

                                     0040   210 ;--

                                     0040   211 POSTAST:				; POST AST

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   7

V04.0           POST AST TO IMAGE                                                                                                (6)



                                     0040   212 ;

                                     0040   213 ; QUEUE AST ON LIST

                                     0040   214 ;

            52         04 AC     D0  0040   215 	MOVL	AST_PARAM(AP),R2	; ADDRESS AST CONTEXT BLOCK

         0C A2            01     E6  0044   216 	BBSSI	#ACBV_INPROG,ACB_FLAGS(R2),50$; SET AST IN PROGRESS

                          61         0048       

       00A4 DA            62     0E  0049   217 	INSQUE	(R2),@I_ASTQUEUE+4(R10)	; QUEUE AST AT TAIL

                                     004E   218 ;

                                     004E   219 ; IF THIS AST IS THE FIRST IN THE LIST THEN CHECK TO SEE IF IT CAN BE DELIVERED

                                     004E   220 ;

                          5A     12  004E   221 	BNEQ	50$			; IF NEQ THEN NOT FIRST IN LIST

                                     0050   222 ;

                                     0050   223 ; TEST TO SEE IF AST POSSIBLE NOW

                                     0050   224 ;

       014C CA            30     D3  0050   225 	BITL	#<1@SV_ASTLVL>!<1@SV_NOAST>,I_STATE(R10); AST LEVEL OR IN PROGRESS?

                          53     12  0055   226 	BNEQ	50$			; IF NEQ THEN YES - NO AST'S

                                     0057   227 ;

                                     0057   228 ; IF AST OCCURED IN NATIVE MODE THEN LEAVE THE AST FOR LATER.

                                     0057   229 ;

         14 AC            1F     E0  0057   230 	BBS	#PSL_CM,AST_PSL(AP),20$	; BR IF IN CM

                          37         005B       

                                     005C   231 ;

                                     005C   232 ;

                                     005C   233 ; AST OCCURED IN NATIVE MODE - IN WAIT FOR?

                                     005C   234 ;

       014C CA            06     E6  005C   235 	BBSSI	#SV_PENDWAIT,I_STATE(R10),5$; SET TO SKIP WAIT

                          00         0061       

       014C CA            07     E1  0062   236 5$:	BBC	#SV_WAIT,I_STATE(R10),10$; BR IF NOT IN WAIT STATE

                          0F         0067       

                                     0068   237 ;

                                     0068   238 ; WAIT FOR IN PROGRESS

                                     0068   239 ;

       015C CA       0154 CA     7D  0068   240 	MOVQ	I_WAIT(R10),I_WAITSAVE(R10); SAVE CURRENT CONTEXT

                                     006F   241 ;

                                     006F   242 ; BY SETTING AN ILLEGAL EVENT FLAG NUMBER THE WAIT WILL BE FLUSHED WHEN

                                     006F   243 ; IT IS RESTARTED. THE I_WAIT AREA IS AN ARG LIST.

                                     006F   244 ;

       0154 CA         80 8F     9A  006F   245 	MOVZBL	#128,I_WAIT(R10)	; SET AN ILLEGAL EVENT FLAG NUMBER

                          33     11  0075   246 	BRB	50$			; EXIT AST

                                     0077   247 ;

                                     0077   248 ; AST OCCURED IN NATIVE MODE - BACK UP THE PC IF IN THE RESTORE ROUTINE

                                     0077   249 ;

            50       0000'CF     9E  0077   250 10$:	MOVAB	W^RSX$RESTORE,R0	; ADDRESS START OF ROUTINE

       014C CA            00     E0  007C   251 	BBS	#SV_RESTORE,I_STATE(R10),15$; BR IF STATE SET

                          0B         0081       

            51       0000'CF     9E  0082   252 	MOVAB	W^RSX$REI,R1		; AT THE REI?

            51         10 AC     D1  0087   253 	CMPL	AST_PC(AP),R1		; 

                          1D     12  008B   254 	BNEQ	50$			; IF NEQ THEN NO

         10 AC            50     D0  008D   255 15$:	MOVL	R0,AST_PC(AP)		; RESET PC FOR RESTORE

                          12     11  0091   256 	BRB	40$			; EXIT THE AST

                                     0093   257 ;

                                     0093   258 ; AST OCCURED IN CM - LEAVE QUEUED IF AST LEVEL ALREADY OR IF AST'S DISABLED

                                     0093   259 ;

            57         10 AC     7D  0093   260 20$:	MOVQ	AST_PC(AP),R7		; GET PC AND PSL

            56         24 AD     D0  0097   261 	MOVL	FP_REGISTERS+16(FP),R6	; GET IMAGE STACK POINTER

                          0E     10  009B   262 	BSBB	RSX$RETURNAST		; IF POSSIBLE, GET AST

         24 AD            56     D0  009D   263 	MOVL	R6,FP_REGISTERS+16(FP)	; RESET R6 FOR RETURN

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   8

V04.0           POST AST TO IMAGE                                                                                                (6)



                                     00A1   264 ;

                                     00A1   265 ; R7,R8 HAVE BEEN UPDATED IF AN AST IS TO BE DONE. OTHERWISE THEY ARE

                                     00A1   266 ; UNCHANGED.

                                     00A1   267 ;

         10 AC            57     7D  00A1   268 	MOVQ	R7,AST_PC(AP)		; SET POSSIBLE NEW PC/PSL

         14 AC            1B     E5  00A5   269 40$:	BBCC	#PSL_FPD,AST_PSL(AP),50$; CLEAR FIRST PART DONE

                          00         00A9       

                                     00AA   270 ;

                                     00AA   271 ; RETURN FROM AST

                                     00AA   272 ;

                                 04  00AA   273 50$:	RET				;

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page   9

V04.0           RSX$RETURNAST - RETURN NEXT AST CONTEXT                                                                          (7)



                                     00AB   275 	.SBTTL	RSX$RETURNAST - RETURN NEXT AST CONTEXT

                                     00AB   276 ;++

                                     00AB   277 ; RSX$RETURNAST - RETURN NEXT AST CONTEXT

                                     00AB   278 ;

                                     00AB   279 ; FUNCTIONAL DESCRIPTION:

                                     00AB   280 ;

                                     00AB   281 ; THIS ROUTINE IS CALLED TO RETURN THE CONTEXT OF THE NEXT AST, IF ANY,

                                     00AB   282 ; TO BE GIVEN TO THE IMAGE. IT IS CALLED BY "POSTAST" ABOVE AND

                                     00AB   283 ; DURING THE DIRECTIVE PROCESSING RESTORE LOGIC.

                                     00AB   284 ; IF AN AST IS TO BE GIVEN, THE PROPER STATE IS SET UP.

                                     00AB   285 ; 

                                     00AB   286 ; INPUTS:

                                     00AB   287 ;

                                     00AB   288 ;	R6 = CURRENT IMAGE STACK POINTER

                                     00AB   289 ;	R7 = CURRENT IMAGE PC

                                     00AB   290 ;	R8 = CURRENT PSL

                                     00AB   291 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     00AB   292 ;	R11 = ADDRESS OF THE IMAGE

                                     00AB   293 ;

                                     00AB   294 ; OUTPUTS:

                                     00AB   295 ;

                                     00AB   296 ;	R0 = STATUS OF OPERATION

                                     00AB   297 ;	R6 = NEW STACK POINTER

                                     00AB   298 ;	R7 = NEW PC

                                     00AB   299 ;	R8 = NEW PSL

                                     00AB   300 ;	R10,R11 ARE PRESERVED.

                                     00AB   301 ;--

                                     00AB   302 RSX$RETURNAST::				; GET NEXT AST CONTEXT

                                     00AB   303 ;

                                     00AB   304 ; DE-QUEUE THE NEXT AST

                                     00AB   305 ;

                          53     10  00AB   306 5$:	BSBB	GETNEXTAST		; CALL SUBROUTINE TO FIND NEXT AST

            45            50     E9  00AD   307 	BLBC	R0,30$			; IF LOW CLEAR AST'S NOT ALLOWED OR NONE FOUND

                                     00B0   308 ;

                                     00B0   309 ; SET UP FOR AST

                                     00B0   310 ;

       014C CA            05     E6  00B0   311 	BBSSI	#SV_ASTLVL,I_STATE(R10),15$; SET AST LEVEL

                          00         00B5       

                                     00B6   312 ;

                                     00B6   313 ; SET UP STACK FOR AST

                                     00B6   314 ;

                                     00B6   315 15$:	IFNOWRT	#14,-14(R6),60$		; BR IF STACK NOT WRITABLE

         0C A2            01     E7  00BD   316 	BBCCI	#ACBV_INPROG,ACB_FLAGS(R2),20$; SET NO LONGER IN PROGRESS

                          00         00C1       

                          76     7C  00C2   317 20$:	CLRQ	-(R6)			; SET UP WAIT FOR FAKE WORDS

            76            58     B0  00C4   318 	MOVW	R8,-(R6)		; PUT AST PSL ON STACK

            76            57     B0  00C7   319 	MOVW	R7,-(R6)		; PUT AST PC ON STACK

            76         26 AB     B0  00CA   320 	MOVW	H.DSW(R11),-(R6)	; PUT AST DSW ON STACK

       FFFF 8F         08 A2     B1  00CE   321 	CMPW	ACB_UPRM(R2),#-1	; AND AST DATA?

                          0B     13  00D4   322 	BEQL	25$			; IF EQL THEN NO

                                     00D6   323 	IFNOWRT	#2,-2(R6),60$		; WRITABLE STACK?

            76         08 A2     B0  00DD   324 	MOVW	ACB_UPRM(R2),-(R6)	; PUT IT ON THE STACK

            58   83C00000 8F     D0  00E1   325 25$:	MOVL	#C_CANONPS,R8		; SET UP NEW PSL

            57         0A A2     3C  00E8   326 	MOVZWL	ACB_UPC(R2),R7		; SET UP NEW PC

            50         00'8F     9A  00EC   327 	MOVZBL	#SS$_NORMAL,R0		; SET NORMAL STATUS

       0194 CA            52     D0  00F0   328 	MOVL	R2,I_CURAST(R10)	; SAVE CURRENT AST CONTEXT

                                 05  00F5   329 30$:	RSB				; RETURN

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  10

V04.0           RSX$RETURNAST - RETURN NEXT AST CONTEXT                                                                          (7)



                                     00F6   330 ;

                                     00F6   331 ; STACK NOT WRITABLE

                                     00F6   332 ;

                                     00F6   333 60$:	$IMAGEABORT	#RSX$_BADSTACK

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  11

V04.0           GETNEXTAST - GET THE NEXT AST CONTROL BLOCK                                                                      (8)



                                     0100   335 	.SBTTL GETNEXTAST - GET THE NEXT AST CONTROL BLOCK

                                     0100   336 ;++

                                     0100   337 ; GETNEXTAST - GET NEXT AVAILABLE AST CONTROL BLOCK

                                     0100   338 ;

                                     0100   339 ; FUNCTIONAL DESCRIPTION:

                                     0100   340 ;

                                     0100   341 ; THIS ROUTINE IS USED BY RSX$RETURNAST AND RSX$ASTX TO DEQUEUE THE

                                     0100   342 ; NEXT AST CONTROL BLOCK OR RETURN FAILURE. 

                                     0100   343 ;

                                     0100   344 ; INPUTS:

                                     0100   345 ;

                                     0100   346 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0100   347 ;	R11 = ADDRESS OF THE IMAGE

                                     0100   348 ;

                                     0100   349 ; OUTPUTS:

                                     0100   350 ;

                                     0100   351 ;	R0 = STATUS OF THE OPERATION

                                     0100   352 ;	R2 = THE ADDRESS OF THE AST CONTROL BLOCK IF ANY

                                     0100   353 ;	R10,R11 ARE PRESERVED.

                                     0100   354 ;--

                                     0100   355 GETNEXTAST:

                          50     D4  0100   356 	CLRL	R0			; SET NO AST FOUND STATUS

       014C CA            30     D3  0102   357 	BITL	#<1@SV_ASTLVL>!<1@SV_NOAST>,I_STATE(R10); AST'S ALLOWED?

                          09     12  0107   358 	BNEQ	20$			; IF NEQ THEN NO

            52       00A0 DA     0F  0109   359 5$:	REMQUE	@I_ASTQUEUE(R10),R2	; GET THE NEXT AST CONTROL BLOCK

                          02     1D  010E   360 	BVS	20$			; IF V-SET THEN NONE

                          50     D6  0110   361 	INCL	R0			; SET SUCCESS

                                 05  0112   362 20$:	RSB				; RETURN

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  12

V04.0           RSX-11M ASTX$ DIRECTIVE                                                                                          (9)



                                     0113   364 	.SBTTL	RSX-11M ASTX$ DIRECTIVE

                                     0113   365 ;++

                                     0113   366 ; RSX$ASTX - RSX-11M AST EXIT DIRECTIVE

                                     0113   367 ;

                                     0113   368 ; FUNCTIONAL DESCRIPTION:

                                     0113   369 ;

                                     0113   370 ; THIS IS A RSX DIRECTIVE HANDLER WHICH IMPLEMENTS AN RSX-11M

                                     0113   371 ; "ASTX$" DIRECTIVE.

                                     0113   372 ;

                                     0113   373 ; THE ACTION IS TO VERIFY THAT THE DIRECTIVE IS LEGAL AND THEN

                                     0113   374 ; DISMANTLE THE RSX-11M AST STACK (R6).

                                     0113   375 ;

                                     0113   376 ; RETURN TO THE DIRECTIVE RESTORE LOGIC WILL DELIVER ANY PENDING AST'S.

                                     0113   377 ;

                                     0113   378 ; CALLING SEQUENCE:

                                     0113   379 ;

                                     0113   380 ;	CALLED VIA CASE FROM "RSX$EXCEPTION".

                                     0113   381 ;

                                     0113   382 ; INPUT PARAMETERS:

                                     0113   383 ;

                                     0113   384 ;	R5 = ADDRESS OF DPB+2

                                     0113   385 ;	R6 = CM IMAGE STACK ADDRESS

                                     0113   386 ;	R10 = ADDRESS OF CM IMAGE DATA BASE

                                     0113   387 ;	R11 = ADDRESS OF IMAGE HEADER

                                     0113   388 ;

                                     0113   389 ; IMPLICIT INPUTS:

                                     0113   390 ;

                                     0113   391 ;	THE DPB IS ALREADY VALIDATED FOR READ ACCESS.

                                     0113   392 ;	THE DPB SIZE AND TYPE ARE CORRECT.

                                     0113   393 ;

                                     0113   394 ; OUTPUT PARAMETERS:

                                     0113   395 ;

                                     0113   396 ;	R10,R11 ARE PRESERVED

                                     0113   397 ;

                                     0113   398 ; IMPLICIT OUTPUTS:

                                     0113   399 ;

                                     0113   400 ;	THE PROPER DIRECTIVE STATUS IS PLACED IN THE IMAGE DSW

                                     0113   401 ;	ALONG WITH THE PROPER SETTING OF THE C-BIT.

                                     0113   402 ;

                                     0113   403 ; COMPLETION CODES:

                                     0113   404 ;

                                     0113   405 ;	IS.SUC	SUCCESSFUL

                                     0113   406 ;	IE.AST	NOT ISSUED FROM AST SERIVCE

                                     0113   407 ;--

                                     0113   408 RSX$ASTX::				; AST SERVICE EXIT DIRECTIVE

                                     0113   409 ;

                                     0113   410 ; THIS BIT IS SET BY THE AST DELIVERY LOGIC ABOVE.

                                     0113   411 ;

       014C CA            05     E4  0113   412 	BBSC	#SV_ASTLVL,I_STATE(R10),10$; AST LEVEL?

                          0B         0118       

                                     0119   413 ;

                                     0119   414 ; NOT AT AST LEVEL

                                     0119   415 ;

                                     0119   416 	$DSW	#IE.AST			; SET STATUS AND RETURN

                                     0124   417 ;

                                     0124   418 ; IF PRESENT AST IS A PERMANENT AST THEN RE-ENABLE IT'S FUNCTION

                                     0124   419 ;

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  13

V04.0           RSX-11M ASTX$ DIRECTIVE                                                                                          (9)



            52       0194 CA     D0  0124   420 10$:	MOVL	I_CURAST(R10),R2	; GET ADDRESS OF THE CURRENT AST CONTEXT

         0C A2            00     E1  0129   421 	BBC	#ACBV_PERM,ACB_FLAGS(R2),40$; BR IF NOT PERMANENT AST

                          12         012D       

                                     012E   422 ;

                                     012E   423 ; PERMANENT AST - SEPARATE ON TYPE

                                     012E   424 ;

            53         0D A2     9A  012E   425 	MOVZBL	ACB_FLAGS+1(R2),R3	; GET TYPE CODE

                       45'AF     9F  0132   426 	PUSHAB	B^45$			; SET ADDRESS TO CONTINUE AT

                                     0135   427 	CASE	R3,<-			;

                                     0135   428 		RSX$POWEREN,-		; POWER AST

                                     0135   429 		RSX$RCVASTEN,-		; RECEIVE AST

                                     0135   430 		RSX$CTRLCASTEN,-	; CONTROL C ENABLES

                                     0135   431 		>

                                 05  013F   432 20$:	RSB				;

                                     0140   433 ;

                                     0140   434 ; NON PERMANENT AST

                                     0140   435 ;

       00A8 CA            62     0E  0140   436 40$:	INSQUE	(R2),I_ASTPOOL(R10)	; DEALLOCATE THE CONTEXT BLOCK

                                     0145   437 ;

                                     0145   438 ; TEST ACCESS TO STACK

                                     0145   439 ;

                                     0145   440 45$:	IFNORD	#14,(R6),70$		; IF STACK CANNOT BE READ THEN ERROR

                                     014B   441 ;

                                     014B   442 ; REMOVE DSW FROM STACK

                                     014B   443 ;

                          86     B5  014B   444 	TSTW	(R6)+			; TAKE DSW OFF

       0184 CA            86     3C  014D   445 	MOVZWL	(R6)+,I_PC(R10)		; SET PC TO RETURN TO ON EXIT

            86       FFE0 8F     AB  0152   446 	BICW3	#^X0FFE0,(R6)+,I_PS(R10); GET NEW IMAGE PSW

                     0188 CA         0157       

            56            08     C0  015A   447 	ADDL	#8,R6			; REMOVE REMAINDER OF AST FROM STACK

                                     015D   448 ;

                                     015D   449 ; ANOTHER AST TO DELIVER?

                                     015D   450 ;

                          A1     10  015D   451 50$:	BSBB	GETNEXTAST		; FIND THE NEXT AST IF ANY

            0A            50     E8  015F   452 	BLBS	R0,55$			; IF LOW SET THEN AST TO DELIVER

                                     0162   453 ;

                                     0162   454 ; PRESENT AST IS THE LAST.

                                     0162   455 ;

                                     0162   456 ; SEE IF THE PRESENT AST INTERRUPTED A WAIT IN PROGRESS.

                                     0162   457 ;

            51       015C CA     7D  0162   458 	MOVQ	I_WAITSAVE(R10),R1	; WAIT INTERRUPTED?

                          08     13  0167   459 	BEQL	60$			; IF EQL THEN NO WAIT NEEDED

                          FE94'  31  0169   460 	BRW	RSX$WAIT		; DO WAIT NOW

                                     016C   461 ;

                                     016C   462 ; AST FOUND TO DELIVER - REQUEUE IT AT FRONT OF AST LIST

                                     016C   463 ;

       00A0 CA            62     0E  016C   464 55$:	INSQUE	(R2),I_ASTQUEUE(R10)	; QUEUE AST TO HEAD OF LIST

                                     0171   465 ;

                                     0171   466 ; COMMON AST EXIT

                                     0171   467 ;

                                 05  0171   468 60$:	RSB				; AND RETURN

                                     0172   469 ;

                                     0172   470 ; BAD STACK

                                     0172   471 ;

                                     0172   472 70$:	$IMAGEABORT	#RSX$_BADSTACK

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  14

V04.0           RSX$SETUPAST - ALLOCATE AN AST CONTROL BLOCK                                                                    (10)



                                     017C   474 	.SBTTL	RSX$SETUPAST - ALLOCATE AN AST CONTROL BLOCK

                                     017C   475 ;++

                                     017C   476 ; RSX$SETUPAST - ALLOCATE AND SET UP AST CONTEXT BLOCK

                                     017C   477 ;

                                     017C   478 ; FUNCTIONAL DESCRIPTION:

                                     017C   479 ;

                                     017C   480 ; THIS ROUTINE ALLOCATES AN AST CONTEXT BLOCK.

                                     017C   481 ;

                                     017C   482 ; THIS ROUTINE IS NEVER CALLED AT AST LEVEL.

                                     017C   483 ;

                                     017C   484 ;

                                     017C   485 ; INPUT:

                                     017C   486 ;

                                     017C   487 ;	R10 = ADDRESS OF THE IMAGE DATA BASE

                                     017C   488 ;	R11 = ADDRESS OF THE IMAGE HEADER

                                     017C   489 ;

                                     017C   490 ; OUTPUTS:

                                     017C   491 ;

                                     017C   492 ;	R2 = ADDRESS OF THE BLOCK ALLOCATED

                                     017C   493 ;	R10,R11 ARE PRESERVED.

                                     017C   494 ;--

                                     017C   495 RSX$SETUPAST::				;

            52       00A8 DA     0F  017C   496 	REMQUE	@I_ASTPOOL(R10),R2	; GET A BLOCK

                          09     1C  0181   497 	BVC	30$			; IF VSET THEN NONE

            51            22     9A  0183   498 	MOVZBL	#QIO_SIZE,R1		; SET SIZE TO ALLOCATE

                          FE77'  30  0186   499 	BSBW	RSX$ALLOCATE		; ALLOCATE THE BLOCK

            52            50     D0  0189   500 	MOVL	R0,R2			; COPY ADDRESS OF ALLOCATED BLOCK

                                 05  018C   501 30$:	RSB				; RETURN

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  15

V04.0           I/O DONE AST SERVICE                                                                                            (11)



                                     018D   503 	.SBTTL	I/O DONE AST SERVICE

                                     018D   504 ;++

                                     018D   505 ; RSX$IODONEAST - I/O DONE AST SERVICE

                                     018D   506 ;

                                     018D   507 ; FUNCTIONAL DESCRIPTION:

                                     018D   508 ;

                                     018D   509 ; THIS ROUTINE IS ENTERED ON I/O DONE FOR ALL RSX-11M I/O OPERATIONS.

                                     018D   510 ; THE ACTION IS TO POST THE CORRECT RSX-11M STATUS IN THE IOSB OF THE

                                     018D   511 ; QIO REQUEST. THEN IF NECESSARY, THE ASSOCIATED IMAGE AST IS POSTED.

                                     018D   512 ;

                                     018D   513 ; INPUTS:

                                     018D   514 ;

                                     018D   515 ;	THE ADDRESS OF THE AST CONTEXT BLOCK IS AT AST_PARAM(AP).

                                     018D   516 ;

                                     018D   517 ; OUTPUTS:

                                     018D   518 ;

                                     018D   519 ;	NONE.

                                     018D   520 ;

                                     018D   521 ;--

                                     018D   522 RSX$IODONEAST::				; I/O DONE AST SERVICE

                               0FFC  018D   523 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

            5A       0000'CF     9E  018F   524 	MOVAB	W^RSX$A_IMPURE,R10	; ADDRESS IMPURE DATA BASE

                          5B     D4  0194   525 	CLRL	R11			; ADDRESS IMAGE

                                     0196   526 ;

                                     0196   527 ; GET THE AST CONTEXT BLOCK

                                     0196   528 ;

            52         04 AC     D0  0196   529 	MOVL	AST_PARAM(AP),R2	; ADDRESS THE CONTEXT BLOCK

                                     019A   530 ;

                                     019A   531 ; IF THIS IS A FILE I/O OPERATION THEN INTERPRET THE FCB

                                     019A   532 ;

         1C A2            00     E1  019A   533 	BBC	#QIOV_FILES,QIO_FLAGS(R2),50$; BR IF NOT FILES ORIENTED

                          19         019E       

                                     019F   534 ;

                                     019F   535 ; FILE I/O OPERATION

                                     019F   536 ;

            53         1E A2     D0  019F   537 	MOVL	QIO_SECONDBLK(R2),R3	; ADDRESS FCB FOR OPERATION

            08         0E A2     E9  01A3   538 	BLBC	QIO_IOSB(R2),20$	; IF NOT SUCCESSFUL OPERATION BR

                                     01A7   539 ;

                                     01A7   540 ; ENTER FUNCTION SPECIFIC I/O DONE ROUTINE

                                     01A7   541 ;

            50         78 A3     D0  01A7   542 	MOVL	FCB_PC(R3),R0		; ADDRESS THE ROUTINE

                          02     13  01AB   543 	BEQL	20$			; IF EQL THEN NONE

                          60     16  01AD   544 	JSB	(R0)			; GO TO IT

                                     01AF   545 ;

                                     01AF   546 ; I/O DONE PROCESSING DONE OR UNSUCCESSFUL FUNCTION

                                     01AF   547 ;

       00B0 CA            63     0E  01AF   548 20$:	INSQUE	(R3),I_FCBPOOL(R10)	; DEALLOCATE THE BLOCK

            52         04 AC     D0  01B4   549 	MOVL	AST_PARAM(AP),R2	; ADDRESS CONTEXT BLOCK AGAIN

                                     01B8   550 ;

                                     01B8   551 ; POST THE STATUS IN THE IOSB

                                     01B8   552 ;

            58         08 A2     3C  01B8   553 50$:	MOVZWL	ACB_UPRM(R2),R8		; GET ADDRESS OF IOSB

                          44     13  01BC   554 	BEQL	100$			; IF EQL THEN NONE

                                     01BE   555 ;

                                     01BE   556 ; TEST ACCESS TO USER IOSB

                                     01BE   557 ;

                                     01BE   558 	IFNOWRT	#4,(R8),100$		; TEST ACCESS BEFORE WRITE

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  16

V04.0           I/O DONE AST SERVICE                                                                                            (11)



                          68     D4  01C4   559 	CLRL	(R8)			; SET TO ZERO

                                     01C6   560 ;

                                     01C6   561 ; MAP THE STARLET STATUS CODE TO AN RSX CODE

                                     01C6   562 ;

            50         0E A2     3C  01C6   563 	MOVZWL	QIO_IOSB(R2),R0		; GET THE STATUS

                          FE33'  30  01CA   564 	BSBW	RSX$RSXQIOERR		; MAP THE STATUS

         02 A8         10 A2     B0  01CD   565 	MOVW	QIO_IOSB+2(R2),2(R8)	; INSERT APPARENT TRANSFER SIZE

            68            51     9B  01D2   566 	MOVZBW	R1,(R8)			; INSERT STATUS IN HIS IOSB

                                     01D5   567 ;

                                     01D5   568 ; ENTER DEVICE DEPENDENT STATUS POSTING ROUTINES

                                     01D5   569 ;

            53         16 A2     D0  01D5   570 65$:	MOVL	QIO_LUT(R2),R3		; ADDRESS THE LUT

                                     01D9   571 ;

                                     01D9   572 ; ENTER DEVICE DEPENDENT CODE FOR STATUS MAP

                                     01D9   573 ;

                                     01D9   574 	CASE	LUT_TYPE(R3),TYPE=B,-

                                     01D9   575 		<-

                                     01D9   576 		70$,-			; RMS

                                     01D9   577 		70$,-			; TERMINALS

                                     01D9   578 		>

                          1E     11  01E2   579 	BRB	100$			;

                                     01E4   580 ;

                                     01E4   581 ; MAP TERMINAL STATUS RETURNS

                                     01E4   582 ;

         01 A8         12 A2     90  01E4   583 70$:	MOVB	QIO_IOSB+4(R2),1(R8)	; INSERT TERMINATOR

         12 A2            1A     91  01E9   584 	CMPB	#26,QIO_IOSB+4(R2)	; CONTROL Z?

                          06     12  01ED   585 	BNEQ	75$			; IF NEQ THEN NO

            68         F6 8F     99  01EF   586 	CVTBW	#IE.EOF,(R8)		; SET IE.EOF

                          0D     11  01F3   587 	BRB	100$			; CONTINUE

            01         14 A2     91  01F5   588 75$:	CMPB	QIO_IOSB+6(R2),#1	; ONE TERMINATOR?

                          07     13  01F9   589 	BEQL	100$			; IF EQL THEN YES

            68       8000 8F     B3  01FB   590 	BITW	#^X08000,(R8)		; SET ESCAPE SEQUENCE

                          00     11  0200   591 	BRB	100$			; CONTINUE

                                     0202   592 ;

                                     0202   593 ; DELIVER AST IF NEEDED

                                     0202   594 ;

                       0A A2     B5  0202   595 100$:	TSTW	ACB_UPC(R2)		; AST TO DELIVER?

                          06     12  0205   596 	BNEQ	110$			; IF NEQ THEN YES

       00A8 CA            62     0E  0207   597 	INSQUE	(R2),I_ASTPOOL(R10)	; DEALLOCATE THE AST BLOCK

                                 04  020C   598 105$:	RET				; RETURN

                          FE30   31  020D   599 110$:	BRW	POSTAST			; POST THE AST FOR THE USER

                                     0210   600 ;

                                     0210   601 	.END

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                    (11)



$$MSG          = 00000000            DEV$V_ELG      = 00000016            H.OVLY           0000002C            

...GBL         = 00000000            DEV$V_FOD      = 0000000E            H.PFVA           0000001A            

ACBC_CTLRCAST  = 00000002            DEV$V_FOR      = 00000018            H.RCVA           0000001E            

ACBC_FLOATAST  = 00000003            DEV$V_GEN      = 00000011            H.RRVA           00000032            

ACBC_PWRAST    = 00000000            DEV$V_IDV      = 0000001A            H.SPRI           00000030            

ACBC_RCVAST    = 00000001            DEV$V_MBX      = 00000014            H.TKVA           00000016            

ACBV_INPROG    = 00000001            DEV$V_MNT      = 00000013            H.TKVL           00000018            

ACBV_PERM      = 00000000            DEV$V_NET      = 0000000D            H.VEXT           0000002E            

ACBV_TYPE      = 00000008            DEV$V_ODV      = 0000001B            H.WND            00000024            

ACB_FLAGS        0000000C            DEV$V_RCK      = 0000001E            IE.2DV         = FFFFFFD0            

ACB_LINK         00000000            DEV$V_REC      = 00000000            IE.ABO         = FFFFFFF1            

ACB_UPC          0000000A            DEV$V_RND      = 0000001C            IE.ALC         = FFFFFFAC            

ACB_UPRM         00000008            DEV$V_RTM      = 0000001D            IE.ALN         = FFFFFFDE            

ADR_HIGHLIM      00000004            DEV$V_SDI      = 00000004            IE.AST         = FFFFFFB0            

ADR_LOWLIM       00000000            DEV$V_SHR      = 00000010            IE.BAD         = FFFFFFFF            

ADR_SIZE         00000008            DEV$V_SPL      = 00000006            IE.BBE         = FFFFFFC8            

AP_NAME          00000004            DEV$V_SQD      = 00000005            IE.BCC         = FFFFFFBE            

ASTEXIT          00000038 R     05   DEV$V_SWL      = 00000019            IE.BDI         = FFFFFFCC            

AST_PARAM        00000004            DEV$V_TRM      = 00000002            IE.BDR         = FFFFFFCE            

AST_PC           00000010            DEV$V_WCK      = 0000001F            IE.BDV         = FFFFFFC9            

AST_PSL          00000014            FCB_ATTRIBS      0000007C            IE.BHD         = FFFFFFC0            

AST_R0           00000008            FCB_FIB          0000004C            IE.BLB         = FFFFFFBA            

AST_R1           0000000C            FCB_FID          00000000            IE.BLK         = FFFFFFEC            

BIT...         = 00000020            FCB_FNAME        00000014            IE.BNM         = FFFFFFCA            

C$$ORE         = 00000000            FCB_FNAMEDESC    0000000C            IE.BTF         = FFFFFFB4            

C_CANONPS      = 83C00000            FCB_FNB          00000002            IE.BTP         = FFFFFFD5            

C_RCVDSTR      = 44564352            FCB_PC           00000078            IE.BVR         = FFFFFFC1            

DEV$M_ALL      = 00800000            FCB_RESULT       00000030            IE.BYT         = FFFFFFED            

DEV$M_AVL      = 00040000            FCB_RESULTDESC   00000004            IE.CKS         = FFFFFFE2            

DEV$M_CCL      = 00000002            FCB_SIZE         000000B4            IE.CLO         = FFFFFFDA            

DEV$M_DIR      = 00000008            FP_AP            00000008            IE.CNR         = FFFFFFB7            

DEV$M_DMT      = 00200000            FP_FP            0000000C            IE.CON         = FFFFFFEA            

DEV$M_ELG      = 00400000            FP_PC            00000010            IE.DAA         = FFFFFFF8            

DEV$M_FOD      = 00004000            FP_PSL           00000004            IE.DAO         = FFFFFFF3            

DEV$M_FOR      = 01000000            FP_REGISTERS     00000014            IE.DFU         = FFFFFFE8            

DEV$M_GEN      = 00020000            GBL...         = 00000000            IE.DNA         = FFFFFFF9            

DEV$M_IDV      = 04000000            GETNEXTAST       00000100 R     05   IE.DNR         = FFFFFFFD            

DEV$M_MBX      = 00100000            H.CSP            00000000            IE.DUN         = FFFFFFF7            

DEV$M_MNT      = 00080000            H.CUIC           00000008            IE.DUP         = FFFFFFC7            

DEV$M_NET      = 00002000            H.DSW            00000026            IE.EOF         = FFFFFFF6            

DEV$M_ODV      = 08000000            H.DUIC           0000000A            IE.EOT         = FFFFFFC2            

DEV$M_RCK      = 40000000            H.EFLM           00000004            IE.EOV         = FFFFFFF5            

DEV$M_REC      = 00000001            H.EFSV           00000020            IE.EXP         = FFFFFFB5            

DEV$M_RND      = 10000000            H.FCS            00000028            IE.FEX         = FFFFFFCF            

DEV$M_RTM      = 20000000            H.FORT           0000002A            IE.FHE         = FFFFFFC5            

DEV$M_SDI      = 00000010            H.FPSA           00000022            IE.FLN         = FFFFFFAF            

DEV$M_SHR      = 00010000            H.FPVA           0000001C            IE.FOP         = FFFFFFCB            

DEV$M_SPL      = 00000040            H.GARD           0000003A            IE.HFU         = FFFFFFE4            

DEV$M_SQD      = 00000020            H.HDLN           00000002            IE.IES         = FFFFFFAE            

DEV$M_SWL      = 02000000            H.IPC            0000000E            IE.IFC         = FFFFFFFE            

DEV$M_TRM      = 00000004            H.IPS            0000000C            IE.IFU         = FFFFFFE7            

DEV$M_WCK      = 80000000            H.ISP            00000010            IE.ILL         = FFFFFFD6            

DEV$V_ALL      = 00000017            H.LUN            0000003E            IE.ISQ         = FFFFFFC3            

DEV$V_AVL      = 00000012            H.NLUN           0000003C            IE.LCK         = FFFFFFE5            

DEV$V_CCL      = 00000001            H.NML            00000031            IE.MOD         = FFFFFFEB            

DEV$V_DIR      = 00000003            H.ODVA           00000012            IE.NBF         = FFFFFFD9            

DEV$V_DMT      = 00000015            H.ODVL           00000014            IE.NBK         = FFFFFFD7            

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                    (11)



IE.NDR         = FFFFFFB8            I_FCBPOOL        000000B0            LUT_INFONAME     00000030            

IE.NFI         = FFFFFFC4            I_FCC            000001B0            LUT_INFOUNIT     00000032            

IE.NFW         = FFFFFFBB            I_FLOATA0        000001BC            LUT_LINK         00000000            

IE.NLK         = FFFFFFB1            I_FLOATA1        000001C4            LUT_REALNAME     00000020            

IE.NLN         = FFFFFFDB            I_FLOATA2        000001CC            LUT_REF          00000008            

IE.NNC         = FFFFFFB3            I_FLOATA3        000001D4            LUT_RSXNAME      00000010            

IE.NNL         = FFFFFFB2            I_FLOATA4        000001DC            LUT_RSXUNIT      00000012            

IE.NNN         = FFFFFFBC            I_FLOATA5        000001E4            LUT_SIZE         00000038            

IE.NOD         = FFFFFFE9            I_FLOATADR       000001AC            LUT_TYPE         00000018            

IE.NSF         = FFFFFFE6            I_FLOATAST       000001A0            LUT_UNIT         00000020            

IE.NST         = FFFFFFB0            I_FLOATCSR       000001A4            POSTAST          00000040 R     05   

IE.OFL         = FFFFFFBF            I_FLOATERR       000001A8            PSL_CC         = 00000000            

IE.ONP         = FFFFFFFB            I_FLOATTMP       000001B4            PSL_CM         = 0000001F            

IE.OVR         = FFFFFFEE            I_GARD           000000C8            PSL_FPD        = 0000001B            

IE.PES         = FFFFFFAD            I_HIGHEFN        00000148            PSL_FU         = 00000006            

IE.PRI         = FFFFFFF0            I_HIGHSIZE       000000D0            PSL_TBIT       = 00000004            

IE.RAC         = FFFFFFD4            I_IMAGEVBN       000000D4            QIOV_FILES     = 00000000            

IE.RAT         = FFFFFFD3            I_INISIZE        000000CC            QIO_FLAGS        0000001C            

IE.RBG         = FFFFFFD8            I_LENGTH         000001EC            QIO_FUNCTION     0000001A            

IE.RCN         = FFFFFFD2            I_LOGNAME        000000B8            QIO_IOSB         0000000E            

IE.RER         = FFFFFFE0            I_LUT            00000144            QIO_LUT          00000016            

IE.RNM         = FFFFFFCD            I_NLUN           00000140            QIO_SECONDBLK    0000001E            

IE.RSU         = FFFFFFEF            I_PC             00000184            QIO_SIZE         00000022            

IE.SNC         = FFFFFFDD            I_PROCNAME       00000128            RSX$ABORT        ********   X   05   

IE.SPC         = FFFFFFFA            I_PS             00000188            RSX$ALLOCATE     ********   X   05   

IE.SQC         = FFFFFFDC            I_PWRAST         0000019C            RSX$ASTX         00000113 RG    05   

IE.SRE         = FFFFFFF2            I_R0             00000164            RSX$A_IMPURE     ********   X   05   

IE.STK         = FFFFFFC6            I_R1             00000168            RSX$CTRLCAST     00000024 RG    05   

IE.TMM         = FFFFFFB9            I_R2             0000016C            RSX$CTRLCASTEN   ********   X   05   

IE.TMO         = FFFFFFB6            I_R3             00000170            RSX$C_SUBSYSTEM= 00000006            

IE.ULK         = FFFFFFAB            I_R4             00000174            RSX$IODONEAST    0000018D RG    05   

IE.VER         = FFFFFFFC            I_R5             00000178            RSX$MARKAST      00000039 RG    05   

IE.WAC         = FFFFFFE3            I_R6             0000017C            RSX$POWERAST     00000000 RG    05   

IE.WAT         = FFFFFFE1            I_RAD50NAME      00000124            RSX$POWEREN      ********   X   05   

IE.WCK         = FFFFFFAA            I_RCVAST         00000198            RSX$RCVAST       00000015 RG    05   

IE.WER         = FFFFFFDF            I_RCVMAIL        0000013C            RSX$RCVASTEN     ********   X   05   

IE.WLK         = FFFFFFF4            I_RUNFLAGS       00000190            RSX$REI          ********   X   05   

IS.BV          = 00000005            I_SCRATCH        00000000            RSX$RESTORE      ********   X   05   

IS.CC          = 00000301            I_STATE          0000014C            RSX$RETURNAST    000000AB RG    05   

IS.CR          = 00000D01            I_TYPE           00000180            RSX$RSXQIOERR    ********   X   05   

IS.EOT         = 00000401            I_UIC            00000118            RSX$SETUPAST     0000017C RG    05   

IS.ESC         = 00001B01            I_WAIT           00000154            RSX$WAIT         ********   X   05   

IS.ESQ         = 00009B01            I_WAITSAVE       0000015C            RSX$_ACCVIO    = 00068044            

IS.PES         = 00008001            LUTC_CR        = 00000005            RSX$_BADLIBREF = 0006806C            

IS.PND         = 00000000            LUTC_DISK      = 00000002            RSX$_BADSTACK  = 0006804C            

IS.RDD         = 00000002            LUTC_LP        = 00000004            RSX$_BREAK     = 0006800C            

IS.SUC         = 00000001            LUTC_RMS       = 00000000            RSX$_EXITSTATUS= 00068180            

IS.TAB         = 00000901            LUTC_TAPE      = 00000003            RSX$_EXTERNABRT= 0006805C            

IS.TMO         = 00000002            LUTC_TRM       = 00000001            RSX$_ILLINST   = 0006802C            

I_ADR0           000000D8            LUTV_CTRLC     = 00000002            RSX$_INSFDYNMEM= 00068054            

I_ASCIINAME      0000011C            LUTV_CTRLO     = 00000000            RSX$_IOT       = 00068014            

I_ASTPOOL        000000A8            LUTV_PRM       = 00000003            RSX$_LIBNOTFND = 00068074            

I_ASTQUEUE       000000A0            LUTV_TI        = 00000001            RSX$_LOADERROR = 0006807C            

I_BAILOUTFP      0000018C            LUT_CHAN         0000000C            RSX$_NONRSXEMT = 0006801C            

I_CMDAD          000000C4            LUT_CHAR         00000014            RSX$_NOSUCHDEV = 000680C2            

I_CMDSZ          000000C0            LUT_CTRLC        00000034            RSX$_NOTSKIMG  = 00068064            

I_CURAST         00000194            LUT_FLAGS        0000000A            RSX$_ODDADDR   = 00068034            

RSXASTSRV       - AST SERVICE ROUTINES FOR THE RSX AME           22-AUG-1978 00:22:54   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                    (11)



RSX$_PMD       = 000680CA            

RSX$_RCVMBXSIZ = 0000012C            

RSX$_RESERVED  = 00068004            

RSX$_TBIT      = 0006803C            

RSX$_TRAP      = 00068024            

SS$_NORMAL       ********   X   05   

SV_ASTLVL        00000005            

SV_DCL           00000002            

SV_FLOATAST      0000000A            

SV_FRESTORE      00000003            

SV_NOAST         00000004            

SV_PENDWAIT      00000006            

SV_PWRAST        00000009            

SV_RCVAST        00000008            

SV_RESTORE       00000000            

SV_TRANSLATE     00000001            

SV_WAIT          00000007            

S_PC             00000020            

S_PS             00000024            

S_R0             00000000            

S_R1             00000004            

S_R2             00000008            

S_R3             0000000C            

S_R4             00000010            

S_R5             00000014            

S_R6             00000018            

S_TYPE           0000001C            

W.BATT           00000006            

W.BFPD           0000000C            

W.BHVR           00000004            

W.BLGH           00000010            

W.BLPD           0000000E            

W.BLVR           00000002            

W.BNPD           0000000D            

W.BOFF           0000000A            

W.BPCB           00000000            

W.BSIZ           00000008            





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

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

RSXDEF           000001F0      04     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

RSXCODE          00000210      05     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

15332. BYTES LEFT IN FREE MEMORY POOL.

24. BYTES OF RECLAIMED MEMORY.

OBJ$:RSXASTSRV,LIS$:RSXASTSRV/-SP=SRC$:C,RSXASTSRV

26 MLB DIR RDS - 504 GETS TO DEFINE 21 MACROS. 22 INTER. FILE WRITES. 

