Google
 

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

     4-   58	$CLCRC - CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN
     4-  190	$STCRC - CALCALTE CRC16 ON BLOCK OF DATA
     5-  208	$STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11
     7-  393	$CRC16 - COMPUTE CRC-16
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 3


      1					.IIF DF K$$G11	.TITLE	STCRCK
      2					.IIF NDF K$$G11	.TITLE	STCRC
      3						.IDENT	/V01.00/
      4
      5					;
      6					; COPYRIGHT (C) 1978 BY
      7					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      8					;
      9					;
     10					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
     11					; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
     12					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
     13					; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
     14					; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
     15					; TRANSFERRED.
     16					;
     17					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
     18					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
     19					; CORPORATION.
     20					;
     21					; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
     22					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
     23					;
     24					;
     25					; MODULE DESCRIPTION
     26					;
     27					;	CRC-16 CALCULATION ROUTINES
     28					;
     29					;
     30					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
     31					;
     32					; IDENT HISTORY:
     33					;
     34					; 1.00	10-FEB-78
     35					;	VERSION 2.0 RELEASE
     36					;
     37					;
     38					; EXTERNAL MACRO CALLS
     39					;
     40						.MCALL	CCBDF$,HWDDF$
     41	000000					CCBDF$			;DEFINE THE CCB OFFSETS
     42	000000					HWDDF$			;DEFINE THE HARDWARE REGISTERS
     43
     44					;
     45					; LOCAL SYMBOL DEFINITIONS
     46					;
     47
     48		170700 			KGCSR=	170700			;ADDRESS OF KG11 CSR
     49		000001 			CRC16=  1			;USE CRC 16 CALCULATION
     50		000003 			LRC16=	3			;USE LRC16 CALCULATION
     51		000010 			DDB=	10			;SET KG11 TO WORD MODE
     52		000020 			CLRKG=  20			;INITIALIZE KG11
     53		000100 			SEN=	100			;ENTER CYCLE MODE
     54		000133 			KGLDBC=DDB!LRC16!CLRKG!SEN	;SET TO LOAD NEW BCC ACCUMULATION
     55		000111 			KGINIT=DDB!CRC16!SEN		;INIT TO DO CRC16 CALCULATION
     56
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 4
$CLCRC - CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN

     58					.SBTTL $CLCRC - CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN
     59
     60					;+
     61					; **-$CLCRC-CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN
     62					;
     63					; INPUTS:
     64					;
     65					;	R4 = ADDRESS OF FIRST CCB IN CHAIN
     66					;
     67					;	THE FOLLOWING CCB PARAMETERS ARE USED:
     68					;		C.LNK = ADDRESS OF NEXT CCB (ZERO ENDS THE CHAIN)
     69					;		C.BUF = ADDRESS DOUBLE WORD OF BUFFER
     70					;		C.CNT = LENGTH OF BUFFER
     71					;		C.FLG = FLAGS (CF.LB, CF.HDR, CF.EOM)
     72					;
     73					; OUTPUTS:
     74					;
     75					;	R4 = ADDRESS OF THE FIRST CCB IN THE CHAIN
     76					;
     77					;	ALL CRC'S REQUIRED BY THE CHAIN ARE CALCULATED AND STORED.
     78					;	WHEN CRC CHARACTERS ARE STORED FOLLOWING DATA, THE BYTE COUNT
     79					;	FOR THE PARTICULER BUFFER DESCRIPTOR IS INCREMENTED BY TWO.
     80					;
     81					;
     82					; REGISTERS MODIFIED:
     83					;
     84					;	R2 AND R3
     85					;-
     86
     87	000000				$CLCRC::
     88						.IF DF	M$$MGE
     89
     90							.IF DF	R$$11D!I$$AS
     91
     92						MOV	@#UPAR0+6,-(SP)	; SAVE CALLER'S MAPPING
     93
     94							.IFF
     95
     96	000000	013746 	172352 			MOV	@#KISAR5,-(SP)		;SAVE CALLERS MAPPING ON THE STACK
     97					 		.ENDC
     98
     99						.IFTF
    100	000004	010446 				MOV	R4,-(SP)	;SAVE CALLERS R4, R1, AND R0
    101	000006	010146 				MOV	R1,-(SP)	;...
    102	000010	010046 				MOV	R0,-(SP)	;...
    103	000012	005001 			10$:	CLR	R1		;INITIAL CRC ACCUMULATOR TO 0
    104	000014	000402 				BR	30$		;START CRC ON FIRST BUFFER
    105
    106	000016	011404 			20$:	MOV	(R4),R4		;GET NEXT CCB IN CHAIN
    107	000020	001434 				BEQ	70$		;EXIT IF AT END OF CHAIN
    108	000022	010403 			30$:	MOV	R4,R3		;COPY CCB POINTER
    109	000024	062703 	000014 			ADD	#C.BUF,R3	;POINT TO FIRST BUFFER DESCRIPTOR
    110	000030				40$:				;REFERENCE LABEL
    111						.IFT
    112
    113							.IF DF	R$$11D!I$$AS
    114
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 4-1
$CLCRC - CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN

    115						MOV	(R3)+,@#UPAR0+6	; MAP TO DATA BUFFER AREA
    116
    117							.IFF
    118
    119	000030	012337 	172352 			MOV	(R3)+,@#KISAR5	;MAP TO DATA BUFFER AREA
    120
    121							.ENDC
    122
    123						.IFF
    124
    125						TST	(R3)+		;SKIP RELOCATION BIAS ENTRY
    126
    127						.IFTF
    128
    129	000034	012302 				MOV	(R3)+,R2	;GET OFFSET ADDRESS OF BUFFER
    130						.IFT
    131
    132							.IF DF	R$$11D!I$$AS
    133
    134						BMI	45$		; SCOM ADDRESS ARE ALWAYS CORRECT
    135						ADD	#20000,R2	; MAP THROUGH UPAR3 RATHER THAN UPAR2
    136
    137							.IFF
    138
    139	000036	022702 	140000 			CMP	#140000,R2	;IS THE BUFFER MAPPED BY AN APR < 6 ?
    140	000042	101002 				BHI	45$		;YES-USE THE PROPER APR
    141	000044	162702 	020000 			SUB	#20000,R2	;MAP BUFFER THROUGH KISAR5 (RATHER THAN 6)
    142
    143							.ENDC
    144	000050				45$:
    145						.IFTF
    146	000050	012300 				MOV	(R3)+,R0	;GET LENGTH OF MESSAGE SEGMENT
    147	000052					CALL	STCR2		;CALCULATE CRC ON SEGMENT
    148	000056	032713 	000004 			BIT	#CF.EOM,(R3)	;LAST SEGMENT IN MESSAGE ?
    149	000062	001003 				BNE	60$		;IF NE, YES - STORE CRC
    150	000064	005723 				TST	(R3)+		;LAST SEGMENT IN CCB ?
    151	000066	100753 				BMI	20$		;GET NEXT CCB IN CHAIN IF YES
    152	000070	000757 				BR	40$		;ELSE DO NEXT SEGMENT IN THIS CCB
    153
    154	000072				60$:				;REF LABEL
    155						.IF DF	C$$CRC
    156
    157						MOV	R1,C.CRC(R4)	;STORE CRC IN DEDICATED CELL
    158
    159						.IFF
    160
    161	000072	060002 				ADD	R0,R2		;POINT TO THE END OF THE DATA BUFFER
    162	000074	110122 				MOVB	R1,(R2)+	;STORE CRC FOLLOWING DATA
    163	000076	000301 				SWAB	R1		;...
    164	000100	110122 				MOVB	R1,(R2)+	;...
    165	000102	062743 	000002 			ADD	#2,-(R3)	;INCREMENT COUNT BY TWO
    166
    167						.ENDC
    168
    169	000106	005001 				CLR	R1		;INITIALIZE CRC ACCUMULATION
    170	000110	000742 				BR	20$		;CONTINUE WITH NEXT CCB IN CHAIN
    171
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 4-2
$CLCRC - CALCULATE CRC16 ON A TRANSMIT MESSAGE CHAIN

    172	000112	012600 			70$:	MOV	(SP)+,R0	;RESTORE CALLERS REGISTERS
    173	000114	012601 				MOV	(SP)+,R1	;...
    174	000116	012604 				MOV	(SP)+,R4	;...
    175						.IFT
    176
    177							.IF DF	R$$11D!I$$AS
    178
    179						MOV	(SP)+,@#UPAR0+6	; RESTORE CALLER'S MAPPING
    180
    181							.IFF
    182
    183	000120	012637 	172352 			MOV	(SP)+,@#KISAR5	;RESTORE CALLING PROCESS' MAPPING
    184
    185							.ENDC
    186
    187						.ENDC
    188	000124					RETURN			;RETURN TO CALLER
    189
    190					.SBTTL $STCRC - CALCALTE CRC16 ON BLOCK OF DATA
    191
    192					;+
    193					; **-$STCRC-CHECK CRC16 ON A BLOCK OF DATA
    194					;
    195					; USED TO CALCULATE CRC FOR DDCMP HEADER OR THE ENTIRE DATA PORTION
    196					; OF A DATA OR MOP MESSAGE.  CAN ALSO BE USED FOR FIRST SEGMENT
    197					; OF DATA OR MOP MESSAGE.
    198					;
    199					; INPUT:
    200					;	SAME AS $STCR1 EXCEPT R1 (PARTIAL CRC)
    201					;
    202					; OUTPUT:
    203					;	SAME AS $STCR1 BELOW
    204					;-
    205	000126	005001 			$STCRC::CLR	R1		;SET INITIAL ACCUMULATOR TO ZERO
    206
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 5
$STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11

    208					.SBTTL $STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11
    209
    210					;+
    211					; **-$STCR1-XXX
    212					;
    213					; DO CRC COMPUTATION  ON C(R1) BYTES OF STRING DEFINED BY R2
    214					; USED TO DO CRC ON SEGMENT OF DATA WHERE DATA IS NOT
    215					; CONTIGUOUS.
    216					;
    217					; INPUTS:
    218					;
    219					;	R0 = STRING COUNT IN BYTES
    220					;	R1 = PARTIAL CRC OR 0 IF STARTING NEW CRC
    221					;	R2 = STRING ADDRESS
    222					;	STACK = SUBROUTINE RETURN ADDRESS
    223					;	STACK-2 = BUFFER BIAS (COPIED FROM KISAR6 BY $LIBCL MACRO. BUFFERS
    224					;			MAPPED BY APR < 6 MAY HAVE ANY VALUE IN THIS POSITION)
    225					;
    226					; OUTPUTS:
    227					;
    228					;	R0 = STRING COUNT IN BYTES
    229					;	R1 = UPDATED CRC VALUE
    230					;	R2 = STRING ADDRESS
    231					;	R3,R4,R5 PRESERVED
    232					;-
    233		000001 				P$$70=1			;ASSEMBLE FOR A FAST PROCESSOR
    234	000130				$STCR1::
    235						.IF DF	M$$MGE
    236
    237							.IF DF	R$$11D!I$$AS
    238
    239						MOV	@#UPAR0+6,-(SP)	; SAVE CALLER'S MAPPING
    240						MOV	4(SP),@#UPAR0+6	; MAP BUFFER THROUGH UPAR3
    241						TST	R2		; IS IT AN SCOM ADDRESS?
    242						BMI	5$		; YES ... ADDRESS IS CORRECT
    243						ADD	#20000,R2	; NO ... CHANGE BIAS BY 4K
    244					5$:	CALL	STCR2		; DO CRC
    245						MOV	(SP)+,@#UPAR0+6	; RESTORE CALLER'S MAPPING
    246						RETURN
    247
    248							.IFF
    249
    250	000130	013746 	172352 			MOV	@#KISAR5,-(SP)	;SAVE CALLERS MAPPING
    251	000134	016637 	000004 	172352 		MOV	4(SP),@#KISAR5	;MAP BUFFER THROUGH KISAR5
    252	000142	022702 	140000 			CMP	#140000,R2	;IS THIS BUFFER MAPPED BY A APR < 6 ?
    253	000146	101002 				BHI	5$		;YES-USE ITS PROPER APR
    254	000150	162702 	020000 			SUB	#20000,R2	;USE KISAR5 RATHER THAN KISAR6
    255	000154				5$:	CALL	STCR2		;DO CRC
    256	000160	012637 	172352 			MOV	(SP)+,@#KISAR5	;RESTORE CALLERS BIAS
    257	000164					RETURN
    258
    259							.ENDC
    260
    261						.ENDC
    262
    263
    264	000166				STCR2:
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 5-1
$STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11

    265	000166	010046 				MOV	R0,-(SP)	;SAVE REGISTERS
    266	000170	010246 				MOV	R2,-(SP)
    267	000172	010346 				MOV	R3,-(SP)
    268	000174	010446 				MOV	R4,-(SP)
    269
    270						.IF NDF	K$$G11
    271
    272					; USE SOFTWARE CRC IF KG11 IS NOT IN SYSTEM.
    273					;
    274	000176	010046 				MOV	R0,-(SP)	;COUNT USED ON STACK
    275	000200	010204 				MOV	R2,R4		;COPY BYTE ADDRESS POINTER
    276	000202	005316 			10$:	DEC	(SP)		;COUNT DOWN
    277	000204	002404 				BLT	20$		;IF LT, DONE
    278	000206	112400 				MOVB	(R4)+,R0	;GET NEXT BYTE
    279	000210					CALL	$CRC16		;GO TO CRC16 SUBROUTINE
    280	000214	000772 				BR	10$		;CHECK COUNT
    281	000216	005726 			20$:	TST	(SP)+		;REMOVE COUNT
    282
    283						.IFF
    284					;
    285					; SYSTEM HAS KG-11 CRC OPTION.  THE DEVICE STATUS MUST BE SAVED AND
    286					; RESTORED SINCE DEVICE MAY BE SHARED.
    287					;
    288						MOV	#KGCSR,R4	;POINT TO KG11 CSR REGISTER
    289						MOV	(R4)+,-(SP)	;SAVE CURRENT STATUS REGISTER
    290						MOV	(R4),-(SP)	;SAVE CURRENT BCC ACCUMULATOR
    291						MOV	#KGLDBC,-(R4)	;SETUP TO LOAD NEW BCC ACCUMULATOR
    292					;
    293						.IF DF	P$$70
    294					;
    295					; THE KG-11 NORMALLY OPERATES FASTER THAN MOST PROCESSORS AND A
    296					; CHECK FOR DONE IS UNNECCESSARY.  HOWEVER, FOR CERTAIN PROCESSORS,
    297					; THE CHECK MUST BE MADE.
    298					;
    299					25$:	TSTB	(R4)		;CHECK DONE (FOR FAST CYCLE PROCESSORS)
    300						BPL	25$		;LOOP IF NOT READY
    301
    302						.IFTF
    303
    304						MOV	R1,4(R4)	;LOAD NEW CRC
    305						MOV	#KGINIT,(R4)	;INIT FOR CRC16
    306
    307						.IFT
    308
    309					28$:	TSTB	(R4)		;CHECK DONE
    310						BPL	28$		;LOOP IF NOT READY
    311
    312						.IFTF
    313					;
    314					; THE CRC IS COMPUTED A WORD AT A TIME WHEN POSSIBLE.  ODD BYTES AT
    315					; BEGINNING (ODD ALIGNED BUFFER) AND END (ODD LENGTH) ARE HANDLED
    316					; SEPARATELY.
    317					;
    318						CMP	(R4)+,(R4)+	;POINT TO KG11 DATA REGISTER
    319						BIT	#1,R2		;BUFFER START ON BYTE BOUNDARY?
    320						BEQ	35$		;START USING WORDS IF NOT
    321					30$:	BIC	#DDB,-4(R4)	;SET KG11 TO BYTE MODE
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 5-2
$STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11

    322						MOVB	(R2)+,(R4)	;DO CRC ON BYTE
    323						BIS	#DDB,-4(R4)	;SET BACK TO WORD MODE
    324						DEC	R0		;DECREMENT COUNT
    325						BLE	60$		;DONE IF LESS OR EQUAL
    326					35$:	ASR	R0		;CONVERT COUNT TO WORDS
    327						ROR	-(SP)		;SAVE ODD BYTE COUNT ON STACK
    328					40$:	DEC	R0		;DEC WORD COUNTER
    329						BLT	50$		;BR IF DONE
    330						MOV	(R2)+,(R4)	;DO CRC ON WORD
    331
    332						.IFT
    333					;
    334					; KG-11 WORST CASE COMPUTATION TIME IS 2 MICROSECONDS.  THIS
    335					; REQUIRES AT LEAST 7 MEMORY CYCLES ON CURRENT MACHINES.
    336					;
    337						NOP
    338						NOP			;USE NOP TO WAIT FOR DEVICE TO FINISH
    339
    340						.IFTF
    341
    342						BR	40$		;CHECK ON COUNT
    343					;
    344					50$:	TST	(SP)+		;CHECK FOR ODD BYTE COUNT
    345						BMI	30$		;BR IF ONE LAST BYTE TO GO
    346					60$:	MOV	-(R4),R1	;RETURN NEW CRC IN R1
    347						MOV	#KGLDBC,-(R4)	;SET UP TO RESTORE OLD BCC
    348
    349						.IFT
    350
    351					70$:	TSTB	(R4)		;DONE YET?
    352						BPL	70$		;LOOP IF NOT
    353
    354						.ENDC
    355
    356						MOV	(SP)+,4(R4)	;LOAD OLD BCC
    357						MOV	(SP)+,(R4)	;RESTORE OLD CSR STATUS
    358
    359						.ENDC
    360
    361	000220	012604 				MOV	(SP)+,R4	;RESTORE R4,R3,R2,R0
    362	000222	012603 				MOV	(SP)+,R3
    363	000224	012602 				MOV	(SP)+,R2
    364	000226	012600 				MOV	(SP)+,R0
    365	000230					RETURN			;EXIT
    366
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 6
$STCR1 - DO CRC ON STRING USING SUBROUTINE OR KG-11

    368					; LOCAL MACRO
    369					;
    370					; DO EXCLUSIVE OR IF PROCESSOR DOESN'T HAVE  XOR INSTRUCTION
    371					;
    372					; XOR	A,B
    373					;
    374					; EXCLUSIVE OR A WITH B, LEAVING RESULT IN B
    375
    376						.IF DF	P$$40!P$$34!P$$45!P$$70
    377
    378		000000 				R$$EIS=0
    379
    380						.ENDC
    381
    382						.IF NDF	R$$EIS
    383
    384						.MACRO	XOR	A,B
    385						MOV	A,R3		;COPY A
    386						BIC	B,R3		;A <- A AND NOT B
    387						BIC	A,B		;B <- B AND NOT A
    388						BIS	R3,B		;B <- A OR B
    389						.ENDM
    390
    391						.ENDC
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 7
$CRC16 - COMPUTE CRC-16

    393					.SBTTL $CRC16 - COMPUTE CRC-16
    394					;
    395					; THIS ROUTINE IS CALLED FROM COMMUNICATIONS CODE TO COMPUTE THE
    396					; REDUNDANCY CHECK BASED ON P(X)=X**16+X**15+X**2+1.
    397					; TIMING: C. 113.5 MICROSECONDS ON 11/05 OR 11/10
    398					;	  C. 30 MICROSECONDS ON 11/40
    399					; TIMES INCLUDE JSR IN AND RTS OUT.
    400					;
    401					; INPUTS:
    402					;
    403					;	R0=BYTE TO CHECK
    404					;	R1=CRC ACCUMULATOR (NOT INITIALIZED)
    405					;	(SP)=RETURN PC
    406					;
    407					; OUTPUTS:
    408					;
    409					;	R1 = NEW OR UPDATED CRC ACCUMULATION
    410					;	R0,R2,R3 ARE DESTROYED
    411					;-
    412
    413	000232				$CRC16::			;REFERENCE LABEL
    414	000232				A:				;REFERENCE LABEL
    415						.IF NDF	K$$G11
    416
    417	000232	074100 				XOR	R1,R0		;EXCLUSIVE OR BYTE WITH OLD CRC
    418	000234	010002 				MOV	R0,R2		;SAVE A COPY OF RESULT
    419	000236	042700 	177760 			BIC	#177760,R0	;EXTRACT LOW 4 BITS
    420	000242	006300 				ASL	R0		;BYTE ADDRESS, WORD INDEX
    421	000244	060700 				ADD	PC,R0		;SET UP PIC ADDRESS
    422	000246	016000 	000036 			MOV	CTABL-.(R0),R0	;GET FIRST MODIFIER WORD
    423	000252	042702 	177417 			BIC	#177417,R2	;NOW EXTRACT HIGH 4 BITS
    424	000256	006202 				ASR	R2		;SET UP TO ENTER SECOND HALF
    425	000260	006202 				ASR	R2		;AGAIN BYTE ADDRESS TO
    426	000262	006202 				ASR	R2		;WORD INDEX
    427	000264	060702 				ADD	PC,R2		;SET UP PIC ADDRESS
    428	000266	016202 	000056 			MOV	CTABL+32.-.(R2),R2 ;GET SECOND MODIFIER WORD
    429	000272	074200 				XOR	R2,R0		;EXCLUSIVE OR MODIFIER VALUES
    430	000274	105001 				CLRB	R1		;CLEAR LOW BYTE OR OLD CRC
    431	000276	000301 				SWAB	R1		;NOW WORK ON UPPER BYTE
    432	000300	074001 				XOR	R0,R1		;PRODUCE UPDATED CRC
    433
    434						.IFF
    435
    436					; THIS ROUTINE SHOULD NEVER BE CALLED WHEN THE SYSTEM HAS A
    437					; KG11 FOR CALCULATION OF CRC.  THIS IS A FATAL ERROR!!!!!
    438
    439						BPT			;CAUSE CRASH TO CATCH CONDITION
    440
    441						.IFTF
    442
    443	000302					RETURN
    444					;
    445					; LOCAL DATA - MODIFIER TABLES
    446					;
    447
    448
    449						.IFT
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 7-1
$CRC16 - COMPUTE CRC-16

    450
    451	000304	000000 			CTABL:	.WORD	0		;FIRST HALF OF TABLE
    452	000306	140301 				.WORD	140301
    453	000310	140601 				.WORD	140601
    454	000312	000500 				.WORD	   500
    455	000314	141401 				.WORD	141401
    456	000316	001700 				.WORD	  1700
    457	000320	001200 				.WORD	  1200
    458	000322	141101 				.WORD	141101
    459	000324	143001 				.WORD	143001
    460	000326	003300 				.WORD	  3300
    461	000330	003600 				.WORD	  3600
    462	000332	143501 				.WORD	143501
    463	000334	002400 				.WORD	  2400
    464	000336	142701 				.WORD	142701
    465	000340	142201 				.WORD	142201
    466	000342	002100 				.WORD	  2100
    467
    468	000344	000000 				.WORD	0		;SECOND HALF OF TABLE
    469	000346	146001 				.WORD	146001
    470	000350	154001 				.WORD	154001
    471	000352	012000 				.WORD	 12000
    472	000354	170001 				.WORD	170001
    473	000356	036000 				.WORD	 36000
    474	000360	024000 				.WORD	 24000
    475	000362	162001 				.WORD	162001
    476	000364	120001 				.WORD	120001
    477	000366	066000 				.WORD	 66000
    478	000370	074000 				.WORD	 74000
    479	000372	132001 				.WORD	132001
    480	000374	050000 				.WORD	 50000
    481	000376	116001 				.WORD	116001
    482	000400	104001 				.WORD	104001
    483	000402	042000 				.WORD	 42000
    484
    485						.ENDC
    486
    487		000152 			$C16LN==.-A			;LENGTH OF CODE IN BYTES
    488		000001 				.END
