Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/dte.list
There are no other files named dte.list in the archive.
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37
TABLE OF CONTENTS

     5-   61	PARAMETERS
     6-   69	MACROS
     7-  101	GENERAL DEFINITIONS
     8-  136	DTE20 REGISTER DEFINITIONS
     9-  201	COMMUNICATIONS REGION DEFINITIONS
    10-  264	DTE20 LINE TABLE DEFINITIONS
    11-  288	PURE DATA
    12-  329	$DTEIS -- DTE20 INTERRUPT SERVICE
    13-  356	XMENA -- TRANSMIT REQUEST
    14-  377	RCENA -- RECEIVE ENABLE
    15-  396	KILL -- ABORT
    16-  413	CNTRL/CTLCMP -- CONTROL SUBFUNCTION
    17-  481	START -- START QUEUED PROTOCOL
    18-  692	STOP -- STOP PROTOCOL
    19-  770	ENABLE/DISABL -- ENABLE/DISABLE LINE
    20-  781	TMOUT -- TIMER EXPIRED
    21-  822	XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
    22-  864	T10DON -- TO -10 DONE SERVICE
    23-  910	T11DON -- TO -11 DONE SERVICE
    24-  958	DORBEL -- TO -11 DOORBELL SERVICE
    25-  993	STRTXQ -- START TRANSMIT QUEUE
    26- 1053	STRTRQ -- START RECEIVE
    27- 1157	DEPSTS -- DEPOSIT TO-HIM STATUS WORD
    28- 1169	EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
    29- 1220	PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
    30- 1255	WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
    31- 1291	CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
    32- 1386	XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MANAGEMENT RO
    33- 1465	ASYERR -- ASYNCHRONOUS ERROR PROCESSING
    34- 1549	LOGGIT - EVENT LOGGING                                          ;BH0004
    35- 1583	END
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 4


      2						.TITLE	DTE -- DTE20 DDM/DLC DRIVER FOR MCB
      3						.IDENT	/V01.12/
      4					;
      5					; *** COPYRIGHT (C) 1976, 1977
      6					; *** DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA  01754
      7					;
      8					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY  ON  A  SINGLE
      9					; COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION OF THE ABOVE
     10					; COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT
     11					; BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR
     12					; USE ON SUCH SYSTEM AND TO ONE  WHO  AGREES  TO  THESE  LICENSE  TERMS.
     13					; TITLE  TO  AND  OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN
     14					; DEC.
     15					;
     16					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE  WITHOUT  NOTICE
     17					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
     18					; CORPORATION.
     19					;
     20					; DEC ASSUMES NO RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY  OF  ITS
     21					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     22					;
     23					;
     24					; MODULE:  DTE -- DTE20 DDM/DLC DRIVER FOR MCB
     25					;
     26					; AUTHOR:  TOM PORCHER
     27					;
     28					; DATE:  3 FEBRUARY 1977
     29					;
     30					; EDIT HISTORY:
     31					;
     32					; 1.01	23-MAY-78  LEE WEBBER
     33					;	SUPPORT MOS MEMORY ON THE 2060 BY GOING INTO A PASSIVE STATE
     34					;	WHEN THE VALID EXAMINE BIT GOES OFF.  THE BIT WILL BE INSPECTED
     35					;	ONLY ON THE RECEIPT OF A DOORBELL INTERRUPT; WHEN IT GOES ON
     36					;	AGAIN, THE PRIMARY PROTOCOL WILL BE CONTINUED.
     37					; 1.02	17-NOV-78  BUREN W. HOFFMAN
     38					;	MODIFICATIONS TO ACCOMODATE EVENT LOGGING.
     39					; 1.03	22-DEC-78  BUREN W. HOFFMAN
     40					;	ADDED LINE COUNTERS TO DLT, AND ASSOC DTE CODE.
     41					; 1.04	12-JAN-79  BUREN W. HOFFMAN
     42					;	MODIFIED TO USE NEW $CMLOG (V1.01).
     43					; 1.05	30-JAN-79  BUREN W. HOFFMAN
     44					;	OMITTED ERROR CODE TABLE SEARCH - USE THE ONE IN $CMLOG.
     45					; 1.06	1-FEB-79   BUREN W. HOFFMAN
     46					;	CHANGED TO GLOBAL INVOCATION OF LINE TABLE DEFINITION MACROS.
     47					; 1.07	2-FEB-79   BUREN W. HOFFMAN
     48					;	ADDED ERROR RETURN DETECTION IN COROUTINE CALL TO $CMLOG.  ALSO,
     49					;	STARTED UTILIZING EVLDF$ MACRO FOR LOGGING SYMBOLS.
     50					; 1.10	12-FEB-79  BUREN W. HOFFMAN
     51					;	REMOVED TIMEOUT COUNTER, BECAUSE IT IS USED ROUTINELY TO GET
     52					;	OPERATIONS GOING (SYNCHRONIZATION), NOT AS AN ERROR INDICATION.
     53					; 1.11	19-FEB-79  BUREN W. HOFFMAN
     54					;	FIXED LOGGING LENGTH TO SAY CORRECT NUMBER OF BYTES OF REGISTERS.
     55					;	IT WAS SAYING 2 MORE THAN WERE ACTUALLY WRITTEN.
     56					; 1.12	21-FEB-79  BUREN W. HOFFMAN
     57					;	CORRECTED ERR IN COR FILE WHICH CAUSED STUFF TO BE INSERTED WRONG.
     58
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 4-1


     59					; *** END OF EDIT HISTORY ***
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 5
PARAMETERS

     61						.SBTTL	PARAMETERS
     62					;
     63					; *** PARAMETERS ***
     64					;
     65		000000 				X$$BUG=	0		;DEBUG VERSION IF DEFINED
     66		000000 				D$$CHK=	0		;DTE20 CONSISTENCY CHECKING . . .
     67		000000 				P$$CHK=	0		;PROTOCOL CONSISTENCY CHECKING . . .
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 6
MACROS

     69						.SBTTL	MACROS
     70					;
     71					; MISCELANEOUS MCALL'S
     72					;
     73					.MCALL	CCBDF$,HWDDF$,DTEDF$,CMLDF$,EVLDF$,DEVDF,$INTXT,CALL,RETURN             ;BH0007
     74	000000					CCBDF$                                                                  ;**-1
     75	000000					HWDDF$
     76					;                                                                               ;**-1
     77					;
     78					; MACROS
     79					;
     80					;
     81					; "CALLR DEST" -- CALL DEST AND RETURN
     82					;
     83					.MACRO CALLR,DEST
     84						 JMP	DEST		;CALL DEST AND RETURN
     85					.ENDM CALLR
     86					;
     87					; "CALLRB DEST" -- CALL DEST AND RETURN (IF BRANCH WILL DO)
     88					;
     89					.MACRO CALLRB,DEST
     90						 BR	DEST		;CALL DEST AND RETURN
     91					.ENDM CALLRB
     92					;
     93					; "CALLRX DEST" -- CALL DEST AND RETURN (IF NOTHING WILL DO)
     94					;
     95					.MACRO CALLRX,DEST
     96					.IF DF PASS2
     97					.IIF NE <.-DEST>,.ERROR <.-DEST> ; CALLRX DEST WHERE NOT VALID
     98					.ENDC
     99					.ENDM
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 7
GENERAL DEFINITIONS

    101						.SBTTL	GENERAL DEFINITIONS
    102					;
    103					; GENERAL BIT DEFINITIONS
    104					;
    105		000001 			BIT0=	000001
    106		000002 			BIT1=	000002
    107		000004 			BIT2=	000004
    108		000010 			BIT3=	000010
    109		000020 			BIT4=	000020
    110		000040 			BIT5=	000040
    111		000100 			BIT6=	000100
    112		000200 			BIT7=	000200
    113		000400 			BIT8=	000400
    114		001000 			BIT9=	001000
    115		002000 			BIT10=	002000
    116		004000 			BIT11=	004000
    117		010000 			BIT12=	010000
    118		020000 			BIT13=	020000
    119		040000 			BIT14=	040000
    120		100000 			BIT15=	100000
    121					;
    122					; STATUS RETURN CODES, RETURNED IN C.STS
    123					; *** TEMPORARY ***
    124					;
    125		000001 			CS.SUC=	1			;SUCCESS
    126					;
    127					;	-1.
    128		177776 			CS.HLT=	-2.			;PROTOCOL HALTED
    129					;	-3.
    130		177774 			CS.SRO=	-4.			;START RECEIVED WHILE ONLINE
    131		177773 			CS.TDN=	-5.			;-10 HALTED OR PROCESSOR DOWN
    132		177772 			CS.TRE=	-6.			;TRANSFER DATA ERROR
    133		177771 			CS.DCK=	-7.			;DTE20 CONSISTENCY CHECK
    134		177770 			CS.PCK=	-8.			;PROTOCOL CONSISTENCY CHECK
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 8
DTE20 REGISTER DEFINITIONS

    136						.SBTTL	DTE20 REGISTER DEFINITIONS
    137					;
    138					; DTE20 REGISTER DEFINITIONS
    139					;
    140					;
    141					; THE FOLLOWING 12 REGISTERS ARE IN RAMS
    142					;
    143		000000 			DLYCNT=	0			;DELAY COUNTER
    144		100000 				BUSA17=	BIT15		; UNIBUS ADDRESS BIT 17
    145		040000 				BUSA16=	BIT14		; UNIBUS ADDRESS BIT 16
    146		037777 				DLYMSK=	37777		; DELAY COUNTER
    147		000002 			DEXWD3=	2			;DEPOSIT/EXAMINE WORD 3
    148		000004 			DEXWD2=	4			; . . 2
    149		000006 			DEXWD1=	6			; . . 1
    150		000010 			TENAD1=	10			;KL-10 MEMORY ADDRESS WORD 1:
    151		160000 				SPACE=	BIT15!BIT14!BIT13 ; ADDRESS SPACE FOR UNPROTECTED EXAMINE/DEPOSIT
    152		010000 				DEP=	BIT12		; 0-- EXAMINE, 1-- DEPOSIT
    153		004000 				PRTOFF=	BIT11		; PROTECT OFF
    154		000177 				TENADM=	177		; KL10 ADDRESS BITS 13-19
    155		000012 			TENAD2=	12			;KL10 ADDRESS BITS 20-35 (WRITE STARTS EXAMINE/DEPOSIT)
    156		000014 			TO10BC=	14			;TO -10 BYTE (WORD) COUNT:
    157		007777 				TO10CM=	7777		; BYTE (WORD) COUNT (SET BY -10 "DATAO DTE,"
    158		000016 			TO11BC=	16			;TO -11 BYTE (WORD) COUNT (WRITE STARTS TO -11 TRANSFER)
    159		100000 				TO11IB=	BIT15		; INTERRUPT BOTH -10 AND -11 WHEN DONE
    160		020000 				TO11BM=	BIT13		; TO -11 BYTE MODE
    161		007777 				TO11CM=	7777		; BYTE (WORD) COUNT
    162		000020 			TO10AD=	20			;TO -10 ADDRESS
    163		000022 			TO11AD=	22			;TO -11 ADDRESS
    164		000024 			TO10DT=	24			;TO -10 DATA WORD
    165		000026 			TO11DT=	26			;TO -11 DATA WORD
    166					;
    167					; THE FOLLOWING 4 REGISTERS ARE IN FLIP-FLOPS AND MUST BE USED AS FOLLOWS:
    168					;	READ (R) -- ANY BIT MAY BE READ AS DEFINED BELOW.
    169					;	WRITE (W) -- WRITING A 0 HAS NO EFFECT,
    170					;		     WRITING A 1 HAS THE EFFECT DEFINED BELOW.
    171					;	!!! EACH BIT HAS SEPERATE MEANINGS ON READ AND WRITE.                !!!
    172					;	!!! WRITING A 1 INTO UNDEFINED BITS WILL GIVE UNPREDICTABLE RESULTS. !!!
    173					;	!!! THIS IMPLIES THAT "BIS", "BIC" AND ALL OTHER READ/MODIFY/WRITE   !!!
    174					;	!!! INSTRUCTIONS MUST NEVER BE USED TO REFERENCE THESE REGISTERS.    !!!
    175					;
    176		000030 			DIAG1=	30			;DIAGNOSTIC/CONTROL REGISTER 1
    177		000032 			DIAG2=	32			;DIAGNOSTIC/CONTROL REGISTER 2:
    178		000100 				DRESET=	BIT6		; (W) DTE20 RESET
    179		000034 			CSTAT=	34			;CONTROL/STATUS REGISTER:
    180		100000 				TO10DN=	BIT15		; (R) TO -10 TRANSFER DONE
    181		040000 				DON10C=	BIT14		; (W) CLEAR TO -10 DONE
    182		020000 				TO10ER=	BIT13		; (R) TO -10 TRANSFER ERROR
    183		010000 				ERR10C=	BIT12		; (W) CLEAR TO -10 TRANSFER ERROR
    184		004000 				TO11DB=	BIT11		; (R/W) TO -11 DOORBELL
    185		002000 				INT11C=	BIT10		; (W) CLEAR TO -11 DOORBELL
    186		001000 				MPE11=	BIT9		; (R/W) -11 MEMORY PARITY ERROR (W(1): CLEAR)
    187		000400 				TO10DB=	BIT8		; (R/W) TO -10 DOORBELL
    188		000200 				TO11DN=	BIT7		; (R) TO -11 TRANSFER DONE
    189		000100 				DON11C=	BIT6		; (W) CLEAR TO -11 DONE
    190		000040 				INTRON=	BIT5		; (W) ENABLE -11 INTERRUPTS
    191		000020 				BPARER=	BIT4		; (R/W) E-BUS PARITY ERROR (W(1): CLEAR)
    192		000010 				RM=	BIT3		; (R) RESTRICTED MODE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 8-1
DTE20 REGISTER DEFINITIONS

    193		000010 				INTROF=	BIT3		; (W) DISABLE -11 INTERRUPTS
    194		000004 				DEXDON=	BIT2		; (R) EXAMINE/DEPOSIT DONE
    195		000002 				TO11ER=	BIT1		; (R) TO -11 TRANSFER ERROR
    196		000001 				INTSON=	BIT0		; (R) -11 INTERRUPTS ENABLED
    197		000001 				ERR11C=	BIT0		; (W) CLEAR TO -11 TRANSFER ERROR
    198		000036 			DIAG3=	36			;DIAGNOSTIC/CONTROL REGISTER 3:
    199		000001 				TO10BM=	BIT0		; (W) TO -10 BYTE MODE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 9
COMMUNICATIONS REGION DEFINITIONS

    201						.SBTTL	COMMUNICATIONS REGION DEFINITIONS
    202					;
    203					; COMMUNICATIONS REGION DEFINITIONS
    204					;
    205					; NOTE:  THESE ARE -10 ADDRESS OFFSETS.
    206					;
    207	000000				.ASECT
    208					;
    209					; HEADER WORD
    210					;
    211		000000 			.=0
    212	000000				RELADR:	.BLKB	3		;RELATIVE ADDRESS OF THIS PROCESSORS GENERAL REGION
    213	000003				PRCNUM:	.BLKB	1		;THIS PROCESSORS NUMBER
    214					;
    215					; GENERAL SECTION
    216					;
    217		000000 			.=0
    218		000000 			PIDENT=	0			;PROCESSOR IDENTIFICATION WORD
    219	000000				NAME:	.BLKB	2		;PROCESSOR SERIAL NUMBER
    220	000002				NPRSIZ:	.BLKB	1		;(2-0) SIZE OF OWNERS REGION / 8
    221									;(7-3) NUMBER OF PROCESSORS (COMM + OWNING)
    222	000003				PROVER:	.BLKB	1		;PROTOCOL VERSION NUMBER
    223	000004				XVR:	.BLKB	1		;(2-0) COMM REGION VERSION
    224									;(3) 1: THIS IS A -10
    225		000000 			.=0
    226		000001 			CHNPNT=	1			;POINTER WORD TO NEXT COMM REGION
    227		000000 			.=0
    228		000005 			KPALIV=	5			;KEEP ALIVE COUNTER WORD
    229					;
    230					; "TO" SECTIONS
    231					;
    232		000000 			.=0
    233		000000 			FORPRO=	0			;PROTOCOL IDENTIFICATION WORD
    234	000000				TOPRCN:	.BLKB	2		;"TO" PROCESSOR NUMBER
    235	000002				PTYPSZ:	.BLKB	1		;(2-0) SIZE OF THIS SECTION / 8
    236									;(7-3) PROTOCOL TYPE
    237	000003					.BLKB	1		;(UNUSED)
    238	000004				XDTDTN:	.BLKB	1		;(1-0) DTE NUMBER
    239									;(2) 1: THIS IS A DTE LINK
    240									;(3) 1: THIS IS "TO" A -10
    241		000000 			.=0
    242		000001 			PROPNT=	1			;POINTER WORD TO "TO" PROCESSOR'S GENERAL SECTION
    243		000000 			.=0
    244		000002 			STATUS=	2			;PROTOCOL STATUS WORD
    245	000000				QCOUNT:	.BLKB	1		;TO Q COUNT
    246	000001				CPQCNT:	.BLKB	1		;OWNER'S COPY OF "TO" PROCESSOR'S TO-OWNER QCOUNT
    247	000002				RCV:	.BLKB	1		;(0) 1: OWNER IS RECEIVING FROM "TO" PROCESSOR
    248	000003					.BLKB	1		;(UNUSED)
    249	000004				LDINVX:	.BLKB	1		;(0) VALID EXAMINE-- 1:  PROTOCOL IN OPERATION
    250									;(1) INIT-- 1:  INITIALIZE SEQUENCE IN PROGRESS
    251									;(2) LOAD-- OWNER REQUESTING LOAD BY "TO" PROCESSOR
    252		000000 			.=0
    253		000003 			QSIZE=	3			;Q SIZE WORD
    254	000000				CSIZE:	.BLKB	2		;CURRENT TRANSFER SIZE
    255	000002				PSIZE:	.BLKB	2		;TOTAL PACKET SIZE
    256	000004				TMODE:	.BLKB	1		;(3-0) TRANSFER MODE
    257		000000 			.=0
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 9-1
COMMUNICATIONS REGION DEFINITIONS

    258		000004 			RELOAD=	4			;OWNER'S COPY OF "TO" PROCESSOR'S RELOAD WORD
    259		000000 			.=0
    260		000005 			CPKPLV=	5			;OWNER'S COPY OF "TO" PROCESSOR'S KPALIV
    261					;
    262	000000					.PSECT
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 10
DTE20 LINE TABLE DEFINITIONS

    264						.SBTTL	DTE20 LINE TABLE DEFINITIONS
    265					;
    266					; DTE20 LINE TABLE DEFINITIONS
    267	000000					DEVDF                                                                   ;BH0002
    268	000000					EVLDF$                                                                  ;BH0007
    269	000000					DTEDF$	<:>,<=>,LST                                                     ;BH0006
					;
					; DTE LINE TABLE OFFSETS
					;
	000000				.ASECT
		000000 				.=0
	000000				L.TIM:: .BLKB	1	; COMM/EXEC TIMER
	000001				L.UNT:: .BLKB	1	; DTE20 NUMBER
						.EVEN
					; *** DO NOT CHANGE ORDER OF L.IVC THROUGH L.ICB ***
					;      (USED BY INTERRUPT SERVICE)
	000002				L.IVC:: .INT	$DTEIS	; INTERRUPT VECTOR CONTROL BLOCK
						.EVEN
						.IF DF	M$$MGE
	000002					.BLKW	7
						.IFF
						.BLKW	2
						.ENDC
	000020				L.ICB:: .BLKW	1	; INTERRUPT CCB FOR DDM ==> DLC
	000022				L.CST:: .BLKW	1	; EXTERNAL PAGE ADDRESS OF CSTAT REGISTER
	000024				L.STS:: .BLKW	1	; LINE STATUS:
		100000 				LS.RUN==^O100000	  ; RUNNING NORMAL PROTOCOL (MUST BE SIGN BIT)
		040000 				LS.INI==^O040000	  ; LINE IS DOING AN INITIALIZE SEQUENCE
		020000 				LS.ICB==^O020000	  ; LINE HAS AN INTERRUPT CCB
	000026				L.SLN:: .BLKW	1	; SYSTEM LINE NUMBER
	000030				L.PSW:: .BLKW	1	; PENDING STATUS WORD (FOR $ASCMP) OR ZERO
	000032				L.LOG:: .BLKW	1	; EVENT LOGGING DESTINATION
	000034				L.PCQ:: .LSTHD		; PENDING CONTROL FUNCTION QUEUE
						.EVEN
	000034					.BLKW	2
	000040				L.MPN:: .BLKB	1	; MY PROTOCOL PROCESSOR #
	000041				L.HPN:: .BLKB	1	; HIS PROTOCOL PROCESSOR #
						.EVEN
	000042				L.EHG:: .BLKW	1	; EXAMINE HIS GENERAL OFFSET
	000044				L.EHM:: .BLKW	1	; EXAMINE HIS TO-ME
	000046				L.EMG:: .BLKW	1	; EXAMINE MY GENERAL
								; EXAMINE MY TO-HIM  IS (L.EMG)+(L.DMH)
								; DEPOSIT MY GENERAL  IS ALWAYS 0
	000050				L.DMH:: .BLKW	1	; DEPOSIT MY TO-HIM
	000052				L.HKA:: .BLKW	1	; HIS KEEP-ALIVE
	000054				L.MKA:: .BLKW	1	; MY KEEP-ALIVE
					; RECEIVE CONTROL BLOCK     ** DO NOT CHANGE ORDER OF  L.RST  THRU  L.RTM **
	000056				L.RST:: .BLKW	3	; TO-ME STATUS WORD
	000064				L.RFQ:: .LSTHD		; FREE RECEIVE BUFFER QUEUE
						.EVEN
	000064					.BLKW	2
	000070				L.RCB:: .BLKW	1	; CCB ADDRESS OF CURRENT BUFFER
	000072				L.RBA::			; RECEIVE BUSS ADDRESS:
	000072					.BLKW	1	; BITS 17-16, STORED IN BITS 15-14
	000074				L.RLA:: .BLKW	1	; BITS 15-0
	000076				L.RCT:: .BLKW	1	; RECEIVE BYTE COUNT
	000100				L.RBZ:: .BLKW	1	; RECEIVE BUFFER SIZE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 10-1
DTE20 LINE TABLE DEFINITIONS

	000102				L.RQZ::			; TO-ME QSIZE WORD:
	000102				L.RCZ:: .BLKW	1	; SIZE OF THIS TRANSFER
	000104				L.RPZ:: .BLKW	1	; SIZE OF THIS MESSAGE
	000106				L.RTM:: .BLKW	1	; TRANSFER MODE
					; TRANSMIT CONTROL BLOCK     ** DO NOT CHANGE THE ORDER OF  L.XST  THRU  L.XTM **
	000110				L.XST:: .BLKW	3	; TO-HIM STATUS WORD
	000116				L.XMQ:: .LSTHD		; TRANSMIT QUEUE
						.EVEN
	000116					.BLKW	2
	000122				L.XCB:: .BLKW	1	; CCB ADDRESS OF CURRENT TRANSMIT
	000124				L.XBA::			; TRANSMIT BUSS ADDRESS
	000124					.BLKW	1	; BITS 17-16, STORED IN BITS 15-14
	000126				L.XLA:: .BLKW	1	; BITS 15-0
	000130				L.XQZ::			; TO-HIM QSIZE WORD:
	000130				L.XCT:: .BLKW	1	; TRANSMIT BYTE COUNT
	000132				L.XBZ:: .BLKW	1	; TRANSMIT BUFFER SIZE
	000134				L.XTM:: .BLKW	1	; TRANSFER MODE
					; LINE COUNTERS
	000136				L.TLZ:: .BLKW	1	; SECONDS SINCE LINE COUNTERS ZEROED
	000140				L.RCV:: .BLKW	1	; BLOCKS SUCCESSFULLY RECEIVED
	000142				L.XMT:: .BLKW	1	;    "        "       TRANSMITTED
	000144				L.TMO:: .BLKB	1	; RECEIVE TIMEOUTS
	000145				L.RES:: .BLKB	1	; RESOURCE ALLOC ERRORS
		000146 			$DTELZ==.		; SIZE OF DTE20 LINE TABLE
	000000				.PSECT
    270					                                                                                ;BH0004
    271					; THE EVENT-LOGGING MAP TO STANDARD LOGGING CODES                               ;BH0004
    272	000000	177772 			ERRTB:	.WORD	-ERRTBL		; ** THE TABLE LENGTH                           ;BH0005
    273	000002	   376 	   001 			.BYTE	CS.HLT,E$RUCL	; PROTOCOL HALTED                               ;BH0007
    274	000004	   374 	   015 			.BYTE	CS.SRO,E$RSRC	; START RECEIVED WHILE ONLINE                   ;BH0007
    275	000006	   373 	   020 			.BYTE	CS.TDN,E$RPET	; TEN HALTED                                    ;BH0007
    276	000010	   372 	   026 			.BYTE	CS.TRE,E$RTRN	; DATA TRANSFER ERROR                           ;BH0007
    277	000012	   371 	   004 			.BYTE	CS.DCK,E$RSIN	; DTE CONSISTENCY CHECK                         ;BH0007
    278	000014	   370 	   025 			.BYTE	CS.PCK,E$RPRC	; PROTOCOL CONSISTENCY CHECK                    ;BH0007
    279		000006 			  ERRTBL=<.-ERRTB-2>/2                                                          ;BH0007
    280					;                                                                               ;BH0004
    281					; DEFINE THE $CMLOG ARGUMENT BLOCK                                              ;BH0004
    282					;                                                                               ;BH0004
    283		000042 				LGDAT=34.		; HDR + 16.*REG = 17.WORDS = 34.BYTES           ;BH0007
    284	000016					CMLDF$	DTE,E$THDW,,DTE,ERRTB,LGDAT                                     ;BH0007
	000016	000000 			PDST:	.WORD	0		; LOGGING DESTINATION
	000020	000000 			PRSN:	.WORD	0		;    "    REASON
	000022	177777 			PDT1:	.WORD	-1		; FORMAT DEPENDENT ARG #1
	000024	000024 			PDT2:	.WORD	DTE		;   "        "      "  #2
	000026	000042 			PLNG:	.WORD	LGDAT		; BYTES OF COROUTINE-ADDED INFO
	000030	016045 			PNAM:	.RAD50	/DTE/		; PROCESS NAME
	000032	000003 			PTYP:	.WORD	E$THDW		; EVENT TYPE CODE
	000034	000000'			PTAB:	.WORD	ERRTB		; ERROR CODE MAPPING TABLE
	000036	000000 			PSTA:	.WORD	0		; STATE WORD FOR USE BY $CMLOG
    285		000022'				PLIN=PDT1	; SYS LINE #                                            ;BH0004
    286		000024'				PDID=PDT2	; DEVICE ID                                             ;BH0004
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 11
PURE DATA

    288						.SBTTL	PURE DATA
    289					;
    290					; DTE20 PROCESS DISPATCH TABLE
    291					;
    292	000040				$DTETB::
    293	000040	000150'				.WORD	XMENA		;TRANSMIT REQUEST
    294	000042	000172'				.WORD	RCENA		;RECEIVE ENABLE
    295	000044	000206'				.WORD	KILL		;KILL
    296	000046	000222'				.WORD	CNTRL		;CONTROL SUBFUNCTION (SEE CTL, CTLDSP)
    297	000050	001376'				.WORD	TMOUT		;TIMER EXPIRED
    298	000052	001500'				.WORD	XMCMP		;TRANSMIT COMPLETE (INTERRUPT SERVICE REQUEST)
    299	000054	000055'				.WORD	.+1		;RECEIVE COMPLETE
    300	000056	000057'				.WORD	.+1		;CONTROL COMPLETE
    301	000060	000061'				.WORD	.+1		;KILL COMPLETE
    302					;
    303					;
    304					; KILL SUB-FUNCTION DISPATCH TABLE
    305					;
    306	000062				KILDSP:
    307	000062	003122'				.WORD	XMRCKL		;KILL RECEIVE AND TRANSMIT
    308	000064	003126'				.WORD	RCVKIL		;KILL RECEIVE
    309	000066	003254'				.WORD	XMTKIL		;KILL TRANSMIT
    310					;
    311					;
    312					; CONTROL SUB-FUNCTION DISPATCH TABLE
    313					;
    314	000070				CTLDSP:
    315	000070	000071'				.WORD	.+1		;INITIALIZE
    316	000072	000334'				.WORD	START		;START NORMAL PROTOCOL
    317	000074	001152'				.WORD	STOP		;STOP ALL PROTOCOLS
    318	000076	000077'				.WORD	.+1		;TERMINATE
    319	000100	000101'				.WORD	.+1		;START MAINTENANCE PROTOCOL
    320	000102	000103'				.WORD	.+1		;SET CHARACTERISTICS
    321	000104	000105'				.WORD	.+1		;GET CHARACTERISTICS
    322	000106	000107'				.WORD	.+1		;XON
    323	000110	000111'				.WORD	.+1		;XOFF
    324	000112	000113'				.WORD	.+1		;RING ENABLE
    325	000114	001370'				.WORD	ENABLE		;ENABLE LINE
    326	000116	001370'				.WORD	DISABL		;DISABLE LINE
    327	000120	000121'				.WORD	.+1		;SENSE MODEM STATUS
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 12
$DTEIS -- DTE20 INTERRUPT SERVICE

    329						.SBTTL	$DTEIS -- DTE20 INTERRUPT SERVICE
    330					;
    331					; $DTEIS -- DTE20 INTERRUPT SERVICE
    332					;
    333					; CALLED FROM ".INT" IN DTE20 LINE TABLE FOR THIS DTE20.
    334					; ENTERED AT PRIORITY 7, WITH ONLY R5 SAVED.
    335					;
    336					; INPUTS:
    337					;	R5 -- ADDRESS OF "L.ICB" WORD IN LINE TABLE FOR THIS DTE20
    338					;
    339					; REQUESTS DTE20 DLC PROCESS USING $DDXMP (TRANSMIT COMPLETE)
    340					;
    341					; OUTPUTS:
    342					;	NONE
    343					;
    344	000122				$DTEIS::
    345	000122	010446 				MOV	R4,-(SP)	;;;SAVE R4
    346	000124	011504 				MOV	(R5),R4		;;;GET INTERRUPT CCB ADDRESS
    347	000126	001405 				BEQ	90$		;;;ALREADY TAKEN-- WILL PROCESS WHEN DLC RUNS
    348	000130	005015 				CLR	(R5)		;;;SAY WE'VE SENT CCB TO DLC
    349	000132	010346 				MOV	R3,-(SP)	;;;SAVE R3 FROM $DDXMP
    350	000134					CALL	$DDXMP		;;;TELL DLC WE HAVE AN INTERRUPT
    351	000140	012603 				MOV	(SP)+,R3	;;;RESTORE R3
    352	000142				90$:
    353	000142	012604 				MOV	(SP)+,R4	;;;RESTORE R4
    354	000144					$INTXT			;;;RETURN TO INTERRUPTED PROGRAM FROM PR 7
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 13
XMENA -- TRANSMIT REQUEST

    356						.SBTTL	XMENA -- TRANSMIT REQUEST
    357					;
    358					; XMENA -- TRANSMIT REQUEST
    359					;
    360					; THIS ROUTINE IS CALLED BY A HIGHER LEVEL PROCESS TO TRANSMIT A
    361					; MESSAGE ACROSS THE DTE20.
    362					;
    363					; INPUTS:
    364					;	R4 -- TRANSMIT BUFFER CCB ADDRESS
    365					;	R5 -- DTE20 LINE TABLE ADDRESS
    366					;
    367					; OUTPUTS:
    368					;	R0,R1,R2,R3,R4 DESTROYED
    369					;
    370	000150				XMENA:
    371	000150	012703 	000116 			MOV	#L.XMQ,R3	;POINT TO TRANSMIT QUEUE
    372	000154	060503 				ADD	R5,R3		; IN LINE TABLE
    373	000156					CALL	$CMQIN		;ADD THE TRANSMIT REQUEST TO THE QUEUE
    374	000162	016501 	000022 			MOV	L.CST(R5),R1	;GET DTE20 CSTAT ADDRESS
    375	000166					CALLR	STRTXQ		;ATTEMPT TO START THE TRANSMIT QUEUE AND RETURN FROM XME
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 14
RCENA -- RECEIVE ENABLE

    377						.SBTTL	RCENA -- RECEIVE ENABLE
    378					;
    379					; RCENA -- RECEIVE ENABLE
    380					;
    381					; THIS ROUTINE IS CALLED WHEN A RECEIVE BUFFER BECOMES AVAILABLE
    382					; AFTER A PREVIOUS BUFFER REQUEST CALL TO $RDBWT.  SEE GET1BF/QUERBF.
    383					;
    384					; INPUTS:
    385					;	R4 -- RECEIVE BUFFER CCB ADDRESS
    386					;	R5 -- LINE TABLE ADDRESS
    387					;
    388					; OUTPUTS:
    389					;	R0,R1,R2,R3,R4 DESTROYED
    390					;
    391	000172				RCENA:
    392	000172					CALL	QUERBF		;QUEUE THE RECEIVE BUFFER TO THE FREE LIST
    393	000176	016501 	000022 			MOV	L.CST(R5),R1	;GET DTE20 CSTAT ADDRESS
    394	000202					CALLR	STRTRQ		;START RECEIVE, IF POSSIBLE AND RETURN FROM RCENA
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 15
KILL -- ABORT

    396						.SBTTL	KILL -- ABORT
    397					;
    398					; KILL -- ABORT
    399					;
    400					; INPUTS:
    401					;	R3 -- KILL SUB-FUNCTION CODE
    402					;	R4 -- REQUEST CCB ADDRESS
    403					;	R5 -- LINE TABLE ADDRESS
    404					;
    405					; OUTPUTS:
    406					;	R0,R1,R2,R3,R4 DESTROYED
    407					;
    408	000206				KILL:
    409	000206					CALL	@KILDSP(R3)	;CALL PROPER KILL ROUTINE ACCORDING TO SUBFUNCTION CODE
    410	000212	012703 	000001 			MOV	#CS.SUC,R3	;INDICATE SUCCESS TO HLP,
    411	000216					CALLR	$KLCMP		; AND RETURN FROM KILL
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 16
CNTRL/CTLCMP -- CONTROL SUBFUNCTION

    413						.SBTTL	CNTRL/CTLCMP -- CONTROL SUBFUNCTION
    414					;
    415					; CNTRL -- CONTROL SUBFUNTION
    416					;
    417					; THIS ROUTINE QUEUES THE CONTROL CCB TO THE PENDING QUEUE
    418					; AND ATTEMPTS TO PROCESS THE QUEUE.
    419					;
    420					; INPUTS:
    421					;	R4 -- REQUEST CCB ADDRESS
    422					;	R5 -- LINE TABLE ADDRESS
    423					;
    424					; OUTPUTS:
    425					;	R0,R1,R2,R3,R4 DESTROYED
    426					;
    427	000222				CNTRL:
    428	000222	012703 	000034 			MOV	#L.PCQ,R3	;POINT TO PENDING CONTROL FUNCTION QUEUE
    429	000226	060503 				ADD	R5,R3		; IN LINE TABLE
    430	000230					CALL	$CMQIN		;INSERT THIS CONTROL CCB IN QUEUE
    431	000234					CALLRX	CTLCMP		;ATTEMPT TO PERFORM FUNCTION, AND RETURN FROM CNTRL
    432					;
    433					; CTLCMP -- COMPLETE PENDING CONTROL FUNCTION
    434					;
    435					; INPUTS:
    436					;	R1 -- EXTERNAL PAGE ADDRESS OF CSTAT FOR THIS DTE20
    437					;	R5 -- LINE TABLE ADDRESS FOR THIS DTE20
    438					;
    439					; DISPATCHES TO SUBFUNCTION ROUTINES AS PER "CTLDSP" TABLE.
    440					;
    441					; INPUTS TO CONTROL SUBROUTINES:
    442					;	CC-C CLEAR
    443					;	R1 -- EXTERNAL PAGE ADDRESS OF CSTAT FOR THIS DTE20
    444					;	R3 -- SUBFUNCTION CODE (WORD INDEX)
    445					;	R4 -- REQUEST CCB ADDRESS
    446					;	R5 -- LINE TABLE ADDRESS
    447					;
    448					; OUTPUTS FROM CONTROL SUBROUTINES:
    449					;	CC-C SET -- WILL COMPLETE LATER ASYNCHRONOUSLY
    450					;	CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
    451					;	R3 -- STATUS CODE FOR OPERATION (FOR C.STS)
    452					;
    453					; OUTPUTS:
    454					;	R0,R1,R2,R3,R4 DESTROYED
    455					;
    456	000234				CTLCMP:
    457	000234	016503 	000030 			MOV	L.PSW(R5),R3	;GET PENDING ERROR STATUS WORD
    458	000240	001407 				BEQ	10$		;NONE-- GO ON TO CONTROL FUNCTION
    459	000242	016502 	000026 			MOV	L.SLN(R5),R2	;GET SYSTEM LINE NUMBER FOR $ASCMP
    460	000246					CALL	$ASCMP		;ATTEMPT TO TELL HLP OF STATUS
    461	000252	103427 				BCS	90$		;DON'T ATTEMPT CONTROL FUNCTION UNTIL STATUS COMPLETES
    462	000254	005065 	000030 			CLR	L.PSW(R5)	;OK-- INDICATE NO PENDING STATUS
    463	000260				10$:
    464	000260	016504 	000034 			MOV	L.PCQ(R5),R4	;GET HEAD OF CONTROL FUNCTION QUEUE
    465	000264	001422 				BEQ	90$		;NO CONTROL FUNCTIONS PENDING-- GO AWAY
    466	000266	116403 	000011 			MOVB	C.MOD(R4),R3	;GET CONTROL SUB-FUNCTION CODE
    467	000272	016501 	000022 			MOV	L.CST(R5),R1	;GET CSTAT ADDRESS OF THIS DTE20
    468	000276	000241 				CLC			;INSURE CC-C CLEAR
    469	000300					CALL	@CTLDSP(R3)	;CALL CONTROL SUB-FUNCTION ROUTINE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 16-1
CNTRL/CTLCMP -- CONTROL SUBFUNCTION

    470	000304	103412 				BCS	90$		;CANNOT COMPLETE-- TRY AGAIN LATER
    471	000306	010346 				MOV	R3,-(SP)	;SAVE COMPLETION CODE
    472	000310	012703 	000034 			MOV	#L.PCQ,R3	;POINT TO PENDING CONTROL QUEUE
    473	000314	060503 				ADD	R5,R3		; IN LINE TABLE
    474	000316					CALL	$CMQRM		;REMOVE THE CONTROL CCB JUST PROCESSED
    475	000322	012603 				MOV	(SP)+,R3	;RESTORE COMPLETION CODE
    476	000324	103402 				BCS	90$		;QUEUE IS EMPTY ...?
    477	000326					CALL	$CTCMP		;INDICATE COMPLETION TO HLP
    478	000332				90$:
    479	000332					RETURN			;RETURN FROM CTLCMP
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 17
START -- START QUEUED PROTOCOL

    481						.SBTTL	START -- START QUEUED PROTOCOL
    482					;
    483					; START -- START QUEUED PROTOCOL
    484					;
    485					; ENABLES THE SELECTED DTE20 TO COMMUNICATE WITH TOPS-10/20
    486					; USING THE DTE20 QUEUED PROTOCOL.
    487					;
    488					; INPUTS:
    489					;	R1 -- DTE20 CSTAT ADDRESS
    490					;	R4 -- REQUEST CCB ADDRESS
    491					;	R5 -- LINE TABLE ADDRESS
    492					;
    493					; OUTPUTS:
    494					;	CC-C SET -- FUNCTION WILL COMPLETE LATER ASYNCHRONOUSLY
    495					;	CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
    496					;	R3 -- CS.SUC -- PROTOCOL STARTED
    497					;
    498	000334				START:
    499	000334	012703 	000001 			MOV	#CS.SUC,R3	;ASSUME RUNNING ALREADY
    500	000340	005765 	000024 			TST	L.STS(R5)	;NORMAL PROTOCOL RUNNING?
    501	000344	100455 				BMI	91$		;YES-- TELL HIM
    502	000346	032765 	040000 	000024 		BIT	#LS.INI,L.STS(R5) ;WE STARTED INIT?
    503	000354	001402 				BEQ	2$		;NO-- LOOK FOR COMM REGION
    504	000356	000167 	000446 			JMP	70$		;YES-- CONTINUE IT
    505					;
    506					; SET UP INTERRUPT CCB AND ENABLE INTERRUPTS
    507					;
    508	000362				2$:
    509	000362	032765 	020000 	000024 		BIT	#LS.ICB,L.STS(R5) ;DO WE HAVE AN INTERRUPT CCB?
    510	000370	001013 				BNE	3$		;YES-- GO ON
    511	000372					CALL	$CCBGT		;NO-- GET ONE
    512	000376	103440 				BCS	91$		;CAN'T START WITHOUT ONE!
    513	000400	016564 	000026 	000006 		MOV	L.SLN(R5),C.LIN(R4) ;SET OUR SLN INTO CCB
    514	000406	010465 	000020 			MOV	R4,L.ICB(R5)	;STORE ADDRESS OF CCB
    515	000412	052765 	020000 	000024 		BIS	#LS.ICB,L.STS(R5) ;INDICATE CCB NOW EXISTS
    516	000420				3$:
    517	000420	012711 	000040 			MOV	#INTRON,(R1)	;ENABLE DTE20 INTERRUPTS
    518					;
    519					; READ OUR PROCESSOR NUMBER AND REGION OFFSET
    520					;
    521	000424	012703 	000056 			MOV	#L.RST,R3	;GET OUR SCRATCH EXAMINE WORD
    522	000430	060503 				ADD	R5,R3		; MAKE IT IN LINE TABLE
    523	000432	005002 				CLR	R2		;SET TO EXAMINE PROTECTED WORD 0
    524	000434					CALL	PRTEXM		; WHICH IS COMM HEADER WORD
    525	000440	103417 				BCS	91$		;OOPS-- -10 PUNTED ON US!
    526					;
    527	000442	116304 	000003 			MOVB	PRCNUM(R3),R4	;GET OUR PROCESSOR NUMBER
    528	000446	042704 	177760 			BIC	#^C<17>,R4	;TRIM TO 0.-15.
    529	000452	110465 	000040 			MOVB	R4,L.MPN(R5)	;SAVE MY PROCESSOR #
    530					;
    531	000456	005204 				INC	R4		;COMPUTE OFFSET TO COMM REGION 0 (1 WORD FOR
    532									; EACH PROCESSOR HEADER WORD)
    533	000460	011302 				MOV	(R3),R2		;GET RELATIVE ADDRESS OF MY GENERAL REGION
    534	000462	060402 				ADD	R4,R2		;OFFSET BY COMM 0
    535	000464	010265 	000046 			MOV	R2,L.EMG(R5)	;THAT'S OUR GENERAL REGION OFFSET
    536					;
    537	000470	005002 				CLR	R2		;EXAMINE OUR PIDENT WORD
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 17-1
START -- START QUEUED PROTOCOL

    538	000472					CALL	EXMMYG		; IN OUR GENERAL REGION
    539	000476	103002 				BCC	5$		;OK-- GO ON
    540	000500				91$:
    541	000500	000167 	000410 			JMP	90$		;FAILED-- ABORT, -10 PROBABLY DOWN
    542					;
    543	000504				5$:
    544	000504					CALL	200$		;COMPUTE 8-WORD BLOCK COUNT IN R2, PROC CNT IN R0
    545	000510	010265 	000050 			MOV	R2,L.DMH(R5)	;SET AS MY TO-HIM OFFSET
    546	000514	010046 				MOV	R0,-(SP)	;SAVE CURRENT PROCESSOR COUNT
    547					;
    548					; LOOP THROUGH MY GENERAL REGION TO FIND THE TO-HIM REGION
    549					;
    550	000516				10$:
    551	000516	005002 				CLR	R2		;LOOK AT FORPRO
    552	000520					CALL	EXMMYH		;LOOK AT A TO-HIM REGION FORPRO WORD
    553	000524	103430 				BCS	30$		;FAILED-- GIVE UP
    554	000526	016300 	000002 			MOV	PTYPSZ(R3),R0	;GET PROTOCOL TYPE, SIZE
    555	000532	010002 				MOV	R0,R2		;COPY THAT
    556	000534	042700 	177407 			BIC	#^C<37*BIT3>,R0	;GET PROTOCOL TYPE *BIT3
    557	000540	020027 	000010 			CMP	R0,#1*BIT3	;"NSP"?
    558	000544	001012 				BNE	20$		;NO-- HE'S NOT OUR TYPE
    559	000546	116300 	000004 			MOVB	XDTDTN(R3),R0	;GET "-10" BIT, "DTE" BIT, AND DTE #
    560	000552	032700 	000004 			BIT	#BIT2,R0	;THIS A DTE LINK?
    561	000556	001405 				BEQ	20$		;NO-- NOT TO US THEN
    562	000560	042700 	177774 			BIC	#^C<BIT1!BIT0>,R0 ;YES-- TRIM DTE # TO LOW TWO BITS
    563	000564	120065 	000001 			CMPB	R0,L.UNT(R5)	;THIS OUR DTE #?
    564	000570	001410 				BEQ	40$		;YES-- PROCESS IT
    565					;
    566					; THIS TO-HIM BLOCK IS NOT FOR US-- MOVE TO NEXT ONE
    567					;	R2 -- PTYPSZ BYTE OF FORPRO WORD
    568					;
    569	000572				20$:
    570	000572					CALL	210$		;COMPUTE OFFSET IN R2
    571	000576	060265 	000050 			ADD	R2,L.DMH(R5)	;BUMP THE TO-HIM OFFSET
    572	000602	005316 				DEC	(SP)		;IS THIS LAST ONE?
    573	000604	003344 				BGT	10$		;NO-- BACK FOR ANOTHER
    574	000606				30$:
    575	000606	005726 				TST	(SP)+		;YES-- REMOVE COUNT FROM STACK
    576	000610	000540 				BR	80$		; AND RETURN
    577					;
    578					; WE HAVE FOUND MY TO-HIM BLOCK FOR THE PROCESSOR WITH WHICH WE WILL COMMUNICATE
    579					;
    580	000612				40$:
    581	000612	005726 				TST	(SP)+		;REMOVE COUNT FROM STACK
    582	000614	111365 	000041 			MOVB	(R3),L.HPN(R5)	;REMEMBER HIS PROCESSOR NUMBER
    583					;
    584	000620	012702 	000001 			MOV	#PROPNT,R2	;GET ADDRESS OF POINTER TO HIS GENERAL REGION
    585	000624					CALL	EXMMYH		; . .
    586	000630	103531 				BCS	90$		;FAILED-- ABORT
    587	000632	061304 				ADD	(R3),R4		;COMPUTE HIS GENERAL REGION ADDRESS
    588	000634	010465 	000042 			MOV	R4,L.EHG(R5)	;STORE HIS GENERAL FOR LATER
    589	000640	005002 				CLR	R2		;GET HIS PIDENT WORD
    590	000642					CALL	EXMHSG		;FROM -10, PIDENT
    591	000646	103522 				BCS	90$		;FAILED-- ABORT
    592	000650					CALL	210$		;GET # PROC IN R0, REGION SIZE IN R2
    593	000654	060402 				ADD	R4,R2		;OFFSET BY HIS GENERAL OFFSET
    594	000656	010265 	000044 			MOV	R2,L.EHM(R5)	;USE THAT AS HIS TO-ME ADDRESS
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 17-2
START -- START QUEUED PROTOCOL

    595	000662	010004 				MOV	R0,R4		;COPY # PROCESSORS
    596					;
    597					; FIND HIS TO-ME BLOCK
    598					;
    599	000664				50$:
    600	000664	005002 				CLR	R2		;READ THE
    601	000666					CALL	EXMHSM		; FORPRO WORD FROM HIS TO-SOMEBODY REGION
    602	000672	103510 				BCS	90$		;FAILED-- ABORT
    603	000674	121365 	000040 			CMPB	(R3),L.MPN(R5)	;THIS HIS TO-ME (WITH MY PROC #)?
    604	000700	001405 				BEQ	60$		;YES-- PROCESS IT
    605					;
    606					; THIS IS A TO-SOMEBODY-ELSE REGION
    607					;
    608	000702	060265 	000044 			ADD	R2,L.EHM(R5)	;SKIP TO NEXT TO-SOMEBODY REGION
    609	000706	005304 				DEC	R4		;COUNT DOWN THIS REGION
    610	000710	003365 				BGT	50$		;MORE STILL-- KEEP ON LOOKING
    611	000712	000477 				BR	80$		; . .
    612					;
    613					; FOUND HIS TO-ME REGION
    614					;
    615	000714				60$:
    616	000714	012702 	000002 			MOV	#STATUS,R2	;POINT TO STATUS WORD NOW
    617	000720					CALL	EXMHSM		;READ HIS TO-ME STATUS
    618	000724	103473 				BCS	90$		;OOPS
    619	000726	032763 	000001 	000004 		BIT	#BIT0,LDINVX(R3) ;IS VALID EXAMINE SET?
    620	000734	001466 				BEQ	80$		;NO-- TRY AGAIN LATER
    621					;
    622					; INITIALIZE PROTOCOL ON THIS LINK
    623					;
    624	000736	052765 	040000 	000024 		BIS	#LS.INI,L.STS(R5) ;INDICATE PROTOCOL INIT STARTED
    625	000744	052765 	000001 	000114 		BIS	#BIT0,LDINVX+L.XST(R5) ;SET VALID EXAMINE
    626	000752	032765 	000002 	000062 		BIT	#BIT1,LDINVX+L.RST(R5) ;HE WANT US TO INIT?
    627	000760	001004 				BNE	65$		;YES-- COMPLETE INIT SEQUENCE
    628	000762	032765 	000002 	000114 		BIT	#BIT1,LDINVX+L.XST(R5) ;ARE WE INIT STATE?
    629	000770	001417 				BEQ	70$		;NO-- JUST RESUME PROTOCOL
    630	000772				65$:
    631	000772	012761 	000100 	177776 		MOV	#DRESET,DIAG2-CSTAT(R1) ;RESET DTE-20 TRANSFERS NOW IN PROGRESS
    632	001000	012711 	000040 			MOV	#INTRON,(R1)	;RE-ENABLE INTERRUPTS
    633	001004	052765 	000002 	000114 		BIS	#BIT1,LDINVX+L.XST(R5) ;SET TO-HIM INIT NOW
    634	001012	005065 	000110 			CLR	QCOUNT+L.XST(R5) ;CLEAR QCOUNT AND CPQCNT
    635	001016	005065 	000112 			CLR	RCV+L.XST(R5)	;CLEAR "RCV" AND FLAGS
    636	001022					CALL	DEPSTS		;DEPOSIT MY TO-HIM STATUS WORD
    637	001026	103432 				BCS	90$		;OOPS-- TRY AGAIN LATER
    638					;
    639					; PROTOCOL INIT STARTED -- SEE IF COMPLETED YET
    640					;
    641	001030				70$:
    642	001030	032711 	000400 			BIT	#TO10DB,(R1)	;IS DOORBELL STILL RINGING?
    643	001034	001026 				BNE	80$		;YES-- DON'T DO ANYTHING YET
    644	001036	042765 	000002 	000114 		BIC	#BIT1,LDINVX+L.XST(R5) ;CLEAR TO-HIM INIT
    645	001044					CALL	DEPSTS		;TELL HIM
    646	001050	103421 				BCS	90$		;OOPS-- TRY ALL OVER AGAIN
    647	001052	032765 	000002 	000062 		BIT	#BIT1,LDINVX+L.RST(R5) ;HE STILL INIT-ING?
    648	001060	001014 				BNE	80$		;YES-- WE'RE NOT DONE YET
    649	001062	042765 	040000 	000024 		BIC	#LS.INI,L.STS(R5) ;NO-- INIT COMPLETE -- INDICATE STATUS
    650	001070	052765 	100000 	000024 		BIS	#LS.RUN,L.STS(R5) ;NOW RUNNING
    651					.IF DF M$$MGE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 17-3
START -- START QUEUED PROTOCOL

    652					.IFF
    653						CLR	DLYCNT-CSTAT(R1) ;RESET DELAY COUNT AND BUSS ADDRESS BITS 17,16
    654					.ENDC
    655	001076					CALL	GETRBF		;GET OUR ALLOCATION OF RECEIVE BUFFERS
    656	001102	012703 	000001 			MOV	#CS.SUC,R3	;SAY START COMPLETE SUCCESSFULL
    657	001106	000241 				CLC			; AND ITS COMPLETE NOW
    658	001110	000401 				BR	90$		; . .
    659					;
    660	001112				80$:
    661	001112	000261 				SEC			;INDICATE COMPLETION LATER
    662	001114				90$:
    663	001114					RETURN			;RETURN FROM START
    664					;
    665					; 200$ -- COMPUTE 8-WORD BLOCK SIZE AND # PROCESSORS
    666					;	(R3) -- PIDENT WORD
    667					; RETURN:
    668					;	R0 -- # PROCESSORS
    669					;	R2 -- # WORDS IN THIS REGION
    670					;
    671	001116				200$:
    672	001116	116300 	000002 			MOVB	NPRSIZ(R3),R0	;GET # PROCESSORS, SIZE OF GENERAL REGION
    673	001122	010002 				MOV	R0,R2		;COPY IT . . .
    674	001124	006200 				ASR	R0		;COMPUTE
    675	001126	006200 				ASR	R0		; # PROCESSORS
    676	001130	006200 				ASR	R0		;   IN MY REGION
    677	001132	042700 	177740 			BIC	#^C<37>,R0	;MAKE THAT 2.-16.
    678	001136					CALLRX	210$		;FINISH WORDS AND RETURN
    679					;
    680					; 210$ -- COMPUTE 8-WORD BLOCK SIZE
    681					;	R2(2-0) -- # 8 WORD BLOCKS
    682					; RETURN:
    683					;	R2 -- # WORDS
    684					;
    685	001136				210$:
    686	001136	042702 	177770 			BIC	#^C<BIT2!BIT1!BIT0>,R2 ;TRIM TO # 8 WORD BLOCKS
    687	001142	006302 				ASL	R2		;COMPUTE ADDRESS OF NEXT REGION
    688	001144	006302 				ASL	R2		; . .
    689	001146	006302 				ASL	R2		; . .
    690	001150					RETURN			;RETURN FROM 200$
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 18
STOP -- STOP PROTOCOL

    692						.SBTTL	STOP -- STOP PROTOCOL
    693					;
    694					; STOP -- STOP PROTOCOL
    695					;
    696					; STOPS PROTOCOL OPERATION ON A LINK
    697					;
    698					; INPUTS:
    699					;	R1 -- DTE20 CSTAT ADDRESS
    700					;	R4 -- REQUEST CCB ADDRESS
    701					;	R5 -- LINE TABLE ADDRESS
    702					;
    703					; OUTPUTS:
    704					;	CC-C SET -- FUNCTION WILL COMPLETE LATER ASYNCHRONOUSLY
    705					;	CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
    706					;	R3 -- CS.SUC -- STOP COMPLETE
    707					;	R2,R0,R4 DESTROYED
    708					;
    709	001152				STOP:
    710	001152					CALL	XMTKIL		;ABORT ALL UNSTARTED XMIT REQUESTS
    711	001156					CALL	RETRBF		;RETURN ALL RECEIVE BUFFERS
    712					;
    713	001162	005765 	000024 			TST	L.STS(R5)	;RUNNING NORMAL PROTOCOL?
    714	001166	100436 				BMI	40$		;YES-- EXIT GRACEFULLY
    715					;
    716					; PROTOCOL HAS BEEN ABORTED-- CLEAN UP GOOD
    717					;
    718	001170	012761 	000100 	177776 		MOV	#DRESET,DIAG2-CSTAT(R1) ;STOP ANY DTE20 TRANSFERS NOW INPROGRESS
    719					;
    720	001176	012703 	000070 			MOV	#L.RCB,R3	;POINT TO RECEIVE CONTROL BLOCK, CCB ADDRESS
    721	001202	060503 				ADD	R5,R3		; IN LINE TABLE
    722	001204	012304 				MOV	(R3)+,R4	;(L.RCB) GET RECIEVE CCB ADDRESS
    723	001206	022323 				CMP	(R3)+,(R3)+	;(L.RBA) SKIP BUFFER ADDRESS
    724	001210	005023 				CLR	(R3)+		;(L.RCT) CLEAR RECIEVER ACTIVE
    725	001212	005713 				TST	(R3)		;(L.RBZ) ACTIVE BUFFER?
    726	001214	001402 				BEQ	32$		;NO-- GO ON
    727	001216					CALL	$RDBRT		;YES-- RETURN THE PARTIAL BUFFER
    728	001222				32$:
    729	001222	005023 				CLR	(R3)+		;(L.RBZ) CLEAR BUFFER COUNT
    730	001224	005013 				CLR	(R3)		;(L.RCZ) CLEAR QSIZE
    731	001226	062703 	000012 			ADD	#LDINVX+L.XST-L.RCZ,R3	;POINT TO TRANSMIT TO-HIM STATUS
    732	001232	012723 	000002 			MOV	#BIT1,(R3)+	;(LDINVX+L.XST) SET INIT BIT
    733	001236	022323 				CMP	(R3)+,(R3)+	;(L.XMQ) SKIP QUEUE HEAD
    734	001240	012304 				MOV	(R3)+,R4	;(L.XCB) GET ACTIVE TRANSMIT CCB ADDRESS
    735	001242	022323 				CMP	(R3)+,(R3)+	;(L.XBA) SKIP BUFFER ADDRESS
    736	001244	005023 				CLR	(R3)+		;(L.XCT) RESET BUFFER ACTIVE
    737	001246	005713 				TST	(R3)		;(L.XBZ) BUFFER ACTIVE?
    738	001250	001405 				BEQ	40$		;NO-- GO ON
    739	001252	005013 				CLR	(R3)		;(L.XBZ) RESET BUFFER SIZE
    740	001254	012703 	000100 			MOV	#CS.ABO,R3	;YES-- SAY ABORTED
    741	001260					CALL	$XMCMP		; TO HLP
    742	001264				40$:
    743	001264	005765 	000100 			TST	L.RBZ(R5)	;RECEIVE LEFT TO DO?
    744	001270	001035 				BNE	80$		;YES-- CAN'T STOP NOW
    745	001272	005765 	000132 			TST	L.XBZ(R5)	;XMIT TO DO?
    746	001276	001032 				BNE	80$		;YES-- CAN'T STOP NO
    747					;
    748	001300	042765 	000001 	000114 		BIC	#BIT0,LDINVX+L.XST(R5) ;CLEAR VALID EXAMINE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 18-1
STOP -- STOP PROTOCOL

    749	001306					CALL	DEPSTS		; IN STATUS WORD
    750					;
    751	001312	012711 	000010 			MOV	#INTROF,(R1)	;DISABLE DTE20 INTERRUPTS
    752	001316	042765 	140000 	000024 		BIC	#LS.RUN!LS.INI,L.STS(R5) ;NO LONGER RUNNING ANYTHING
    753					;
    754	001324	032765 	020000 	000024 		BIT	#LS.ICB,L.STS(R5) ;INTERRUPT CCB STILL AROUND?
    755	001332	001410 				BEQ	70$		;NO-- ALL CLEANED UP
    756	001334	016504 	000020 			MOV	L.ICB(R5),R4	;YES-- GET IT
    757	001340	001411 				BEQ	80$		;STILL IN PROCESS-- COME BACK LATER
    758	001342					CALL	$CCBRT		;RETURN INTERRUPT CCB TO POOL
    759	001346	042765 	020000 	000024 		BIC	#LS.ICB,L.STS(R5) ;NOTE NO CCB NOW
    760	001354				70$:
    761	001354	012703 	000001 			MOV	#CS.SUC,R3	;INDICATE SUCCESSFUL COMPLETION
    762	001360	000241 				CLC			; . .
    763	001362	000401 				BR	90$		;AND RETURN
    764					;
    765	001364				80$:
    766	001364	000261 				SEC			;WILL COMPLETE LATER
    767	001366				90$:
    768	001366					RETURN			;RETURN FROM STOP
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 19
ENABLE/DISABL -- ENABLE/DISABLE LINE

    770						.SBTTL	ENABLE/DISABL -- ENABLE/DISABLE LINE
    771					;
    772					; ENABLE/DISABL -- ENABLE/DISABLE LINE
    773					;
    774					; THESE FUNCTIONS ARE NO-OPS
    775					;
    776	001370				ENABLE:
    777	001370				DISABL:
    778	001370	012703 	000001 			MOV	#CS.SUC,R3	;SAY SUCCESS
    779	001374					RETURN			;RETURN FROM ENABLE/DISABL
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 20
TMOUT -- TIMER EXPIRED

    781						.SBTTL	TMOUT -- TIMER EXPIRED
    782					;
    783					; TMOUT -- TIMER EXPIRED
    784					;
    785					; THIS ROUTINE IS CALLED BY THE COMM EXEC EVERY TIME THE LONG
    786					; TIMER EXPIRES.  THIS TIMER IS THE FIRST BYTE OF THE LINE TABLE.
    787					; IT IS ALWAYS SET TO 1 SECOND.
    788					;
    789					; INPUTS:
    790					;	R5 -- LINE TABLE ADDRESS
    791					;
    792	001376				TMOUT:
    793	001376	105215 				INCB	(R5)		;RESTART TIMER
    794					;
    795	001400	016501 	000022 			MOV	L.CST(R5),R1	;GET  DTE20 CSTAT ADDRESS
    796					;
    797					; MAKE SURE I/O IS IN PROGRESS IF POSSIBLE
    798					;
    799	001404	016501 	000022 			MOV	L.CST(R5),R1		;IF THE DOORBELL                        ;LW0001
    800	001410	032711 	004000 			BIT	#TO11DB,(R1)		;  HAS RUNG,                            ;LW0001
    801	001414	001406 				BEQ	10$			;  PROCESS THE                          ;LW0001
    802	001416					CALL	DORBEL			;  MISSED INTERRUPT                     ;LW0001
    803	001422					CALL	STRTXQ			;  START XMIT                           ;LW0001
    804	001426					CALL	STRTRQ			;  AND RECEIVE                          ;LW0001
    805	001432				10$:                                                                            ;LW0001
    806					;                                                                               ;**-3
    807					; UPDATE OUR KEEP-ALIVE COUNTER
    808					;
    809	001432	032765 	140000 	000024 		BIT	#LS.RUN!LS.INI,L.STS(R5) ;RUNNING?
    810	001440	001414 				BEQ	20$		;NO-- DON'T DO KEEP-ALIVE (NO COMM REGION!)
    811	001442	032765 	000001 	000062 		BIT	#BIT0,LDINVX+L.RST(R5)	;IF VALID EXAMINE IF OFF,               ;LW0001
    812	001450	001412 				BEQ	30$			;  DON'T DO KEEP-ALIVE EITHER           ;LW0001
    813	001452	012703 	000054 			MOV	#L.MKA,R3	;POINT TO OUR KEEP-ALIVE COUNT
    814	001456	060503 				ADD	R5,R3		; IN LINE TABLE
    815	001460	005213 				INC	(R3)		;INCREMENT THE COUNT
    816	001462	012702 	000005 			MOV	#KPALIV,R2	;SET ADDRESS OF KEEP-ALIVE IN GENERAL REGION
    817	001466					CALL	DEPMYG		;DEPOSIT NEW KEEP-ALIVE COUNT IN MY GENERAL REGION
    818	001472				20$:
    819	001472					CALLR	CTLCMP		;ATTEMPT TO FINISH CONTROL FUNCTION AND RETURN FROM TMOU
    820	001476				30$:	RETURN                                                                  ;LW0001
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 21
XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)

    822						.SBTTL	XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
    823					;
    824					; XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
    825					;
    826					; THIS ROUTINE IS CALLED WHEN THE INTERRUPT SERVICE "$DTEIS"
    827					; DETECTS AN INTERRUPT AND REQUESTS THE DLC TO PROCESS IT.
    828					;
    829					; INPUTS:
    830					;	R4 -- INTERRUPT CCB ADDRESS
    831					;	R5 -- LINE TABLE ADDRESS FOR THIS DTE20
    832					;
    833					; DISPATCHES TO INTERRUPT CONDITION ROUTINES:
    834					;	T10DON -- TO-10 DONE
    835					;	T11DON -- TO-11 DONE
    836					;	DORBEL -- TO-11 DOORBELL
    837					;
    838					; OUTPUTS:
    839					;	NONE
    840					;
    841	001500				XMCMP:
    842	001500	010465 	000020 			MOV	R4,L.ICB(R5)	;STORE INTERRUPT CCB ADDRESS BACK FOR INTERRUPT SERVICE
    843	001504	016501 	000022 			MOV	L.CST(R5),R1	;GET DTE20 CSTAT ADDRESS
    844					;
    845					; CHECK FOR INTERRUPT CONDITIONS
    846					;
    847	001510	032711 	120000 			BIT	#TO10DN!TO10ER,(R1) ;TO-10 DONE OR ERROR?
    848	001514	001402 				BEQ	40$		;NO
    849	001516					CALL	T10DON		;YES-- SERVICE IT
    850	001522				40$:
    851	001522	132711 	000202 			BITB	#TO11DN!TO11ER,(R1) ;TO-11 DONE OR ERROR?
    852	001526	001402 				BEQ	50$		;NO
    853	001530					CALL	T11DON		;YES-- SERVICE IT
    854	001534				50$:
    855	001534	032711 	004000 			BIT	#TO11DB,(R1)	;TO-11 DOORBELL?
    856	001540	001402 				BEQ	60$		;NO
    857	001542					CALL	DORBEL		;YES-- SERVICE IT
    858	001546				60$:
    859	001546					CALL	STRTXQ		;START TRANSMISSION IF POSSIBLE
    860	001552					CALL	STRTRQ		; THEN RECEIVE
    861	001556					CALLR	CTLCMP		;CHECK FOR CONTROL FUNCTION COMPLETION
    862									; AND RETURN FROM XMCMP
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 22
T10DON -- TO -10 DONE SERVICE

    864						.SBTTL	T10DON -- TO -10 DONE SERVICE
    865					;
    866					; T10DON -- TO -10 DONE SERVICE
    867					;
    868					; INPUTS:
    869					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
    870					;	R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
    871					;	CC-N -- SET IF NORMAL TRANSFER TERMINATION
    872					;		CLEAR IF ERROR TRANSFER TERMINATION
    873					;
    874					; OUTPUTS:
    875					;	R0,R3,R2,R4 DESTROYED
    876					;
    877	001562				T10DON:
    878	001562	100404 				BMI	20$		;NO ERROR-- GO ON
    879	001564	012703 	177772 			MOV	#CS.TRE,R3	;TRANSFER ERROR-- REPORT IT
    880	001570					CALL	ASYERR		; TO HLP AND STOP PROTOCOL
    881	001574				20$:
    882					.IF DF D$$CHK
    883	001574	032761 	007777 	177760 		BIT	#TO10CM,TO10BC-CSTAT(R1) ;TO-10 COUNT RUN OUT?
    884	001602	001013 				BNE	28$		;NO-- ERROR
    885					.IFTF
    886	001604	012711 	050000 			MOV	#DON10C!ERR10C,(R1) ;CLEAR DONE AND ERROR FLAGS
    887	001610	012703 	000130 			MOV	#L.XCT,R3	;POINT TO XMIT BLOCK
    888	001614	060503 				ADD	R5,R3		; IN LINE TABLE
    889	001616					CALL	UPDADR		;UPDATE BUS ADDRESS AND COUNT
    890					.IFT
    891	001622	026165 	177764 	000126 		CMP	TO10AD-CSTAT(R1),L.XLA(R5) ;FINAL ADDRESS MATCH?
    892	001630	001405 				BEQ	30$		;YES-- GO ON
    893	001632				28$:
    894	001632	012703 	177771 			MOV	#CS.DCK,R3	;NO-- INDICATE FAILURE
    895	001636					CALL	ASYERR		; TO HLP
    896	001642	000413 				BR	90$		;GO ON
    897					;
    898	001644				30$:
    899	001644	005713 				TST	(R3)		;THIS CCB BUFFER DONE?
    900					.ENDC
    901	001646	001011 				BNE	90$		;BUFFER NOT COMPLETE-- GO ON
    902	001650	012703 	000001 			MOV	#CS.SUC,R3	;INDICATE SUCCESS
    903	001654					CALL	$XMCMP		; . .
    904	001660	005265 	000142 			INC	L.XMT(R5)	; COUNT THIS XMT SUCCESS                        ;BH0003
    905	001664	001002 				BNE	90$		; ...                                           ;BH0003
    906	001666	005365 	000142 			DEC	L.XMT(R5)	; DON'T ALLOW COUNTER WRAP                      ;BH0003
    907	001672				90$:
    908	001672					RETURN			;RETURN FROM T10DON
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 23
T11DON -- TO -11 DONE SERVICE

    910						.SBTTL	T11DON -- TO -11 DONE SERVICE
    911					;
    912					; T11DON -- TO -11 DONE SERVICE
    913					;
    914					; INPUTS:
    915					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
    916					;	R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
    917					;	CC-N -- SET IF NORMAL TRANSFER TERMINATION
    918					;		CLEAR IF ERROR TRANSFER TERMINATION
    919					;
    920					; OUTPUTS:
    921					;	R0,R3,R2,R4 DESTROYED
    922					;
    923	001674				T11DON:
    924	001674	100404 				BMI	20$		;NO ERRORS-- GO ON
    925	001676	012703 	177772 			MOV	#CS.TRE,R3	;ERROR-- INDICATE THAT
    926	001702					CALL	ASYERR		; TO HLP AND STOP PROTOCOL
    927	001706				20$:
    928					.IF DF D$$CHK
    929	001706	032761 	007777 	177762 		BIT	#TO11CM,TO11BC-CSTAT(R1) ;COUNT RUN OUT?
    930	001714	001017 				BNE	28$		;NO-- ERROR
    931					.IFTF
    932	001716	012711 	000101 			MOV	#DON11C!ERR11C,(R1) ;CLEAR DONE AND ERROR FLAGS
    933	001722	012703 	000076 			MOV	#L.RCT,R3	;POINT TO RECEIVE BLOCK (COUNT WORD)
    934	001726	060503 				ADD	R5,R3		; IN LINE TABLE
    935	001730	161365 	000104 			SUB	(R3),L.RPZ(R5)	;COUNT DOWN MESSAGE SIZE
    936	001734	161365 	000102 			SUB	(R3),L.RCZ(R5)	; AND CURRENT TRANSFER SIZE
    937	001740					CALL	UPDADR		;UPDATE BUS ADDRESS AND BUFFER SIZE
    938					.IFT
    939	001744	026165 	177766 	000074 		CMP	TO11AD-CSTAT(R1),L.RLA(R5) ;ADDRESS MATCH EXPECTED VALUE?
    940	001752	001405 				BEQ	30$		;YES-- GO ON
    941	001754				28$:
    942	001754	012703 	177771 			MOV	#CS.DCK,R3	;NO-- INDICATE ERROR
    943	001760					CALL	ASYERR		; TO HLP
    944	001764	000413 				BR	90$		;GO ON
    945					;
    946	001766				30$:
    947	001766	005713 				TST	(R3)		;ANY MORE LEFT IN THIS CCB BUFFER?
    948					.ENDC
    949	001770	001011 				BNE	90$		;NOT DONE-- GO ON
    950	001772	012703 	000001 			MOV	#CS.SUC,R3	;SAY SUCCESS
    951	001776					CALL	$RCCMP		; TO HLP
    952	002002	005265 	000140 			INC	L.RCV(R5)	; COUNT THIS RCV SUCCESS                        ;BH0003
    953	002006	001002 				BNE	90$		; ...                                           ;BH0003
    954	002010	005365 	000140 			DEC	L.RCV(R5)	; DON'T ALLOW COUNTER WRAP                      ;BH0003
    955	002014				90$:
    956	002014					RETURN			;RETURN FROM T11DON
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 24
DORBEL -- TO -11 DOORBELL SERVICE

    958						.SBTTL	DORBEL -- TO -11 DOORBELL SERVICE
    959					;
    960					; DORBEL -- TO -11 DOORBELL SERVICE
    961					;
    962					; INPUTS:
    963					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
    964					;	R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
    965					;
    966					; OUTPUTS:
    967					;	R0,R3,R2,R4 DESTROYED
    968					;
    969	002016				DORBEL:
    970	002016	012711 	002000 			MOV	#INT11C,(R1)	;CLEAR RINGING DOORBELL
    971	002022	032765 	140000 	000024 		BIT	#LS.RUN!LS.INI,L.STS(R5) ;RUNNING NORMAL PROTOCOL?
    972	002030	001435 				BEQ	90$		;NO-- IGNORE THIS
    973	002032	012702 	000002 			MOV	#STATUS,R2	;POINT TO STATUS WORD
    974	002036	010503 				MOV	R5,R3		;COPY LINE TABLE ADDRESS
    975	002040	062703 	000056 			ADD	#L.RST,R3	;POINT TO RECEIVED STATUS WORD
    976	002044					CALL	EXMHSM		;READ HIS TO-ME STATUS
    977	002050	103425 				BCS	90$		;GIVE UP IF WE CAN'T GET STATUS
    978					;
    979	002052	012703 	177776 			MOV	#CS.HLT,R3	;ASSUME VALID EXAMINE HAS GONE AWAY
    980	002056	032765 	000001 	000062 		BIT	#BIT0,LDINVX+L.RST(R5)	;VALID EXAMINE UP?                      ;LW0001
    981	002064	001417 				BEQ	90$		;NOPE-- DON'T DO ANYTHING                       ;LW0001
    982	002066	032765 	040000 	000024 		BIT	#LS.INI,L.STS(R5) ;WE DOING INIT ALREADY?                       ;**-2
    983	002074	001013 				BNE	90$		;YES-- BITS ARE MANAGED BY "STT"
    984	002076	032765 	000006 	000062 		BIT	#BIT1!BIT2,LDINVX+L.RST(R5) ;IS HE REQUESTING INIT?
    985	002104	001407 				BEQ	90$		;NO-- ALL IS OK
    986	002106	052765 	000002 	000114 		BIS	#BIT1,LDINVX+L.XST(R5) ;YES-- MAKE SURE WE DO
    987	002114	012703 	177774 			MOV	#CS.SRO,R3	;SAY START WHILE ONLINE
    988	002120				20$:
    989	002120					CALL	ASYERR		;INDICATE SUCH TO THE HLP AND STOP PROTOCOL
    990	002124				90$:
    991	002124					RETURN			;RETURN FROM DORBEL
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 25
STRTXQ -- START TRANSMIT QUEUE

    993						.SBTTL	STRTXQ -- START TRANSMIT QUEUE
    994					;
    995					; STRTXQ -- START TRANSMIT QUEUE
    996					;
    997					; THIS ROUTINE MAY BE CALLED WHENEVER IT COULD BE POSSIBLE TO START
    998					; ANOTHER TO -10 TRANSFER.  A TRANSFER IS STARTED ONLY IF:
    999					;	1) NO OTHER TO -10 TRANSFER IS IN PROGRESS
   1000					;	2) THERE IS A BUFFER IN THE TRANSMIT QUEUE
   1001					;	3) THE TRANSMIT BUFFER IS IN THE SAME 32K BANK AS ANY RECEIVE
   1002					;		CURRENTLY IN PROGRESS.
   1003					;
   1004					; INPUTS:
   1005					;	R1 -- EXTERNAL PAGE ADDRESS OF DTE20 CSTAT REGISTER
   1006					;	R5 -- LINE TABLE ADDRESS OF THIS DTE20
   1007					;
   1008					; OUTPUTS:
   1009					;	R0,R2,R3,R4 DESTROYED
   1010					;
   1011	002126				STRTXQ:
   1012	002126	005765 	000024 			TST	L.STS(R5)	;PROTOCOL RUNNING?
   1013	002132	100045 				BPL	90$		;NO-- DON'T TRY ANYTHING
   1014	002134	032765 	000001 	000062 		BIT	#BIT0,LDINVX+L.RST(R5)	;VALID EXAMINE UP?                      ;LW0001
   1015	002142	001441 				BEQ	90$		;NOPE-- DON'T DO ANYTHING                       ;LW0001
   1016	002144	005765 	000130 			TST	L.XCT(R5)	;TRANSFER IN PROGRESS?
   1017	002150	001036 				BNE	90$		;YES-- DON'T TRY TO START ANOTHER
   1018					;
   1019					; FIND BUFFER ADDRESS AND NEXT TRANSFER BYTE COUNT
   1020					;
   1021	002152	012703 	000124 			MOV	#L.XBA,R3	;POINT TO XMIT BUFFER BLOCK
   1022	002156	060503 				ADD	R5,R3		; IN LINE TABLE
   1023	002160	005765 	000132 			TST	L.XBZ(R5)	;IS THERE ANYTHING LEFT TO THIS BUFFER?
   1024	002164	001006 				BNE	20$		;YES-- USE IT
   1025	002166					CALL	CNVADR		;CONVERT BUS ADDRESS AND COUNT FROM CCB
   1026	002172	103425 				BCS	90$		;QUEUE EMPTY-- RETURN NOW
   1027					;
   1028	002174	016465 	000020 	000132 		MOV	C.CNT(R4),L.XBZ(R5) ;SET COUNT AS BUFFER SIZE
   1029	002202				20$:
   1030					.IF DF M$$MGE
   1031	002202	012702 	000072 			MOV	#L.RBA,R2	;POINT TO RECEIVE BLOCK FOR ADDRESS CHECKING
   1032					.IFTF
   1033	002206					CALL	CMBYCT		;GET NEXT TRANSFER BYTE COUNT
   1034					.IFT
   1035	002212	103415 				BCS	90$		;CANNOT TRANSFER-- GIVE UP
   1036					.ENDC
   1037					;
   1038					; START TRANSFER BY TELLING -10 WE HAVE SOMETHING FOR HIM
   1039					;
   1040	002214	012702 	000003 			MOV	#QSIZE,R2	;SET TO DEPOSIT QSIZE WORD
   1041	002220					CALL	DEPMYH		;STORE QSIZE WORD IN COMM REGION
   1042	002224	014361 	177764 			MOV	-(R3),TO10AD-CSTAT(R1) ;STORE LOW 16 BITS OF BUS ADDRESS
   1043	002230	012761 	000001 	000002 		MOV	#TO10BM,DIAG3-CSTAT(R1) ;SET TO -10 BYTE MODE
   1044	002236	105265 	000111 			INCB	CPQCNT+L.XST(R5) ;BUMP QCOUNT TO -10
   1045									;*** NOTE THAT THIS DEVIATES FROM THE
   1046									;*** PROTOCOL SPECIFICATION IN THAT
   1047									;*** TO -10 TRANSFERS SWAP THE MEANINGS
   1048									;*** OF QCOUNT AND CPQCNT IN L.XST !!
   1049	002242					CALL	DEPSTS		;TELL -10 THAT WE HAVE SOMETHING FOR HIM
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 25-1
STRTXQ -- START TRANSMIT QUEUE

   1050	002246				90$:
   1051	002246					RETURN			;RETURN FROM STRTXQ
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 26
STRTRQ -- START RECEIVE

   1053						.SBTTL	STRTRQ -- START RECEIVE
   1054					;
   1055					; STRTRQ -- START RECEIVE QUEUE
   1056					;
   1057					; THIS ROUTINE IS CALLED WHENEVER A RECIEVE COULD BE STARTED.
   1058					; A RECIEVE IS STARTED ONLY IF:
   1059					;	1) THERE IS NO RECEIVE CURRENTLY IN PROGRESS
   1060					;	2) THERE IS A FREE RECEIVE BUFFER
   1061					;	3) THERE IS SOME DATA TO RECIEVE FROM THE -10
   1062					;	4) THE RECIEVE BUFFER IS IN THE SAME 32K BANK AS ANY TRANSMIT
   1063					;		CURRENTLY IN PROGRESS.
   1064					;
   1065					; INPUTS:
   1066					;	R1 -- EXTERNAL PAGE ADDRESS OF DTE20 CSTAT REGISTER
   1067					;	R5 -- LINE TABLE ADDRESS OF THIS DTE20
   1068					;
   1069					; OUTPUTS:
   1070					;	R0,R2,R3,R4 DESTROYED
   1071					;
   1072	002250				STRTRQ:
   1073	002250	005765 	000024 			TST	L.STS(R5)	;PROTOCOL RUNNING?
   1074	002254	100123 				BPL	90$		;NO-- DON'T TRY ANYTHING
   1075	002256	032765 	000001 	000062 		BIT	#BIT0,LDINVX+L.RST(R5)	;VALID EXAMINE UP?                      ;LW0001
   1076	002264	001517 				BEQ	90$		;NOPE-- DON'T DO ANYTHING                       ;LW0001
   1077	002266	005765 	000076 			TST	L.RCT(R5)	;TRANSFER IN PROGRESS?
   1078	002272	001114 				BNE	90$		;YES-- CAN'T DO ANOTHER
   1079					;
   1080					; READ NEXT QSIZE FROM -10 IF NEEDED
   1081					;
   1082	002274	012703 	000102 			MOV	#L.RQZ,R3	;POINT TO QSIZE WORD
   1083	002300	060503 				ADD	R5,R3		; IN LINE TABLE
   1084	002302	005713 				TST	(R3)		;SOMETHING ALREADY THERE?
   1085	002304	001033 				BNE	30$		;YES-- GO ON
   1086									;*** NOTE THAT THIS DEVIATES FROM THE
   1087									;*** PROTOCOL SPECIFICATION IN THAT
   1088									;*** TO -10 TRANSFERS SWAP THE MEANINGS
   1089									;*** OF QCOUNT AND CPQCNT IN L.XST !!
   1090	002306	126565 	000056 	000110 		CMPB	QCOUNT+L.RST(R5),QCOUNT+L.XST(R5) ;IS THERE ANYTHING FOR US FROM -10?
   1091	002314	001503 				BEQ	90$		;NO-- GIVE UP, NOTHING TO RECEIVE
   1092	002316	105265 	000110 			INCB	QCOUNT+L.XST(R5) ;BUMP OUR COPY OF QCOUNT
   1093					.IF DF P$$CHK
   1094	002322	126565 	000056 	000110 		CMPB	QCOUNT+L.RST(R5),QCOUNT+L.XST(R5) ;ONE THING?
   1095	002330	001014 				BNE	20$		;NO-- QCOUNT IS IN ERROR
   1096					.IFTF
   1097	002332	012702 	000003 			MOV	#QSIZE,R2	;READ HIS TO-ME QSIZE
   1098	002336					CALL	EXMHSM		; FROM -10
   1099	002342	103470 				BCS	90$		;OOPS-- ERROR ALREADY REPORTED
   1100					.IFT
   1101	002344	022313 				CMP	(R3)+,(R3)	;IS CSIZE LESS OR EQUAL TO PSIZE?
   1102	002346	003005 				BGT	20$		;NO-- INVALID QSIZE
   1103	002350	021367 	000000G			CMP	(R3),$RDBSZ	;IS PSIZE LESS THAN OR EQUAL TO RECEIVE BUFFER SIZE?
   1104	002354	003002 				BGT	20$		;NO-- TOO BIG PSIZE
   1105	002356	005743 				TST	-(R3)		;IS CSIZE POSITIVE AND NON-ZERO?
   1106	002360	003005 				BGT	30$		;YES-- QSIZE IS ALL OK
   1107	002362				20$:
   1108	002362	012703 	177770 			MOV	#CS.PCK,R3	;NO-- INDICATE PROTOCOL ERROR
   1109	002366					CALL	ASYERR		; TO HLP
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 26-1
STRTRQ -- START RECEIVE

   1110	002372	000454 				BR	90$		;AND GIVE UP
   1111					.ENDC
   1112					;
   1113					; FIND BUFFER ADDRESS AND COUNT FOR THE TRANSFER
   1114					;
   1115	002374				30$:
   1116	002374	062703 	177770 			ADD	#L.RBA-L.RQZ,R3	;POINT TO OUR RECEIVE BUFFER ADDRESS BLOCK
   1117	002400	005765 	000100 			TST	L.RBZ(R5)	;MORE BUFFER LEFT YET?
   1118	002404	001013 				BNE	40$		;YES-- USE IT
   1119	002406					CALL	CNVADR		;CONVERT BUS ADDRESS FROM CCB
   1120	002412	103444 				BCS	90$		;NO FREE BUFFERS-- GO AWAY FOR NOW
   1121					;
   1122	002414	016565 	000104 	000100 		MOV	L.RPZ(R5),L.RBZ(R5) ;SET SIZE OF BUFFER
   1123	002422	016564 	000100 	000020 		MOV	L.RBZ(R5),C.CNT(R4) ;ALSO IN CCB
   1124	002430					CALL	GET1BF		;GET ANOTHER RECEIVE BUFFER
   1125	002434				40$:
   1126					.IF DF M$$MGE
   1127	002434	012702 	000124 			MOV	#L.XBA,R2	;POINT TO XMIT BUFFER ADDRESS BLOCK
   1128					.IFTF
   1129	002440					CALL	CMBYCT		;GET NEXT BYTE COUNT
   1130					.IFT
   1131	002444	103427 				BCS	90$		;CANNOT TRANSFER-- GIVE UP
   1132					.ENDC
   1133					;
   1134					; START DTE20 ON THIS TRANSFER
   1135					;
   1136	002446	012700 	100000 			MOV	#TO11IB,R0	;ASSUME THE TRANSFER IS LESS (WILL COMPLEMENT TO11IB WIT
   1137	002452	021365 	000102 			CMP	(R3),L.RCZ(R5)	;IS THE BYTE COUNT MORE THAN -10 WILL GIVE US?
   1138	002456	002403 				BLT	50$		;NO-- GO ON
   1139	002460	005000 				CLR	R0		;YES-- THIS IS LAST XFER, SO INTERRUPT BOTH -10 AND -11
   1140	002462	016513 	000102 			MOV	L.RCZ(R5),(R3)	;SET REMAINING BYTES AS COUNT
   1141	002466				50$:
   1142	002466	051300 				BIS	(R3),R0		;GET +VE COUNT WITH THE COMPLEMENT OF DESIRED TO11IB
   1143	002470	105765 	000106 			TSTB	L.RTM(R5)	;WHAT'S THE TRANSFER MODE?
   1144	002474	001404 				BEQ	60$		;BYTES-- COUNT IS OK
   1145	002476	005200 				INC	R0		;ROUND UP TO NEXT WORD
   1146	002500	006200 				ASR	R0		;DIVIDE BY TWO FOR WORD COUNT
   1147									;THIS WILL SIGN-EXTEND TO11IB, ALSO INTO ZSTOP WHICH WIL
   1148	002502	052700 	020000 			BIS	#TO11BM,R0	;CLEAR BYTE MODE BIT (WITH NEG R0)
   1149	002506				60$:
   1150	002506	005400 				NEG	R0		;NEGATE BYTE COUNT AND COMPLEMENT TO11IB, TO11BM
   1151	002510	042700 	050000 			BIC	#^C<TO11IB!TO11BM!TO11CM>,R0 ;CLEAR UNUSED BITS
   1152	002514	014361 	177766 			MOV	-(R3),TO11AD-CSTAT(R1) ;SET LOW ADDRESS BITS
   1153	002520	010061 	177762 			MOV	R0,TO11BC-CSTAT(R1) ;SET BYTE COUNT AND START TRANSFER
   1154	002524				90$:
   1155	002524					RETURN			;RETURN FROM STRTRQ
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 27
DEPSTS -- DEPOSIT TO-HIM STATUS WORD

   1157						.SBTTL	DEPSTS -- DEPOSIT TO-HIM STATUS WORD
   1158					;
   1159					; DEPSTS -- DEPOSIT MY TO-HIM STATUS WORD
   1160					;
   1161	002526				DEPSTS:
   1162	002526	012702 	000002 			MOV	#STATUS,R2	;SET TO STATUS WORD
   1163	002532	010503 				MOV	R5,R3		;COPY LINE TABLE ADDRESS
   1164	002534	062703 	000110 			ADD	#L.XST,R3	;COMPUTE XMIT STS WORD ADDRESS
   1165	002540					CALL	DEPMYH		;DO IT TO MY TO-HIM REGION
   1166	002544	012711 	000400 			MOV	#TO10DB,(R1)	;RING THE -10 THAT STATUS CHANGED
   1167	002550					RETURN			;RETURN FROM DEPSTS
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 28
EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE C

   1169						.SBTTL	EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
   1170					;
   1171					; EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
   1172					;
   1173					; INPUTS:
   1174					;	R2 -- OFFSET WITHIN REGION
   1175					;	R3 -- ADDRESS OF 3-WORD BLOCK TO EXAMINE/DEPOSIT
   1176					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
   1177					;	R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
   1178					;
   1179					; OUTPUTS:
   1180					;	CC-C SET -- EXAMINE/DEPOSIT FAILED
   1181					;	R0,R2 DESTROYED
   1182					;
   1183					;
   1184					; EXMHSG -- EXAMINE HIS GENERAL REGION
   1185					;
   1186	002552				EXMHSG:
   1187	002552	066502 	000042 			ADD	L.EHG(R5),R2	;COMPUTE ACTUAL ADDRESS
   1188	002556					CALLRB	PRTEXM		;DO EXAMINE AND RETURN
   1189					;
   1190					; EXMHSM -- EXAMINE HIS TO-ME REGION
   1191					;
   1192	002560				EXMHSM:
   1193	002560	066502 	000044 			ADD	L.EHM(R5),R2	;COMPUTE ACTUAL ADDRESS
   1194	002564					CALLRB	PRTEXM		;EXAMINE IT
   1195					;
   1196					; EXMMYH -- EXAMINE MY TO-HIM REGION
   1197					;
   1198	002566				EXMMYH:
   1199	002566	066502 	000050 			ADD	L.DMH(R5),R2	;ADD OFFSET FROM GENERAL
   1200	002572					CALLRX	EXMMYG		; AND ACT LIKE GENERAL
   1201					;
   1202					; EXMMYG -- EXAMINE MY GENERAL REGION
   1203					;
   1204	002572				EXMMYG:
   1205	002572	066502 	000046 			ADD	L.EMG(R5),R2	;COMPUTE ACTUAL ADDRESS
   1206	002576					CALLRB	PRTEXM		;EXAMINE IT
   1207					;
   1208					; DEPMYH -- DEPOSIT MY TO-HIM REGION
   1209					;
   1210	002600				DEPMYH:
   1211	002600	066502 	000050 			ADD	L.DMH(R5),R2	;COMPUTE ACTUAL ADDRESS
   1212	002604					CALLRX	DEPMYG		;AND ACT LIKE GENERAL
   1213					;
   1214					; DEPMYG -- DEPOSIT MY GENERAL REGION
   1215					;
   1216	002604				DEPMYG:
   1217									;MY GENERAL IS ALWAYS DEPOSIT OFFSET 0
   1218	002604					CALLRB	PRTDEP		;DO DEPOSIT
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 29
PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT

   1220						.SBTTL	PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
   1221					;
   1222					; PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
   1223					;
   1224					; INPUTS:
   1225					;	R2 -- EXAMINE/DEPOSIT ADDRESS WITHIN PROTECTED SPACE
   1226					;	R3 -- ADDRESS OF 3-WORD BLOCK TO EXAMINE/DEPOSIT
   1227					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
   1228					;	R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
   1229					;
   1230					; OUTPUTS:
   1231					;	CC-C SET -- EXAMINE/DEPOSIT FAILED
   1232					;	R0 DESTROYED
   1233					;
   1234					;
   1235					; PRTEXM -- PROTECTED EXAMINE
   1236					;
   1237	002606				PRTEXM:
   1238	002606	005000 				CLR	R0		;SET EXAMINE MODE
   1239	002610					CALL	WTEXDP		;WAIT FOR EXAMINE/DEPOSIT
   1240	002614	016113 	177746 			MOV	DEXWD3-CSTAT(R1),(R3) ;GET BITS 20-35
   1241	002620	016163 	177750 	000002 		MOV	DEXWD2-CSTAT(R1),2(R3) ;GET BITS 4-19
   1242	002626	016163 	177752 	000004 		MOV	DEXWD1-CSTAT(R1),4(R3) ;GET BITS 0-3
   1243	002634					RETURN			;RETURN FROM PRTEXM, CC-C SET/CLEAR BY WTEXDP
   1244					;
   1245					; PRTDEP -- PROTECTED DEPOSIT
   1246					;
   1247	002636				PRTDEP:
   1248	002636	011361 	177746 			MOV	(R3),DEXWD3-CSTAT(R1) ;SET BITS 20-35
   1249	002642	016361 	000002 	177750 		MOV	2(R3),DEXWD2-CSTAT(R1) ;SET BITS 4-19
   1250	002650	016361 	000004 	177752 		MOV	4(R3),DEXWD1-CSTAT(R1) ;SET BITS 0-3
   1251	002656	012700 	010000 			MOV	#DEP,R0		;SET DEPOSIT MODE
   1252	002662					CALLRX	WTEXDP		;WAIT FOR EXAMINE/DEPOSIT AND
   1253									; RETURN FROM PRTDEP, CC-C SET/CLEAR BY WTEXDP
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 30
WTEXDP -- WAIT FOR EXAMINE/DEPOSIT

   1255						.SBTTL	WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
   1256					;
   1257					; WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
   1258					;
   1259					; INPUTS:
   1260					;	R0 -- EXAMINE OR DEPOSIT MODE (FOR TENAD1)
   1261					;	R2 -- EXAMINE/DEPOSIT ADDRESS (FOR TENAD2)
   1262					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
   1263					;
   1264					; OUTPUTS:
   1265					;	CC-C SET -- EXAMINE/DEPOSIT FAILED
   1266					;	R0 DESTROYED
   1267					;
   1268	002662				WTEXDP:
   1269	002662	010061 	177754 			MOV	R0,TENAD1-CSTAT(R1) ;SET DEPOSIT MODE AND ADDRESS BITS 13-19
   1270	002666	010261 	177756 			MOV	R2,TENAD2-CSTAT(R1) ;SET ADDRESS BITS 20-35 AND START EXAMINE/DEPOSIT
   1271	002672	012700 	003000 			MOV	#3000,R0	;SET TIMEOUT COUNT
   1272	002676				10$:
   1273	002676	032711 	000004 			BIT	#DEXDON,(R1)	;EXAMINE/DEPOSIT DONE?
   1274	002702	001003 				BNE	20$		;YES-- GO ON
   1275	002704					SOB	R0,10$		;NO-- WAIT TILL DONE
   1276	002710	000404 				BR	80$		;NOT DONE-- RETURN ERROR
   1277					;
   1278	002712				20$:
   1279	002712	000241 				CLC			;ASSUME SUCCESS
   1280	002714	032711 	000020 			BIT	#BPARER,(R1)	;E-BUS PARITY ERROR?
   1281	002720	001407 				BEQ	90$		;NO-- ALL OK
   1282	002722				80$:
   1283	002722	010346 				MOV	R3,-(SP)	;SAVE R3
   1284	002724	012703 	177773 			MOV	#CS.TDN,R3	;SAY -10 DOWN
   1285	002730					CALL	ASYERR		;INDICATE ERROR TO HLP, STOP PROTOCOL
   1286	002734	012603 				MOV	(SP)+,R3	;RESTORE R3
   1287	002736	000261 				SEC			;INDICATE FAILURE
   1288	002740				90$:
   1289	002740					RETURN			;RETURN FROM WED, CC-C SET/CLEAR
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 31
CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES

   1291						.SBTTL	CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
   1292					;
   1293					; CNVADR -- CONVERT BUFFER ADDRESS FROM CCB
   1294					;
   1295					;	R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1296					;
   1297					; RETURNS:
   1298					;	CC-C SET -- NO AVAILABLE BUFFERS
   1299					;	R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1300					;	R4 -- CCB ADDRESS
   1301					;
   1302	002742				CNVADR:
   1303	002742	062703 	177772 			ADD	#L.RFQ-L.RBA,R3	;POINT TO QUEUE LISTHEAD
   1304	002746					CALL	$CMQRM		;GET THE NEXT THING IN QUEUE
   1305	002752	103421 				BCS	90$		;THAT'S IT-- END OF QUEUE
   1306	002754	022323 				CMP	(R3)+,(R3)+	;SKIP LISTHEAD
   1307	002756	010423 				MOV	R4,(R3)+	;STORE CCB ADDRESS NOW
   1308					.IF DF M$$MGE
   1309	002760	010346 				MOV	R3,-(SP)	;SAVE POINTER
   1310	002762	016403 	000014 			MOV	C.BUF+0(R4),R3	;GET RELOCATION BIAS
   1311	002766	016402 	000016 			MOV	C.BUF+2(R4),R2	; AND VIRTUAL ADDRESS
   1312	002772					CALL	$CNV18		;CONVERT TO 18-BIT UNIBUS ADDRESS
   1313	002776	010300 				MOV	R3,R0		;COPY THE HIGH PART
   1314	003000	012603 				MOV	(SP)+,R3	;RESTORE POINTER
   1315	003002	006200 				ASR	R0		;PUT BITS 17-16
   1316	003004	006000 				ROR	R0		; FROM BITS 1-0
   1317	003006	006000 				ROR	R0		;  INTO BITS 15-14 (THIS WILL LEAVE CARRY CLEAR)
   1318	003010	010013 				MOV	R0,(R3)		;STORE HIGH ADDRESS BITS
   1319	003012	010263 	000002 			MOV	R2,2(R3)	; LOW ADDRESS BITS
   1320					.IFF
   1321						MOV	C.BUF+2(R4),2(R3) ;STORE PHYSICAL BUSS ADDRESS
   1322					.ENDC
   1323	003016				90$:
   1324	003016					RETURN			;RETURN FROM CNVADR
   1325					;
   1326					; CMBYCT -- COMPUTE NEXT TRANSFER BYTE COUNT
   1327					;
   1328					;	R2 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1329					;	      FOR OPPOSITE TRANSFER DIRECTION (LINE TABLE OFFSET)
   1330					;	      (MAPPED SYSTEMS ONLY)
   1331					;	R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1332					;
   1333					; RETURNS:
   1334					;	CC-C SET -- TRANSFER CANNOT OCCUR NOW (MAPPED SYSTEMS ONLY)
   1335					;	R3 -- POINTER TO TRANSFER COUNT WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1336					;
   1337	003020				CMBYCT:
   1338					.IF DF M$$MGE
   1339	003020	060502 				ADD	R5,R2		;OFFSET REVERSE ADDRESS IN LINE TABLE
   1340	003022	005762 	000004 			TST	L.XCT-L.XBA(R2)	;TRANSFER IN PROGRESS IN REVERSE DIRECTION?
   1341	003026	001404 				BEQ	20$		;NO-- MUST BE OK
   1342	003030	021213 				CMP	(R2),(R3)	;YES-- IS THIS TRANSFER TO SAME 32K BANK?
   1343	003032	001402 				BEQ	20$		;YES-- OK
   1344	003034	000261 				SEC			;NO-- ERROR
   1345	003036	000414 				BR	90$		;RETURN FAILURE
   1346					;
   1347	003040				20$:
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 31-1
CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES

   1348	003040	012361 	177744 			MOV	(R3)+,DLYCNT-CSTAT(R1) ;SET HIGH ADDRESS
   1349					.IF DF D$$BUG
   1350	003044	052761 	000000 	177744 		BIS	#0,DLYCNT-CSTAT(R1) ;SET DELAY COUNT
   1351					.ENDC
   1352	003052	012300 				MOV	(R3)+,R0	;GET LOW ADDRESS
   1353	003054	016313 	000002 			MOV	2(R3),(R3)	;USE REMAINING BYTE COUNT AS TRANSFER SIZE
   1354	003060	061300 				ADD	(R3),R0		;BUMP LOW ADDRESS BY COUNT
   1355	003062	103002 				BCC	90$		;UNDER 32K-- GO ON (CC-C CLEAR)
   1356	003064	160013 				SUB	R0,(R3)		;OOPS-- REDUCE COUNT BY AMOUNT OVER NEXT 32K BOUNDARY
   1357	003066	000241 				CLC			;CLEAR CC-C TO INDICATE SUCCESS
   1358	003070				90$:
   1359					.IFF
   1360						ADD	#L.RBZ-L.RBA,R3	;POINT TO BUFFER SIZE WORD
   1361						MOV	(R3),-(R3)	;SET COUNT AS CURRENT BUFFER SIZE
   1362					.ENDC
   1363	003070					RETURN			;RETURN FROM CBC, CC-C SET/CLEAR
   1364					;
   1365					; UPDADR -- UPDATE BUFFER ADDRESS
   1366					;
   1367					;	R3 -- POINTER TO TRANSFER COUNT WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1368					;
   1369					; RETURNS:
   1370					;	CC-Z SET -- THIS BUFFER (TOP OF QUEUE) IS COMPLETE
   1371					;	R3 -- POINTER TO BUFFER SIZE WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
   1372					;
   1373	003072				UPDADR:
   1374	003072	011300 				MOV	(R3),R0		;GET COUNT
   1375	003074	060063 	177776 			ADD	R0,L.RLA-L.RCT(R3) ;BUMP LOW ADDRESS
   1376					.IF DF M$$MGE
   1377	003100	103003 				BCC	10$		;OK-- GO ON
   1378	003102	062763 	040000 	177774 		ADD	#BUSA16,L.RBA+0-L.RCT(R3) ;CARRY-- CARRY INTO THE HIGH PART
   1379	003110				10$:
   1380					.ENDC
   1381	003110	005023 				CLR	(R3)+		;CLEAR COUNT WORD
   1382	003112	016304 	177770 			MOV	L.RCB-L.RBZ(R3),R4 ;GET REQUEST CCB ADDRESS
   1383	003116	160013 				SUB	R0,(R3)		;COUNT DOWN BUFFER SIZE
   1384	003120					RETURN			;RETURN FROM UPDADR
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 32
XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MAN

   1386						.SBTTL	XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MANAGEMENT RO
   1387					;
   1388					; XMRCKL -- TRANSMIT AND RECEIVE KILL
   1389					;
   1390	003122				XMRCKL:
   1391	003122					CALL	XMTKIL		;KILL TRANSMIT REQUESTS
   1392	003126					CALLRX	RCVKIL		;KILL RECEIVE REQUESTS, RETURN FROM XMRCKL
   1393					;
   1394					; RCVKIL -- RECEIVE KILL
   1395					;
   1396	003126				RCVKIL:
   1397	003126					CALLRX	GETRBF		;JUST RE-GET OUR RECEIVE BUFFER ALLOCATION
   1398					;
   1399					; GETRBF -- GET TWO RECEIVE BUFFERS
   1400					;
   1401	003126				GETRBF:
   1402	003126					CALL	RETRBF		;RETURN ALL OUR OLD ONES
   1403	003132					CALL	GET1BF		;GET ONE BUFFER
   1404	003136					CALLRX	GET1BF		; AND ANOTHER MAKES TWO, RETURN FROM GETRBF
   1405					;
   1406					; GET1BF -- GET ONE RECEIVE BUFFER
   1407					;
   1408	003136				GET1BF:
   1409	003136					CALL	$RDBGT		;ATTEMPT TO GET ONE RECEIVE BUFFER
   1410	003142	103011 				BCC	20$		;GOT ONE-- PUT IT IN FREE QUEUE
   1411	003144	105265 	000145 			INCB	L.RES(R5)	; COUNT THE RESOURCE ALLOC FAILURE              ;BH0003
   1412	003150	001002 				BNE	10$		; ...                                           ;BH0003
   1413	003152	105365 	000145 			DECB	L.RES(R5)	; DON'T ALLOW COUNTER WRAP                      ;BH0003
   1414	003156				10$:                                                                            ;BH0003
   1415	003156	016504 	000026 			MOV	L.SLN(R5),R4	;NONE FREE-- GET OUR SYSTEM LINE NUMBER
   1416	003162					CALLR	$RDBWT		;PUT IN A WAIT REQUEST AND RETURN FROM GETRBF
   1417					;
   1418	003166				20$:
   1419	003166	010346 				MOV	R3,-(SP)	;SAVE R3
   1420	003170					CALL	QUERBF		;PUT BUFFER IN QUEUE
   1421	003174	012603 				MOV	(SP)+,R3	;RESTORE R3
   1422	003176					RETURN			;RETURN FROM GET1BF
   1423					;
   1424					; QUERBF -- QUEUE A RECEIVE BUFFER TO FREE QUEUE
   1425					;	R4 -- RECEIVE BUFFER CCB
   1426					;	R5 -- DTE20 LINE TABLE ADDRESS
   1427					;
   1428	003200				QUERBF:
   1429	003200	016564 	000026 	000006 		MOV	L.SLN(R5),C.LIN(R4) ;SET OUR SLN IN THE CCB
   1430	003206	012703 	000064 			MOV	#L.RFQ,R3	;POINT TO RECEIVE FREE QUEUE
   1431	003212	060503 				ADD	R5,R3		; IN LINE TABLE
   1432	003214					CALLR	$CMQIN		;STORE IN FREE QUEUE AND RETURN FROM QUERBF
   1433					;
   1434					; RETRBF -- RETURN RECEIVE BUFFERS
   1435					;
   1436	003220				RETRBF:
   1437	003220	016504 	000026 			MOV	L.SLN(R5),R4	;GET OUR SLN
   1438	003224					CALL	$RDBQP		;PURGE ALL THE BUFFER WAIT REQUESTS
   1439	003230	012703 	000064 			MOV	#L.RFQ,R3	;GET RECEIVE FREE QUEUE ADDRESS
   1440	003234	060503 				ADD	R5,R3		; IN LINE TABLE
   1441	003236				10$:
   1442	003236					CALL	$CMQRM		;REMOVE A BUFFER FROM FREE QUEUE
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 32-1
XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MAN

   1443	003242	103403 				BCS	90$		;ALL DONE AT END
   1444	003244					CALL	$RDBRT		;RETURN THE BUFFER TO SYSTEM POOL
   1445	003250	000772 				BR	10$		;LOOP FOR ALL BUFFERS IN FREE QUEUE
   1446					;
   1447	003252				90$:
   1448	003252					RETURN			;RETURN FROM RETRBF
   1449					;
   1450					; XMTKIL -- ABORT ALL TRANSMIT REQUESTS
   1451					;
   1452	003254				XMTKIL:
   1453	003254				10$:
   1454	003254	012703 	000116 			MOV	#L.XMQ,R3	;POINT TO TRANSMIT QUEUE
   1455	003260	060503 				ADD	R5,R3		; IN LINE TABLE
   1456	003262					CALL	$CMQRM		;GET A XMIT BUFFER
   1457	003266	103405 				BCS	90$		;NO MORE-- DONE
   1458	003270	012703 	000100 			MOV	#CS.ABO,R3	;SAY ABORT
   1459	003274					CALL	$XMCMP		;TO TRANSMIT BUFFER
   1460	003300	000765 				BR	10$		;BACK FOR ANOTHER
   1461					;
   1462	003302				90$:
   1463	003302					RETURN			;RETURN FROM XMTKIL
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 33
ASYERR -- ASYNCHRONOUS ERROR PROCESSING

   1465						.SBTTL	ASYERR -- ASYNCHRONOUS ERROR PROCESSING
   1466					;
   1467					; ASYERR -- ASYNCHRONOUS ERROR PROCESSING
   1468					;
   1469					; THIS ROUTINE IS CALLED ON ANY FATAL ERROR DURING PROTOCOL OPERATION.
   1470					; IF PROTOCOL WAS ACTIVE, IT CEASES CURRENT ACTIVITY AND SENDS THE
   1471					; INDICATED ERROR TO THE HIGHER LEVEL PROCESS.
   1472					;
   1473					; INPUTS:
   1474					;	R1 -- ADDRESS OF CSTAT FOR THIS DTE20
   1475					;	R3 -- ERROR STATUS (FOR C.STS)
   1476					;	R5 -- LINE TABLE ADDRESS FOR THIS DTE20
   1477					;
   1478					; OUTPUTS:
   1479					;	R3 DESTROYED
   1480					;
   1481	003304				ASYERR:
   1482					.IF DF D$$BUG
   1483	003304					CALL	SNPSHT		;TAKE A DTE SNAPSHOT IF ERROR
   1484					.ENDC
   1485	003310	010046 				MOV	R0,-(SP)	;SAVE R0
   1486	003312	010246 				MOV	R2,-(SP)	; AND R2
   1487	003314					CALL	LOGGIT		;LOG THIS EVENT                                 ;BH0004
   1488	003320	005765 	000024 			TST	L.STS(R5)	;PROTOCOL ACTIVE?
   1489	003324	100011 				BPL	10$		;NO-- JUST GO ON
   1490	003326	016502 	000026 			MOV	L.SLN(R5),R2	;YES-- GET OUR SLN FOR $ASCMP
   1491	003332	010365 	000030 			MOV	R3,L.PSW(R5)	;STORE STATUS WORD IN CASE OF $ASCMP FAILURE
   1492	003336					CALL	$ASCMP		;REPORT ERROR TO HLP
   1493	003342	103402 				BCS	10$		;RESOURCE ERROR-- WE'LL TRY AGAIN LATER
   1494	003344	005065 	000030 			CLR	L.PSW(R5)	;INDICATE SUCCESSFULL STATUS
   1495	003350				10$:
   1496	003350	032765 	000001 	000114 		BIT	#BIT0,LDINVX+L.XST(R5) ;IS OUR VALID EXAMINE BIT UP?
   1497	003356	001405 				BEQ	20$		;NO-- DON'T PLAY WITH -10
   1498	003360	042765 	000001 	000114 		BIC	#BIT0,LDINVX+L.XST(R5) ;YES-- CLEAR VALID EXAMINE
   1499	003366					CALL	DEPSTS		; IN OUR STATUS WORD
   1500									;NOTE THAT THIS MAY CAUSE ANOTHER CALL
   1501									; TO ERR, BUT VALID EXAMINE WILL BE ZERO.
   1502	003372				20$:
   1503	003372	042765 	140000 	000024 		BIC	#LS.RUN!LS.INI,L.STS(R5) ;INDICATE NO LONGER RUNNING
   1504	003400	012602 				MOV	(SP)+,R2	;RESTORE R2
   1505	003402	012600 				MOV	(SP)+,R0	; AND R0
   1506	003404					RETURN			;RETURN FROM ASYERR
   1507					;
   1508					;
   1509					; SNPSHT -- DTE20 SNAPSHOT FOR ERRORS
   1510					;
   1511					; THIS ROUTINE SAVES ALL THE DTE20 REGISTERS IN "SNPDAT" AND THEN
   1512					; BREAKS TO XDT USING THE "BPT" TRAP.
   1513					;
   1514					; INPUTS:
   1515					;	R1 -- DTE20 CSTAT ADDRESS
   1516					;
   1517					; OUTPUTS:
   1518					;	NONE
   1519					;
   1520					.IF DF D$$BUG
   1521	003406				PATCH::
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 33-1
ASYERR -- ASYNCHRONOUS ERROR PROCESSING

   1522		000040 			.REPT 40
   1523						BR	SNPSHT
   1524					.ENDR
   1525	003506				SNPSHT::
   1526	003506	010246 				MOV	R2,-(SP)	;SAVE R2
   1527	003510	010146 				MOV	R1,-(SP)	; AND R1
   1528	003512	010046 				MOV	R0,-(SP)	; AND R0
   1529	003514	162701 	000034 			SUB	#CSTAT-DLYCNT,R1 ;POINT TO DLYCNT REGISTER
   1530	003520	012702 	003550'			MOV	#SNPDAT,R2	;POINT TO SNAPSHOT AREA
   1531	003524	012700 	000020 			MOV	#<DIAG3-DLYCNT+2>/2,R0 ;GET COUNT OF WORDS IN DTE20
   1532	003530				10$:
   1533	003530	012122 				MOV	(R1)+,(R2)+	;SAVE A REGISTER
   1534	003532					SOB	R0,10$		;SAVE THEM ALL
   1535	003536	012600 				MOV	(SP)+,R0	;RESTORE R0
   1536	003540	012601 				MOV	(SP)+,R1	; AND R1
   1537	003542	012602 				MOV	(SP)+,R2	; AND R2
   1538					;
   1539	003544	000240 				NOP			;TRAP TO XDT
   1540					;
   1541	003546					RETURN			;RETURN FROM SNPSHT
   1542					;
   1543					; SNAPSHOT AREA
   1544					;
   1545	003550				SNPDAT::
   1546	003550					.BLKB	DIAG3+2-DLYCNT
   1547					.ENDC
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 34
LOGGIT - EVENT LOGGING

   1549						.SBTTL	LOGGIT - EVENT LOGGING                                          ;BH0004
   1550					;+                                                                              ;BH0004
   1551					; ** - LOGGIT                                                                   ;BH0004
   1552					;                                                                               ;BH0004
   1553					; INPUTS:                                                                       ;BH0004
   1554					;	R1 = ADDRESS OF CSTAT FOR THIS DTE                                      ;BH0004
   1555					;	R3 = ERROR STATUS                                                       ;BH0004
   1556					;	R5 = LINE TABLE ADDRESS FOR THIS DTE                                    ;BH0004
   1557					;                                                                               ;BH0004
   1558					; OUTPUTS:                                                                      ;BH0004
   1559					;	R0 IS CLOBBERED - ALL ELSE PRESERVED.                                   ;BH0004
   1560					;-                                                                              ;BH0004
   1561		000020 				NREG=<DIAG3-DLYCNT+2>/2 ; NUMBER OF REGISTERS                           ;BH0004
   1562					                                                                                ;BH0004
   1563	003610	016567 	000032 	174200 	LOGGIT:	MOV	L.LOG(R5),PDST	; SET LOGGING DESTINATION                       ;BH0004
   1564	003616	001427 				BEQ	20$		; WE AREN'T ENABLED                             ;BH0004
   1565	003620	010146 				MOV	R1,-(SP)	; SAVE R1                                       ;BH0004
   1566	003622	110367 	174172 			MOVB	R3,PRSN		; PUT REASON INTO CMLOG ARG BLOCK               ;BH0005
   1567	003626	116567 	000026 	174166 		MOVB	L.SLN(R5),PLIN	;    SYS LINE #                                 ;BH0004
   1568	003634	012700 	000016'			MOV	#PDST,R0	; POINT TO ARG BLOCK                            ;BH0004
   1569	003640					CALL	$CMLOG		; DO THE LOGGING >>>ENTER COROUTINE             ;BH0004
   1570	003644	103413 				BCS	15$			;>>>$CMLOG POINTS R2 AT MSG BUFFER      ;BH0007
   1571	003646	012722 				MOV	(PC)+,(R2)+		;>>>SET CODE & LENGTH OF DATA           ;BH0007
   1572	003650	   001 	   040 			 .BYTE	E$DREG,NREG*2		;>>>...                                 ;BH0011
   1573	003652	012746 	000020 			MOV	#NREG,-(SP)		;>>>NUMBER OF REGISTERS                 ;BH0011
   1574	003656	162701 	000034 			SUB	#CSTAT,R1		;>>>ADDR OF FIRST REG                   ;BH0004
   1575	003662	012122 			10$:	MOV	(R1)+,(R2)+		;>>>PUT A REGISTER IN BUFFER            ;BH0004
   1576	003664	005316 				DEC	(SP)			;>>>DO EM ALL                           ;BH0004
   1577	003666	001375 				BNE	10$			;>>>...                                 ;BH0004
   1578	003670	005726 				TST	(SP)+			;>>>CLEAN UP THE STACK                  ;BH0004
   1579	003672					CALL	@(SP)+		; FINISH UP THE LOGGING >>>EXIT COROUTINE       ;BH0004
   1580	003674	012601 			15$:	MOV	(SP)+,R1	; RESTORE R1                                    ;BH0007
   1581	003676				20$:	RETURN                                                                  ;BH0004
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 35
END

   1583						.SBTTL	END
   1584	003700				PASS2:
   1585		000001 				.END
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 35-1
SYMBOL TABLE

