Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/cesub.list
There are no other files named cesub.list in the archive.
CESUB MACRO M1110 13-OCT-79 08:09
TABLE OF CONTENTS
4- 49 $CMQIN - QUEUE A CHAIN OF CCBS TO A LIST
5- 82 $CMQIF - QUEUE A CHAIN OF CCBS TO A LIST ; AP001
6- 118 $CMQRM - REMOVE A CHAIN OF CCBS FROM A LIST
7- 159 $CNV18 - CONVERT TO 18-BIT UNIBUS ADDRESS
8- 212 $MVTBF - MOVE FROM MAPPED BUFFER TO UNMAPPED BUFFER
9- 275 $MVFBF - MOVE FROM UNMAPPED BUFFER TO A MAPPED BUFFER
10- 353 $CALLX - MAPPED SUBROUTINE CALL
11- 384 $PDVID - PROCESS NAME TO PDV INDEX
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 3
1 .TITLE CESUB
2 .IDENT /Y01.01/ ; AP001
3 ;**-1
4 ;
5 ; COPYRIGHT (C) 1978 BY
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7 ;
8 ;
9 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
10 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
11 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
12 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
13 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
14 ; TRANSFERRED.
15 ;
16 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
17 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
18 ; CORPORATION.
19 ;
20 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
22 ;
23 ; MODULE DESCRIPTION
24 ;
25 ; CEX SUBROUTINES
26 ;
27 ;
28 ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
29 ;
30 ; IDENT HISTORY:
31 ;
32 ; 1.00 10-FEB-78
33 ; VERSION 2.0 RELEASE
34 ; AP001
35 ; 1.1 10-MAR-78 ; AP001
36 ; ADDED $CMQIF ROUTINE ; AP001
37
38 ;
39 ; MACRO LIBRARY CALLS
40 ;
41 .MCALL INHIB$,ENABL$,SAVRG,RESRG
42 .MCALL CCBDF$,HWDDF$,PDVDF$
43 .MCALL CALLR ; AVOID SYSTEM DEPENDENCY
44 000000 CCBDF$ ; DEFINE THE CCB OFFSETS
45 000000 HWDDF$ ; DEFINE THE HARDWARE REGISTERS
46 000000 PDVDF$ ; DEFINE THE PDV OFFSETS
47
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 4
$CMQIN - QUEUE A CHAIN OF CCBS TO A LIST
49 .SBTTL $CMQIN - QUEUE A CHAIN OF CCBS TO A LIST
50
51 ;+
52 ; **-$CMQIN - QUEUE A CHAIN OF CCBS TO A LIST
53 ;
54 ; THIS SUBROUTINE IS CALLED TO ADD A CCB OR A CHAIN OF CCBS TO
55 ; THE END OF A SINGLE LINKED LIST.
56 ;
57 ; INPUTS:
58 ;
59 ; R3 = ADDRESS OF TWO WORD LISTHEAD
60 ; R4 = ADDRESS OF FIRST CCB IN CHAIN
61 ;
62 ; OUTPUTS:
63 ;
64 ; THE CCB IS QUEUED TO THE END OF THE LIST
65 ;
66 ; REGISTERS MODIFIED:
67 ;
68 ; NONE
69 ;-
70
71 000000 $CMQIN::SAVRG <R5,R4> ; SAVE REGISTERS
72 000004 010405 10$: MOV R4,R5 ; COPY CCB ADDRESS
73 000006 042765 040000 000012 BIC #CS.LST,C.STS(R5) ; CLEAR LAST CCB IN CHAIN BIT
74 000014 011504 MOV (R5),R4 ; GET ADDRESS OF NEXT CCB IN CHAIN
75 000016 001372 BNE 10$ ; LOOP TILL END OF CHAIN
76 000020 052765 040000 000012 BIS #CS.LST,C.STS(R5) ; SET LAST CCB IN CHAIN BIT
77 000026 011673 000002 MOV (SP),@2(R3) ; LINK CHAIN TO END OF QUEUE
78 000032 010563 000002 MOV R5,2(R3) ; UPDATE LISTHEAD POINTER TO LAST CCB IN QUEUE
79 000036 RESRG <R4,R5> ; RESTORE REGISTERS
80 000042 RETURN ; RETURN
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 5
$CMQIF - QUEUE A CHAIN OF CCBS TO A LIST
82 .SBTTL $CMQIF - QUEUE A CHAIN OF CCBS TO A LIST ; AP001
83 ; AP001
84 ;+ ; AP001
85 ; **-$CMQIF - QUEUE A CHAIN OF CCBS TO A LIST ; AP001
86 ; ; AP001
87 ; THIS SUBROUTINE IS CALLED TO ADD A CCB OR A CHAIN OF CCBS TO ; AP001
88 ; THE FRONT OF A SINGLE LINKED LIST. ; AP001
89 ; ; AP001
90 ; INPUTS: ; AP001
91 ; ; AP001
92 ; R3 = ADDRESS OF TWO WORD LISTHEAD ; AP001
93 ; R4 = ADDRESS OF FIRST CCB IN CHAIN ; AP001
94 ; ; AP001
95 ; OUTPUTS: ; AP001
96 ; ; AP001
97 ; THE CCB IS QUEUED TO THE FRONT OF THE LIST ; AP001
98 ; ; AP001
99 ; REGISTERS MODIFIED: ; AP001
100 ; ; AP001
101 ; NONE ; AP001
102 ;- ; AP001
103 ; AP001
104 000044 $CMQIF::SAVRG <R5,R4> ; SAVE REGISTERS ; AP001
105 000050 010405 10$: MOV R4,R5 ; COPY CCB ADDRESS ; AP001
106 000052 042765 040000 000012 BIC #CS.LST,C.STS(R5) ; CLEAR LAST CCB IN CHAIN BIT ; AP001
107 000060 011504 MOV (R5),R4 ; GET ADDRESS OF NEXT CCB IN CHAIN ; AP001
108 000062 001372 BNE 10$ ; LOOP TILL END OF CHAIN ; AP001
109 000064 052765 040000 000012 BIS #CS.LST,C.STS(R5) ; SET LAST CCB IN CHAIN BIT ; AP001
110 000072 RESRG R4 ; GET HEAD CCB BACK ; AP001
111 000074 011315 MOV (R3),(R5) ; LINK FRONT OF QUEUE TO CHAIN ; AP001
112 000076 001002 BNE 20$ ; IF ADDING TO EMPTY LIST ; AP001
113 000100 010563 000002 MOV R5,2(R3) ; UPDATE END OF LIST POINTER ; AP001
114 000104 010413 20$: MOV R4,(R3) ; UPDATE LISTHEAD POINTER TO FIRST CCB IN QUEUE ; AP001
115 000106 RESRG R5 ; RESTORE REGISTER R5 ; AP001
116 000110 RETURN ; RETURN ; AP001
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 6
$CMQRM - REMOVE A CHAIN OF CCBS FROM A LIST
118 .SBTTL $CMQRM - REMOVE A CHAIN OF CCBS FROM A LIST
119
120 ;+
121 ; **-$CMQRM - REMOVE A CHAIN OF CCBS FROM A LIST
122 ;
123 ; THIS SUBROUTINE IS CALLED TO REMOVE THE FIRST ENTRY
124 ; FROM A SINGLY LINKED LIST.
125 ;
126 ; INPUTS:
127 ;
128 ; R3 = ADDRESS OF TWO WORD LISTHEAD
129 ;
130 ; OUTPUTS:
131 ;
132 ; C/CLEAR:
133 ; R4 = ADDRESS OF FIRST IN CHAIN OR ONLY CCB DEQUEUED
134 ;
135 ; C/SET: QUEUE IS EMPTY
136 ;
137 ; REGISTERS MODIFIED:
138 ;
139 ; R4
140 ;-
141
142 000112 000261 $CMQRM::SEC ; SET C-BIT JUST IN CASE QUEUE IS EMPTY
143 000114 011304 MOV (R3),R4 ; GET ADDRESS OF FIRST CCB IN QUEUE
144 000116 001420 BEQ 40$ ; RETURN IF QUEUE IS EMPTY
145 000120 SAVRG <R5,R4> ; SAVE A REGISTER
146 000124 010405 10$: MOV R4,R5 ; COPY FIRST CCB IN CHAIN ADDRESS
147 000126 032765 040000 000012 BIT #CS.LST,C.STS(R5) ; IS THIS THE LAST CCB IN THE CHAIN?
148 000134 001002 BNE 20$ ; YES - UPDATE THE LISTHEAD
149 000136 011504 MOV (R5),R4 ; NO - GET NEXT CCB - IS THIS THE LAST?
150 000140 001371 BNE 10$ ; NO - LOOP TILL END OF CHAIN
151
152 000142 011513 20$: MOV (R5),(R3) ; SET ADDRESS OF NEW FIRST CCB IN QUEUE
153 000144 001002 BNE 30$ ; BRANCH IF QUEUE IS NOT EMPTY
154 000146 010363 000002 MOV R3,2(R3) ; OTHERWISE CLOSE UP LIST
155 000152 005015 30$: CLR (R5) ; CLEAR LINK POINTER IN THE LAST CCB OF CHAIN
156 000154 RESRG <R4,R5> ; RESTORE REGISTER
157 000160 40$: RETURN ; RETURN
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 7
$CNV18 - CONVERT TO 18-BIT UNIBUS ADDRESS
159 .SBTTL $CNV18 - CONVERT TO 18-BIT UNIBUS ADDRESS
160 ;+
161 ; **-$CNV18-CONVERT TO 18-BIT UNIBUS ADDRESS
162 ;
163 ; THIS SUBROUTINE IS CALLED TO CONVERT AN ADDRESS DOUBLEWORD
164 ; TO AN 18-BIT UNIBUS VIRTUAL ADDRESS.
165 ;
166 ; INPUTS:
167 ;
168 ; R2 - VIRTUAL ADDRESS
169 ; R3 - RELOCATION BIAS (PHYSICAL ADDRESS/100)
170 ;
171 ; OUTPUTS:
172 ;
173 ; R2 - LOW ORDER 16 BITS OF UNIBUS ADDRESS
174 ; R3 - BITS 16 & 17 OF UNIBUS ADDRESS IN BITS 0 & 1
175 ;
176 ;-
177
178 000162 $CNV18:: ; REFERENCE LABEL
179 .IF DF M$$MGE
180 000162 005703 TST R3 ; BUFFER FROM EXEC, OR COMM POOL?
181 000164 001422 BEQ 10$ ; IF EQ IT'S FROM EXEC
182 ; (IN THE LOW 16 OR 20 K IN THE RSX11M
183 ; EXEC PHYS ADDR = VIRTUAL ADDR = UNIBUS ADDR)
184 000166 042702 160000 BIC #160000,R2 ; CLEAR APR SELECTOR FROM VIRTUAL ADDRESS
185 000172 010246 MOV R2,-(SP) ; SAVE THIS OFFSET
186 000174 005002 CLR R2 ; INITIALIZE 18 BIT VALUE
187 000176 066703 000000G ADD $PUMR,R3 ; ADD STARTING UMR BIAS TO BLOCK ADDRESS
188 .IF DF R$$EIS
189 ASHC #6,R2 ; ALIGN AS AN 18 BIT QUANTITY
190
191 .IFF
192 000202 012746 000006 MOV #6,-(SP) ; ALIGN AS AN 18 BIT QUANTITY
193 000206 006302 5$: ASL R2
194 000210 006303 ASL R3
195 000212 005502 ADC R2
196 000214 005316 DEC (SP)
197 000216 001373 BNE 5$
198 000220 005726 TST (SP)+ ; CLEAN STACK
199 .ENDC
200
201 000222 060316 ADD R3,(SP) ; ADD LOW 16 BITS TO SAVED OFFSET IN BLOCK
202 000224 005502 ADC R2 ; ADD OVERFLOW TO BITS 16 & 17
203 000226 010203 MOV R2,R3 ; GET HIGH ORDER BITS INTO R3
204 000230 012602 MOV (SP)+,R2 ; AND LOW ORDER BITS INTO R2
205
206 .IFF
207 CLR R3 ; "UNIBUS VIRTUAL" ADDRESS ONLY LOW 16 BITS
208 .ENDC
209
210 000232 10$: RETURN ; RETURN
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 8
$MVTBF - MOVE FROM MAPPED BUFFER TO UNMAPPED BUFFER
212 .SBTTL $MVTBF - MOVE FROM MAPPED BUFFER TO UNMAPPED BUFFER
213
214 ;+
215 ; **- $MVTBF - MOVE FROM MAPPED BUFFER TO UNMAPPED BUFFER
216 ;
217 ; THIS ROUTINE IS CALLED TO MOVE A BLOCK OF MEMORY (LESS THAN
218 ; 4K WORDS) FROM A BUFFER THAT IS CURRENTLY MAPPED( (EITHER
219 ; IN SYSTEM DYNAMIC SPACE OR IN THE COMMM BUFFER POOL) TO AN
220 ; UNMAPPED BUFFER. NOTE THE MAPPED BUFFER CAN NOT BE IN THE PROCESS'S
221 ; SPACE MAPPED VIA APR5 SINCE IT USES APR5 TO MAP TO THE UNMAPPED
222 ; BUFFER.
223 ;
224 ; CALLING FORMAT:
225 ; JSR R1,$MVTBF
226 ;
227 ; INPUTS:
228 ; R2 = VIRTUAL ADDRESS OF MAPPED "FROM" BUFFER
229 ; R3 = NUMBER OF BYTES TO MOVE
230 ; ON THE STACK:
231 ; ----------
232 ; ! R1 ! ORIGINAL CONTENTS OF R1 BEFORE CALL
233 ; !--------!
234 ; ! VA ! 16-BIT VIRTUAL ADDRESS OF UNMAPPED "TO" BFFER
235 ; !--------!
236 ; ! BIAS ! RELOCATION BIAS OF UNMAPPED "TO" BUFFER
237 ; ---------- (MAPPED SYSTEMS ONLY)
238 ;
239 ; OUTPUTS:
240 ; R2 = UPDATED ADDRESS OF "FROM" BUFFER
241 ; POINTS TO LAST BYTE MOVED +1
242 ; R3 = ZERO
243 ;
244 ; STILL MAPPED TO "FROM" BUFFER VIA KISAR6
245 ;
246 ; REGISTERS MODIFIED:
247 ; R2 & R3
248 ;-
249
250 .ENABL LSB
251 000234 $MVTBF::
252
253 .IF DF M$$MGE
254
255 000234 016746 172352 MOV KISAR5,-(SP) ; SAVE CURRENT PROCESS MAPPING
256 000240 016667 000006 172352 MOV 6(SP),KISAR5 ; MAP TO "TO" BUFFER
257 000246 010166 000006 MOV R1,6(SP) ; SAVE RETURN ADDRESS
258 000252 016601 000004 MOV 4(SP),R1 ; GET "TO" BUFFER VIRTUAL ADDRESS
259 000256 022701 140000 CMP #140000,R1 ; IS THE "TO" BUFFER IN THE EXEC POOL?
260 000262 101002 BHI 10$ ; IF HI, YES THEN DON'T ALTER THE VIRTUAL ADDDRESS
261 000264 162701 020000 SUB #20000,R1 ; SET VA FOR BIAS VIA KISAR5
262
263 .IFF
264
265 MOV 2(SP),-(SP) ; COPY "TO" BUFFER ADDRESS
266 MOV R1,4(SP) ; STORE RETURN ADDRESS
267 MOV (SP)+,R1 ; RETRIEVE "TO" BUFFER ADDRESS
268
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 8-1
$MVTBF - MOVE FROM MAPPED BUFFER TO UNMAPPED BUFFER
269 .IFTF
270
271 000270 112221 10$: MOVB (R2)+,(R1)+ ; MOVE BUFFER A BYTE AT A TIME
272 000272 SOB R3,10$ ; LOOP TILL DONE
273 000276 000421 BR 20$ ; JOIN COMMON EXIT CODE
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 9
$MVFBF - MOVE FROM UNMAPPED BUFFER TO A MAPPED BUFFER
275 .SBTTL $MVFBF - MOVE FROM UNMAPPED BUFFER TO A MAPPED BUFFER
276
277 ;+
278 ; **- $MVFBF - MOVE FROM UNMAPPED BUFFER TO A MAPPED BUFFER
279 ;
280 ; THIS ROUTINE IS CALLED TO MOVE A BLOCK OF MEMORY (LESS THAN
281 ; 4K WORDS) FROM AN UNMAPPED BUFFER TO A BUFFER THAT IS CURRENTLY
282 ; MAPPED (EITHER IN SYSTEM DYNAMIC SPACE OR IN THE COMM BUFFER POOL).
283 ; THE ROUTINE UNMAPPS THE REQUESTING PROCESS AND USES ARP5 TO MAP
284 ; TO THE UNMAPPED "FROM" BUFFER.
285 ;
286 ; CALLING FORMAT:
287 ; JSR R1,$MVFBF
288 ;
289 ; INPUTS:
290 ; R2 = VIRTUAL ADDRESS OF MAPPED "TO" BUFFER
291 ; R3 = NUMBER OF BYTES TO MOVE
292 ; ON STACK:
293 ; ----------
294 ; ! R1 ! ORIGINAL CONTENTS OF R1 BEFORE CALL
295 ; !--------!
296 ; ! VA ! 16-BIT VIRTUAL ADDRESS OF UNMAPPED "FROM" BUFFER
297 ; !--------!
298 ; ! BIAS ! RELOCATION BIAS OF UNMAPPED "FROM" BUFFER
299 ; ---------- (MAPPED SYSTEMS ONLY)
300 ;
301 ; OUTPUTS:
302 ; R2= UPDATED ADDRESS OF "TO" BUFFER
303 ; POINTS TO LAST BYTE MOVED +1
304 ; R3 = ZERO
305 ;
306 ; STILL MAPPED TO "TO" BUFFER VIA KISAR6
307 ;
308 ; REGISTERS MODIFIED:
309 ; R2 & R3
310 ;-
311
312 000300 $MVFBF::
313
314 .IFT
315 000300 016746 172352 MOV KISAR5,-(SP) ; SAVE CURRENT PROCESS MAPPING
316 000304 016667 000006 172352 MOV 6(SP),KISAR5 ; MAP TO "FROM" BUFFER
317 000312 010166 000006 MOV R1,6(SP) ; SAVE RETURN ADDRESS
318 000316 016601 000004 MOV 4(SP),R1 ; GET "FROM" BUFFER VIRTUAL ADDRESS
319 000322 022701 140000 CMP #140000,R1 ; IS THE "FROM" BUFFER IN THE EXEC POOL?
320 000326 101002 BHI 15$ ; IF HI, YES THEN DON'T ALTER THE VIRTUAL ADDRESS
321 000330 162701 020000 SUB #20000,R1 ; SET VA FOR BIAS VIA KISAR5
322
323 .IFF
324
325 MOV 2(SP),-(SP) ; COPY "FROM" BUFFER ADDRESS
326 MOV R1,4(SP) ; STORE RETURN ADDRESS
327 MOV (SP)+,R1 ; RETRIEVE "FROM" BUFFER ADDRESS
328
329 .IFTF
330
331 000334 112122 15$: MOVB (R1)+,(R2)+ ; MOVE BUFFER A BYTE AT A TIME
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 9-1
$MVFBF - MOVE FROM UNMAPPED BUFFER TO A MAPPED BUFFER
332 000336 SOB R3,15$ ; LOOP TILL DONE
333 000342 20$:
334
335 .IFT
336
337 000342 012667 172352 MOV (SP)+,KISAR5 ; RESTORE PROCESS MAPPING
338
339 .IFTF
340 000346 012601 MOV (SP)+,R1 ; RESTORE REGISTER
341
342 .IFT
343
344 000350 005726 TST (SP)+ ; CLEAN UP STACK
345
346 .IFTF
347
348 000352 RETURN ; RETURN
349
350 .ENDC
351 .DSABL LSB
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 10
$CALLX - MAPPED SUBROUTINE CALL
353 .SBTTL $CALLX - MAPPED SUBROUTINE CALL
354
355 ;+
356 ; **-$CALLX-MAPPED CALL TO ANOTHER PROCESS
357 ;
358 ; CALLING SEQUENCE:
359 ;
360 ; JSR R5,$CALLX
361 ; .WORD ADDRESS OF SUBROUTINE TO CALL
362 ; .WORD PDV INDEX WHERE SUBROUTINE EXISTS
363 ;
364 ;-
365
366 .IF DF M$$MGE
367 000354 016746 000000G $CALLX::MOV $CMPDV,-(SP) ; SAVE CURRENT PDV INDEX
368 000360 016746 172352 MOV KISAR5,-(SP) ; SAVE CURRENT PROCESS MAPPING
369 000364 012546 MOV (R5)+,-(SP) ; SAVE ADDRESS OF SUBROUTINE TO CALL
370 000366 011567 000000G MOV (R5),$CMPDV ; STORE NEXT PDV AS CURRENT PDV INDEX
371 000372 012546 MOV (R5)+,-(SP) ; COMPUTE ADDRESS OF PDV FOR NEW MAPPING
372 000374 062716 000000G ADD #$PDVTB,(SP) ; ...
373 000400 013646 MOV @(SP)+,-(SP) ; ...
374 000402 013667 172352 MOV @(SP)+,KISAR5 ; MAP TO THE PROCESS
375 000406 016646 000006 MOV 6(SP),-(SP) ; SWAP OLD R5 AND RETURN ADDRESS
376 000412 010566 000010 MOV R5,10(SP) ; ...
377 000416 012605 MOV (SP)+,R5 ; ...
378 000420 CALL @(SP)+ ; CALL THE SUBROUTINE
379 000422 012667 172352 MOV (SP)+,KISAR5 ; RESTORE PROCESS MAPPING
380 000426 012667 000000G MOV (SP)+,$CMPDV ; RESTORE PREVIOUS PDV INDEX
381 000432 RETURN ; RETURN TO THE CALLER
382 .ENDC
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 11
$PDVID - PROCESS NAME TO PDV INDEX
384 .SBTTL $PDVID - PROCESS NAME TO PDV INDEX
385
386 ;+
387 ; **- $PDVID - PROCESS NAME TO PDV INDEX
388 ;
389 ; THIS SUBROUTINE MAPS A PROCESS NAME (UP TO THREE CHARACTERS IN RAD50)
390 ; INTO A PDV INDEX.
391 ;
392 ; INPUTS:
393 ; R2 = PROCESS NAME (RAD50)
394 ;
395 ; OUTPUTS:
396 ; R2 = PDV INDEX
397 ;-
398
399 000434 $PDVID::SAVRG <R0,R1> ; SAVE REGISTERS
400 000440 012700 000000G MOV #$PDVTB,R0 ; GET ADDRESS OF PDV ADDRESS TABLE
401 000444 016746 000000G MOV $PDVNM,-(SP) ; GET TOTAL NUMBER OF PDVS IN SYSTEM
402 000450 012001 10$: MOV (R0)+,R1 ; GET ADDRESS OF PDV
403 000452 001403 BEQ 15$ ; PROCESS NOT LOADED - GO TO NEXT ONE
404 000454 026102 000006 CMP Z.NAM(R1),R2 ; DOES PROCESS NAME MATCH?
405 000460 001404 BEQ 20$ ; YES - GO CALCULATE INDEX
406 000462 005316 15$: DEC (SP) ; DECREMENT COUNT - DONE LOOPING?
407 000464 001371 BNE 10$ ; NO
408 000466 000261 SEC ; YES - NO MATCH
409 000470 000404 BR 25$ ; RETURN WITH C-BIT SET
410
411 000472 010002 20$: MOV R0,R2 ; GET CURRENT POSITION IN PDV ADDRESS TABLE
412 000474 162702 000000G SUB #$PDVTB,R2 ; SUBTRACT STARTING ADDRESS OF TABLE
413 000500 005742 TST -(R2) ; GET PROCESS PDV INDEX
414 000502 005226 25$: INC (SP)+ ; CLEAN UP STACK AND DON'T CHANGE C-BIT
415 000504 RESRG <R1,R0> ; RESTORE REGISTERS
416 000510 RETURN ; RETURN
417 000001 .END
CESUB MACRO M1110 13-OCT-79 08:09 PAGE 11-1
SYMBOL TABLE
A$$CHK= 000000 C.BUF2 000024 FS.CIB= 002000 L$$ASG= 000000 UDSDR0= 177620
A$$CPS= 000000 C.CNT 000020 FS.CRA= 001000 L$$DRV= 000000 UISAR0= 177640
A$$PRI= 000000 C.CNT1 000020 FS.DIS= 013000 L$$P11= 000001 UISAR4= 177650
A$$TRP= 000000 C.CNT2 000030 FS.DVC= 001000 L$$11R= 000000 UISAR5= 177652
CB.CCB= 000002 C.FLG 000022 FS.ENB= 012000 MPAR = 172100 UISAR6= 177654
CB.RDB= 000004 C.FLG1 000022 FS.GET= 006000 MPCSR = 177746 UISAR7= 177656
CE.ABO= 100362 C.FLG2 000032 FS.INI= 000000 M$$CRB= 000124 UISDR0= 177600
CE.DIS= 100366 C.FNC 000010 FS.KIL= 000000 M$$CRX= 000000 UISDR4= 177610
CE.ERR= 100370 C.LIN 000006 FS.LTM= 001000 M$$FCS= 000000 UISDR5= 177612
CE.MOP= 100372 C.LNK 000000 FS.MNT= 004000 M$$MGE= 000000 UISDR6= 177614
CE.NTE= 100361 C.MOD 000011 FS.MSN= 014000 M$$OVR= 000000 UISDR7= 177616
CE.RTE= 100376 C.NSP 000004 FS.RNG= 011000 N$$LDV= 000001 V$$CTR= 001000
CE.SRC= 100364 C.RSV 000002 FS.RTN= 001000 N$$MOV= 000010 X$$DBT= 000000
CE.TMO= 100374 C.STA 000007 FS.SET= 005000 N$$SYS= 000001 ZF.DDM= 000001
CF.EOM= 000004 C.STS 000012 FS.STM= 000000 N$$USR= 000001 ZF.DLC= 000002
CF.HDR= 000020 D$$BUG= 177514 FS.STP= 002000 PIRQ = 177772 ZF.KMX= 000020
CF.LB = 100000 D$$ISK= 000000 FS.STR= 001000 PMODE = 030000 ZF.LLC= 000004
CF.SOM= 000010 D$$L11= 000001 FS.TRM= 003000 PR0 = 000000 ZF.LMC= 000100
CF.SYN= 000040 D$$YNC= 000000 FS.XKL= 002000 PR1 = 000040 ZF.MFL= 000010
CF.TRN= 000100 D$$YNM= 000000 FS.XOF= 010000 PR4 = 000200 ZF.MUX= 000040
CMODE = 140000 E$$XPR= 000000 FS.XON= 007000 PR5 = 000240 ZF.TIM= 000200
CS.ABO= 000100 FC.CCP= 000020 F$$LVL= 000001 PR6 = 000300 Z.DAT 000014
CS.BUF= 000200 FC.CTL= 000006 G$$TPP= 000000 PR7 = 000340 Z.DSP 000000
CS.DCR= 000400 FC.KCP= 000016 G$$TSS= 000000 PS = 177776 Z.FLG 000011
CS.DEV= 000002 FC.KIL= 000004 G$$TTK= 000000 P$$P45= 000000 Z.LEN = 000014
CS.DIS= 000040 FC.RCE= 000002 G$$WRD= 000000 P$$WRD= 000000 Z.LLN 000010
CS.ENB= 000020 FC.RCP= 000014 I$$RAR= 000000 Q$$OPT= 000010 Z.MAP 000016
CS.EOF= 000001 FC.TIM= 000010 I$$RDN= 000000 R$$DER= 000000 Z.NAM 000006
CS.ERR= 100000 FC.XCP= 000012 KDSAR0= 172360 R$$K11= 000001 Z.PCB 000012
CS.HFE= 002000 FC.XME= 000000 KDSDR0= 172320 R$$SND= 000000 Z.SCH 000004
CS.LST= 040000 FE.CAL= 000040 KISAR0= 172340 R$$11M= 000000 $CALLX 000354RG
CS.MTL= 004000 FE.DRV= 000010 KISAR5= 172352 SISDR0= 172200 $CMPDV= ****** GX
CS.RNG= 000010 FE.EXP= 000200 KISAR6= 172354 SR0 = 177572 $CMQIF 000044RG
CS.ROV= 000004 FE.EXT= 000001 KISAR7= 172356 SR3 = 172516 $CMQIN 000000RG
CS.RSN= 010000 FE.EXV= 000004 KISDR0= 172300 SWR = 177570 $CMQRM 000112RG
CS.SUC= 000001 FE.LSI= 000400 KISDR6= 172314 S$$WRG= 000000 $CNV18 000162RG
CS.TMO= 020000 FE.MUP= 000002 KISDR7= 172316 S$$YSZ= 007600 $MVFBF 000300RG
C$$CKP= 000000 FE.MXT= 040000 K$$CNT= 177546 TPS = 177564 $MVTBF 000234RG
C$$ORE= 000400 FE.NLG= 100000 K$$CSR= 177546 T$$KMG= 000000 $PDVID 000434RG
C$$RSH= 177564 FE.PKT= 000100 K$$LDC= 000000 T$$MIN= 000000 $PDVNM= ****** GX
C.BID 000003 FE.PLA= 000020 K$$TPS= 000074 UBMPR = 170200 $PDVTB= ****** GX
C.BUF 000014 FS.AST= 000000 LD$LP = 000000 UDSAR0= 177660 $PUMR = ****** GX
C.BUF1 000014
. ABS. 000034 000
000512 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 6289 WORDS ( 25 PAGES)
DYNAMIC MEMORY: 6892 WORDS ( 26 PAGES)
ELAPSED TIME: 00:00:20
CESUB,[130,34]CESUB/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,CESUB
CESUB CREATED BY MACRO ON 13-OCT-79 AT 08:09 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
CS.LST = 040000 4-73 4-76 5-106 5-109 6-147
C.STS 000012 *4-73 *4-76 *5-106 *5-109 6-147
I$$AS = ****** 3-46
KISAR5 = 172352 8-255 *8-256 9-315 *9-316 *9-337 10-368 *10-374 *10-379
M$$MGE = 000000 7-179 8-253 10-366
R$$EIS = ****** 7-188
R$$11D = ****** 3-46
R$$11M = 000000 3-46
R$$11S = ****** 3-46
X$$MCB = ****** 3-46 3-46
ZF.DDM = 000001 #3-46
ZF.DLC = 000002 #3-46
ZF.KMX = 000020 #3-46
ZF.LLC = 000004 #3-46
ZF.LMC = 000100 #3-46
ZF.MFL = 000010 #3-46
ZF.MUX = 000040 #3-46
ZF.TIM = 000200 #3-46
Z.DAT 000014 #3-46
Z.DSP 000000 #3-46 3-46
Z.FLG 000011 #3-46
Z.LEN = 000014 #3-46
Z.LLN 000010 #3-46
Z.MAP 000016 #3-46
Z.NAM 000006 #3-46 11-404
Z.PCB 000012 #3-46
Z.SCH 000004 #3-46
$CALLX 000354 RG #10-367
$CMPDV = ****** GX 10-367 *10-370 *10-380
$CMQIF 000044 RG #5-104
$CMQIN 000000 RG #4-71
$CMQRM 000112 RG #6-142
$CNV18 000162 RG #7-178
$MVFBF 000300 RG #9-312
$MVTBF 000234 RG #8-251
$PDVID 000434 RG #11-399
$PDVNM = ****** GX 11-401
$PDVTB = ****** GX 10-372 11-400 11-412
$PUMR = ****** GX 7-187
CESUB CREATED BY MACRO ON 13-OCT-79 AT 08:09 PAGE 2
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 10-378
CALLR #3-43
CCBDF$ #3-42 #3-44
ENABL$ #3-41
HWDDF$ #3-42 #3-45
INHIB$ #3-41
PDVDF$ #3-42 3-46
RESRG #3-41 #4-79 #5-110 #5-115 #6-156 #11-415
RETURN 4-80 5-116 6-157 7-210 9-348 10-381 11-416
SAVRG #3-41 #4-71 #5-104 #6-145 #11-399
SOB #8-272 #9-332