STCRC	MACRO M1110  13-OCT-79 08:10  PAGE 7-2
SYMBOL TABLE

A       000232R  	CTABL   000304R  	FE.EXP= 000200   	KGCSR = 170700   	P$$P45= 000000
A$$CHK= 000000   	C$$CKP= 000000   	FE.EXT= 000001   	KGINIT= 000111   	P$$WRD= 000000
A$$CPS= 000000   	C$$ORE= 000400   	FE.EXV= 000004   	KGLDBC= 000133   	P$$70 = 000001
A$$PRI= 000000   	C$$RSH= 177564   	FE.LSI= 000400   	KISAR0= 172340   	Q$$OPT= 000010
A$$TRP= 000000   	C.BID   000003   	FE.MUP= 000002   	KISAR5= 172352   	R$$DER= 000000
CB.CCB= 000002   	C.BUF   000014   	FE.MXT= 040000   	KISAR6= 172354   	R$$EIS= 000000
CB.RDB= 000004   	C.BUF1  000014   	FE.NLG= 100000   	KISAR7= 172356   	R$$K11= 000001
CE.ABO= 100362   	C.BUF2  000024   	FE.PKT= 000100   	KISDR0= 172300   	R$$SND= 000000
CE.DIS= 100366   	C.CNT   000020   	FE.PLA= 000020   	KISDR6= 172314   	R$$11M= 000000
CE.ERR= 100370   	C.CNT1  000020   	FS.AST= 000000   	KISDR7= 172316   	SEN   = 000100
CE.MOP= 100372   	C.CNT2  000030   	FS.CIB= 002000   	K$$CNT= 177546   	SISDR0= 172200
CE.NTE= 100361   	C.FLG   000022   	FS.CRA= 001000   	K$$CSR= 177546   	SR0   = 177572
CE.RTE= 100376   	C.FLG1  000022   	FS.DIS= 013000   	K$$LDC= 000000   	SR3   = 172516
CE.SRC= 100364   	C.FLG2  000032   	FS.DVC= 001000   	K$$TPS= 000074   	STCR2   000166R
CE.TMO= 100374   	C.FNC   000010   	FS.ENB= 012000   	LD$LP = 000000   	SWR   = 177570
CF.EOM= 000004   	C.LIN   000006   	FS.GET= 006000   	LRC16 = 000003   	S$$WRG= 000000
CF.HDR= 000020   	C.LNK   000000   	FS.INI= 000000   	L$$ASG= 000000   	S$$YSZ= 007600
CF.LB = 100000   	C.MOD   000011   	FS.KIL= 000000   	L$$DRV= 000000   	TPS   = 177564
CF.SOM= 000010   	C.NSP   000004   	FS.LTM= 001000   	L$$P11= 000001   	T$$KMG= 000000
CF.SYN= 000040   	C.RSV   000002   	FS.MNT= 004000   	L$$11R= 000000   	T$$MIN= 000000
CF.TRN= 000100   	C.STA   000007   	FS.MSN= 014000   	MPAR  = 172100   	UBMPR = 170200
CLRKG = 000020   	C.STS   000012   	FS.RNG= 011000   	MPCSR = 177746   	UDSAR0= 177660
CMODE = 140000   	DDB   = 000010   	FS.RTN= 001000   	M$$CRB= 000124   	UDSDR0= 177620
CRC16 = 000001   	D$$BUG= 177514   	FS.SET= 005000   	M$$CRX= 000000   	UISAR0= 177640
CS.ABO= 000100   	D$$ISK= 000000   	FS.STM= 000000   	M$$FCS= 000000   	UISAR4= 177650
CS.BUF= 000200   	D$$L11= 000001   	FS.STP= 002000   	M$$MGE= 000000   	UISAR5= 177652
CS.DCR= 000400   	D$$YNC= 000000   	FS.STR= 001000   	M$$OVR= 000000   	UISAR6= 177654
CS.DEV= 000002   	D$$YNM= 000000   	FS.TRM= 003000   	N$$LDV= 000001   	UISAR7= 177656
CS.DIS= 000040   	E$$XPR= 000000   	FS.XKL= 002000   	N$$MOV= 000010   	UISDR0= 177600
CS.ENB= 000020   	FC.CCP= 000020   	FS.XOF= 010000   	N$$SYS= 000001   	UISDR4= 177610
CS.EOF= 000001   	FC.CTL= 000006   	FS.XON= 007000   	N$$USR= 000001   	UISDR5= 177612
CS.ERR= 100000   	FC.KCP= 000016   	F$$LVL= 000001   	PIRQ  = 177772   	UISDR6= 177614
CS.HFE= 002000   	FC.KIL= 000004   	G$$TPP= 000000   	PMODE = 030000   	UISDR7= 177616
CS.LST= 040000   	FC.RCE= 000002   	G$$TSS= 000000   	PR0   = 000000   	V$$CTR= 001000
CS.MTL= 004000   	FC.RCP= 000014   	G$$TTK= 000000   	PR1   = 000040   	X$$DBT= 000000
CS.RNG= 000010   	FC.TIM= 000010   	G$$WRD= 000000   	PR4   = 000200   	$CLCRC  000000RG
CS.ROV= 000004   	FC.XCP= 000012   	I$$RAR= 000000   	PR5   = 000240   	$CRC16  000232RG
CS.RSN= 010000   	FC.XME= 000000   	I$$RDN= 000000   	PR6   = 000300   	$C16LN= 000152 G
CS.SUC= 000001   	FE.CAL= 000040   	KDSAR0= 172360   	PR7   = 000340   	$STCRC  000126RG
CS.TMO= 020000   	FE.DRV= 000010   	KDSDR0= 172320   	PS    = 177776   	$STCR1  000130RG