ASYERR  003304R  	CS.ERR= 100000   	DON11C= 000100   	E$RRET= 000031   	FS.XON= 007000
A$$CHK= 000000   	CS.HFE= 002000   	DORBEL  002016R  	E$RRTE= 000011   	F$$LVL= 000001
A$$CPS= 000000   	CS.HLT= 177776   	DP    = 000000   	E$RRTO= 000006   	GETRBF  003126R
A$$PRI= 000000   	CS.LST= 040000   	DQ    = 000006   	E$RSEL= 000030   	GET1BF  003136R
A$$TRP= 000000   	CS.MTL= 004000   	DRESET= 000100   	E$RSIN= 000004   	G$$TPP= 000000
BIT0  = 000001   	CS.PCK= 177770   	DTE   = 000024   	E$RSRC= 000015   	G$$TSS= 000000
BIT1  = 000002   	CS.RNG= 000010   	DU    = 000002   	E$RTRN= 000026   	G$$TTK= 000000
BIT10 = 002000   	CS.ROV= 000004   	DUP   = 000012   	E$RUCL= 000001   	G$$WRD= 000000
BIT11 = 004000   	CS.RSN= 010000   	DUV   = 000002   	E$RXTO= 000027   	INTROF= 000010
BIT12 = 010000   	CS.SRO= 177774   	DV    = 000026   	E$TASC= 000001   	INTRON= 000040
BIT13 = 020000   	CS.SUC= 000001   	DZ    = 000030   	E$TASX= 000002   	INTSON= 000001
BIT14 = 040000   	CS.TDN= 177773   	D$$BUG= 177514   	E$THDW= 000003   	INT11C= 002000
BIT15 = 100000   	CS.TMO= 020000   	D$$CHK= 000000   	E$TSFT= 000004   	I$$RAR= 000000
BIT2  = 000004   	CS.TRE= 177772   	D$$ISK= 000000   	E$TTOP= 000005   	I$$RDN= 000000
BIT3  = 000010   	CTLCMP  000234R  	D$$L11= 000001   	E$$XPR= 000000   	KDP   = 000034
BIT4  = 000020   	CTLDSP  000070R  	D$$YNC= 000000   	FC.CCP= 000020   	KDSAR0= 172360
BIT5  = 000040   	C$$CKP= 000000   	D$$YNM= 000000   	FC.CTL= 000006   	KDSDR0= 172320
BIT6  = 000100   	C$$ORE= 000400   	ENABLE  001370R  	FC.KCP= 000016   	KDZ   = 000036
BIT7  = 000200   	C$$RSH= 177564   	ERRTB   000000R  	FC.KIL= 000004   	KILDSP  000062R
BIT8  = 000400   	C.BID   000003   	ERRTBL= 000006   	FC.RCE= 000002   	KILL    000206R
BIT9  = 001000   	C.BUF   000014   	ERR10C= 010000   	FC.RCP= 000014   	KISAR0= 172340
BPARER= 000020   	C.BUF1  000014   	ERR11C= 000001   	FC.TIM= 000010   	KISAR5= 172352
BUSA16= 040000   	C.BUF2  000024   	EXMHSG  002552R  	FC.XCP= 000012   	KISAR6= 172354
BUSA17= 100000   	C.CNT   000020   	EXMHSM  002560R  	FC.XME= 000000   	KISAR7= 172356
CB.CCB= 000002   	C.CNT1  000020   	EXMMYG  002572R  	FE.CAL= 000040   	KISDR0= 172300
CB.RDB= 000004   	C.CNT2  000030   	EXMMYH  002566R  	FE.DRV= 000010   	KISDR6= 172314
CE.ABO= 100362   	C.FLG   000022   	E$DDAT= 000003   	FE.EXP= 000200   	KISDR7= 172316
CE.DIS= 100366   	C.FLG1  000022   	E$DDEV= 000005   	FE.EXT= 000001   	KL    = 000040
CE.ERR= 100370   	C.FLG2  000032   	E$DLPC= 000013   	FE.EXV= 000004   	KPALIV= 000005
CE.MOP= 100372   	C.FNC   000010   	E$DMCD= 000012   	FE.LSI= 000400   	K$$CNT= 177546
CE.NTE= 100361   	C.LIN   000006   	E$DNOD= 000011   	FE.MUP= 000002   	K$$CSR= 177546
CE.RTE= 100376   	C.LNK   000000   	E$DOSI= 000010   	FE.MXT= 040000   	K$$LDC= 000000
CE.SRC= 100364   	C.MOD   000011   	E$DREC= 000007   	FE.NLG= 100000   	K$$TPS= 000074
CE.TMO= 100374   	C.NSP   000004   	E$DREG= 000001   	FE.PKT= 000100   	LDINVX  000004
CF.EOM= 000004   	C.RSV   000002   	E$DRSN= 000006   	FE.PLA= 000020   	LD$LP = 000000
CF.HDR= 000020   	C.STA   000007   	E$DTHR= 000015   	FORPRO= 000000   	LGDAT = 000042
CF.LB = 100000   	C.STS   000012   	E$DTIM= 000002   	FS.AST= 000000   	LOGGIT  003610R
CF.SOM= 000010   	DA    = 000010   	E$DTPC= 000014   	FS.CIB= 002000   	LS.ICB= 020000 G
CF.SYN= 000040   	DEP   = 010000   	E$DTXT= 000016   	FS.CRA= 001000   	LS.INI= 040000 G
CF.TRN= 000100   	DEPMYG  002604R  	E$DUPT= 000004   	FS.DIS= 013000   	LS.RUN= 100000 G
CHNPNT= 000001   	DEPMYH  002600R  	E$RABO= 000017   	FS.DVC= 001000   	L$$ASG= 000000
CMBYCT  003020R  	DEPSTS  002526R  	E$RCRC= 000023   	FS.ENB= 012000   	L$$DRV= 000000
CMODE = 140000   	DEXDON= 000004   	E$RDSC= 000005   	FS.GET= 006000   	L$$P11= 000001
CNTRL   000222R  	DEXWD1= 000006   	E$RFRM= 000024   	FS.INI= 000000   	L$$11R= 000000
CNVADR  002742R  	DEXWD2= 000004   	E$RHFE= 000016   	FS.KIL= 000000   	L.CST   000022 G
CPKPLV= 000005   	DEXWD3= 000002   	E$RLIN= 000003   	FS.LTM= 001000   	L.DMH   000050 G
CPQCNT  000001   	DIAG1 = 000030   	E$RMOP= 000014   	FS.MNT= 004000   	L.EHG   000042 G
CSIZE   000000   	DIAG2 = 000032   	E$RMTL= 000013   	FS.MSN= 014000   	L.EHM   000044 G
CSTAT = 000034   	DIAG3 = 000036   	E$RNAK= 000032   	FS.RNG= 011000   	L.EMG   000046 G
CS.ABO= 000100   	DISABL  001370R  	E$RNXM= 000002   	FS.RTN= 001000   	L.HKA   000052 G
CS.BUF= 000200   	DL    = 000004   	E$ROVR= 000012   	FS.SET= 005000   	L.HPN   000041 G
CS.DCK= 177771   	DLA   = 000020   	E$RPEC= 000022   	FS.STM= 000000   	L.ICB   000020 G
CS.DCR= 000400   	DLV   = 000004   	E$RPEM= 000021   	FS.STP= 002000   	L.IVC   000002 G
CS.DEV= 000002   	DLYCNT= 000000   	E$RPET= 000020   	FS.STR= 001000   	L.LOG   000032 G
CS.DIS= 000040   	DLYMSK= 037777   	E$RPRC= 000025   	FS.TRM= 003000   	L.MKA   000054 G
CS.ENB= 000020   	DMC   = 000014   	E$RPWF= 000007   	FS.XKL= 002000   	L.MPN   000040 G
CS.EOF= 000001   	DON10C= 040000   	E$RPWR= 000010   	FS.XOF= 010000   	L.PCQ   000034 G
DTE -- DTE20 DDM/DLC DRIVER FOR	MACRO M1110  13-OCT-79 08:37  PAGE 35-2
SYMBOL TABLE

