Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/kdp.list
There are no other files named kdp.list in the archive.
KDP	MACRO M1110  27-DEC-79 09:26
TABLE OF CONTENTS

     4-   96	MACRO CALLS AND MACRO DEFINITIONS
     8-  298	KMC/DUP INTERRUPT-ENTRY DISPATCH TABLES
     9-  345	KMC/DUP PROCESS DISPATCH TABLES
    10-  400	KMC/DUP OFFSETS TO DUP-11 LINE TABLES
    12-  459	$CDIRI --  INPUT INTERRUPT DISPATCH SERVICE
    13-  508	$CDORI --  OUTPUT INTERRUPT DISPATCH SERVICE
    14-  563	CIXBA  --  TRANSMIT/RECEIVE BUFFER ADDRESS IN
    16-  646	CICTL  --  CONTROL-IN INTERRUPT HANDLER
    17-  690	CIBAS  --  DUP-11 CSR BASE ADDRESS IN
    18-  725	COTBA  --  TRANSMIT BUFFER ADDRESS OUT
    19-  770	CORBA  --  RECEIVE BUFFER ADDRESS OUT
    20-  819	COXCT  --  CONTROL-OUT INTERRUPT DISPATCH
    21-  878	CORCP  --  COMMON RECEIVE COMPLETE PROCESSING
    22-  931	CEABO  --  SDLC/ADCCP FRAME ABORT RECEIVED
    23-  998	CEKCM  --  KILL-I/O COMPLETE FROM KMC-11
    25- 1108	CDTRN  --  TRANSMIT ENABLE ENTRY
    26- 1163	CDRCV  --  RECEIVE ENABLE ENTRY
    27- 1198	CDKIO  --  KILL-I/O ENABLE ENTRY
    28- 1227	CDKIL  --  RECEIVE AND TRANSMIT KILL-I/O
    29- 1277	CDRKL  --  RECEIVE KILL-I/O
    30- 1323	CDXKL  --  TRANSMIT KILL-I/O
    31- 1360	CDTMO  --  TIME-OUT ENTRY
    32- 1416	CDCTL  --  CONTROL ENABLE ENTRY
    33- 1446	CDSTR  --  START A DUP-11 LINE
    34- 1486	CDSTP  --  STOP A DUP-11 LINE
    35- 1531	CDENB  --  ENABLE DUP-11 LINE PRIOR TO START
    36- 1581	CDDIS  --  DISABLE DUP-11 LINE AFTER STOP
    37- 1626	CDMSN  --  SENSE MODEM STATUS
    38- 1667	SETCHR --  SET LINE CONTROL WORD FROM CHARACTERISTICS
    39- 1721	POLCHK --  CHECK IF POLLING RATE SHOULD BE ADJUSTED             ;AP0009
    40- 1767	TRNASN --  ASSIGN BUFFER(S) TO BE TRANSMITTED
    41- 1824	RCVGET --  ALLOCATE AND ASSIGN A RECEIVE BUFFER
    42- 1867	RCVASN --  ASSIGN A RECEIVE DATA BUFFER
    43- 1925	INSIQB --  INSERT A CCB IN INTERRUPT QUEUE
    44- 1968	RQIRL  --  RELEASE INTERRUPT REQUEST + POP QUEUE
    46- 2038	BDSET  --  SETUP KMC-11 BUFFER DESCRIPTOR
    47- 2090	CLTA   --  COMPUTE KMC-11 LINE TABLE ADDRESS
    47- 2116	DLTA   --  COMPUTE DUP-11 LINE TABLE ADDRESS
    48- 2138	EVENT LOGGING                                                   ;BH0001
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 3


      1						.TITLE	KDP
      2						.IDENT	/V02.17/
      3					;%	.FILE	KDP.MAC
      4					;
      5					; COPYRIGHT (C) 1977
      6					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      7					;
      8					;
      9					; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE  FOR USE ONLY ON  A
     10					; SINGLE  COMPUTER  SYSTEM  AND  MAY  BE  COPIED  ONLY  WITH  THE
     11					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY
     12					; OTHER COPIES THEREOF,  MAY NOT BE PROVIDED  OR  OTHERWISE  MADE
     13					; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND
     14					; TO  ONE  WHO  AGREES  TO  THESE  LICENSE  TERMS.  TITLE TO  AND
     15					; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
     16					;
     17					; THE INFORMATION IN  THIS SOFTWARE IS  SUBJECT TO CHANGE WITHOUT
     18					; NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL
     19					; EQUIPMENT CORPORATION.
     20					;
     21					; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     22					; OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.
     23					;
     24					;
     25					; KMC-11/DUP-11 DEVICE DRIVER
     26					;
     27					; VERSION X02
     28					;
     29					; S. I. GOLDFARB	25-MAR-1977
     30					; R. H. ROSENBAUM	30-AUG-1977
     31					; L. J. TWAITS		10-SEP-1977
     32					; D. B. TUTTLE		10-OCT-1977
     33					;
     34					; 2.01	17-NOV-78 BUREN HOFFMAN	;BH0001
     35					;	EXTRACTED DEVICE LINE TABLE FROM BODY OF CODE AND
     36					;	PUT IT INTO DDML.MAC, FOR INCLUSION IN NETLIB.
     37					;	ALSO MODIFICATIONS TO ACCOMODATE EVENT LOGGING.
     38					; 2.02	6-DEC-78  L. WEBBER	;LW0002
     39					;	FIX TRANSPOSED OFFSET IN 'CITBA'
     40					; 2.03	22-JAN-79 BUREN HOFFMAN	;BH0003
     41					;	ADDED EVENT LOGGING FOR XMITTER TIMEOUT.
     42					; 2.04	12-JAN-79 BUREN HOFFMAN	;BH0004
     43					;	MODIFIED TO USE NEW $CMLOG (V1.01).
     44					; 2.05	30-JAN-79 BUREN HOFFMAN	;BH0005
     45					;	ADDED CODE TO ASSURE THE SIGN BIT IS SET IN REASON CODE
     46					;	ON CALLS TO $CMLOG.
     47					; 2.06	1-FEB-79  BUREN HOFFMAN	;BH0006
     48					;	CHANGED TO GLOBAL INVOCATION OF LINE TABLE DEFINITION MACROS.
     49					; 2.07	2-FEB-79  BUREN HOFFMAN	;BH0007
     50					;	ADDED ERROR RETURN DETECTION IN COROUTINE CALL TO $CMLOG.
     51					;	ALSO, STARTED UTILIZING EVLDF$ MACRO FOR LOGGING SYMBOLS.
     52					;	OMITTED SIGN BIT REQMT OF 1.05.
     53					; 2.08	10-FEB-79 ALAN D. PECKHAM
     54					;	GLOBALIZE KDP LINE TABLE BIT DEFINITIONS.
     55					; 2.09	21-FEB-79 ALAN D. PECKHAM
     56					;	APPLY SOME CHECKS FOR KDP PROBLEMS.
     57					; 2.10	27-FEB-79 ALAN D. PECKHAM
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 3-1


     58					;	MORE DEBUGGING CODE.
     59					; 2.11	14-MAR-79 ALAN D. PECKHAM
     60					;	MORE DEBUGGING CODE.
     61					; 2.12	21-MAR-79 ALAN D. PECKHAM
     62					;	BUG FOUND ! DEBUGGING CODE REMOVED.
     63					;	KILL COMPLETE WAS RE-ASSIGNING A BUFFER TWICE.
     64					; 2.13	22-MAR-79 ALAN D. PECKHAM
     65					;	DO NOT DO A RECEIVE KILL WHEN NO BUFFERS ARE ASSIGNED.
     66					; 2.14	21-MAY-79 ALAN D. PECKHAM
     67					;	SET UP COMMON KILL COMPLETE TO AVOID CONTROL STOP BUG.
     68					; 2.15	11-JUN-79 ALAN D. PECKHAM
     69					;	DETECT RETURN OF UNASSIGNED TRANSMIT DESCRIPTOR.
     70					;	TRANSMITTER UNDERRUN DOES NOT RETURN A BUFFER DESCRIPTOR.
     71					;	CORRECT TIMEOUT ERROR CODE TO TRANSMIT TIMEOUT ERROR.
     72					; 2.16	29-AUG-79 ALAN D. PECKHAM
     73					;	DO NOT LOG THE FIRST DSR CHANGE AFTER A START.
     74					; 2.17	27-DEC-79 SCOTT G. ROBINSON
     75					;	DO NOT LOG TIMEOUTS OR DSR CHANGES BUT ALLOW A PATCH TO
     76					;	REENABLE LOGGING OF EACH SEPERATELY.
     77
     78					;---------------------------------------------------------------;
     79					;								;
     80					; NOTES:							;
     81					;	THERE MAY BE AS MANY AS 16. DUP-11 DEVICES CONTROLLED	;
     82					;	BY A SINGLE KMC-11, WHERE EACH DUP-11 INTERFACES TO A	;
     83					;	SINGLE FULL- OR HALF-DUPLEX COMMUNICATIONS LINE. EACH	;
     84					;	LINE MAY OPERATE IN EITHER DDCMP (DEC) MODE OR ADCCP/	;
     85					;	SDLC (BIT-STUFF) MODE. LINE RECEIVE OPERATIONS ARE AT	;
     86					;	MOST DOUBLE-BUFFERED, WHILE TRANSMIT OPERATIONS WILL	;
     87					;	ATTEMPT TO USE AS MANY BUFFERS AS POSSIBLE.		;
     88					;								;
     89					;	ALL TRANSMIT CCB'S MUST HAVE NO MORE THAN ONE BUFFER	;
     90					;	DESCRIPTOR, AND THE 'CF.LB' FLAG MUST BE SET IN THE	;
     91					;	FLAGS WORD. ALL RECEIVE COMPLETE CCB'S WILL HAVE THE	;
     92					;	'CF.SOM', 'CF.EOM', AND 'CF.LB' FLAGS SET.		;
     93					;								;
     94					;---------------------------------------------------------------;
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 4
MACRO CALLS AND MACRO DEFINITIONS

     96						.SBTTL	MACRO CALLS AND MACRO DEFINITIONS
     97
     98						.MCALL	INHIB$,ENABL$,$INTSX
     99						.MCALL	HWDDF$,CCBDF$,MDCDF$,KDPDF$,DEVDF,CMLDF$,EVLDF$                 ;BH0007
    100	000000					HWDDF$		; DEFINE THE I/O PAGE SYMBOLS                           ;**-1
    101	000000					CCBDF$		;   "    COMMUNICATIONS CONTROL BLOCK
    102	000000					MDCDF$		; MODEM CONTROL DEFINITIONS                             ;**-1
    103					;
    104					;	'PUSH' + 'POP' MACROS FOR STACK MANIPULATION
    105					;
    106						.MACRO	PUSH  VAL
    107						.IRP	S,<VAL>
    108						MOV	S,-(SP)	; PUSH ARGUMENT ONTO STACK
    109						.ENDR
    110						.ENDM	PUSH
    111
    112						.MACRO	POP   VAL
    113						.IRP	D,<VAL>
    114						MOV	(SP)+,D	; POP ARGUMENT FROM STACK
    115						.ENDR
    116						.ENDM	POP
    117
    118					;
    119					;	'GOTO' MACRO FOR CONTROL LINKAGE
    120					;
    121						.MACRO	GOTO  VAL
    122						JMP	VAL		; TRANSFER CONTROL
    123						.ENDM	GOTO
    124
    125
    126					;
    127					;	'$ENQ' MACRO FOR QUEUEING WITH TWO-WORD LISTHEAD
    128					;
    129						.MACRO	$ENQ	BASE,OFFSET,NODE
    130					.IF NB NODE
    131						CLR	(NODE)
    132					   .IF NB OFFSET
    133						MOV	NODE,@'OFFSET'+2(BASE)
    134						MOV	NODE,OFFSET'+2(BASE)
    135					   .IFF
    136						MOV	NODE,@2(BASE)
    137						MOV	NODE,2(BASE)
    138					   .ENDC
    139					.IFF
    140						CLR	(R4)
    141					   .IF NB OFFSET
    142						MOV	R4,@'OFFSET'+2(BASE)
    143						MOV	R4,OFFSET'+2(BASE)
    144					   .IFF
    145						MOV	R4,@2(BASE)
    146						MOV	R4,2(BASE)
    147					   .ENDC
    148					.ENDC
    149						.ENDM	$ENQ
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 5
MACRO CALLS AND MACRO DEFINITIONS

    151					;
    152					;	'$DEQ' MACRO FOR REMOVING ELEMENT FROM A QUEUE
    153					;
    154						.MACRO	$DEQ	BASE,OFFSET,NODE,TAG,?TAG2,?TAG3
    155					.IF NB NODE
    156					   .IF NB OFFSET
    157						MOV	OFFSET'(BASE),NODE
    158					   .IFF
    159						MOV	(BASE),NODE
    160					   .IFTF
    161					      .IF NB TAG
    162						BEQ	TAG
    163					      .IFF
    164						BEQ	TAG3
    165					      .ENDC
    166					   .IFT
    167						MOV	(NODE),OFFSET'(BASE)
    168						BNE	TAG2
    169						MOV	BASE,OFFSET'+2(BASE)
    170						ADD	#'OFFSET,OFFSET'+2(BASE)
    171					   .IFF
    172						MOV	(NODE),(BASE)
    173						BNE	TAG2
    174						MOV	BASE,2(BASE)
    175					   .ENDC
    176					.IFF
    177					   .IF NB OFFSET
    178						MOV	OFFSET'(BASE),R4
    179					   .IFF
    180						MOV	(BASE),R4
    181					   .IFTF
    182					      .IF NB TAG
    183						BEQ	TAG
    184					      .IFF
    185						BEQ	TAG3
    186					      .ENDC
    187					   .IFT
    188						MOV	(R4),OFFSET'(BASE)
    189						BNE	TAG2
    190						MOV	BASE,OFFSET'+2(BASE)
    191						ADD	#'OFFSET,OFFSET'+2(BASE)
    192					   .IFF
    193						MOV	(R4),(BASE)
    194						BNE	TAG2
    195						MOV	BASE,2(BASE)
    196					   .ENDC
    197					.IFTF
    198					TAG2:
    199					.IFT
    200						CLR	(NODE)
    201					.IFF
    202						CLR	(R4)
    203					.ENDC
    204					TAG3:
    205						.ENDM	$DEQ
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 6
MACRO CALLS AND MACRO DEFINITIONS

    207					;                                                                               ;BH0001
    208					; DEFINE THE DEVICE CODE                                                        ;BH0001
    209					;                                                                               ;BH0001
    210	000000					DEVDF                                                                   ;BH0001
    211					                                                                                ;BH0007
    212	000000					EVLDF$                                                                  ;BH0007
    213					                                                                                ;BH0007
    214	000000					KDPDF$	<:>,<=>,LST                                                     ;BH0006
					;---------------------------------------------------------------;
					;	K M C - 1 1    D E V I C E    : I N E    T A = : E	;
					;---------------------------------------------------------------;
	000000				.ASECT
		000000 				.=0
	000000				CMIRI:: .INT1	$CDIRI	; INPUT  INTERRUPT CALL SEQUENCE
						.EVEN
						.IF DF	M$$MGE
	000000					.BLKW	7
						.IFF
						.BLKW	2
						.ENDC
	000016				CMIPR:: .PRI		; INPUT  DEVICE PRIORITY FOR $INTSX
						.EVEN
	000016					.BLKW	1
	000020				CMORI:: .INT2	$CDORI	; OUTPUT INTERRUPT CALL SEQUENCE
						.EVEN
						.IF DF	M$$MGE
	000020					.BLKW	7
						.IFF
						.BLKW	2
						.ENDC
	000036				CMOPR:: .PRI		; OUTPUT DEVICE PRIORITY FOR $INTSX
						.EVEN
	000036					.BLKW	1
	000040				CMCSR:: .CSR		; KMC-11 CSR ADDRESS [SEL 0]
						.EVEN
	000040					.BLKW	1
	000042				CMSWT:: .BLKW	1	; KMC-11 CONTROL SWITCHES
		100000 				CM.INI	==  100000	; KMC-11 HAS BEEN INITIALIZED
		000200 				CM.RQI	==  000200	; AN INTERRUPT HAS BEEN REQUESTED
	000044				CMIQH:: .LSTHD		; KMC-11 INPUT INTERRUPT REQUEST QUEUE
						.EVEN
	000044					.BLKW	2
	000050				CMKQH:: .LSTHD		; KMC-11 KILL I/O IN PROGRESS QUEUE
						.EVEN
	000050					.BLKW	2
	000054				CMLEN::			; KMC-11 DEVICE TABLE LENGTH
					;---------------------------------------------------------------;
					;	D U P - 1 1    D E V I C E    : I N E    T A = : E	;
					;---------------------------------------------------------------;
		000000 				.=0
	000000				CTLTW:: .BLKW	1	; LONG TIMER WORD
	000002				CTCSR:: .SECSR		; DUP-11 CSR ADDRESS [SEL 0]
						.EVEN
	000002					.BLKW	1
	000004				CTFLG:: .BLKW	1	; DUP-11 CONTROL FLAGS
		000001 				CT.XKL	==  000001	; TRANSMIT KILL-I/O IN PROGRESS
		000002 				CT.RKL	==  000002	; RECEIVE KILL-I/O IN PROGRESS
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 6-1
MACRO CALLS AND MACRO DEFINITIONS

		000004 				CS.ROV	==  000004	; RECEIVER OVERRUN HAS OCCURRED
		000010 				CT.RKC	==  000010	; RECEIVER WILL BE RE-SYNCHRONIZED
		000020 				CT.BAS	==  000020	; CSR BASE-IN HAS BEEN PERFORMED
		000040 				CT.STR	==  000040	; BUP-11 LINE HAS BEEN STARTED
		000100 				CS.ABO	==  000100	; RECEIVED ABORT SEQUENCE
		000200 				CS.BUF	==  000200	; PREVIOUS BUFFER ALLOCATION FAILED
		000400 				CS.DCR	==  000400	; RECEIVER DETECTED CRC EROR
		001000 				CT.DRU	==  001000	; DSR CHANGE UNEXPECTED
		002000 				CS.HFE	==  002000	; DDCMP - HEADER FORMAT ERROR
		004000 				CS.MTL	==  004000	; RECEIVED MESSAGE TOO LONG
		010000 				CS.RSN	==  010000	; RECEIVER RE-SYNCHED BEFORE THIS MESSAGE
		040000 				CT.LDA	==  040000	; 1=CTTD2 LAST DESCRIPTOR ASSIGNED
		100000 				CS.ERR	==  100000	; INCLUSIVE 'OR' OF ERROR CONDITIONS
		040073 				CT.MSK	==  040073	; MASK TO TURN OFF DRIVER ONLY FLAGS
	000006				CTDUP:: .UNB		; DUP-11 NUMBER (0-17 OCTAL)
	000006					.BLKB	1
	000007				CTSLN:: .SLNB		; DUP-11 SYSTEM LINE NUMBER
	000007					.BLKB	1
	000010				CTCHR:: .DVCHA		; DUP-11 LINE CHARACTERISTICS (TWO WORDS)
						.EVEN
	000010					.BLKW	2
		000001 				DC.HDX	== 000001	; HALF-DUPLEX LINE OPERATION (WORD #0)
		000007 				DC.PRT	== 000007	; PROTOCOL SELECTION MASK (WORD #1)
		000001 				DC.DEC	== 000001	; PROTOCOL SELECTION = DDCMP
		000002 				DC.BSC	== 000002	; PROTOCOL SELECTION = BSC
		000003 				DC.SDL	== 000003	; PROTOCOL SELECTION = SDLC / ADDCP / HDLC
		000004 				DC.X25	== 000004	; PROTOCOL SELECTION = X.25
		000010 				DC.MPT	== 000010	; MULTI-POINT CONFIGURATION
		000020 				DC.SEC	== 000020	; MULTIPOINT SECONDARY STATION (WORD #1)
		000040 				DC.ADR	== 000040	; SECONDARY STATION IN 16 BITS (WORD #1)
	000014				CTLOG:: .BLKW	1	; EVENT LOGGING DESTINATION
	000016				CTCTL:: .BLKW	1	; STATION ADDRESS + CONTROL-IN FLAGS
	000020				CTITQ:: .LSTHD		; INACTIVE TRANSMIT CCB QUEUE
						.EVEN
	000020					.BLKW	2
	000024				CTTA1:: .BLKW	1	; TRANSMIT CCB ACTIVE ON DESCRIPTOR #1
	000026				CTTD1:: .BLKW	3	; TRANSMIT BUFFER DESCRIPTOR #1
	000034				CTTA2:: .BLKW	1	; TRANSMIT CCB ACTIVE ON DESCRIPTOR #2
	000036				CTTD2:: .BLKW	3	; TRANSMIT BUFFER DESCRIPTOR #2
	000044				CTRA1:: .BLKW	1	; RECEIVE CCB ACTIVE ON DESCRIPTOR #1
	000046				CTRD1:: .BLKW	3	; RECEIVE BUFFER DESCRIPTOR #1
	000054				CTRA2:: .BLKW	1	; RECEIVE CCB ACTIVE ON DESCRIPTOR #2
	000056				CTRD2:: .BLKW	3	; RECEIVE BUFFER DESCRIPTOR #2
	000064				CTITM:: .BLKB	1	; TEMP STORAGE TIMER MUX.
						.EVEN
	000066				CTLEN::			; DUP-11 DEVICE LINE TABLE LENGTH
					;
					;	KMC-11 BUFFER DESCRIPTOR BITS
					;
		000400 			BD.SOM	== 000400	; START OF MESSAGE
		001000 			BD.EOM	== 001000	; END OF MESSAGE
		006000 			BD.MEX	== 006000	; MEMORY EXTENSION BITS
		010000 			BD.SYN	== 010000	; PRECEED BUFFER BY SYNCHS
		100000 			BD.LBD	== 100000	; LAST BUFFER DESCRIPTOR
		002000 			BD.MXA	==   2000	; INCREMENT VALUE FOR 'BD.MEX' SUB-FIELD
	000000				.PSECT
    215					                                                                                ;**-48
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 6-2
MACRO CALLS AND MACRO DEFINITIONS

    216	000000					.PSECT	$KDP11
    217					;                                                                               ;BH0001
    218					; DEFINE THE EVENT CODE MAPPING TABLE                                           ;BH0001
    219					;                                                                               ;BH0001
    220		040000 				CS.TTM=40000	; XMITTER TIMEOUT - THIS IS A LOCAL DEFINITION          ;BH0003
    221								;   AND MUST BE UNIQUE WITHIN FOLLOWING SET.            ;BH0003
    222	000000	000007 			ERRTB:	.WORD	ERRTBL		;**LENGTH OF TABLE                              ;BH0001
    223	000002	000100 	000017 			.WORD	CS.ABO,E$RABO	; SDLC OPERATION ABORTED                        ;BH0007
    224	000006	002000 	000016 			.WORD	CS.HFE,E$RHFE	; DDCMP HEADER FORMAT ERROR                     ;BH0007
    225	000012	000400 	000023 			.WORD	CS.DCR,E$RCRC	; CRC ERROR                                     ;BH0007
    226	000016	000010 	000005 			.WORD	CS.RNG,E$RDSC	; DATA SET CARRIER TRANSITION                   ;BH0007
    227	000022	000004 	000012 			.WORD	CS.ROV,E$ROVR	; RECEIVE OVERRUN                               ;BH0007
    228	000026	020000 	000006 			.WORD	CS.TMO,E$RRTO	; RECEIVE TIMEOUT                               ;BH0007
    229	000032	040000 	000027 			.WORD	CS.TTM,E$RXTO	; XMIT TIMEOUT                                  ;BH0007
    230		000007 			  ERRTBL=<.-ERRTB-2>/4                                                          ;BH0001
    231					                                                                                ;BH0004
    232					;                                                                               ;BH0004
    233					; DEFINE THE $CMLOG ARGUMENT BLOCK                                              ;BH0004
    234					;                                                                               ;BH0004
    235		000022 				LGDAT=18.		; HDR + 8.*REGS = 9.WORDS = 18.BYTES            ;BH0007
    236	000036					CMLDF$	KDP,E$THDW,,KDP,ERRTB,LGDAT                                     ;BH0007
	000036	000000 			PDST:	.WORD	0		; LOGGING DESTINATION
	000040	000000 			PRSN:	.WORD	0		;    "    REASON
	000042	177777 			PDT1:	.WORD	-1		; FORMAT DEPENDENT ARG #1
	000044	000034 			PDT2:	.WORD	KDP		;   "        "      "  #2
	000046	000022 			PLNG:	.WORD	LGDAT		; BYTES OF COROUTINE-ADDED INFO
	000050	042560 			PNAM:	.RAD50	/KDP/		; PROCESS NAME
	000052	000003 			PTYP:	.WORD	E$THDW		; EVENT TYPE CODE
	000054	000000'			PTAB:	.WORD	ERRTB		; ERROR CODE MAPPING TABLE
	000056	000000 			PSTA:	.WORD	0		; STATE WORD FOR USE BY $CMLOG
    237		000042'				PLIN=PDT1	; SYS LINE #                                            ;BH0004
    238		000044'				PDID=PDT2	; DEVICE ID                                             ;BH0004
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 7
MACRO CALLS AND MACRO DEFINITIONS

    240					;
    241					;	KMC-11 CSR BIT DEFINITIONS FOR DUP-11 SUPPORT
    242					;
    243		000000 			CD.TBA	=  000000	; TRANSMIT BUFFER ADDR IN/OUT	[SEL 0/2]
    244		000001 			CD.CTL	=  000001	; CONTROL FUNCTION IN/OUT	[SEL 0/2]
    245		000003 			CD.BAS	=  000003	; DUP-11 CSR BASE ADDRESS IN	[SEL 0]
    246		000004 			CD.RBA	=  000004	; RECEIVE BUFFER ADDR IN/OUT	[SEL 0/2]
    247		000200 			CD.REQ	=  000200	; REQUEST DATA PORTS		[SEL 0]
    248		000001 			CD.IEI	=  000001	; ENABLE INPUT-REQ INTERRUPTS	[SEL 0]	**RHR 31AUG77
    249		000020 			CD.IEO	=  000020	; ENABLE OUTPUT-REQ INTERRUPTS	[SEL 0]	**RHR 31AUG77
    250		000020 			CD.RDI	=  000020	; DATA PORTS READY		[SEL 2]	**RHR 31AUG77
    251		040000 			CD.MCL	=  040000	; MASTER CLEAR			[SEL 0]
    252		100000 			CD.RUN	=  100000	; RUN				[SEL 0]
    253		177400 			CD.DPN	=  177400	; DUP-11 NUMBER (0-15.)		[SEL 2]
    254
    255					;
    256					;	KMC/DUP CONTROL-IN BITS		[SEL 6]
    257					;
    258		000400 			CD.ENB	=  000400	; ENABLE RECEIVE, TRANSMIT, DATA TERMINAL READY
    259		010000 			CD.SEC	=  010000	; SECONDARY-STATION ADDRESS-CHECK MODE
    260		020000 			CD.DUP	=  020000	; DUPLEX SWITCH		(0=FULL, 1=HALF)
    261		100000 			CD.DEC	=  100000	; OPERATING MODE	(0=SDLC, 1=DDCMP)
    262
    263					;
    264					;	BUFFER ADDRESS IN/OUT SPECIAL DATA PORT BITS [SEL 6]
    265					;
    266		010000 			CD.KIL	=  010000	; KILL I/O		(XMT/RCV BUFFER ADDR IN)
    267		010000 			CD.EOM	=  010000	; END OF MESSAGE	(XMT/RCV BUFFER ADDR OUT)
    268
    269					;
    270					;	DUP-11 CSR MODEM CONTROL BITS	[SEL 0]
    271					;
    272		040000 			DU.RNG	=  040000	; RING STATE
    273		010000 			DU.CAR	=  010000	; CARRIER STATE
    274		001000 			DU.DSR	=  001000	; DATA SET READY STATE
    275					                                                                                ;**-36
    276		000005 			  CTIME   =  005	; TRANSMIT RESPONSE TIMEOUT VALUE (5 SECS)
    277
    278
    279					;
    280					;	INTERUPT QUEUE FLAG BITS (IN C.STS OF THE CCB)
    281					;
    282		000007 			CQ.COM	=  000007	; FUNCTION FOR KMC-11 TO PERFORM
    283		000004 			CQ.RCV	=  000004	; FUNCTION RELATES TO RECEIVE BUFFER
    284		000370 			CQ.ARG	=  000370	; USED FOR ANY ADDITIONAL INFO
    285		000010 			CQ.AR1	=  000010	; CQ.ARG = 1
    286		000020 			CQ.AR2	=  000020	; CQ.ARG = 2
    287		000040 			CQ.AR3	=  000040	; CQ.ARG = 4
    288		000100 			CQ.AR4	=  000100	; CQ.ARG = 10
    289		177400 			CQ.LIN	=  177400	; USED FOR DUP NUMBER (0-15.)
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 8
MACRO CALLS AND MACRO DEFINITIONS

    291					    .IF DF R$$11D ! I$$AS
    292
    293						.MCALL	PRCHD$
    294						PRCHD$	$KDPTB,DRIVER	;; BUILD RSX-11D/IAS PROCESS HEADER
    295					    .ENDC
    296
    297
    298						.SBTTL	KMC/DUP INTERRUPT-ENTRY DISPATCH TABLES
    299					;---------------------------------------------------------------;
    300					;	I N P U T    I N T E R R U P T    D I S P A T C H	;
    301					;---------------------------------------------------------------;
    302	000060				CDITB:
    303	000060	000544'				.WORD	CITBA		; TRANSMIT BUFFER ADDRESS IN
    304	000062	000664'				.WORD	CICTL		; CONTROL FUNCTION IN
    305	000064	000072'				.WORD	CIINV		; --INVALID--
    306	000066	000744'				.WORD	CIBAS		; DUP-11 CSR BASE ADDRESS IN
    307	000070	000602'				.WORD	CIRBA		; RECEIVE BUFFER ADDRESS IN
    308
    309	000072	000003 			CIINV:	BPT
    310
    311
    312					;---------------------------------------------------------------;
    313					;      O U T P U T    I N T E R R U P T    D I S P A T C H	;
    314					;---------------------------------------------------------------;
    315	000074				CDOTB:
    316	000074	001004'				.WORD	COTBA		; TRANSMIT BUFFER ADDRESS OUT
    317	000076	001140'				.WORD	COTCT		; TRANSMIT CONTROL OUT
    318	000100	000110'				.WORD	COINV		; --INVALID--
    319	000102	000110'				.WORD	COINV		; --INVALID--
    320	000104	001062'				.WORD	CORBA		; RECEIVE  BUFFER ADDRESS OUT
    321	000106	001142'				.WORD	CORCT		; RECEIVE  CONTROL OUT
    322
    323	000110	000003 			COINV:	BPT
    324
    325
    326					;---------------------------------------------------------------;
    327					;	   C O N T R O L  -  O U T    D I S P A T C H		;
    328					;---------------------------------------------------------------;
    329	000112				CDETB:
    330	000112	000142'				.WORD	CEINV		; --INVALID--
    331	000114	000142'				.WORD	CEINV		; --INVALID--
    332	000116	000142'				.WORD	CEINV		; --INVALID--
    333	000120	001342'				.WORD	CEABO		; SDLC -- OPERATION ABORTED
    334	000122	001152'				.WORD	CEBDH		; DDCMP - INVALID HEADER FORMAT
    335	000124	001160'				.WORD	CECRC		; RECEIVE CRC ERROR
    336	000126	001372'				.WORD	CENRB		; NO RECEIVE BUFFER ASSIGNED
    337	000130	001402'				.WORD	CEDSR		; DATA SET READY TRANSITION
    338	000132	000142'				.WORD	CEINV		; --INVALID--
    339	000134	001440'				.WORD	CEUDR		; TRANSMITTER UNDERRUN
    340	000136	001166'				.WORD	CEOVR		; RECEIVER OVERRUN
    341	000140	001446'				.WORD	CEKCM		; KILL-I/O COMPLETE
    342
    343	000142	000003 			CEINV:	BPT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 9
KMC/DUP PROCESS DISPATCH TABLES

    345						.SBTTL	KMC/DUP PROCESS DISPATCH TABLES
    346					;---------------------------------------------------------------;
    347					;     D D M    P R O C E S S    D I S P A T C H    T A B L E	;
    348					;---------------------------------------------------------------;
    349	000144				$KDPTB::
    350	000144	002050'				.WORD	CDTRN		; TRANSMIT ENABLE
    351	000146	002202'				.WORD	CDRCV		; RECEIVE  ENABLE
    352	000150	002244'				.WORD	CDKIO		; KILL I/O ENABLE
    353	000152	002670'				.WORD	CDCTL		; CONTROL  ENABLE
    354
    355	000154	002536'				.WORD	CDTMO		; TIMEOUT
    356
    357									; TRANSMIT COMPLETE (VIA INTERRUPT)
    358									; RECEIVE  COMPLETE (VIA INTERRUPT)
    359									; KILL I/O COMPLETE (VIA INTERRUPT)
    360									; CONTROL  COMPLETE (VIA INTERRUPT)
    361
    362
    363					;---------------------------------------------------------------;
    364					;	K I L L - I / O    D I S P A T C H    T A B L E		;
    365					;---------------------------------------------------------------;
    366	000156				KILTAB:
    367	000156	002264'				.WORD	CDKIL		; TRANSMIT AND RECEIVE KILL
    368	000160	002372'				.WORD	CDRKL		; RECEIVE  KILL
    369	000162	002472'				.WORD	CDXKL		; TRANSMIT KILL
    370
    371
    372					;---------------------------------------------------------------;
    373					;	C O N T R O L    E N A B L E    D I S P A T C H		;
    374					;---------------------------------------------------------------;
    375	000164				CTLTAB:
    376	000164	000216'				.WORD	CD.INV		; INITIALIZATION
    377	000166	002702'				.WORD	CDSTR		; START LINE
    378	000170	002762'				.WORD	CDSTP		; STOP  LINE
    379	000172	000216'				.WORD	CD.INV		; TERMINATION
    380	000174	000216'				.WORD	CD.INV		; MAINTENANCE
    381	000176	000216'				.WORD	CD.INV		; SET CHARACTERISTICS
    382	000200	000216'				.WORD	CD.INV		; GET CHARACTERISTICS
    383	000202	000226'				.WORD	CD.NOP		; XON
    384	000204	000226'				.WORD	CD.NOP		; XOFF
    385	000206	000226'				.WORD	CD.NOP		; LOOK FOR RING
    386	000210	003046'				.WORD	CDENB		; ENABLE  LINE
    387	000212	003154'				.WORD	CDDIS		; DISABLE LINE
    388	000214	003250'				.WORD	CDMSN		; SENSE MODEM STATUS
    389
    390
    391	000216				CD.INV:
    392	000216	012703 	100000 			MOV	#CS.ERR,R3	; UNSUPPORTED FUNCTION
    393	000222	000241 				CLC			; SYNCHRONOUS COMPLETION
    394	000224					RETURN
    395
    396	000226				CD.NOP:
    397	000226	005003 				CLR	R3		; SUCCESSFUL NO-OPERATION
    398	000230					RETURN			; SYNCHRONOUS COMPLETION
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 10
KMC/DUP OFFSETS TO DUP-11 LINE TABLES

    400						.SBTTL	KMC/DUP OFFSETS TO DUP-11 LINE TABLES
    401					;+
    402					;   WORD TABLE OF OFFSETS FROM THE BEGINNING OF THE KMC-11 LINE
    403					;    TABLE TO THE BEGINNING OF EACH POSSIBLE DUP-11 LINE TABLE.
    404					;    INDEXED BY THE DUP-11 UNIT NUMBER TIMES 2.
    405					;-
    406
    407					;---------------------------------------------------------------;
    408					;      D U P - 1 1    L I N E    T A B L E    O F F S E T S	;
    409					;---------------------------------------------------------------;
    410	000232				DSPTAB:
    411	000232	000054 				.WORD	CMLEN+<CTLEN*00>
    412	000234	000142 				.WORD	CMLEN+<CTLEN*01>
    413	000236	000230 				.WORD	CMLEN+<CTLEN*02>
    414	000240	000316 				.WORD	CMLEN+<CTLEN*03>
    415	000242	000404 				.WORD	CMLEN+<CTLEN*04>
    416	000244	000472 				.WORD	CMLEN+<CTLEN*05>
    417	000246	000560 				.WORD	CMLEN+<CTLEN*06>
    418	000250	000646 				.WORD	CMLEN+<CTLEN*07>
    419	000252	000734 				.WORD	CMLEN+<CTLEN*10>
    420	000254	001022 				.WORD	CMLEN+<CTLEN*11>
    421	000256	001110 				.WORD	CMLEN+<CTLEN*12>
    422	000260	001176 				.WORD	CMLEN+<CTLEN*13>
    423	000262	001264 				.WORD	CMLEN+<CTLEN*14>
    424	000264	001352 				.WORD	CMLEN+<CTLEN*15>
    425	000266	001440 				.WORD	CMLEN+<CTLEN*16>
    426	000270	001526 				.WORD	CMLEN+<CTLEN*17>
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 11
KMC/DUP OFFSETS TO DUP-11 LINE TABLES

    428					;+                                                                              ;AP0009
    429					; POLLING CLASS TABLE FOR DETERMINING LIMITS FOR GIVEN SPEED                    ;AP0009
    430					;                                                                               ;AP0009
    431					; ENTRIES ARE SET FOR THE STANDARD SPEED ENTRIES:                               ;AP0009
    432					;                                                                               ;AP0009
    433					;	NUM	BAUD	NUM	BAUD	NUM	BAUD                            ;AP0009
    434					;	0	50.	1	75.	2	110.                            ;AP0009
    435					;	3	134.5	4	150.	5	1800.                           ;AP0009
    436					;	6	600.	7	1200.	10	1800.                           ;AP0009
    437					;	11	2000.	12	2400.	13	3600.                           ;AP0009
    438					;	14	4800.	15	7200.	16	9600.                           ;AP0009
    439					;	17	EXTERNAL                                                        ;AP0009
    440					;-                                                                              ;AP0009
    441					                                                                                ;AP0009
    442		000004 			POLTHR	==	4.		; NUMBER OF OVER/UNDER-RUNS TO ACCEPT           ;AP0009
    443									; BEFORE ADJUSTING POLLING RATE.                ;AP0009
    444					                                                                                ;AP0009
    445	000272	   004 	   004 	   004 	HIPOL:	.BYTE	4.,4.,4.	; FASTEST POLLING RATE                          ;AP0009
    446	000275	   004 	   004 	   004 		.BYTE	4.,4.,4.                                                        ;AP0009
    447	000300	   004 	   004 	   004 		.BYTE	4.,4.,4.                                                        ;AP0009
    448	000303	   004 	   004 	   003 		.BYTE	4.,4.,3.                                                        ;AP0009
    449	000306	   002 	   001 	   001 		.BYTE	2.,1.,1.                                                        ;AP0009
    450	000311	   000 				.BYTE	0.                                                              ;AP0009
    451					                                                                                ;AP0009
    452	000312	   014 	   014 	   014 	LOPOL:	.BYTE	12.,12.,12.	; SLOWEST POLLING RATE                          ;AP0009
    453	000315	   014 	   014 	   014 		.BYTE	12.,12.,12.                                                     ;AP0009
    454	000320	   014 	   014 	   014 		.BYTE	12.,12.,12.                                                     ;AP0009
    455	000323	   014 	   014 	   010 		.BYTE	12.,12.,8.                                                      ;AP0009
    456	000326	   006 	   005 	   003 		.BYTE	6.,5.,3.                                                        ;AP0009
    457	000331	   000 				.BYTE	0.                                                              ;AP0009
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 12
$CDIRI --  INPUT INTERRUPT DISPATCH SERVICE

    459						.SBTTL	$CDIRI --  INPUT INTERRUPT DISPATCH SERVICE
    460					;+
    461					; FUNCTION:
    462					;
    463					;	INPUT-RELATED INTERRUPTS ARE VECTORED TO '$CDIRI' BY A CALL
    464					;	SEQUENCE AT OFFSET 'CMIRI' IN THE KMC-11 DEVICE LINE TABLE.
    465					;	THE FIRST CCB ON THE INTERRUPT QUEUE ('CMIQH') IS REMOVED,
    466					;	THE FUNCTION CODE AND DUP-11 NUMBER ARE SET IN THE KMC-11
    467					;	CSR [SEL 2] FROM THE 'C.STS' WORD OF THE INTERRUPT CCB, AND
    468					;	THE APPROPRIATE ROUTINE IS CALLED THROUGH THE 'CDITB' TABLE.
    469					;
    470					; ON ENTRY:
    471					;
    472					;	R5 = ADDRESS OF 'CMIPR' IN THE KMC-11 LINE TABLE
    473					;	ALL INTERRUPTS ARE DISABLED
    474					;
    475					; ON EXIT:	(VIA DISPATCH TABLE 'CDITB')
    476					;
    477					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    478					;	R1 = KMC-11 LINE TABLE ADDRESS
    479					;	R4 = ADDRESS OF CCB REQUESTING THE INTERRUPT
    480					;	R5 = DUP-11 LINE TABLE ADDRESS
    481					;	     ALL REGISTERS HAVE BEEN SAVED
    482					;-
    483
    484					;---------------------------------------------------------------;
    485					;	I N P U T    I N T E R R U P T    D I S P A T C H	;
    486					;---------------------------------------------------------------;
    487	000332				$CDIRI::
    488	000332					$INTSX			;; DROP TO DEVICE PRIORITY LEVEL
    489	000336					PUSH	<R0,R1,R2,R3>	;; SAVE THE REST OF THE REGISTERS
    490	000346	010501 				MOV	R5,R1		;; R5 NOW POINTS AT CMIPR+2 = CMORI
    491	000350	162701 	000020 			SUB	#CMORI,R1	;; POINT R1 AT KMC-11 LINE TABLE START
    492
    493	000354	016100 	000040 			MOV	CMCSR(R1),R0	;; POINT R0 AT KMC-11 CSR [SEL 0]
    494	000360	042720 	000200 			BIC	#CD.REQ,(R0)+	;; CLEAR THE DATA PORT REQUEST
    495
    496	000364					$DEQ	R1,CMIQH,,20$	;; TAKE FIRST CCB ON INTERRUPT QUEUE
    497	000414	016403 	000012 			MOV	C.STS(R4),R3	;; STATUS WORD TO R3
    498	000420	142703 	177770 			BICB	#^C<CQ.COM>,R3	;; CLEAR ALL BUT FUNCTION CODE FROM LOW BYTE
    499	000424	150320 				BISB	R3,(R0)+	;; SET FUNCTION CODE IN CSR [BSEL 2]
    500	000426	000303 				SWAB	R3		;; EXCHANGE TO GET DUP# LOW-ORDER
    501	000430	110320 				MOVB	R3,(R0)+	;; SET DUP-11 NUMBER IN CSR [BSEL 3]
    502	000432	012702 	000060'			MOV	#CDITB,R2	;; BRANCH TABLE ADDRESS TO R2
    503	000436	000424 				BR	CDISRV		;; GO CALL THE APPROPRIATE ROUTINE
    504
    505	000440	000003 			20$:	BPT			;; >>>>DEBUG<<<< -- 'CMIQH' IS EMPTY
    506	000442					CRASH
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 13
$CDORI --  OUTPUT INTERRUPT DISPATCH SERVICE

    508						.SBTTL	$CDORI --  OUTPUT INTERRUPT DISPATCH SERVICE
    509					;+
    510					; FUNCTION:
    511					;
    512					;	OUTPUT-RELATED INTERRUPTS ARE VECTORED TO HERE VIA A CALL
    513					;	SEQUENCE AT OFFSET 'CMORI' IN THE KMC-11 DEVICE LINE TABLE.
    514					;	THE FUNCTION CODE AND THE DUP-11 NUMBER ARE TAKEN FROM THE
    515					;	KMC-11 CSR [SEL 2], THE DUP-11 LINE TABLE IS LOCATED, AND
    516					;	THE APPROPRIATE ROUTINE IS CALLED THROUGH TABLE 'CDOTB'.
    517					;
    518					; ON ENTRY:
    519					;
    520					;	R5 = ADDRESS OF 'CMOPR' IN THE KMC-11 LINE TABLE
    521					;	ALL INTERRUPTS ARE DISABLED
    522					;
    523					; ON EXIT:	(VIA DISPATCH TABLE 'CDOTB')
    524					;
    525					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    526					;	R1 = KMC-11 LINE TABLE ADDRESS
    527					;	R5 = DUP-11 LINE TABLE ADDRESS
    528					;	     ALL REGISTERS HAVE BEEN SAVED
    529					;-
    530
    531					;---------------------------------------------------------------;
    532					;      O U T P U T    I N T E R R U P T    D I S P A T C H	;
    533					;---------------------------------------------------------------;
    534	000444				$CDORI::
    535	000444					$INTSX			;; DROP TO DEVICE PRIORITY LEVEL
    536	000450					PUSH	<R0,R1,R2,R3>	;; SAVE THE REST OF THE REGISTERS
    537	000460	010501 				MOV	R5,R1		;; R5 NOW POINTS AT CMOPR+2 = CMCSR
    538	000462	011100 				MOV	(R1),R0		;; POINT R0 AT KMC-11 CSR [SEL 0]
    539	000464	162701 	000040 			SUB	#CMCSR,R1	;; POINT R1 AT KMC-11 LINE TABLE START
    540
    541	000470	005720 				TST	(R0)+		;; POINT TO OUTPUT CSR [SEL 2]
    542	000472	012003 				MOV	(R0)+,R3	;; INTERRUPT CODE AND DUP# TO R3
    543	000474	142703 	177770 			BICB	#^C<CQ.COM>,R3	;; CLEAR ALL BUT FUNCTION CODE FROM LOW BYTE
    544	000500	000303 				SWAB	R3		;; EXCHANGE TO GET DUP# LOW-ORDER
    545	000502	100417 				BMI	BADLIN		;; NEGATIVE INDICATES COMPLETION OVERRUN        ;AP0009
    546	000504	012702 	000074'			MOV	#CDOTB,R2	;; BRANCH TABLE ADDRESS TO R2
    547
    548	000510				CDISRV:				;; FIND THE DUP-11 LINE TABLE + DISPATCH
    549	000510	110305 				MOVB	R3,R5		;; DUP-11 NUMBER FROM CSR [BSEL 3]
    550	000512					CALL	DLTA		;; POINT R5 AT THE DUP-11 LINE TABLE
    551	000516	105003 				CLRB	R3		;; CLEAR OUT THE DUP NUMBER
    552	000520	000303 				SWAB	R3		;; EXCHANGE TO GET FUNCTION CODE LOW-ORDER
    553	000522	006303 				ASL	R3		;; SHIFT FOR BRANCH TABLE INDEX
    554	000524	060203 				ADD	R2,R3		;; POINT TO THE CORRECT ENTRY
    555
    556	000526					CALL	@(R3)+		;; INDIRECT CALL VIA DISPATCH TABLE
    557
    558	000530					POP	<R3,R2,R1,R0>	;; RESTORE SAVED REGISTERS
    559	000540					RETURN			;; RETURN TO THE SYSTEM
    560					                                                                                ;AP0009
    561	000542	000003 			BADLIN:	BPT			;; >>>>DEBUG<<<< COMPLETION OVERRUN.            ;AP0009
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 14
CIXBA  --  TRANSMIT/RECEIVE BUFFER ADDRESS IN

    563						.SBTTL	CIXBA  --  TRANSMIT/RECEIVE BUFFER ADDRESS IN
    564					;+
    565					; FUNCTION:
    566					;
    567					;	ONE OF THE TRANSMIT OR RECEIVE BUFFER DESCRIPTORS HAS BEEN
    568					;	INITIALIZED FOR THE REQUESTING CCB, AND THE INPUT INTERRUPT
    569					;	REQUESTED. IF 'CQ.AR1' IN THE 'C.STS' WORD IS ZERO, BUFFER
    570					;	DESCRIPTOR #1 (TRANSMIT OR RECEIVE) WAS ASSIGNED, OTHERWISE
    571					;	BUFFER DESCRIPTOR #2 WAS ASSIGNED. IF 'CQ.AR2' IS SET, THE
    572					;	CCB REPRESENTS A TRANSMIT OR RECEIVE KILL-I/O, AND THE KILL
    573					;	REQUEST IS PASSED ON TO THE KMC-11 VIA CSR [SEL 6].
    574					;
    575					; ON ENTRY:
    576					;
    577					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    578					;	R1 = KMC-11 LINE TABLE ADDRESS
    579					;	R4 = ADDRESS OF CCB REQUESTING INTERRUPT
    580					;	R5 = DUP-11 LINE TABLE ADDRESS
    581					;
    582					; ON EXIT:
    583					;
    584					;	R0,R5 DESTROYED, OTHER REGISTERS PRESERVED.
    585					;	INPUT INTERRUPT REQUESTED IF 'CMIQH' NOT EMPTY.
    586					;-
    587
    588						.ENABL	LSB
    589					;---------------------------------------------------------------;
    590					;     T R A N S M I T    B U F F E R    A D D R E S S    I N	;
    591					;---------------------------------------------------------------;
    592	000544				CITBA:
    593	000544	032764 	000020 	000012 		BIT	#CQ.AR2,C.STS(R4) ;; SHOULD A TRANSMIT KILL BE DONE ?
    594	000552	001032 				BNE	CIKIL		  ;; YES - KILL INSTEAD OF ASSIGN
    595	000554	112715 	000005 			MOVB	#CTIME,(R5)	  ;; START UP THE TRANSMIT TIMER                ;AP0009
    596	000560	062705 	000026 			ADD	#CTTD1,R5	  ;; POINT TO TRANSMIT DESCRIPTOR #1            ;**-1
    597	000564	032764 	000010 	000012 		BIT	#CQ.AR1,C.STS(R4) ;; IS THAT THE ONE TO USE ?
    598	000572	001417 				BEQ	CIBUF		  ;; YES - SET DESCRIPTOR ADDR IN THE CSR
    599	000574	062705 	000010 			ADD	#CTTD2-CTTD1,R5   ;; NO -- POINT TO DESCRIPTOR #2
    600	000600	000414 				BR	CIBUF		  ;; ...AND SET THAT ADDRESS IN THE CSR
    601
    602
    603					;---------------------------------------------------------------;
    604					;      R E C E I V E    B U F F E R    A D D R E S S    I N	;
    605					;---------------------------------------------------------------;
    606	000602				CIRBA:
    607	000602	032764 	000020 	000012 		BIT	#CQ.AR2,C.STS(R4) ;; SHOULD A RECEIVE KILL BE DONE ?
    608	000610	001013 				BNE	CIKIL		  ;; YES - KILL INSTEAD OF ASSIGN
    609	000612	062705 	000046 			ADD	#CTRD1,R5	  ;; POINT TO RECEIVE DESCRIPTOR #1
    610	000616	032764 	000010 	000012 		BIT	#CQ.AR1,C.STS(R4) ;; IS THAT THE ONE TO USE ?
    611	000624	001402 				BEQ	CIBUF		  ;; YES - SET DESCRIPTOR ADDR IN THE CSR
    612	000626	062705 	000010 			ADD	#CTRD2-CTRD1,R5	  ;; NO -- POINT TO DESCRIPTOR #2
    613					;	BR	CIBUF		  ;; SET DESCRIPTOR ADDR IN THE CSR
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 15
CIXBA  --  TRANSMIT/RECEIVE BUFFER ADDRESS IN

    615	000632				CIBUF:
    616					    .IF DF R$$11D ! I$$AS
    617						PUSH	<R2,R3>		;; SAVE SOME WORK REGISTERS
    618						MOV	R5,R2		;; DESCRIPTOR VIRTUAL ADDRESS TO R2
    619						CLR	R3		;; ZERO BIAS = USE CURRENT MAPPING
    620						CALL	$CNV18		;; CONVERT TO 18-BIT UNIBUS ADDRESS
    621						MOV	R2,(R0)+	;; SET ADDRESS BITS 0-15 IN CSR [SEL 4]
    622						CLC			;; CLEAR THE CARRY BIT, SO THAT...
    623						ROR	R3		;; ...WE CAN SHIFT MEMORY EXTENSION...
    624						ROR	R3		;; ...BITS INTO THE HIGH-ORDER BITS...
    625						ROR	R3		;; ...OF REGISTER R3, FOR THE KMC CSR
    626						MOV	R3,(R0)		;; MEMORY EXTENSION BITS TO CSR [SEL 6]
    627						POP	<R3,R2>		;; RESTORE WORK REGISTERS
    628						BR	60$		;; RELEASE DATA PORTS AND EXIT
    629					    .IFF
    630	000632	010520 				MOV	R5,(R0)+	;; DESCRIPTOR ADDRESS TO CSR [SEL 4]
    631	000634	005010 				CLR	(R0)		;; MEMORY EXTENSION BITS ARE ALWAYS ZERO
    632	000636	000410 				BR	60$		;; RELEASE THE DATA PORTS + EXIT
    633					    .ENDC
    634
    635
    636					;---------------------------------------------------------------;
    637					;	T R A N S M I T    O R    R E C E I V E    K I L L	;
    638					;---------------------------------------------------------------;
    639	000640				CIKIL:
    640	000640	005020 				CLR	(R0)+		;; NO BUFFER ADDRESS
    641	000642	012710 	010000 			MOV	#CD.KIL,(R0)	;; SET KILL I/O BIT
    642	000646					$ENQ	R1,CMKQH	;; ADD CCB TO THE KILL-I/O QUEUE
    643	000660	000167 	003266 		60$:	JMP	RQIRL		;; RELEASE PORTS AND GET NEXT REQ
    644						.DSABL	LSB
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 16
CICTL  --  CONTROL-IN INTERRUPT HANDLER

    646						.SBTTL	CICTL  --  CONTROL-IN INTERRUPT HANDLER
    647					;+
    648					; FUNCTION:
    649					;
    650					;	A CONTROL-IN INTERRUPT IS REQUESTED WHEN AN 'ENABLE LINE' OR
    651					;	'DISABLE LINE' CONTROL-ENABLE CCB IS RECEIVED. IF 'DISABLE',
    652					;	THE SPECIFIED DUP-11 IS DISABLED BY CLEARING 'CD.ENB' IN THE
    653					;	KMC-11 CSR [SEL 6]. IF 'ENABLE', THE LINE PARAMETERS, WHICH
    654					;	HAVE BEEN SET IN THE 'CTCTL' WORD, ARE MOVED TO CSR [SEL 6].
    655					;
    656					; ON ENTRY:
    657					;
    658					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    659					;	R1 = KMC-11 LINE TABLE ADDRESS
    660					;	R4 = ADDRESS OF CCB REQUESTING INTERRUPT
    661					;	R5 = DUP-11 LINE TABLE ADDRESS
    662					;
    663					; ON EXIT:
    664					;
    665					;	R0,R3,R4 DESTROYED. CONTROL CCB POSTED COMPLETE.
    666					;-
    667
    668					;---------------------------------------------------------------;
    669					;	    C O N T R O L    I N    I N T E R R U P T		;
    670					;---------------------------------------------------------------;
    671	000664				CICTL:
    672	000664	116502 	000065 			MOVB	CTITM+1(R5),R2	;; GET POLLING RATE PARAMETER                   ;AP0009
    673	000670	010220 				MOV	R2,(R0)+	;; AND SET IT [SEL 4]                           ;AP0009
    674	000672	005010 				CLR	(R0)			;; CLEAR CSR [SEL 6]                    ;**-1
    675	000674	122764 	000026 	000011 		CMPB	#FS.DIS/400,C.MOD(R4)	;; IS THIS A DISABLE REQUEST ?
    676	000702	001004 				BNE	20$			;; NO -- MUST BE AN ENABLE
    677	000704	042765 	000400 	000016 		BIC	#CD.ENB,CTCTL(R5)	;; FLAG THE LINE AS DISABLED
    678	000712	000402 				BR	40$			;; EXIT - CSR IS ALREADY SET
    679
    680	000714	016510 	000016 		20$:	MOV	CTCTL(R5),(R0)		;; MOVE PRESET CONTROL WORD TO CSR
    681
    682	000720				40$:	CALL	RQIRL		;; RELEASE DATA PORTS + RE-REQUEST
    683	000724	105764 	000010 			TSTB	C.FNC(R4)	;; IS THIS HIS ?                                ;AP0009
    684	000730	001403 				BEQ	50$		;; IF SO,                                       ;AP0009
    685	000732	005003 				CLR	R3		;; STATUS = SUCCESSFUL
    686	000734					GOTO	$DDCCP		;; POST CONTROL COMPLETE
    687					                                                                                ;AP0009
    688	000740				50$:	GOTO	$CCBRT		;; RETURN OUR CCB.                              ;AP0009
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 17
CIBAS  --  DUP-11 CSR BASE ADDRESS IN

    690						.SBTTL	CIBAS  --  DUP-11 CSR BASE ADDRESS IN
    691					;+
    692					; FUNCTION:
    693					;
    694					;	A CSR-BASE-IN INTERRUPT IS REQUESTED WHEN AN 'ENABLE LINE'
    695					;	CONTROL CCB IS RECEIVED FOR A DUP-11 WITHOUT THE 'CT.BAS'
    696					;	FLAG SET. THE CSR-BASE-IN FUNCTION IS PERFORMED, AND THE
    697					;	CCB IS RE-SCHEDULED FOR THE 'ENABLE LINE' CONTROL-IN.
    698					;
    699					; ON ENTRY:
    700					;
    701					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    702					;	R1 = KMC-11 LINE TABLE ADDRESS
    703					;	R4 = ADDRESS OF CCB REQUESTING INTERRUPT
    704					;	R5 = DUP-11 LINE TABLE ADDRESS
    705					;
    706					; ON EXIT:
    707					;
    708					;	R0,R5 DESTROYED, OTHER REGISTERS PRESERVED.
    709					;-
    710
    711					;---------------------------------------------------------------;
    712					;	D U P - 1 1    C S R    B A S E    A D D R    I N	;
    713					;---------------------------------------------------------------;
    714	000744				CIBAS:
    715	000744	005020 				CLR	(R0)+			;; CLEAR CSR [SEL 4]
    716	000746	052765 	000020 	000004 		BIS	#CT.BAS,CTFLG(R5)	;; SAY BASE IN DONE NOW
    717	000754	016505 	000002 			MOV	CTCSR(R5),R5		;; GET THE DUP-11 CSR ADDRESS
    718	000760	042705 	160007 			BIC	#^C017770,R5		;; ONLY BITS 3-12 ARE WANTED
    719	000764	010510 				MOV	R5,(R0)			;; SET THE CSR ADDRESS IN [SEL 6]
    720
    721	000766					CALL	RQIRL			;; RELEASE PORTS AND RESCHEDULE
    722	000772	112764 	000001 	000012 		MOVB	#CD.CTL,C.STS(R4) 	;; SET NEW OPERATION CODE
    723	001000	000167 	003120 			JMP	INSIQT			;; PUT CCB BACK AT HEAD OF QUEUE
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 18
COTBA  --  TRANSMIT BUFFER ADDRESS OUT

    725						.SBTTL	COTBA  --  TRANSMIT BUFFER ADDRESS OUT
    726					;+
    727					; FUNCTION:
    728					;
    729					;	A TRANSMIT BUFFER ADDRESS OUT FUNCTION IS A 'TRANSMIT COM-
    730					;	PLETE' FOR THE BUFFER DESCRIPTOR ADDRESSED IN CSR [SEL 4].
    731					;	THE COMPLETED CCB IS POSTED COMPLETE AND ANOTHER ASSIGNED.
    732					;
    733					; ON ENTRY:
    734					;
    735					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    736					;	R1 = KMC-11 LINE TABLE ADDRESS
    737					;	R5 = DUP-11 LINE TABLE ADDRESS
    738					;
    739					; ON EXIT:
    740					;
    741					;	R2,R3,R4 DESTROYED, OTHER REGISTERS PRESERVED.
    742					;-
    743
    744					;---------------------------------------------------------------;
    745					;    T R A N S M I T    B U F F E R    A D D R E S S    O U T	;
    746					;---------------------------------------------------------------;
    747	001004				COTBA:
    748	001004	105015 				CLRB	(R5)		;; RESET THE TRANSMIT TIMER                     ;AP0009
    749	001006	012002 				MOV	(R0)+,R2	;; DESCRIPTOR ADDRESS FROM CSR [SEL 4]          ;**-1
    750					    .IF DF R$$11D ! I$$AS
    751						CALL	CVTDSC		;; CONVERT DESCRIPTOR ADDRESS TO 16 BITS
    752					    .ENDC
    753	001010	005003 				CLR	R3		;; COMPLETION STATUS = SUCCESS
    754	001012	122765 	000004 	000064 		CMPB	#POLTHR,CTITM(R5) ;; IF  POLLING THRESHOLD                      ;AP0009
    755	001020	101402 				BLOS	COTCP		;; IS ENDANGERED, THEN                          ;AP0009
    756	001022	105265 	000064 			INCB	CTITM(R5)	;; BUMP IT BACK UP.                             ;AP0009
    757
    758	001026				COTCP:				;; COMMON TRANSMIT COMPLETE PROCESSING
    759	001026	014204 				MOV	-(R2),R4	;; ACTIVE CCB ADDRESS TO R4
    760	001030	001413 				BEQ	100$		;; IF THERE IS ONE                              ;AP0015
    761	001032	005012 				CLR	(R2)		;; DESCRIPTOR NO LONGER IN USE
    762	001034	142764 	000177 	000023 		BICB	#177,C.FLG+1(R4) ;;CLEAR KMC-11 FLAGS FROM CCB
    763	001042					CALL	$DDXMP		;; POST TRANSMIT COMPLETE
    764	001046					CALL	TRNASN		;; TRY TO ASSIGN ANOTHER BUFFER
    765	001052	105060 	177774 			CLRB	-4(R0)		;; RELEASE THE DATA PORTS
    766	001056					RETURN			;; EXIT -- ALL DONE
    767					                                                                                ;AP0015
    768	001060	000003 			100$:	BPT			;; >>>>DEBUG<<<< INACTIVE DESCRIPTOR RELEASED   ;AP0015
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 19
CORBA  --  RECEIVE BUFFER ADDRESS OUT

    770						.SBTTL	CORBA  --  RECEIVE BUFFER ADDRESS OUT
    771					;+
    772					; FUNCTION:
    773					;
    774					;	A RECEIVE BUFFER ADDRESS OUT IS A 'RECEIVE COMPLETE' FOR
    775					;	THE BUFFER DESCRIPTOR ADDRESSED BY THE CSR [SEL 4]. IF THE
    776					;	'CD.EOM' FLAG IS SET IN CSR [SEL 6], THE INCOMING MESSAGE
    777					;	IS POSTED COMPLETE VIA THE 'CORCP' ROUTINE.  IF 'CD.EOM'
    778					;	IS NOT SET, 'CS.MTL' IS SET IN 'CTFLG' TO INDICATE THAT
    779					;	THE NEXT COMPLETION (WITH 'CD.EOM') WAS FOR A MESSAGE THAT
    780					;	WAS TOO LONG FOR A SINGLE BUFFER. THE COMPLETED BUFFER IS
    781					;	RE-ASSIGNED FOR THE NEXT RECEIVE.
    782					;
    783					; ON ENTRY:
    784					;
    785					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    786					;	R1 = KMC-11 LINE TABLE ADDRESS
    787					;	R5 = DUP-11 LINE TABLE ADDRESS
    788					;
    789					; ON EXIT:
    790					;
    791					;	R0,R2,R4 DESTROYED, OTHER REGISTERS PRESERVED.
    792					;-
    793
    794					;---------------------------------------------------------------;
    795					;     R E C E I V E    B U F F E R    A D D R E S S    O U T	;
    796					;---------------------------------------------------------------;
    797	001062				CORBA:
    798	001062	012002 				MOV	(R0)+,R2	;; DESCRIPTOR ADDRESS FROM CSR [SEL 4]
    799					    .IF DF R$$11D ! I$$AS
    800						CALL	CVTDSC		;; CONVERT DESCRIPTOR ADDRESS TO 16 BITS
    801					    .ENDC
    802	001064	032710 	010000 			BIT	#CD.EOM,(R0)	;; DID WE RECEIVE END-OF-MESSAGE ?
    803	001070	001410 				BEQ	20$		;; NO -- MESSAGE IS TOO LONG
    804	001072	005003 				CLR	R3		;; INITIAL COMPLETION STATUS = SUCCESS
    805	001074	122765 	000004 	000064 		CMPB	#POLTHR,CTITM(R5) ;; IF  POLLING THRESHOLD                      ;AP0009
    806	001102	101442 				BLOS	CORCP		;; IS ENDANGERED, THEN                          ;AP0009
    807	001104	105265 	000064 			INCB	CTITM(R5)	;; BUMP IT BACK UP.                             ;AP0009
    808	001110	000437 				BR	CORCP		;; JOIN COMMON RECEIVE COMPLETE CODE
    809
    810	001112	105060 	177774 		20$:	CLRB	-4(R0)			 ;; RELEASE THE DATA PORTS
    811	001116	052765 	104000 	000004 		BIS	#CS.ERR!CS.MTL,CTFLG(R5) ;; STATUS WHEN MSG COMPLETES
    812	001124	014204 				MOV	-(R2),R4		 ;; ACTIVE CCB ADDRESS TO R4
    813	001126	001403 				BEQ	100$			 ;; IF THERE IS ONE                     ;AP0010
    814	001130	005022 				CLR	(R2)+			 ;; RECORD NO LONGER IN USE             ;AP0010
    815	001132	000167 	002620 			JMP	RCVASN		  	 ;; RE-ASSIGN THE SAME CCB              ;**-2
    816					                                                                                ;AP0010
    817	001136	000003 			100$:	BPT			;; >>>>DEBUG<<<< INACTIVE DESCRIPTOR RELEASED   ;AP0010
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 20
COXCT  --  CONTROL-OUT INTERRUPT DISPATCH

    819						.SBTTL	COXCT  --  CONTROL-OUT INTERRUPT DISPATCH
    820					;+
    821					; FUNCTION:
    822					;
    823					;	CONTROL OUT ACTS AS AN ERROR REPORTING MECHANISM. THE IN-
    824					;	TERRUPT IS DISPATCHED BASED ON THE ERROR CODE RECEIVED IN
    825					;	THE KMC-11 CSR [SEL 6].
    826					;
    827					; ON ENTRY:
    828					;
    829					;	R0 = KMC-11 CSR ADDRESS [SEL 4]
    830					;	R1 = KMC-11 LINE TABLE ADDRESS
    831					;	R5 = DUP-11 LINE TABLE ADDRESS
    832					;
    833					; ON EXIT:	(VIA DISPATCH TABLE 'CDETB')
    834					;
    835					;	R0 = KMC-11 CSR ADDRESS [SEL 6]
    836					;	R2 = BUFFER DESCRIPTOR ADDRESS FROM CSR [SEL 4]
    837					;	R1,R5 UNMODIFIED
    838					;-
    839
    840					;---------------------------------------------------------------;
    841					;	  C O N T R O L    O U T    D I S P A T C H E R		;
    842					;---------------------------------------------------------------;
    843	001140				COTCT:				;; TRANSMIT-RELATED CONTROL OUT
    844	001140	105015 				CLRB	(R5)		;; RESET THE TRANSMIT TIMER                     ;AP0009
    845	001142				CORCT:				;; RECEIVE-RELATED CONTROL OUT                  ;**-1
    846	001142	012002 				MOV	(R0)+,R2	;; DESCRIPTOR ADDRESS FROM CSR [SEL 4]
    847	001144	111004 				MOVB	(R0),R4		;; FUNCTION CODE BITS FROM CSR [BSEL 6]
    848					    .IF DF R$$11D ! I$$AS
    849						CALL	CVTDSC		;; CONVERT DESCRIPTOR ADDRESS TO 16 BITS
    850					    .ENDC
    851	001146	000174 	000112'			JMP	@CDETB(R4)	;; GO SERVICE THE ERROR
    852
    853
    854					;---------------------------------------------------------------;
    855					;      D D C M P    H E A D E R    F O R M A T    E R R O R	;
    856					;---------------------------------------------------------------;
    857	001152				CEBDH:
    858	001152	012703 	102000 			MOV	#CS.ERR!CS.HFE,R3	;; ERROR STATUS TO R3
    859	001156	000407 				BR	CERSN			;; POST RECEIVE COMPLETE
    860
    861
    862					;---------------------------------------------------------------;
    863					;	R E C E I V E D    D A T A    C R C    E R R O R	;
    864					;---------------------------------------------------------------;
    865	001160				CECRC:
    866	001160	012703 	100400 			MOV	#CS.ERR!CS.DCR,R3	;; ERROR STATUS TO R3
    867	001164	000404 				BR	CERSN			;; POST RECEIVE COMPLETE
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 21
COXCT  --  CONTROL-OUT INTERRUPT DISPATCH

    869					;---------------------------------------------------------------;
    870					;	  R E C E I V E R    O V E R R U N    E R R O R		;
    871					;---------------------------------------------------------------;
    872	001166				CEOVR:
    873	001166					CALL	POLCHK		;; CHECK IF POLLING SHOULD BE ADJUSTED          ;AP0009
    874	001172	012703 	100004 			MOV	#CS.ERR!CS.ROV,R3	;; ERROR STATUS TO R3
    875	001176	052765 	000010 	000004 	CERSN:	BIS	#CT.RKC,CTFLG(R5)	;; RE-SYNCH WILL OCCUR NEXT
    876	001204					CALL	LOGG3			;; LOG THE EVENT                        ;BH0001
    877
    878						.SBTTL	CORCP  --  COMMON RECEIVE COMPLETE PROCESSING
    879					;+
    880					; FUNCTION:
    881					;
    882					;	THE COMPLETED RECEIVE CCB IS POSTED COMPLETE WITH STATUS
    883					;	AS ACCUMULATED IN THE 'CTFLG' WORD AND R3 ON ENTRY. A NEW
    884					;	RECEIVE BUFFER IS ALLOCATED AND ASSIGNED VIA 'RCVGET'.
    885					;
    886					; ON ENTRY:
    887					;
    888					;	R0 = KMC-11 CSR ADDRESS [SEL 6]
    889					;	R1 = KMC-11 LINE TABLE ADDRESS
    890					;	R2 = BUFFER DESCRIPTOR ADDRESS FROM CSR [SEL 4]
    891					;	R3 = STATUS TO BE RETURNED VIA $DDRCP
    892					;	R5 = DUP-11 LINE TABLE ADDRESS
    893					;
    894					; ON EXIT:
    895					;
    896					;	R2,R3,R4 DESTROYED, OTHER REGISTERS PRESERVED.
    897					;-
    898
    899					;---------------------------------------------------------------;
    900					;	C O M M O N    R E C E I V E    C O M P L E T E		;
    901					;---------------------------------------------------------------;
    902	001210				CORCP:
    903	001210	105060 	177774 			CLRB	-4(R0)		;; NO LONGER NEED DATA PORT
    904	001214	014204 				MOV	-(R2),R4	;; ACTIVE CCB ADDRESS TO R4
    905	001216	001450 				BEQ	100$		;; IF THERE IS ONE                              ;AP0010
    906	001220	005022 				CLR	(R2)+		;; RECORD NO LONGER IN USE                      ;AP0010
    907	001222	016264 	000002 	000020 		MOV	2(R2),C.CNT1(R4)	;; SET BYTE COUNT FROM DESCRIPTOR       ;AP0010
    908	001230	032765 	100000 	000016 		BIT	#CD.DEC,CTCTL(R5)	;; ARE WE RUNNING DDCMP ?               ;**-2
    909	001236	001006 				BNE	20$			;; YES - BYTE COUNT IS CORRECT
    910	001240	032765 	010000 	000016 		BIT	#CD.SEC,CTCTL(R5)	;; SECONDARY-STATION MODE ?
    911	001246	001402 				BEQ	20$			;; NO -- BYTE COUNT IS CORRECT
    912	001250	005264 	000020 			INC	C.CNT1(R4)		;; INCREMENT FOR ADDRESS BYTE
    913
    914	001254				20$:	PUSH	R5		;; SAVE THE LINE TABLE ADDRESS
    915	001256	062705 	000004 			ADD	#CTFLG,R5	;; POINT R5 TO THE FLAGS WORD
    916	001262	051503 				BIS	(R5),R3		;; SET ACCUMULATED STATUS IN R3
    917	001264	042703 	040073 			BIC	#CT.MSK,R3	;; CLEAR OUT DRIVER-ONLY FLAGS
    918	001270	042715 	137704 			BIC	#^C<CT.MSK>,(R5) ;;CLEAR STATUS FROM LINE TABLE
    919	001274	032715 	000010 			BIT	#CT.RKC,(R5)	;; WILL RECEIVER RE-SYNCH AFTER THIS MSG ?
    920	001300	001404 				BEQ	40$		;; NO -- FLAGS WORD IS ALL SET
    921	001302	042715 	000010 			BIC	#CT.RKC,(R5)	;; REMOVE THE 'WILL RE-SYNCH' FLAG
    922	001306	052715 	010000 			BIS	#CS.RSN,(R5)	;; SET 'RE-SYNCH' FLAG FOR NEXT TIME
    923	001312				40$:	POP	R5		;; RECOVER LINE TABLE START ADDRESS
    924	001314	112764 	000002 	000011 		MOVB	#FS.DVC/400,C.MOD(R4) ;; DEVICE CHECKS CRC, CRC NOT IN BUFFER
    925	001322	012764 	100014 	000022 		MOV	#CF.LB!CF.SOM!CF.EOM,C.FLG(R4) ;; SET BUFFER FLAGS
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 21-1
CORCP  --  COMMON RECEIVE COMPLETE PROCESSING

    926	001330					CALL	$DDRCP		;; POST RECEIVE COMPLETE
    927	001334	000167 	002344 			JMP	RCVGET		;; GET AND ASSIGN A NEW RECEIVE BUFFER
    928					                                                                                ;AP0010
    929	001340	000003 			100$:	BPT			;; >>>>DEBUG<<<< INACTIVE DESCRIPTOR RELEASED   ;AP0010
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 22
CEABO  --  SDLC/ADCCP FRAME ABORT RECEIVED

    931						.SBTTL	CEABO  --  SDLC/ADCCP FRAME ABORT RECEIVED
    932					;+
    933					; FUNCTION:
    934					;
    935					;	THE KMC-11 HAS DETECTED AN ABORT SEQUENCE WHILE RECEIVING
    936					;	IN SDLC/ADCCP (BIT-STUFF) MODE. THE RECEIVE BUFFER IS RE-
    937					;	ASSIGNED AND THE CONDITION IS IGNORED.
    938					;
    939					; ON ENTRY:
    940					;
    941					;	R0 = KMC-11 CSR ADDRESS [SEL 6]
    942					;	R1 = KMC-11 LINE TABLE ADDRESS
    943					;	R2 = BUFFER DESCRIPTOR ADDRESS FROM CSR [SEL 4]
    944					;	R5 = DUP-11 LINE TABLE ADDRESS
    945					;
    946					; ON EXIT:
    947					;
    948					;	R2,R4 DESTROYED, OTHER REGISTERS PRESERVED.
    949					;-
    950
    951					;---------------------------------------------------------------;
    952					;	B I T - S T U F F    A B O R T    R E C E I V E D	;
    953					;---------------------------------------------------------------;
    954	001342				CEABO:
    955	001342	012704 	100100 			MOV	#CS.ERR!CS.ABO,R4 ;; LOG THIS EVENT                             ;BH0001
    956	001346					CALL	LOGG4		  ;; ...                                        ;BH0001
    957	001352	105060 	177774 			CLRB	-4(R0)		;; RELEASE THE DATA PORTS
    958	001356	014204 				MOV	-(R2),R4	;; ABORTED CCB ADDRESS TO R4
    959	001360	001403 				BEQ	100$		;; IF THERE IS ONE                              ;AP0010
    960	001362	005022 				CLR	(R2)+		;; RECORD NO LONGER IN USE                      ;AP0010
    961	001364	000167 	002366 			JMP	RCVASN		  ;; RE-ASSIGN THE SAME CCB                     ;**-2
    962					                                                                                ;AP0010
    963	001370	000003 			100$:	BPT			;; >>>>DEBUG<<<< INACTIVE DESCRIPTOR RELEASED   ;AP0010
    964
    965
    966					;---------------------------------------------------------------;
    967					;     N O    R E C E I V E    B U F F E R    A S S I G N E D	;
    968					;---------------------------------------------------------------;
    969	001372				CENRB:
    970	001372	052765 	010000 	000004 		BIS	#CS.RSN,CTFLG(R5) ;; NO BUFFER, BUT WAIT REQUEST ALREADY SET
    971	001400	000414 				BR	CERDP		;; LEAVE                                        ;BH0001
    972					                                                                                ;**-1
    973
    974					;---------------------------------------------------------------;
    975					;    D A T A - S E T - R E A D Y    S T A T E    C H A N G E	;
    976					;---------------------------------------------------------------;
    977	001402				CEDSR:
    978	001402	032765 	001000 	000004 		BIT	#CT.DRU,CTFLG(R5) ;; IF THIS ONE EXPECTED                       ;AP0016
    979	001410	001004 				BNE	10$		  ;; THEN                                       ;AP0016
    980	001412	052765 	001000 	000004 		BIS	#CT.DRU,CTFLG(R5) ;; NEXT ONE WON'T BE.                         ;AP0016
    981	001420	000404 				BR	CERDP                                                           ;AP0016
    982	001422	012704 	100010 		10$:	MOV	#CS.ERR!CS.RNG,R4 ;; LOG THIS EVENT                             ;BH0001
    983	001426	000401 				BR	1$		;; DON'T LOG THIS EVENT                         ;SR0017
    984	001430	004316'				.WORD	LOGG4		;; PATCH BR TO JSR TO REENABLE                  ;SR0017
    985	001432				1$:				;;                                              ;SR0017
    986	001432				CERDP:                                                                          ;BH0001
    987	001432	105060 	177774 			CLRB	-4(R0)		;; 'DSR' CHANGED -- IGNORE IT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 22-1
CEABO  --  SDLC/ADCCP FRAME ABORT RECEIVED

    988	001436					RETURN			;; EXIT WITH DATA PORTS RELEASED
    989
    990
    991					;---------------------------------------------------------------;
    992					;	    T R A N S M I T T E R    U N D E R R U N		;
    993					;---------------------------------------------------------------;
    994	001440				CEUDR:
    995	001440					CALL	POLCHK		;; CHECK IF POLLING SHOULD BE ADJUSTED          ;AP0009
    996	001444	000772 				BR	CERDP		;; AND EXIT.                                    ;AP0015
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 23
CEKCM  --  KILL-I/O COMPLETE FROM KMC-11

    998						.SBTTL	CEKCM  --  KILL-I/O COMPLETE FROM KMC-11
    999					;+
   1000					; FUNCTION:
   1001					;
   1002					;	'CEKCM' IS ENTERED ON A CONTROL-OUT INTERRUPT INDICATING
   1003					;	THAT A KILL-I/O REQUESTED BY THE DRIVER IS NOW COMPLETE.
   1004					;	THE KILL COMPLETE INDICATES THAT ALL BUFFERS, PREVIOUSLY
   1005					;	ASSIGNED FOR THE FUNCTION (XMT/RCV) KILLED, ARE NO LONGER
   1006					;	IN USE BY THE KMC-11.  IF IT IS A RECEIVE KILL DUE TO A
   1007					;	KILL-I/O, THE BUFFERS ARE RE-ASSIGNED.  IF RECEIVE KILL
   1008					;	DUE TO A CONTROL-STOP, THE BUFFERS ARE RELEASED.  FOR A
   1009					;	TRANSMIT KILL OF ANY TYPE, ALL OUTSTANDING BUFFERS WILL
   1010					;	BE RETURNED TO THE DLC IN THE ORDER IN WHICH THEY CAME.
   1011					;	IF IT IS THE FIRST HALF OF A TRANSMIT AND RECEIVE KILL,
   1012					;	THE SECOND HALF (ALWAYS TRANSMIT KILL) IS SCHEDULED.
   1013					;
   1014					; ON ENTRY:
   1015					;
   1016					;	R0 = KMC-11 CSR ADDRESS [SEL 6]
   1017					;	R1 = KMC-11 LINE TABLE ADDRESS
   1018					;	R2 = BUFFER DESCRIPTOR ADDRESS FROM CSR [SEL 4]
   1019					;	R5 = DUP-11 LINE TABLE ADDRESS
   1020					;
   1021					; ON EXIT:
   1022					;
   1023					;	R2,R3,R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1024					;-
   1025
   1026					;---------------------------------------------------------------;
   1027					;	K M C - 1 1    K I L L - I / O    C O M P L E T E	;
   1028					;---------------------------------------------------------------;
   1029	001446				CEKCM:
   1030	001446	105060 	177774 			CLRB	-4(R0)		;; NO LONGER NEED DATA PORT
   1031	001452					$DEQ	R1,CMKQH,R0	;; FIRST CCB ON THE KILL-I/O QUEUE
   1032	001502	014204 				MOV	-(R2),R4	;; 'KILLED' CCB ADDRESS TO R4
   1033	001504	001001 				BNE	10$		;; IF NONE, THEN                                ;AP0011
   1034	001506	000003 				BPT			;; >>>>DEBUG<<<< INACTIVE DESCRIPTOR RELEASED   ;AP0011
   1035	001510	005022 			10$:	CLR	(R2)+		;; RECORD NO LONGER IN USE                      ;AP0011
   1036					                                                                                ;**-1
   1037	001512	132760 	000004 	000012 		BITB	#CD.RBA,C.STS(R0) ;; RECEIVE OR TRANSMIT KILL ?
   1038	001520	001436 				BEQ	100$		  ;; TRANSMIT -- RETURN CCB'S TO THE DLC
   1039	001522	042765 	000002 	000004 		BIC	#CT.RKL,CTFLG(R5) ;; RECEIVE KILL-I/O COMPLETE
   1040	001530	052765 	010000 	000004 		BIS	#CS.RSN,CTFLG(R5) ;; SET 'RE-SYNCH' FLAG FOR NEXT TIME
   1041	001536	012702 	003756'			MOV	#RCVASN,R2	  ;; ASSUME WE'RE RE-ASSIGNING BUFFERS
   1042	001542	122760 	000006 	000010 		CMPB	#FC.CTL,C.FNC(R0) ;; KILL-I/O OR CONTROL-STOP ?
   1043	001550	001002 				BNE	20$		  ;; KILL-I/O -- 'RCVASN' IS IT
   1044	001552	012702 	000000G			MOV	#$RDBRT,R2	  ;; CONTROL-STOP -- RELEASE THE BUFFERS
   1045
   1046	001556	016546 	000044 		20$:	MOV	CTRA1(R5),-(SP)	;; CHECK DESCRIPTOR #1                          ;AP0012
   1047	001562	001403 				BEQ	40$		;; NOPE - THAT ONE WAS 'KILLED'                 ;**-2
   1048	001564	005065 	000044 			CLR	CTRA1(R5)	;; RELEASE THE DESCRIPTOR
   1049	001570	000405 				BR	60$		;; CALL + EXIT -- THERE ARE ONLY TWO
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 24
CEKCM  --  KILL-I/O COMPLETE FROM KMC-11

   1051	001572	016516 	000054 		40$:	MOV	CTRA2(R5),(SP)	;; CHECK DESCRIPTOR #2                          ;AP0012
   1052	001576	001402 				BEQ	60$		;; NOPE - RELEASE THE FOUND BUFFERS             ;AP0012
   1053	001600	005065 	000054 			CLR	CTRA2(R5)	;; RELEASE THE DESCRIPTOR                       ;**-2
   1054	001604				60$:	CALL	(R2)		;; RELEASE OR RE-ASSIGN THE CCB
   1055	001606	012604 				MOV	(SP)+,R4	;; IF THERE IS ANOTHER CCB                      ;AP0012
   1056	001610	001471 				BEQ	CEKCP		;; THEN                                         ;AP0012
   1057	001612					CALL	(R2)		;; RELEASE OR RE-ASSIGN THIS ALSO               ;AP0012
   1058	001614	000467 				BR	CEKCP		;; CHECK FOR TRANSMIT KILL NEXT
   1059
   1060	001616	042765 	000001 	000004 	100$:	BIC	#CT.XKL,CTFLG(R5) ;; TRANSMIT KILL-I/O COMPLETE
   1061	001624	016514 	000024 			MOV	CTTA1(R5),(R4)	  ;; CHAIN DESCRIPTOR #1 CCB TO 'KILLED' CCB
   1062	001630	001406 				BEQ	120$		  ;; NOPE - THAT'S THE 'KILLED' ONE
   1063	001632	016575 	000020 	000024 		MOV	CTITQ(R5),@CTTA1(R5) ;; PUT BOTH BEFORE INACTIVE CCB'S
   1064	001640	005065 	000024 			CLR	CTTA1(R5)	  ;; RELEASE BUFFER DESCRIPTOR #1
   1065	001644	000413 				BR	160$		  ;; RETURN CCB'S - ALL ACCOUNTED FOR
   1066
   1067	001646	016514 	000034 		120$:	MOV	CTTA2(R5),(R4)	  ;; CHAIN DESCRIPTOR #2 CCB TO 'KILLED' CCB
   1068	001652	001406 				BEQ	140$		  ;; NOPE - THERE WAS ONLY ONE
   1069	001654	016575 	000020 	000034 		MOV	CTITQ(R5),@CTTA2(R5) ;; PUT BOTH BEFORE INACTIVE CCB'S
   1070	001662	005065 	000034 			CLR	CTTA2(R5)	  ;; RELEASE BUFFER DESCRIPTOR #2
   1071	001666	000402 				BR	160$		  ;; RETURN CCB'S - ALL ACCOUNTED FOR
   1072
   1073	001670	016514 	000020 		140$:	MOV	CTITQ(R5),(R4)	  ;; RETURN 'KILLED' CCB FIRST
   1074	001674	010465 	000020 		160$:	MOV	R4,CTITQ(R5)	  ;; COLLAPSE INTO A SINGLE QUEUE
   1075	001700					PUSH	#CS.ERR!CS.ABO	  ;; STATUS CODES IF NORMAL KILL-I/O
   1076	001704	122760 	000010 	000010 		CMPB	#FC.TIM,C.FNC(R0) ;; TRANSMIT KILL DUE TO TIME-OUT ?
   1077	001712	001004 				BNE	180$		  ;; NO -- COMPLETION CODES CORRECT
   1078	001714	012716 	140000 			MOV	#CS.ERR!CS.TTM,(SP) ;; TIMEOUT ERROR INSTEAD                    ;AP0015
   1079	001720	000401 				BR	1$		;; DON'T LOG THIS EVENT                         ;SR0017
   1080	001722	004310'				.WORD	LOGGS		;; PATCH BR TO JSR TO ENABLE                    ;SR0017
   1081	001724				1$:				;;                                              ;SR0017
   1082					                                                                                ;**-1
   1083	001724				180$:	$DEQ	R5,CTITQ,,200$	  ;; REMOVE UNTIL NO MORE ARE LEFT
   1084	001754	011603 				MOV	(SP),R3		  ;; PICK UP COMPLETION CODES
   1085	001756	142764 	000177 	000023 		BICB	#177,C.FLG+1(R4)  ;; REMOVE KMC-11 BUFFER FLAGS
   1086	001764					CALL	$DDXMP		  ;; RETURN CCB'S TO THE DLC PROCESS
   1087	001770	000755 				BR	180$		  ;; . . .ALL OF THEM
   1088	001772	005726 			200$:	TST	(SP)+		  ;; CLEAN OFF THE STACK
   1089
   1090
   1091	001774				CEKCP:				  ;; CHECK FOR ANOTHER KILL REQUEST
   1092	001774	010004 				MOV	R0,R4		  ;; RECOVER CONTROL CCB ADDRESS
   1093	001776	132764 	000010 	000012 		BITB	#CQ.AR1,C.STS(R4) ;; FIRST HALF OF KILL BOTH ?
   1094	002004	001405 				BEQ	CDKCP		;; NO -- KILL OR STOP COMPLETE                  ;AP0014
   1095	002006	042760 	000014 	000012 		BIC	#CD.RBA!CQ.AR1,C.STS(R0) ;; SECOND IS ALWAYS TRANSMIT KILL      ;**-1
   1096	002014	000167 	002104 			JMP	INSIQT			 ;; RE-REQUEST AS FIRST INTERRUPT
   1097
   1098	002020	005003 			CDKCP:	CLR	R3		;; STATUS = SUCCESSFUL                          ;AP0014
   1099	002022	126427 	000010 	000006 		CMPB	C.FNC(R4),#FC.CTL ;; KILL DUE TO CONTROL-STOP ?                 ;**-1
   1100	002030	001002 				BNE	40$		  ;; NO -- CHECK OTHER POSSIBILITIES
   1101	002032					GOTO	$DDCCP		  ;; POST CONTROL FUNCTION COMPLETE
   1102
   1103	002036	101002 			40$:	BHI	60$		  ;; 'FC.TIM' IS HIGHER THAN 'FC.CTL'
   1104	002040					GOTO	$DDKCP		  ;; POST KILL-I/O COMPLETE
   1105
   1106	002044				60$:	GOTO	$CCBRT		  ;; RELEASE CCB FROM TIMEOUT KILL
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 25
CDTRN  --  TRANSMIT ENABLE ENTRY

   1108						.SBTTL	CDTRN  --  TRANSMIT ENABLE ENTRY
   1109					;+
   1110					; FUNCTION:
   1111					;
   1112					;	'CDTRN' WILL ACCEPT A ONE- OR TWO-CCB CHAIN OF BUFFERS TO
   1113					;	BE TRANSMITTED ON THE DUP-11 WHOSE LINE TABLE IS ADDRESSED
   1114					;	BY R5. EACH CCB IS INITIALIZED WITH THE KMC-11 BUFFER FLAG
   1115					;	BITS SET IN THE HIGH-ORDER BYTE OF 'C.FLG', THE DUP UNIT #
   1116					;	IN 'C.STS'+1, AND THE FUNCTION CODE 'CD.TBA' IN 'C.STS'.
   1117					;	EACH CCB IS ADDED TO THE INACTIVE TRANSMIT QUEUE, AND AN
   1118					;	ATTEMPT IS MADE TO ASSIGN NEW TRANSMIT BUFFERS TO THE KMC.
   1119					;
   1120					; ON ENTRY:
   1121					;
   1122					;	R4 = ADDRESS OF FIRST TRANSMIT ENABLE CCB
   1123					;	R5 = DUP-11 LINE TABLE ADDRESS
   1124					;
   1125					; ON EXIT:
   1126					;
   1127					;	R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1128					;-
   1129
   1130					;---------------------------------------------------------------;
   1131					;	   T R A N S M I T    E N A B L E    E N T R Y		;
   1132					;---------------------------------------------------------------;
   1133	002050				CDTRN:
   1134	002050					PUSH	R1		; SAVE R1
   1135	002052					CALL	CLTA		; KMC-11 LINE TABLE ADDRESS TO R1
   1136
   1137	002056				20$:	PUSH	<(R4),R4>	; SAVE CCB LINK AND ADDRESS
   1138	002062	062704 	000012 			ADD	#C.STS,R4	; POINT TO THE CCB STATUS WORD
   1139	002066	105024 				CLRB	(R4)+		; SET 'CD.TBA' IN THE LOW-ORDER BYTE
   1140	002070	116524 	000006 			MOVB	CTDUP(R5),(R4)+	; SET THE DUP# IN THE HIGH-ORDER BYTE
   1141	002074	062704 	000006 			ADD	#C.FLG-C.BUF,R4	; POINT TO THE BUFFER FLAGS WORD
   1142
   1143	002100	032714 	000010 			BIT	#CF.SOM,(R4)	; IS THIS A START-OF-MESSAGE ?
   1144	002104	001402 				BEQ	40$		; NO -- CHECK OTHER FLAGS
   1145	002106	052714 	000400 			BIS	#BD.SOM,(R4)	; USE HIGH-ORDER BYTE FOR KMC-11 FLAGS
   1146	002112	032714 	000004 		40$:	BIT	#CF.EOM,(R4)	; IS THIS AN END-OF-MESSAGE ?
   1147	002116	001402 				BEQ	60$		; NO --
   1148	002120	052714 	001000 			BIS	#BD.EOM,(R4)	; SET KMC-11 DESCRIPTOR FLAGS
   1149	002124	032714 	000040 		60$:	BIT	#CF.SYN,(R4)	; PRECEDE FRAME WITH SYNC-TRAIN ?
   1150	002130	001402 				BEQ	80$		; NO --
   1151	002132	052714 	010000 			BIS	#BD.SYN,(R4)	; SET KMC-11 DESCRIPTOR FLAGS
   1152	002136				80$:	POP	R4		; RECOVER CCB - 'CF.LB' SAME AS 'BD.LBD'
   1153
   1154	002140					INHIB$			;;; DISABLE COMIOP INTERRUPTS
   1155	002152					$ENQ	R5,CTITQ	;;; ADD CCB TO THE INACTIVE QUEUE
   1156	002164					CALL	TRNASN		;;; TRY TO ASSIGN NEW BUFFERS
   1157	002170					ENABL$			;;; ENABLE COMIOP INTERRUPTS
   1158
   1159	002174					POP	R4		; RECOVER CCB LINK INTO R4
   1160	002176	001327 				BNE	20$		; MORE TO GO - CONTINUE
   1161	002200	000417 				BR	CDEXT		; RESTORE R1 AND EXIT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 26
CDRCV  --  RECEIVE ENABLE ENTRY

   1163						.SBTTL	CDRCV  --  RECEIVE ENABLE ENTRY
   1164					;+
   1165					; FUNCTION:
   1166					;
   1167					;	THE RECEIVE ENABLE ROUTINE IS ENTERED WHEN A RECEIVE BUFFER
   1168					;	HAS BECOME AVAILABLE FOLLOWING AN ALLOCATION FAILURE AND A
   1169					;	CALL TO '$RDBWT'. THE RECEIVE CCB AND BUFFER IS INITIALIZED
   1170					;	AND ASSIGNED TO THE APPROPRIATE DUP-11 LINE.
   1171					;
   1172					; ON ENTRY:
   1173					;
   1174					;	R4 = ADDRESS OF CCB WITH LARGE DATA BUFFER
   1175					;	R5 = DUP-11 LINE TABLE ADDRESS
   1176					;
   1177					; ON EXIT:
   1178					;
   1179					;	R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1180					;-
   1181
   1182					;---------------------------------------------------------------;
   1183					;	    R E C E I V E    E N A B L E    E N T R Y		;
   1184					;---------------------------------------------------------------;
   1185	002202				CDRCV:
   1186	002202					PUSH	R1		; SAVE R1
   1187	002204					CALL	CLTA		; GET ADDRESS OF COMIOP DLT
   1188
   1189	002210					INHIB$			  ;;; DISABLE KMC-11 INTERRUPTS
   1190	002222					CALL	RCVUSE		  ;;; SETUP + ASSIGN THE NEW BUFFER
   1191	002226	052765 	000200 	000004 		BIS	#CS.BUF,CTFLG(R5) ;;; SET ALLOCATION FAILURE BIT
   1192	002234					ENABL$			  ;;; ENABLE KMC-11 INTERRUPTS
   1193
   1194	002240				CDEXT:
   1195	002240					POP	R1		; RECOVER R1
   1196	002242					RETURN			; RETURN TO THE SYSTEM
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 27
CDKIO  --  KILL-I/O ENABLE ENTRY

   1198						.SBTTL	CDKIO  --  KILL-I/O ENABLE ENTRY
   1199					;+
   1200					; FUNCTION:
   1201					;
   1202					;	THE KILL-I/O ENABLE REQUEST IS DISPATCHED ACCORDING
   1203					;	TO THE FUNCTION MODIFIER CODE IN C.MOD OF THE CCB.
   1204					;
   1205					; ON ENTRY:
   1206					;
   1207					;	R3 = CCB FUNCTION MODIFIER CODE
   1208					;	R4 = ADDRESS OF KILL-I/O ENABLE CCB
   1209					;	R5 = DUP-11 LINE TABLE ADDRESS
   1210					;
   1211					; ON EXIT:	(VIA DISPATCH TABLE 'KILTAB')
   1212					;
   1213					;	R1 = KMC-11 LINE TABLE ADDRESS
   1214					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1215					;	R4,R5 UNMODIFIED
   1216					;-
   1217
   1218					;---------------------------------------------------------------;
   1219					;	  K I L L  -  I / O    E N A B L E    E N T R Y		;
   1220					;---------------------------------------------------------------;
   1221	002244				CDKIO:
   1222	002244					PUSH	R1			; SAVE R1 FOR EVERYBODY
   1223	002246					CALL	CLTA			; KMC-11 LINE TABLE ADDRESS TO R1
   1224	002252	116564 	000006 	000013 		MOVB	CTDUP(R5),C.STS+1(R4)	; SET DUP# IN C.STS+1 OF CCB
   1225	002260	000173 	000156'			JMP	@KILTAB(R3)		; CALL KILL I/O ROUTINE
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 28
CDKIL  --  RECEIVE AND TRANSMIT KILL-I/O

   1227						.SBTTL	CDKIL  --  RECEIVE AND TRANSMIT KILL-I/O
   1228					;+
   1229					; FUNCTION:
   1230					;
   1231					;	'CDKIL' WILL EXECUTE A RECEIVE KILL FOR A SPECIFIED DUP-11
   1232					;	LINE, FORCING A RECEIVER RE-SYNCHRONIZATION.  IF THERE ARE
   1233					;	TRANSMIT CCB'S ACTIVE FOR THE LINE, A TRANSMIT KILL WILL BE
   1234					;	PERFORMED, RETURNING THE OUTSTANDING CCB'S TO THE DLC. THIS
   1235					;	ROUTINE IS ALSO ENTERED AT 'CMKIL' TO KILL I/O AS A RESULT
   1236					;	OF A 'STOP LINE' CONTROL REQUEST.
   1237					;
   1238					; ON ENTRY:
   1239					;
   1240					;	R1 = KMC-11 LINE TABLE ADDRESS
   1241					;	R4 = ADDRESS OF CONTROL OR KILL-I/O CCB
   1242					;	R5 = DUP-11 LINE TABLE ADDRESS
   1243					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1244					;
   1245					; ON EXIT:
   1246					;
   1247					;	ALL REGISTERS ARE PRESERVED.
   1248					;-
   1249
   1250					;---------------------------------------------------------------;
   1251					;      K I L L    R E C E I V E    A N D    T R A N S M I T	;
   1252					;---------------------------------------------------------------;
   1253	002264				CDKIL:
   1254	002264	105064 	000012 			CLRB	C.STS(R4)	; KILL I/O NOT FROM 'STOP'
   1255
   1256	002270				CMKIL:
   1257	002270	042764 	000007 	000012 		BIC	#CQ.COM,C.STS(R4)		; COMMAND MUST BE ZEROED
   1258					                                                                                ;**-2
   1259	002276					INHIB$				;;; DISABLE COMIOP INTERRUPTS
   1260	002310	005765 	000044 			TST	CTRA1(R5)		;;; IF A                                ;AP0013
   1261	002314	001003 				BNE	10$			;;; RECEIVE BUFFER                      ;AP0013
   1262	002316	005765 	000054 			TST	CTRA2(R5)		;;; IS NOT ASSIGNED                     ;AP0013
   1263	002322	001470 				BEQ	CDXK1			;;; THEN TRY FOR TRANSMIT.              ;AP0013
   1264					                                                                                ;AP0013
   1265	002324	152764 	000034 	000012 	10$:	BISB	#CD.RBA!CQ.AR1!CQ.AR2,C.STS(R4) ;;; ASSUME KILL RCV + XMT       ;AP0013
   1266	002332	052765 	000003 	000004 		BIS	#CT.XKL!CT.RKL,CTFLG(R5) ;;; INDICATE BOTH IN PROGRESS          ;AP0013
   1267					                                                                                ;AP0013
   1268	002340	005765 	000024 			TST	CTTA1(R5)		;;; TEST FOR ACTIVE TRANSMIT
   1269	002344	001033 				BNE	CDKXT			;;; YES - MUST KILL BOTH
   1270	002346	005765 	000034 			TST	CTTA2(R5)		;;; CHECK THE SECOND CCB SLOT
   1271	002352	001030 				BNE	CDKXT			;;; YES - MUST KILL BOTH
   1272
   1273	002354	142764 	000010 	000012 		BICB	#CQ.AR1,C.STS(R4)	;;; ONLY NEED RECEIVE KILL
   1274	002362	042765 	000001 	000004 		BIC	#CT.XKL,CTFLG(R5)	;;; XMT KILL NOT IN PROGRESS
   1275	002370	000421 				BR	CDKXT			;;; REQUEST INTERRUPT + EXIT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 29
CDRKL  --  RECEIVE KILL-I/O

   1277						.SBTTL	CDRKL  --  RECEIVE KILL-I/O
   1278					;+
   1279					; FUNCTION:
   1280					;
   1281					;	'CDRKL' WILL EXECUTE A RECEIVE KILL FOR THE SPECIFIED
   1282					;	DUP-11 LINE, FORCING RECEIVER RE-SYNCHRONIZATION.
   1283					;
   1284					; ON ENTRY:
   1285					;
   1286					;	R1 = KMC-11 LINE TABLE ADDRESS
   1287					;	R4 = ADDRESS OF KILL-I/O ENABLE CCB
   1288					;	R5 = DUP-11 LINE TABLE ADDRESS
   1289					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1290					;
   1291					; ON EXIT:
   1292					;
   1293					;	ALL REGISTERS ARE PRESERVED.
   1294					;-
   1295
   1296					;---------------------------------------------------------------;
   1297					;	R E C E I V E    K I L L - I / O    E N A B L E		;
   1298					;---------------------------------------------------------------;
   1299	002372				CDRKL:
   1300	002372					INHIB$				;;; DISABLE COMIOP INTERRUPTS           ;**-2
   1301	002404	005765 	000044 			TST	CTRA1(R5)		;;; IF A                                ;AP0013
   1302	002410	001003 				BNE	10$			;;; RECEIVE BUFFER                      ;AP0013
   1303	002412	005765 	000054 			TST	CTRA2(R5)		;;; IS NOT ASSIGNED                     ;AP0013
   1304	002416	001415 				BEQ	CDKRD			;;; THEN RETURN SUCCESS.                ;AP0013
   1305					                                                                                ;AP0013
   1306	002420	112764 	000024 	000012 	10$:	MOVB	#CD.RBA!CQ.AR2,C.STS(R4) ;;; SET TO RECEIVE KILL                ;AP0013
   1307	002426	052765 	000002 	000004 		BIS	#CT.RKL,CTFLG(R5)	;;; RECEIVE KILL IN PROGRESS
   1308
   1309	002434				CDKXT:
   1310	002434					CALL	INSIQB			;;; QUEUE UP THE INTERRUPT
   1311	002440					ENABL$				;;; ENABLE COMIOP INTERRUPTS
   1312
   1313	002444				CDKX2:
   1314	002444					POP	R1		; RESTORE R1
   1315	002446	000261 				SEC			; RETURN IS ASYNCHRONOUS
   1316	002450					RETURN
   1317					                                                                                ;AP0013
   1318	002452	052765 	010000 	000004 	CDKRD:	BIS	#CS.RSN,CTFLG(R5)	;;; SET 'RE-SYNCH' FLAG FOR NEXT TIME   ;AP0013
   1319	002460				CDKXD:	ENABL$				;;; RE-ENABLE INTERRUPTS                ;AP0013
   1320	002464					CALL	CDKCP			; KILL COMPLETE RIGHT AWAY              ;AP0014
   1321	002470	000765 				BR	CDKX2			; FINISH UP.                            ;AP0013
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 30
CDXKL  --  TRANSMIT KILL-I/O

   1323						.SBTTL	CDXKL  --  TRANSMIT KILL-I/O
   1324					;+
   1325					; FUNCTION:
   1326					;
   1327					;	'CDXKL' WILL CHECK FOR ANY ACTIVE TRANSMIT CCB'S ON THE
   1328					;	THE SPECIFIED DUP-11 LINE. IF NONE, THE KILL-I/O IS RE-
   1329					;	TURNED WITH AN IMMEDIATE COMPLETION. OTHERWISE THE KILL
   1330					;	CCB IS USED TO REQUEST AN INPUT INTERRUPT, AND THE CCB
   1331					;	IS SET TO PERFORM A TRANSMIT KILL TO THE KMC-11.
   1332					;
   1333					; ON ENTRY:
   1334					;
   1335					;	R1 = KMC-11 LINE TABLE ADDRESS
   1336					;	R4 = ADDRESS OF KILL-I/O ENABLE CCB
   1337					;	R5 = DUP-11 LINE TABLE ADDRESS
   1338					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1339					;
   1340					; ON EXIT:
   1341					;
   1342					;	R3,R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1343					;-
   1344
   1345					;---------------------------------------------------------------;
   1346					;	T R A N S M I T    K I L L - I / O    E N A B L E	;
   1347					;---------------------------------------------------------------;
   1348	002472				CDXKL:
   1349	002472					INHIB$			;;; DISABLE COMIOP INTERRUPTS
   1350	002504				CDXK1:                                                                          ;AP0013
   1351	002504	005765 	000024 			TST	CTTA1(R5)	;;; ANY ACTIVE TRANSMITS ?
   1352	002510	001003 				BNE	20$		;;; YES - TELL KMC-11 TO KILL
   1353	002512	005765 	000034 			TST	CTTA2(R5)	;;; CHECK BOTH DESCRIPTOR SLOTS
   1354	002516	001760 				BEQ	CDKXD		;;; NOTHING TO DO - DO KILL COMPLETE            ;AP0013
   1355					                                                                                ;**-6
   1356	002520	112764 	000020 	000012 	20$:	MOVB	#CD.TBA!CQ.AR2,C.STS(R4) ;;; TRANSMIT KILL
   1357	002526	052765 	000001 	000004 		BIS	#CT.XKL,CTFLG(R5)	 ;;; XMT KILL IN PROGRESS
   1358	002534	000737 				BR	CDKXT			 ;;; REQUEST INTRPT AND EXIT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 31
CDTMO  --  TIME-OUT ENTRY

   1360						.SBTTL	CDTMO  --  TIME-OUT ENTRY
   1361					;+
   1362					; FUNCTION:
   1363					;
   1364					;	WHENEVER A TRANSMIT BUFFER ADDRESS IN IS PERFORMED, A FIVE
   1365					;	SECOND TIMER IS SET IN THE DUP-11 LINE TABLE. IF NO RESP-
   1366					;	ONSE IS RECEIVED, THE TIMER WILL EXPIRE AND ENTER HERE. IF
   1367					;	THERE ARE ACTIVE TRANSMIT REQUESTS, AND A TRANSMIT KILL IS
   1368					;	NOT IN PROGRESS, A TRANSMIT KILL IS INITIATED. IF A CCB IS
   1369					;	NOT AVAILABLE, A ONE-SECOND TIMER IS SET FOR A RETRY.
   1370					;
   1371					; ON ENTRY:
   1372					;
   1373					;	R5 = DUP-11 LINE TABLE ADDRESS
   1374					;
   1375					; ON EXIT:
   1376					;
   1377					;	R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1378					;-
   1379
   1380					;---------------------------------------------------------------;
   1381					;	T R A N S M I T    T I M E - O U T    E N T R Y		;
   1382					;---------------------------------------------------------------;
   1383	002536				CDTMO:
   1384	002536					PUSH	R1		; SAVE R1 AT ENTRY
   1385	002540					CALL	CLTA		; LOCATE THE KMC-11 LINE TABLE
   1386
   1387	002544					INHIB$			;;; DISABLE INTERRUPTS
   1388	002556	005765 	000024 			TST	CTTA1(R5)	;;; CHECK FOR ACTIVE TRANSMIT'S
   1389	002562	001003 				BNE	20$		;;; YES - SCHEDULE TRANSMIT KILL
   1390	002564	005765 	000034 			TST	CTTA2(R5)	;;; CHECK BOTH DESCRIPTORS
   1391	002570	001433 				BEQ	60$		;;; NO -- LEAVE TIMER ZERO + EXIT
   1392
   1393	002572	032765 	000001 	000004 	20$:	BIT	#CT.XKL,CTFLG(R5) ;;; TRANSMIT KILL ALREADY ACTIVE ?
   1394	002600	001027 				BNE	60$		  ;;; YES - RE-ENABLE AND EXIT
   1395	002602					CALL	$CCBGT		  ;;; TRY TO GET A CCB
   1396	002606	103423 				BCS	40$		  ;;; FAILED - WAIT A SECOND AND RETRY
   1397	002610	052765 	000001 	000004 		BIS	#CT.XKL,CTFLG(R5) ;;; TRANSMIT KILL IN PROGRESS
   1398	002616					PUSH	R4		  ;;; SAVE CCB START ADDRESS
   1399
   1400	002620	062704 	000006 			ADD	#C.LIN,R4	;;; POINT TO LINE-NUMBER SLOT
   1401	002624	116524 	000007 			MOVB	CTSLN(R5),(R4)+	;;; SET THE SYSTEM LINE NUMBER
   1402	002630	105024 				CLRB	(R4)+		;;; CLEAR THE STATION ADDRESS
   1403	002632	012724 	000010 			MOV	#FC.TIM,(R4)+	;;; SET FUNCTION = TIME-OUT
   1404	002636	112724 	000020 			MOVB	#CD.TBA!CQ.AR2,(R4)+ ;;; FLAGS = TRANSMIT KILL-I/O              ;AP0013
   1405	002642	116514 	000006 			MOVB	CTDUP(R5),(R4)	;;; DUP UNIT NUMBER TO C.STS+1                  ;**-1
   1406	002646					POP	R4		;;; RECOVER CCB START ADDRESS
   1407	002650					CALL	INSIQT		;;; INSERT CCB AT TOP OF QUEUE
   1408	002654	000401 				BR	60$		;;; RE-ENABLE AND EXIT
   1409
   1410	002656	105215 			40$:	INCB	(R5)		;;; SET A ONE SECOND TIMER FOR RETRY            ;AP0009
   1411					                                                                                ;**-1
   1412	002660				60$:	ENABL$			;;; RE-ENABLE INTERRUPTS
   1413	002664					POP	R1		; RECOVER SAVED R1
   1414	002666					RETURN			; RETURN TO THE COMM/EXEC
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 32
CDCTL  --  CONTROL ENABLE ENTRY

   1416						.SBTTL	CDCTL  --  CONTROL ENABLE ENTRY
   1417					;+
   1418					; FUNCTION:
   1419					;
   1420					;	'CDCTL' IS ENTERED WHEN THE DLC PROCESS HAS REQUESTED A
   1421					;	CONTROL FUNCTION FOR ONE OF THE DUP-11 LINES. THE REQUEST
   1422					;	IS DISPATCHED ACCORDING TO THE FUNCTION MODIFIER IN C.MOD
   1423					;
   1424					; ON ENTRY:
   1425					;
   1426					;	R3 = FUNCTION MODIFIER CODE
   1427					;	R4 = ADDRESS OF CONTROL ENABLE CCB,
   1428					;	     OR OPTIONAL CALLING PARAMETER (TYPE DEPENDENT)
   1429					;	R5 = DUP-11 LINE TABLE ADDRESS
   1430					;
   1431					; ON EXIT:	(VIA DISPATCH TABLE 'CTLTAB')
   1432					;
   1433					;	R1 = KMC-11 LINE TABLE ADDRESS
   1434					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1435					;	R4,R5 UNMODIFIED
   1436					;-
   1437
   1438					;---------------------------------------------------------------;
   1439					;	    C O N T R O L    E N A B L E    E N T R Y		;
   1440					;---------------------------------------------------------------;
   1441	002670				CDCTL:
   1442	002670					PUSH	R1		; SAVE R1 FOR EVERYBODY
   1443	002672					CALL	CLTA		; KMC-11 LINE TABLE ADDRESS TO R1
   1444	002676	000173 	000164'			JMP	@CTLTAB(R3)	; DISPATCH TO APPROPRIATE ROUTINE
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 33
CDSTR  --  START A DUP-11 LINE

   1446						.SBTTL	CDSTR  --  START A DUP-11 LINE
   1447					;+
   1448					; FUNCTION:
   1449					;
   1450					;	THE SPECIFIED DUP-11 LINE IS STARTED BY ASSIGNING RECEIVE
   1451					;	BUFFERS AND SETTING THE 'CT.STR' FLAG, ALLOWING TRANSMIT
   1452					;	BUFFER ASSIGNMENTS.  AN 'ENABLE LINE' FUNCTION MUST HAVE
   1453					;	PERFORMED PRIOR TO THE 'START LINE'.
   1454					;
   1455					; ON ENTRY:
   1456					;
   1457					;	R1 = KMC-11 LINE TABLE ADDRESS
   1458					;	R4 = ADDRESS OF CONTROL ENABLE CCB
   1459					;	R5 = DUP-11 LINE TABLE ADDRESS
   1460					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1461					;
   1462					; ON EXIT:
   1463					;
   1464					;	R3 DESTROYED, OTHER REGISTERS PRESERVED.
   1465					;-
   1466
   1467					;---------------------------------------------------------------;
   1468					;	    S T A R T    A    D U P - 1 1    L I N E		;
   1469					;---------------------------------------------------------------;
   1470	002702				CDSTR:
   1471	002702	032765 	000400 	000016 		BIT	#CD.ENB,CTCTL(R5)	; HAS THE LINE BEEN ENABLED ?
   1472	002710	001421 				BEQ	20$			; NO -- REJECT THE 'START'
   1473	002712	052765 	000040 	000004 		BIS	#CT.STR,CTFLG(R5)	; TELL EVERYONE WE ARE STARTING
   1474	002720					PUSH	R4
   1475
   1476	002722					INHIB$			;;; DISABLE COMIOP INTERRUPTS
   1477	002734					CALL	RCVGET		;;; ASSIGN A NEW RECEIVE BUFFER
   1478	002740					CALL	RCVGET		;;; MAKE THAT TWO
   1479	002744					ENABL$			;;; ENABLE COMIOP INTERRUPTS
   1480	002750					POP	R4
   1481	002752	000432 				BR	CDSXT		; RESTORE R1, SYNCHRONOUS COMPLETION
   1482
   1483	002754	012703 	100040 		20$:	MOV	#CS.ERR!CS.DIS,R3 ; START REJECT, LINE DISABLED
   1484	002760	000430 				BR	CDSX2		  ; RETURN SYNCHRONOUS COMPLETION
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 34
CDSTP  --  STOP A DUP-11 LINE

   1486						.SBTTL	CDSTP  --  STOP A DUP-11 LINE
   1487					;+
   1488					; FUNCTION:
   1489					;
   1490					;	THE 'STOP LINE' FUNCTION WILL PERFORM A RECEIVE AND
   1491					;	TRANSMIT KILL-I/O FUNCTION AND TURN OFF THE 'STARTED'
   1492					;	FLAG TO PREVENT FURTHER BUFFER ASSIGNMENTS. THE LINE
   1493					;	IS NOT DISABLED.
   1494					;
   1495					; ON ENTRY:
   1496					;
   1497					;	R1 = KMC-11 LINE TABLE ADDRESS
   1498					;	R4 = ADDRESS OF CONTROL ENABLE CCB
   1499					;	R5 = DUP-11 LINE TABLE ADDRESS
   1500					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1501					;
   1502					; ON EXIT:
   1503					;
   1504					;	R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1505					;-
   1506
   1507					;---------------------------------------------------------------;
   1508					;	     S T O P    A    D U P - 1 1    L I N E		;
   1509					;---------------------------------------------------------------;
   1510	002762				CDSTP:
   1511	002762	105015 				CLRB	(R5)		; MAKE SURE TIMER IS STOPPED                    ;AP0009
   1512	002764	032765 	000040 	000004 		BIT	#CT.STR,CTFLG(R5)	; ARE WE STARTED?                       ;**-1
   1513	002772	001422 				BEQ	CDSXT			; NO -- IMMEDIATE COMPLETION
   1514	002774	042765 	000040 	000004 		BIC	#CT.STR,CTFLG(R5)	; YES - BUT NOT FOR LONG
   1515
   1516	003002					PUSH	R4			; SAVE ADDRESS OF CONTROL CCB
   1517	003004	005004 				CLR	R4			; ZERO OUT R4
   1518	003006	156504 	000007 			BISB	CTSLN(R5),R4		; GET THE SYSTEM LINE NUMBER
   1519	003012					CALL	$RDBQP			; PURGE THE BUFFER WAIT QUEUE
   1520	003016					POP	R4			; RECOVER R4
   1521	003020	112764 	000040 	000012 		MOVB	#CQ.AR3,C.STS(R4)	; SET 'STOP' FLAG, CLEAR CQ.COM
   1522	003026	116564 	000006 	000013 		MOVB	CTDUP(R5),C.STS+1(R4)	; SET DUP NUM. IN CCB
   1523	003034	000167 	177230 			JMP	CMKIL			; KILL TRANSMIT AND RECEIVE
   1524
   1525	003040				CDSXT:
   1526	003040	005003 				CLR	R3		; STATUS = GOOD, CLEAR CARRY
   1527	003042				CDSX2:
   1528	003042					POP	R1		; RESTORE R1 SAVED AT ENTRY
   1529	003044					RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 35
CDENB  --  ENABLE DUP-11 LINE PRIOR TO START

   1531						.SBTTL	CDENB  --  ENABLE DUP-11 LINE PRIOR TO START
   1532					;+
   1533					; FUNCTION:
   1534					;
   1535					;	THE 'ENABLE LINE' FUNCTION MUST BE PERFORMED BEFORE A LINE
   1536					;	CAN BE EITHER STARTED OR USED FOR XMT/RCV FUNCTIONS. ONLY
   1537					;	GET/SET CHARACTERISTICS AND MODEM SENSE OPERATIONS CAN BE
   1538					;	PROCESSED PRIOR TO ENABLING. IF NECESSARY, THE KMC-11 WILL
   1539					;	BE INITIALIZED, THEN THE LINE PARAMETER WORD ('CTCTL') IS
   1540					;	SETUP FOR A CONTROL-IN OPERATION. IF THE CSR-BASE-ADDR-IN
   1541					;	HAS NOT BEEN DONE, IT IS SCHEDULED PRIOR TO THE CONTROL-IN
   1542					;
   1543					; ON ENTRY:
   1544					;
   1545					;	R1 = KMC-11 LINE TABLE ADDRESS
   1546					;	R4 = ADDRESS OF CONTROL ENABLE CCB
   1547					;	R5 = DUP-11 LINE TABLE ADDRESS
   1548					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1549					;
   1550					; ON EXIT:
   1551					;
   1552					;	R2,R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1553					;-
   1554
   1555					;---------------------------------------------------------------;
   1556					;	    E N A B L E    A    D U P - 1 1    L I N E		;
   1557					;---------------------------------------------------------------;
   1558	003046				CDENB:
   1559	003046	005761 	000042 			TST	CMSWT(R1)	; IS THE KMC-11 INITIALIZED ?
   1560	003052	100420 				BMI	40$		; YES -- JUST ENABLE THE DUP-11
   1561
   1562	003054	016102 	000040 			MOV	CMCSR(R1),R2	; POINT R2 AT THE INPUT CSR
   1563	003060	052712 	040000 			BIS	#CD.MCL,(R2)	; MASTER CLEAR THE KMC-11
   1564
   1565	003064	112762 	000377 	000002 		MOVB	#377,2(R2)	; PUT A NON-ZERO IN CSR [BSEL 2]
   1566	003072	012722 	100000 			MOV	#CD.RUN,(R2)+	; SET THE KMC-11 TO 'RUN' STATE
   1567	003076	105712 			20$:	TSTB	(R2)		; HAS THE CLEAR COMPLETED YET ?
   1568	003100	001376 				BNE	20$		; NO -- LOOP AND WAIT FOR IT
   1569
   1570	003102	052742 	000021 			BIS	#CD.IEI!CD.IEO,-(R2)	; ALLOW INTERRUPTS	**RHR 31AUG77
   1571	003106	012761 	100000 	000042 		MOV	#CM.INI,CMSWT(R1)	; KMC-11 NOW INITIALIZED
   1572
   1573	003114				40$:	CALL	SETCHR		  ; SET 'CTCTL' WORD FROM 'CTCHR'
   1574	003120	042765 	001000 	000004 		BIC	#CT.DRU,CTFLG(R5) ; THE NEXT DSR CHANGE IS NOT UNEXPECTED       ;AP0016
   1575	003126	112764 	000001 	000012 		MOVB	#CD.CTL,C.STS(R4) ; SET CODE FOR A CONTROL-IN
   1576	003134	032765 	000020 	000004 		BIT	#CT.BAS,CTFLG(R5) ; HAS A BASE-IN BEEN DONE?
   1577	003142	001023 				BNE	CDCXT		  ; YES - CONTROL IS ENOUGH
   1578	003144	112764 	000003 	000012 		MOVB	#CD.BAS,C.STS(R4) ; SET CODE FOR BASE-IN FIRST
   1579	003152	000417 				BR	CDCXT		  ; REQUEST INTERRUPT AND EXIT
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 36
CDDIS  --  DISABLE DUP-11 LINE AFTER STOP

   1581						.SBTTL	CDDIS  --  DISABLE DUP-11 LINE AFTER STOP
   1582					;+
   1583					; FUNCTION:
   1584					;
   1585					;	THE 'DISABLE LINE' FUNCTION WILL SCHEDULE A CONTROL-IN
   1586					;	FOR THE SPECIFIED DUP-11 TO CLEAR THE 'CD.ENB' CSR BIT,
   1587					;	CAUSING THE KMC-11 TO DROP DATA-TERMINAL-READY.
   1588					;
   1589					; ON ENTRY:
   1590					;
   1591					;	R1 = KMC-11 LINE TABLE ADDRESS
   1592					;	R4 = ADDRESS OF CONTROL ENABLE CCB
   1593					;	R5 = DUP-11 LINE TABLE ADDRESS
   1594					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1595					;
   1596					; ON EXIT:
   1597					;
   1598					;	R3,R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1599					;-
   1600
   1601					;---------------------------------------------------------------;
   1602					;	  D I S A B L E    A    D U P - 1 1    L I N E		;
   1603					;---------------------------------------------------------------;
   1604						.ENABL	LSB
   1605	003154				CDDIS:
   1606	003154	005003 				CLR	R3			; SET STATUS AND CLEAR CARRY
   1607	003156	032765 	000400 	000016 		BIT	#CD.ENB,CTCTL(R5)	; IS THE LINE ENABLED ?
   1608	003164	001427 				BEQ	40$			; NO -- JUST POST COMPLETE
   1609	003166	032765 	000040 	000004 		BIT	#CT.STR,CTFLG(R5)	; IS THE LINE STOPPED ?
   1610	003174	001403 				BEQ	20$			; YES - THAT'S REQUIRED
   1611	003176	012703 	100020 			MOV	#CS.ERR!CS.ENB,R3	; NO -- REJECT THE DISABLE
   1612	003202	000420 				BR	40$			; POST IMMEDIATE COMPLETION
   1613
   1614	003204	112764 	000011 	000012 	20$:	MOVB	#CD.CTL+CQ.AR1,C.STS(R4) ; CONTROL IN, DISABLE STYLE
   1615
   1616	003212				CDCXT:
   1617	003212	116564 	000006 	000013 		MOVB	CTDUP(R5),C.STS+1(R4)	; SET DUP NUM. IN CCB
   1618	003220					INHIB$			;;; DISABLE
   1619	003232					CALL	INSIQB		;;; SCHEDULE THE INTERRUPT
   1620	003236					ENABL$			;;; ENABLE
   1621
   1622	003242	000261 				SEC			; COMPLETION IS ASYNCHRONOUS
   1623	003244				40$:	POP	R1		; RECOVER SAVED R1
   1624	003246					RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 37
CDMSN  --  SENSE MODEM STATUS

   1626						.SBTTL	CDMSN  --  SENSE MODEM STATUS
   1627					;+
   1628					; FUNCTION:
   1629					;
   1630					;	'MODEM SENSE' IS ENTERED WITHOUT A CONTROL CCB, IN ORDER
   1631					;	TO POLL THE MODEM STATUS BITS IN THE DUP-11 CSR.  MODEM
   1632					;	STATUS IS REPORTED VIA FLAG BITS RETURNED IN R4.
   1633					;
   1634					; ON ENTRY:
   1635					;
   1636					;	R1 = KMC-11 LINE TABLE ADDRESS
   1637					;	R5 = DUP-11 LINE TABLE ADDRESS
   1638					;      (SP)= SAVED VALUE OF R1 AT ENTRY
   1639					;
   1640					; ON EXIT:
   1641					;
   1642					;	R4 = MODEM STATUS IN MODEM CONTROLLER FORMAT
   1643					;	R2 DESTROYED, OTHER REGISTERS PRESERVED.
   1644					;-
   1645
   1646					;---------------------------------------------------------------;
   1647					;	     S E N S E    M O D E M    S T A T U S		;
   1648					;---------------------------------------------------------------;
   1649	003250				CDMSN:
   1650	003250	016502 	000002 			MOV	CTCSR(R5),R2	; GET THE DUP-11 CSR ADDRESS
   1651	003254	005004 				CLR	R4		; CLEAR RESULT REGISTER + CARRY BIT
   1652
   1653	003256	032712 	040000 			BIT	#DU.RNG,(R2)	; IS THE PHONE RINGING ?
   1654	003262	001402 				BEQ	60$		; NO --
   1655	003264	052704 	000004 			BIS	#MC.RNG,R4	; RING INDICATOR IS ON
   1656
   1657	003270	032712 	010000 		60$:	BIT	#DU.CAR,(R2)	; IS CARRIER UP ?
   1658	003274	001402 				BEQ	80$		; NO --
   1659	003276	052704 	000001 			BIS	#MC.CAR,R4	; CARRIER IS UP
   1660
   1661	003302	032712 	001000 		80$:	BIT	#DU.DSR,(R2)	; IS THE DATA SET READY ?
   1662	003306	001756 				BEQ	40$		; NO -- POST COMPLETE
   1663	003310	052704 	000002 			BIS	#MC.DSR,R4	; DATA SET IS READY
   1664	003314	000753 				BR	40$		; POST COMPLETE - CARRY IS CLEAR
   1665						.DSABL	LSB
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 38
SETCHR --  SET LINE CONTROL WORD FROM CHARACTERISTICS

   1667						.SBTTL	SETCHR --  SET LINE CONTROL WORD FROM CHARACTERISTICS
   1668					;+
   1669					; FUNCTION:
   1670					;
   1671					;	'SETCHR' INTERPRETS THE LINE CHARACTERISTICS STORED IN
   1672					;	THE 'CTCHR' WORD OF A DUP-11 LINE TABLE AND SETS UP THE
   1673					;	'CTCTL' WORD FOR A CONTROL-IN OPERATION TO THE KMC-11.
   1674					;
   1675					; ON ENTRY:
   1676					;
   1677					;	R5 = DUP-11 LINE TABLE ADDRESS
   1678					;
   1679					; ON EXIT:
   1680					;
   1681					;	R2,R3 DESTROYED, OTHER REGISTERS PRESERVED.
   1682					;-
   1683
   1684					;---------------------------------------------------------------;
   1685					;    S E T    ' C T C T L '    F O R    C O N T R O L  -  I N	;
   1686					;---------------------------------------------------------------;
   1687	003316				SETCHR:
   1688	003316	010502 				MOV	R5,R2		; COPY LINE TABLE START TO R2
   1689	003320	010503 				MOV	R5,R3		; . . .AND TO R3
   1690	003322	062702 	000012 			ADD	#CTCHR+2,R2	; R2 = ADDRESS OF CHARACTERISTICS WORD #1
   1691	003326	062703 	000016 			ADD	#CTCTL,R3	; R3 = ADDRESS OF THE CONTROL WORD
   1692
   1693					;**** NOTE- STATION ADDRESS CHECKING DISABLED FOR SLAVE MODE ******
   1694
   1695					;	BIT	#DC.ADR,(R2)	; 16-BIT SECONDARY-STATION ADDRESS ?
   1696					;	BEQ	20$		; NO -- 8-BIT ADDRESS, IF ANY
   1697					;	SWAB	(R3)		; GIVE MOST-SIGNIFICANT BYTE TO KMC-11
   1698					;	BIC	#DC.ADR,(R2)	; ADDRESS-SIZE NO LONGER SIGNIFICANT
   1699
   1700					;20$:	BIT	#DC.SEC,(R2)	; MULTI-POINT SECONDARY STATION ?
   1701					;	BEQ	40$		; NO -- SET THE ADDRESS BYTE ZERO
   1702					;	MOVB	#<CD.ENB!CD.SEC>/400,1(R3) ; SET HIGH-BYTE FLAGS
   1703					;	BR	60$
   1704	003332	012713 	000400 		40$:	MOV	#CD.ENB,(R3)	; SET 'ENABLED' FLAG, CLEAR ADDRESS BYTE
   1705
   1706	003336	011246 			60$:	MOV	(R2),-(SP)	; CHARACTERISTICS WORD TO THE STACK
   1707	003340	042716 	177770 			BIC	#^C<DC.PRT>,(SP) ;ISOLATE PROTOCOL SELECTION FIELD
   1708	003344	022627 	000001 			CMP	(SP)+,#DC.DEC	; SELECTION = DDCMP OR SDLC ?
   1709	003350	001002 				BNE	80$		; SDLC -- NO CONTROL BITS TO BE SET
   1710	003352	052713 	100000 			BIS	#CD.DEC,(R3)	; DDCMP - SET THE 'DEC-MODE' FLAG
   1711
   1712	003356	114200 			80$:	MOVB	-(R2),R0	; PICK UP TRANSMIT SPEED                        ;AP0009
   1713	003360	042700 	177760 			BIC	#^C<17>,R0	; ISOLATE IT                                    ;AP0009
   1714	003364	116065 	000312'	000065 		MOVB	LOPOL(R0),CTITM+1(R5) ; SET INITIAL POLLING RATE                ;AP0009
   1715	003372	112765 	000004 	000064 		MOVB	#POLTHR,CTITM(R5) ; AND OVER/UNDER-RUN THRESHOLD.               ;AP0009
   1716	003400	132742 	000001 			BITB	#DC.HDX,-(R2)	; HALF-DUPLEX OPERATION ?                       ;AP0009
   1717	003404	001402 				BEQ	100$		; NO -- CONTROL WORD IS ALL SET                 ;**-1
   1718	003406	052713 	020000 			BIS	#CD.DUP,(R3)	; TELL THE KMC-11 TO RUN HALF-DUPLEX
   1719	003412				100$:	RETURN			; RETURN WITH 'CTCTL' INITIALIZED
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 39
POLCHK --  CHECK IF POLLING RATE SHOULD BE ADJUSTED

   1721						.SBTTL	POLCHK --  CHECK IF POLLING RATE SHOULD BE ADJUSTED             ;AP0009
   1722					;+                                                                              ;AP0009
   1723					; FUNCTION:                                                                     ;AP0009
   1724					;                                                                               ;AP0009
   1725					;	THE RATE AT WHICH THE KMC POLLS THE DUP FOR ACTIVITY IS INITIALLY       ;AP0009
   1726					;	SET TO BE THE SLOWEST SO AS TO KEEP THE UNIBUS ACTIVITY TO A            ;AP0009
   1727					;	MINIMUM.  IF OVERRUNS OR UNDERRUNS OCCUR WITH ANY FREQUENCE, THEN       ;AP0009
   1728					;	THE RATE SHOULD BE ADJUSTED TO KEEP UP WITH THE DUP.                    ;AP0009
   1729					;	THIS ROUTINE IS CALLED WHENEVER A OVER OR UNDER-RUN IS DETECTED         ;AP0009
   1730					;	AND INITIATES AND ADJUSTMENT IF TOO MANY ERRORS HAVE OCCURRED.          ;AP0009
   1731					;	IF WE HIT THE HIGH POLLING LIMIT FOR THE SPEED, NO FURTHER ADJUSTMENT   ;AP0009
   1732					;	IS MADE, AND THE THRESHOLD IS LEFT TO DRIFT.                            ;AP0009
   1733					;                                                                               ;AP0009
   1734					; ON ENTRY:                                                                     ;AP0009
   1735					;                                                                               ;AP0009
   1736					;	R1 = KMC-11 LINE TABLE ADDRESS                                          ;AP0009
   1737					;	R5 = DUP-11 LINE TABLE ADDRESS                                          ;AP0009
   1738					;-                                                                              ;AP0009
   1739					                                                                                ;AP0009
   1740					;---------------------------------------------------------------;               ;AP0009
   1741					;	C H E C K   P O L L I N G   A N D   A D J U S T		;               ;AP0009
   1742					;---------------------------------------------------------------;               ;AP0009
   1743	003414				POLCHK:                                                                         ;AP0009
   1744	003414	105365 	000064 			DECB	CTITM(R5)	;; COUNT THIS ERROR                             ;AP0009
   1745	003420	001044 				BNE	90$		;; AND IF TOO MANY                              ;AP0009
   1746	003422	010446 				MOV	R4,-(SP)	;; SAVE R4                                      ;AP0009
   1747	003424	116504 	000011 			MOVB	CTCHR+1(R5),R4	;; GET TRANSMIT SPEED                           ;AP0009
   1748	003430	042704 	177760 			BIC	#^C<17>,R4	;; ISOLATE IT                                   ;AP0009
   1749	003434	126465 	000272'	000065 		CMPB	HIPOL(R4),CTITM+1(R5) ;; AND IF WE HIT THE LIMIT                ;AP0009
   1750	003442	001432 				BEQ	80$		;; DON'T WANT TO BE CAUGHT SPEEDING...          ;AP0009
   1751	003444					CALL	$CCBGT		;; GET A CCB                                    ;AP0009
   1752	003450	103003 				BCC	10$		;; IF WE CAN'T GET ONE                          ;AP0009
   1753	003452	105265 	000064 			INCB	CTITM(R5)	;; THEN BUMP THE COUNT BACK UP                  ;AP0009
   1754	003456	000424 				BR	80$		;; AND WAIT THIS ONE OUT.                       ;AP0009
   1755	003460	005064 	000010 		10$:	CLR	C.FNC(R4)	;; NO FUNCTION                                  ;AP0009
   1756	003464	112764 	000001 	000012 		MOVB	#CD.CTL,C.STS(R4) ;; CONTROL-IN IS REAL FUNCTION                ;AP0009
   1757	003472	116564 	000006 	000013 		MOVB	CTDUP(R5),C.STS+1(R4) ;; ON THIS DUP.                           ;AP0009
   1758	003500	062765 	177404 	000064 		ADD	#<-1*400+POLTHR>,CTITM(R5) ;; BUMP RATE AND SET THRESHOLD.      ;AP0009
   1759					                                                                                ;AP0009
   1760	003506					INHIB$			;;; DISABLE INTERRUPTS                          ;AP0009
   1761	003520					CALL	INSIQB		;;; SCHEDULE AN INTERRUPT                       ;AP0009
   1762	003524					ENABL$			;;; DROP PRIORITY BACK DOWN                     ;AP0009
   1763					                                                                                ;AP0009
   1764	003530	012604 			80$:	MOV	(SP)+,R4	;; RESTORE R4                                   ;AP0009
   1765	003532				90$:	RETURN			;; AND GO AWAY.                                 ;AP0009
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 40
TRNASN --  ASSIGN BUFFER(S) TO BE TRANSMITTED

   1767						.SBTTL	TRNASN --  ASSIGN BUFFER(S) TO BE TRANSMITTED
   1768					;+
   1769					; FUNCTION:
   1770					;
   1771					;	THIS ROUTINE WILL ATTEMPT TO ASSIGN TRANSMIT CCB'S TO ONE
   1772					;	OR BOTH OF THE TRANSMIT BUFFER DESCRIPTORS, DEPENDING ON
   1773					;	DESCRIPTOR AVAILABILITY. IF FREE, THE DESCRIPTOR IS INIT-
   1774					;	IALIZED WITH THE BUFFER ADDRESS, BYTE COUNT, AND FLAGS AS
   1775					;	SET IN THE TRANSMIT CCB, THE CCB ADDRESS IS USED TO MARK
   1776					;	THE DESCRIPTOR IN USE, AND AN INPUT INTERRUPT IS REQUESTED.
   1777					;
   1778					; ON ENTRY:
   1779					;
   1780					;	R1 = KMC-11 LINE TABLE ADDRESS
   1781					;	R5 = DUP-11 LINE TABLE ADDRESS
   1782					;	     INTERRUPTS ARE DISABLED
   1783					;
   1784					; ON EXIT:
   1785					;
   1786					;	R4 DESTROYED, OTHER REGISTERS PRESERVED.
   1787					;-
   1788
   1789					;---------------------------------------------------------------;
   1790					;	A S S I G N    T R A N S M I T    B U F F E R S		;
   1791					;---------------------------------------------------------------;
   1792	003534				TRNASN:
   1793	003534	032765 	000001 	000004 		BIT	#CT.XKL,CTFLG(R5) ;;; IS A TRANSMIT KILL IN PROGRESS ?
   1794	003542	001057 				BNE	100$		  ;;; YES - NO ASSIGNS NOW
   1795	003544					PUSH	<R0,R2>		  ;;; SAVE WORK REGISTERS
   1796	003550	012702 	000002 			MOV	#2,R2		  ;;; LOOP LIMIT = TWO DESCRIPTORS
   1797
   1798	003554				20$:	$DEQ	R5,CTITQ,,80$	;;; TAKE FIRST INACTIVE CCB, IF ANY
   1799	003604	010500 				MOV	R5,R0		;;; COPY LINE TABLE ADDRESS TO R0
   1800	003606	062700 	000024 			ADD	#CTTA1,R0	;;; POINT TO FIRST ACTIVE CCB SLOT
   1801	003612	005710 				TST	(R0)		;;; IS DESCRIPTOR #1 IN USE ?
   1802	003614	001410 				BEQ	40$		;;; NO -- SETUP AND USE IT
   1803	003616	005302 				DEC	R2		;;; ADJUST LOOP COUNTER
   1804	003620	062700 	000010 			ADD	#CTTA2-CTTA1,R0 ;;; POINT TO SECOND ACTIVE CCB SLOT
   1805	003624	005710 				TST	(R0)		;;; IS DESCRIPTOR #2 IN USE ?
   1806	003626	001013 				BNE	60$		;;; YES - RE-QUEUE THE INACTIVE CCB
   1807	003630	052764 	000010 	000012 		BIS	#CQ.AR1,C.STS(R4) ;;; DESCRIPTOR #2 WILL BE USED
   1808	003636	010420 			40$:	MOV	R4,(R0)+	;;; SET ACTIVE CCB, DESCRIPTOR IN USE
   1809	003640					CALL	BDSET		;;; SETUP KMC-11 BUFFER DESCRIPTOR
   1810	003644					CALL	INSIQB		;;; PLACE INPUT INTERRUPT REQUEST
   1811	003650	005302 				DEC	R2		;;; SHOULD WE TRY FOR ANOTHER ASSIGN ?
   1812	003652	003340 				BGT	20$		;;; YES - ONE MORE TIME THROUGH
   1813	003654	000410 				BR	80$		;;; NO -- WE'VE DONE AS MUCH AS WE CAN
   1814
   1815	003656	016514 	000020 		60$:	MOV	CTITQ(R5),(R4)	;;; REPLACE CCB ON TOP OF THE QUEUE
   1816	003662	010465 	000020 			MOV	R4,CTITQ(R5)	;;; ...SINCE WE COULDN'T ASSIGN IT
   1817	003666	005714 				TST	(R4)		;;; WAS IT THE ONLY ONE LEFT ?
   1818	003670	001002 				BNE	80$		;;; NO -- LISTHEAD IS ALL SET
   1819	003672	010465 	000022 			MOV	R4,CTITQ+2(R5)	;;; COMPLETE THE RE-QUEUEING JOB
   1820
   1821	003676				80$:	POP	<R2,R0>		;;; RESTORE WORK REGISTERS
   1822	003702				100$:	RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 41
RCVGET --  ALLOCATE AND ASSIGN A RECEIVE BUFFER

   1824						.SBTTL	RCVGET --  ALLOCATE AND ASSIGN A RECEIVE BUFFER
   1825					;+
   1826					; FUNCTION:
   1827					;
   1828					;	WHEN ENTERED AT 'RCVGET', THIS ROUTINE WILL TRY TO ALLOCATE
   1829					;	A RECEIVE CCB AND BUFFER AND ASSIGN IT TO ONE OF THE DUP-11
   1830					;	LINES.  WHEN ENTERED AT 'RCVUSE', IT WILL INITIALIZE A CCB
   1831					;	AND BUFFER AND ASSIGN IT TO THE LINE.  IF A CCB ALLOCATION
   1832					;	ATTEMPT FAILS, A BUFFER WAIT REQUEST IS QUEUED VIA $RDBWT.
   1833					;
   1834					; ON ENTRY:
   1835					;
   1836					;	R1 = KMC-11 LINE TABLE ADDRESS
   1837					;	R4 = ADDRESS OF A RECEIVE CCB + BUFFER ('RCVUSE' ONLY)
   1838					;	R5 = DUP-11 LINE TABLE ADDRESS
   1839					;	     INTERRUPTS ARE DISABLED
   1840					;
   1841					; ON EXIT:
   1842					;
   1843					;	 R4 IS DESTROYED, OTHERS PRESERVED.
   1844					;-
   1845
   1846					;---------------------------------------------------------------;
   1847					;	A L L O C A T E    R E C E I V E    B U F F E R		;
   1848					;---------------------------------------------------------------;
   1849						.ENABL	LSB
   1850	003704				RCVGET:
   1851	003704					CALL	$RDBGT		;;; GET A RECEIVE DATA BUFFER
   1852	003710	103415 				BCS	10$		;;; BR IF WE COULDN'T
   1853
   1854	003712				RCVUSE:
   1855	003712	005014 				CLR	(R4)			;;; CLEAR THE CCB LINK WORD
   1856	003714	105064 	000007 			CLRB	C.STA(R4)		;;; CLEAR THE STATION ADDRESS
   1857	003720	116564 	000007 	000006 		MOVB	CTSLN(R5),C.LIN(R4)	;;; SET THE SYSTEM LINE NUMBER
   1858	003726	116564 	000006 	000013 		MOVB	CTDUP(R5),C.STS+1(R4)	;;; DUP-11 UNIT NUMBER TO C.STS+1       ;**-1
   1859	003734	012764 	100000 	000022 		MOV	#CF.LB,C.FLG1(R4)	;;; SET MINIMUM BUFFER FLAGS
   1860	003742	000405 				BR	RCVASN			;;; ASSIGN THE BUFFER
   1861
   1862	003744	005004 			10$:	CLR	R4		;;; ZERO OUT R4
   1863	003746	156504 	000007 			BISB	CTSLN(R5),R4	;;; SYSTEM LINE NUMBER TO R4
   1864	003752					GOTO	$RDBWT		;;; ASK FOR A BUFFER WHEN ONE IS AVAILABLE
   1865						.DSABL	LSB
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 42
RCVASN --  ASSIGN A RECEIVE DATA BUFFER

   1867						.SBTTL	RCVASN --  ASSIGN A RECEIVE DATA BUFFER
   1868					;+
   1869					; FUNCTION:
   1870					;
   1871					;	THIS ROUTINE WILL ASSIGN A RECEIVE BUFFER TO ONE OF THE
   1872					;	RECEIVE BUFFER DESCRIPTORS, INITIALIZE THE DESCRIPTOR VIA
   1873					;	THE 'BDSET' ROUTINE, AND QUEUE THE CCB FOR A RECEIVE BUF-
   1874					;	FER ADDRESS INPUT INTERRUPT. IF THE LINE IS RUNNING SDLC/
   1875					;	ADCCP SECONDARY-STATION MODE, THE BUFFER ADDRESS IS INCRE-
   1876					;	MENTED TO ALLOW FOR THE "MISSING" STATION ADDRESS BYTE.
   1877					;
   1878					; ON ENTRY:
   1879					;
   1880					;	R1 = KMC-11 LINE TABLE ADDRESS
   1881					;	R4 = ADDRESS OF RECEIVE CCB AND BUFFER
   1882					;	R5 = DUP-11 LINE TABLE ADDRESS
   1883					;	     INTERRUPTS ARE DISABLED
   1884					;
   1885					; ON EXIT:
   1886					;
   1887					;	R4 IS DESTROYED.
   1888					;-
   1889
   1890					;---------------------------------------------------------------;
   1891					;	A S S I G N    A    R E C E I V E    B U F F E R	;
   1892					;---------------------------------------------------------------;
   1893	003756				RCVASN:
   1894	003756					PUSH	R0		  ;;; SAVE A WORK REGISTER
   1895	003760	010500 				MOV	R5,R0		  ;;; COPY LINE TABLE ADDRESS TO R0
   1896	003762	112764 	000004 	000012 		MOVB	#CD.RBA,C.STS(R4) ;;; KMC-11 ACCESS CODE                        ;AP0010
   1897	003770	062700 	000044 			ADD	#CTRA1,R0	  ;;; POINT TO FIRST ACTIVE CCB SLOT
   1898
   1899	003774	005710 				TST	(R0)		  ;;; IS DESCRIPTOR #1 IN USE ?
   1900	003776	001407 				BEQ	20$		  ;;; NO -- SETUP AND USE IT
   1901	004000	062700 	000010 			ADD	#CTRA2-CTRA1,R0	  ;;; POINT TO SECOND ACTIVE CCB SLOT
   1902	004004	005710 				TST	(R0)		  ;;; IS DESCRIPTOR #2 IN USE ?
   1903	004006	001030 				BNE	80$		  ;;; YES - THAT BODES ILL FOR OUR HEALTH
   1904	004010	052764 	000010 	000012 		BIS	#CQ.AR1,C.STS(R4) ;;; DESCRIPTOR #2 WILL BE USED
   1905
   1906	004016	010420 			20$:	MOV	R4,(R0)+	  ;;; SET ACTIVE CCB, DESCRIPTOR IN USE
   1907	004020	032765 	000002 	000004 		BIT	#CT.RKL,CTFLG(R5) ;;; IS A RECEIVE KILL IN PROGRESS ?
   1908	004026	001014 				BNE	40$		  ;;; YES - 'KILL COMPLETE' WILL RE-ASSIGN
   1909
   1910	004030					CALL	BDSET		  ;;; SETUP KMC-11 BUFFER DESCRIPTOR
   1911	004034	032765 	100000 	000016 		BIT	#CD.DEC,CTCTL(R5) ;;; RUNNING DDCMP PROTOCOL MODE ?
   1912	004042	001006 				BNE	40$		  ;;; YES - NOTHING SPECIAL REQUIRED
   1913	004044	032765 	010000 	000016 		BIT	#CD.SEC,CTCTL(R5) ;;; BIT-STUFF SECONDARY MODE ?
   1914	004052	001402 				BEQ	40$		  ;;; NO -- ALSO NOTHING SPECIAL
   1915	004054	005260 	177774 			INC	-4(R0)		  ;;; LET THE DATA COME IN WORD-ALIGNED
   1916
   1917	004060				40$:	CALL	INSIQB		  ;;; REQUEST AN INPUT INTERRUPT
   1918
   1919	004064				60$:	POP	R0		  ;;; RESTORE WORK REGISTER
   1920	004066					RETURN			  ;;; RETURN TO CALLER
   1921
   1922	004070	000003 			80$:	BPT			  ;;; 'RCVASN' CALLED WITH NO FREE DESCRIPTOR
   1923	004072					CRASH			  ;;; SAY GOOD-NIGHT, DICK
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 43
INSIQB --  INSERT A CCB IN INTERRUPT QUEUE

   1925						.SBTTL	INSIQB --  INSERT A CCB IN INTERRUPT QUEUE
   1926					;+
   1927					; FUNCTION:
   1928					;
   1929					;	WHEN ENTERED AT 'INSIQB', A CCB IS ADDED TO THE END OF THE
   1930					;	INTERRUPT REQUEST QUEUE ON THE KMC-11 LINE TABLE.  ENTERED
   1931					;	AT 'INSIQT', A CCB IS ADDED AS THE FIRST ENTRY ON THE QUEUE.
   1932					;	FOR EITHER ENTRY, IF THE QUEUE WAS PREVIOUSLY EMPTY, A KMC
   1933					;	INPUT INTERRUPT IS REQUESTED.
   1934					;
   1935					; ON ENTRY:
   1936					;
   1937					;	R1 = KMC-11 LINE TABLE ADDRESS
   1938					;	R4 = ADDRESS OF INTERRUPT REQUEST CCB
   1939					;	     INTERRUPTS ARE DISABLED
   1940					;
   1941					; ON EXIT:
   1942					;
   1943					;	ALL REGISTERS ARE PRESERVED.
   1944					;-
   1945
   1946					;---------------------------------------------------------------;
   1947					;	R E Q U E S T    I N P U T    I N T E R R U P T		;
   1948					;---------------------------------------------------------------;
   1949	004074				INSIQB:
   1950	004074					$ENQ	R1,CMIQH	;;; ADD CCB TO THE INTERRUPT QUEUE
   1951	004106	005771 	000044 			TST	@CMIQH(R1)	;;; WAS THE QUEUE EMPTY BEFORE ?
   1952	004112	001003 				BNE	20$		;;; NO -- INTERRUPT REQUEST UNNECESSARY
   1953	004114	052771 	000200 	000040 		BIS	#CD.REQ,@CMCSR(R1) ;;; REQUEST AN INPUT INTERRUPT
   1954	004122				20$:	RETURN			;;; ALL DONE
   1955
   1956
   1957					;---------------------------------------------------------------;
   1958					;	R E Q U E S T    A T    T O P    O F    Q U E U E	;
   1959					;---------------------------------------------------------------;
   1960	004124				INSIQT:
   1961	004124	016114 	000044 			MOV	CMIQH(R1),(R4)	;;; LINK QUEUE TO CCB
   1962	004130	001005 				BNE	10$		;;; BR IF NOT EMPTY
   1963	004132	010461 	000046 			MOV	R4,CMIQH+2(R1)	;;; POINT END OF LIST AT CCB
   1964	004136	052771 	000200 	000040 		BIS	#CD.REQ,@CMCSR(R1) ;;; REQUEST AN INPUT INTERRUPT
   1965	004144	010461 	000044 		10$:	MOV	R4,CMIQH(R1)	;;; SET THE QUEUE HEADER
   1966	004150					RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 44
RQIRL  --  RELEASE INTERRUPT REQUEST + POP QUEUE

   1968						.SBTTL	RQIRL  --  RELEASE INTERRUPT REQUEST + POP QUEUE
   1969					;+
   1970					; FUNCTION:
   1971					;
   1972					;	THIS ROUTINE WILL RELEASE THE INPUT INTERRUPT CURRENTLY
   1973					;	IN PROCESS AND,  IF THE INTERRUPT REQUEST QUEUE IS NOT
   1974					;	EMPTY,  REQUEST ANOTHER KMC-11 INPUT INTERRUPT.
   1975					;
   1976					; ON ENTRY:
   1977					;
   1978					;	R1 = KMC-11 LINE TABLE ADDRESS
   1979					;	     INTERRUPTS ARE DISABLED
   1980					;
   1981					; ON EXIT:
   1982					;
   1983					;	ALL REGISTERS ARE PRESERVED.
   1984					;-
   1985
   1986					;---------------------------------------------------------------;
   1987					;	R E L E A S E    I N P U T    I N T E R R U P T		;
   1988					;---------------------------------------------------------------;
   1989	004152				RQIRL:
   1990	004152					PUSH	R2		;;; GET A SCRATCH REGISTER	**RHR 31AUG77
   1991	004154	016102 	000040 			MOV	CMCSR(R1),R2	;;; GET KMC-11 CSR ADDRESS	**RHR 31AUG77
   1992	004160	042762 	000020 	000002 		BIC	#CD.RDI,2(R2)	;;; CLEAR READY IN		**RHR 31AUG77
   1993	004166	005761 	000044 			TST	CMIQH(R1)	;;; NEED TO REQ. PORTS AGAIN ?	**RHR 31AUG77
   1994	004172	001402 				BEQ	20$		;;; NO -- JUST EXIT		**RHR 31AUG77
   1995
   1996	004174	052712 	000200 			BIS	#CD.REQ,(R2)	;;; REQUEST INTERRUPT
   1997	004200				20$:	POP	R2		;;; RESTORE SCRATCH REGISTER
   1998	004202					RETURN			;;; RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 45
RQIRL  --  RELEASE INTERRUPT REQUEST + POP QUEUE

   2000					    .IF DF R$$11D ! I$$AS
   2001
   2002						.SBTTL	CVTDSC --  CONVERT DESCRIPTOR ADDRESS TO 16 BITS
   2003					;+
   2004					; FUNCTION:
   2005					;
   2006					;	WHEN THE KMC-11 PRESENTS A BUFFER ADDRESS OUT OR CONTROL
   2007					;	OUT INTERRUPT, CSR [SEL 4] CONTAINS THE 18-BIT UNIBUS AD-
   2008					;	DRESS OF THE BUFFER DESCRIPTOR ACTIVE AT THE TIME OF THE
   2009					;	INTERRUPT. THIS ROUTINE CONVERTS THE 18-BIT ADDRESS TO A
   2010					;	16-BIT VIRTUAL ADDRESS FOR USE WITHIN THE DRIVER.
   2011					;
   2012					; ON ENTRY:
   2013					;
   2014					;	R2 = BITS 0-15 OF THE 18-BIT DESCRIPTOR ADDRESS
   2015					;	R5 = DUP-11 LINE TABLE ADDRESS
   2016					;
   2017					; ON EXIT:
   2018					;
   2019					;	R2 = 16-BIT VIRTUAL ADDRESS OF BUFFER DESCRIPTOR
   2020					;-
   2021
   2022					;---------------------------------------------------------------;
   2023					;     C O N V E R T    D E S C R I P T O R    A D D R E S S	;
   2024					;---------------------------------------------------------------;
   2025					CVTDSC:
   2026						PUSH	<R3,R2>		;; SAVE WORK R3, PUSH R2 VALUE
   2027						MOV	R5,R2		;; LINE TABLE BASE ADDRESS TO R5
   2028						CLR	R3		;; ZERO BIAS = USE CURRENT MAPPING
   2029						CALL	$CNV18		;; CONVERT LINE TABLE BASE TO 18-BITS
   2030						SUB	R2,(SP)		;; SUBTRACT BASE FROM DESCRIPTOR ADDR
   2031									;; (BITS 16-17 CAN BE IGNORED)
   2032						ADD	R5,(SP)		;; ADD (VIRTUAL) BASE ADDRESS
   2033						POP	<R2,R3>		;; R2 = DESCRIPTOR ADDRESS, RESTORE R3
   2034						RETURN			;; RETURN TO CALLER
   2035
   2036					    .ENDC
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 46
BDSET  --  SETUP KMC-11 BUFFER DESCRIPTOR

   2038						.SBTTL	BDSET  --  SETUP KMC-11 BUFFER DESCRIPTOR
   2039					;+
   2040					; FUNCTION:
   2041					;
   2042					;	THIS ROUTINE WILL INITIALIZE A KMC-11 BUFFER DESCRIPTOR
   2043					;	TO BE USED FOR A TRANSMIT OR RECEIVE BUFFER ASSIGNMENT.
   2044					;	THE CCB HAS PREVIOUSLY BEEN SETUP WITH THE KMC-11 FLAGS
   2045					;	IN THE HIGH-ORDER BYTE OF THE 'C.FLG1' WORD.
   2046					;
   2047					; ON ENTRY:
   2048					;
   2049					;	R0 = ADDRESS OF A THREE-WORD KMC-11 BUFFER DESCRIPTOR
   2050					;	R4 = ADDRESS OF A TRANSMIT OR RECEIVE CCB
   2051					;
   2052					; ON EXIT:
   2053					;
   2054					;	R0 = ADDRESS OF THE BUFFER DESCRIPTOR FLAGS WORD
   2055					;	ALL OTHER REGISTERS PRESERVED.
   2056					;-
   2057
   2058					;---------------------------------------------------------------;
   2059					;   S E T    K M C - 1 1    B U F F E R    D E S C R I P T O R	;
   2060					;---------------------------------------------------------------;
   2061	004204				BDSET:
   2062					    .IF NDF M$$MGE
   2063						PUSH	R4		;; SAVE THE CCB START ADDRESS
   2064						ADD	#C.BUF1+2,R4	;; POINT TO THE BUFFER ADDRESS
   2065						MOV	(R4)+,(R0)+	;; SET THE ADDRESS
   2066						MOV	(R4)+,(R0)+	;; SET THE BYTE COUNT
   2067						MOV	(R4),(R0)	;; SET THE FLAGS FROM THE CCB...
   2068						CLRB	(R0)		;; ...AND CLEAR THE HIGH-ORDER BYTE
   2069						POP	R4		;; RECOVER THE CCB ADDRESS
   2070						RETURN
   2071					    .IFF
   2072	004204					PUSH	<R2,R3,R4>	;; SAVE SOME REGISTERS
   2073	004212	062704 	000014 			ADD	#C.BUF,R4	;; POINT TO BUFFER RELOCATION BIAS
   2074	004216	012403 				MOV	(R4)+,R3	;; RELOCATION BIAS TO R3
   2075	004220	012402 				MOV	(R4)+,R2	;; VIRTUAL ADDRESS TO R2
   2076	004222					CALL	$CNV18		;; CONVERT TO AN 18 BIT ADDRESS
   2077	004226	010220 				MOV	R2,(R0)+	;; SET THE LOW ORDER ADDRESS WORD
   2078	004230	012420 				MOV	(R4)+,(R0)+	;; SET THE BYTE COUNT
   2079	004232	011410 				MOV	(R4),(R0)	;; SET THE BUFFER FLAG BITS...
   2080	004234	105020 				CLRB	(R0)+		;; ...AND CLEAR THE LOW-ORDER BYTE
   2081	004236	006303 				ASL	R3		;; SHIFT MEMORY EXTENSION BITS...
   2082	004240	006303 				ASL	R3		;; ...TWO PLACES FOR THE KMC-11
   2083	004242	150310 				BISB	R3,(R0)		;; SET THE MEMORY EXTENSION BITS
   2084	004244	005300 				DEC	R0		;; RE-ADJUST R0 POINTER
   2085
   2086	004246					POP	<R4,R3,R2>	;; RESTORE REGISTERS
   2087	004254					RETURN
   2088					    .ENDC
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 47
CLTA   --  COMPUTE KMC-11 LINE TABLE ADDRESS

   2090						.SBTTL	CLTA   --  COMPUTE KMC-11 LINE TABLE ADDRESS
   2091					;+
   2092					; ON ENTRY:
   2093					;
   2094					;	R5 = ADDRESS OF A DUP-11 LINE TABLE
   2095					;
   2096					; ON EXIT:
   2097					;
   2098					;	R1 = KMC-11 LINE TABLE ADDRESS
   2099					;	     OTHER REGISTERS PRESERVED.
   2100					;-
   2101
   2102					;---------------------------------------------------------------;
   2103					;	L O C A T E    K M C - 1 1    L I N E    T A B L E	;
   2104					;---------------------------------------------------------------;
   2105	004256				CLTA:
   2106	004256					PUSH	R5		; SAVE DUP-11 LINE TABLE ADDRESS
   2107	004260	116501 	000006 			MOVB	CTDUP(R5),R1	; GET DUP NUMBER (0-17)
   2108	004264	006301 				ASL	R1		; MAKE INTO WORD INDEX
   2109	004266	166116 	000232'			SUB	DSPTAB(R1),(SP)	; SUBTRACT DISPLACEMENT FROM DUP-11 TABLE
   2110	004272					POP	R1		; . . .TO GET KMC-11 LINE TABLE ADDRESS
   2111	004274					RETURN
   2112
   2113
   2114
   2115
   2116						.SBTTL	DLTA   --  COMPUTE DUP-11 LINE TABLE ADDRESS
   2117					;+
   2118					; ON ENTRY:
   2119					;
   2120					;	R1 = KMC-11 LINE TABLE ADDRESS
   2121					;	R5 = DUP-11 UNIT NUMBER
   2122					;
   2123					; ON EXIT:
   2124					;
   2125					;	R5 = DUP-11 LINE TABLE ADDRESS
   2126					;	     OTHER REGISTERS PRESERVED
   2127					;-
   2128
   2129					;---------------------------------------------------------------;
   2130					;	L O C A T E    D U P - 1 1    L I N E    T A B L E	;
   2131					;---------------------------------------------------------------;
   2132	004276				DLTA:
   2133	004276	006305 				ASL	R5		; MAKE DUP NUMBER INTO INDEX
   2134	004300	016505 	000232'			MOV	DSPTAB(R5),R5	; GET OFFSET TO DUP-11 TABLE
   2135	004304	060105 				ADD	R1,R5		; CONVERT TO LINE TABLE ADDRESS
   2136	004306					RETURN
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 48
EVENT LOGGING

   2138						.SBTTL	EVENT LOGGING                                                   ;BH0001
   2139					;+                                                                              ;BH0001
   2140					; ** - LOGGX                                                                    ;BH0001
   2141					;                                                                               ;BH0001
   2142					; HERE TO FIX STUFF FOR CALL TO $CMLOG.                                         ;BH0001
   2143					;                                                                               ;BH0001
   2144					; INPUTS:                                                                       ;BH0001
   2145					;	R1 = KMC11 LINE TABLE ADDRESS                                           ;BH0001
   2146					;	R5 = DUP11 LINE TABLE ADDRESS                                           ;BH0001
   2147					;	   THE REASON CODE IS PASSED ACCORDING TO                               ;BH0001
   2148					;	   WHICH ROUTINE IS CALLED, AS FOLLOWS:                                 ;BH0001
   2149					;		LOGGS:	2(SP) = REASON CODE                                     ;BH0001
   2150					;		LOGG4:	   R4 = REASON CODE                                     ;BH0001
   2151					;		LOGG3:     R3 = REASON CODE                                     ;BH0001
   2152					;                                                                               ;BH0001
   2153					; OUTPUTS:                                                                      ;BH0001
   2154					;	MESSAGE IS SENT.                                                        ;BH0001
   2155					;                                                                               ;BH0001
   2156					; SIDE EFFECTS:                                                                 ;BH0001
   2157					;	CALLING CONTEXT IS PRESERVED.                                           ;BH0001
   2158					;-                                                                              ;BH0001
   2159						.ENABL	LSB                                                             ;BH0001
   2160	004310	016646 	000002 		LOGGS:	MOV	2(SP),-(SP)	;; STACK THE REASON CODE                        ;BH0001
   2161	004314	000403 				BR	10$		;; JOIN COMMON CODE                             ;BH0001
   2162					                                                                                ;BH0001
   2163	004316	010446 			LOGG4:	MOV	R4,-(SP)	;; STACK THE REASON CODE                        ;BH0001
   2164	004320	000401 				BR	10$		;; JOIN COMMON CODE                             ;BH0001
   2165					                                                                                ;BH0001
   2166	004322	010346 			LOGG3:	MOV	R3,-(SP)	;; STACK THE REASON CODE                        ;BH0001
   2167	004324	012667 	173510 		10$:	MOV	(SP)+,PRSN	;; STASH THE ERROR CODE                         ;BH0001
   2168	004330	016567 	000014 	173500 		MOV	CTLOG(R5),PDST	;; SET LOGGING DESTINATION                      ;BH0001
   2169	004336	001427 				BEQ	20$		;; WE AREN'T ENABLED                            ;BH0001
   2170	004340	010046 				MOV	R0,-(SP)	;; SAVE R0                                      ;BH0001
   2171	004342	010146 				MOV	R1,-(SP)	;;   AND R1                                     ;BH0001
   2172	004344	116567 	000007 	173470 		MOVB	CTSLN(R5),PLIN	;; SET SYS LINE #                               ;BH0001
   2173	004352	012700 	000036'			MOV	#PDST,R0	;; POINT TO ARG BLOCK                           ;BH0001
   2174	004356					CALL	$CMLOG		;; LOG IT >>>ENTER COROUTINE                    ;BH0001
   2175	004362	103413 				BCS	15$			;; >>>$CMLOG POINTS R2 AT MSG BUFFER    ;BH0007
   2176	004364	012722 				MOV	(PC)+,(R2)+		;; >>>SET THE DATA TYPE AND             ;BH0007
   2177	004366	   001 	   020 			 .BYTE	E$DREG,16.		;; >>>  LENGTH                          ;BH0007
   2178	004370	016101 	000040 			MOV	CMCSR(R1),R1		;; >>>KMC SEL0 ADDRESS                  ;BH0004
   2179	004374					CALL	30$			;; >>>MOVE 4 REGISTERS                  ;BH0004
   2180	004400	016501 	000002 			MOV	CTCSR(R5),R1		;; >>>DUP SEL0 ADDRESS                  ;BH0004
   2181	004404					CALL	30$			;; >>>MOVE 4 REGISTERS                  ;BH0004
   2182	004410					CALL	@(SP)+		;; FINISH LOGGING >>>EXIT COROUTINE             ;BH0004
   2183	004412	012601 			15$:	MOV	(SP)+,R1	;; RESTORE THE REGISTERS                        ;BH0007
   2184	004414	012600 				MOV	(SP)+,R0	;; ...                                          ;BH0004
   2185	004416				20$:	RETURN                                                                  ;BH0004
   2186					                                                                                ;BH0004
   2187					                                                                                ;BH0004
   2188					; ROUTINE TO MOVE FOUR WORDS FROM (R1)+ TO (R2)+.                               ;BH0004
   2189	004420	012122 			30$:	MOV	(R1)+,(R2)+	;; WORD 1                                       ;BH0004
   2190	004422	012122 				MOV	(R1)+,(R2)+	;; WORD 2                                       ;BH0004
   2191	004424	012122 				MOV	(R1)+,(R2)+	;; WORD 3                                       ;BH0004
   2192	004426	012122 				MOV	(R1)+,(R2)+	;; WORD 4                                       ;BH0004
   2193	004430					RETURN                                                                  ;BH0004
   2194						.DSABL	LSB                                                             ;BH0004
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 48-1
EVENT LOGGING

   2195
   2196		000001 				.END
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 48-2
SYMBOL TABLE

A$$CHK= 000000   	CD.RUN= 100000   	CQ.ARG= 000370   	C.BID   000003   	E$DOSI= 000010
A$$CPS= 000000   	CD.SEC= 010000   	CQ.AR1= 000010   	C.BUF   000014   	E$DREC= 000007
A$$PRI= 000000   	CD.TBA= 000000   	CQ.AR2= 000020   	C.BUF1  000014   	E$DREG= 000001
A$$TRP= 000000   	CEABO   001342R     002	CQ.AR3= 000040   	C.BUF2  000024   	E$DRSN= 000006
BADLIN  000542R     002	CEBDH   001152R     002	CQ.AR4= 000100   	C.CNT   000020   	E$DTHR= 000015
BDSET   004204R     002	CECRC   001160R     002	CQ.COM= 000007   	C.CNT1  000020   	E$DTIM= 000002
BD.EOM= 001000 G 	CEDSR   001402R     002	CQ.LIN= 177400   	C.CNT2  000030   	E$DTPC= 000014
BD.LBD= 100000 G 	CEINV   000142R     002	CQ.RCV= 000004   	C.FLG   000022   	E$DTXT= 000016
BD.MEX= 006000 G 	CEKCM   001446R     002	CS.ABO= 000100 G 	C.FLG1  000022   	E$DUPT= 000004
BD.MXA= 002000 G 	CEKCP   001774R     002	CS.BUF= 000200 G 	C.FLG2  000032   	E$RABO= 000017
BD.SOM= 000400 G 	CENRB   001372R     002	CS.DCR= 000400 G 	C.FNC   000010   	E$RCRC= 000023
BD.SYN= 010000 G 	CEOVR   001166R     002	CS.DEV= 000002   	C.LIN   000006   	E$RDSC= 000005
CB.CCB= 000002   	CERDP   001432R     002	CS.DIS= 000040   	C.LNK   000000   	E$RFRM= 000024
CB.RDB= 000004   	CERSN   001176R     002	CS.ENB= 000020   	C.MOD   000011   	E$RHFE= 000016
CDCTL   002670R     002	CEUDR   001440R     002	CS.EOF= 000001   	C.NSP   000004   	E$RLIN= 000003
CDCXT   003212R     002	CE.ABO= 100362   	CS.ERR= 100000 G 	C.RSV   000002   	E$RMOP= 000014
CDDIS   003154R     002	CE.DIS= 100366   	CS.HFE= 002000 G 	C.STA   000007   	E$RMTL= 000013
CDENB   003046R     002	CE.ERR= 100370   	CS.LST= 040000   	C.STS   000012   	E$RNAK= 000032
CDETB   000112R     002	CE.MOP= 100372   	CS.MTL= 004000 G 	DA    = 000010   	E$RNXM= 000002
CDEXT   002240R     002	CE.NTE= 100361   	CS.RNG= 000010   	DC.ADR= 000040 G 	E$ROVR= 000012
CDISRV  000510R     002	CE.RTE= 100376   	CS.ROV= 000004 G 	DC.BSC= 000002 G 	E$RPEC= 000022
CDITB   000060R     002	CE.SRC= 100364   	CS.RSN= 010000 G 	DC.DEC= 000001 G 	E$RPEM= 000021
CDKCP   002020R     002	CE.TMO= 100374   	CS.SUC= 000001   	DC.HDX= 000001 G 	E$RPET= 000020
CDKIL   002264R     002	CF.EOM= 000004   	CS.TMO= 020000   	DC.MPT= 000010 G 	E$RPRC= 000025
CDKIO   002244R     002	CF.HDR= 000020   	CS.TTM= 040000   	DC.PRT= 000007 G 	E$RPWF= 000007
CDKRD   002452R     002	CF.LB = 100000   	CTCHR   000010 G 	DC.SDL= 000003 G 	E$RPWR= 000010
CDKXD   002460R     002	CF.SOM= 000010   	CTCSR   000002 G 	DC.SEC= 000020 G 	E$RRET= 000031
CDKXT   002434R     002	CF.SYN= 000040   	CTCTL   000016 G 	DC.X25= 000004 G 	E$RRTE= 000011
CDKX2   002444R     002	CF.TRN= 000100   	CTDUP   000006 G 	DL    = 000004   	E$RRTO= 000006
CDMSN   003250R     002	CIBAS   000744R     002	CTFLG   000004 G 	DLA   = 000020   	E$RSEL= 000030
CDOTB   000074R     002	CIBUF   000632R     002	CTIME = 000005   	DLTA    004276R     002	E$RSIN= 000004
CDRCV   002202R     002	CICTL   000664R     002	CTITM   000064 G 	DLV   = 000004   	E$RSRC= 000015
CDRKL   002372R     002	CIINV   000072R     002	CTITQ   000020 G 	DMC   = 000014   	E$RTRN= 000026
CDSTP   002762R     002	CIKIL   000640R     002	CTLEN   000066 G 	DP    = 000000   	E$RUCL= 000001
CDSTR   002702R     002	CIRBA   000602R     002	CTLOG   000014 G 	DQ    = 000006   	E$RXTO= 000027
CDSXT   003040R     002	CITBA   000544R     002	CTLTAB  000164R     002	DSPTAB  000232R     002	E$TASC= 000001
CDSX2   003042R     002	CLTA    004256R     002	CTLTW   000000 G 	DTE   = 000024   	E$TASX= 000002
CDTMO   002536R     002	CMCSR   000040 G 	CTRA1   000044 G 	DU    = 000002   	E$THDW= 000003
CDTRN   002050R     002	CMIPR   000016 G 	CTRA2   000054 G 	DUP   = 000012   	E$TSFT= 000004
CDXKL   002472R     002	CMIQH   000044 G 	CTRD1   000046 G 	DUV   = 000002   	E$TTOP= 000005
CDXK1   002504R     002	CMIRI   000000 G 	CTRD2   000056 G 	DU.CAR= 010000   	E$$XPR= 000000
CD.BAS= 000003   	CMKIL   002270R     002	CTSLN   000007 G 	DU.DSR= 001000   	FC.CCP= 000020
CD.CTL= 000001   	CMKQH   000050 G 	CTTA1   000024 G 	DU.RNG= 040000   	FC.CTL= 000006
CD.DEC= 100000   	CMLEN   000054 G 	CTTA2   000034 G 	DV    = 000026   	FC.KCP= 000016
CD.DPN= 177400   	CMODE = 140000   	CTTD1   000026 G 	DZ    = 000030   	FC.KIL= 000004
CD.DUP= 020000   	CMOPR   000036 G 	CTTD2   000036 G 	D$$BUG= 177514   	FC.RCE= 000002
CD.ENB= 000400   	CMORI   000020 G 	CT.BAS= 000020 G 	D$$ISK= 000000   	FC.RCP= 000014
CD.EOM= 010000   	CMSWT   000042 G 	CT.DRU= 001000 G 	D$$L11= 000001   	FC.TIM= 000010
CD.IEI= 000001   	CM.INI= 100000 G 	CT.LDA= 040000 G 	D$$YNC= 000000   	FC.XCP= 000012
CD.IEO= 000020   	CM.RQI= 000200 G 	CT.MSK= 040073 G 	D$$YNM= 000000   	FC.XME= 000000
CD.INV  000216R     002	COINV   000110R     002	CT.RKC= 000010 G 	ERRTB   000000R     002	FE.CAL= 000040
CD.KIL= 010000   	CORBA   001062R     002	CT.RKL= 000002 G 	ERRTBL= 000007   	FE.DRV= 000010
CD.MCL= 040000   	CORCP   001210R     002	CT.STR= 000040 G 	E$DDAT= 000003   	FE.EXP= 000200
CD.NOP  000226R     002	CORCT   001142R     002	CT.XKL= 000001 G 	E$DDEV= 000005   	FE.EXT= 000001
CD.RBA= 000004   	COTBA   001004R     002	C$$CKP= 000000   	E$DLPC= 000013   	FE.EXV= 000004
CD.RDI= 000020   	COTCP   001026R     002	C$$ORE= 000400   	E$DMCD= 000012   	FE.LSI= 000400
CD.REQ= 000200   	COTCT   001140R     002	C$$RSH= 177564   	E$DNOD= 000011   	FE.MUP= 000002
KDP	MACRO M1110  27-DEC-79 09:26  PAGE 48-3
SYMBOL TABLE

FE.MXT= 040000   	HIPOL   000272R     002	L$$11R= 000000   	PR1   = 000040   	UBMPR = 170200
FE.NLG= 100000   	INSIQB  004074R     002	MC.CAR= 000001   	PR4   = 000200   	UDSAR0= 177660
FE.PKT= 000100   	INSIQT  004124R     002	MC.CCB= 000200   	PR5   = 000240   	UDSDR0= 177620
FE.PLA= 000020   	I$$RAR= 000000   	MC.DSR= 000002   	PR6   = 000300   	UISAR0= 177640
FS.AST= 000000   	I$$RDN= 000000   	MC.RNG= 000004   	PR7   = 000340   	UISAR4= 177650
FS.CIB= 002000   	KDP   = 000034   	MPAR  = 172100   	PS    = 177776   	UISAR5= 177652
FS.CRA= 001000   	KDSAR0= 172360   	MPCSR = 177746   	PSTA    000056R     002	UISAR6= 177654
FS.DIS= 013000   	KDSDR0= 172320   	MS.SCA= 000002   	PTAB    000054R     002	UISAR7= 177656
FS.DVC= 001000   	KDZ   = 000036   	MS.SYN= 000001   	PTYP    000052R     002	UISDR0= 177600
FS.ENB= 012000   	KILTAB  000156R     002	M$$CRB= 000124   	P$$P45= 000000   	UISDR4= 177610
FS.GET= 006000   	KISAR0= 172340   	M$$CRX= 000000   	P$$WRD= 000000   	UISDR5= 177612
FS.INI= 000000   	KISAR5= 172352   	M$$FCS= 000000   	Q$$OPT= 000010   	UISDR6= 177614
FS.KIL= 000000   	KISAR6= 172354   	M$$MGE= 000000   	RCVASN  003756R     002	UISDR7= 177616
FS.LTM= 001000   	KISAR7= 172356   	M$$OVR= 000000   	RCVGET  003704R     002	V$$CTR= 001000
FS.MNT= 004000   	KISDR0= 172300   	N$$LDV= 000001   	RCVUSE  003712R     002	X$$DBT= 000000
FS.MSN= 014000   	KISDR6= 172314   	N$$MOV= 000010   	RQIRL   004152R     002	$CCBGT= ****** GX
FS.RNG= 011000   	KISDR7= 172316   	N$$SYS= 000001   	R$$DER= 000000   	$CCBRT= ****** GX
FS.RTN= 001000   	KL    = 000040   	N$$USR= 000001   	R$$K11= 000001   	$CDIRI  000332RG    002
FS.SET= 005000   	K$$CNT= 177546   	PDID  = 000044R     002	R$$SND= 000000   	$CDORI  000444RG    002
FS.STM= 000000   	K$$CSR= 177546   	PDST    000036R     002	R$$11M= 000000   	$CMLOG= ****** GX
FS.STP= 002000   	K$$LDC= 000000   	PDT1    000042R     002	SETCHR  003316R     002	$CNV18= ****** GX
FS.STR= 001000   	K$$TPS= 000074   	PDT2    000044R     002	SISDR0= 172200   	$DDCCP= ****** GX
FS.TRM= 003000   	LD$LP = 000000   	PIRQ  = 177772   	SR0   = 177572   	$DDKCP= ****** GX
FS.XKL= 002000   	LGDAT = 000022   	PLIN  = 000042R     002	SR3   = 172516   	$DDRCP= ****** GX
FS.XOF= 010000   	LOGGS   004310R     002	PLNG    000046R     002	SWR   = 177570   	$DDXMP= ****** GX
FS.XON= 007000   	LOGG3   004322R     002	PMODE = 030000   	S$$WRG= 000000   	$INTSX= ****** GX
F$$LVL= 000001   	LOGG4   004316R     002	PNAM    000050R     002	S$$YSZ= 007600   	$KDPTB  000144RG    002
G$$TPP= 000000   	LOPOL   000312R     002	POLCHK  003414R     002	TPS   = 177564   	$RDBGT= ****** GX
G$$TSS= 000000   	L$$ASG= 000000   	POLTHR= 000004 G 	TRNASN  003534R     002	$RDBQP= ****** GX
G$$TTK= 000000   	L$$DRV= 000000   	PRSN    000040R     002	T$$KMG= 000000   	$RDBRT= ****** GX
G$$WRD= 000000   	L$$P11= 000001   	PR0   = 000000   	T$$MIN= 000000   	$RDBWT= ****** GX

. ABS.	000066	   000
      	000000	   001
$KDP11	004432	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  10862 WORDS  ( 43 PAGES)
DYNAMIC MEMORY:  12172 WORDS  ( 46 PAGES)
ELAPSED TIME:  00:01:42
KDP,[131,34]KDP/CR=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]KDP
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 1
SYMBOL CROSS REFERENCE                                  CREF         
SYMBOL	VALUE		REFERENCES
BADLIN	  000542 R	 13-545    #13-561    
BDSET 	  004204 R	 40-1809    42-1910   #46-2061   
BD.EOM	= 001000  G	#6-214      25-1148   
BD.LBD	= 100000  G	#6-214     
BD.MEX	= 006000  G	#6-214     
BD.MXA	= 002000  G	#6-214     
BD.SOM	= 000400  G	#6-214      25-1145   
BD.SYN	= 010000  G	#6-214      25-1151   
CDCTL 	  002670 R	 9-353     #32-1441   
CDCXT 	  003212 R	 35-1577    35-1579   #36-1616   
CDDIS 	  003154 R	 9-387     #36-1605   
CDENB 	  003046 R	 9-386     #35-1558   
CDETB 	  000112 R	#8-329      20-851    
CDEXT 	  002240 R	 25-1161   #26-1194   
CDISRV	  000510 R	 12-503    #13-548    
CDITB 	  000060 R	#8-302      12-502    
CDKCP 	  002020 R	 24-1094   #24-1098    29-1320   
CDKIL 	  002264 R	 9-367     #28-1253   
CDKIO 	  002244 R	 9-352     #27-1221   
CDKRD 	  002452 R	 29-1304   #29-1318   
CDKXD 	  002460 R	#29-1319    30-1354   
CDKXT 	  002434 R	 28-1269    28-1271    28-1275   #29-1309    30-1358   
CDKX2 	  002444 R	#29-1313    29-1321   
CDMSN 	  003250 R	 9-388     #37-1649   
CDOTB 	  000074 R	#8-315      13-546    
CDRCV 	  002202 R	 9-351     #26-1185   
CDRKL 	  002372 R	 9-368     #29-1299   
CDSTP 	  002762 R	 9-378     #34-1510   
CDSTR 	  002702 R	 9-377     #33-1470   
CDSXT 	  003040 R	 33-1481    34-1513   #34-1525   
CDSX2 	  003042 R	 33-1484   #34-1527   
CDTMO 	  002536 R	 9-355     #31-1383   
CDTRN 	  002050 R	 9-350     #25-1133   
CDXKL 	  002472 R	 9-369     #30-1348   
CDXK1 	  002504 R	 28-1263   #30-1350   
CD.BAS	= 000003	#7-245      35-1578   
CD.CTL	= 000001	#7-244      17-722     35-1575    36-1614    39-1756   
CD.DEC	= 100000	#7-261      21-908     38-1710    42-1911   
CD.DPN	= 177400	#7-253     
CD.DUP	= 020000	#7-260      38-1718   
CD.ENB	= 000400	#7-258      16-677     33-1471    36-1607    38-1704   
CD.EOM	= 010000	#7-267      19-802    
CD.IEI	= 000001	#7-248      35-1570   
CD.IEO	= 000020	#7-249      35-1570   
CD.INV	  000216 R	 9-376      9-379      9-380      9-381      9-382     #9-391     
CD.KIL	= 010000	#7-266      15-641    
CD.MCL	= 040000	#7-251      35-1563   
CD.NOP	  000226 R	 9-383      9-384      9-385     #9-396     
CD.RBA	= 000004	#7-246      23-1037    24-1095    28-1265    29-1306    42-1896   
CD.RDI	= 000020	#7-250      44-1992   
CD.REQ	= 000200	#7-247      12-494     43-1953    43-1964    44-1996   
CD.RUN	= 100000	#7-252      35-1566   
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 2
SYMBOL CROSS REFERENCE                                  CREF         
SYMBOL	VALUE		REFERENCES
CD.SEC	= 010000	#7-259      21-910     42-1913   
CD.TBA	= 000000	#7-243      30-1356    31-1404   
CEABO 	  001342 R	 8-333     #22-954    
CEBDH 	  001152 R	 8-334     #20-857    
CECRC 	  001160 R	 8-335     #20-865    
CEDSR 	  001402 R	 8-337     #22-977    
CEINV 	  000142 R	 8-330      8-331      8-332      8-338     #8-343     
CEKCM 	  001446 R	 8-341     #23-1029   
CEKCP 	  001774 R	 24-1056    24-1058   #24-1091   
CENRB 	  001372 R	 8-336     #22-969    
CEOVR 	  001166 R	 8-340     #21-872    
CERDP 	  001432 R	 22-971     22-981    #22-986     22-996    
CERSN 	  001176 R	 20-859     20-867    #21-875    
CEUDR 	  001440 R	 8-339     #22-994    
CF.EOM	= 000004	 21-925     25-1146   
CF.LB 	= 100000	 21-925     41-1859   
CF.SOM	= 000010	 21-925     25-1143   
CF.SYN	= 000040	 25-1149   
CIBAS 	  000744 R	 8-306     #17-714    
CIBUF 	  000632 R	 14-598     14-600     14-611    #15-615    
CICTL 	  000664 R	 8-304     #16-671    
CIINV 	  000072 R	 8-305     #8-309     
CIKIL 	  000640 R	 14-594     14-608    #15-639    
CIRBA 	  000602 R	 8-307     #14-606    
CITBA 	  000544 R	 8-303     #14-592    
CLTA  	  004256 R	 25-1135    26-1187    27-1223    31-1385    32-1443   #47-2105   
CMCSR 	  000040  G	#6-214      12-493     13-539     35-1562    43-1953    43-1964    44-1991    48-2178   
CMIPR 	  000016  G	#6-214     
CMIQH 	  000044  G	#6-214      12-496    *12-496    *12-496     12-496    *12-496     43-1950   *43-1950    43-1951   
                         43-1961   *43-1963   *43-1965    44-1993   
CMIRI 	  000000  G	#6-214     
CMKIL 	  002270 R	#28-1256    34-1523   
CMKQH 	  000050  G	#6-214      15-642    *15-642     23-1031   *23-1031   *23-1031    23-1031   *23-1031   
CMLEN 	  000054  G	#6-214      10-411     10-412     10-413     10-414     10-415     10-416     10-417     10-418    
                         10-419     10-420     10-421     10-422     10-423     10-424     10-425     10-426    
CMOPR 	  000036  G	#6-214     
CMORI 	  000020  G	#6-214      12-491    
CMSWT 	  000042  G	#6-214      35-1559   *35-1571   
CM.INI	= 100000  G	#6-214      35-1571   
CM.RQI	= 000200  G	#6-214     
COINV 	  000110 R	 8-318      8-319     #8-323     
CORBA 	  001062 R	 8-320     #19-797    
CORCP 	  001210 R	 19-806     19-808    #21-902    
CORCT 	  001142 R	 8-321     #20-845    
COTBA 	  001004 R	 8-316     #18-747    
COTCP 	  001026 R	 18-755    #18-758    
COTCT 	  001140 R	 8-317     #20-843    
CQ.ARG	= 000370	#7-284     
CQ.AR1	= 000010	#7-285      14-597     14-610     24-1093    24-1095    28-1265    28-1273    36-1614    40-1807   
                         42-1904   
CQ.AR2	= 000020	#7-286      14-593     14-607     28-1265    29-1306    30-1356    31-1404   
CQ.AR3	= 000040	#7-287      34-1521   
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 3
SYMBOL CROSS REFERENCE                                  CREF         
SYMBOL	VALUE		REFERENCES
CQ.AR4	= 000100	#7-288     
CQ.COM	= 000007	#7-282      12-498     13-543     28-1257   
CQ.LIN	= 177400	#7-289     
CQ.RCV	= 000004	#7-283     
CS.ABO	= 000100  G	#6-214      6-223      22-955     24-1075   
CS.BUF	= 000200  G	#6-214      26-1191   
CS.DCR	= 000400  G	#6-214      6-225      20-866    
CS.DIS	= 000040	 33-1483   
CS.ENB	= 000020	 36-1611   
CS.ERR	= 100000  G	#6-214      9-392      19-811     20-858     20-866     21-874     22-955     22-982     24-1075   
                         24-1078    33-1483    36-1611   
CS.HFE	= 002000  G	#6-214      6-224      20-858    
CS.MTL	= 004000  G	#6-214      19-811    
CS.RNG	= 000010	 6-226      22-982    
CS.ROV	= 000004  G	#6-214      6-227      21-874    
CS.RSN	= 010000  G	#6-214      21-922     22-970     23-1040    29-1318   
CS.TMO	= 020000	 6-228     
CS.TTM	= 040000	#6-220      6-229      24-1078   
CTCHR 	  000010  G	#6-214      38-1690    39-1747   
CTCSR 	  000002  G	#6-214      17-717     37-1650    48-2180   
CTCTL 	  000016  G	#6-214     *16-677     16-680     21-908     21-910     33-1471    36-1607    38-1691    42-1911   
                         42-1913   
CTDUP 	  000006  G	#6-214      25-1140    27-1224    31-1405    34-1522    36-1617    39-1757    41-1858    47-2107   
CTFLG 	  000004  G	#6-214     *17-716    *19-811    *21-875     21-915    *22-970     22-978    *22-980    *23-1039   
                        *23-1040   *24-1060   *26-1191   *28-1266   *28-1274   *29-1307   *29-1318   *30-1357    31-1393   
                        *31-1397   *33-1473    34-1512   *34-1514   *35-1574    35-1576    36-1609    40-1793    42-1907   
CTIME 	= 000005	#7-276      14-595    
CTITM 	  000064  G	#6-214      16-672     18-754    *18-756     19-805    *19-807    *38-1714   *38-1715   *39-1744   
                         39-1749   *39-1753   *39-1758   
CTITQ 	  000020  G	#6-214      24-1063    24-1069    24-1073   *24-1074    24-1083   *24-1083   *24-1083    24-1083   
                        *24-1083    25-1155   *25-1155    40-1798   *40-1798   *40-1798    40-1798   *40-1798    40-1815   
                        *40-1816   *40-1819   
CTLEN 	  000066  G	#6-214      10-411     10-412     10-413     10-414     10-415     10-416     10-417     10-418    
                         10-419     10-420     10-421     10-422     10-423     10-424     10-425     10-426    
CTLOG 	  000014  G	#6-214      48-2168   
CTLTAB	  000164 R	#9-375      32-1444   
CTLTW 	  000000  G	#6-214     
CTRA1 	  000044  G	#6-214      23-1046   *23-1048    28-1260    29-1301    42-1897    42-1901   
CTRA2 	  000054  G	#6-214      24-1051   *24-1053    28-1262    29-1303    42-1901   
CTRD1 	  000046  G	#6-214      14-609     14-612    
CTRD2 	  000056  G	#6-214      14-612    
CTSLN 	  000007  G	#6-214      31-1401    34-1518    41-1857    41-1863    48-2172   
CTTA1 	  000024  G	#6-214      24-1061    24-1063   *24-1064    28-1268    30-1351    31-1388    40-1800    40-1804   
CTTA2 	  000034  G	#6-214      24-1067    24-1069   *24-1070    28-1270    30-1353    31-1390    40-1804   
CTTD1 	  000026  G	#6-214      14-596     14-599    
CTTD2 	  000036  G	#6-214      14-599    
CT.BAS	= 000020  G	#6-214      17-716     35-1576   
CT.DRU	= 001000  G	#6-214      22-978     22-980     35-1574   
CT.LDA	= 040000  G	#6-214     
CT.MSK	= 040073  G	#6-214      21-917     21-918    
CT.RKC	= 000010  G	#6-214      21-875     21-919     21-921    
CT.RKL	= 000002  G	#6-214      23-1039    28-1266    29-1307    42-1907   
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 4
SYMBOL CROSS REFERENCE                                  CREF         
SYMBOL	VALUE		REFERENCES
CT.STR	= 000040  G	#6-214      33-1473    34-1512    34-1514    36-1609   
CT.XKL	= 000001  G	#6-214      24-1060    28-1266    28-1274    30-1357    31-1393    31-1397    40-1793   
C.BUF 	  000014	 25-1141    46-2073   
C.CNT1	  000020	*21-907    *21-912    
C.FLG 	  000022	*18-762    *21-925    *24-1085    25-1141   
C.FLG1	  000022	*41-1859   
C.FNC 	  000010	 16-683     23-1042    24-1076    24-1099   *39-1755   
C.LIN 	  000006	 31-1400   *41-1857   
C.MOD 	  000011	 16-675    *21-924    
C.STA 	  000007	*41-1856   
C.STS 	  000012	 12-497     14-593     14-597     14-607     14-610    *17-722     23-1037    24-1093   *24-1095   
                         25-1138   *27-1224   *28-1254   *28-1257   *28-1265   *28-1273   *29-1306   *30-1356   *34-1521   
                        *34-1522   *35-1575   *35-1578   *36-1614   *36-1617   *39-1756   *39-1757   *40-1807   *41-1858   
                        *42-1896   *42-1904   
DC.ADR	= 000040  G	#6-214     
DC.BSC	= 000002  G	#6-214     
DC.DEC	= 000001  G	#6-214      38-1708   
DC.HDX	= 000001  G	#6-214      38-1716   
DC.MPT	= 000010  G	#6-214     
DC.PRT	= 000007  G	#6-214      38-1707   
DC.SDL	= 000003  G	#6-214     
DC.SEC	= 000020  G	#6-214     
DC.X25	= 000004  G	#6-214     
DLTA  	  004276 R	 13-550    #47-2132   
DSPTAB	  000232 R	#10-410     47-2109    47-2134   
DU.CAR	= 010000	#7-273      37-1657   
DU.DSR	= 001000	#7-274      37-1661   
DU.RNG	= 040000	#7-272      37-1653   
ERRTB 	  000000 R	#6-222      6-230      6-236     
ERRTBL	= 000007	 6-222     #6-230     
E$DREG	= 000001	 48-2177   
E$RABO	= 000017	 6-223     
E$RCRC	= 000023	 6-225     
E$RDSC	= 000005	 6-226     
E$RHFE	= 000016	 6-224     
E$ROVR	= 000012	 6-227     
E$RRTO	= 000006	 6-228     
E$RXTO	= 000027	 6-229     
E$THDW	= 000003	 6-236     
FC.CTL	= 000006	 23-1042    24-1099   
FC.TIM	= 000010	 24-1076    31-1403   
FS.DIS	= 013000	 16-675    
FS.DVC	= 001000	 21-924    
HIPOL 	  000272 R	#11-445     39-1749   
INSIQB	  004074 R	 29-1310    36-1619    39-1761    40-1810    42-1917   #43-1949   
INSIQT	  004124 R	 17-723     24-1096    31-1407   #43-1960   
I$$AS 	= ******	 8-291      15-616     18-750     19-799     20-848     45-2000   
KDP   	= 000034	 6-236     
KILTAB	  000156 R	#9-366      27-1225   
LGDAT 	= 000022	#6-235      6-236     
LOGGS 	  004310 R	 24-1080   #48-2160   
LOGG3 	  004322 R	 21-876    #48-2166   
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 5
SYMBOL CROSS REFERENCE                                  CREF         
SYMBOL	VALUE		REFERENCES
LOGG4 	  004316 R	 22-956     22-984    #48-2163   
LOPOL 	  000312 R	#11-452     38-1714   
L$$SI1	= ******	 25-1154    25-1157    26-1189    26-1192    28-1259    29-1300    29-1311    29-1319    30-1349   
                         31-1387    31-1412    33-1476    33-1479    36-1618    36-1620    39-1760    39-1762   
MC.CAR	= 000001	 37-1659   
MC.DSR	= 000002	 37-1663   
MC.RNG	= 000004	 37-1655   
M$$MGE	= 000000	 6-214      6-214      46-2062   
PDID  	= 000044 R	#6-238     
PDST  	  000036 R	#6-236     *48-2168    48-2173   
PDT1  	  000042 R	#6-236      6-237     
PDT2  	  000044 R	#6-236      6-238     
PLIN  	= 000042 R	#6-237     *48-2172   
PLNG  	  000046 R	#6-236     
PNAM  	  000050 R	#6-236     
POLCHK	  003414 R	 21-873     22-995    #39-1743   
POLTHR	= 000004  G	#11-442     18-754     19-805     38-1715    39-1758   
PRSN  	  000040 R	#6-236     *48-2167   
PR7   	= 000340	 25-1154    26-1189    28-1259    29-1300    30-1349    31-1387    33-1476    36-1618    39-1760   
PS    	= 177776	 25-1154    25-1154    25-1157    26-1189    26-1189    26-1192    28-1259    28-1259    29-1300   
                         29-1300    29-1311    29-1319    30-1349    30-1349    31-1387    31-1387    31-1412    33-1476   
                         33-1476    33-1479    36-1618    36-1618    36-1620    39-1760    39-1760    39-1762   
PSTA  	  000056 R	#6-236     
PTAB  	  000054 R	#6-236     
PTYP  	  000052 R	#6-236     
RCVASN	  003756 R	 19-815     22-961     23-1041    41-1860   #42-1893   
RCVGET	  003704 R	 21-927     33-1477    33-1478   #41-1850   
RCVUSE	  003712 R	 26-1190   #41-1854   
RQIRL 	  004152 R	 15-643     16-682     17-721    #44-1989   
R$$11D	= ******	 8-291      15-616     18-750     19-799     20-848     45-2000   
SETCHR	  003316 R	 35-1573   #38-1687   
TRNASN	  003534 R	 18-764     25-1156   #40-1792   
$CCBGT	= ******  GX	 31-1395    39-1751   
$CCBRT	= ******  GX	 16-688     24-1106   
$CDIRI	  000332 RG	#12-487    
$CDORI	  000444 RG	#13-534    
$CMLOG	= ******  GX	 48-2174   
$CNV18	= ******  GX	 46-2076   
$DDCCP	= ******  GX	 16-686     24-1101   
$DDKCP	= ******  GX	 24-1104   
$DDRCP	= ******  GX	 21-926    
$DDXMP	= ******  GX	 18-763     24-1086   
$INTSX	= ******  GX	 12-488     13-535    
$KDPTB	  000144 RG	#9-349     
$RDBGT	= ******  GX	 41-1851   
$RDBQP	= ******  GX	 34-1519   
$RDBRT	= ******  GX	 23-1044   
$RDBWT	= ******  GX	 41-1864   
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 6
MACRO CROSS REFERENCE                                   CREF         
MACRO NAME	REFERENCES
CALL  		 13-550     13-556     16-682     17-721     18-763     18-764     21-873     21-876     21-926     22-956    
                 22-995     24-1054    24-1057    24-1086    25-1135    25-1156    26-1187    26-1190    27-1223    29-1310   
                 29-1320    31-1385    31-1395    31-1407    32-1443    33-1477    33-1478    34-1519    35-1573    36-1619   
                 39-1751    39-1761    40-1809    40-1810    41-1851    42-1910    42-1917    46-2076    48-2174    48-2179   
                 48-2181    48-2182   
CCBDF$		#4-99       4-101     
CMLDF$		#4-99       6-236     
CRASH 		#12-506    #42-1923   
DEVDF 		#4-99       6-210     
ENABL$		#4-98      #25-1157   #26-1192   #29-1311   #29-1319   #31-1412   #33-1479   #36-1620   #39-1762   
EVLDF$		#4-99      #6-212     
GOTO  		#4-121     #16-686    #16-688    #24-1101   #24-1104   #24-1106   #41-1864   
HWDDF$		#4-99      #4-100     
INHIB$		#4-98       25-1154    26-1189    28-1259    29-1300    30-1349    31-1387    33-1476    36-1618    39-1760   
KDPDF$		#4-99      #6-214     
MDCDF$		#4-99      #4-102     
POP   		#4-112     #13-558    #21-923    #25-1152   #25-1159   #26-1195   #29-1314   #31-1406   #31-1413   #33-1480   
                #34-1520   #34-1528   #36-1623   #40-1821   #42-1919   #44-1997   #46-2086   #47-2110   
PUSH  		#4-106     #12-489    #13-536    #21-914    #24-1075   #25-1134   #25-1137   #26-1186   #27-1222   #31-1384   
                #31-1398   #32-1442   #33-1474   #34-1516   #40-1795   #42-1894   #44-1990   #46-2072   #47-2106   
RETURN		 9-394      9-398      13-559     18-766     22-988     26-1196    29-1316    31-1414    34-1529    36-1624   
                 38-1719    39-1765    40-1822    42-1920    43-1954    43-1966    44-1998    46-2087    47-2111    47-2136   
                 48-2185    48-2193   
TMPDF$		#6-214      6-214     
$DEQ  		#5-154      12-496     23-1031    24-1083    40-1798   
$ENQ  		#4-129      15-642     25-1155    43-1950   
$INTSX		#4-98      #12-488    #13-535    
.BIN  		#6-214     
.CNB  		#6-214     
.CNW  		#6-214     
.CORE 		#6-214     
.CSR  		#6-214      6-214     
.DVCHA		#6-214      6-214     
.INT  		#6-214     
.INT1 		#6-214      6-214     
.INT2 		#6-214     #6-214     
.INT3 		#6-214     
.LFLHD		#6-214     
.LIBR 		#6-214     
.LINKS		#6-214     
.LSTHD		#6-214      6-214      6-214      6-214     
.LTAB 		#6-214     
.MPLHD		#6-214     
.POOL 		#6-214     
.PRI  		#6-214      6-214      6-214     
.SCOM 		#6-214     
.SECSR		#6-214     #6-214     
.SLNB 		#6-214     #6-214     
.SLNW 		#6-214     
.STNB 		#6-214     
.STNW 		#6-214     
.UNB  		#6-214     #6-214     
KDP        CREATED BY  MACRO  ON 27-DEC-79 AT 09:27	PAGE 7
MACRO CROSS REFERENCE                                   CREF         
MACRO NAME	REFERENCES
.UNW  		#6-214     
.VFY  		#6-214