Google
 

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