L.PSW   000030 G 	M$$OVR= 000000   	PTYP    000032R  	TENAD1= 000010   	UISDR4= 177610
L.RBA   000072 G 	NAME    000000   	PTYPSZ  000002   	TENAD2= 000012   	UISDR5= 177612
L.RBZ   000100 G 	NPRSIZ  000002   	P$$CHK= 000000   	TMODE   000004   	UISDR6= 177614
L.RCB   000070 G 	NREG  = 000020   	P$$DDC= 000001   	TMOUT   001376R  	UISDR7= 177616
L.RCT   000076 G 	N$$LDV= 000001   	P$$P45= 000000   	TOPRCN  000000   	UPDADR  003072R
L.RCV   000140 G 	N$$MOV= 000010   	P$$WRD= 000000   	TO10AD= 000020   	V$$CTR= 001000
L.RCZ   000102 G 	N$$SYS= 000001   	QCOUNT  000000   	TO10BC= 000014   	WTEXDP  002662R
L.RES   000145 G 	N$$USR= 000001   	QSIZE = 000003   	TO10BM= 000001   	XDTDTN  000004
L.RFQ   000064 G 	PASS2   003700R  	QUERBF  003200R  	TO10CM= 007777   	XMCMP   001500R
L.RLA   000074 G 	PATCH   003406RG 	Q$$OPT= 000010   	TO10DB= 000400   	XMENA   000150R
L.RPZ   000104 G 	PDID  = 000024R  	RCENA   000172R  	TO10DN= 100000   	XMRCKL  003122R
L.RQZ   000102 G 	PDST    000016R  	RCV     000002   	TO10DT= 000024   	XMTKIL  003254R
L.RST   000056 G 	PDT1    000022R  	RCVKIL  003126R  	TO10ER= 020000   	XVR     000004
L.RTM   000106 G 	PDT2    000024R  	RELADR  000000   	TO11AD= 000022   	X$$BUG= 000000
L.SLN   000026 G 	PIDENT= 000000   	RELOAD= 000004   	TO11BC= 000016   	X$$DBT= 000000
L.STS   000024 G 	PIRQ  = 177772   	RETRBF  003220R  	TO11BM= 020000   	$ASCMP= ****** GX
L.TIM   000000 G 	PLIN  = 000022R  	RM    = 000010   	TO11CM= 007777   	$CCBGT= ****** GX
L.TLZ   000136 G 	PLNG    000026R  	R$$DER= 000000   	TO11DB= 004000   	$CCBRT= ****** GX
L.TMO   000144 G 	PMODE = 030000   	R$$K11= 000001   	TO11DN= 000200   	$CMLOG= ****** GX
L.UNT   000001 G 	PNAM    000030R  	R$$SND= 000000   	TO11DT= 000026   	$CMQIN= ****** GX
L.XBA   000124 G 	PRCNUM  000003   	R$$11M= 000000   	TO11ER= 000002   	$CMQRM= ****** GX
L.XBZ   000132 G 	PROPNT= 000001   	SISDR0= 172200   	TO11IB= 100000   	$CNV18= ****** GX
L.XCB   000122 G 	PROVER  000003   	SNPDAT  003550RG 	TPS   = 177564   	$CTCMP= ****** GX
L.XCT   000130 G 	PRSN    000020R  	SNPSHT  003506RG 	T$$KMG= 000000   	$DDXMP= ****** GX
L.XLA   000126 G 	PRTDEP  002636R  	SPACE = 160000   	T$$MIN= 000000   	$DTEIS  000122RG
L.XMQ   000116 G 	PRTEXM  002606R  	SR0   = 177572   	T10DON  001562R  	$DTELZ= 000146 G
L.XMT   000142 G 	PRTOFF= 004000   	SR3   = 172516   	T11DON  001674R  	$DTETB  000040RG
L.XQZ   000130 G 	PR0   = 000000   	START   000334R  	UBMPR = 170200   	$INTX7= ****** GX
L.XST   000110 G 	PR1   = 000040   	STATUS= 000002   	UDSAR0= 177660   	$KLCMP= ****** GX
L.XTM   000134 G 	PR4   = 000200   	STOP    001152R  	UDSDR0= 177620   	$RCCMP= ****** GX
MPAR  = 172100   	PR5   = 000240   	STRTRQ  002250R  	UISAR0= 177640   	$RDBGT= ****** GX
MPCSR = 177746   	PR6   = 000300   	STRTXQ  002126R  	UISAR4= 177650   	$RDBQP= ****** GX
MPE11 = 001000   	PR7   = 000340   	SWR   = 177570   	UISAR5= 177652   	$RDBRT= ****** GX
M$$CRB= 000124   	PS    = 177776   	S$$WRG= 000000   	UISAR6= 177654   	$RDBSZ= ****** GX
M$$CRX= 000000   	PSIZE   000002   	S$$YSZ= 007600   	UISAR7= 177656   	$RDBWT= ****** GX
M$$FCS= 000000   	PSTA    000036R  	TENADM= 000177   	UISDR0= 177600   	$XMCMP= ****** GX
M$$MGE= 000000   	PTAB    000034R

