Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/cmlog.list
There are no other files named cmlog.list in the archive.
CMLOG	MACRO M1110  13-OCT-79 08:11
TABLE OF CONTENTS

     4-   55	$CMLGX
     4-   56	$CMLOG
     7-  223	ASCEVT
     7-  224	SFTEVT
     7-  225	TOPEVT
     8-  259	HDWEVT
     9-  322	QUEUER
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 3


      1						.TITLE	CMLOG
      2						.IDENT	/X01.04/
      3
      4					; COPYRIGHT (C) 1978 BY
      5					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      6					;
      7					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
      8					; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
      9					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
     10					; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
     11					; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
     12					; TRANSFERRED.
     13					;
     14					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
     15					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
     16					; CORPORATION.
     17					;
     18					; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
     19					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
     20					;
     21					; MODULE DESCRIPTION:
     22					;	EVENT LOGGING ROUTINE
     23					;
     24					; LCG COMM/NETS SOFTWARE ENGINEERING
     25					; IDENT HISTORY:
     26					;
     27					; 1.00	14-NOV-78
     28					;	VERSION 4.0 RELEASE
     29					; 1.01	15-JAN-79
     30					;	CHANGED TO NON-STACK CALLING FORMAT AND CHANGED TO UTILIZE A
     31					;	COROUTINE CALLBACK FOR SUPPLYING EVENT-DEPENDENT DATA. ALSO
     32					;	MODIFIED $CMLOG TO ACCEPT/EXPECT PROCESS NAME (RAD50) (AND
     33					;	STATION_# FOR HARDWARE ERROR EVENTS).
     34					; 1.02	30-JAN-79
     35					;	EXPANDED REASON CODE XLATION CAPABILITY TO ALLOW XLATION OF
     36					;	BYTE-VALUED TABLES, IN ADDITION TO THE BIT-MAPPED WORD TABLES.
     37					; 1.03	5-FEB-79
     38					;	ADDED CHECK TO DETERMINE APPROPRIATE DATA BUFFER LENGTH, AND
     39					;	TO GET EITHER SDB OR RDB.  ALSO SIMPLIFIED THE REASON CODE
     40					;	XLATION TYPE DETERMINATION.
     41					; 1.04	19-FEB-79
     42					;	FIX TO SET CARRY WHEN LOGGING IS NOT ENABLED, SUCH AS RETURN
     43					;	THROUGH THE ROUTE AT 101$.  ALSO UPDATED DOCUMENTATION.
     44					;
     45					; MACRO LIBRARY CALLS
     46
     47						.MCALL	SAVRG,RESRG,SAVMAP,RESMAP,MAP,$QLLC
     48					 	.MCALL	CCBDF$,SLTDF$,CMLDF$,PDVDF$,CVLMDF
     49	000000					CCBDF$			; DEFINE THE CCB OFFSETS
     50	000000					SLTDF$			; DEFINE THE SLT OFFSETS
     51	000000					CMLDF$			; DEFINE THE PARAMETER BLOCK OFFSETS
     52	000000					PDVDF$			; DEFINE THE PDV OFFSETS
     53	000000					CVLMDF			; DEFINE THE DEVICE NAMES TABLE
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 4
$CMLGX

     55						.SBTTL	$CMLGX
     56						.SBTTL	$CMLOG
     57					;+
     58					; ** - $CMLOG - EVENT LOGGING
     59					; ** - $CMLGX - EVENT LOGGING, BUT NO COROUTINE CALLBACK
     60					;
     61					; UPON ERROR/EVENT DETECTION, $CMLOG IS CALLED TO EFFECT
     62					; NOTIFICATION OF THE LOGGING/REPORTING SYSTEM.
     63					;
     64					; INPUTS:
     65					;	AN 9-WORD ARGUMENT BLOCK POINTED AT BY R0.
     66					;	THUS, WE HAVE: (OFFICIALLY DEFINED BY CMLDF$ MACRO)
     67					;
     68					;	PDST(R0)	; LOGGING DESTINATION
     69					;	PRSN(R0)	; REASON THIS EVENT IS DECLARED.
     70					;	PDT1(R0)	; A FORMAT-DEPENDENT BLOCK OF INFO
     71					;	PDT2(R0)	; ...
     72					;	PLNG(R0)	; LENGTH OF ADDED INFO, IN BYTES
     73					;	PNAM(R0)	; THE RADIX-50 PROCESS NAME
     74					;	PTYP(R0)	; EVENT TYPE CODE (HARDWARE, SOFTWARE, ...)
     75					;	PTAB(R0)	; ADDRESS OF ERROR XLATION TABLE, IF ANY
     76					;	PSTA(R0)	; STATE SPACE FOR USE BY $CMLOG (EXCLUSIVELY)
     77					;
     78					; OUTPUTS:
     79					;	THE MESSAGE IS INITIALIZED, WITH THE FOLLOWING INFORMATION
     80					;	FILLED IN BEFORE CALL TO TYPE-SPECIFIC PROCESSING:
     81					;	 0: EVENT CODE
     82					;	 2: TIMESTAMP
     83					;	 6: PROCESS NAME (.RAD50)
     84					;	10: REASON CODE
     85					;	12: *** TYPE-SPECIFIC INFO BY EVENT ***
     86					;
     87					; SUGGESTED CALLING SEQUENCE:
     88					;	* * *	DURING COROUTINE CALLBACK, THE USER CONTEXT IS RESTORED,
     89					;		EXCEPT THAT R2 IS USED AS A BUFFER POINTER TO BE UPDATED
     90					;		AS INFO IS DEPOSITED IN BUFFER.  IN CASE OF RESOURCE ALLOCATION
     91					;		FAILURE, THE CARRY BIT WILL BE SET, AND THE CALLER MUST NOT
     92					;		DO A COROUTINE CALLBACK.  AFTER COROUTINE EXIT, THE
     93					;		USERS R2 IS RESTORED TO SAME AS ON ORIGINAL $CMLOG CALL.
     94					;		CALLER UPDATES TO OTHER REGISTERS (R1,R3,R4,R5) DURING
     95					;		EXECUTION OF COROUTINE CALLBACK WILL BECOME PERMANENT.
     96					;		R0 MUST NOT BE DESTROYED DURING CALLBACK.
     97					;	REFER TO HANDLING FOR SPECIFIC EVENT TYPE, I.E., ASCEVT, HDWEVT,
     98					;	SFTEVT, AND TOPEVT.
     99					;
    100					;	THE ERROR CODE XLATION IS PROVIDED BY A STANDARD ROUTINE WHICH ACCEPTS
    101					;	AN INPUT ERROR CODE AND A TABLE ADDRESS. THE TABLE STRUCTURE
    102					;	IS DETAILED IN THE ROUTINE "SETRSN".
    103					;-
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 5
$CMLOG

    105					; FINALLY, WE GET TO WORK
    106					.ENABL	LSB
    107	000000	010660 	000020 		$CMLGX::MOV	SP,PSTA(R0)	; NON-ZERO FLAG DENOTING $CMLGX ENTRY
    108	000004	000402 				BR	10$
    109	000006	005060 	000020 		$CMLOG::CLR	PSTA(R0)	; THIS IS NORMAL $CMLOG ENTRY
    110	000012	005760 	000000 		10$:	TST	PDST(R0)	; DO WE HAVE A DESTINATION FOR MSG ?
    111	000016	001507 				BEQ	101$		; NO !
    112	000020					SAVMAP			; SAVE APR6, BECAUSE $CSBGT CLOBBERS IT
    113	000024					SAVRG	<R4,R3,R2,R1,R0>; SAVE SOME REGISTERS
    114	000036	010003 				MOV	R0,R3		; HEREIN, USE R3 TO INDICATE CALLER'S BUFFER
    115	000040	012700 	000016 			MOV	#14.,R0		; WE ALWAYS WRITE AT LEAST 14 BYTES OF DATA
    116	000044	066300 	000010 			ADD	PLNG(R3),R0	; THE CALLER WILL ADD THIS MUCH MORE DATA
    117	000050	026700 	000000G			CMP	$SDBSZ,R0	; WILL AN SDB WORK ?
    118	000054	103403 				BLO	20$		; NO
    119	000056					CALL	$CSBGT		; YES, GET A CCB AND SMALL DATA BUFFER
    120	000062	103011 				BCC	30$		; ALRIGHT
    121	000064	026700 	000000G		20$:	CMP	$RDBSZ,R0	; WILL THIS WORK ?
    122	000070	103453 				BLO	100$		; NOPE, SOMETHING IS BAD WRONG !
    123	000072					CALL	$LDBGT		; YES, GET A CCB AND LDB
    124	000076	103450 				BCS	100$		; OOPS !
    125	000100					MAP	C.BUF(R4)	; MAP THE BUFFER
    126
    127	000106	016364 	000000 	000006 	30$:	MOV	PDST(R3),C.LIN(R4) ; PUT MSG DESTINATION INTO CCB
    128	000114	016402 	000016 			MOV	C.BUF+2(R4),R2	; SET ADDRESS OF THE BUFFER
    129	000120	016322 	000014 			MOV	PTYP(R3),(R2)+	; FILL IN EVENT CODE
    130	000124	012700 	000004 			MOV	#4,R0		; WE WILL NOW MOVE 4 BYTES OF TIMESTAMP
    131	000130	012701 	177770G			MOV	#$TTNS-10,R1	;   FROM THE RSX EXEC
    132	000134	112122 			40$:	MOVB	(R1)+,(R2)+	; MOVE THE DAY, HOUR, MIN, & SEC
    133	000136	005201 				INC	R1		;   THEY ARE STORED IN EXEC AS WORDS
    134	000140					SOB	R0,40$		; ALL FOUR OF THEM
    135	000144	016322 	000012 			MOV	PNAM(R3),(R2)+	; SET THE PROCESS NAME
    136	000150					CALL	SETRSN		; XLATE THE REASON CODE, AND PUT IT IN BUFFER
    137	000154	016300 	000014 			MOV	PTYP(R3),R0	; NOW TO EXAMINE HOW TO HANDLE THIS
    138	000160	006300 				ASL	R0		; MAKE DISPATCH INDEX
    139	000162	020067 	000014 			CMP	R0,TBLN		;  BETTER SAFE THAN SORRY
    140	000166	103010 				BHIS	90$		;   ...
    141	000170					CALLR	@80$(R0)	; CALL THE INDICATED HANDLER
    142
    143
    144					; ** EVENT-TYPE-DEPENDENT DISPATCH TABLE
    145	000174	000210'			80$:	.WORD	90$		; ILLEGAL CODE
    146	000176	000330'				.WORD	ASCEVT		; ASCII LOGGING
    147	000200	000330'				.WORD	ASCEVT		; ASCII LOGGING (ANOTHER FORM)
    148	000202	000344'				.WORD	HDWEVT		; HARDWARE ERROR
    149	000204	000330'				.WORD	SFTEVT		; SOFTWARE ERROR
    150	000206	000330'				.WORD	TOPEVT		; TOPOLOGY CHANGE
    151		000014 			    TBLN=.-80$
    152
    153
    154					; HERE WITH AN ILLEGAL TYPE CODE
    155					;    JUST SEND THE FRAGMENT - THIS IS VALUABLE INFO TOO
    156
    157	000210	016622 	000014 		90$:	MOV	14(SP),(R2)+	; LEAVE SOME DEBUGGING TRACKS
    158	000214					CALLR	QUEUER		; QUEUE THIS FRAGMENT OF MSG
    159									;   AND LEAVE
    160
    161					;
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 5-1
$CMLOG

    162					; HERE TO CLEAN UP STACK & LEAVE
    163					;
    164
    165	000220				100$:	RESRG	<R0,R1,R2,R3,R4>; LET'S GO BACK NOW
    166	000232					RESMAP			; ...
    167	000236	000261 			101$:	SEC			; SAY SOMETHING IS AWRY
    168	000240					RETURN
    169					.DSABL	LSB
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 6
$CMLOG

    171					;+
    172					; ** - SETRSN -- TRANSLATE AND SET THE REASON CODE INTO OUTPUT BUFFER.
    173					;
    174					; INPUTS:
    175					;	R2 = OUTPUT BUFFER ADDRESS
    176					;	R3 = INPUT ARGUMENT BLOCK ADDRESS
    177					;	R0 = R1 = SCRATCH
    178					;
    179					;	IF THE TABLE LENGTH IS FOUND TO BE POSITIVE, THEN A BIT-MAPPED
    180					;	SEARCH WILL BE PERFORMED ON A TABLE STRUCTURED ACCORDING TO:
    181					;		TABLE:	.WORD	LENGTH		;# OF TABLE ENTRIES
    182					;			.WORD	INPUT_BIT , VALUE
    183					;			 ...
    184					;		  LENGTH=<.-TABLE-2>/4
    185					;
    186					;	IF THE TABLE LENGTH IS FOUND TO BE NEGATIVE, THEN A BYTE-VALUED
    187					;	SEARCH WILL BE PERFORMED ON A TABLE STRUCTURED ACCORDING TO:
    188					;		TABLE:	.WORD	-LENGTH		;-# OF TABLE ENTRIES
    189					;			.BYTE	INPUT_BYTE , VALUE
    190					;			 ...
    191					;		  LENGTH=<.-TABLE-2>/2
    192					;
    193					; OUTPUTS:
    194					;	THE SELECTED "VALUE" FROM THE TABLE IS PUT INTO THE OUTPUT
    195					;	BUFFER AT (R2)+.
    196					;-
    197
    198	000242	016346 	000002 		SETRSN:	MOV	PRSN(R3),-(SP)	; GET THE REASON CODE TO HANDY PLACE
    199	000246	016301 	000016 			MOV	PTAB(R3),R1	; GET THE XLATION TABLE ADDRESS
    200	000252	001424 				BEQ	60$		; NO XLATION
    201	000254	012100 				MOV	(R1)+,R0	; PICK UP THE TABLE LENGTH
    202	000256	100410 				BMI	25$		; TIS A BYTE TABLE
    203
    204	000260	031621 			10$:	BIT	(SP),(R1)+	; IS THIS THE ONE ?
    205	000262	001004 				BNE	20$		; YES
    206	000264	005721 				TST	(R1)+		; NO, STEP OVER CODE
    207	000266					SOB	R0,10$		; AND TRY AGAIN
    208	000272	000410 				BR	40$		; GO SET DEFAULT
    209	000274	012116 			20$:	MOV	(R1)+,(SP)	; SET THE DETERMINED CODE
    210	000276	000412 				BR	60$		; FINISH UP
    211
    212	000300	005400 			25$:	NEG	R0		; MAKE THE LENGTH POSITIVE
    213	000302	121621 			30$:	CMPB	(SP),(R1)+	; IS THIS THE ONE ?
    214	000304	001406 				BEQ	50$		; YES
    215	000306	005201 				INC	R1		; NO, SO STEP TO NEXT CODE
    216	000310					SOB	R0,30$		; ...
    217	000314	012716 	000001 		40$:	MOV	#1,(SP)		; OOPS, SET DEFAULT VALUE
    218	000320	000401 				BR	60$		;   AND GET OUT
    219	000322	112116 			50$:	MOVB	(R1)+,(SP)	; SET THE DETERMINED CODE
    220	000324	012622 			60$:	MOV	(SP)+,(R2)+	; PUT THE REASON CODE INTO BUFFER
    221	000326					RETURN			; ALL DONE
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 7
ASCEVT

    223						.SBTTL	ASCEVT
    224						.SBTTL	SFTEVT
    225						.SBTTL	TOPEVT
    226					;+
    227					; ** ASCEVT - ASCII TEXT MESSAGE
    228					; ** SFTEVT - SOFTWARE ERROR/EVENT
    229					; ** TOPEVT - TOPOLOGY CHANGE
    230					;
    231					; PUT ERROR/EVENT STUFF INTO BUFFER WHICH IS ALREADY STARTED.
    232					;
    233					; INPUTS:
    234					;	 PDT1(R3) = EVENT-SPECIFIC DATA
    235					;	 PDT2(R3) = EVENT-SPECIFIC DATA
    236					;
    237					;	R4 = CCB ADDRESS
    238					;	R2 = MESSAGE BUFFER ADDRESS
    239					;	R1 = R0 = SCRATCH
    240					;
    241					; OUTPUTS:
    242					;	MESSAGE CONSISTS OF:
    243					;	 0: COMMON HDR		; AS FILLED IN BY COMMON CMLOG CODE
    244					;				; <CODE>,<TIME_STAMP>,<PROC_NAME>,<REASON>
    245					;	12: EVENT-SPECIFIC DATA FROM PDT1
    246					;	14: EVENT-SPECIFIC DATA FROM PDT2
    247					;
    248					;	16: ** THIS STUFF FILLED IN VIA COROUTINE CALLBACK **
    249					;-
    250
    251	000330				ASCEVT:
    252	000330				SFTEVT:
    253	000330				TOPEVT:
    254	000330	016322 	000004 			MOV	PDT1(R3),(R2)+	; COPY ARG 1
    255	000334	016322 	000006 			MOV	PDT2(R3),(R2)+	;      ARG 2
    256	000340					CALLR	QUEUER		; DO CALLBACK & QUEUEING
    257									;   AND EXIT
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 8
HDWEVT

    259						.SBTTL	HDWEVT
    260					;+
    261					; ** HDWEVT
    262					;
    263					; PUT HARDWARE ERROR STUFF INTO BUFFER WHICH IS ALREADY STARTED.
    264					;
    265					; INPUTS:
    266					;	 PDT1(R3) = STATION,LINE	; .BYTE <SYS_LINE_#>
    267					;					; .BYTE <STATION_#>
    268					;	 PDT2(R3) = DEVICE		; DEVICE ID
    269					;
    270					;	R4 = CCB ADDRESS
    271					;	R3 = ARGUMENT BLOCK ADDRESS
    272					;	R2 = MESSAGE BUFFER ADDRESS
    273					;	R1 = R0 = SCRATCH
    274					;
    275					; OUTPUTS:
    276					;	MESSAGE CONSISTS OF:
    277					;	 0: COMMON HDR		; AS FILLED IN BY COMMON CMLOG CODE
    278					;				; <CODE>,<TIME_STAMP>,<PROC_NAME>,<REASON>
    279					;	12: DEVICE_ID		; .BYTE <DEVICE_ID>
    280					;	13: CONTROLLER		; .BYTE <CONTROLLER_#>
    281					;	14: UNIT		; .BYTE <UNIT_#>
    282					;	15: STATION		; .BYTE <STATION_ADDRESS>
    283					;
    284					;	16: ** THIS STUFF FILLED IN VIA COROUTINE CALLBACK **
    285					;-
    286					;
    287					; DEFINE OFFSETS FOR FORMAT-DEPENDENT STACK ARGUMENTS
    288					;
    289		000004 			PLIN=	PDT1		; SYSTEM LINE #
    290		000005 			PSTN=	PDT1+1		; STATION #
    291		000006 			PDID=	PDT2		; DEVICE ID
    292
    293					;
    294					; HARDWARE ERROR PROCESSING
    295					;
    296	000344	005001 			HDWEVT:	CLR	R1		; CALCULATE THE
    297	000346	156301 	000004 			BISB	PLIN(R3),R1	;  ADDRESS OF THE
    298	000352	070127 	000014 			MUL	#L.LEN,R1	;   SLT ENTRY FOR
    299	000356	066701 	000000G			ADD	$SLTTA,R1	;     THIS SLN
    300	000362	116300 	000006 			MOVB	PDID(R3),R0	; GET DEVICE ID
    301	000366	100022 				BPL	30$		; JUMP AHEAD IF ALREADY HAVE DEV ID
    302	000370	010146 				MOV	R1,-(SP)	;   (SOME CALLERS DON'T KNOW DEV ID)
    303	000372	116100 	000002 			MOVB	L.DDM(R1),R0	; GET DDM PDV
    304	000376	066700 	000000G			ADD	$PDVTA,R0	; SET TO GET PROCESS VECTOR ADDR
    305	000402	011000 				MOV	(R0),R0		; DO IT
    306	000404	016001 	000006 			MOV	Z.NAM(R0),R1	; THIS IS THE RAD50 PROCESS NAME
    307	000410	012700 	000000'			MOV	#CONTAB,R0	; NOW TO DETERMINE THE DEVICE ASSOC W/THIS PROC
    308
    309	000414	020027 	000120'		10$:	CMP	R0,#CONTAB+ENDIX ;LOOKING FOR END OF TABLE
    310	000420	001404 				BEQ	20$		; THIS IS IT
    311	000422	022001 				CMP	(R0)+,R1	; IS THIS THE NAME ?
    312	000424	001373 				BNE	10$		; NOPE
    313	000426	162700 	000002'			SUB	#CONTAB+2,R0	; YEP, CALC THE DEVICE INDEX
    314
    315	000432	012601 			20$:	MOV	(SP)+,R1	; GET BACK THE SLT ADDRESS
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 8-1
HDWEVT

    316	000434	110022 			30$:	MOVB	R0,(R2)+	; SET THE DEVICE ID
    317	000436	116122 	000012 			MOVB	L.CTL(R1),(R2)+	; SET THE CONTROLLER #
    318	000442	116122 	000013 			MOVB	L.UNT(R1),(R2)+ ;   AND UNIT #
    319	000446	116322 	000005 			MOVB	PSTN(R3),(R2)+	;     AND STATION #
    320					;	CALLR	QUEUER		; FALL INTO QUEUER TO FINISH
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 9
QUEUER

    322						.SBTTL	QUEUER
    323					;+
    324					; ** - QUEUER - CALL BACK TO CALLER, THEN CLEAN UP AND LEAVE THE DOMAIN
    325					;		OF $CMLOG.  THIS ROUTINE MUST BE ENTERED ONLY VIA A
    326					;		BRANCH OR JUMP, AS A CALL WILL MESS UP THE STACK OFFSETS.
    327					;
    328					; INPUTS:
    329					;	R2 = CURRENT BUFFER POINTER
    330					;	R3 = ARGUMENT BLOCK POINTER
    331					;	R4 = CCB ADDRESS
    332					;-
    333
    334	000452				QUEUER:	RESRG	<R0,R1>		; RESTORE REGS
    335	000456	012664 	000020 			MOV	(SP)+,C.CNT(R4)	; STASH ORIGINAL R2 HERE FOR AWHILE
    336	000462					RESRG	<R3>		; NOW THE REMAINING REGISTERS
    337	000464	005760 	000020 			TST	PSTA(R0)	;   BUT NOT IF NO CALLBACK (THIS CLEARS C BIT)
    338									;   NOTE CALLER'S ORIGINAL R0 POINTS TO ARGS
    339	000470	001013 				BNE	10$		; NO CALLBACK
    340	000472	010460 	000020 			MOV	R4,PSTA(R0)	; STASH OUR CCB POINTER TEMPORARILY
    341	000476					RESRG	<R4>		; RESTORE LAST REGISTER
    342	000500	016646 	000002 			MOV	2(SP),-(SP)	; PUT RETURN ADDR ON TOP OF STACK
    343	000504					CALL	@(SP)+		; COROUTINE CALL BACK TO CALLER
    344									; TO HAVE SPECIAL INFO FILLED IN,
    345									; UPDATING R2 APPROPRIATELY.
    346	000506	012666 	000002 			MOV	(SP)+,2(SP)	; UPDATE OUR EVENTUAL RETURN ADDRESS
    347	000512	010446 				MOV	R4,-(SP)	; RESAVE R4
    348	000514	016004 	000020 			MOV	PSTA(R0),R4	; GET OUR CCB POINTER
    349	000520	016446 	000020 		10$:	MOV	C.CNT(R4),-(SP)	; SAVE CALLER'S ORIGINAL R2 ON STACK AGAIN
    350	000524	166402 	000016 			SUB	C.BUF+2(R4),R2	; CALCULATE LENGTH OF USED BUFFER
    351	000530	010264 	000020 			MOV	R2,C.CNT(R4)	; SET NUMBER INTO CCB
    352	000534					$QLLC	#<FC.CCP!FS.AST> ; THIS IS WHAT WE HAVE BEEN LEADING TO
    353	000546					RESRG	<R2,R4>		; RESTORE CALLER'S REGISTERS
    354	000552					RESMAP			; FIX UP MAPPING
    355	000556					RETURN			; LEAVE
    356
    357
    358		000001 				.END
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 9-1
SYMBOL TABLE

ASCEVT  000330R  	C.LIN   000006   	FS.XKL= 002000   	M$$FCS= 000000   	UISAR4= 177650
A$$CHK= 000000   	C.LNK   000000   	FS.XOF= 010000   	M$$MGE= 000000   	UISAR5= 177652
A$$CPS= 000000   	C.MOD   000011   	FS.XON= 007000   	M$$OVR= 000000   	UISAR6= 177654
A$$PRI= 000000   	C.NSP   000004   	F$$LVL= 000001   	N$$LDV= 000001   	UISAR7= 177656
A$$TRP= 000000   	C.RSV   000002   	G$$TPP= 000000   	N$$MOV= 000010   	UISDR0= 177600
CB.CCB= 000002   	C.STA   000007   	G$$TSS= 000000   	N$$SYS= 000001   	UISDR4= 177610
CB.RDB= 000004   	C.STS   000012   	G$$TTK= 000000   	N$$USR= 000001   	UISDR5= 177612
CE.ABO= 100362   	D$$BUG= 177514   	G$$WRD= 000000   	PDID  = 000006   	UISDR6= 177614
CE.DIS= 100366   	D$$ISK= 000000   	HDWEVT  000344R  	PDST    000000   	UISDR7= 177616
CE.ERR= 100370   	D$$L11= 000001   	I$$RAR= 000000   	PDT1    000004   	V$$CTR= 001000
CE.MOP= 100372   	D$$YNC= 000000   	I$$RDN= 000000   	PDT2    000006   	X$$DBT= 000000
CE.NTE= 100361   	D$$YNM= 000000   	KDSAR0= 172360   	PIRQ  = 177772   	ZF.DDM= 000001
CE.RTE= 100376   	ENDIX = 000120   	KDSDR0= 172320   	PLIN  = 000004   	ZF.DLC= 000002
CE.SRC= 100364   	E$$XPR= 000000   	KISAR0= 172340   	PLNG    000010   	ZF.KMX= 000020
CE.TMO= 100374   	FC.CCP= 000020   	KISAR5= 172352   	PMODE = 030000   	ZF.LLC= 000004
CF.EOM= 000004   	FC.CTL= 000006   	KISAR6= 172354   	PNAM    000012   	ZF.LMC= 000100
CF.HDR= 000020   	FC.KCP= 000016   	KISAR7= 172356   	PRSN    000002   	ZF.MFL= 000010
CF.LB = 100000   	FC.KIL= 000004   	KISDR0= 172300   	PR0   = 000000   	ZF.MUX= 000040
CF.SOM= 000010   	FC.RCE= 000002   	KISDR6= 172314   	PR1   = 000040   	ZF.TIM= 000200
CF.SYN= 000040   	FC.RCP= 000014   	KISDR7= 172316   	PR4   = 000200   	Z.DAT   000014
CF.TRN= 000100   	FC.TIM= 000010   	K$$CNT= 177546   	PR5   = 000240   	Z.DSP   000000
CMODE = 140000   	FC.XCP= 000012   	K$$CSR= 177546   	PR6   = 000300   	Z.FLG   000011
CONTAB  000000R     002	FC.XME= 000000   	K$$LDC= 000000   	PR7   = 000340   	Z.LEN = 000014
CS.ABO= 000100   	FE.CAL= 000040   	K$$TPS= 000074   	PS    = 177776   	Z.LLN   000010
CS.BUF= 000200   	FE.DRV= 000010   	LD$LP = 000000   	PSTA    000020   	Z.MAP   000016
CS.DCR= 000400   	FE.EXP= 000200   	LF.ACT= 100000   	PSTN  = 000005   	Z.NAM   000006
CS.DEV= 000002   	FE.EXT= 000001   	LF.BWT= 000007   	PTAB    000016   	Z.PCB   000012
CS.DIS= 000040   	FE.EXV= 000004   	LF.DLO= 000040   	PTYP    000014   	Z.SCH   000004
CS.ENB= 000020   	FE.LSI= 000400   	LF.ENA= 002000   	P$$P45= 000000   	$CMLGX  000000RG
CS.EOF= 000001   	FE.MUP= 000002   	LF.MDC= 000100   	P$$WRD= 000000   	$CMLOG  000006RG
CS.ERR= 100000   	FE.MXT= 040000   	LF.MFL= 004000   	QUEUER  000452R  	$CSBGT= ****** GX
CS.HFE= 002000   	FE.NLG= 100000   	LF.MTP= 000020   	Q$$OPT= 000010   	$LDBGT= ****** GX
CS.LST= 040000   	FE.PKT= 000100   	LF.RDY= 040000   	R$$DER= 000000   	$LLCRS= ****** GX
CS.MTL= 004000   	FE.PLA= 000020   	LF.REA= 010000   	R$$K11= 000001   	$PDVTA= ****** GX
CS.RNG= 000010   	FS.AST= 000000   	LF.TIM= 000010   	R$$SND= 000000   	$RDBSZ= ****** GX
CS.ROV= 000004   	FS.CIB= 002000   	LF.UNL= 020000   	R$$11M= 000000   	$SDBSZ= ****** GX
CS.RSN= 010000   	FS.CRA= 001000   	L$$ASG= 000000   	SETRSN  000242R  	$SLTTA= ****** GX
CS.SUC= 000001   	FS.DIS= 013000   	L$$DRV= 000000   	SFTEVT  000330R  	$TTNS = ****** GX
CS.TMO= 020000   	FS.DVC= 001000   	L$$P11= 000001   	SISDR0= 172200   	$$$PAS= 000001
C$$CKP= 000000   	FS.ENB= 012000   	L$$11R= 000000   	SR0   = 177572   	$$$0  = 000001
C$$ORE= 000400   	FS.GET= 006000   	L.CTL   000012   	SR3   = 172516   	$$$10 = 000001
C$$RSH= 177564   	FS.INI= 000000   	L.DDM   000002   	SWR   = 177570   	$$$12 = 000001
C.BID   000003   	FS.KIL= 000000   	L.DDS   000004   	S$$WRG= 000000   	$$$14 = 000001
C.BUF   000014   	FS.LTM= 001000   	L.DLC   000003   	S$$YSZ= 007600   	$$$2  = 000001
C.BUF1  000014   	FS.MNT= 004000   	L.DLM   000006   	TBLN  = 000014   	$$$20 = 000001
C.BUF2  000024   	FS.MSN= 014000   	L.DLS   000010   	TOPEVT  000330R  	$$$24 = 000001
C.CNT   000020   	FS.RNG= 011000   	L.FLG   000000   	TPS   = 177564   	$$$26 = 000001
C.CNT1  000020   	FS.RTN= 001000   	L.LEN = 000014   	T$$KMG= 000000   	$$$30 = 000001
C.CNT2  000030   	FS.SET= 005000   	L.UNT   000013   	T$$MIN= 000000   	$$$34 = 000001
C.FLG   000022   	FS.STM= 000000   	MPAR  = 172100   	UBMPR = 170200   	$$$36 = 000001
C.FLG1  000022   	FS.STP= 002000   	MPCSR = 177746   	UDSAR0= 177660   	$$$4  = 000001
C.FLG2  000032   	FS.STR= 001000   	M$$CRB= 000124   	UDSDR0= 177620   	$$$40 = 000001
C.FNC   000010   	FS.TRM= 003000   	M$$CRX= 000000   	UISAR0= 177640   	$$$6  = 000001

. ABS.	000034	   000
      	000560	   001
CVLDAT	000120	   002
CMLOG	MACRO M1110  13-OCT-79 08:11  PAGE 9-2
SYMBOL TABLE

ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  7469 WORDS  ( 30 PAGES)
DYNAMIC MEMORY:  9004 WORDS  ( 34 PAGES)
ELAPSED TIME:  00:00:28
CMLOG,[130,34]CMLOG/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,CMLOG
CMLOG      CREATED BY  MACRO  ON 13-OCT-79 AT 08:12	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ASCEVT	  000330 R	 5-146      5-147     #7-251     
CONTAB	  000000 R	#3-53       3-53       3-53       3-53       3-53       3-53       3-53       3-53       3-53      
                         3-53       3-53       3-53       3-53       3-53       3-53       3-53       8-307      8-309     
                         8-313     
C.BUF 	  000014	 5-125      5-128      9-350     
C.CNT 	  000020	*9-335      9-349     *9-351     
C.FNC 	  000010	*9-352     
C.LIN 	  000006	*5-127     
ENDIX 	= 000120	#3-53       8-309     
FC.CCP	= 000020	 9-352     
FS.AST	= 000000	 9-352     
HDWEVT	  000344 R	 5-148     #8-296     
I$$AS 	= ******	 3-52      
KISAR6	= 172354	 5-112     *5-125     *5-166     *9-354     
LF.ACT	= 100000	#3-50      
LF.BWT	= 000007	#3-50      
LF.DLO	= 000040	#3-50      
LF.ENA	= 002000	#3-50      
LF.MDC	= 000100	#3-50      
LF.MFL	= 004000	#3-50      
LF.MTP	= 000020	#3-50      
LF.RDY	= 040000	#3-50      
LF.REA	= 010000	#3-50      
LF.TIM	= 000010	#3-50      
LF.UNL	= 020000	#3-50      
L.CTL 	  000012	#3-50       8-317     
L.DDM 	  000002	#3-50       8-303     
L.DDS 	  000004	#3-50      
L.DLC 	  000003	#3-50      
L.DLM 	  000006	#3-50      
L.DLS 	  000010	#3-50      
L.FLG 	  000000	#3-50      
L.LEN 	= 000014	#3-50       8-298     
L.UNT 	  000013	#3-50       8-318     
M$$MGE	= 000000	 5-112      5-125      5-166      9-354     
PDID  	= 000006	#8-291      8-300     
PDST  	  000000	 5-110      5-127     
PDT1  	  000004	 7-254      8-289      8-290     
PDT2  	  000006	 7-255      8-291     
PLIN  	= 000004	#8-289      8-297     
PLNG  	  000010	 5-116     
PNAM  	  000012	 5-135     
PRSN  	  000002	 6-198     
PSTA  	  000020	*5-107     *5-109      9-337     *9-340      9-348     
PSTN  	= 000005	#8-290      8-319     
PTAB  	  000016	 6-199     
PTYP  	  000014	 5-129      5-137     
QUEUER	  000452 R	 5-158      7-256     #9-334     
R$$11D	= ******	 3-52      
R$$11M	= 000000	 3-52      
R$$11S	= ******	 3-52      
SETRSN	  000242 R	 5-136     #6-198     
CMLOG      CREATED BY  MACRO  ON 13-OCT-79 AT 08:12	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

SFTEVT	  000330 R	 5-149     #7-252     
TBLN  	= 000014	 5-139     #5-151     
TOPEVT	  000330 R	 5-150     #7-253     
X$$MCB	= ******	 3-52       3-52      
ZF.DDM	= 000001	#3-52      
ZF.DLC	= 000002	#3-52      
ZF.KMX	= 000020	#3-52      
ZF.LLC	= 000004	#3-52      
ZF.LMC	= 000100	#3-52      
ZF.MFL	= 000010	#3-52      
ZF.MUX	= 000040	#3-52      
ZF.TIM	= 000200	#3-52      
Z.DAT 	  000014	#3-52      
Z.DSP 	  000000	#3-52       3-52      
Z.FLG 	  000011	#3-52      
Z.LEN 	= 000014	#3-52      
Z.LLN 	  000010	#3-52      
Z.MAP 	  000016	#3-52      
Z.NAM 	  000006	#3-52       8-306     
Z.PCB 	  000012	#3-52      
Z.SCH 	  000004	#3-52      
$CMLGX	  000000 RG	#5-107     
$CMLOG	  000006 RG	#5-109     
$CSBGT	= ******  GX	 5-119     
$LDBGT	= ******  GX	 5-123     
$LLCRS	= ******  GX	 9-352     
$PDVTA	= ******  GX	 8-304     
$RDBSZ	= ******  GX	 5-121     
$SDBSZ	= ******  GX	 5-117     
$SLTTA	= ******  GX	 8-299     
$TTNS 	= ******  GX	 5-131     
$$$PAS	= 000001	 3-53      #3-53       3-53       3-53       3-53       3-53       3-53       3-53       3-53      
                         3-53       3-53       3-53       3-53       3-53       3-53       3-53       3-53       3-53      
$$$0  	= 000001	 3-53      #3-53      
$$$10 	= 000001	 3-53      #3-53      
$$$12 	= 000001	 3-53      #3-53      
$$$14 	= 000001	 3-53      #3-53      
$$$2  	= 000001	 3-53      #3-53       3-53      
$$$20 	= 000001	 3-53      #3-53      
$$$24 	= 000001	 3-53      #3-53      
$$$26 	= 000001	 3-53      #3-53      
$$$30 	= 000001	 3-53      #3-53      
$$$34 	= 000001	 3-53      #3-53      
$$$36 	= 000001	 3-53      #3-53      
$$$4  	= 000001	 3-53      #3-53       3-53      
$$$40 	= 000001	 3-53      #3-53      
$$$6  	= 000001	 3-53      #3-53      
CMLOG      CREATED BY  MACRO  ON 13-OCT-79 AT 08:12	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 5-119      5-123      5-136      9-343     
CALLR 		#5-141     #5-158     #7-256     
CCBDF$		#3-48       3-49      
CMLDF$		#3-48       3-51      
CVLMDF		#3-48       3-53      
DVTMDF		#3-53      #3-53      
HWDDF$		#5-112     #5-112     #5-125     #5-125     #5-166     #5-166     #9-354     #9-354     
MAP   		#3-47      #5-125     
PDVDF$		#3-48       3-52      
RESMAP		#3-47       5-166      9-354     
RESRG 		#3-47       5-165      9-334      9-336      9-341      9-353     
RETURN		 5-168      6-221      9-355     
SAVMAP		#3-47       5-112     
SAVRG 		#3-47       5-113     
SLTDF$		#3-48      #3-50      
SOB   		#5-134     #6-207     #6-216     
XXX   		#3-53      #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      
                #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      #3-53      
$QLLC 		#3-47      #9-352