. ABS.	000034	   000
      	000404	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  5225 WORDS  ( 21 PAGES)
DYNAMIC MEMORY:  5836 WORDS  ( 22 PAGES)
ELAPSED TIME:  00:00:16
STCRC,[130,34]STCRC/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,STCRC
STCRC      CREATED BY  MACRO  ON 13-OCT-79 AT 08:10	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

A     	  000232 R	#7-414      7-487     
CF.EOM	= 000004	 4-148     
CLRKG 	= 000020	#3-52       3-54      
CRC16 	= 000001	#3-49       3-55      
CTABL 	  000304 R	 7-422      7-428     #7-451     
C$$CRC	= ******	 4-155     
C.BUF 	  000014	 4-109     
DDB   	= 000010	#3-51       3-54       3-55      
I$$AS 	= ******	 4-90       4-113      4-132      4-177      5-237     
KGCSR 	= 170700	#3-48      
KGINIT	= 000111	#3-55      
KGLDBC	= 000133	#3-54      
KISAR5	= 172352	 4-96       4-119      4-183      5-250      5-251      5-256     
K$$G11	= ******	 3-1        3-2        5-270      7-415     
LRC16 	= 000003	#3-50       3-54      
M$$MGE	= 000000	 4-88       5-235     
P$$34 	= ******	 6-376     
P$$40 	= ******	 6-376     
P$$45 	= ******	 6-376     
P$$70 	= 000001	#5-233      6-376     
R$$EIS	= 000000	#6-378      6-382     
R$$11D	= ******	 4-90       4-113      4-132      4-177      5-237     
SEN   	= 000100	#3-53       3-54       3-55      
STCR2 	  000166 R	 4-147      5-255     #5-264     
$CLCRC	  000000 RG	#4-87      
$CRC16	  000232 RG	 5-279     #7-413     
$C16LN	= 000152  G	#7-487     
$STCRC	  000126 RG	#4-205     
$STCR1	  000130 RG	#5-234     
STCRC      CREATED BY  MACRO  ON 13-OCT-79 AT 08:10	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 4-147      5-255      5-279     
CCBDF$		#3-40      #3-41      
HWDDF$		#3-40      #3-42      
RETURN		 4-188      5-257      5-365      7-443