. ABS.	000146	   000
      	003700	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  9913 WORDS  ( 39 PAGES)
DYNAMIC MEMORY:  11116 WORDS  ( 42 PAGES)
ELAPSED TIME:  00:01:38
DTE,[131,34]DTE/CR/-SP=[130,10]NETLIB/ML,RSXTMP/PA:1,[131,10]DTE
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ASYERR	  003304 R	 22-880     22-895     23-926     23-943     24-989     26-1109    30-1285   #33-1481   
BIT0  	= 000001	#7-105      8-196      8-197      8-199      17-562     17-619     17-625     17-686     18-748    
                         20-811     24-980     25-1014    26-1075    33-1496    33-1498   
BIT1  	= 000002	#7-106      8-195      17-562     17-626     17-628     17-633     17-644     17-647     17-686    
                         18-732     24-984     24-986    
BIT10 	= 002000	#7-115      8-185     
BIT11 	= 004000	#7-116      8-153      8-184     
BIT12 	= 010000	#7-117      8-152      8-183     
BIT13 	= 020000	#7-118      8-151      8-160      8-182     
BIT14 	= 040000	#7-119      8-145      8-151      8-181     
BIT15 	= 100000	#7-120      8-144      8-151      8-159      8-180     
BIT2  	= 000004	#7-107      8-194      17-560     17-686     24-984    
BIT3  	= 000010	#7-108      8-192      8-193      17-556     17-557    
BIT4  	= 000020	#7-109      8-191     
BIT5  	= 000040	#7-110      8-190     
BIT6  	= 000100	#7-111      8-178      8-189     
BIT7  	= 000200	#7-112      8-188     
BIT8  	= 000400	#7-113      8-187     
BIT9  	= 001000	#7-114      8-186     
BPARER	= 000020	#8-191      30-1280   
BUSA16	= 040000	#8-145      31-1378   
BUSA17	= 100000	#8-144     
CHNPNT	= 000001	#9-226     
CMBYCT	  003020 R	 25-1033    26-1129   #31-1337   
CNTRL 	  000222 R	 11-296    #16-427    
CNVADR	  002742 R	 25-1025    26-1119   #31-1302   
CPKPLV	= 000005	#9-260     
CPQCNT	  000001	#9-246     *25-1044   
CSIZE 	  000000	#9-254     
CSTAT 	= 000034	#8-179     *17-631    *18-718     22-883     22-891     23-929     23-939    *25-1042   *25-1043   
                        *26-1152   *26-1153    29-1240    29-1241    29-1242   *29-1248   *29-1249   *29-1250   *30-1269   
                        *30-1270   *31-1348   *31-1350    33-1529    34-1574   
