Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/cexrsx.lst
There are no other files named cexrsx.lst in the archive.
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22
CEXRSX.M11 30-DEC-82 00:22 TABLE OF CONTENTS
2636 DECLARATIONS
2663 $MCB - Switch to MCB process context
2733 $RSX - Switch to RSX driver context
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 1
CEXRSX.M11 30-DEC-82 00:22
1 .TITLE CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE
2 .IDENT /003120/
3 .ENABL LC
4
5 ;
6 ; COPYRIGHT (c) 1980, 1981, 1982
7 ; DIGITAL EQUIPMENT CORPORATION
8 ; Maynard, Massachusetts
9 ;
10 ; This software is furnished under a license and may be used
11 ; and copied only in accordance with the terms of such license
12 ; and with the inclusion of the above copyright notice. This
13 ; software or any other copies thereof may not be provided or
14 ; otherwise made available to any other person. No title to
15 ; and ownership of the software is hereby transferred.
16 ;
17 ; The information in this software is subject to change
18 ; without notice and should not be construed as a commitment
19 ; by DIGITAL EQUIPMENT CORPORATION.
20 ;
21 ; DIGITAL assumes no responsibility for the use or reliability
22 ; of its software on equipment which is not supplied by
23 ; DIGITAL.
24 ;
25
26 ;++
27 ; FACILITY: MCB Communications Executive
28 ;
29 ; FUNCTIONAL ABSTRACT:
30 ;
31 ; This module contains the routines to support the interface
32 ; to RSX drivers.
33 ;
34 ; ENVIRONMENT: RSX kernel mode with EIS
35 ;
36 ; AUTHOR: Alan D. Peckham, CREATION DATE: 21-MAR-80
37 ;
38 ; MODIFIED BY:
39 ;
40 ; Alan D. Peckham, 2-Jul-80: VERSION 3.0
41 ; 01 - Change CRSH$ references to CRSH$S.
42 ; 02 - Use macros to handle APR6 mapping.
43 ; 03 - Update CRSH$S contexts.
44 ; 04 - Add conditional process activation signal to $MCB.
45 ; 05 - New signal status for process activation.
46 ; 06 - Remove process activation signal.
47 ; 07 - Fix $MCB and $RSX to update .CEXDP correctly.
48 ; Alan D. Peckham, 9-Dec-80: VERSION 3.1
49 ; 08 - Update for MCB V3.1
50 ; 09 - Add support for data base words in $MCB.
51 ; Alan D. Peckham, 30-Jan-80: VERSION 3.2
52 ; 10 - Speed up code in $MCB.
53 ; Support .CRPDB current process descriptor address.
54 ; Add UCB crash.
55 ; 11 - Support .CRDSP in context switches.
56 ; 12 - Correct conditionalized D$$BUG code in $MCB.
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 1-1
CEXRSX.M11 30-DEC-82 00:22
57 ;--
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 2
CEXRSX.M11 30-DEC-82 00:22 DECLARATIONS
59 .SBTTL DECLARATIONS
60
61 ;
62 ; INCLUDE FILES:
63 ;
64
65 .MCALL CRSH$S,UCBDF$
66 .GLOBL $IGNAL
67
68 ;
69 ; MACROS:
70 ;
71 ; None
72 ;
73 ; EQUATED SYMBOLS:
74 ;
75
76 000000' UCBDF$ ; UCB symbol definitions.
77
78 ;
79 ; OWN STORAGE:
80 ;
81 ; None
82 ;
83 ; VALIDATION DECLARATIONS:
84 ;
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 3
CEXRSX.M11 30-DEC-82 00:22 $MCB - SWITCH TO MCB PROCESS CONTEXT
86 .SBTTL $MCB - Switch to MCB process context
87 ;++
88 ; FUNCTIONAL DESCRIPTION:
89 ;
90 ; Switch context from RSX driver to MCB process.
91 ;
92 ; CALLING SEQUENCE:
93 ;
94 ; CALL $MCB
95 ;
96 ; INPUT PARAMETERS:
97 ;
98 ; R5 = UCB address.
99 ;
100 ; IMPLICIT INPUTS:
101 ;
102 ; None
103 ;
104 ; OUTPUT PARAMETERS:
105 ;
106 ; R5 = data base address.
107 ;
108 ; IMPLICIT OUTPUTS:
109 ;
110 ; .RSXMP = saved value of APR 6.
111 ; KISAR6 = Mapped to data base.
112 ;
113 ; CONDITION CODES:
114 ;
115 ; None
116 ;
117 ; SIDE EFFECTS:
118 ;
119 ; None
120 ;--
121
122 000000' .PSECT $CODE$,I,RO
123 000000' $MCB:: RLVL$ ; Crash if not at RSX level.
124 000000' PUSH$S R0
125 000002' 116500 000012 MOVB U.CW2(R5),R0 ; Get PIX
126
127 001 .IF NE,D$$BUG
128 CMPB .PDBNM,R0 ; to range check
129 BLOS 100$ ; and crash if out of range.
130 .IFTF
131
132 000006' 006300 ASL R0
133 000010' 016000 000000G MOV .PDBVB(R0),R0
134
135 .IFT
136 BEQ 100$
137 .IFTF
138
139 000014' 004767 000000G CALL $CEXSV ; Become the Comm/Exec.
140 000020' 010067 000000G MOV R0,.CRPDB ; Set as current process
141 000024' 005720 TST (R0)+ ; and
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 3-1
CEXRSX.M11 30-DEC-82 00:22 $MCB - SWITCH TO MCB PROCESS CONTEXT
142 000026' 012067 000000G MOV (R0)+,.CRDSP ; dispatch table,
143 000032' MAP$ (R0) ; data base bias,
144 000036' 012067 000000G MOV (R0)+,.CRDAT+0
145 000042' 011005 MOV (R0),R5 ; address,
146 000044' 012067 000002G MOV (R0)+,.CRDAT+2
147 000050' 111067 000000G MOVB (R0),.CRPIX ; and index.
148 000054' POP$S R0
149 000056' 000207 RETURN
150
151 .IFT
152 100$: POP$S R0
153 CRSH$S RPX ; PIX in UCB corrupted
154 000 .ENDC
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 4
CEXRSX.M11 30-DEC-82 00:22 $RSX - SWITCH TO RSX DRIVER CONTEXT
156 .SBTTL $RSX - Switch to RSX driver context
157 ;++
158 ; FUNCTIONAL DESCRIPTION:
159 ;
160 ; Switch context from MCB process to RSX driver.
161 ;
162 ; CALLING SEQUENCE:
163 ;
164 ; CALL $RSX
165 ;
166 ; INPUT PARAMETERS:
167 ;
168 ; None
169 ;
170 ; IMPLICIT INPUTS:
171 ;
172 ; .RSXMP = saved value of APR 6.
173 ;
174 ; OUTPUT PARAMETERS:
175 ;
176 ; R5 = UCB address.
177 ;
178 ; IMPLICIT OUTPUTS:
179 ;
180 ; None
181 ;
182 ; CONDITION CODES:
183 ;
184 ; None
185 ;
186 ; SIDE EFFECTS:
187 ;
188 ; None
189 ;--
190
191 000060' .PSECT $CODE$,I,RO
192 000060' $RSX:: PLVL$ ; Crash if not at process level.
193 000060' PUSH$S R4
194 000062' 016704 000000G MOV .CRPDB,R4 ; Get process descriptor
195 000066' 032764 000400 000010 BIT #ZF.UCB,Z.FLG(R4) ; and if there is a UCB
196 000074' 001417 BEQ 100$ ; then
197 000076' 016764 000000G 000002 MOV .CRDSP,2(R4) ; reset dispatch address,
198 000104' 016764 000000G 000004 MOV .CRDAT+0,Z.DAT+0(R4) ; data base
199 000112' 016764 000002G 000006 MOV .CRDAT+2,Z.DAT+2(R4) ; bias/address,
200 000120' 016405 000012 MOV Z.UCB(R4),R5 ; to get UCB address.
201 000124' 004767 000000G CALL $CEXXT ; Scehdule the Comm/Exec if necessary.
202 000130' POP$S R4
203 000132' 000207 RETURN
204
205 000134' 100$: POP$S R4
206 000136' CRSH$S UCB ; Process does not have UCB.
207
208 000001 .END
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 5
CEXRSX.M11 30-DEC-82 00:22 CROSS REFERENCE TABLE -- USER SYMBOLS
CE$UCB= ****** G 206#
D$$BUG= 000000 123 127 192
KISAR6= ****** G 143#*
U.CW2 000012 125
ZF.UCB= 000400 195
Z.DAT 000004 198* 199*
Z.FLG 000010 195
Z.UCB 000012 200
$CEXSV= ****** GX 139*
$CEXXT= ****** GX 201*
$CRSH = ****** G 206#*
$IGNAL= ****** G 66#
$MCB 000000RG 002 123#
$RSX 000060RG 002 192#
.CRDAT= ****** GX 144* 146* 198 199
.CRDSP= ****** GX 142* 197
.CRPDB= ****** GX 140* 194
.CRPIX= ****** GX 147*
.PDBVB= ****** GX 133
CEXRSX - COMM/EXEC SUPPORT FOR THE RSX DRIVER INTERFACE DNMAC X24.07-563 28-MAY-85 14:22 PAGE 6
CEXRSX.M11 30-DEC-82 00:22 CROSS REFERENCE TABLE -- MACRO NAMES
CRSH$S 65# 206
MAP$ 143
PLVL$ 192
POP$S 148 202 205
PUSH$S 124 193
RLVL$ 123
UCBDF$ 65# 76
. ABS. 000000 000 CON RW ABS LCL I
000000 001 CON RW REL LCL I
$CODE$ 000144 002 CON RO REL LCL I
ERRORS DETECTED: 0
DEFAULT GLOBALS GENERATED: 7
CEXRSX,CEXRSX/CR=MCB:RSXLIB/PA:1,MCBLIB/PA:1,CEX:CEXLIB/PA:1,CEXRSX
RUN-TIME: 4 1 .2 SECONDS
RUN-TIME RATIO: 23/5=4.3
CORE USED: 15K (29 PAGES)