CS.ABO	= 000100	 18-740     32-1458   
CS.DCK	= 177771	#7-133      10-277     22-894     23-942    
CS.HLT	= 177776	#7-128      10-273     24-979    
CS.PCK	= 177770	#7-134      10-278     26-1108   
CS.SRO	= 177774	#7-130      10-274     24-987    
CS.SUC	= 000001	#7-125      15-410     17-499     17-656     18-761     19-778     22-902     23-950    
CS.TDN	= 177773	#7-131      10-275     30-1284   
CS.TRE	= 177772	#7-132      10-276     22-879     23-925    
CTLCMP	  000234 R	 16-431    #16-456     20-819     21-861    
CTLDSP	  000070 R	#11-314     16-469    
C.BUF 	  000014	 31-1310    31-1311   
C.CNT 	  000020	 25-1028   *26-1123   
C.LIN 	  000006	*17-513    *32-1429   
C.MOD 	  000011	 16-466    
DEP   	= 010000	#8-152      29-1251   
DEPMYG	  002604 R	 20-817     28-1212   #28-1216   
DEPMYH	  002600 R	 25-1041    27-1165   #28-1210   
DEPSTS	  002526 R	 17-636     17-645     18-749     25-1049   #27-1161    33-1499   
DEXDON	= 000004	#8-194      30-1273   
DEXWD1	= 000006	#8-149      29-1242   *29-1250   
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DEXWD2	= 000004	#8-148      29-1241   *29-1249   
DEXWD3	= 000002	#8-147      29-1240   *29-1248   
DIAG1 	= 000030	#8-176     
DIAG2 	= 000032	#8-177     *17-631    *18-718    
DIAG3 	= 000036	#8-198     *25-1043    33-1531    33-1546    34-1561   
DISABL	  001370 R	 11-326    #19-777    
DLYCNT	= 000000	#8-143     *31-1348   *31-1350    33-1529    33-1531    33-1546    34-1561   
DLYMSK	= 037777	#8-146     
DON10C	= 040000	#8-181      22-886    
DON11C	= 000100	#8-189      23-932    
DORBEL	  002016 R	 20-802     21-857    #24-969    
DRESET	= 000100	#8-178      17-631     18-718    
DTE   	= 000024	 10-284    
D$$BUG	= 177514	 31-1349    33-1482    33-1520   
D$$CHK	= 000000	#5-66       22-882     23-928    
ENABLE	  001370 R	 11-325    #19-776    
ERRTB 	  000000 R	#10-272     10-279     10-284    
ERRTBL	= 000006	 10-272    #10-279    
ERR10C	= 010000	#8-183      22-886    
ERR11C	= 000001	#8-197      23-932    
EXMHSG	  002552 R	 17-590    #28-1186   
EXMHSM	  002560 R	 17-601     17-617     24-976     26-1098   #28-1192   
EXMMYG	  002572 R	 17-538     28-1200   #28-1204   
EXMMYH	  002566 R	 17-552     17-585    #28-1198   
E$DREG	= 000001	 34-1572   
E$RPET	= 000020	 10-275    
E$RPRC	= 000025	 10-278    
E$RSIN	= 000004	 10-277    
E$RSRC	= 000015	 10-274    
E$RTRN	= 000026	 10-276    
E$RUCL	= 000001	 10-273    
E$THDW	= 000003	 10-284    
FORPRO	= 000000	#9-233     
GETRBF	  003126 R	 17-655     32-1397   #32-1401   
GET1BF	  003136 R	 26-1124    32-1403    32-1404   #32-1408   
INTROF	= 000010	#8-193      18-751    
INTRON	= 000040	#8-190      17-517     17-632    
INTSON	= 000001	#8-196     
INT11C	= 002000	#8-185      24-970    
KILDSP	  000062 R	#11-306     15-409    
KILL  	  000206 R	 11-295    #15-408    
KPALIV	= 000005	#9-228      20-816    
LDINVX	  000004	#9-249      17-619    *17-625     17-626     17-628    *17-633    *17-644     17-647     18-731    
                        *18-748     20-811     24-980     24-984    *24-986     25-1014    26-1075    33-1496   *33-1498   
LGDAT 	= 000042	#10-283     10-284    
LOGGIT	  003610 R	 33-1487   #34-1563   
LS.ICB	= 020000  G	#10-269     17-509     17-515     18-754     18-759    
LS.INI	= 040000  G	#10-269     17-502     17-624     17-649     18-752     20-809     24-971     24-982     33-1503   
LS.RUN	= 100000  G	#10-269     17-650     18-752     20-809     24-971     33-1503   
L.CST 	  000022  G	#10-269     13-374     14-393     16-467     20-795     20-799     21-843    
L.DMH 	  000050  G	#10-269    *17-545    *17-571     28-1199    28-1211   
L.EHG 	  000042  G	#10-269    *17-588     28-1187   
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

L.EHM 	  000044  G	#10-269    *17-594    *17-608     28-1193   
L.EMG 	  000046  G	#10-269    *17-535     28-1205   
L.HKA 	  000052  G	#10-269    
L.HPN 	  000041  G	#10-269    *17-582    
L.ICB 	  000020  G	#10-269    *17-514     18-756    *21-842    
L.IVC 	  000002  G	#10-269    
L.LOG 	  000032  G	#10-269     34-1563   
L.MKA 	  000054  G	#10-269     20-813    
L.MPN 	  000040  G	#10-269    *17-529     17-603    
L.PCQ 	  000034  G	#10-269     16-428     16-464     16-472    
L.PSW 	  000030  G	#10-269     16-457    *16-462    *33-1491   *33-1494   
L.RBA 	  000072  G	#10-269     25-1031    26-1116    31-1303   *31-1378   
L.RBZ 	  000100  G	#10-269     18-743     26-1117   *26-1122    26-1123    31-1382   
L.RCB 	  000070  G	#10-269     18-720     31-1382   
L.RCT 	  000076  G	#10-269     23-933     26-1077   *31-1375   *31-1378   
L.RCV 	  000140  G	#10-269    *23-952    *23-954    
L.RCZ 	  000102  G	#10-269     18-731    *23-936     26-1137    26-1140   
L.RES 	  000145  G	#10-269    *32-1411   *32-1413   
L.RFQ 	  000064  G	#10-269     31-1303    32-1430    32-1439   
L.RLA 	  000074  G	#10-269     23-939    *31-1375   
L.RPZ 	  000104  G	#10-269    *23-935     26-1122   
L.RQZ 	  000102  G	#10-269     26-1082    26-1116   
L.RST 	  000056  G	#10-269     17-521     17-626     17-647     20-811     24-975     24-980     24-984     25-1014   
                         26-1075    26-1090    26-1094   
L.RTM 	  000106  G	#10-269     26-1143   
L.SLN 	  000026  G	#10-269     16-459     17-513     32-1415    32-1429    32-1437    33-1490    34-1567   
L.STS 	  000024  G	#10-269     17-500     17-502     17-509    *17-515    *17-624    *17-649    *17-650     18-713    
                        *18-752     18-754    *18-759     20-809     24-971     24-982     25-1012    26-1073    33-1488   
                        *33-1503   
L.TIM 	  000000  G	#10-269    
L.TLZ 	  000136  G	#10-269    
L.TMO 	  000144  G	#10-269    
L.UNT 	  000001  G	#10-269     17-563    
L.XBA 	  000124  G	#10-269     25-1021    26-1127    31-1340   
L.XBZ 	  000132  G	#10-269     18-745     25-1023   *25-1028   
L.XCB 	  000122  G	#10-269    
L.XCT 	  000130  G	#10-269     22-887     25-1016    31-1340   
L.XLA 	  000126  G	#10-269     22-891    
L.XMQ 	  000116  G	#10-269     13-371     32-1454   
L.XMT 	  000142  G	#10-269    *22-904    *22-906    
L.XQZ 	  000130  G	#10-269    
L.XST 	  000110  G	#10-269    *17-625     17-628    *17-633    *17-634    *17-635    *17-644     18-731    *18-748    
                        *24-986    *25-1044    26-1090   *26-1092    26-1094    27-1164    33-1496   *33-1498   
L.XTM 	  000134  G	#10-269    
MPE11 	= 001000	#8-186     
M$$MGE	= 000000	 10-269     17-651     25-1030    26-1126    31-1308    31-1338    31-1376   
NAME  	  000000	#9-219     
NPRSIZ	  000002	#9-220      17-672    
NREG  	= 000020	#34-1561    34-1572    34-1573   
PASS2 	  003700 R	 16-431     17-678     28-1200    28-1212    29-1252    32-1392    32-1397    32-1404   #35-1584   
PATCH 	  003406 RG	#33-1521   
PDID  	= 000024 R	#10-286    
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PDST  	  000016 R	#10-284    *34-1563    34-1568   
PDT1  	  000022 R	#10-284     10-285    
PDT2  	  000024 R	#10-284     10-286    
PIDENT	= 000000	#9-218     
PLIN  	= 000022 R	#10-285    *34-1567   
PLNG  	  000026 R	#10-284    
PNAM  	  000030 R	#10-284    
PRCNUM	  000003	#9-213      17-527    
PROPNT	= 000001	#9-242      17-584    
PROVER	  000003	#9-222     
PRSN  	  000020 R	#10-284    *34-1566   
PRTDEP	  002636 R	 28-1218   #29-1247   
PRTEXM	  002606 R	 17-524     28-1188    28-1194    28-1206   #29-1237   
PRTOFF	= 004000	#8-153     
PSIZE 	  000002	#9-255     
PSTA  	  000036 R	#10-284    
PTAB  	  000034 R	#10-284    
PTYP  	  000032 R	#10-284    
PTYPSZ	  000002	#9-235      17-554    
P$$CHK	= 000000	#5-67       26-1093   
QCOUNT	  000000	#9-245     *17-634     26-1090    26-1090   *26-1092    26-1094    26-1094   
QSIZE 	= 000003	#9-253      25-1040    26-1097   
QUERBF	  003200 R	 14-392     32-1420   #32-1428   
RCENA 	  000172 R	 11-294    #14-391    
RCV   	  000002	#9-247     *17-635    
RCVKIL	  003126 R	 11-308     32-1392   #32-1396   
RELADR	  000000	#9-212     
RELOAD	= 000004	#9-258     
RETRBF	  003220 R	 18-711     32-1402   #32-1436   
RM    	= 000010	#8-192     
SNPDAT	  003550 RG	 33-1530   #33-1545   
SNPSHT	  003506 RG	 33-1483    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524   
                         33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524   
                         33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524    33-1524   
                         33-1524    33-1524    33-1524    33-1524    33-1524    33-1524   #33-1525   
SPACE 	= 160000	#8-151     
START 	  000334 R	 11-316    #17-498    
STATUS	= 000002	#9-244      17-616     24-973     27-1162   
STOP  	  001152 R	 11-317    #18-709    
STRTRQ	  002250 R	 14-394     20-804     21-860    #26-1072   
STRTXQ	  002126 R	 13-375     20-803     21-859    #25-1011   
TENADM	= 000177	#8-154     
TENAD1	= 000010	#8-150     *30-1269   
TENAD2	= 000012	#8-155     *30-1270   
TMODE 	  000004	#9-256     
TMOUT 	  001376 R	 11-297    #20-792    
TOPRCN	  000000	#9-234     
TO10AD	= 000020	#8-162      22-891    *25-1042   
TO10BC	= 000014	#8-156      22-883    
TO10BM	= 000001	#8-199      25-1043   
TO10CM	= 007777	#8-157      22-883    
TO10DB	= 000400	#8-187      17-642     27-1166   
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TO10DN	= 100000	#8-180      21-847    
TO10DT	= 000024	#8-164     
TO10ER	= 020000	#8-182      21-847    
TO11AD	= 000022	#8-163      23-939    *26-1152   
TO11BC	= 000016	#8-158      23-929    *26-1153   
TO11BM	= 020000	#8-160      26-1148    26-1151   
TO11CM	= 007777	#8-161      23-929     26-1151   
TO11DB	= 004000	#8-184      20-800     21-855    
TO11DN	= 000200	#8-188      21-851    
TO11DT	= 000026	#8-165     
TO11ER	= 000002	#8-195      21-851    
TO11IB	= 100000	#8-159      26-1136    26-1151   
T10DON	  001562 R	 21-849    #22-877    
T11DON	  001674 R	 21-853    #23-923    
UPDADR	  003072 R	 22-889     23-937    #31-1373   
WTEXDP	  002662 R	 29-1239    29-1252   #30-1268   
XDTDTN	  000004	#9-238      17-559    
XMCMP 	  001500 R	 11-298    #21-841    
XMENA 	  000150 R	 11-293    #13-370    
XMRCKL	  003122 R	 11-307    #32-1390   
XMTKIL	  003254 R	 11-309     18-710     32-1391   #32-1452   
XVR   	  000004	#9-223     
X$$BUG	= 000000	#5-65      
$ASCMP	= ******  GX	 16-460     33-1492   
$CCBGT	= ******  GX	 17-511    
$CCBRT	= ******  GX	 18-758    
$CMLOG	= ******  GX	 34-1569   
$CMQIN	= ******  GX	 13-373     16-430     32-1432   
$CMQRM	= ******  GX	 16-474     31-1304    32-1442    32-1456   
$CNV18	= ******  GX	 31-1312   
$CTCMP	= ******  GX	 16-477    
$DDXMP	= ******  GX	 12-350    
$DTEIS	  000122 RG	#12-344    
$DTELZ	= 000146  G	#10-269    
$DTETB	  000040 RG	#11-292    
$INTX7	= ******  GX	 12-354    
$KLCMP	= ******  GX	 15-411    
$RCCMP	= ******  GX	 23-951    
$RDBGT	= ******  GX	 32-1409   
$RDBQP	= ******  GX	 32-1438   
$RDBRT	= ******  GX	 18-727     32-1444   
$RDBSZ	= ******  GX	 26-1103   
$RDBWT	= ******  GX	 32-1416   
$XMCMP	= ******  GX	 18-741     22-903     32-1459   
DTE        CREATED BY  MACRO  ON 13-OCT-79 AT 08:38	PAGE 6

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		#6-73       12-350     13-373     14-392     15-409     16-430     16-460     16-469     16-474     16-477    
                 17-511     17-524     17-538     17-544     17-552     17-570     17-585     17-590     17-592     17-601    
                 17-617     17-636     17-645     17-655     18-710     18-711     18-727     18-741     18-749     18-758    
                 20-802     20-803     20-804     20-817     21-849     21-853     21-857     21-859     21-860     22-880    
                 22-889     22-895     22-903     23-926     23-937     23-943     23-951     24-976     24-989     25-1025   
                 25-1033    25-1041    25-1049    26-1098    26-1109    26-1119    26-1124    26-1129    27-1165    29-1239   
                 30-1285    31-1304    31-1312    32-1391    32-1402    32-1403    32-1409    32-1420    32-1438    32-1442   
                 32-1444    32-1456    32-1459    33-1483    33-1487    33-1492    33-1499    34-1569    34-1579   
CALLR 		#6-83      #12-354    #13-375    #14-394    #15-411    #20-819    #21-861    #32-1416   #32-1432   
CALLRB		#6-89      #28-1188   #28-1194   #28-1206   #28-1218   
CALLRX		#6-95      #16-431    #17-678    #28-1200   #28-1212   #29-1252   #32-1392   #32-1397   #32-1404   
CCBDF$		#6-73       6-74      
CMLDF$		#6-73      #10-284    
DEVDF 		#6-73      #10-267    
DTEDF$		#6-73       10-269    
EVLDF$		#6-73       10-268    
HWDDF$		#6-73       6-75      
RETURN		#6-73      #16-479    #17-663    #17-690    #18-768    #19-779    #20-820    #22-908    #23-956    #24-991    
                #25-1051   #26-1155   #27-1167   #29-1243   #30-1289   #31-1324   #31-1363   #31-1384   #32-1422   #32-1448   
                #32-1463   #33-1506   #33-1541   #34-1581   
SOB   		#30-1275   #33-1534   
TMPDF$		#10-269    #10-269    
$INTXT		#6-73      #12-354    
.BIN  		#10-269    
.CNB  		#10-269    
.CNW  		#10-269    
.CORE 		#10-269    
.CSR  		#10-269    
.DVCHA		#10-269    
.INT  		#10-269     10-269    
.INT1 		#10-269    
.INT2 		#10-269    
.INT3 		#10-269    
.LFLHD		#10-269    
.LIBR 		#10-269    
.LINKS		#10-269    
.LSTHD		#10-269    #10-269    #10-269    #10-269    
.LTAB 		#10-269    
.MPLHD		#10-269    
.POOL 		#10-269    
.PRI  		#10-269    
.SCOM 		#10-269    
.SECSR		#10-269    
.SLNB 		#10-269    
.SLNW 		#10-269    
.STNB 		#10-269    
.STNW 		#10-269    
.UNB  		#10-269    
.UNW  		#10-269    
.VFY  		#10-269