Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/monitor/kdpsrv.list
There are no other files named kdpsrv.list in the archive.
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 1
KDPSRV	MAC	30-Sep-80 14:34	

     1					; UPD ID= 1072, SNARK:<5.MONITOR>KDPSRV.MAC.2,  30-Sep-80 14:34:25 by GRANT
     2					;TCO 5.1161 - use symbols for KMC PDL
     3					; UPD ID= 181, SNARK:<4.1.MONITOR>KDPSRV.MAC.23,   2-Jan-80 10:19:12 by PLATUKIS
     4					;Restructure routine RCVAK3 to continue processing message, even if
     5					; bad ACK field.  Corrected NAK reason codes. Restructured PGDSTS
     6					; word of station table.
     7					; UPD ID= 127, SNARK:<4.1.MONITOR>KDPSRV.MAC.22,  12-Dec-79 15:33:14 by OSMAN
     8					;Document KMCIII
     9					;<4.MONITOR>KDPSRV.MAC.21,  8-Oct-79 10:55:34, EDIT BY GRANT
    10					;TCO 4.2515 - Fix DUP maintenance mode bit definitions for loopback
    11					;<4.MONITOR>KDPSRV.MAC.20, 27-Sep-79 12:15:39, EDIT BY WEISBACH
    12					;TCO 4.2491 - Fix range checking of DUP number on BOOT JSYS calls in routines
    13					;BTGPRT and BTIDC0.
    14					;<OSMAN.MON>KDPSRV.MAC.1, 10-Sep-79 15:40:25, EDIT BY OSMAN
    15					;TCO 4.2412 - Move definition of BUGHLTs, BUGCHKs, and BUGINFs to BUGS.MAC
    16					;<4.MONITOR>KDPSRV.MAC.18, 24-Aug-79 13:50:43, EDIT BY WEISBACH
    17					; Return updated byte pointer to user on a DDCMP read.
    18					;<4.MONITOR>KDPSRV.MAC.17,  9-Jul-79 10:01:48, EDIT BY R.ACE
    19					; Redefine PGLSTS word in line table and correct polling algorithm
    20					; for stations in start state.
    21					;<4.MONITOR>KDPSRV.MAC.16, 13-May-79 12:41:21, EDIT BY WEISBACH
    22					; Make the read and write DDCMP message functions understand byte pointers.
    23					; Correct problem of ^Cing a program during the execution of the BTINI
    24					; function resulting in a RESBAZ bugchk.
    25					;<4.MONITOR>KDPSRV.MAC.15,  1-Apr-79 10:43:03, EDIT BY WEISBACH
    26					; Ensure that resident buffer released when an error is encountered while
    27					; sending a DDCMP message (@BTSDD).
    28					;<4.MONITOR>KDPSRV.MAC.13, 25-Mar-79 12:45:29, EDIT BY WEISBACH
    29					; Fix potential races caused by RELRES's turning the PI system back on.
    30					;<4.MONITOR>KDPSRV.MAC.12, 21-MAR-79 edit by MBEGUN
    31					;Don't try to send implicit acks for multidrop lines at XMTAK3
    32					;<4.MONITOR>KDPSRV.MAC.11, 18-Mar-79 11:48:00, EDIT BY WEISBACH
    33					; Read MOP and DDCMP return one word too many to user.
    34					;<4.MONITOR>KDPSRV.MAC.10, 11-Mar-79 13:51:43, EDIT BY WEISBACH
    35					; Make timeout work properly for MOP protocol
    36					; Also remove outdated table of contents
    37					;<4.monitor>kdpsrv.mac.9 6-mar-79 edit mbegun - remove race at
    38					;kdpchk  - turn pioff for scheduler tests
    39					;<4.MONITOR>KDPSRV.MAC.8,  4-Mar-79 17:45:42, Edit by KONEN
    40					;UPDATE COPYRIGHT FOR RELEASE 4
    41					;<4.MONITOR>KDPSRV.MAC.7,  4-Mar-79 11:12:12, EDIT BY WEISBACH
    42					; Correct password code for ENTER-MOP-MODE messages and set line server
    43					; to default to NSP at protocol termination
    44					;<4.MONITOR>KDPSRV.MAC.6, 13-Feb-79 16:54:03, EDIT BY WEISBACH
    45					; Zero PGLINQ after reading a MOP message.
    46					;<4.MONITOR>KDPSRV.MAC.5, 29-Jan-79 08:33:10, EDIT BY WEISBACH
    47					;<4.MONITOR>KDPSRV.MAC.4,  4-Jan-79 11:00:15, EDIT BY WEISBACH
    48					; Add support for MOP protocol
    49					;<4.MONITOR>KDPSRV.MAC.29, 5-DEC-78 12:00:00, Edit by MBEGUN
    50					; Restructure data base and add support for full duplex multi-drop stations
    51
    52					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
    53					;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
    54					;
    55					;COPYRIGHT (C) 1976,1977,1978,1979 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 1-1
KDPSRV	MAC	30-Sep-80 14:34	

    56
    57						SEARCH PROLOG,PROKS
    58						TTITLE KDPSRV^
    59					^
    60
    61						EXTN <DEDMCB>
    62						EXTN <KDPLIM,KDPNLN,KDPN,KDPPAG,KDPTIM,KDPXPC>
    63						EXTN <KMCACS,KMCINQ,KDPFLG,KMCPAG,KMCQLN>
    64						EXTN <NODINI,NSPQ,NSPSPC>
    65
    66					;THIS MODULE PROVIDES SUPPORT FOR DUP11'S WITH A KMC11 FOR NSPSRV ON A 2020
    67
    68					;THINGS TO CHECK
    69					; 1) ERROR COUNTERS - SYSERR
    70					; 2) COLLAPSE PAGES
    71						IFNDEF FTRACE,<FTRACE==-1>	;NONZERO TO TURN ON TRACE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 2
KDPSRV	MAC	30-Sep-80 14:34	

    72
    73					; P1 FOR LINE SPECIFIC CODE WILL CONTAIN THE ADDRESS OF THE LINES PAGE
    74					; P4 FOR STATION SPECIFIC CODE WILL CONTAIN THE ADDRESS OF STATION TABLE
    75
    76					; MESSAGE BLOCKS LIVE IN BLOCKS OF RESIDENT SPACE
    77		   	   000031		BLKSIZ=<MBKFRE*10>+1		;SIZE OF BLOCKS IN RESIDENT SPACE
    78					;FORMAT OF EACH MESSAGE BLOCK
    79		   	   000000		MBKLNK==0	;LH = ADR OF NEXT MESSAGE BLOCK
    80								; RH = ADR OF MESSAGE
    81		   	   000001		MBKCOD==1	;DRIVER UNIQUE CODE
    82		   	   000002		MBKLEN==2	;LH IS DRIVER INT LOC
    83								; RH IS LENGTH OF MESSAGE IN BYTES
    84						;FOLLOWING VALID ONLY FOR LAST MSG BLOCK IN BLOCK
    85		   	   000003		MBKFRE==3	;LH = NUMBER OF FREE WORDS LEFT IN BLOCK
    86								; RH = ADR OF BLOCK
    87
    88					;KMCINQ - QUEUE OF MESSAGE TO BE GIVEN TO THE KMC11
    89					; FIRST WORD IS USED TO PUT THINGS INTO THE QUEUE
    90					; 2ND WORD IS USED TO TAKE ENTRIES FROM QUEUE
    91					; QUEUE ENTRIES ARE 2 WORDS LONG
    92					; RH OF 1ST WORD GOES TO BSEL2
    93					; LH OF 2ND WORD GOES TO BSEL4
    94					; RH OF 2ND WORD GOES TO BSEL6
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 3
KDPSRV	MAC	30-Sep-80 14:34	

    95
    96						SUBTTL	DEFINITIONS -- STG
    97
    98					DEFINE X (A,B)<
    99					A==Z
   100					Z=Z+B
   101					>
   102		   	   000000	Z=0
   103
   104					;PAGE OFFSETS FOR LINE PAGE
   105					X PGUBAD,1	;LH IS UNIBUS ADR OF PAGE
   106					X PGSTAL,1	;STATION LIST -- DDCMP LINE TABLE
   107					    DEFSTR (DDSTT,PGSTAL(P1),35,18) ;TOP OF STATION LIST
   108					    DEFSTR (DDSTB,PGSTAL(P1),17,18) ;BOTTOM OF STATION LIST
   109					X PGCSTA,1	;POINTER TO CURRENT STATION
   110					X PGLINQ,1	;INPUT MESSAGE QUEUE
   111					X PGLOUQ,1	;OUTPUT MESSAGE STATION QUEUE
   112					X PGLSTS,1	;LINE STATUS
   113		   000020  000000	  DUPDSR==1B13	;DATA SET READY
   114					  DEFSTR(LINSR,PGLSTS(P1),35,2)  ;SERVER
   115		   	   000000		NSPL==0	;NSP LINE
   116		   	   000001		DCPL==1	;DCP LINE
   117					  DEFSTR(DDINP,PGLSTS(P1),33,5)  ;# OF QUEUED INPUT BUFFERS
   118					  DEFSTR(DDINT,PGLSTS(P1),28,1)	;PSI FLAG
   119					  DEFSTR(DDSSP,PGLSTS(P1),17,4)	;STARTUP PRESET COUNTER
   120					X PGLINT,1	;FORK #,,INTERRUPT CHANNEL ASSIGNMENT
   121					X PGKDPN,1	;DUP11 LINE NUMBER
   122					X PGUBAM,1	;ADR OF UBA MAPPING REGISTER FOR PAGE
   123					X PGZTIM,1	;TIME LAST ZEROED COUNTERS, TICKED ONCE PER SECOND
   124					X PGSTCC,1	;STARTUP COUNTER
   125		   	   000002	    DDSTIC==2	;INITIAL STARTUP COUNT
   126					X PGCOCN,10	;CONTROL OUT COUNTS AS FOLLOWS
   127							;10 = INVALID DDCMP HEADER
   128							;12 = BAD CRC
   129							;14 = BUFFER NOT AVAILABLE
   130							;16 = DATASET READY TRANSITION
   131							;20 = NXM
   132							;22 = TRANSMIT UNDERRUN
   133							;24 = RECEIVER UNDERRUN
   134							;26 = KILL COMPLETE
   135					X PGCOXX,1	;OTHER
   136					X PGXMCN,1	;COUNT OF DDCMP MESSAGES TRANSMITTED
   137					X PGNRNK,10	;COUNT OF RECEIVED NAKS
   138							; FIRST IS MISC NAKS, NEXT 7 ARE BY NAK CODE
   139							;catch all
   140							;1= header bcc error
   141							;2= data bcc error
   142							;3= rep response
   143							;8= buffer unavailable
   144							;9= receiver overrun
   145							;16= message too long
   146							;17= header format error
   147					X PGRMCN,1	;COUNT OF DDCMP MESSAGES RECEIVED
   148					X PGNXNK,10	;COUNT OF TRNASMITTED NAKS
   149							; FIRST IS MISC NAKS, NEXT 7 ARE BY NAK CODE (see PGNRNK)
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 3-1
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- STG

   150					X PGKMCR,2	;KMC11 REGISTERS WHEN KMC11 LAST HALTED
   151							; BSEL0,,BSEL2
   152							; BSEL4,,BSEL6
   153					X PGLACK,2	;LAST DDCMP ACK,NAK OR DATA MESSAGE TO UPDATE ACKED MESSAGE
   154					X PGXBD1,4	;1ST TRANSMIT BUFFER DESCRIPTOR LIST
   155					X PGXMS1,140	;1ST XMIT MESSAGE BUFFER
   156					X PGXBD2,4	;2ND TRANSMIT BUFFER DESCRIPTOR LIST
   157					X PGXMS2,140	;2ND XMIT MESSAGE BUFFER
   158					X PGRBD1,4	;1ST RECEIVE BUFFER DESCRIPTOR LIST
   159					X PGRMS1,140	;1ST INPUT MESSAGE BUFFER
   160					X PGRBD2,4	;2ND RECEIVE BUFFER DESCRIPTOR LIST
   161					X PGRMS2,140	;2ND INPUT MESSAGE BUFFER
   162					; DATA BASE NEEDED FOR MOP PROTOCOL
   163					X PGMSTS,1			;MOP STATUS WORD
   164						DEFSTR	(MOPSTS,PGMSTS(P1),35,2) ;MOP STATUS
   165		   	   000001			MPPRI==1	;PRIMARY MODE
   166		   	   000002			MPSEC==2	;SECONDARY MODE
   167		   	   400000			MPERR=400000	;ERROR IN MOP MSG EXCHANGE(MUST BE SIGN BIT)
   168						DEFSTR	(MOPTMR,PGMSTS(P1),17,12) ;MOP TIMEOUT COUNTER
   169		   	   000017			PRITMO==^D15	;SPECIAL TIMEOUT WHEN STILL IN PRIMARY MODE
   170		   	   000003			MOPTMO==3	;TIME-OUT
   171					X PGMPSW,1			;PASSWORD TO ENTER MOP MODE
   172					X PGMXHD,3			;MOP XMIT MESSAGE HEADER
   173						DEFSTR	(MPBPTR,PGMXHD(P1),35,36) ;POINTER TO THE MOP MSG XMITTED
   174						DEFSTR	(MPBADR,PGMXHD(P1),35,18) ;ADDRESS OF THE MOP BUFFER
   175						DEFSTR	(MPPOST,PGMXHD+1(P1),35,18)	;MOP POST ADDRESS
   176						DEFSTR	(MPFLGS,PGMXHD+1(P1),17,18) ;FLAGS
   177		   	   000001			MPSHRT=1	;MOP BUFFER IS A SHORT BUFFER
   178		   	   000002			MPXSEC=2	;SENDING SECONDARY BOOTSTRAP
   179						DEFSTR	(MPBLEN,PGMXHD+2(P1),35,18)	;LENGTH OF MOP BUFFER
   180					X PGMXBF,2			;BUFFER FOR SHORT MOP MESSAGES
   181					X PGMRHD,2			;MOP RECEIVE MESSAGE HEADER
   182						DEFSTR	(MPRPTR,PGMRHD(P1),35,36) ;POINTER TO THE MOP MSG RECVD
   183						DEFSTR	(MPRADR,PGMRHD(P1),35,18) ;ADDRESS OF THE MOP BUFFER
   184						DEFSTR	(MPRLEN,PGMRHD+1(P1),35,18) ;LENGTH OF THE BUFFER (BYTES)
   185					IFN FTRACE,<
   186					X PGTPTR,1	;TRACE PUTTER
   187		   	   000704		Z=<Z+1>&<-2>	;TRACE MUST BEGIN ON AN EVEN WORD
   188					X PGTRCE,1	;TRACE
   189					>;IFN FTRACE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 4
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- STG

   190
   191					;OFFSETS FOR STATION TABLE ENTRIES
   192
   193		   	   000000	Z=0
   194					X PGDLNK,1	;LINE TABLE THREAD
   195					    DEFSTR (DDLNK,PGDLNK(P4),35,18)  ; FORWARD THREAD
   196					    DEFSTR (DDBAK,PGDLNK(P4),17,18)	; BACK LINK
   197					X PGDADR,1	;STATION ID
   198					    DEFSTR (DDDRP,PGDADR(P4),17,8)   ;DROP# OF STATION
   199					    DEFSTR (DDLMX,PGDADR(P4),35,8)   ;LAST MESSAGE XMTED PREVIOUS INTERVAL
   200					X PGDSTS,1	;DDCMP STATUS
   201					    DEFSTR (DDSTA,PGDSTS(P4),35,3) ;DDCMP STATE
   202		   	   000000		STADWN==0		;KMC11 NOT RUNNING
   203		   	   000001		STAMAI==1		;MAINT MODE
   204		   	   000002		STASTR==2		;SENDING STARTS
   205		   	   000003		STASTK==3		;SENT STACK
   206		   	   000004		STARUN==4		;RUNNING
   207					    DEFSTR (DDTIM,PGDSTS(P4),32,7)	;TIMER
   208		   	   000005		TIMSTR==5	;5 SECONDS BETWEEN STARTS
   209		   	   000003		TIMREP==3	;3 SECONDS BETWEEN REPS
   210		   	   000010		REPMAX==10	;MAXIMUM NUMBER OF REPS BEFORE DECLARING LINE DOWN
   211					    DEFSTR (DDXAK,PGDSTS(P4),17,1)	;want to send an ack
   212					    DEFSTR (DDNCD,PGDSTS(P4),15,6)	;nak code to send
   213					    DEFSTR (DDXRP,PGDSTS(P4),9,1)	;WANT TO SEND A REP
   214					    DEFSTR (DCHNG,PGDSTS(P4),8,3)	;INFORMATION FOR NSPSRV (SWAPPABLE)
   215					    DEFSTR (DDSEL,PGDSTS(P4),5,1)	;SEND SELECT
   216					    DEFSTR (DDACI,PGDSTS(P4),4,1)	;ACTIVE/IDLE INDICATOR FOR SLAVES
   217					    DEFSTR (DDSFC,PGDSTS(P4),3,4)	;STARTUP FAILURE COUNTER
   218		   	   000010		MAXSTR==10	;MAXIMUM STARTUPS TO TRY BEFORE GIVING UP
   219		   	   000001		DDUP==1		;DDCMP NOW UP
   220		   	   000002		DDOWN==2	;DDCMP DOWN
   221		   	   000003		DDPT==3		;INDICATOR FOR XMIT COMPLETE
   222		   	   000004		DDSF==4		;INDICATOR FOR STARTUP FAILURE
   223					X PGDOMQ,1	;DDCMP OUTPUT MESSAGE QUEUE
   224							; LH IS ADR OF FIRST OUTPUT MESSAGE BLOCK
   225							; RH IS ADR OF LAST OUTPUT MESSAGE BLOCK
   226					X PGOLST,1	;THREAD FOR OUTPUT MESSAGE STATION QUEUE
   227							;LH IS BACK POINTER ,, RH IS FORWARD POINTER
   228					X PGDLMX,1	;RH IS ADR OF MESSAGE BLOCK FOR LAST MESSAGE TRANSMITTED
   229					X PGFCOR,1	;RH & LH ARE ADR OF CORE BLOCKS FOR MESSAGE QUEUE
   230							;LH ASSIGNED FIRST, RH USED FIRST
   231					X PGDMNM,1	;DDCMP MESSAGE NUMBERS
   232					    DEFSTR (DDRMN,PGDMNM(P4),7,8)	;RECEIVED MESSAGE NUMBER (HIGHEST)
   233					    DEFSTR (DDHXM,PGDMNM(P4),15,8)	;HIGHEST MESSAGE NUMBER TRANSMITTED
   234					    DEFSTR (DDHMA,PGDMNM(P4),23,8)	;HIGHEST MESSAGE NUMBER ACKED
   235					    DEFSTR (DDREPC,PGDMNM(P4),35,12)	;COUNTER FOR REPS
   236					X PGDPRI,1	;STATION POLLING PRIORITY
   237					    DEFSTR (DDSPC,PGDPRI(P4),35,18)	;STATION PRIORITY COUNTER
   238					    DEFSTR (DDIPC,PGDPRI(P4),17,18)	;INITIAL PRIORITY COUNT
   239					X PGLTIM,1	;TIME LAST ZEROED COUNTERS
   240					X PGLCOC,10	;CONTROL OUT COUNTS - AS FOR DUP
   241					X PGLRNK,10	;COUNT OF RECEIVED NAKS
   242					X PGLXNK,10	;COUNT OF XMIT NAKS
   243		   	   000042	DDLSZ==Z
   244						PURGE	Z,X
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 5
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- STG

   245
   246						SUBTTL	DEFINITIONS -- KMC11
   247
   248					;KMC11 REGISTER BIT DEFINITIONS
   249
   250		   	   000000	BSEL0==0
   251		   	   000001	BSEL1==1
   252		   	   100000		KMCRUN==100000	;RUN FLOP
   253		   	   040000		KMCMCL==040000	;MASTER CLEAR
   254		   	   020000		KMCCWR==020000	;CRAM WRITE
   255		   	   010000		KMCSLU==010000	;STEP LINE UNIT
   256		   	   004000		KMCLUL==004000	;LINE UNIT LOOP
   257		   	   002000		KMCRMO==002000	;ROM OUTPUT
   258		   	   001000		KMCRMI==001000	;ROM INPUT
   259		   	   000400		KMCSUP==000400	;STEP u-PROCESSOR
   260		   	   000200		KMCRQI==000200	;REQUEST INPUT
   261		   	   000020		KMCIEO==000020	;INTERRUPT ENABLE OUTPUT
   262		   	   000001		KMCIEI==000001	;INTERRUPT ENABLE INPUT
   263		   	   000002	BSEL2==2
   264		   	   000003	BSEL3==3		;CONTAINS LINE NUMBER
   265		   	   000200		KMCRDO==000200	;READY FOR OUTPUT
   266		   	   000020		KMCRDI==000020	;READY FOR INPUT
   267		   	   000004		KMCIOT==000004	;SET FOR RECEIVE CLEARED FOR TRANSMIT
   268		   	   000003		KMCTYP==000003	;COMMAND TYPE
   269		   	   000003		 BASEIN==000003	;BASE IN
   270		   	   000001		 CNTLIN==000001	;CONTROL IN
   271		   	   000000		 BFADIN==000000	;BUFFER ADDRESS IN
   272		   	   000001		 CNTLOU==000001	;CONTROL OUT
   273		   	   000000		 BFADOU==000000	;BUFFER ADDRESS OUT
   274		   	   000004	BSEL4==4
   275		   	   000005	BSEL5==5
   276								;BUFFER DESCRIPTOR LIST ADDRESS (BUFFER ADR IN & OUT & CONTROL OUT)
   277		   	   000006	BSEL6==6
   278		   	   000007	BSEL7==7
   279							;140000	;ADR BITS 17 & 16 (BUFFER ADR IN & OUT & CONTROL OUT)
   280		   	   010000		BFREOM==010000	;END OF MESSAGE (BUFFER ADR OUT)
   281		   	   020000		BFRENB==020000	;BUFFER ENABLE (BUFFER ADR IN)
   282		   	   010000		BFRKIL==010000	;BUFFER KILL (BUFFER ADR IN)
   283		   	   017770		CSRMSK==017770	;MASK FOR DUP11 CSR ADR (BASE IN)
   284		   	   100000		CDDCMP==100000	;FLAG THIS A DDCMP LINE (CONTROL IN)
   285		   	   020000		CHALFD==020000	;FLAG THIS IS HALF DUPLEX (CONTROL IN)
   286							;010000	;ENABLE SECONDARY STATION (CONTROL IN)
   287							;001000	;CRC INHIBIT (CONTROL IN)
   288		   	   000400		CENABL==000400	;FLAG TO ENABLE LINE (CONTROL IN)
   289		   	   000377		COUERR==000377	;ERROR CODE (CONTROL OUT)
   290
   291		   	   002000	CRAMSZ==2000	;SIZE OF KMC11 CRAM
   292		   	   002000	DRAMSZ==2000	;SIZE OF KMC11 DRAM
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 6
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- KMC11

   293
   294					;BUFFER DESCRIPTOR LISTS ARE STRINGS OF 3 16 BIT WORDS
   295					; 1ST WORD 16 BITS OF BUFFER ADDRESS
   296					; 2ND WORD 16 BIT BYTE COUNT
   297					; 3RD WORD
   298		   	   100000		BDLLDS==100000	;LAST DESCRIPTOR
   299		   	   010000		BDLRSY==010000	;RESYNC TRANSMITTER
   300						;==006000	;BUFFER ADDRESS 17 & 16
   301		   	   001000		BDLEOM==001000	;END OF MESSAGE
   302		   	   000400		BDLSOM==000400	;START OF MESSAGE
   303
   304					;MESSAGES TO THE KMC11
   305					; BASEIN:	BSEL2/	<LINE #>*400+3
   306					;		BSEL6/	<DUP11 ADR>&017770
   307					; CONTROL IN:	BSEL2/	<LINE #*400+1
   308					;		BSEL6/	FLAGS
   309					; BF AD IN:	BSEL2/	<LINE NU>*400+0+<4 IF INPUT>
   310					;		BSEL4/	BUFFER DESCRIPTOR LIST ADR
   311					;		BSEL6/	FLAGS
   312					; BF AD OUT:	BSEL2/	<LINE NU>*400+0+<4 IF RECEIVE>
   313					;		BSEL4/	BUFFER DESCRIPTOR LIST ADR
   314					;		BSEL6/	FLAGS
   315					; CONTROL OUT:	BSEL2/	<LINE NU>*400+1+<4 IF RECEIVE>
   316					;		BSEL4/	BUFFER DESCRIPTOR LIST ADR
   317					;		BSEL6/	ERROR CODE
   318
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 7
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- KMC11

   319
   320					;INPUT DATA BUFFERS FOR VT62
   321					;QUEUE HEADER IS PGLINQ(P1)
   322					;LH IS TAIL
   323					;RH IS HEAD
   324					;EACH DATA BUFFER CONTAINS A TWO WORD HEADER
   325		   	   000002		MSHDR==2
   326		   	   000000		INDLNK==0	;LH SYSTEM LINE #, RH LINK TO NEXT BUFFER OR ZERO
   327		   	   000001		INDCNT==1	;BYTE COUNT OF DATA
   328		   	   000050		MAXIN==^D40	;MAXIMUM NUMBER OF INPUT BUFFERS KDPSRV WILL MAINTAIN
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 8
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- KMC11

   329
   330						SUBTTL	DEFINITIONS -- DUP11
   331
   332		   000003  760300		DUPADR==3760300	;ADDRESS OF 1ST DUP11
   333		   	   000003		DUPUBN==3	;UNIBUS ADAPTER NUMBER FOR DUP11
   334
   335		   	   000000		DPRCSR==0	;RECEIVER CSR
   336		   	   000002			DPDTR==000002	;DATA TERMINAL READY
   337		   	   000002		DPRDBF==2	;(RO)RECEIVER DATA BUFFER
   338		   	   000002		DPPCSR==2	;(WO)PARAMETER CONTROL AND STATUS REGISTER
   339		   	   000004		DPTCSR==4	;TRANSMIT CONTROL AND STATUS REGISTER
   340		   	   004000			DPCBLP==004000	;EXTERNAL MAINTENCE MODE (CABLE LOOPBACK)
   341		   	   010000			DPCNLP==010000	;SYSTEMS TEST MODE (CONTROLLER LOOPBACK)
   342		   	   014000			DPMAIN==014000	;MAINTAINENCE MODE BITS
   343		   	   000006		DPTDBF==6	;TRANSMIT DATA BUFFER
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 9
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- DUP11

   344
   345						SUBTTL	DEFINITIONS -- DDCMP
   346
   347		   	   000226		SYN==226
   348		   	   000226		IDLE==SYN	;NO SPECIAL IDLE CHARACTER
   349		   	   000005		ENQ==005	;1ST CHAR IN UNNUMBERED MESSAGES
   350		   	   000220		DLE==220	;1ST CHAR IN BOOTSTRAP MESSAGES
   351		   	   000201		SOH==201	;1ST CHAR IN NUMBERED MESSAGES
   352
   353		   	   000010		MAXOUT==10	;MAXIMUM NUMBER OF DATA MESSAGES TO PUT IN PIPE
   354
   355					;NUMBERED MESSAGES
   356					;	SOH CC1 CC2 QSYNC SELECT R N A0 BCC1 DATA BCC2
   357					;	CC1&CC2 ARE TOTAL LENGTH OF DATA(BCC1 THRU BCC2 EXCLUSIVE)
   358					;	CC1 IS LOWORDER 8BITS OF LENGTH
   359					;	CC2 IS HIGH ORDER 6 BITS OF LENGTH
   360		   	   000100		QSYNC==100	;QSYNC BIT
   361		   	   000200		SELECT==200	;SELECT BIT
   362					;	R IS # OF LAST GOOD MESSAGE RECEIVED
   363					;	N IS THIS MESSAGE NUMBER
   364		   	   000001		A0==1	;A0 IS THE DESTINATION STATION ADR(ALWAYS 1)
   365					;	BCC1 IS THE 16 BIT CRC ON SOH THROUGH A0 INCLUSIVE
   366					;	DATA IS PASSED TO NCL
   367					;	BCC2 IS THE 16BIT CRC OF DATA
   368					;UNNUMBERED MESSAGES
   369		   	   000000		FILL==000		;FILL CHARACTER
   370
   371					;ACK:	ENQ	ACK	QSYNC SELECT FILL	MSG#	FILL	A0	BCC1	BCC2
   372		   	   000001		ACK==001
   373					;	MSG# IS LAST GOOD MSG RECEIVED
   374
   375					;NAK:	ENQ	NAK	QSYNC SELECT RNAK	MSG#	FILL	A0	BCC1	BCC2
   376		   	   000002		NAK==002		;NETIVE ACKNOWLEDGE
   377					;	RNAK IS NAK REASON AS FOLLOWS
   378		   	   000001		NCDHBC==1	;HEADER BCC ERROR
   379		   	   000002		NCDBCC==2	;DATA BCC ERROR
   380		   	   000003		NCDREP==3	;REP RESPONSE
   381		   	   000010		NCDBTU==^D8	;BUFFER TEMPORARILY UNAVAILABLE		(rjp)
   382		   	   000011		NCDROV==^D9	;RECEIVER OVERRUN			(rjp)
   383		   	   000020		NCDMTL==^D16	;MESSAGE TOO LONG			(rjp)
   384		   	   000021		NCDHFE==^D17	;HEADER FORMAT ERROR			(rjp)
   385					;	MSG# IS LAST GOOD MSG RECEIVED
   386
   387					;REP:	ENQ	REP	QSYNC SELECT FILL	FILL	N	A0	BCC1	BCC2
   388		   	   000003		REP==003		;REPLY TYPE
   389					;	N IS THE LAST MESSAGE# SENT
   390
   391					;RESET:	ENQ	RESET	QSYNC SELECT FILL	FILL	N	A0	BCC1	BCC2
   392					;	RESET==4		;DC72 WILL NOT SEND THIS TYPE;WILL RESPOND WITH START
   393
   394					;RESAK:	ENQ	RESAK	QSYNC SELECT FILL	R	FILL	A0	BCC1	BCC2
   395		   	   000005		RESAK==5		;DC72 WILL NOT SEND THIS TYPE;WILL RESPOND WITH START
   396
   397					;START:	ENQ	STRT	QSYNC SELECT FILL	FILL	N	A0	BCC1	BCC2
   398		   	   000006		STRT==006		;START TYPE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 9-1
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- DDCMP

   399					;	N IS NEXT NUMBERED MESSAGE TO BE SENT
   400
   401					;STACK:	ENQ	STACK	QSYNC SELECT FILL	R	N	A0	BCC1	BCC2
   402		   	   000007		STACK==007		;START ACKNOWLEDGE
   403					;	R IS NEXT EXPECTED MESSAGE # FOR RECPTION
   404					;	N IS NEXT MESSAGE # FOR TRANSMISSION
   405
   406
   407		   	   000377	MSNMAX==377		;MAXIMUM MESSAGE NUMBER
   408
   409					;WHEN A MSG IS RECEIVED CORRECTLY AN ACK IS SENT BACK;
   410					; AN ACK IMPLIES ACK OF ALL LOWER NUMBERED MESSAGES
   411					;WHEN A MSG IS RECEIVED INCORRECTLY A NAK MSG IS SENT BACK;
   412					; A NAK IMPLIES ACK OF ALL LOWER NUMBERED MSGS.
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 10
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- MOP

   413						SUBTTL	DEFINITIONS -- MOP
   414
   415		   	   000000		.MPLDT==0		;MEMORY LOAD WITH TRANSFER ADDRESS
   416		   	   000004		.MPRQD==4		;REQUEST MEMORY DUMP
   417		   	   000006		.MPMOP==6		;ENTER MOP MODE
   418		   	   000010		.MPRQP==8		;PROGRAM REQUEST
   419		   	   000014		.MPDMC==^D12		;DMC DEV CODE
   420		   	   000000		MPSPRQ==0		;PROGRAM REQUEST FOR SECONDARY BOOTSTRAP
   421		   	   000001		.BTPSW==1		;PASSWORD IN BOOT BLOCK
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 11
KDPSRV	MAC	30-Sep-80 14:34		DEFINITIONS -- MOP

   422
   423						SUBTTL	PROTOTYPE MESSAGES
   424
   425						RESCD
   426	000000'01  000405  000000	ACKMSG:	BYTE(18)ENQ+400*ACK,FILL+400*FILL,FILL+400*A0,FILL+400*FILL
   427
   428	000002'01  001005  000000	NAKMSG:	BYTE(18)ENQ+400*NAK,FILL+400*FILL,FILL+400*A0,FILL+400*FILL
   429
   430	000004'01  001405  000000	REPMSG:	BYTE(18)ENQ+400*REP,FILL+400*FILL,FILL+400*A0,FILL+400*FILL
   431
   432	000006'01  003005  000300	STRTMS:	BYTE(18)ENQ+400*STRT,QSYNC+SELECT+FILL+400*FILL,FILL+400*A0,FILL+400*FILL
   433
   434	000010'01  003405  000300	STCKMS:	BYTE(18)ENQ+400*STACK,QSYNC+SELECT+FILL+400*FILL,FILL+400*A0,FILL+400*FILL
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 12
KDPSRV	MAC	30-Sep-80 14:34		PROTOTYPE MESSAGES

   435
   436						;table of legal NAK reason codes. used to offset into line table
   437						;PGNRNK and PGNXNK...
   438
   439	000012'01  000000  000000	naktbl:	0		
   440	000013'01  000000  000001		1			;offset NAK reason 1
   441	000014'01  000000  000002		2			;offset NAK reason 2
   442	000015'01  000000  000003		3			;offset NAK reason 3
   443	000016'01  000000  000000		0
   444	000017'01  000000  000000		0
   445	000020'01  000000  000000		0
   446	000021'01  000000  000000		0
   447	000022'01  000000  000004		4			;offset NAK reason 8
   448	000023'01  000000  000005		5			;offset NAK reason 9
   449	000024'01  000000  000000		0
   450	000025'01  000000  000000		0
   451	000026'01  000000  000000		0
   452	000027'01  000000  000000		0
   453	000030'01  000000  000000		0
   454	000031'01  000000  000000		0
   455	000032'01  000000  000006		6			;offset NAK reason 16
   456	000033'01  000000  000007		7			;offset NAK reason 17
   457
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 13
KDPSRV	MAC	30-Sep-80 14:34		PROTOTYPE MESSAGES

   458
   459						SUBTTL	DUP11 COMIOP CODE FOR KMC11
   460
   461						SWAPCD
   462	000000'02  061220  061222	COMIOP:	BYTE(18)61220,61222,63234,63233,63224,16400,123600,60400
   463	000004'02  103412  100405		BYTE(18)103412,100405,440,63225,74524,63220,60365,101427
   464	000010'02  063064  002777		BYTE(18)63064,2777,4457,70000,76613,62614,114707,4003
   465	000014'02  010375  016451		BYTE(18)10375,16451,16517,2777,123620,103163,10375,4003
   466	000020'02  140620  120440		BYTE(18)140620,120440,103501,120440,103434,400,61222,2511
   467	000024'02  100434  002511		BYTE(18)100434,2511,10377,50220,101434,55223,55224,55225
   468	000030'02  055226  055227		BYTE(18)55226,55227,55222,10376,57221,43220,2517,767
   469	000034'02  060360  101474		BYTE(18)60360,101474,406,62400,40361,101477,100500,2777
   470
   471	000040'02  010375  123400		BYTE(18)10375,123400,103105,2441,100434,2443,700,61231
   472	000044'02  100434  120400		BYTE(18)100434,120400,103514,100451,3020,61202,102121,2524
   473	000050'02  100434  002531		BYTE(18)100434,2531,600,100507,120440,103127,100533,120400
   474	000054'02  102121  120440		BYTE(18)102121,120440,103034,2451,457,63225,123072,60532
   475	000060'02  070005  057233		BYTE(18)70005,57233,47234,70213,14414,75231,56226,56227
   476	000064'02  070213  120440		BYTE(18)70213,120440,102555,102272,100764,102254,400,61222
   477	000070'02  123620  116353		BYTE(18)123620,116353,100434,521,61271,400,63232,73233
   478	000074'02  067234  100607		BYTE(18)67234,100607,123620,116353,63072,420,60372,101436
   479
   480	000100'02  004457  063220		BYTE(18)4457,63220,60532,70000,57233,47234,70213,54620
   481	000104'02  043220  101572		BYTE(18)43220,101572,62560,101172,76620,56224,56225,415
   482	000110'02  061230  043231		BYTE(18)61230,43231,120600,102222,23421,60731,106750,23100
   483	000114'02  023417  103637		BYTE(18)23417,103637,1400,106441,60617,107576,100572,402
   484	000120'02  062004  000415		BYTE(18)62004,415,61230,120600,102243,23007,23030,60617
   485	000124'02  100632  110740		BYTE(18)100632,110740,110470,110545,137140,14770,62660,56226
   486	000130'02  123160  000740		BYTE(18)123160,740,62700,42227,401,62223,556,63236
   487	000134'02  000405  114643		BYTE(18)405,114643,120560,102277,17400,76560,100702,136500
   488
   489	000140'02  136500  000422		BYTE(18)136500,422,76222,134560,2401,103707,2400,42223
   490	000144'02  000421  061230		BYTE(18)421,61230,120600,102312,123560,103724,122142,2600
   491	000150'02  102722  002400		BYTE(18)102722,2400,422,100732,2626,42222,2444,103331
   492	000154'02  002440  000600		BYTE(18)2440,600,62263,736,63236,114645,120560,1400
   493	000160'02  103343  000400		BYTE(18)103343,400,100746,410,63220,42700,76222,2633
   494	000164'02  120560  103753		BYTE(18)120560,103753,2605,400,76223,136540,454,70013
   495	000170'02  002400  000556		BYTE(18)2400,556,63236,114645,22144,22165,415,61230
   496	000174'02  120440  001400		BYTE(18)120440,1400,102775,432,100776,411,60413,63226
   497
   498	000200'02  120600  106000		BYTE(18)120600,106000,23017,120560,113002,417,70006,43625
   499	000204'02  001400  107033		BYTE(18)1400,107033,2440,70206,136500,136520,123160,700
   500	000210'02  060660  001400		BYTE(18)60660,1400,1400,1400,1400,62620,60525,103556
   501	000214'02  000434  063235		BYTE(18)434,63235,114450,500,62705,43225,403,70006
   502	000220'02  104414  060601		BYTE(18)104414,60601,1400,107045,100634,404,62004,415
   503	000224'02  061230  120600		BYTE(18)61230,120600,106051,20400,107456,100634,22106,22127
   504	000230'02  123220  000501		BYTE(18)123220,501,63260,414,61311,454,70013,43620
   505	000234'02  113105  000451		BYTE(18)113105,451,70013,40620,1400,107107,106100,100634
   506
   507	000240'02  023140  000770		BYTE(18)23140,770,62266,773,63677,62222,110520,20400
   508	000244'02  107116  020420		BYTE(18)107116,20420,102634,3020,110515,103634,43620,106164
   509	000250'02  000463  063236		BYTE(18)463,63236,445,114632,43621,76461,106152,62224
   510	000254'02  056225  000414		BYTE(18)56225,414,63260,61070,400,62223,120600,106136
   511	000260'02  036002  022420		BYTE(18)36002,22420,23140,402,62006,421,61230,120600
   512	000264'02  106147  100634		BYTE(18)106147,100634,105155,14400,104561,560,63236,114743
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 13-1
KDPSRV	MAC	30-Sep-80 14:34		DUP11 COMIOP CODE FOR KMC11

   513	000270'02  000400  076223		BYTE(18)400,76223,42222,104542,113040,20420,107573,62560
   514	000274'02  060611  001400		BYTE(18)60611,1400,107120,401,62223,104542,404,70013
   515
   516	000300'02  064214  057231		BYTE(18)64214,57231,60610,117550,144620,2611,572,77236
   517	000304'02  104620  002615		BYTE(18)104620,2615,572,77236,104620,106627,653,77236
   518	000310'02  074611  113545		BYTE(18)74611,113545,43220,76607,43227,62600,160616,2605
   519	000314'02  000435  063235		BYTE(18)435,63235,110635,2656,404,70013,456,62671
   520	000320'02  043231  000601		BYTE(18)43231,601,60367,105653,405,60367,111545,620
   521	000324'02  060367  105653		BYTE(18)60367,105653,114567,401,62711,110545,2663,407
   522	000330'02  070013  062607		BYTE(18)70013,62607,110545,2677,410,70013,477,62667
   523	000334'02  063271  000404		BYTE(18)63271,404,70013,700,60667,62711,110545,2701
   524
   525	000340'02  110545  002703		BYTE(18)110545,2703,110545,2717,74611,1400,106710,110545
   526	000344'02  040367  111545		BYTE(18)40367,111545,404,70013,420,62711,110545,2721
   527	000350'02  100572  002727		BYTE(18)100572,2727,107324,114555,60611,102172,104756,437
   528	000354'02  063236  114627		BYTE(18)63236,114627,105334,104737,60611,103172,110545,405
   529	000360'02  070013  002743		BYTE(18)70013,2743,100572,107356,114557,120600,106345,100572
   530	000364'02  003002  042722		BYTE(18)3002,42722,706,63236,416,110722,2633,60611
   531	000370'02  107364  000400		BYTE(18)107364,400,63235,110635,417,70013,57224,57223
   532	000374'02  057222  057221		BYTE(18)57222,57221,57220,76604,76603,76602,76601,76600
   533
   534	000400'02  060531  114762		BYTE(18)60531,114762,120440,1400,112414,454,70013,43220
   535	000404'02  000423  062700		BYTE(18)423,62700,601,110420,417,63235,114571,605
   536	000410'02  063222  000426		BYTE(18)63222,426,63223,426,63235,110663,417,70006
   537	000414'02  002602  120560		BYTE(18)2602,120560,1400,107005,100556,100572,114567,104732
   538	000420'02  060611  001400		BYTE(18)60611,1400,113051,400,62222,2003,757,62660
   539	000424'02  104542  000626		BYTE(18)104542,626,76222,401,76223,43221,62561,105142
   540	000430'02  000451  070013		BYTE(18)451,70013,110446,105124,20420,113533,60600,112522
   541	000434'02  000473  063235		BYTE(18)473,63235,110731,774,23140,62266,451,70013
   542
   543	000440'02  043620  061620		BYTE(18)43620,61620,107115,112127,100634,112541,2400,451
   544	000444'02  070013  040620		BYTE(18)70013,40620,1400,107107,3000,410,60671,62302
   545	000450'02  000621  104546		BYTE(18)621,104546,402,62223,652,63236,114645,454
   546	000454'02  070013  002423		BYTE(18)70013,2423,100634,422,63223,473,63235,601
   547	000460'02  110734  062560		BYTE(18)110734,62560,404,62223,104542,430,70013,43622
   548	000464'02  001400  113160		BYTE(18)1400,113160,435,63235,571,63236,414,110722
   549	000470'02  000563  063236		BYTE(18)563,63236,114631,111204,43622,112167,110577,572
   550	000474'02  063236  114615		BYTE(18)63236,114615,60562,62226,14621,42222,61230,545
   551
   552	000500'02  063235  120600		BYTE(18)63235,120600,112201,110714,40620,112213,14000,14776
   553	000504'02  076662  062607		BYTE(18)76662,62607,110627,616,63236,114615,74607,62223
   554	000510'02  042222  060602		BYTE(18)42222,60602,112225,421,110626,621,61230,426
   555	000514'02  070013  000745		BYTE(18)70013,745,63236,401,114741,426,70013,43622
   556	000520'02  112242  110654		BYTE(18)112242,110654,645,63236,114615,74562,62226,42222
   557	000524'02  000621  061230		BYTE(18)621,61230,120600,112252,420,63223,604,63222
   558	000530'02  000411  060413		BYTE(18)411,60413,63226,70206,56226,56227,123220,501
   559	000534'02  063260  043221		BYTE(18)63260,43221,414,60661,61311,406,70006,57220
   560
   561	000540'02  043221  000413		BYTE(18)43221,413,70006,56342,54441,76223,651,77236
   562	000544'02  040620  001400		BYTE(18)40620,1400,117245,110740,400,63223,604,63222
   563	000550'02  000411  110736		BYTE(18)411,110736,63223,3400,63221,63224,601,63222
   564	000554'02  110746  000400		BYTE(18)110746,400,63223,600,63222,432,60413,63226
   565	000560'02  000416  063236		BYTE(18)416,63236,70206,57220,57221,43224,10376,4003
   566	000564'02  050220  076612		BYTE(18)50220,76612,76600,76601,62603,60602,112361,2400
   567	000570'02  110763  000400		BYTE(18)110763,400,63223,77124,63124,63124,63524,76703
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 13-2
KDPSRV	MAC	30-Sep-80 14:34		DUP11 COMIOP CODE FOR KMC11

   568	000574'02  076602  010376		BYTE(18)76602,10376,57220,40620,115410,60360,115412,10376
   569
   570	000600'02  000767  060360		BYTE(18)767,60360,115406,406,62400,174616,2517,174616
   571	000604'02  062600  110777		BYTE(18)62600,110777,70200,3200,42700,174616,417,70006
   572	000610'02  064214  043620		BYTE(18)64214,43620,117430,70206,432,63236,406,114741
   573	000614'02  060520  117435		BYTE(18)60520,117435,737,62660,170615,677,62660,403
   574	000620'02  070006  057220		BYTE(18)70006,57220,57221,57222,70206,76600,76601,62602
   575	000624'02  070206  056224		BYTE(18)70206,56224,56225,401,63220,55310,120600,116056
   576	000630'02  037004  037025		BYTE(18)37004,37025,465,63236,114721,37002,23023,36400
   577	000634'02  036420  076604		BYTE(18)36420,76604,76605,476,63236,114721,23020,36420
   578
   579	000640'02  076602  076603		BYTE(18)76602,76603,76604,76605,43222,540,60662,62700
   580	000644'02  000411  060413		BYTE(18)411,60413,60366,115543,74564,116126,62224,60605
   581	000650'02  062225  000414		BYTE(18)62225,414,63260,61070,120600,116124,36420,16407
   582	000654'02  060617  001400		BYTE(18)60617,1400,116542,2400,404,63717,62222,542
   583	000660'02  063236  114672		BYTE(18)63236,114672,170615,754,43220,63260,62460,170615
   584	000664'02  117157  060530		BYTE(18)117157,60530,117561,406,114562,410,114562,412
   585	000670'02  114562  000424		BYTE(18)114562,424,63223,436,63235,605,110657,435
   586	000674'02  063235  064214		BYTE(18)63235,64214,757,63677,62222,600,63236,114672
   587
   588	000700'02  000420  063717		BYTE(18)420,63717,62222,621,61230,54620,2633,1400
   589	000704'02  117212  002605		BYTE(18)117212,2605,120600,116212,170615,56226,56227,123220
   590	000710'02  000501  063260		BYTE(18)501,63260,414,63221,40661,61311,170616,407
   591	000714'02  114632  000424		BYTE(18)114632,424,70013,43221,76561,115640,14000,170616
   592	000720'02  043221  076561		BYTE(18)43221,76561,170616,3221,114647,402,3021,23140
   593	000724'02  062006  023160		BYTE(18)62006,23160,62107,115255,114662,123220,404,63000
   594	000730'02  000515  061271		BYTE(18)515,61271,123200,555,60660,60701,61230,120600
   595	000734'02  116267  160616		BYTE(18)116267,160616,402,70013,56226,56227,123220,501
   596
   597	000740'02  063260  000414		BYTE(18)63260,414,61311,621,61230,114733,100572,460
   598	000744'02  073013  060013		BYTE(18)73013,60013,115315,64214,100414,67114,400,73233
   599	000750'02  100414  000402		BYTE(18)100414,402,23100,62004,23120,62105,123200,115336
   600	000754'02  000416  063260		BYTE(18)416,63260,61070,120600,116333,174616,404,63000
   601	000760'02  114730  063220		BYTE(18)114730,63220,56400,43220,76500,115347,164616,43220
   602	000764'02  000404  062400		BYTE(18)404,62400,164616,500,61271,761,63236,420
   603	000770'02  110722  100434		BYTE(18)110722,100434,117567,100572,0,0,0,0
   604	000774'02  000000  000000		BYTE(18)0,0,0,0,0,0,0,0
   605
   606	001000'02			COMIOE:	;END OF COMIOP CODE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 14
KDPSRV	MAC	30-Sep-80 14:34		DUP11 COMIOP CODE FOR KMC11

   607
   608						SUBTTL	BOOT JSYS -- PERFORM BOOTSTRAP FUNCTIONS FOR KMC11
   609
   610					;BOOT JSYS IS USED TO LOAD AND DUMP KMC11
   611					; CALL	MOVEI AC1,<FUNCTION CODE>
   612					;	MOVEI AC2,<ADR OF ARGUMENT BLOCK>
   613					;	BOOT
   614					;
   615					;REG STRING IS BSEL0,BSEL2,BSEL4,BSEL6,MISC+NPR,INDATA,OUTDATA,INBA,OUTBA
   616
   617
   618					; TABLE OF DISPATCH ADDRESSES
   619
   620	001000'02  000000  001077'	BOOTTB:	EXP BTINI		;(0) = ENTER MOP MODE
   621	001001'02  000000  001154'		EXP BTLSB		;(1) = LOAD SECONDARY BOOTSTRAP
   622	001002'02  000000  001213'		EXP BTSMP		;(2) = SEND MOP MESSAGE
   623	001003'02  000000  001033'		EXP BTERR		;(3) = DUMP MEMORY
   624	001004'02  000000  001351'		EXP BTIPR		;(4) = INITIALIZE PROTOCOL
   625	001005'02  000000  001455'		EXP BTTPR		;(5) = TERMINATE PROTOCOL
   626	001006'02  000000  001527'		EXP BTSTS		;(6) = RETURN STATUS
   627	001007'02  000000000000#		EXP RSKP		;(7) = WAIT FOR TO-10 DOORBELL
   628	001010'02  000000  001251'		EXP BTRMP		;(10) = READ MOP MESSAGE
   629	001011'02  000000  001622'		EXP BTKML		;(11) = LOAD KMC11
   630	001012'02  000000  002075'		EXP BTKMD		;(12) = DUMP KMC11
   631	001013'02  000000  002206'		EXP BTRLC		;(13) = RETURN LINE COUNTS
   632	001014'02  000000  002243'		EXP BTCLI		;(14) = CONVERT LINE-ID TO PORT NUMBER
   633	001015'02  000000  002257'		EXP BTCPN		;(15) = CONVERT PORT NUMBER TO LINE-ID
   634	001016'02  000000  001475'		EXP BTSTA		;(16) = SET TERMINAL STATE (ACTIVE/IDLE)
   635	001017'02  000000  001501'		EXP BTSSP		;(17) = SET START PRIORITY
   636	001020'02  000000  001505'		EXP BTSTP		;(20) = SET TERMINAL PRIORITY
   637	001021'02  000000  001305'		EXP BTSDD		;(21) = SEND DDCMP MESSAGE
   638	001022'02  000000  001552'		EXP BTRDD		;(22) = RECEIVE DDCMP
   639	001023'02  000000  001511'		EXP BTCHN		;(23) = ASSIGN SOFTWARE INTERRUPT CHANNEL
   640	001024'02  000000  001517'		EXP BTSLS		;(24) = SET LINE SERVICE TYPE
   641		   	   000025		BOOTLN==.-BOOTTB
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 15
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- PERFORM BOOTSTRAP FUNCTIONS FOR KMC11

   642
   643					;HERE ON A BOOT JSYS
   644	001025'02			.BOOT::	MCENT			;MONITOR CONTEXT ENTRY
   645	001025'02  200 01 0 00 000000*		MOVE T1,CAPENB		;GET ENABLED CAPABILITIES
   646	001026'02  606 01 0 00 640000 		TXNN T1,SC%WHL!SC%OPR!SC%MNT ;WHEEL, OPERATOR, OR MAINTENANCE ?
   647	001027'02  254 00 0 00 002500'		ITERR (CAPX2)		;WHEEL, OPERATOR, or MAINTENANCE capability required
   648	001030'02  256 04 0 00 002502'		UMOVE Q3,1		;GET FUNCTION CODE FROM USER
   649	001031'02  301 07 0 00 000000 		CAIL Q3,.BTROM		;CHECK RANGE OF GIVEN
   650	001032'02  301 07 0 00 000025 		CAIL Q3,.BTROM+BOOTLN	; FUNCTION CODE
   651	001033'02  254 00 0 00 002503'	BTERR:	ITERR (ARGX02)		;Invalid function
   652
   653					; VALIDATE KMC11 ADDRESS
   654
   655	001034'02  256 04 0 00 002505'		UMOVE Q1,2		;GET ADDRESS OF USER'S ARGUMENT BLOCK
   656
   657					; DISPATCH TO PROCESSING ROUTINE BASED ON REQUESTED FUNCTION
   658
   659	001035'02  260 17 1 07 001000'		CALL @BOOTTB-.BTROM(Q3)	;DISPATCH TO APPROPRIATE ROUTINE
   660	001036'02  265 02 0 00 000000*		 ITERR ()		;FAILED, RETURN ERROR TO USER
   661	001037'02  254 00 0 00 000000*		MRETNG			;SUCCESS, RETURN TO USER
   662
   663					;HERE TO GET KMC11 ADDRESS FROM ARGUMENT BLOCK
   664	001040'02  256 04 0 00 002506'	BTGKMA:	UMOVE Q2,.BTKMC(Q1)	;GET KMC11 ADDRESS FROM USER
   665	001041'02  602 06 0 00 000007 		TRNE Q2,7		;BE SURE FIRST KMC11 ADR
   666	001042'02  254 00 0 00 001050'		JRST BTDVX5		;GIVE USER ERROR
   667	001043'02  200 01 0 00 000006 		MOVE T1,Q2		;COPY KMC11 ADR FOR UBGOOD
   668	001044'02  135 02 0 00 002507'		LDB T2,[POINT 9,T1,22]	;GET UBA NUMBER & 5 BITS OF UNIBUS ADR
   669	001045'02  302 02 0 00 000077 		CAIE T2,77		;1,,76#### ?
   670	001046'02  306 02 0 00 000177 		CAIN T2,177		;OR 3,,76#### ?
   671	001047'02  260 17 0 00 000000*		CALL UBGOOD		;SEE IF THAT ADDRESS EXISTS
   672	001050'02  254 00 0 00 002510'	BTDVX5:	ITERR (DEVX5)		;No such device
   673	001051'02  263 17 0 00 000000 		RET
   674
   675					;HERE TO GET A PORT NUMBER ARGUMENT
   676					; RETURN:	P1/ LINES PAGE
   677					;		T4/ DUP11 HDW ADR
   678	001052'02  256 04 0 00 002512'	BTGPRT:	UMOVE T1,.BTPRT(Q1)	;GET PORT NUMBER FROM ARGUMENT BLOCK
   679	001053'02  550 04 0 00 000001 		HRRZ T4,T1		;COPY DUP#
   680	001054'02  311 04 0 00 000000*		CAML T4,KDPNLN		;IS ARGUMENT IN RANGE ?
   681	001055'02  254 00 0 00 002513'		ITERR (ARGX19)		;Invalid unit number
   682	001056'02  242 04 0 00 000003 		LSH T4,3		; *10
   683	001057'02  270 04 0 00 002515'		ADD T4,[DUPADR]		;MAKES THIS DUP11'S ADR
   684	001060'02  540 10 0 00 000001 		HRR P1,T1		;GET DUP #
   685	001061'02  540 10 0 10 000000*		HRR P1,KDPPAG(P1)	;GET ADR OF LINES PAGE
   686	001062'02  550 13 0 10 000001 		LOAD P4,DDSTT		;GET TOP OF STATION LIST
   687						JUMPE P4,[ HRR P4,PGCSTA(P1)  ;POINT TO POINT?
   688	001063'02  322 13 0 00 002516'		           RET ]	;ALL SET
   689	001064'02  557 00 0 00 000001 		HLRZS T1		;GET DROP FROM USER
   690	001065'02  336 00 0 00 000001 		SKIPN T1		;DID USER GIVE A DROP#
   691	001066'02  263 17 0 00 000000 		RET			;NO, USE THIS ONE
   692	001067'02  554 03 0 10 000001 		LOAD T3,DDSTB		;REMEMBER FOR END OF SEARCH
   693	001070'02  135 02 0 00 002520'	BTGPR1: LOAD T2,DDDRP		;GET THIS DROP #
   694	001071'02  316 02 0 00 000001 		CAMN T2,T1		;IS THIS THE ONE
   695	001072'02  263 17 0 00 000000 		RET			;GOT IT
   696	001073'02  316 13 0 00 000003 		CAMN P4,T3		;END OF LIST??
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 15-1
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- PERFORM BOOTSTRAP FUNCTIONS FOR KMC11

   697	001074'02  254 00 0 00 002513'		ITERR (ARGX19)		;INVALID DROP
   698	001075'02  550 13 0 13 000000 		LOAD P4,DDLNK		;GET NEXT LINE TABLE
   699	001076'02  254 00 0 00 001070'		JRST BTGPR1		;LOOP THROUGH LINE TABLES
   700
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 16
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP -- INITIALIZE A NEIGHBORING COMPUTER

   701					SUBTTL	BOOT JSYS --MOP -- INITIALIZE A NEIGHBORING COMPUTER
   702
   703	001077'02			BTINI:
   704	001077'02  260 17 0 00 001052'		CALL BTGPRT		; GET THE DUP HDW ADDR (T4) & LINE PAGE (P1)
   705	001100'02  260 17 0 00 001373'		CALL BTIMOP		; PUT LINE IN MAINTENANCE MODE
   706					; may want to do this first when successful, i.e. answer is back
   707	001101'02  255 00 0 00 000000 		 JFCL			; THERE IS NO ERROR RETURN
   708	001102'02  200 06 0 10 000673 		MOVE	Q2,PGMPSW(P1)	; GET THE BOOT PASSWORD
   709	001103'02  201 01 0 00 000001 		MOVEI	T1,MPPRI	;WE ARE NO IN PRIMARY MODE
   710	001104'02  137 01 0 00 002521'		STOR	T1,MOPSTS	;STORE IN MOP STATUS WORD
   711	001105'02  541 01 0 10 000677 		HRRI	T1,PGMXBF(P1)	; THIS WILL BE A SHORT MESSAGE
   712	001106'02  201 02 0 00 000001 		MOVEI	T2,MPSHRT	; REMEMBER THIS
   713	001107'02  506 02 0 10 000675 		STOR	T2,MPFLGS	; FOR LATER
   714	001110'02  505 01 0 00 221000 		HRLI	T1,(<POINT 8,0,17>)	; MAKE A BYTE POINTER
   715	001111'02  261 17 0 00 000001 		PUSH	P,T1		; SAVE IT FOR BELOW
   716	001112'02  202 06 0 01 000000 		MOVEM	Q2,(T1)		;PUT PASSWORD INTO MESSAGE
   717	001113'02  202 06 0 01 000001 		MOVEM	Q2,1(T1)	;NEED IT FOUR TIMES
   718	001114'02  201 02 0 00 000006 		MOVEI	T2,.MPMOP	; ENTER MOP MODE CODE
   719	001115'02  137 02 0 00 000001 		DPB	T2,T1		; PUT INTO MESSAGE
   720	001116'02  201 03 0 00 000005 		MOVEI	T3,5		; LENGTH OF MESSAGE
   721	001117'02  262 17 0 00 000002 		POP	P,T2		; GET BACK POINTER TO MESSAGE BUFFER
   722	001120'02  200 01 0 10 000007 		MOVE T1,PGKDPN(P1)	;SET LINE #
   723	001121'02  201 00 0 00 000000 		MOVEI	F,0		;NO SPECIAL POST ROUTINE
   724	001122'02  260 17 0 00 000000#		CALL XMTMOP		; go transmitt the MOP msg
   725	001123'02  263 17 0 00 000000 		RET			;DIDN'T MAKE IT???
   726	001124'02  201 01 0 00 000000#		MOVEI	T1,MPRTST	;DISMISS UNTIL A MESSAGE RETURNED FROM SATELLITE
   727	001125'02  504 01 0 00 000010 		HRL	T1,P1		;SO SCHEDULER TEST KNOWS WHERE TO LOOK
   728	001126'02  265 16 0 00 000000*		MDISMS			;DISMISS UNTIL ANSWER COMES FROM SATELITE
   729	001127'02  200 01 0 10 000672 		MOVE	T1,PGMSTS(P1)	;GET THE MOP STATUS WORD
   730	001130'02  603 01 0 00 400000 		TLNE	T1,MPERR	;ERROR?
   731	001131'02  263 17 0 00 000000 		RET			;YES
   732
   733
   734					;RESUME HERE WHENT THE SATELLITE HASE RESPONDED TO THE
   735					; ENTER-MOP-MODE MESSAGE
   736
   737	001132'02  200 03 0 10 000701 		MOVE	T3,PGMRHD(P1)	;GET THE RECEIVED BUFFER BYTE PTR
   738	001133'02  134 01 0 00 000003 		ILDB	T1,T3			
   739	001134'02  302 01 0 00 000010 		CAIE	T1,.MPRQP	; PROGRAM REQUEST?
   740						 JRST	[CALL RELMOP	;RELEASE BUFFER
   741	001135'02  254 00 0 00 002522'			 RET	]	;RETURN BAD
   742	001136'02  134 01 0 00 000003 		ILDB	T1,T3		; DEVTYPE FIELD
   743	001137'02  302 01 0 00 000014 		CAIE	T1,.MPDMC	; ON A DMC11?
   744						 JRST	[CALL RELMOP	;RELEASE BUFFER
   745	001140'02  254 00 0 00 002524'			 RET	]	;RETURN BAD
   746	001141'02  134 01 0 00 000003 		ILDB	T1,T3		; SKIP MOP VERSION FIELD
   747	001142'02  550 01 0 10 000702 		LOAD	T1,MPRLEN	; GET RECEIVED MSG LENGTH
   748	001143'02  307 01 0 00 000003 		CAIG	T1,3		; ANY MORE?
   749	001144'02  254 00 0 00 001150'		JRST	BTEMOK		; NO, ALL OKAY
   750	001145'02  134 01 0 00 000003 		ILDB	T1,T3		; GET PGM TYPE FIELD
   751	001146'02  302 01 0 00 000000 		CAIE	T1,MPSPRQ	; REQUESTING SECONDARY BOOTSTRAP
   752						 JRST	[CALL RELMOP	;RELEASE BUFFER
   753	001147'02  254 00 0 00 002526'			 RET	]	;RETURN BAD
   754	001150'02  260 17 0 00 000000#	BTEMOK:	CALL RELMOP		;RELEASE RECEIVE BUFFER
   755	001151'02  201 01 0 00 000002 		MOVEI	T1,MPSEC	;WE ARE NOW IN SECONDARY MODE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 16-1
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP -- INITIALIZE A NEIGHBORING COMPUTER

   756	001152'02  137 01 0 00 002521'		STOR	T1,MOPSTS	;STORE THIS FACT IN MOP STATUS WORD
   757	001153'02  254 00 0 00 000000*		RETSKP			;RETURN OKAY
   758
   759
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 17
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP--  LOAD SECONDARY BOOTSTRAP LOADER.

   760					SUBTTL	BOOT JSYS --MOP--  LOAD SECONDARY BOOTSTRAP LOADER.
   761
   762	001154'02			BTLSB:
   763	001154'02  260 17 0 00 001052'		CALL	BTGPRT		;GET DUP HDW ADDR AND LINE PAGE
   764	001155'02  135 01 0 00 002530'		LOAD	T1,DDSTA	; GET LINE STATUS
   765	001156'02  302 01 0 00 000001 		CAIE	T1,STAMAI	; IN MAINTENANCE MODE?
   766	001157'02  263 17 0 00 000000 		 RET			; NO, THAT'S AN ERROR
   767	001160'02  200 01 0 00 002531'		MOVE	T1,[.RESP1,,200] ; GET BUFFER FOR MOP MESSAGE HEADER + DATA
   768	001161'02  200 02 0 00 002532'		MOVE	T2,[RS%SE0+.RESNP] ; SET BUFFER SPACE
   769	001162'02  260 17 0 00 000000*		CALL ASGRES		;
   770	001163'02  263 17 0 00 000000 		 RET			; CAN'T
   771	001164'02  200 02 0 00 002533'		MOVE	T2,[<.MPLDT>_12]	; MOP LOAD WITH TRANSFER CODE
   772	001165'02  202 02 0 01 000000 		MOVEM	T2,(T1)		; STORE IN MESSAGE
   773	001166'02  200 12 0 00 000001 		MOVE	P3,T1		; MESSAGE STARTING ADDRESS
   774	001167'02  201 12 0 12 000177 		MOVEI	P3,177(P3)	; LAST WORD IN BUFFER
   775	001170'02  205 02 0 00 014000 		MOVX	T2,6B7		; LOAD ADDRESS IS 6
   776	001171'02  202 02 0 01 000001 		MOVEM	T2,1(T1)	; STORE IN MESSAGE
   777	001172'02  202 02 0 12 000000 		MOVEM	T2,(P3)		; TRANSFER ADDRESS  IS ALSO 6
   778	001173'02  200 02 0 00 002534'		MOVE	T2,[POINT 8,0,15]	; POINTER TO START OF MOP MSG.
   779	001174'02  540 02 0 00 000001 		HRR	T2,T1			; ...
   780	001175'02  541 01 0 01 000002 		HRRI	T1,2(T1)	;PUT  USER MSG AT 2ND WORD
   781	001176'02  256 04 0 00 002535'		XCTU [HRL T1,.BTSEC(Q1)] ;GET ADDR OF USER DATA
   782	001177'02  256 01 0 00 002536'		XBLTUM [BLT T1,-1(P3)]	;MOVE THE DATA
   783	001200'02  554 01 0 10 000675 		LOAD	T1,MPFLGS	;GET MOP XMIT FLAGS
   784	001201'02  660 01 0 00 000002 		TXO	T1,MPXSEC	;INDICATE WE ARE SENDING SECONDARY BOOTSTRAP
   785	001202'02  620 01 0 00 000001 		TXZ	T1,MPSHRT	;NOT A SHORT MESSAGE
   786	001203'02  506 01 0 10 000675 		STOR	T1,MPFLGS
   787	001204'02  201 03 0 00 000772 		MOVEI	T3,772		;MESSAGE LENGTH
   788	001205'02  260 17 0 00 000000#		CALL	SECSHF		;POSITION FOR KMC
   789	001206'02  200 01 0 10 000007 		MOVE	T1,PGKDPN(P1)	;SET LINE #
   790	001207'02  201 00 0 00 000000#		MOVEI	F,MOPQ		;ON RETURN QUEUE TO USER
   791	001210'02  260 17 0 00 000000#		CALL XMTMOP		; go transmitt the MOP msg
   792	001211'02  263 17 0 00 000000 		RET			;DIDN'T MAKE IT???
   793	001212'02  254 00 0 00 001153*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 18
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP--  REQUEST UPLINE DUMP

   794					SUBTTL	BOOT JSYS --MOP--  REQUEST UPLINE DUMP
   795
   796	001213'02			BTDMP:	;NOT YET IMPLEMENTED.
   797
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 19
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP--  SEND MOP MESSAGE

   798					 SUBTTL	BOOT JSYS --MOP--  SEND MOP MESSAGE
   799
   800	001213'02			BTSMP:
   801	001213'02  260 17 0 00 001052'		CALL BTGPRT		;GET PORT NUMBER(t4=dup hdw addr,p1=line page)
   802	001214'02  135 01 0 00 002530'		LOAD	T1,DDSTA	;GET LINE STATUS
   803	001215'02  302 01 0 00 000001 		CAIE	T1,STAMAI	;IN MAINTENANCE MODE?
   804	001216'02  263 17 0 00 000000 		 RET			;NO, ERROR
   805	001217'02  201 01 0 00 000000 		MOVEI	T1,0		;NOW IN LOAD MODE
   806	001220'02  137 01 0 00 002521'		STOR	T1,MOPSTS	;SHOW SO IN MOP STATUS WORD
   807	001221'02  256 04 0 00 002537'		UMOVE P2,.BTCNT(Q1)	;GET LENGTH OF DATA
   808	001222'02  201 01 0 11 000003 		MOVEI T1,3(P2)		;PREPARE TO ROUND
   809	001223'02  242 01 0 00 777776 		LSH T1,-2		;# OF WORDS
   810	001224'02  200 12 0 00 000001 		MOVE P3,T1		;TAKE A COPY FOR LATER
   811	001225'02  505 01 0 00 000000*		HRLI T1,.RESP1		;PRIORITY 1
   812	001226'02  200 02 0 00 002540'		MOVE T2,[RS%SE0+.RESNP]	;GET SPACE FROM NET POOL
   813	001227'02  260 17 0 00 001162*		CALL ASGRES
   814	001230'02  263 17 0 00 000000 		  RET			;%% ADD ERROR CODE
   815	001231'02  200 02 0 00 000001 		MOVE T2,T1		;COPY ADDR OF BUFFER
   816	001232'02  505 02 0 00 441000 		HRLI T2,(<POINT 8,>)	;MAKE THE BYTE POINTER
   817	001233'02  270 12 0 00 000001 		ADD P3,T1		;COMPUTE END OF BUFFER FOR BLT
   818	001234'02  256 04 0 00 002541'	BTSMP0:	XCTU [HRL T1,.BTLPT(Q1)] ;GET ADDR OF USER DATA
   819	001235'02  256 01 0 00 002536'		XBLTUM [BLT T1,-1(P3)]	;MOVE THE DATA
   820	001236'02  554 01 0 10 000675 		LOAD	T1,MPFLGS	;GET MOP XMIT FLAGS
   821	001237'02  620 01 0 00 000002 		TXZ	T1,MPXSEC	;THIS IS NOT SECONDARY BOOTSTRAP
   822	001240'02  620 01 0 00 000001 		TXZ	T1,MPSHRT	;NOT A SHORT MESSAGE
   823	001241'02  506 01 0 10 000675 		STOR	T1,MPFLGS
   824	001242'02  200 03 0 00 000011 		MOVE	T3,P2		;XMTMOP NEEDS IT THIS WAY
   825	001243'02  260 17 0 00 000000#		CALL	SHFFLE		;POSITION FOR KMC
   826	001244'02  200 01 0 10 000007 		MOVE T1,PGKDPN(P1)	;SET LINE #
   827	001245'02  201 00 0 00 000000#		MOVEI	F,MOPQ		;PUT RESULTING MOP ANSWER ON USER QUEUE
   828	001246'02  260 17 0 00 000000#		CALL XMTMOP		;go transmitt the MOP msg
   829	001247'02  263 17 0 00 000000 		RET			;DIDN'T MAKE IT???
   830	001250'02  254 00 0 00 001212*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 20
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP--  RECEIVE MOP MESSAGE

   831					SUBTTL	BOOT JSYS --MOP--  RECEIVE MOP MESSAGE
   832
   833	001251'02			BTRMP:
   834	001251'02  260 17 0 00 001052'		CALL BTGPRT		;GET PORT NUMBER
   835	001252'02  135 01 0 00 002530'		LOAD	T1,DDSTA	;GET LINE STATUS
   836	001253'02  302 01 0 00 000001 		CAIE	T1,STAMAI	;IN MAINTENANCE MODE?
   837	001254'02  263 17 0 00 000000 		 RET			;NO, ERROR
   838	001255'02  335 00 0 10 000672 	BTRMP0:	SKIPGE	PGMSTS(P1)	;DID OTHER SIDE EVER ANSWER?
   839	001256'02  263 17 0 00 000000 		 RET			;NO,ERROR
   840	001257'02  336 01 0 10 000701 		SKIPN T1,PGMRHD(P1)	;IS QUEUE EMPTY
   841						JRST [MOVEI T1,MPRTST		;WAIT FOR SOME INPUT TO COME
   842							HRL	T1,P1		;SAVE ADDRESS
   843							MDISMS			;DISMISS UNTIL INPUT
   844							JRST	BTRMP0		;TRY AGAIN
   845	001260'02  254 00 0 00 002542'			]
   846	001261'02  336 00 0 10 000003 		SKIPN	PGLINQ(P1)	;IS IT FOR THE USER?
   847						 JRST	[CALL RELMOP	;ERROR, RELEASE BUFFER AND RETURN
   848	001262'02  254 00 0 00 002546'			 RET	]	;ERROR CODE
   849	001263'02  550 03 0 10 000702 		LOAD	T3,MPRLEN	;LENGTH OF RECEIVED BUFFER
   850	001264'02  256 04 0 00 002550'		XCTU [HRRZ T2,.BTCNT(Q1)] ;GET LENGTH OF USERS BUFFER
   851	001265'02  313 03 0 00 000002 		CAMLE T3,T2		;ENOUGH ROOM?
   852	001266'02  263 17 0 00 000000 		 RET	 		;NO
   853	001267'02  256 04 0 00 002551'		UMOVEM T3,.BTCNT(Q1)	;RETURN ACTUAL SIZE OF BUFFER
   854	001270'02  271 03 0 00 000003 		ADDI T3,3		;ROUND TO WORDS
   855	001271'02  242 03 0 00 777776 		LSH T3,-2
   856	001272'02  256 04 0 00 002552'		XCTU [HRRZ T2,.BTMPT(Q1)] ;ADDR OF USER DATA
   857	001273'02  270 03 0 00 000002 		ADD T3,T2		;END ADDR OF BLT
   858	001274'02  550 01 0 10 000701 		HRRZ T1,PGMRHD(P1)	;ADDR OF DATA BUFFER
   859	001275'02  504 02 0 00 000001 		HRL	T2,T1		;FOR THE BLT
   860	001276'02  256 04 0 00 002553'		XBLTMU [BLT T2,-1(T3)]	;GIVE DATA TO USER
   861	001277'02  700 14 0 00 000400 		PIOFF
   862	001300'02  402 00 0 10 000701 		SETZM	PGMRHD(P1)	;SAY NO BUFFER ANYMORE
   863	001301'02  402 00 0 10 000003 		SETZM	PGLINQ(P1)	;ZERO THIS TOO
   864	001302'02  260 17 0 00 000000*		CALL RELRES		;RELEASE THE BLOCK
   865	001303'02  700 14 0 00 000200 		PION
   866	001304'02  254 00 0 00 001250*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 21
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS --MOP--  RECEIVE MOP MESSAGE

   867
   868						SUBTTL	BOOT JSYS -- SEND A DDCMP MESSAGE
   869
   870
   871					;ARGUMENT BLOCK
   872					;	.BTPRT/	DROP#,,LINE#
   873					;	.BTMSG/ ADDR OF DATA
   874					;	.BTLEN/ BYTE COUNT OF MESSAGE
   875					;ERROR RETURN TAKEN IF MESSAGE QUEUE IS FULL
   876
   877
   878	001305'02  260 17 0 00 001052'	BTSDD:	CALL BTGPRT		;GET PORT NUMBER
   879	001306'02  256 04 0 00 002554'		UMOVE P2,.BTLEN(Q1)	;GET LENGTH OF DATA
   880	001307'02  201 01 0 11 000003 		MOVEI T1,3(P2)		;PREPARE TO ROUND
   881	001310'02  242 01 0 00 777776 		LSH T1,-2		;# OF WORDS
   882	001311'02  200 12 0 00 000001 		MOVE P3,T1		;TAKE A COPY FOR LATER
   883	001312'02  505 01 0 00 001225*		HRLI T1,.RESP1		;PRIORITY 1
   884	001313'02  200 02 0 00 002555'		MOVE T2,[RS%SE0+.RESNP]	;GET SPACE FROM NET POOL
   885	001314'02  260 17 0 00 001227*		CALL ASGRES
   886	001315'02  263 17 0 00 000000 		  RET			; ERROR
   887	001316'02  200 02 0 00 000001 		MOVE T2,T1		;COPY ADDR OF BUFFER
   888	001317'02  256 04 0 00 002556'		UMOVE	T3,.BTMSG(Q1)	;GET USER'S DATA POINTER
   889	001320'02  607 03 0 00 777777 		TLNN	T3,-1		;IF LH ALL ZERO
   890	001321'02  254 00 0 00 001335'		JRST	BTSDD1		;THE DO WORD BLTs
   891	001322'02  554 04 0 00 000003 		HLRZ	T4,T3		;STANDARD ASCII POINTER?
   892	001323'02  306 04 0 00 777777 		CAIN	T4,-1
   893	001324'02  505 03 0 00 440700 		HRLI	T3,440700	;YES
   894	001325'02  505 01 0 00 441000 		HRLI	T1,(<POINT 8,>) ;DESTINATION BYTE POINTER
   895	001326'02  261 17 0 00 000011 		PUSH	P,P2		;WILL NEED THIS LATER
   896	001327'02  256 03 0 00 002557'	BTSDD0:	XCTBU	[ILDB T4,T3]	;GET A BYTE FROM USER
   897	001330'02  136 04 0 00 000001 		IDPB	T4,T1		;STORE IN RESIDENT BUFFER
   898	001331'02  367 11 0 00 001327'		SOJG	P2,BTSDD0	;REPEAT UNTIL DONE
   899	001332'02  256 04 0 00 002560'		UMOVEM	T3,.BTMSG(Q1)	;RETURN UPDATED POINTER TO USER
   900	001333'02  262 17 0 00 000011 		POP	P,P2		;PUT BYTE LENGTH BACK FOR BELOW
   901	001334'02  254 00 0 00 001340'		JRST	BTSDD2
   902	001335'02  270 12 0 00 000001 	BTSDD1:	ADD P3,T1		;COMPUTE END OF BUFFER FOR BLT
   903	001336'02  504 01 0 00 000003 		HRL	T1,T3		;USER DATA ADDRESS FOR BLT
   904	001337'02  256 01 0 00 002536'		XBLTUM [BLT T1,-1(P3)]	;MOVE THE DATA
   905	001340'02  505 02 0 00 441000 	BTSDD2:	HRLI T2,(<POINT 8,>)	;MAKE THE BYTE POINTER
   906	001341'02  200 01 0 10 000007 		MOVE T1,PGKDPN(P1)	;SET LINE #
   907	001342'02  505 01 0 00 000000#		HRLI T1,DCPPST		;ADDR FOR COMPLETION
   908	001343'02  200 03 0 00 000011 		MOVE T3,P2		;GET LENGTH OF DATA
   909	001344'02  550 00 0 00 000002 		HRRZ F,T2		;BUFFER ADDR FOR COMPLETION POSTING
   910	001345'02  661 03 0 00 200000 		TXO T3,1B1		;MARK THIS MESSAGE FROM DCP
   911	001346'02  260 17 0 00 000000#		CALL DCNMSO		;QUEUE THE MESSAGE TO KMC
   912						 JRST	[MOVE T1,F	;GET BACK THE RESIDENT BUFFER ADDRESS
   913	001347'02  254 00 0 00 002561'			 CALLRET RELRES]	;FREE THE BUFFER
   914	001350'02  254 00 0 00 001304*		RETSKP			;SUCCESS
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 22
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- SEND A DDCMP MESSAGE

   915
   916						SUBTTL	BOOT JSYS -- INITIATE PROTOCOL
   917
   918	001351'02  260 17 0 00 001424'	BTIPR:	CALL BTIDC0		;INSURE STATION TABLE EXITS
   919	001352'02  260 17 0 00 001052'		CALL BTGPRT		;GET PORT NUMBER
   920	001353'02  200 01 0 00 002563'		MOVE T1,[EXP KMCADR]	;GET ADDRESS OF KMC11
   921	001354'02  712 01 0 01 000000 		RDIO T1,(T1)		;GET STATUS FROM KMC11
   922	001355'02  606 01 0 00 100000 		TRNN T1,KMCRUN		;IS KMC11 RUNNING ?
   923	001356'02  254 00 0 00 002564'		RETBAD (KDPX01)		;KMC11 not running
   924	001357'02  135 01 0 00 002530'		LOAD T1,DDSTA		;GET CURRENT LINE STATE
   925	001360'02  256 04 0 00 002566'		UMOVE T2,.BTPRV(Q1)	;GET PROTOCOL VERSION NUMBER
   926	001361'02  712 03 0 04 000004 		RDIO T3,DPTCSR(T4)	;GET CURRENT MAINTENANCE MODE BITS
   927	001362'02  405 03 0 00 014000 		ANDI T3,DPMAIN		;LEAVE ONLY THE MAINTAINENCE MODE BITS
   928	001363'02  306 02 0 00 000002 		CAIN T2,.VNDDC		;STARTING DDCMP ?
   929	001364'02  254 00 0 00 001401'		JRST BTIDDC		;STARTING DDCMP
   930	001365'02  306 02 0 00 000004 		CAIN T2,.VNCNL		;INITIATING CONTROLLER LOOPBACK ?
   931	001366'02  254 00 0 00 001422'		 JRST BTICNL		;YES
   932	001367'02  306 02 0 00 000005 		CAIN T2,.VNCBL		;INITIATING CABLE LOOPBACK ?
   933	001370'02  254 00 0 00 001446'		 JRST BTICBL		;YES
   934	001371'02  302 02 0 00 000003 		CAIE T2,.VNMOP		;STARTING DDCMP MAINTENANCE MODE ?
   935	001372'02  254 00 0 00 001033'		JRST BTERR		;CAN'T DO THAT
   936
   937					;HERE TO INITIATE MAINTENANCE MODE ON LINE
   938	001373'02  402 00 0 10 000672 	BTIMOP:	SETZM	PGMSTS(P1)	;INITIALIZE MOP STATUS
   939	001374'02  201 01 0 00 014000 		MOVEI	T1,DPMAIN	;DUP11 MAINTENANCE MODE BITS
   940	001375'02  715 01 0 04 000004 		BCIO T1,DPTCSR(T4)	;CLEAR MAINTENANCE MODE
   941	001376'02  201 01 0 00 000001 		MOVEI T1,STAMAI		;NOW AM IN MAINTENANCE MODE
   942	001377'02  260 17 0 00 000000#		CALL DEDLIN		;DROP LINE
   943	001400'02  254 00 0 00 001350*		RETSKP
   944
   945					;HERE TO INITIATE DDCMP ON LINE
   946	001401'02  326 12 0 00 001410'	BTIDDC:	JUMPN P3,BTIDC4		;MULTI-DROP??
   947	001402'02  400 02 0 00 000000 		SETZ T2,		;NO MAINTENANCE MODE BITS
   948	001403'02  302 01 0 00 000000 		CAIE T1,STADWN		;IS THE LINE DOWN ?
   949	001404'02  306 01 0 00 000001 		CAIN T1,STAMAI		;OR IS LINE IN MOP MODE ?
   950	001405'02  254 00 0 00 001410'		 JRST BTIDC4		;GO TRY TO DDCMP START IT
   951	001406'02  326 03 0 00 001033'		JUMPN T3,BTERR		;IF HDW LOOPED BACK LOSE
   952	001407'02  254 00 0 00 001400*		RETSKP			;ALREADY RUNNING SO WIN
   953	001410'02  201 01 0 00 014000 	BTIDC4:	MOVEI T1,DPMAIN		;DUP11 MAINTENANCE MODE BITS
   954	001411'02  715 01 0 04 000004 		BCIO T1,DPTCSR(T4)	;CLEAR MAINTENANCE MODE
   955	001412'02  714 02 0 04 000004 		BSIO T2,DPTCSR(T4)	;SET NEW FORM OF MAINTAINENCE MODE
   956	001413'02  201 01 0 00 000002 		MOVEI T1,DPDTR		;WANT DATA TERMINAL READY SET
   957	001414'02  714 01 0 04 000000 		BSIO T1,DPRCSR(T4)	;SET IT
   958	001415'02  205 16 0 00 020000 		SETZRO DDACI		;SET POLLING STATUS ACTIVE
   959	001416'02  412 16 0 13 000002 
   960	001417'02  201 01 0 00 000002 		MOVEI T1,STASTR		;NOW WANT TO SEND STARTS
   961	001420'02  260 17 0 00 000000#		CALL DEDLIN		;DROP LINE
   962	001421'02  254 00 0 00 001407*		RETSKP
   963
   964					;HERE TO INITIATE CONTROLLER LOOPBACK
   965	001422'02  201 02 0 00 010000 	BTICNL:	MOVEI T2,DPCNLP		;BIT FOR CONTROLLER LOOPBACK
   966	001423'02  254 00 0 00 001447'		JRST BTILPB		;SET LOOPBACK
   967
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 23
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- INITIATE PROTOCOL

   968
   969					;HERE TO INSURE STATION TABLE EXIST FOR A POTENTIALLY NEW STATION
   970
   971	001424'02  256 04 0 00 002512'	BTIDC0:	UMOVE T1,.BTPRT(Q1)	;GET TERMINAL ID
   972	001425'02  540 10 0 00 000001 		HRR P1,T1		;GET LINE NUMBER
   973	001426'02  311 10 0 00 001054*		CAML P1,KDPNLN		;IS IT IN RANGE
   974	001427'02  254 00 0 00 002513'		ITERR(ARGX19)		;NO
   975	001430'02  540 10 0 10 001061*		HRR P1,KDPPAG(P1)	;GET LINES PAGE
   976	001431'02  554 12 0 00 000001 		HLRZ P3,T1		;REMEBER DROP
   977	001432'02  336 00 0 00 000012 		SKIPN P3		;POINT TO POINT?
   978	001433'02  263 17 0 00 000000 		RET			;ALL DONE
   979	001434'02  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET A STATION TABLE
   980	001435'02  336 00 0 10 000001 		SKIPN PGSTAL(P1)	;IS THIS FIRST STATION TO START
   981	001436'02  254 00 0 00 002423'		JRST DDINI0		;YES, LINK A STATION TABLE AND CONTINUE
   982	001437'02  402 00 0 00 000013 	BTIDC1:	SETZM P4		;INIT STATION SCAN
   983	001440'02  260 17 0 00 000000#	BTIDC2:	CALL NXTSTA		;GET THE NEXT STATION
   984	001441'02  254 00 0 00 002403'		JRST DDINI		;CREATE A NEW STATION
   985	001442'02  135 01 0 00 002520'		LOAD T1,DDDRP		;GET DROP OF THIS STATION
   986	001443'02  316 01 0 00 000012 		CAMN T1,P3		;IS THIS IT?
   987	001444'02  263 17 0 00 000000 		RET			;YES, ALL SET
   988	001445'02  254 00 0 00 001440'		JRST BTIDC2		;SCAN THE STATION LIST
   989
   990					;HERE TO INITIATE CABLE LOOPBACK
   991	001446'02  201 02 0 00 004000 	BTICBL:	MOVEI T2,DPCBLP		;BIT FOR FOR CABLE LOOPBACK
   992	001447'02  302 01 0 00 000000 	BTILPB:	CAIE T1,STADWN		;IS THE LINE DOWN ?
   993	001450'02  306 01 0 00 000001 		CAIN T1,STAMAI		;OR IS LINE IN MOP MODE ?
   994	001451'02  254 00 0 00 001410'		 JRST BTIDC4
   995	001452'02  316 02 0 00 000003 		CAMN T2,T3		;ALREADY THIS WAY ?
   996	001453'02  254 00 0 00 001421*		 RETSKP			;ALREADY LOOPED BACK
   997	001454'02  254 00 0 00 001033'		JRST BTERR		;LOSE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 24
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- INITIATE PROTOCOL

   998
   999						SUBTTL	BOOT JSYS -- TERMINATE PROTOCOL
  1000
  1001	001455'02  260 17 0 00 001052'	BTTPR:	CALL BTGPRT		;GET PORT NUMBER
  1002	001456'02  201 01 0 00 014000 		MOVEI T1,DPMAIN		;MAINTAINENCE MODE BITS
  1003	001457'02  715 01 0 04 000004 		BCIO T1,DPTCSR(T4)	;CLEAR MAINTAINENCE MODE BITS
  1004	001460'02  201 01 0 00 000002 		MOVEI T1,DPDTR		;NO LONGER TRYING
  1005	001461'02  715 01 0 04 000000 		BCIO T1,DPRCSR(T4)	;CLEAR DAT TERMINAL READY
  1006	001462'02  201 01 0 00 000000 		MOVEI	T1,NSPL		;SET DEFAULT LINE SERVER TO NSP
  1007	001463'02  137 01 0 00 002567'		STOR	T1,LINSR
  1008	001464'02  350 00 0 00 000000*		NOINT
  1009	001465'02  201 01 0 00 000000 		MOVEI T1,STADWN		;CODE FOR STOPPED
  1010	001466'02  260 17 0 00 000000#		CALL DEDLIN		;CLEAN UP LINE
  1011	001467'02  256 00 0 00 000000*		OKINT
  1012	001470'02  260 17 0 00 000000#		CALL RELMOP		;RELEASE ANY MOP MESSAGES
  1013	001471'02  200 01 0 10 000003 		MOVE	T1,PGLINQ(P1)	;CHECK IN ANY MSGS IN Q ARE MOP MSGS
  1014	001472'02  607 01 0 00 777777 		TLNN	T1,-1		;IF SO, HAS ZERO IN LH
  1015	001473'02  402 00 0 10 000003 		SETZM	PGLINQ(P1)	;YES, ZERO Q POINTER. BUFFER ALREADY RELEASED
  1016	001474'02  254 00 0 00 001453*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 25
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- TERMINATE PROTOCOL

  1017
  1018
  1019					;HERE FOR BOOT JSYS FUNCTIONS TO SET SLAVE STATION PARAMETERS
  1020
  1021					;SET POLLING STATUS ACTIVE/IDLE
  1022	001475'02  260 17 0 00 001052'	BTSTA:	CALL BTGPRT		;GET STATION 
  1023	001476'02  256 04 0 00 002570'		UMOVE T1,.BTCOD(Q1)	;GET ACTIVE/IDLE INDICATOR
  1024	001477'02  137 01 0 00 002571'		STOR T1,DDACI		;SET IT
  1025	001500'02  254 00 0 00 001474*		RETSKP
  1026
  1027					;SET RELETIVE STARTUP FREQUENCY COUNTER 
  1028					;THIS WILL DETERMINE HOW MANY CYCLES THRU THE ACTIVE POLLING LIST MUST
  1029					;BE DONE BETWEEN SENDING DDCMP STARTS 
  1030	001501'02  260 17 0 00 001052'	BTSSP:	CALL BTGPRT		;GET STATION
  1031	001502'02  256 04 0 00 002570'		UMOVE T1,.BTPRI(Q1)	;GET STARTUP COUNTER
  1032	001503'02  137 01 0 00 002572'		STOR T1,DDSSP		;SET IT
  1033	001504'02  254 00 0 00 001500*		RETSKP
  1034
  1035					;SET A STATIONS RELETIVE POLLING PRIORITY (1 IS HIGH)
  1036	001505'02  260 17 0 00 001052'	BTSTP:	CALL BTGPRT		;GET STATION
  1037	001506'02  256 04 0 00 002570'		UMOVE T1,.BTPRI(Q1)	;GET TERMINAL PRIORITY
  1038	001507'02  542 01 0 13 000010 		STOR T1,DDSPC		;SET IT
  1039	001510'02  254 00 0 00 001504*		RETSKP
  1040
  1041					;SET INTERRUPT CHANNEL FOR INDICATION OF INPUT AVAILABLE FOR USER
  1042	001511'02  260 17 0 00 001052'	BTCHN:	CALL BTGPRT		;SET UP P1
  1043	001512'02  256 04 0 00 002570'		UMOVE T1,.BTCOD(Q1)	;GET INTERRUPT CHANNEL
  1044	001513'02  350 00 0 00 000001 		AOS T1			;INDEX BY 1
  1045	001514'02  504 01 0 00 000000*		HRL T1,FORKX		;GET USER'S FORK#
  1046	001515'02  202 01 0 10 000006 		MOVEM T1,PGLINT(P1)	;SAVE IT
  1047	001516'02  254 00 0 00 001510*		RETSKP
  1048
  1049					;SET LINE TYPE OF LINE SERVICE (DDCMP OR NSP)
  1050	001517'02  260 17 0 00 001052'	BTSLS:	CALL BTGPRT		;SET UP P1
  1051	001520'02  256 04 0 00 002570'		UMOVE	T1,.BTCOD(Q1)	;GET LINE SERVICE FLAG
  1052	001521'02  302 01 0 00 000001 		CAIE	T1,DCPL		;RUNNING LINE AS DDCMP ONLY?
  1053	001522'02  306 01 0 00 000000 		CAIN	T1,NSPL		;OR AS NSP?
  1054	001523'02  334 00 0 00 000000 		SKIPA
  1055	001524'02  263 17 0 00 000000 		 RET			;NOT IT RANGE
  1056	001525'02  137 01 0 00 002567'		STOR	T1,LINSR	;SET THE VALUE
  1057	001526'02  254 00 0 00 001516*		RETSKP			;RETURN OKAY
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 26
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- TERMINATE PROTOCOL

  1058
  1059						SUBTTL	BOOT JSYS -- RETURN PROTOCOL STATUS
  1060
  1061	001527'02  260 17 0 00 001052'	BTSTS:	CALL BTGPRT		;GET PORT NUMBER
  1062	001530'02  135 01 0 00 002530'		LOAD T1,DDSTA		;GET LINE STATE
  1063	001531'02  201 03 0 00 000003 		MOVEI T3,.VNMOP		;CALL IT MOP MODE
  1064	001532'02  306 01 0 00 000001 		CAIN T1,STAMAI		;MAINTENANCE MODE ?
  1065	001533'02  254 00 0 00 001550'		 JRST BTSTS9		;LINE IS IN MAINTAINENCE MODE
  1066	001534'02  476 00 0 00 000003 		SETOM T3		;ASSUME NOT RUNNING
  1067	001535'02  306 01 0 00 000000 		CAIN T1,STADWN		;IS THE LINE STOPPED
  1068	001536'02  254 00 0 00 001550'		 JRST BTSTS9		;LINE IS DOWN
  1069	001537'02  201 03 0 00 000002 		MOVEI T3,.VNDDC		;ASSUME RUNNING DDCMP
  1070	001540'02  712 02 0 04 000004 		RDIO T2,DPTCSR(T4)	;GET MAINTAINENCE MODE STATUS
  1071	001541'02  405 02 0 00 014000 		ANDI T2,DPMAIN		;STRIP EXTRA BITS
  1072	001542'02  322 02 0 00 001550'		JUMPE T2,BTSTS9		;IF NOT MAINTAINENCE THEN RUNNING
  1073	001543'02  476 00 0 00 000003 		SETOM T3		;IN CASE INTERNAL MAINTENANCE MODE
  1074	001544'02  306 02 0 00 010000 		CAIN T2,DPCNLP		;CONTROLLER LOOPBACK ?
  1075	001545'02  201 03 0 00 000004 		MOVEI T3,.VNCNL		;YES
  1076	001546'02  306 02 0 00 004000 		CAIN T2,DPCBLP		;CABLE LOOPBACK ?
  1077	001547'02  201 03 0 00 000005 		MOVEI T3,.VNCBL		;YES
  1078	001550'02  256 04 0 00 002560'	BTSTS9:	UMOVEM T3,.BTPRV(Q1)	;GIVE STATE TO USER
  1079	001551'02  254 00 0 00 001526*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 27
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- RETURN PROTOCOL STATUS

  1080
  1081						SUBTTL 	BOOT JSYS -- RECEIVE A DDCMP MESSAGE 
  1082
  1083					;HERE TO RECEIVE A DATA MESSAGE OR A COMPLETION POSTING
  1084					;COMPLETION POSTINGS AND DATA MESSAGES RESIDE ON THE SAME QUEUE
  1085					;ARGUMENT BLOCK
  1086					;	.BTPRT/ LINE#
  1087					;	.BTMSG/ ADDR OF BUFFER TO RECEIVE MESSAGE
  1088					;	.BTLEN/ SIZE OF BUFFER (8 BIT BYTES)
  1089					;RETURNS
  1090					;	.BTPRT/ DROP#,,LINE#
  1091					;	.BTMSG/ DATA
  1092					;	.BTLEN/ ACTUAL BYTE COUNT OF DATA RETURNED
  1093					;		OR COMPLETION POSTING CODE
  1094					;		STATION CAME UP = 400000,,1
  1095					;		STATION DIED	= 400000,,2
  1096					;		XMIT COMPLETE	= 400000,,3
  1097					;ERROR RETURN IF BUFFER TOO SMALL
  1098
  1099	001552'02  260 17 0 00 001052'	BTRDD:		CALL BTGPRT		;GET PORT NUMBER
  1100	001553'02  336 01 0 10 000003 		SKIPN T1,PGLINQ(P1)	;IS QUEUE EMPTY
  1101						JRST [ XCTU [SETZM .BTLEN(Q1)]		;YES
  1102	001554'02  254 00 0 00 002574'		       RETSKP]
  1103	001555'02  337 12 0 01 000001 		SKIPG P3,INDCNT(T1)	;DATA??
  1104						JRST [UMOVEM P3,.BTLEN(Q1) ;NO, GIVE IT TO USER
  1105	001556'02  254 00 0 00 002577'		      JRST BTRDD1 ]     ;CONTINUE
  1106	001557'02  550 12 0 01 000001 		HRRZ P3,INDCNT(T1)	;GET SIZE OF MESSAGE
  1107	001560'02  256 04 0 00 002601'		XCTU [HRRZ T2,.BTLEN(Q1)] ;GET LENGTH OF USERS BUFFER
  1108	001561'02  313 12 0 00 000002 		CAMLE P3,T2		;ENOUGH ROOM?
  1109	001562'02  265 02 0 00 001036*		ITERR() 		;NO
  1110					;%% ADD CODE
  1111	001563'02  256 04 0 00 002576'		UMOVEM P3,.BTLEN(Q1)	;RETURN ACTUAL SIZE OF BUFFER
  1112	001564'02  256 04 0 00 002566'		UMOVE	T2,.BTMSG(Q1)	;GET USER'S BUFFER POINTER
  1113	001565'02  607 02 0 00 777777 		TLNN	T2,-1		;IF LH 0 THEN USER
  1114	001566'02  254 00 0 00 001600'		JRST	BTRDD0		;WORD BLTs
  1115	001567'02  554 04 0 00 000002 		HLRZ	T4,T2		;STANDARD ASCII POINTER?
  1116	001570'02  306 04 0 00 777777 		CAIN	T4,-1
  1117	001571'02  505 02 0 00 440700 		HRLI	T2,440700	;YES
  1118	001572'02  200 04 0 00 002602'		MOVE	T4,[POINT 8,MSHDR(T1)] ;BYTE POINTER TO RECEIVE DATA
  1119	001573'02  134 03 0 00 000004 	BTRDD2:	ILDB	T3,T4		;GET A BYTE FOR USER
  1120	001574'02  256 03 0 00 002603'		XCTBU	[IDPB T3,T2]	;DEPOSIT IN USER SPACE
  1121	001575'02  367 12 0 00 001573'		SOJG	P3,BTRDD2	;LOOP TIL DONE
  1122	001576'02  256 04 0 00 002604'		UMOVEM	T2,.BTMSG(Q1)	;RETURN UPDATED BYTE POINTER
  1123	001577'02  254 00 0 00 001605'		JRST	BTRDD1
  1124	001600'02  271 12 0 00 000003 	BTRDD0:	ADDI P3,3		;ROUND TO WORDS
  1125	001601'02  242 12 0 00 777776 		LSH P3,-2
  1126	001602'02  270 12 0 00 000002 		ADD P3,T2		;END ADDR OF BLT
  1127	001603'02  505 02 0 01 000002 		HRLI T2,MSHDR(T1)	;ADDR OF DATA BUFFER
  1128	001604'02  256 04 0 00 002605'		XBLTMU [BLT T2,-1(P3)]	;GIVE DATA TO USER
  1129	001605'02  200 02 0 01 000000 	BTRDD1:	MOVE T2,INDLNK(T1)	;GET TERMINAL #
  1130	001606'02  256 04 0 00 002606'		XCTU [HLLM T2,.BTPRT(Q1)] ;GIVE IT TO USER
  1131	001607'02  700 14 0 00 000400 		PIOFF
  1132	001610'02  135 04 0 00 002607'		LOAD T4,DDINP		;COUNT OF RCV MSGS QUEUED
  1133	001611'02  370 00 0 00 000004 		SOS T4			;GOT RID OF ONE
  1134	001612'02  137 04 0 00 002607'		STOR T4,DDINP		;SAVE IT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 27-1
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- RECEIVE A DDCMP MESSAGE 

  1135	001613'02  553 00 0 00 000001 		HRRZS T1		;CLEAR LEFT HALF FOR RELRES
  1136	001614'02  550 11 0 01 000000 		HRRZ P2,INDLNK(T1)	;GET ADDR OF NEXT MESSAGE
  1137						JUMPE P2,[ SETZM PGLINQ(P1) ;QUEUE EMPTY
  1138	001615'02  322 11 0 00 002610'	 		   JRST BTRDD3 ]	;YES
  1139	001616'02  542 11 0 10 000003 		HRRM P2,PGLINQ(P1)	;POINT AT NEXT ENTRY
  1140	001617'02  260 17 0 00 001302*	BTRDD3:	CALL RELRES		;RELEASE THE BLOCK
  1141	001620'02  700 14 0 00 000200 		PION
  1142	001621'02  254 00 0 00 001551*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 28
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- RECEIVE A DDCMP MESSAGE 

  1143
  1144						SUBTTL	BOOT JSYS -- LOAD KMC11
  1145
  1146	001622'02  260 17 0 00 001040'	BTKML:	CALL BTGKMA		;GET KMC11 ADR FROM ARGUMENT BLOCK
  1147	001623'02  260 17 0 00 002177'		CALL BTSTOP		;STOP THE KMC11 IF RUNNING
  1148	001624'02  201 01 0 00 040000 		MOVEI T1,KMCMCL		;TO CLEAR THE KMC11
  1149	001625'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;RESET THE KMC11
  1150
  1151					;QUICK CHECK OF KMC11 INTEGRITY
  1152	001626'02  201 02 0 00 000200 		MOVEI T2,200		;BIT PATERN FOR FIRST REGISTER
  1153	001627'02  200 04 0 00 000006 		MOVE T4,Q2		;COPY KMC11 ADR
  1154	001630'02  713 02 1 00 000004 	BTCHK0:	WRIO T2,@T4		;WRITE THE REGISTER
  1155	001631'02  712 01 1 00 000004 		RDIO T1,@T4		;THEN READ IT BACK
  1156	001632'02  312 02 0 00 000001 		CAME T2,T1		;DO THE BITS MATCH ?
  1157						 JRST [	TXO T1,BT%RVE	;REGISTER VERIFY ERROR
  1158	001633'02  254 00 0 00 002612'			JRST KMCILL ]	;REPORT PROBLEM THEN QUIT,Q2
  1159	001634'02  322 02 0 00 001637'		JUMPE T2,BTCHK2		;DONE WITH REGISTER
  1160	001635'02  242 02 0 00 777777 		LSH T2,-1		;NEXT MASK TO TRY
  1161	001636'02  254 00 0 00 001630'		JRST BTCHK0		;TRY NEXT MASK
  1162	001637'02  201 02 0 00 100000 	BTCHK2:	MOVEI T2,100000		;BIT PATERN FOR NEXT BSEL
  1163	001640'02  271 04 0 00 000002 		ADDI T4,2		;NEXT BSEL
  1164	001641'02  602 04 0 00 000007 		TRNE T4,7		;DONE ALL REGS YET ?
  1165	001642'02  254 00 0 00 001630'		JRST BTCHK0		;LOOP BACK FOR REST OF REGISTERS
  1166
  1167					;VERIFY DRAM IS OK
  1168	001643'02  260 17 0 00 002164'		CALL MARCLR		;INITIALIZE THE MAR
  1169	001644'02  201 04 0 00 002000 		MOVEI T4,DRAMSZ		;SIZE OF THE DRAM
  1170	001645'02  201 01 0 00 041222 		MOVEI T1,041222		;MOVE <MEM><BSEL2>
  1171	001646'02  260 17 0 00 002167'		CALL KMCXCT		;READ DRAM (TO RESTORE LATER)
  1172	001647'02  712 07 0 06 000002 		RDIO Q3,BSEL2(Q2)	;GET OLD CONTENTS
  1173	001650'02  201 03 0 00 000200 	BTCKD0:	MOVEI T3,200		;PATERN FOR DRAM
  1174	001651'02  713 03 0 06 000002 	BTCKD1:	WRIO T3,BSEL2(Q2)	;SO WE WRITE INTO DRAM
  1175	001652'02  201 01 0 00 122440 		MOVEI T1,122440		;MOVE <BSEL2><MEM>
  1176	001653'02  260 17 0 00 002167'		CALL KMCXCT		;WRITE DRAM
  1177	001654'02  400 02 0 00 000000 		SETZ T2,
  1178	001655'02  713 02 0 06 000002 		WRIO T2,BSEL2(Q2)	;CLEAR BSEL2
  1179	001656'02  201 01 0 00 041222 		MOVEI T1,041222		;MOVE <MEM><BSEL2>
  1180	001657'02  260 17 0 00 002167'		CALL KMCXCT
  1181	001660'02  712 01 0 06 000002 		RDIO T1,BSEL2(Q2)	;READ MEMORY
  1182	001661'02  312 01 0 00 000003 		CAME T1,T3		;RIGHT DATA ?
  1183						 JRST [	TXO T1,BT%DVE	;DRAM VERIFY ERROR
  1184	001662'02  254 00 0 00 002614'			JRST KMCILL ]	;REPORT ERROR THEN QUIT
  1185	001663'02  322 03 0 00 001666'		JUMPE T3,BTCKD2
  1186	001664'02  242 03 0 00 777777 		LSH T3,-1		;NEXT PATERN FOR DRAM
  1187	001665'02  254 00 0 00 001651'		JRST BTCKD1		;TRY THAT ONE
  1188	001666'02  713 07 0 06 000002 	BTCKD2:	WRIO Q3,BSEL2(Q2)	;OLD CONTENTS OF DRAM
  1189	001667'02  201 01 0 00 136440 		MOVEI T1,136440		;MOVE <BSEL2><MEM><MARINC>
  1190	001670'02  260 17 0 00 002167'		CALL KMCXCT		;RESTORE DRAM LOCATION
  1191	001671'02  367 04 0 00 001650'		SOJG T4,BTCKD0		;ON TO NEXT DRAM LOCATION
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 29
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- LOAD KMC11

  1192
  1193					;HERE TO LOAD THE CRAM
  1194	001672'02  256 04 0 00 002616'	BTKLC0:	UMOVE T4,.BTKCC(Q1)	;GET COUNT FOR CRAM BYTES
  1195	001673'02  256 04 0 00 002617'		UMOVE Q3,.BTKCP(Q1)	;GET POINTER FOR CRAM BYTES
  1196	001674'02  323 04 0 00 001726'		JUMPLE T4,BTKLC9	;IN CASE NOT LOADING CRAM
  1197	001675'02  400 03 0 00 000000 		SETZ T3,		;FIRST ADDRESS TO LOAD
  1198	001676'02  713 03 0 06 000004 	BTKLC2:	WRIO T3,BSEL4(Q2)	;PUT ADR IN REGISTER
  1199	001677'02  350 00 0 00 000003 		AOS T3			;NEXT CRAM ADR
  1200	001700'02  256 03 0 00 002620'		XCTBU [ILDB T1,Q3]	;GET NEXT BYTE FOR CRAM
  1201	001701'02  713 01 0 06 000006 		WRIO T1,BSEL6(Q2)	;PUT DATA IN RIGHT PLACE
  1202	001702'02  201 01 0 00 002000 		MOVEI T1,KMCRMO		;SELECT ROM OUTPUT
  1203	001703'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;SET IT
  1204	001704'02  201 01 0 00 022000 		MOVEI T1,KMCRMO!KMCCWR	;NOW DO CRAM WRITE
  1205	001705'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)
  1206	001706'02  400 01 0 00 000000 		SETZ T1,
  1207	001707'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;CLEAR UP THE KMC11
  1208	001710'02  367 04 0 00 001676'		SOJG T4,BTKLC2		;ON FOR REST OF DATA
  1209					;NOW VERIFY CRAM LOAD
  1210	001711'02  256 04 0 00 002616'		UMOVE T4,.BTKCC(Q1)	;GET COUNT FOR CRAM BYTES
  1211	001712'02  256 04 0 00 002617'		UMOVE Q3,.BTKCP(Q1)	;GET POINTER FOR CRAM BYTES
  1212	001713'02  400 03 0 00 000000 		SETZ T3,		;FIRST ADR TO VERIFY
  1213	001714'02  713 03 0 06 000004 	BTKLC4:	WRIO T3,BSEL4(Q2)	;PUT ADR IN KMC11
  1214	001715'02  201 01 0 00 002000 		MOVEI T1,KMCRMO		;FLAG FOR ROM OUTPUT
  1215	001716'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;TELL IT TO READ CRAM
  1216	001717'02  712 01 0 06 000006 		RDIO T1,BSEL6(Q2)	;GET CRAM DATA
  1217	001720'02  256 03 0 00 002621'		XCTBU [ILDB T2,Q3]	;GET NEXT BYTE FROM USER
  1218	001721'02  256 04 0 00 002622'		UMOVEM Q3,.BTKCP(Q1)	;SAVE UPDATED CRAM POINTER
  1219	001722'02  312 01 0 00 000002 		CAME T1,T2		;IS CRAM RIGHT ?
  1220						JRST [	TXO T1,BT%CVE	;FLAG FOR CRAM VERIFY ERROR
  1221	001723'02  254 00 0 00 002623'			JRST KMCILL ]	;REPORT ERROR THEN QUIT
  1222	001724'02  350 00 0 00 000003 		AOS T3			;NEXT CRAM ADR
  1223	001725'02  367 04 0 00 001714'		SOJG T4,BTKLC4		;ON TO NEXT CRAM LOCATION
  1224	001726'02  256 04 0 00 002625'	BTKLC9:	UMOVEM T4,.BTKCC(Q1)	;SAVE UPDATED COUNT
  1225
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 30
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- LOAD KMC11

  1226
  1227					;HERE TO LOAD THE DRAM
  1228	001727'02  256 04 0 00 002626'	BTKLD0:	UMOVE T4,.BTKDC(Q1)	;GET COUNT FOR DRAM BYTES
  1229	001730'02  256 04 0 00 002627'		UMOVE Q3,.BTKDP(Q1)	;GET POINTER FOR DRAM BYTES
  1230	001731'02  323 04 0 00 001753'		JUMPLE T4,BTKLD9	;IN CASE NOT LOADING DRAM
  1231	001732'02  260 17 0 00 002164'		CALL MARCLR		;INITIALIZE THE MAR
  1232	001733'02  201 01 0 00 136440 		MOVEI T1,136440		;MOVE <BSEL2><MEM><MARINC>
  1233	001734'02  256 03 0 00 002621'	BTKLD2:	XCTBU [ILDB T2,Q3]	;GIVE NEXT BYTE TO USER
  1234	001735'02  713 02 0 06 000002 		WRIO T2,BSEL2(Q2)	;PUT DATA IN BSEL2 FOR KMC11
  1235	001736'02  260 17 0 00 002167'		CALL KMCXCT		;HAVE KMC11 PUT DATA INTO MEM
  1236	001737'02  367 04 0 00 001734'		SOJG T4,BTKLD2		;COUNT BYTE AND THEN DO NEXT
  1237	001740'02  256 04 0 00 002626'		UMOVE T4,.BTKDC(Q1)	;GET COUNT FOR DRAM BYTES
  1238	001741'02  256 04 0 00 002627'		UMOVE Q3,.BTKDP(Q1)	;GET POINTER FOR DRAM BYTES
  1239	001742'02  260 17 0 00 002164'		CALL MARCLR		;INITIALIZE THE MAR
  1240	001743'02  201 01 0 00 055222 		MOVEI T1,055222		;MOVE <MEM><BSEL2><MARINC>
  1241	001744'02  260 17 0 00 002167'	BTKLD4:	CALL KMCXCT		;GET NEXT BYTE FROM DRAM
  1242	001745'02  712 02 0 06 000002 		RDIO T2,BSEL2(Q2)	;GET DATA
  1243	001746'02  256 03 0 00 002630'		XCTBU [ILDB T3,Q3]	;GET WHAT USER WANTED
  1244	001747'02  256 04 0 00 002631'		UMOVEM Q3,.BTKDP(Q1)	;SAVE UPDATED DRAM POINTER
  1245	001750'02  312 02 0 00 000003 		CAME T2,T3		;DO THEY MATCH ?
  1246						JRST [	TXO T2,BT%DVE	;DRAM VERIFY ERROR
  1247							MOVE T1,T2	;PUT IN RIGHT REGISTER
  1248	001751'02  254 00 0 00 002632'			JRST KMCILL ]	;DONE WITH JSYS
  1249	001752'02  367 04 0 00 001744'		SOJG T4,BTKLD4		;LOOP BACK FOR REST OF VERIFY
  1250	001753'02  256 04 0 00 002635'	BTKLD9:	UMOVEM T4,.BTKDC(Q1)	;SAVE UPDATED DRAM COUNT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 31
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- LOAD KMC11

  1251
  1252					;HERE TO LOAD THE REGISTERS
  1253	001754'02  201 01 0 00 040000 		MOVEI T1,KMCMCL		;DO A MASTER CLEAR AGAIN
  1254	001755'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)
  1255	001756'02  400 01 0 00 000000 		SETZ T1,		;TO FINISH IT
  1256	001757'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)
  1257	001760'02  713 01 0 06 000002 		WRIO T1,BSEL2(Q2)	;CLEAR BSEL2
  1258	001761'02  713 01 0 06 000004 		WRIO T1,BSEL4(Q2)	;CLEAR BSEL4
  1259	001762'02  713 01 0 06 000006 		WRIO T1,BSEL6(Q2)	;CLEAR BSEL6
  1260	001763'02  256 04 0 00 002636'		UMOVE T1,.BTKSA(Q1)	;GET STARTING ADDRESS
  1261	001764'02  400 03 0 00 000000 		SETZ T3,		;DEFAULT IS DON'T START
  1262	001765'02  325 01 0 00 001775'		JUMPGE T1,BTKLR0	;IN CASE NO STARTING ADDRESS
  1263	001766'02  660 03 0 00 100000 		TRO T3,KMCRUN		;IF GAVE A STARTING ADR ASSUME WANTS TO RUN
  1264	001767'02  246 01 0 00 777770 		LSHC T1,-^D8		;LEAVE ONLY BRANCH ADR BITS 9,8
  1265	001770'02  405 01 0 00 000003 		ANDI T1,3		;STRIP ANY EXTRANEOUS BITS
  1266	001771'02  242 01 0 00 000003 		LSH T1,^D3
  1267	001772'02  246 01 0 00 000010 		LSHC T1,^D8
  1268	001773'02  435 01 0 00 100400 		IORI T1,100400		;MAKES AN UNCONDITIONAL BRANCH
  1269	001774'02  260 17 0 00 002167'		CALL KMCXCT		;EXECUTE THE BRANCH
  1270	001775'02  256 04 0 00 002637'	BTKLR0:	UMOVE T4,.BTKRC(Q1)	;GET COUNT FOR REGISTER BYTES
  1271	001776'02  256 04 0 00 002640'		UMOVE Q3,.BTKRP(Q1)	;GET POINTER FOR REGISTER BYTES
  1272	001777'02  323 04 0 00 002011'		JUMPLE T4,BTKLR9	;IN CASE NOT LOADING REGISTER
  1273	002000'02  256 03 0 00 002620'		XCTBU [ILDB T1,Q3]	;GET CONTENTS FOR BSEL0
  1274	002001'02  434 03 0 00 000001 		IOR T3,T1		;INCLUDE WITH RUN BIT
  1275	002002'02  200 02 0 00 000006 		MOVE T2,Q2		;COPY KMC11 ADR
  1276	002003'02  254 00 0 00 002006'		JRST BTKLR4
  1277	002004'02  256 03 0 00 002620'	BTKLR2:	XCTBU [ILDB T1,Q3]	;GET NEXT BYTE FROM USER
  1278	002005'02  713 01 0 02 000000 		WRIO T1,(T2)		;LOAD REGISTER
  1279	002006'02  271 02 0 00 000002 	BTKLR4:	ADDI T2,2		;READY FOR NEXT REGISTER
  1280	002007'02  602 02 0 00 000007 		TRNE T2,7		;LOADED ALL FOUR ?
  1281	002010'02  367 04 0 00 002004'		SOJG T4,BTKLR2		;ON TO NEXT
  1282	002011'02  713 03 0 06 000000 	BTKLR9:	WRIO T3,BSEL0(Q2)	;NOW SET BSEL0 (I.E. RUN FLOP)
  1283	002012'02  256 04 0 00 002641'		UMOVEM T4,.BTKRC(Q1)	;SAVE UPDATED REGISTER COUNT
  1284	002013'02  256 04 0 00 002642'		UMOVEM Q3,.BTKRP(Q1)	;SAVE UPDATED REGISTER POINTER
  1285	002014'02  316 06 0 00 002563'		CAMN Q2,[KMCADR]	;IS THIS OUR KMC11 ?
  1286	002015'02  260 17 0 00 002023'		CALL COMINI		;INITIALIZE THE COMIOP
  1287	002016'02  254 00 0 00 001621*		RETSKP
  1288
  1289	002017'02  202 01 0 05 000001 	KMCILL:	MOVEM T1,.BTKER(Q1)	;GIVE USER ERROR CODE
  1290						BUG (KMCBRK,<<Q2,D>>)
  1291						  ;BUG type:    BUGINF, HARD
  1292						  ;BUG message: KMC11 broken
  1293						       SALL
  1294	002020'02  256 00 0 00 002643'
  1295	002021'02  201 01 0 00 600221 		MOVEI T1,IOX5		;Device or data error
  1296	002022'02  263 17 0 00 000000 		RET			;REPORT PROBLEM THEN QUIT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 32
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- LOAD KMC11

  1297
  1298					;HERE TO INITIALIZE THE COMIOP
  1299
  1300	002023'02  331 10 0 00 000000*	COMINI:	SKIPL P1,KDPLIM		;GET NUMBER OF DUP11'S
  1301	002024'02  263 17 0 00 000000 		RET			;NONE SO DONE
  1302	002025'02  201 01 0 00 000000#		MOVEI T1,KMCINQ+3	;START PUTTING ENTRIES HERE
  1303	002026'02  202 01 0 00 000000*		MOVEM T1,KMCINQ		;INITIALIZE THE PUTTER
  1304	002027'02  202 01 0 00 000000#		MOVEM T1,KMCINQ+1	;INITIALIZE THE TAKER
  1305	002030'02  540 10 0 10 001430*	KMBT.8:	HRR P1,KDPPAG(P1)	;GET ADR OF LINES PAGE
  1306	002031'02  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET ADR OF DDCMP LINE TABLE
  1307	002032'02  402 00 0 10 000052 		SETZM PGXBD1(P1)	;FIRST TRANSMIT BUFFER IS FREE
  1308	002033'02  402 00 0 10 000216 		SETZM PGXBD2(P1)	;SECOND TRANSMIT BUFFER IS FREE
  1309	002034'02  402 00 0 10 000362 		SETZM PGRBD1(P1)	;FIRST RECEIVE BUFFER IS FREE
  1310	002035'02  402 00 0 10 000526 		SETZM PGRBD2(P1)	;SECOND RECEIVE BUFFER IS FREE
  1311					    IFN FTRACE,<
  1312	002036'02  201 01 0 10 000704 		MOVEI T1,PGTRCE(P1)	;GET ADR OF TRACE
  1313	002037'02  202 01 0 10 000703 		MOVEM T1,PGTPTR(P1)	;SAVE PUTTER
  1314					    >;IFN FTRACE
  1315	002040'02  201 01 0 00 000002 		MOVEI T1,STASTR		;TRYING TO START LINE
  1316	002041'02  137 01 0 00 002530'		STOR T1,DDSTA		;REMEMBER NEW STATE
  1317	002042'02  201 01 0 00 000001 		MOVEI T1,1		;QUICK TIMER
  1318	002043'02  137 01 0 00 002646'		STOR T1,DDTIM		;SO WE SEND A START SOON
  1319	002044'02  550 02 0 10 000007 		HRRZ T2,PGKDPN(P1)	;GET LINE NUMBER
  1320	002045'02  242 02 0 00 000003 		LSH T2,3		;MULTIPLY BY 8
  1321	002046'02  270 02 0 00 002515'		ADD T2,[DUPADR]		;MAKES THIS LINES ADR
  1322	002047'02  400 01 0 00 000000 		SETZ T1,
  1323	002050'02  713 01 0 02 000000 		WRIO T1,(T2)		;CLEAR FIRST DUP11 REGISTER
  1324	002051'02  713 01 0 02 000002 		WRIO T1,2(T2)		;CLEAR 2ND DUP11 REGISTER
  1325	002052'02  713 01 0 02 000004 		WRIO T1,4(T2)		;CLEAR 3RD DUP11 REGISTER
  1326	002053'02  713 01 0 02 000006 		WRIO T1,6(T2)		;CLEAR 4TH DUP11 REGISTER
  1327	002054'02  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;THIS IS LINE NUMBER
  1328	002055'02  242 01 0 00 000010 		LSH T1,^D8		;POSITION FOR LH UNIBUS BYTE
  1329	002056'02  435 01 0 00 000003 		IORI T1,BASEIN		;COMMAND TYPE
  1330	002057'02  405 02 0 00 017770 		ANDI T2,CSRMSK		;STRIP EXTRA BITS
  1331	002060'02  260 17 0 00 000000#		CALL KMCINP		;GIVE MSG TO KMC11
  1332	002061'02  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;LINE NUMBER
  1333	002062'02  242 01 0 00 000010 		LSH T1,^D8		;POSITION FOR LH UNIBUS BYTE
  1334	002063'02  435 01 0 00 000001 		IORI T1,CNTLIN		;WILL BE A CONTROL IN MESSAGE
  1335	002064'02  201 02 0 00 100400 		MOVEI T2,CDDCMP!CENABL	;DDCMP AND ENABLE LINE
  1336	002065'02  260 17 0 00 000000#		CALL KMCINP		;GIVE MSG TO KMC11
  1337	002066'02  201 03 0 10 000362 		MOVEI T3,PGRBD1(P1)	;FIRST RECEIVER BUFFER
  1338	002067'02  260 17 0 00 000000#		CALL RCVENB		;START THE RECEIVER ... BUFFER 1
  1339	002070'02  201 03 0 10 000526 		MOVEI T3,PGRBD2(P1)	;2ND RECEIVER BUFFER
  1340	002071'02  260 17 0 00 000000#		CALL RCVENB		;START THE RECEIVER ... BUFFER 2
  1341	002072'02  540 10 0 10 000007 		HRR P1,PGKDPN(P1)	;GET LINE NUMBER AGAIN
  1342	002073'02  253 10 0 00 002030'		AOBJN P1,KMBT.8		;LOOP BACK FOR REST OF DUP11 LINES
  1343	002074'02  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 33
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- LOAD KMC11

  1344
  1345						SUBTTL	BOOT JSYS -- DUMP THE KMC11
  1346
  1347	002075'02  260 17 0 00 001040'	BTKMD:	CALL BTGKMA		;GET KMC11 ADR FROM ARGUMENT BLOCK
  1348	002076'02  256 04 0 00 002637'		UMOVE T4,.BTKRC(Q1)	;GET COUNT FOR SAVING REGISTERS
  1349	002077'02  256 04 0 00 002640'		UMOVE Q3,.BTKRP(Q1)	;POINTER FOR STORING REGISTERS
  1350	002100'02  323 04 0 00 002120'		JUMPLE T4,BTKDR9	;IN CASE DOESN'T WANT REGISTERS
  1351	002101'02  200 03 0 00 000006 		MOVE T3,Q2		;COPY KMC11 ADR
  1352	002102'02  712 01 0 03 000000 	BTKDR2:	RDIO T1,(T3)		;GET DATA FROM BSEL#
  1353	002103'02  256 03 0 00 002647'		XCTBU [IDPB T1,Q3]	;SAVE NEXT BYTE FOR USER
  1354	002104'02  363 04 0 00 002120'		SOJLE T4,BTKDR9		;IF NO ROOM DONE
  1355	002105'02  271 03 0 00 000002 		ADDI T3,2		;ON TO NEXT REGISTER
  1356	002106'02  602 03 0 00 000007 		TRNE T3,7		;DONE ALL FOUR ?
  1357	002107'02  254 00 0 00 002102'		JRST BTKDR2		;ON FOR NEXT
  1358	002110'02  260 17 0 00 002177'		CALL BTSTOP		;STOP THE KMC11 IF RUNNING
  1359	002111'02  201 01 0 00 121202 		MOVEI T1,121202		;MOVE <NPR>,<BSEL2>
  1360	002112'02  260 17 0 00 002154'		CALL BTKDR6
  1361	002113'02  201 01 0 00 021002 		MOVEI T1,021002		;MOVE <IBUS 0>,<BSEL2>
  1362	002114'02  260 17 0 00 002154'		CALL BTKDR6
  1363	002115'02  260 17 0 00 002154'		CALL BTKDR6
  1364	002116'02  260 17 0 00 002154'		CALL BTKDR6
  1365	002117'02  260 17 0 00 002154'		CALL BTKDR6
  1366	002120'02  260 17 0 00 002177'	BTKDR9:	CALL BTSTOP		;STOP THE KMC11 IF RUNNING
  1367	002121'02  256 04 0 00 002641'		UMOVEM T4,.BTKRC(Q1)	;SAVE UPDATED REG COUNTER
  1368	002122'02  256 04 0 00 002642'		UMOVEM Q3,.BTKRP(Q1)	;SAVE UPDATED POINTER
  1369
  1370					;HERE TO DUMP THE KMC11 CRAM
  1371	002123'02  256 04 0 00 002616'	BTKDC0:	UMOVE T4,.BTKCC(Q1)	;GET COUNTER FOR CRAM DATA
  1372	002124'02  256 04 0 00 002617'		UMOVE Q3,.BTKCP(Q1)	;GET POINTER FOR CRAM DATA
  1373	002125'02  323 04 0 00 002136'		JUMPLE T4,BTKDC9	;IN CASE DOESN'T WANT TO DUMP CRAM
  1374	002126'02  400 02 0 00 000000 		SETZ T2,		;CRAM ADR TO DUMP NEXT
  1375	002127'02  713 02 0 06 000004 	BTKDC2:	WRIO T2,BSEL4(Q2)	;SELECT ADR TO DUMP
  1376	002130'02  201 01 0 00 002000 		MOVEI T1,KMCRMO		;FLAG TO DUMP CRAM
  1377	002131'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;TELL IT TO DUMP CRAM
  1378	002132'02  712 01 0 06 000006 		RDIO T1,BSEL6(Q2)	;GET LOCATION FROM CRAM
  1379	002133'02  256 03 0 00 002647'		XCTBU [IDPB T1,Q3]	;PUT BYTE IN USER CORE
  1380	002134'02  363 04 0 00 002136'		SOJLE T4,BTKDC9		;COUNT BYTE
  1381	002135'02  344 02 0 00 002127'		AOJA T2,BTKDC2		;ON FOR NEXT BYTE
  1382	002136'02  256 04 0 00 002625'	BTKDC9:	UMOVEM T4,.BTKCC(Q1)	;SAVE UPDATED CRAM COUNTER
  1383	002137'02  256 04 0 00 002622'		UMOVEM Q3,.BTKCP(Q1)	;SAVE UPDATED POINTER
  1384
  1385					;HERE TO DUMP THE KMC11 DRAM
  1386	002140'02  256 04 0 00 002626'	BTKDD0:	UMOVE T4,.BTKDC(Q1)	;GET COUNTER FOR DRAM DATA
  1387	002141'02  256 04 0 00 002627'		UMOVE Q3,.BTKDP(Q1)	;GET POINTER FOR DRAM DATA
  1388	002142'02  323 04 0 00 002151'		JUMPLE T4,BTKDD9	;IN CASE DOESN'T WANT TO DUMP THE DRAM
  1389	002143'02  260 17 0 00 002164'		CALL MARCLR		;INITIALIZE THE MAR
  1390	002144'02  201 01 0 00 055222 	BTKDD2:	MOVEI T1,055222		;MOVE <MEM>,<BSEL2>,<MARINC>
  1391	002145'02  260 17 0 00 002167'		CALL KMCXCT		;GET NEXT DRAM BYTE
  1392	002146'02  712 02 0 06 000002 		RDIO T2,BSEL2(Q2)	;GET BYTE WE JUST PUT IN BSEL2
  1393	002147'02  256 03 0 00 002650'		XCTBU [IDPB T2,Q3]	;GIVE BYTE TO USER
  1394	002150'02  367 04 0 00 002144'		SOJG T4,BTKDD2		;ON FOR NEXT BYTE
  1395	002151'02  256 04 0 00 002635'	BTKDD9:	UMOVEM T4,.BTKDC(Q1)	;SAVE UPDATED DRAM COUNTER
  1396	002152'02  256 04 0 00 002631'		UMOVEM Q3,.BTKDP(Q1)	;SAVE UPDATED DRAM POINTER
  1397	002153'02  254 00 0 00 002016*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 34
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- DUMP THE KMC11

  1398
  1399					;HERE TO FORCE KMC11 TO GIVE US INTERNAL INFORMATION
  1400	002154'02  323 04 0 00 000000*	BTKDR6:	JUMPLE T4,R		;IN CASE COUNT ALREADY EXHAUSTED
  1401	002155'02  260 17 0 00 002167'		CALL KMCXCT		;XCT FIRST INSTRUCTION
  1402	002156'02  271 01 0 00 000021 		ADDI T1,21		;NEXT SOURCE & DEST
  1403	002157'02  260 17 0 00 002167'		CALL KMCXCT		;EXECUTE NEXT INSTRUCTION
  1404	002160'02  271 01 0 00 000017 		ADDI T1,17		;INCREMENT SOURCE,DECREMENT DESTINATION
  1405	002161'02  712 02 0 06 000002 		RDIO T2,BSEL2(Q2)	;GET DATA WE JUST FORCED TO BSEL2 & BSEL3
  1406	002162'02  256 03 0 00 002650'		XCTBU [IDPB T2,Q3]	;SAVE THIS REGISTER
  1407	002163'02  364 04 0 00 002154*		SOJA T4,R		;COUNT BYTE GIVEN TO USER
  1408
  1409					;HERE TO CLEAR THE MAR
  1410	002164'02  201 01 0 00 004000 	MARCLR:	MOVEI T1,004000		;CLEAR MAR LOW
  1411	002165'02  260 17 0 00 002167'		CALL KMCXCT		;DO IT
  1412	002166'02  201 01 0 00 010000 		MOVEI T1,010000		;CLEAR MAR HI
  1413						;CALL KMCXCT		;DO IT
  1414						;RET
  1415
  1416					;HERE TO EXECUTE A KMC11 INSTRUCTION
  1417					; CALL WITH KMC11 INSTRUCTION IN T1
  1418	002167'02  201 02 0 00 001000 	KMCXCT:	MOVEI T2,KMCRMI
  1419	002170'02  713 02 0 06 000000 		WRIO T2,BSEL0(Q2)	;PUT BSEL1 IN KNOWN STATE
  1420	002171'02  713 01 0 06 000006 		WRIO T1,BSEL6(Q2)	;LOAD BSEL6 & BSEL7
  1421	002172'02  201 02 0 00 001400 		MOVEI T2,KMCRMI!KMCSUP
  1422	002173'02  713 02 0 06 000000 		WRIO T2,BSEL0(Q2)	;DO ONE INSTRUCTION
  1423	002174'02  400 02 0 00 000000 		SETZ T2,		;TO CLEAN UP BSEL0
  1424	002175'02  713 02 0 06 000000 		WRIO T2,BSEL0(Q2)	;CLEAN OUT BSEL0
  1425	002176'02  263 17 0 00 000000 		RET
  1426
  1427					;HERE TO STOP THE KMC11 AS PART OF BOOT JSYS
  1428	002177'02  350 00 0 00 001464*	BTSTOP:	NOINT			;PREVENT INTERRUPTS
  1429	002200'02  316 06 0 00 002563'		CAMN Q2,[KMCADR]	;IS THIS OUR KMC11 ?
  1430	002201'02  260 17 0 00 000000#		CALL KMCHLT		;YES SO CLEAN UP FIRST
  1431	002202'02  400 01 0 00 000000 		SETZ T1,		;TO CLEAR BSEL0
  1432	002203'02  713 01 0 06 000000 		WRIO T1,BSEL0(Q2)	;STOP THE KMC11
  1433	002204'02  256 00 0 00 001467*		OKINT
  1434	002205'02  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 35
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- DUMP THE KMC11

  1435
  1436						SUBTTL	BOOT JSYS -- RETURN LINE COUNTERS
  1437
  1438	002206'02  260 17 0 00 001052'	BTRLC:	CALL BTGPRT		;GET PORT NUMBER
  1439	002207'02  200 01 0 10 000011 		MOVE T1,PGZTIM(P1)	;GET TIME SINCE ZEROED COUNTERS
  1440	002210'02  256 04 0 00 002651'		UMOVEM T1,.BTZTM(Q1)	;GIVE NUMBER TO USER
  1441	002211'02  505 04 0 00 777767 		HRLI T4,-11		;NUMBER OF STATUS COUNTERS
  1442	002212'02  541 04 0 10 000013 		HRRI T4,PGCOCN(P1)	;POINT TO STATUS COUNTERS
  1443	002213'02  201 03 0 05 000002 		MOVEI T3,.BTSCC(Q1)	;ADR OF USERS COUNT FOR STATUS COUNTERS
  1444	002214'02  260 17 0 00 002230'		CALL BTRLCS		;GIVE STATUS COUNTERS TO USER
  1445	002215'02  505 04 0 00 777767 		HRLI T4,-11		;NUMBER OF RECEIVE COUNTERS
  1446	002216'02  541 04 0 10 000035 		HRRI T4,PGRMCN(P1)	;POINT TO RECEIVE COUNTERS
  1447	002217'02  201 03 0 05 000004 		MOVEI T3,.BTRCC(Q1)	;ADR OF USERS COUNT FOR RECEIVER COUNTERS
  1448	002220'02  260 17 0 00 002230'		CALL BTRLCS		;GIVE RECEIVE COUNTERS TO USER
  1449	002221'02  505 04 0 00 777767 		HRLI T4,-11		;NUMBER OF TRANSMIT COUNTERS
  1450	002222'02  541 04 0 10 000024 		HRRI T4,PGXMCN(P1)	;POINT TO TRANSMIT COUNTERS
  1451	002223'02  201 03 0 05 000006 		MOVEI T3,.BTTCC(Q1)	;ADR OF USERS COUNT FOR TRANSMITTER COUNTERS
  1452	002224'02  260 17 0 00 002230'		CALL BTRLCS		;GIVE TRANSMIT COUNTERS TO USER
  1453	002225'02  337 00 0 00 000010 		SKIPG P1		;DID WE ZERO COUNTERS ?
  1454	002226'02  402 00 0 10 000011 		SETZM PGZTIM(P1)	;START ZERO TIMER AGAIN
  1455	002227'02  254 00 0 00 002153*		RETSKP
  1456
  1457	002230'02  256 04 0 00 002652'	BTRLCS:	UMOVE T2,1(T3)		;GET USERS BYTE POINTER
  1458	002231'02  256 04 0 00 002653'	BRLCS2:	UMOVE T1,(T3)		;GET COUNT USER GAVE
  1459	002232'02  361 01 0 00 002241'		SOJL T1,BRLCS8		;CHECK FOR USER HAS ENOUGH
  1460	002233'02  256 04 0 00 002654'		UMOVEM T1,(T3)		;GIVE USER UPDATED COUNTER
  1461						;PIOFF
  1462	002234'02  200 01 0 04 000000 		MOVE T1,(T4)		;GET NEXT COUNTER
  1463	002235'02  337 00 0 00 000010 		SKIPG P1		;WANT TO ZERO COUNTER ?
  1464	002236'02  402 00 0 04 000000 		SETZM (T4)		;CLEAR COUNTER
  1465						;PION
  1466	002237'02  256 03 0 00 002655'		XCTBU [IDPB T1,T2]	;GIVE COUNTER TO USER
  1467	002240'02  253 04 0 00 002231'		AOBJN T4,BRLCS2		;LOOP BACK FOR NEXT COUNTER
  1468	002241'02  256 04 0 00 002656'	BRLCS8:	UMOVEM T2,1(T3)		;GIVE UPDATED POINTER TO USER
  1469	002242'02  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 36
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- RETURN LINE COUNTERS

  1470
  1471						SUBTTL	BOOT JSYS -- CONVERT LINE-ID TO PORT NUMBER
  1472
  1473	002243'02  260 17 0 00 002272'	BTCLI:	CALL BTGPLX		;SETUP T4 WITH USER POINTER
  1474									; AND T3 TO POINT TO ASCIZ \KDP_0_\
  1475	002244'02  134 01 0 00 000003 	BTCLI2:	ILDB T1,T3		;GET NEXT BYTE FROM OUR STRING
  1476	002245'02  256 03 0 00 002657'		XCTBU [ILDB T2,T4]	;GET NEXT BYTE FROM USER STRING
  1477	002246'02  322 01 0 00 002251'		JUMPE T1,BTCLI5		;IF DONE WITH OUR STRING
  1478	002247'02  316 01 0 00 000002 		CAMN T1,T2		;DO TWO BYTES MATCH
  1479	002250'02  254 00 0 00 002244'		JRST BTCLI2		;ON FOR REST OF STRING
  1480	002251'02  640 02 0 00 000060 	BTCLI5:	TRC T2,60		;STRIP EXTRA BITS
  1481	002252'02  311 02 0 00 001426*		CAML T2,KDPNLN		;IS NUMBER IN RANGE ?
  1482	002253'02  254 00 0 00 001033'		JRST BTERR		;LOSE
  1483	002254'02  256 04 0 00 002660'		UMOVEM T2,.BTPRT(Q1)	;RETURN PORT NUMBER TO USER
  1484	002255'02  256 03 0 00 002661'		XCTBU [ILDB T1,T4]	;GET 0 BYTE FROM USER STRINT
  1485	002256'02  254 00 0 00 002227*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 37
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- CONVERT LINE-ID TO PORT NUMBER

  1486
  1487						SUBTTL	BOOT JSYS -- CONVERT PORT NUMBER TO LINE-ID
  1488
  1489	002257'02  260 17 0 00 002271'	BTCPN:	CALL BTGPLI		;GET PORT NUMBER AND POINTERS TO LINEID
  1490	002260'02  134 01 0 00 000003 		ILDB T1,T3		;GET NEXT BYTE FOR USER
  1491	002261'02  256 03 0 00 002662'		XCTBU [IDPB T1,T4]	;GIVE BYTE TO USER
  1492	002262'02  326 01 0 00 002260'		JUMPN T1,.-2		;LOOP ON FOR REST OF NAME
  1493	002263'02  550 02 0 10 000007 		HRRZ T2,PGKDPN(P1)	;GET DUP11 LINE NUMBER
  1494	002264'02  435 02 0 00 000060 		IORI T2,"0"		;MAKE IT ASCII
  1495	002265'02  256 03 0 00 002663'		XCTBU [DPB T2,T4]	;FINISH NAME
  1496	002266'02  256 03 0 00 002662'		XCTBU [IDPB T1,T4]	;MAKE IT ASCIZ
  1497	002267'02  256 04 0 00 002664'		UMOVEM T4,.BTLID(Q1)	;GIVE POINTER BACK TO USER
  1498	002270'02  254 00 0 00 002256*		RETSKP
  1499
  1500					;HERE TO GET PORT NUMBER AND POINTER TO LINEID FOR BTCLI & BTCPN
  1501	002271'02  260 17 0 00 001052'	BTGPLI:	CALL BTGPRT		;GET PORT NUMBER
  1502	002272'02  256 04 0 00 002665'	BTGPLX:	UMOVE T4,.BTLID(Q1)	;GET USERS POINTER
  1503	002273'02  554 01 0 00 000004 		HLRZ T1,T4		;GET PART OF BYTE POINTER
  1504	002274'02  306 01 0 00 777777 		CAIN T1,777777		;SPECIAL CASE ?
  1505	002275'02  505 04 0 00 440700 		HRLI T4,440700		;MAKE IT ASCII POINTER
  1506	002276'02  200 03 0 00 002670'		MOVE T3,[POINT 7,[ASCIZ \KDP_0_\]]
  1507	002277'02  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 38
KDPSRV	MAC	30-Sep-80 14:34		BOOT JSYS -- CONVERT PORT NUMBER TO LINE-ID

  1508
  1509						SUBTTL	HERE TO INITIALIZE THE KMC11
  1510
  1511	002300'02  200 01 0 00 002563'	KDPINI::MOVE T1,[KMCADR]	;ADR OF KMC11
  1512	002301'02  260 17 0 00 001047*		CALL UBGOOD		;CHECK TO SEE IF INSTALLED
  1513	002302'02  263 17 0 00 000000 		RET			;NO KMC11
  1514	002303'02  205 11 0 00 000000#		MOVSI P2,-KDPN		;NUMBER OF DUP11'S ASSEMBLED FOR
  1515	002304'02  201 10 0 00 000000*		MOVEI P1,KMCPAG		;POINT TO FIRST DUP11 PAGE
  1516	002305'02  552 10 0 11 002030*	DPINI2:	HRRZM P1,KDPPAG(P2)	;SAVE ADR OF PAGE FOR LINE
  1517						;HRL T1,P1		;BUILD BLT POINTER
  1518						;HRRI T1,1(P1)		; TO CLEAR
  1519						;SETZM (P1)		; THE LINES
  1520						;BLT T1,777(P1)		; PAGE
  1521	002306'02  552 11 0 10 000007 		HRRZM P2,PGKDPN(P1)	;SAVE LINE NUMBER IN LINES PAGE
  1522	002307'02  550 01 0 00 000011 		HRRZ T1,P2		;COPY DUP11 NUMBER
  1523	002310'02  242 01 0 00 000003 		LSH T1,3		;OFFSET FROM BASE ADDRESS
  1524	002311'02  270 01 0 00 002515'		ADD T1,[DUPADR]		;MAKE ADDRESS OF THIS DUP11
  1525	002312'02  260 17 0 00 002301*		CALL UBGOOD		;SEE IF IT EXISTS
  1526	002313'02  254 00 0 00 002336'		JRST DPINI3		;DON'T HAVE THE DUP11
  1527	002314'02  201 01 0 00 000003 		MOVEI T1,KMCUBN		;UBA UNIT NUMBER
  1528	002315'02  201 02 0 00 000001 		MOVEI T2,1		;ONLY NEED ONE PAGE
  1529	002316'02  260 17 0 00 000000*		CALL ALUBWA		;GET A UBA ADR FOR PAGE
  1530						BUG (DUPUBA)
  1531						  ;BUG type:    BUGHLT, soft
  1532						  ;BUG message: no Unibus Address
  1533						       SALL
  1534	002317'02  256 00 0 00 002671'
  1535	002320'02  516 02 0 10 000000 		HRLZM T2,PGUBAD(P1)	;SAVE UNIBUS ADR OF PAGE
  1536	002321'02  506 02 0 11 002305*		HRLM T2,KDPPAG(P2)	;SAVE UNIBUS ADR OF PAGE
  1537	002322'02  202 01 0 10 000010 		MOVEM T1,PGUBAM(P1)	;SAVE ADR OF UBA MAPPING REGISTER
  1538	002323'02  550 02 0 11 002321*		HRRZ T2,KDPPAG(P2)	;GET ADR OF PAGE
  1539	002324'02  242 02 0 00 777767 		LSH T2,-^D9		;CONVERT TO PAGE NUMBER
  1540	002325'02  435 02 0 00 040000 		IORI T2,UNBVBT		;FLAG VALID
  1541	002326'02  713 02 1 00 000001 		WRIO T2,@T1		;SET MAPPING REGISTER
  1542	002327'02  400 12 0 00 000000 		SETZ P3,		;INDICATE POINT TO POINT
  1543	002330'02  260 17 0 00 002403'		CALL DDINI		;SET DDCMP LINE TABLE
  1544	002331'02  201 01 0 00 050521 		MOVEI	T1,50521	;BOOT PASSWORD FOR ENTER-MOP-MODE
  1545	002332'02  507 00 0 00 000001 		HRLS	T1		;IS CURRENTLY
  1546	002333'02  202 01 0 10 000673 		MOVEM	T1,PGMPSW(P1)	;CANNED
  1547	002334'02  271 10 0 00 001000 		ADDI P1,1000		;ON TO NEXT LINES PAGE
  1548	002335'02  253 11 0 00 002305'		AOBJN P2,DPINI2		;LOOP BACK FOR OTHER DUP11'S
  1549	002336'02  552 11 0 00 002252*	DPINI3:	HRRZM P2,KDPNLN		;SAVE NUMBER OF DUP11'S
  1550	002337'02  517 00 0 00 000011 		HRLZS P2		;PUT NUMBER OF EXISTING DUP11'S IN LH
  1551	002340'02  212 11 0 00 002023*		MOVNM P2,KDPLIM		;REMEMBER HOW MANY THERE ARE
  1552	002341'02  331 10 0 00 002340*		SKIPL P1,KDPLIM		;GET NUMBER OF DUP11'S
  1553	002342'02  263 17 0 00 000000 		RET			;NONE
  1554
  1555	002343'02  205 01 0 00 254340 		MOVSI T1,(<XPCW>)	;INTERRUPT INSTRUCTION
  1556	002344'02  541 01 0 00 000000*		HRRI T1,KDPXPC		;XPCW ADR FOR VECTOR A (INPUT) INTERRUPTS
  1557	002345'02  402 00 0 01 000002 		SETZM 2(T1)		;CLEAR INTERRUPT FLAGS
  1558	002346'02  201 03 0 00 000000#		MOVEI T3,KMCVCA		;INTERRUPT ROUTINE FOR VECTOR A
  1559	002347'02  202 03 0 01 000003 		MOVEM T3,3(T1)		;SET INTERRUPT ROUTINE ADR
  1560	002350'02  201 02 0 00 000130 		MOVEI T2,KMCVEC/4	;OFFSET FOR VECTOR
  1561	002351'02  270 02 0 00 000000#		ADD T2,SMTEPT+KMCUBN	;GET ADR OF VECTOR TABLE
  1562	002352'02  202 01 0 02 000000 		MOVEM T1,(T2)		;SET VECTOR
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 38-1
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INITIALIZE THE KMC11

  1563	002353'02  271 01 0 00 000004 		ADDI T1,4		;XPCW ADR FOR VECTOR B (OUTPUT) INTERRUPTS
  1564	002354'02  402 00 0 01 000002 		SETZM 2(T1)		;FLAGS FOR VECTOR B
  1565	002355'02  201 03 0 00 000000#		MOVEI T3,KMCVCB
  1566	002356'02  202 03 0 01 000003 		MOVEM T3,3(T1)		;INTERRUPT ROUTINE FOR VECTOR B
  1567	002357'02  202 01 0 02 000001 		MOVEM T1,1(T2)		;SET VECTOR B
  1568	002360'02  336 00 0 00 000000*		SKIPN PROFLG		;WANT TO START THE KMC11 ?
  1569	002361'02  263 17 0 00 000000 		RET			;DON'T START IT
  1570
  1571					;NOW BOOT THE KMC11
  1572	002362'02  201 02 0 00 000000#		MOVEI T2,KMCPAG+PGXMS1	;USE THIS FOR ARG BLOCK FOR BOOT JSYS
  1573	002363'02  402 00 0 02 000000 		SETZM (T2)		;CLEAR ARG BLOCK
  1574	002364'02  504 01 0 00 000002 		HRL T1,T2
  1575	002365'02  541 01 0 02 000001 		HRRI T1,1(T2)
  1576	002366'02  251 01 0 02 000010 		BLT T1,.BTKSA(T2)	;CLEAR ARGUMENT BLOCK
  1577	002367'02  200 01 0 00 002563'		MOVE T1,[KMCADR]	;ADDRESS OF KMC11 HDW
  1578	002370'02  202 01 0 02 000000 		MOVEM T1,.BTKMC(T2)	;SAVE IN ARGUMENT BLOCK
  1579	002371'02  201 01 0 00 002000 		MOVEI T1,<COMIOE-COMIOP>*2 ;SIZE OF COMIOP CODE
  1580	002372'02  202 01 0 02 000002 		MOVEM T1,.BTKCC(T2)	;SAVE IN ARGUMENT BLOCK
  1581	002373'02  200 01 0 00 002673'		MOVE T1,[POINT 18,COMIOP] ;POINTER TO COMIOP CODE
  1582	002374'02  202 01 0 02 000003 		MOVEM T1,.BTKCP(T2)	;SAVE IN ARGUMENT BLOCK
  1583	002375'02  205 01 0 00 400000 		MOVSI T1,400000		;WANT TO START AT 0
  1584	002376'02  202 01 0 02 000010 		MOVEM T1,.BTKSA(T2)	;SAVE IT IN ARGUMENT BLOCK
  1585	002377'02  201 01 0 00 000011 		MOVEI T1,.BTKML		;CODE FOR LOAD FUNCTION
  1586	002400'02  104 00 0 00 000562 		BOOT			;LOAD THE KMC11
  1587						ERJMP [	BUG (KMCLOD)
  1588						  ;BUG type:    BUGINF, HARD
  1589						  ;BUG message: KMC11 LOAD FAILED
  1590						       SALL
  1591	002401'02  320 16 0 00 002676'			RET ]
  1592	002402'02  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 39
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INITIALIZE THE KMC11

  1593
  1594						SUBTTL	HERE TO INIT DDCMP LINE TABLE 
  1595
  1596					; P3/ DROP OF STATION OR ZERO FOR POINT TO POINT
  1597	002403'02  200 01 0 00 002700'	DDINI:		MOVE T1,[.RESP1,,DDLSZ]	;GET A CORE BLOCK
  1598	002404'02  200 02 0 00 002701'		MOVX T2,RS%SE0+.RESNP	;FROM THE NET POOL
  1599	002405'02  260 17 0 00 001314*		CALL ASGRES		;FOR THE LINE TABLE
  1600						BUG (DDLCOR)
  1601						  ;BUG type:    BUGHLT, soft
  1602						  ;BUG message: NO CORE FOR DDCMP
  1603						       SALL
  1604	002406'02  256 00 0 00 002702'
  1605	002407'02  200 13 0 00 000001 		MOVE P4,T1		;COPY ADDRESS
  1606	002410'02  200 01 0 00 002704'		MOVE T1,[.RESP1,,BLKSIZ] ;PRIORITY AND SIZE OF BLOCK TO GET
  1607	002411'02  200 02 0 00 002705'		MOVX T2,RS%SE0+.RESNP	;GET IT FROM THE NETWORK POOL
  1608	002412'02  260 17 0 00 002405*		CALL ASGRES		;GET THE BLOCK
  1609						BUG (DUPCOR)
  1610						  ;BUG type:    BUGHLT, SOFT
  1611						  ;BUG message: No core for DUP11
  1612						       SALL
  1613	002413'02  256 00 0 00 002706'
  1614	002414'02  260 17 0 00 000000#		CALL SAVBLK		;SAVE ADR OF BLOCK
  1615	002415'02  201 01 0 00 000002 		MOVEI T1,STASTR		;GET START STATE
  1616	002416'02  137 01 0 00 002530'		STOR T1,DDSTA		;MARK ELIGABLE FOR STARTS
  1617	002417'02  326 12 0 00 002423'		JUMPN P3,DDINI0		;POINT TO POINT?
  1618	002420'02  201 01 0 00 000001 		MOVEI T1,1		;ASSUME POINT TO POINT
  1619	002421'02  137 01 0 00 002520'		STOR T1,DDDRP
  1620	002422'02  254 00 0 00 002432'		JRST DDINI2		;ALL SET
  1621	002423'02  137 12 0 00 002520'	DDINI0:	STOR P3,DDDRP		;SAVE DROP #
  1622	002424'02  201 01 0 00 000001 		MOVEI T1,1		;GET A ONE
  1623	002425'02  542 01 0 13 000010 		STOR T1,DDSPC		;INIT STATION PRIORITY COUNTER
  1624	002426'02  506 01 0 13 000010 		STOR T1,DDIPC		;INIT PRESET COUNT
  1625	002427'02  201 01 0 00 000001 		MOVEI T1,DCPL		;MARK DCP ONLY
  1626	002430'02  137 01 0 00 002567'		STOR T1,LINSR		;IN LINE PAGE
  1627	002431'02  260 17 0 00 000000#		CALL INSTA		;THREAD THIS STATION
  1628	002432'02  542 13 0 10 000002 	DDINI2: HRRM P4,PGCSTA(P1)	;MARK LAST STATION AS SELECTED
  1629	002433'02  263 17 0 00 000000 		RET
  1630
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 40
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1631
  1632
  1633					;INSERT A LINE TABLE IN A STATION LIST
  1634					;INPUT 	/P1 LINE PAGE FOR DUP
  1635					;	/P4 DDCMP LINE TABLE
  1636					;LINE TABLE IS LINKED AND STATION LIST IN LINE PAGE IS UPDATED
  1637
  1638						RESCD
  1639	000034'01  700 14 0 00 000400 	INSTA:	PIOFF
  1640	000035'01  554 01 0 10 000001 		LOAD T1,DDSTB		;GET END OF STATION LIST
  1641	000036'01  322 01 0 00 000047'		JUMPE T1,INSTA1		;FIRST ENTRY??
  1642	000037'01  542 13 0 01 000000 		HRRM P4,(T1)		;UPDATE PREVIOUS LIST TAIL
  1643	000040'01  506 13 0 10 000001 		STOR P4,DDSTB		;UPDATE POINTER IN STATION LIST
  1644	000041'01  506 01 0 13 000000 		STOR T1,DDBAK		;SET BACK LINK
  1645	000042'01  550 01 0 10 000001 		LOAD T1,DDSTT		;GET TOP OF LIST
  1646	000043'01  542 01 0 13 000000 		STOR T1,DDLNK		;LINK NEW ENTRY
  1647	000044'01  506 13 0 01 000000 		HRLM P4,(T1)		;UPDATE BACK POINTER OF FORWARD LINK
  1648	000045'01  700 14 0 00 000200 		PION
  1649	000046'01  263 17 0 00 000000 		RET
  1650
  1651					;INITIALIZE NEW STATION LIST
  1652	000047'01  542 13 0 10 000001 	INSTA1:	STOR P4,DDSTT		;TOP OF LIST
  1653	000050'01  506 13 0 10 000001 		STOR P4,DDSTB		;LIST TAIL
  1654	000051'01  542 13 0 13 000000 		STOR P4,DDLNK		;LINK FIRST ENTRY TO ITSELF
  1655	000052'01  506 13 0 13 000000 		STOR P4,DDBAK
  1656	000053'01  700 14 0 00 000200 		PION
  1657	000054'01  263 17 0 00 000000 		RET
  1658
  1659					;REMOVE A STATION FROM THE STATION LIST
  1660
  1661	000055'01  700 14 0 00 000400 	REMSTA:	PIOFF
  1662	000056'01  550 01 0 13 000000 		LOAD T1,DDLNK		;GET FORWARD LINK
  1663	000057'01  554 02 0 13 000000 		LOAD T2,DDBAK		;GET BACK LINK
  1664	000060'01  316 01 0 00 000002 		CAMN T1,T2		;IS THIS LAST STATION ON LIST?
  1665	000061'01  312 01 0 00 000013 		CAME T1,P4
  1666	000062'01  254 00 0 00 000067'		JRST REM1		;NO, CONTINUE
  1667	000063'01  402 00 0 13 000000 		SETZM PGDLNK(P4)	;UNLINK STATION
  1668	000064'01  402 00 0 10 000001 		SETZM PGSTAL(P1)	;STATION LIST EMPTY
  1669	000065'01  700 14 0 00 000200 		PION
  1670	000066'01  263 17 0 00 000000 		RET
  1671
  1672	000067'01  542 01 0 02 000000 	REM1:	HRRM T1,PGDLNK(T2)	;UPDATE BACK LINK
  1673	000070'01  506 02 0 01 000000 		HRLM T2,PGDLNK(T1)	;UPDATE FORWARD LINK
  1674	000071'01  550 02 0 10 000001 		LOAD T2,DDSTT		;GET TOP OF STATION LIST
  1675	000072'01  316 02 0 00 000013 		CAMN T2,P4		;WAS IT THIS ONE
  1676	000073'01  542 01 0 10 000001 		STOR T1,DDSTT		;YES, UPDATE IT
  1677	000074'01  554 01 0 13 000000 		LOAD T1,DDBAK		;GET BACK BACK LINK
  1678	000075'01  554 02 0 10 000001 		LOAD T2,DDSTB		;GET TAIL OF STATION LIST
  1679	000076'01  316 02 0 00 000013 		CAMN T2,P4		;WAS IT THIS ONE
  1680	000077'01  506 01 0 10 000001 		STOR T1,DDSTB		;YES UPDAT IT
  1681	000100'01  700 14 0 00 000200 		PION
  1682	000101'01  263 17 0 00 000000 		RET
  1683
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 41
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1684
  1685					;HERE TO STOP THE KMC11 uPROCESSOR
  1686						RESCD
  1687	000102'01  265 16 0 00 000000*	KMCHLT::SAVEP			;SAVE THE P'S
  1688	000103'01  201 10 0 00 000000*		MOVEI P1,KMCPAG		;DUMP INTO FIRST LINES BLOCK
  1689	000104'01  200 11 0 00 002257'		MOVE P2,[KMCADR]	;ADDRESS OF THE KMC11
  1690	000105'01  200 12 0 00 002260'		MOVE P3,[POINT 18,PGKMCR(P1)] ;POINT TO REG DUMP AREA
  1691	000106'01  712 01 0 11 000000 	KMHLT2:	RDIO T1,BSEL0(P2)	;GET NEXT REGISTER FROM THE KMC11
  1692	000107'01  136 01 0 00 000012 		IDPB T1,P3		;SAVE IT
  1693	000110'01  271 11 0 00 000002 		ADDI P2,2		;POINT TO NEXT REGISTER
  1694	000111'01  602 11 0 00 000007 		TRNE P2,7		;DONE ALL REGS YET ?
  1695	000112'01  254 00 0 00 000106'		JRST KMHLT2		;LOOP BACK FOR REST
  1696	000113'01  275 11 0 00 000010 		SUBI P2,^D8		;FIX UP KMC11 ADR
  1697	000114'01  201 01 0 00 100000 		MOVEI T1,KMCRUN		;RUN FLOP
  1698	000115'01  715 01 0 11 000000 		BCIO T1,BSEL0(P2)	;STOP THE uPROCESSOR
  1699	000116'01  200 10 0 00 000000*		MOVE P1,KDPLIM		;LINE NUMBER
  1700	000117'01  540 10 0 10 000000*	KMHLT3:	HRR P1,KDPPAG(P1)	;GET ADR OF LINES PAGE
  1701	000120'01  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET ADR OF DDCMPLINE TABLE
  1702	000121'01  201 01 0 00 000000 		MOVEI T1,STADWN		;KMC11 IS NOT RUNNING
  1703	000122'01  260 17 0 00 000707'		CALL DEDLIN		;MOURN THE DEAD LINE
  1704	000123'01  540 10 0 10 000007 		HRR P1,PGKDPN(P1)	;GET THE LINE NUMBER AGAIN
  1705	000124'01  253 10 0 00 000117'		AOBJN P1,KMHLT3		;LOOP FOR REST OF DUP11 LINES
  1706	000125'01  263 17 0 00 000000 		RET
  1707
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 42
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1708
  1709					;HERE FROM NSPSRV TO CHECK FOR THINGS TO DO
  1710					; USED TO TELL NSPSRV IF LINE COMES UP OR DOWN
  1711
  1712						SWAPCD
  1713	002434'02  402 00 0 00 000000*	KDPTSK::SETZM KDPFLG		;HAVE CHECKED NOW
  1714	002435'02  331 10 0 00 002341*		SKIPL P1,KDPLIM		;GET NUMBER OF DUP11'S
  1715	002436'02  263 17 0 00 000000 		RET			;NONE
  1716	002437'02  400 13 0 00 000000 	KMCTK0:	SETZ P4,			;CLEAR STATION TABLE
  1717	002440'02  540 10 0 10 002323*		HRR P1,KDPPAG(P1)	;GET LINES PAGE
  1718	002441'02  260 17 0 00 000000#	KMCTK1:	CALL NXTSTA		;GET STATION TABLE ADDR
  1719	002442'02  254 00 0 00 002471'		JRST KMCTK9		;ALL DONE WITH THIS LINE
  1720	002443'02  700 14 0 00 000400 		PIOFF			;DISABLE INTERRUPTS
  1721	002444'02  135 03 0 00 002710'		LOAD T3,DCHNG		;GET CODE FOR READY TO BEGIN
  1722	002445'02  205 16 0 00 007000 		SETZRO DCHNG		;HAVE DONE IT NOW
  1723	002446'02  412 16 0 13 000002 
  1724	002447'02  322 03 0 00 002466'		JUMPE T3,KMCTK8		;CHECK FOR NOTHING
  1725	002450'02  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER FOR NSPSRV
  1726	002451'02  302 03 0 00 000001 		CAIE T3,DDUP		;DID LINE COME UP ?
  1727						JRST [	PION		;REENABLE INTERRUPTS
  1728							LOAD T2,LINSR		;GET LINE SERVER
  1729							CALL DEDDSP(T2)	;TELL SERVER IT DIED
  1730	002452'02  254 00 0 00 002711'			JRST KMCTK9 ]	;DONE
  1731	002453'02  135 02 0 00 002530'		LOAD T2,DDSTA		;GET DDCMP STATUS
  1732	002454'02  302 02 0 00 000003 		CAIE T2,STASTK		;HAVE WE SENT STACK ?
  1733	002455'02  254 00 0 00 002466'		JRST KMCTK8		;STRANGE - LOST RACE
  1734	002456'02  201 02 0 00 000004 		MOVEI T2,STARUN		;LINE IS NOW RUNNING
  1735	002457'02  137 02 0 00 002530'		STOR T2,DDSTA
  1736	002460'02  205 16 0 00 740000 		SETZRO DDSFC		;CLEAR STARTUP FAILURE COUNTER
  1737	002461'02  412 16 0 13 000002 
  1738	002462'02  700 14 0 00 000200 		PION			;REENABLE INTERRUPTS
  1739	002463'02  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;GET LINE NUMBER AGAIN
  1740	002464'02  135 02 0 00 002567'		LOAD T2,LINSR		;GET LINE SERVER
  1741	002465'02  260 17 0 02 002476'		CALL INIDSP(T2)		;LET SERVER LINE CAME ON
  1742	002466'02  700 14 0 00 000200 	KMCTK8:	PION			;REENABLE INTERRUPTS
  1743	002467'02  332 00 0 10 000001 		SKIPE PGSTAL(P1)	;POINT TO POINT
  1744	002470'02  254 00 0 00 002441'		JRST KMCTK1		;NO, LOOP THRU STATION LIST
  1745	002471'02  540 10 0 10 000007 	KMCTK9:	HRR P1,PGKDPN(P1)	;GET LINE NUMBER AGAIN
  1746	002472'02  253 10 0 00 002437'		AOBJN P1,KMCTK0
  1747	002473'02  263 17 0 00 000000 		RET
  1748	002474'02  254 00 0 00 000000*	DEDDSP:	JRST DEDMCB
  1749	002475'02  254 00 0 00 000000#		JRST DEDDCP		;POST STATION DOWN
  1750	002476'02  254 00 0 00 000000*	INIDSP:	JRST NODINI		;TELL NSPSRV LINE CAME UP
  1751	002477'02  254 00 0 00 000000#		JRST DCPINI		;POST STATION ON LINE
  1752
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 43
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1753
  1754
  1755					;HERE TO FIND NEXT STATION IN STATION LIST
  1756					;P4/ ADDR OF PREVIOUS STATION OR ZERO TO INITIATE SCAN
  1757					;
  1758					;RETURNS
  1759					; +2 WITH ADDR OF NEXT STATION IN P4
  1760					;         OR
  1761					; +1 IF CALLED WITH P4 POINTING AT LAST STATION (END OF SCAN)
  1762						RESCD		;CALLED FROM ALL LEVELS
  1763	000126'01  336 01 0 10 000001 	NXTSTA:	SKIPN T1,PGSTAL(P1)	;POINT TO POINT
  1764						JRST [ HRR P4,PGCSTA(P1)	;GET ADR OF DDCMP LINE TABLE
  1765	000127'01  254 00 0 00 002261'		       RETSKP ]
  1766	000130'01  557 00 0 00 000001 		HLRZS T1		;GET END OF STATION LIST
  1767	000131'01  316 01 0 00 000013 		CAMN T1,P4		;IS THIS IT
  1768	000132'01  263 17 0 00 000000 		RET			;FINISHED ALL STATIONS
  1769	000133'01  336 00 0 00 000013 		SKIPN P4		;FIRST TIME THRU
  1770	000134'01  200 13 0 00 000001 		MOVE P4,T1		;YES GET END OF LIST
  1771	000135'01  550 13 0 13 000000 		LOAD P4,DDLNK		;GET NEXT STATION
  1772	000136'01  254 00 0 00 000000*		RETSKP			;PROCESS THIS STATION
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 44
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1773
  1774					;HERE TO GIVE "INPUT" TO THE KMC11
  1775					; CALL	MOVE T1,(0,,LINE NUMBER*400+TYPE)
  1776					;	MOVE T2,(BSEL4 DATA,,BSEL6 DATA)
  1777					;	CALL KMCINP
  1778						RESCD			;CALLED FROM ALL LEVELS
  1779	000137'01  607 02 0 00 000777 	KMCINP:	TLNN T2,777		;%% DEBUG %%
  1780	000140'01  255 00 0 00 000000 		JFCL			;%%%%%%%%%%%
  1781	000141'01  201 03 0 00 000221 		MOVEI T3,KMCRQI!KMCIEI!KMCIEO	;WANT TO GIVE INPUT
  1782	000142'01  700 14 0 00 000400 		PIOFF			;DISABLE RACE WITH INT LEVEL
  1783	000143'01  714 03 1 00 002257'		BSIO T3,@[BSEL0+KMCADR]	;REQUEST INPUT
  1784	000144'01  200 03 0 00 000000*		MOVE T3,KMCINQ		;GET PUTTER FOR INPUT QUEUE
  1785	000145'01  306 03 0 00 000000#		CAIN T3,KMCINQ+KMCQLN-1	;READY TO WRAP AROUND ?
  1786	000146'01  201 03 0 00 000000#		MOVEI T3,KMCINQ+1	;WRAPPING AROUND
  1787	000147'01  271 03 0 00 000002 		ADDI T3,2		;MAKE ADR OF QUEUE ENTRY
  1788	000150'01  316 03 0 00 000000#		CAMN T3,KMCINQ+1	;WILL THIS OVERFLOW THE QUEUE ?
  1789						BUG (KMCNTI)
  1790						  ;BUG type:    BUGCHK, HARD
  1791						  ;BUG message: KMC11 not taking input
  1792						       SALL
  1793	000151'01  256 00 0 00 002263'
  1794	000152'01  202 01 0 03 777777 		MOVEM T1,-1(T3)		;PUT 1ST HALF IN QUEUE
  1795	000153'01  202 02 0 03 000000 		MOVEM T2,(T3)		;PUT 2ND HALF IN QUEUE
  1796	000154'01  202 03 0 00 000144*		MOVEM T3,KMCINQ		;SAVE UPDATED PUTTER
  1797	000155'01  700 14 0 00 000200 		PION
  1798	000156'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 45
KDPSRV	MAC	30-Sep-80 14:34		HERE TO INIT DDCMP LINE TABLE 

  1799
  1800						SUBTTL	KMC11 INTERRUPT LEVEL SERVICE
  1801
  1802					;HERE FOR INPUT INTERRUPTS
  1803	000157'01  202 17 0 00 000000#	KMCVCA:	MOVEM 17,KMCACS+17	;SAVE REG
  1804	000160'01  201 17 0 00 000000*		MOVEI 17,KMCACS		;BUILD BLT POINTER
  1805	000161'01  251 17 0 00 000000#		BLT 17,KMCACS+16	;SAVE REST OF REGS
  1806	000162'01  200 17 0 00 000000*		MOVE P,KMCPDL		;SET UP STACK
  1807	000163'01  200 04 0 00 002257'		MOVE T4,[KMCADR]	;GET ADDRESS OF THE KMC11 HDW
  1808	000164'01  712 02 0 04 000002 		RDIO T2,BSEL2(T4)	;GET RDI FLAG
  1809	000165'01  200 01 0 00 000000#		MOVE T1,KMCINQ+1	;GET INPUT QUEUE TAKER
  1810	000166'01  312 01 0 00 000154*		CAME T1,KMCINQ		;ARE PUTTER AND TAKE DIFFERENT ?
  1811	000167'01  606 02 0 00 000020 		TRNN T2,KMCRDI		;AND IS IT READY ?
  1812						BUG (KMCIII,<<T1,QPNTR>,<T2,STSBTS>>)
  1813						  ;BUG type:    BUGHLT, hard
  1814						  ;BUG message: KMC11 illegal input interrupt
  1815						       SALL
  1816	000170'01  256 00 0 00 002265'
  1817	000171'01  306 01 0 00 000000#		CAIN T1,KMCINQ+KMCQLN-1	;TIME TO WRAP AROUND AGAIN ?
  1818	000172'01  201 01 0 00 000000#		MOVEI T1,KMCINQ+1	;YES SO POINT TO BEGINING OF QUEUE
  1819	000173'01  271 01 0 00 000002 		ADDI T1,2		;ADVANCE POINTER FOR THIS ENTRY
  1820	000174'01  202 01 0 00 000000#		MOVEM T1,KMCINQ+1	;SAVE UPDATED TAKER
  1821	000175'01  201 02 0 00 000200 		MOVEI T2,KMCRQI		;WANT TO CLEAR RQUEST INPUT FLAG
  1822	000176'01  316 01 0 00 000166*		CAMN T1,KMCINQ		;IS QUEUE EMPTY NOW ?
  1823	000177'01  715 02 0 04 000000 		BCIO T2,BSEL0(T4)	;THIS IS LAST OF DATA
  1824	000200'01  200 02 0 01 000000 		MOVE T2,(T1)		;GET 2ND WORD IN QUEUE ENTRY
  1825	000201'01  200 01 0 01 777777 		MOVE T1,-1(T1)		;GET 1ST WORD IN QUEUE ENTRY
  1826					    IFN FTRACE,<
  1827	000202'01  135 10 0 00 002271'		LDB P1,[POINT 8,T1,27]	;GET LINE NUMBER
  1828	000203'01  550 10 0 10 000117*		HRRZ P1,KDPPAG(P1)	;GET LINES PAGE
  1829	000204'01  200 03 0 10 000703 		MOVE T3,PGTPTR(P1)	;GET TRACE POINTER
  1830	000205'01  562 01 0 03 000000 		HRROM T1,(T3)		;SAVE SEL2
  1831	000206'01  202 02 0 03 000001 		MOVEM T2,1(T3)		;SAVE SEL4 & SEL6
  1832	000207'01  271 03 0 00 000002 		ADDI T3,2
  1833	000210'01  306 03 0 10 001000 		CAIN T3,1000(P1)	;TIME TO WRAP AROUND ?
  1834	000211'01  201 03 0 10 000704 		MOVEI T3,PGTRCE(P1)	;YES
  1835	000212'01  202 03 0 10 000703 		MOVEM T3,PGTPTR(P1)	;SAVE UPDATED TRACE POINTER
  1836					    >;IFN FTRACE
  1837	000213'01  713 02 0 04 000006 		WRIO T2,BSEL6(T4)	;GIVE HALF OF DATA
  1838	000214'01  207 00 0 00 000002 		MOVSS T2		;GET OTHER HALF
  1839	000215'01  713 02 0 04 000004 		WRIO T2,BSEL4(T4)	;GIVE OTHER HALF
  1840	000216'01  713 01 0 04 000002 		WRIO T1,BSEL2(T4)	;TELL KMC11 WHAT THIS IS AND LINE #
  1841	000217'01  205 17 0 00 000160*		MOVSI 17,KMCACS		;BLT POINTER TO RESTORE REGS
  1842	000220'01  251 17 0 00 000017 		BLT 17,17		;RESTORE ALL REGS
  1843	000221'01  254 06 0 00 000000*		XJEN KDPXPC		;DISMISS INTERRUPT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 46
KDPSRV	MAC	30-Sep-80 14:34		KMC11 INTERRUPT LEVEL SERVICE

  1844
  1845					;HERE FOR KMC11 OUTPUT INTERRUPTS
  1846	000222'01  202 17 0 00 000000#	KMCVCB:	MOVEM 17,KMCACS+17	;SAVE REG
  1847	000223'01  201 17 0 00 000217*		MOVEI 17,KMCACS		;BUILD BLT POINTER
  1848	000224'01  251 17 0 00 000000#		BLT 17,KMCACS+16	;SAVE REST OF REGS
  1849	000225'01  200 17 0 00 000162*		MOVE P,KMCPDL		;SET UP STACK
  1850	000226'01  200 10 0 00 002257'		MOVE P1,[KMCADR]	;ADDRESS OF THE KMC11 HARDWARE
  1851	000227'01  712 01 0 10 000002 		RDIO T1,BSEL2(P1)	;GET 1ST 1/3 OF DATA (LINE NUMBER)
  1852	000230'01  606 01 0 00 000200 		TRNN T1,KMCRDO		;IS RDYO SET ?
  1853	000231'01  254 00 0 00 001123'		JRST KMVCB9		;DONE WITH INTERRUPT
  1854	000232'01  712 02 0 10 000004 		RDIO T2,BSEL4(P1)	;GET 2ND 1/3 OF DATA
  1855	000233'01  405 02 0 00 177777 		ANDI T2,177777		;CLEAR LH
  1856	000234'01  712 03 0 10 000006 		RDIO T3,BSEL6(P1)	;GET 3RD 1/3 OF DATA
  1857	000235'01  400 04 0 00 000000 		SETZ T4,		;PREPARE TO LET KMC11 KNOW WE READ IT
  1858	000236'01  713 04 0 10 000002 		WRIO T4,BSEL2(P1)	;LET KMC11 KNOW WE READ IT
  1859	000237'01  602 01 0 00 100000 		TRNE T1,100000		;CHECK FOR OUTPUT OVERFLOW
  1860						JRST [	CALL KMCHLT	;STOP THE KMC11
  1861							BUG (KMCFST) ;INFORMATION HAS BEEN LOST
  1862						  ;BUG type:    BUGINF, HARD
  1863						  ;BUG message: KMC11 too fast
  1864						       SALL
  1865	000240'01  254 00 0 00 002274'			JRST KMVCB9 ]	;DISMISS THE INTERRUPT
  1866	000241'01  135 10 0 00 002271'		LDB P1,[POINT 8,T1,27]	;GET THE LINE NUMBER
  1867	000242'01  540 10 0 10 000203*		HRR P1,KDPPAG(P1)	;GET PAGE ADDRESSES FOR LINE
  1868	000243'01  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET ADR FOR DDCMP LINE TABLE
  1869					    IFN FTRACE,<
  1870	000244'01  200 04 0 10 000703 		MOVE T4,PGTPTR(P1)	;GET TRACE POINTER
  1871	000245'01  552 01 0 04 000000 		HRRZM T1,(T4)		;SAVE SEL2
  1872	000246'01  506 02 0 04 000001 		HRLM T2,1(T4)		;SAVE SEL2
  1873	000247'01  542 03 0 04 000001 		HRRM T3,1(T4)		;SAVE SEL6
  1874	000250'01  271 04 0 00 000002 		ADDI T4,2
  1875	000251'01  306 04 0 10 001000 		CAIN T4,1000(P1)	;TIME TO WRAP AROUND ?
  1876	000252'01  201 04 0 10 000704 		MOVEI T4,PGTRCE(P1)	;YES
  1877	000253'01  202 04 0 10 000703 		MOVEM T4,PGTPTR(P1)	;SAVE UPDATED TRACE POINTER
  1878					    >;IFN FTRACE
  1879	000254'01  602 01 0 00 000003 		TRNE T1,3		;IS THIS BUFFER ADR OUT ?
  1880	000255'01  254 00 0 00 001032'		JRST CNTRLO		;THIS IS A CONTROL OUT
  1881	000256'01  405 02 0 00 003777 		ANDI T2,3777		;STRIP PAGE NUMBER
  1882	000257'01  241 02 0 00 777776 		ROT T2,-2		;CONVERT BYTES TO PDP10 WORDS
  1883	000260'01  271 02 0 10 000000 		ADDI T2,(P1)		;MAKE ADR
  1884	000261'01  552 02 0 00 000011 		HRRZM T2,P2		;SAVE ADR OF BUFFER DESCRIPTOR LIST
  1885	000262'01  506 02 0 00 000010 		HRLM T2,P1		;SAVE ADR OF BUFFER DESCRIPTOR LIST
  1886	000263'01  606 01 0 00 000004 		TRNN T1,KMCIOT		;TRANSMIT OR RECEIVE ?
  1887	000264'01  254 00 0 00 000772'		JRST XMTDNE		;TRANSMIT
  1888
  1889					;HERE WHEN RECEIVE DATA
  1890	000265'01  135 01 0 00 002277'		LOAD T1,DCHNG		;IN CASE JUST RESTARTED
  1891	000266'01  326 01 0 00 000762'		JUMPN T1,RCVFLU		;IGNORE IT UNTIL NSPSRV FGOING
  1892	000267'01  550 01 0 00 000010 		HRRZ T1,P1		;COPY PAGE ADDRESS
  1893	000270'01  242 01 0 00 777767 		LSH T1,-^D9		;CONVERT TO PAGE NUMBER
  1894	000271'01  260 17 0 00 000000*		CALL MONCLR		;INVALIDATE CACHE FOR THIS PAGE
  1895	000272'01  331 00 0 11 000004 		SKIPL PGRMS1-PGRBD1(P2)
  1896	000273'01  335 00 0 11 000005 		SKIPGE PGRMS1+1-PGRBD1(P2)
  1897	000274'01  254 00 0 00 000313'		JRST BUMHDR
  1898	000275'01  135 01 0 00 002300'		LDB T1,[POINT 8,PGRMS1+1-PGRBD1(P2),9] ;GET A0
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 46-1
KDPSRV	MAC	30-Sep-80 14:34		KMC11 INTERRUPT LEVEL SERVICE

  1899	000276'01  135 02 0 00 002301'		LOAD T2,DDDRP		;GET DROP OF SELECTED STATION
  1900	000277'01  312 01 0 00 000002 		CAME T1,T2		;MATCH?
  1901	000300'01  254 00 0 00 000762'		JRST RCVFLU		;NO, IGNORE
  1902	000301'01  554 01 0 11 000004 		HLRZ T1,PGRMS1-PGRBD1(P2) ;GET 1ST TWO BYTES OF HEADER
  1903	000302'01  405 01 0 00 000377 		ANDI T1,377		;LEAVE ONLY LEAD CHARACTER
  1904	000303'01  135 02 0 00 002302'		LOAD T2,DDSTA		;GET LINE STATUS
  1905	000304'01  306 01 0 00 000201 		CAIN T1,SOH		;WAS THIS A DATA MESSAGE ?
  1906	000305'01  254 00 0 00 000320'		JRST RCVDAT		;THIS WAS A DATA MESSAGE
  1907	000306'01  306 01 0 00 000005 		CAIN T1,ENQ		;WAS THIS A CONTROL MESSAGE ?
  1908	000307'01  254 00 0 00 000473'		JRST RCVCTL		;WE GOT A CONTROL MESSAGE
  1909	000310'01  302 01 0 00 000220 		CAIE T1,DLE		;WAS THIS A MAINTENANCE MODE MESSAGE ?
  1910	000311'01  254 00 0 00 000313'		JRST BUMHDR		;GARBAGE MESSAGE
  1911	000312'01  254 00 0 00 002033'		JRST	RCVMOP		;THIS IS POSSIBLY A MOP MESSAGE
  1912
  1913					;HERE WHEN MESSAGE IS DETECTED AS BAD
  1914					; I.E. A0.NE.1, NOT STARTED WITH SOH, DLE, OR ENQ
  1915	000313'01  120 01 0 11 000004 	BUMHDR:	DMOVE T1,PGRMS1-PGRBD1(P2) ;GET MSG HEADER
  1916						BUG (BADHDR,<<T1,D>,<T2,D>>)
  1917						  ;BUG type:    BUGCHK, HARD
  1918						  ;BUG message: bad DDCMP header
  1919						       SALL
  1920	000314'01  256 00 0 00 002303'
  1921	000315'01  201 01 0 00 000000 		MOVEI T1,STADWN		;DON'T TRY TO USE LINE
  1922					;	CALL DEDLIN		;DECLARE LINE DOWN
  1923	000316'01  350 00 0 13 000012 		AOS PGLCOC(P4)		;%%% KMC SHOULD NOT GET HERE %%%
  1924	000317'01  254 00 0 00 000762'		JRST RCVFLU		;DISCARD MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 47
KDPSRV	MAC	30-Sep-80 14:34		KMC11 INTERRUPT LEVEL SERVICE

  1925
  1926						SUBTTL	DDCMP RECEIVER -- DATA MESSAGE
  1927					;HERE WHEN RECEIVE A DATA MESSAGE
  1928	000320'01  306 02 0 00 000004 	RCVDAT:	CAIN T2,STARUN		;ARE WE RUNNING ?
  1929	000321'01  260 17 0 00 000530'		CALL RCVAK3		;CHECK RESPONSE FIELD
  1930	000322'01  254 00 0 00 000762'		 JRST RCVFLU		;NOT RUNNING OR ERROR RETURN
  1931	000323'01  554 01 0 11 000005 		HLRZ T1,PGRMS1+1-PGRBD1(P2) ;GET MESSAGE NUMBER
  1932	000324'01  370 00 0 00 000001 		SOS T1			;MAKE PREVIOUS MESSAGE NUMBER
  1933	000325'01  405 01 0 00 000377 		ANDI T1,377		;LEAVE ONLY MESSAGE NUMBER
  1934	000326'01  135 02 0 00 002307'		LOAD T2,DDRMN		;GET LAST MESSAGE WE RECEIVED CORRECTLY
  1935	000327'01  312 01 0 00 000002 		CAME T1,T2		;IS THIS WHAT WE EXPECTED ?
  1936	000330'01  254 00 0 00 000762'		JRST RCVFLU		;NO SO IGNORE IT
  1937					;LOOP TO COPY DATA INTO BUFFER FOR NSPSRV
  1938	000331'01  200 01 0 11 000004 		MOVE T1,PGRMS1-PGRBD1(P2) ;GET DDCMP HEADER AGAIN
  1939	000332'01  241 01 0 00 000012 		ROT T1,^D8+2		;PUT LOW ORDER 8 BITS OF COUNT IN RH
  1940	000333'01  200 02 0 00 000001 		MOVE T2,T1		;COPY HIGH ORDER BITS
  1941	000334'01  405 01 0 00 000377 		ANDI T1,377		;LEAVE ONLY LOW ORDER BITS
  1942	000335'01  242 02 0 00 777776 		LSH T2,-2		;POSITION HIGH ORDER BITS
  1943	000336'01  405 02 0 00 037400 		ANDI T2,77*400		;STRIP EXTRA BITS
  1944	000337'01  437 01 0 00 000002 		IORB T1,T2		;LEAVES COUNT IN RH OF T1 & T2
  1945	000340'01  211 12 0 01 000000 		MOVNI P3,(T1)		;MAKE NEGATIVE COUNT AND PREPARE TO ROUND
  1946	000341'01  242 12 0 00 000020 		LSH P3,^D16		;ROUND TO NUMBER OF WORDS
  1947	000342'01  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER
  1948	000343'01  135 04 0 00 002310'		LOAD T4,LINSR		;GET LINE SERVICE INDICATOR
  1949	000344'01  260 17 1 04 000401'		CALL @KDPSPC(T4)	;GET SPACE FOR MESSAGE
  1950						JRST [	MOVEI T1,NCDBTU	;BUFFER TEMPORARILY UNAVAILABLE
  1951							CALL XMTNAK	;SEND NAK MSG
  1952	000345'01  254 00 0 00 002311'			JRST RCVFLU ]
  1953	000346'01  261 17 0 00 000001 		PUSH P,T1		;SAVE ADR OF DATA BLOCK
  1954	000347'01  541 12 0 11 000005 		HRRI P3,PGRMS1+1-PGRBD1(P2) ;FINISH AOBJN POINTER TO INPUT
  1955	000350'01  551 14 0 01 777777 		HRRZI P5,-1(T1)		;COPY DEST ADR
  1956	000351'01  514 01 0 12 000000 	RCVDT3:	HRLZ T1,(P3)		;GET NEXT 16 BITS TO COPY
  1957	000352'01  554 02 0 12 000001 		HLRZ T2,1(P3)		;GET NEXT 16 BITS TO COPY
  1958	000353'01  120 03 0 00 000001 		DMOVE T3,T1		;GET ANOTHER COPY OF EACH
  1959	000354'01  242 01 0 00 000012 		LSH T1,2+^D8		;LEAVE ONLY FIRST BYTE
  1960	000355'01  621 03 0 00 600377 		TLZ T3,600377		;STRIP BITS FROM 2ND BYTE
  1961	000356'01  242 03 0 00 777772 		LSH T3,2-^D8		;POSITION BYTE
  1962	000357'01  434 01 0 00 000003 		IOR T1,T3		;INCLUDE WITH FIRST
  1963	000360'01  405 02 0 00 000377 		ANDI T2,377		;STRIP EXTRA BITS FROM FIRST BYTE
  1964	000361'01  242 02 0 00 000014 		LSH T2,4+^D8		;POSITION
  1965	000362'01  434 01 0 00 000002 		IOR T1,T2		;INCLUDE 3RD BYTE WITH 1ST AND 2ND
  1966	000363'01  405 04 0 00 177400 		ANDI T4,377*400		;STRIP EXTRA BITS FROM 4TH BYTE
  1967	000364'01  242 04 0 00 777774 		LSH T4,4-^D8		;POSITION 4TH BYTE
  1968	000365'01  434 01 0 00 000004 		IOR T1,T4		;INCLUDE WITH 1ST 3 BYTES
  1969	000366'01  261 14 0 00 000001 		PUSH P5,T1		;SAVE WORD FOR NSPSRV
  1970	000367'01  253 12 0 00 000351'		AOBJN P3,RCVDT3		;LOOP BACK FOR REST OF MESSAGE
  1971	000370'01  262 17 0 00 000002 		POP P,T2		;GET DATA ADR BACK
  1972	000371'01  135 04 0 00 002310'		LOAD T4,LINSR		;GET LINE SERVICE INDICATOR
  1973	000372'01  260 17 1 04 000403'		CALL @KDPQ(T4)		;GIVE MESSAGE TO SERVER(NSP/DCP)
  1974	000373'01  135 01 0 00 002307'		LOAD T1,DDRMN		;LAST MESSAGE RECEIVED OK
  1975	000374'01  350 00 0 00 000001 		AOS T1			;NEW LAST MESSAGE RECEIVED OK
  1976	000375'01  137 01 0 00 002307'		STOR T1,DDRMN		;SAVE NEW ONE
  1977	000376'01  350 00 0 10 000035 		AOS PGRMCN(P1)		;COUNT MESSAGE RECEIVED CORRECTLY
  1978	000377'01  260 17 0 00 001447'		CALL XMTACK		;TRY TO SEND AN ACK
  1979	000400'01  254 00 0 00 000762'		JRST RCVFLU		;THEN FLUSH MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 47-1
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- DATA MESSAGE

  1980
  1981	000401'01  254 00 0 00 000000*	KDPSPC:	JRST NSPSPC		;NSP ASSIGN BUFFER
  1982	000402'01  254 00 0 00 000405'		JRST DCPSPC		;DCP ASSIGN BUFFER
  1983	000403'01  254 00 0 00 000000*	KDPQ:	JRST NSPQ		;QUEUE MESSAGE TO NSP
  1984	000404'01  254 00 0 00 000432'		JRST DCPQ		;QUEUE MESSAGE TO DCP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 48
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- DATA MESSAGE

  1985
  1986						SUBTTL	DDCMP INTERFACE SERVICE ROUTINES
  1987
  1988					;THESE ROUTINES PROVIDE SERVICE FOR DIRECT USER ACCESS
  1989					;TO DDCMP LINES -- THESE ROUTINES PARELLEL ROUTINES IN NSP
  1990					;HERE TO GET A BUFFER SET UP FOR INPUT
  1991					;ACCEPTS T2/BYTE COUNT OF RECEIVED MESSAGE
  1992					;RETURNS T1/ADDR OF BUFFER
  1993
  1994	000405'01  135 03 0 00 002314'	DCPSPC:	LOAD T3,DDINP		;HOW MANY ALREADY BUFFERED
  1995	000406'01  303 03 0 00 000050 		CAILE T3,MAXIN		;ARE WE FULL
  1996	000407'01  263 17 0 00 000000 		  RETBAD		;YES
  1997	000410'01  265 16 0 00 000000*		STKVAR<DCPLEN>		;GET SOME TEMP STORAGE
  1998	000411'01  000000  000001
  1999	000412'01  202 02 0 17 777776 		MOVEM T2,DCPLEN		;REMEMBER DATA BYTE COUNT
  2000	000413'01  201 01 0 02 000013 		MOVEI T1,4*MSHDR+3(T2)	;BYTE COUNT OF BUFFER
  2001	000414'01  242 01 0 00 777776 		LSH T1,-2		;CONVERT TO WORDS
  2002	000415'01  505 01 0 00 000000*		HRLI T1,.RESP1		;PRIORITY 1
  2003	000416'01  200 02 0 00 002315'		MOVE T2,[RS%SE0+.RESNP]	;FROM NET POOL
  2004	000417'01  260 17 0 00 000000*		CALL ASGRES		;GET THE SPACE
  2005	000420'01  263 17 0 00 000000 		  RETBAD		;COULDN'T
  2006	000421'01  135 03 0 00 002314'		LOAD T3,DDINP		;GET # OF BUFFERS
  2007	000422'01  350 00 0 00 000003 		AOS T3			;COUNT NEW ONE
  2008	000423'01  137 03 0 00 002314'		STOR T3,DDINP		;SAVE IT
  2009	000424'01  135 02 0 00 002301'		LOAD T2,DDDRP		;GET SYSTEM LINE #
  2010	000425'01  516 02 0 01 000000 		HRLZM T2,INDLNK(T1)	;PUT IT IN HEADER
  2011	000426'01  200 04 0 17 777776 		MOVE T4,DCPLEN		;GET BACK BYTE COUNT
  2012	000427'01  202 04 0 01 000001 		MOVEM T4,INDCNT(T1)	;PUT IT IN HEADER
  2013	000430'01  271 01 0 00 000002 		ADDI T1,MSHDR		;POINT AT DATA
  2014	000431'01  254 00 0 00 000136*		RETSKP
  2015
  2016					;HERE TO LINK A BUFFER TO INPUT QUEUE
  2017					;T2/ ADDRESS OF BUFFER
  2018
  2019	000432'01  275 02 0 00 000002 	DCPQ:	SUBI T2,MSHDR		;POINT AT MESSAGE HEADER
  2020	000433'01  336 01 0 10 000003 	DCPQ1:	SKIPN T1,PGLINQ(P1)	;ANYTHING IN QUEUE
  2021						JRST [ HRRM T2,PGLINQ(P1) ;NO, START IT
  2022						       HRLM T2,PGLINQ(P1)
  2023	000434'01  254 00 0 00 002316'			JRST DCPQ2 ]
  2024	000435'01  557 00 0 00 000001 		HLRZS T1		;GET TAIL
  2025	000436'01  542 02 0 01 000000 		HRRM T2,INDLNK(T1)	;LINK THIS IN
  2026	000437'01  506 02 0 10 000003 		HRLM T2,PGLINQ(P1)	;MAKE IT THE TAIL
  2027	000440'01  201 16 0 00 000200 	DCPQ2:	SETONE DDINT		;REQUEST INTERRUPT
  2028	000441'01  436 16 0 10 000005 
  2029	000442'01  263 17 0 00 000000 		RET
  2030
  2031					;HERE TO POST TRANSMIT COMPLETE
  2032					;T1/ BUFFER ADDR
  2033
  2034	000443'01  551 03 0 00 000003 	DCPPST:	HRRZI T3,DDPT		;COMPLETION POSTING
  2035	000444'01  661 03 0 00 400000 		TLO T3,400000		;SET STATUS BIT
  2036	000445'01  202 03 0 01 000001 		MOVEM T3,INDCNT(T1)	;IN MESSAGE HEADER
  2037	000446'01  135 03 0 00 002301'		LOAD T3,DDDRP		;GET DROP
  2038	000447'01  516 03 0 01 000000 		HRLZM T3,INDLNK(T1)	;PUT IN MESSAGE HEADER
  2039	000450'01  200 02 0 00 000001 		MOVE T2,T1		;BUFFER ADDR FOR DCPQ
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 48-1
KDPSRV	MAC	30-Sep-80 14:34		DDCMP INTERFACE SERVICE ROUTINES

  2040	000451'01  135 03 0 00 002314'		LOAD T3,DDINP		;GET COUNT OF BUFFERED MESSAGES
  2041	000452'01  350 00 0 00 000003 		AOS T3			;COUNT THIS ONE
  2042	000453'01  137 03 0 00 002314'		STOR T3,DDINP	
  2043	000454'01  260 17 0 00 000433'		CALL DCPQ1		;QUEUE IT AS INPUT MESSAGE
  2044	000455'01  201 16 0 00 000200 		SETONE DDINT		;CAUSE AN INTERRUPT
  2045	000456'01  436 16 0 10 000005 
  2046	000457'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 49
KDPSRV	MAC	30-Sep-80 14:34		DDCMP INTERFACE SERVICE ROUTINES

  2047
  2048					;HERE TO QUEUE AN INPUT MESSAGE TO POST LINE GOING UP OR DOWN
  2049					;T3/DDUP,DDOWN OR DDSF
  2050
  2051	000460'01			DEDDCP:
  2052	000460'01  261 17 0 00 000003 	DCPINI:	PUSH P,T3		;SAVE CONDITION INDICATOR
  2053	000461'01  402 00 0 00 000002 		SETZM T2		;ZERO MESSAGE LENGTH (HEADER ONLY)
  2054	000462'01  260 17 0 00 000405'		CALL DCPSPC		;GET A BUFFER
  2055						JRST [	POP P,T1	;NO BUFFER AVAILABLE
  2056							STOR T1,DCHNG	;TRY AGAIN NEXT TIME
  2057							SETOM KDPFLG
  2058	000463'01  254 00 0 00 002321'			RET ]
  2059	000464'01  275 01 0 00 000002 		SUBI T1,MSHDR		;POINT AT HEADER
  2060	000465'01  262 17 0 00 000003 		POP P,T3		;GET BACK CONDITION
  2061	000466'01  661 03 0 00 400000 		TLO T3,400000		;SET STATUS BIT
  2062	000467'01  202 03 0 01 000001 		MOVEM T3,INDCNT(T1)	;IN MESSAGE HEADER
  2063	000470'01  200 02 0 00 000001 		MOVE T2,T1		;BUFFER ADDR FOR DCPQ
  2064	000471'01  260 17 0 00 000433'		CALL DCPQ1		;QUEUE IT
  2065	000472'01  263 17 0 00 000000 		RET
  2066
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 50
KDPSRV	MAC	30-Sep-80 14:34		DDCMP INTERFACE SERVICE ROUTINES

  2067
  2068						SUBTTL	DDCMP RECEIVER -- CONTROL MESSAGE
  2069
  2070					;HERE WHEN RECEIVE A CONTROL MESSAGE
  2071
  2072	000473'01  135 01 0 00 002325'	RCVCTL:	LDB T1,[POINT 6,PGRMS1-PGRBD1(P2),9] ;GET CONTROL TYPE
  2073	000474'01  303 01 0 00 000007 		CAILE T1,7		;IS TYPE LEGAL ?
  2074	000475'01  254 00 0 00 000760'		JRST RCVKRD		;BAD MESSAGE
  2075	000476'01  254 00 1 01 000477'		JRST @.+1(T1)		;DISPATCH ON MESSAGE TYPE
  2076	000477'01  254 00 0 00 000760'		JRST RCVKRD		; MSG TYPE = 0
  2077	000500'01  254 00 0 00 000507'		JRST RCVACK		; MSG TYPE = 1 = ACK
  2078	000501'01  254 00 0 00 000614'		JRST RCVNAK		; MSG TYPE = 2 = NAK
  2079	000502'01  254 00 0 00 000640'		JRST RCVREP		; MSG TYPE = 3 = REP
  2080	000503'01  254 00 0 00 000760'		JRST RCVKRD		; MSG TYPE = 4 = RESET
  2081	000504'01  254 00 0 00 000760'		JRST RCVKRD		; MSG TYPE = 5 = RESAK
  2082	000505'01  254 00 0 00 000660'		JRST RCVSTR		; MSG TYPE = 6 = START
  2083	000506'01  254 00 0 00 000746'		JRST RCVSTK		; MSG TYPE = 7 = STACK
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 51
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- CONTROL MESSAGE

  2084
  2085						SUBTTL	DDCMP RECEIVER -- ACK MESSAGE
  2086
  2087					;HERE WHEN RECEIVE AN ACK MESSAGE
  2088	000507'01  254 00 1 02 000510'	RCVACK:	JRST @.+1(T2)		;DISPATCH ON LINE STATE
  2089	000510'01  254 00 0 00 000762'		JRST RCVFLU		;KMC11 NOT RUNNING
  2090	000511'01  254 00 0 00 000762'		JRST RCVFLU		;MAINT MODE
  2091	000512'01  254 00 0 00 000762'		JRST RCVFLU		;SENDING STARTS
  2092	000513'01  254 00 0 00 000515'		JRST RCVAK0		;SENT STACK
  2093	000514'01  254 00 0 00 000525'		JRST RCVAK2		;RUNNING
  2094
  2095					;HERE WHEN RECEIVE AN ACK AFTER RECEIVING A START
  2096	000515'01  135 16 0 00 002277'	RCVAK0:	OPSTR <SKIPE>,DCHNG	;HAS THIS HAPPENED ONCE BEFORE ?
  2097	000516'01  332 00 0 00 000016 
  2098	000517'01  254 00 0 00 000762'		JRST RCVFLU		;PERHAPS IGNORE IT
  2099	000520'01  260 17 0 00 001447'		CALL XMTACK		;TRY TO SEND ANOTHER ACK
  2100	000521'01  201 01 0 00 000001 		MOVEI T1,DDUP		;REMEMBER IT CAME UP
  2101	000522'01  137 01 0 00 002277'		STOR T1,DCHNG		;TELL NSPSRV ASAP
  2102	000523'01  476 00 0 00 000000*		SETOM KDPFLG		;WANT TO RUN KDPTSK
  2103	000524'01  254 00 0 00 000762'		JRST RCVFLU		;THEN DISCARD MESSAGE
  2104
  2105					;HERE WHEN RECEIVE AN ACK WHILE RUNNING
  2106	000525'01  260 17 0 00 000530'	RCVAK2:	CALL RCVAK3		;PROCESS MESSAGE NUMBER
  2107	000526'01  254 00 0 00 000762'		JRST RCVFLU
  2108	000527'01  254 00 0 00 000762'		JRST RCVFLU
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 52
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- ACK MESSAGE

  2109
  2110					;HERE TO CHECK R FIELD IN ACK OR DATA MESSAGE
  2111					; CALLED AT INTERRUPT LEVEL
  2112	000530'01  135 03 0 00 002326'	RCVAK3:	LDB T3,[POINT 8,PGRMS1-PGRBD1(P2),27] ;GET R NUMBER
  2113	000531'01  135 01 0 00 002327'		LOAD T1,DDHMA		;GET HIGHEST MESSAGE ACKED BEFORE
  2114	000532'01  306 01 0 03 000000 		CAIN T1,(T3)		;IS THIS NEW INFORMATION
  2115	000533'01  254 00 0 00 000600'		jrst rcvak5		;nothing new to do
  2116	000534'01  274 03 0 00 000001 		SUB T3,T1		;FIND NUMBER OF MESSAGES THIS WILL ACK
  2117	000535'01  301 03 0 00 000000 		cail t3,0		;must be between 0 and 10
  2118	000536'01  303 03 0 00 000010 		caile t3,maxout		;to be a valid ack
  2119	000537'01  304 00 0 00 000000 		caia
  2120	000540'01  254 00 0 00 000545'		jrst rcvak6		;valid continue processing
  2121	000541'01  271 03 0 00 000400 		addi t3,400		;handle wrap case
  2122	000542'01  301 03 0 00 000000 		cail t3,0		;try again
  2123	000543'01  303 03 0 00 000010 		caile t3,maxout		;0 leq A-R leq 10
  2124	000544'01  254 00 0 00 000600'		jrst rcvak5		;not a vaild  R field..
  2125
  2126	000545'01  350 00 0 00 000001 	rcvak6:	AOS T1			;PLUS ONE HIGHEST MESSAGE ACKED
  2127	000546'01  137 01 0 00 002327'		STOR T1,DDHMA		;SAVE UPDATED NUMBER
  2128	000547'01  120 01 0 11 000004 		DMOVE T1,PGRMS1-PGRBD1(P2) ;PICK UP MSG HEADER OR ACK/NAK
  2129	000550'01  124 01 0 10 000050 		DMOVEM T1,PGLACK(P1)	;SAVE FOR DEBUGING
  2130	000551'01  350 00 0 10 000024 		AOS PGXMCN(P1)		;COUNT MESSAGES TRANSMITTED OK
  2131	000552'01  201 01 0 00 000003 		MOVEI T1,TIMREP		;RESET REP TIMER CUZ ITS LOOKING GOOD
  2132	000553'01  137 01 0 00 002330'		STOR T1,DDTIM
  2133	000554'01  400 01 0 00 000000 		SETZ T1,		;CLEAR REP COUNTER
  2134	000555'01  137 01 0 00 002331'		STOR T1,DDREPC
  2135	000556'01  554 01 0 13 000003 		HLRZ T1,PGDOMQ(P4)	;GET FIRST MESSAGE IN QUEUE
  2136	000557'01  322 01 0 00 000600'		JUMPE T1,rcvak5		;IF NONE RESPONSE WAS BAD
  2137	000560'01  316 01 0 13 000005 		CAMN T1,PGDLMX(P4)	;WAS THIS LAST MESSAGE TRANSMITTED ?
  2138	000561'01  402 00 0 13 000005 		SETZM PGDLMX(P4)	;FORGET POINTER
  2139	000562'01  554 02 0 01 000002 		HLRZ T2,MBKLEN(T1)	;GET DRIVER INT LOC
  2140	000563'01  200 01 0 01 000001 		MOVE T1,MBKCOD(T1)	;GET DRIVER UNIQUE CODE
  2141	000564'01  332 00 0 00 000002 		SKIPE T2		;WAS THERE ONE ?
  2142	000565'01  260 17 0 02 000000 		CALL (T2)
  2143	000566'01  554 01 0 13 000003 		HLRZ T1,PGDOMQ(P4)	;GET ADR OF MESSAGE BLOCK ADR AGAIN
  2144	000567'01  554 02 0 01 000000 		HLRZ T2,MBKLNK(T1)	;GET ADR OF NEXT MESSAGE IN QUEUE
  2145	000570'01  506 02 0 13 000003 		HRLM T2,PGDOMQ(P4)	;NEW FIRST MESSAGE IN QUEUE
  2146	000571'01  306 02 0 01 000003 		CAIN T2,MBKFRE(T1)	;DID WE CHANGE CHUNKS ?
  2147	000572'01  254 00 0 00 000577'		JRST RCVAK4		;SAME CHUNK
  2148	000573'01  336 00 0 00 000002 		SKIPN T2		;WAS THERE A NEXT MESSAGE BLOCK ?
  2149	000574'01  402 00 0 13 000003 		SETZM PGDOMQ(P4)	;NO SO QUEUE NOW EMPTY
  2150	000575'01  550 01 0 01 000003 		HRRZ T1,MBKFRE(T1)	;GET CHUNK ADR FOR MESSAGE BLOCK
  2151	000576'01  260 17 0 00 000606'		CALL SAVBLK		;RELEASE BLOCK
  2152	000577'01  254 00 0 00 000530'	RCVAK4:	JRST RCVAK3		;CHECK FOR MORE MESSAGES TO FREE
  2153
  2154	000600'01  332 01 0 13 000003 	rcvak5:	SKIPE T1,PGDOMQ(P4)	;IS MESSAGE QUEUE EMPTY ?
  2155	000601'01  254 00 0 00 000431*		RETSKP			;QUEUE NOT EMPTY SO KEEP REPPING
  2156	000602'01  137 01 0 00 002331'		STOR T1,DDREPC		;CLEAR REP COUNTER
  2157	000603'01  201 01 0 00 000036 		MOVEI T1,^D30		;LONG WAIT FOR NEXT REP
  2158	000604'01  137 01 0 00 002330'		STOR T1,DDTIM
  2159	000605'01  254 00 0 00 000601*		RETSKP 
  2160
  2161
  2162					;HERE TO FREE A BLOCK OF CORE
  2163	000606'01  336 02 0 13 000006 	SAVBLK:	SKIPN T2,PGFCOR(P4)	;HOLDING ANY FREE BLOCKS ?
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 52-1
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- ACK MESSAGE

  2164						JRST [	HRLZM T1,PGFCOR(P4) ;SAVE THIS ONE
  2165	000607'01  254 00 0 00 002332'			RET ]
  2166	000610'01  602 02 0 00 777777 		TRNE T2,-1		;HOLDING TWO ?
  2167	000611'01  254 00 0 00 000000*		JRST RELRES		;CAN'T HOLD ANY MORE
  2168	000612'01  542 01 0 13 000006 		HRRM T1,PGFCOR(P4)	;SAVE THIS ONE ALSO
  2169	000613'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 53
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- ACK MESSAGE

  2170
  2171						SUBTTL	DDCMP RECEIVER -- NAK MESSAGE
  2172
  2173					;HERE WHEN RECEIVE A NAK MESSAGE
  2174	000614'01  254 00 1 02 000615'	RCVNAK:	JRST @.+1(T2)		;DISPATCH ON LINE STATE
  2175	000615'01  254 00 0 00 000762'		JRST RCVFLU		;KMC11 NOT RUNNING
  2176	000616'01  254 00 0 00 000762'		JRST RCVFLU		;MAINT MODE
  2177	000617'01  254 00 0 00 000762'		JRST RCVFLU		;SENDING STARTS
  2178	000620'01  254 00 0 00 000622'		JRST RCVNK0		;SENT STACK
  2179	000621'01  254 00 0 00 000625'		JRST RCVNK3		;RUNNING
  2180
  2181					;HERE IF RECEIVE A NAK AFTER SENDING A STACK
  2182					; THIS IS PROBABLY A REP RESPONSE SO DECLARE US UP
  2183	000622'01  135 01 0 00 002326'	RCVNK0:	LDB T1,[POINT 8,PGRMS1-PGRBD1(P2),27] ;GET R FIELD
  2184	000623'01  326 01 0 00 000760'		JUMPN T1,RCVKRD		;IF NONZERO IS AN ERROR
  2185	000624'01  254 00 0 00 000515'		JRST RCVAK0		;TREAT AS AN ACK
  2186
  2187					;HERE IF RECEIVE A NAK WHILE RUNNING
  2188	000625'01  135 01 0 00 002334'	RCVNK3:	LDB T1,[POINT 6,PGRMS1-PGRBD1(P2),35] ;GET NAK CODE
  2189	000626'01  303 01 0 00 000021 		CAILE T1,^D17		;is nak code reasonable?
  2190	000627'01  400 01 0 00 000000 		SETZ T1,		;FIRST CELL IS MISC
  2191	000630'01  200 02 0 01 000012'		move t2,naktbl(t1)	;retrieve offset into table
  2192	000631'01  271 02 0 10 000025 		addi t2,pgnrnk(p1)	;point to nak counter
  2193	000632'01  350 00 0 02 000000 		aos (t2)		;count nak
  2194	000633'01  402 00 0 13 000005 		SETZM PGDLMX(P4)	;RETRANSMIT FIRST MESSAGE IN QUEUE
  2195	000634'01  260 17 0 00 000530'		CALL RCVAK3		;PROCESS RESPONSE
  2196	000635'01  254 00 0 00 000762'		JRST RCVFLU		;ERROR RETURN
  2197	000636'01  260 17 0 00 001552'		CALL XMTDAT		;RETRANSMIT MESSAGE (IF ANY)
  2198	000637'01  254 00 0 00 000762'		JRST RCVFLU		;DISCARD MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 54
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- NAK MESSAGE

  2199
  2200						SUBTTL	DDCMP RECEIVER -- REP MESSAGE
  2201
  2202					;HERE WHEN RECEIVE A REP MESSAGE
  2203	000640'01  254 00 1 02 000641'	RCVREP:	JRST @.+1(T2)		;DISPATCH ON LINE STATE
  2204	000641'01  254 00 0 00 000762'		JRST RCVFLU		;KMC11 NOT RUNNING
  2205	000642'01  254 00 0 00 000762'		JRST RCVFLU		;MAINT MODE
  2206	000643'01  254 00 0 00 000762'		JRST RCVFLU		;SENDING STARTS
  2207	000644'01  254 00 0 00 000646'		JRST RCVRP0		;SENT STACK
  2208	000645'01  254 00 0 00 000646'		JRST RCVRP0		;RUNNING
  2209
  2210					;HERE WHEN RECEIVED A REP AND NEED TO SEND AN ACK OR A NAK RESPONSE
  2211	000646'01  554 01 0 11 000005 	RCVRP0:	HLRZ T1,PGRMS1+1-PGRBD1(P2) ;GET MESSAGE NUMBER
  2212	000647'01  405 01 0 00 000377 		ANDI T1,377		;STRIP EXTRA BITS
  2213	000650'01  135 02 0 00 002307'		LOAD T2,DDRMN		;GET LAST THING WE GOT
  2214	000651'01  312 01 0 00 000002 		CAME T1,T2		;EVERYTHING OK ?
  2215	000652'01  254 00 0 00 000655'		JRST RCVRP3		;TELL HIM WE DIDN'T GET IT
  2216	000653'01  260 17 0 00 001447'		CALL XMTACK		;TRY TO SEND ACK
  2217	000654'01  254 00 0 00 000762'		JRST RCVFLU
  2218	000655'01  201 01 0 00 000003 	RCVRP3:	MOVEI T1,NCDREP		;REASON CODE IS REP RESPONSE
  2219	000656'01  260 17 0 00 001474'		CALL XMTNAK		;TRY TO SEND NAK
  2220	000657'01  254 00 0 00 000762'		JRST RCVFLU
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 55
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- REP MESSAGE

  2221
  2222						SUBTTL	DDCMP RECEIVER -- START MESSAGE
  2223
  2224					;HERE WHEN RECEIVE A START MESSAGE
  2225	000660'01  254 00 1 02 000661'	RCVSTR:	JRST @.+1(T2)		;DISPATCH ON LINE STATE
  2226	000661'01  254 00 0 00 000762'		JRST RCVFLU		;KMC11 NOT RUNNING
  2227	000662'01  254 00 0 00 000672'		JRST RSTRT3		;MAINT MODE
  2228	000663'01  254 00 0 00 000677'		JRST RSTRT5		;SENDING STARTS
  2229	000664'01  254 00 0 00 000672'		JRST RSTRT3		;SENT STACK
  2230	000665'01  254 00 0 00 000666'		JRST RSTRT0		;RUNNING
  2231
  2232					;HERE IF RECEIVE A START AFTER LINE WAS RUNNING
  2233	000666'01  550 01 0 10 000007 	RSTRT0:	HRRZ T1,PGKDPN(P1)	;GET LINE NUMBER
  2234						BUG (DDCSTR,<<T1,D>>)
  2235						  ;BUG type:    BUGINF, HARD
  2236						  ;BUG message: DDCMP restarted
  2237						       SALL
  2238	000667'01  256 00 0 00 002335'
  2239	000670'01  201 01 0 00 000002 		MOVEI T1,STASTR		;SEND STARTS AGAIN
  2240	000671'01  260 17 0 00 000707'		CALL DEDLIN		;MOURN THE DEAD LINE
  2241
  2242					;HERE IF RECEIVE A START WHICH PUTS US INTO START MODE
  2243	000672'01  201 01 0 00 000002 	RSTRT3:	MOVEI T1,STASTR		;AM NOW SENDING STARTS
  2244	000673'01  137 01 0 00 002302'		STOR T1,DDSTA		;SET NEW STATE
  2245	000674'01  201 01 0 00 000002 		MOVEI T1,2		;MINIMUM TIME
  2246	000675'01  137 01 0 00 002330'		STOR T1,DDTIM		;SO WE SEND A START SOON
  2247	000676'01  254 00 0 00 000762'		JRST RCVFLU		;DISCARD MESSAGE
  2248
  2249					;HERE IF RECEIVE A START WHILE SENDING STARTS
  2250	000677'01  120 01 0 00 000010'	RSTRT5:	DMOVE T1,STCKMS		;GET PROTOTYPE STACK MESSAGE
  2251	000700'01  260 17 0 00 001513'		CALL XMTCTL		;TRY TO SEND IT
  2252	000701'01  254 00 0 00 000672'		JRST RSTRT3		;FAILED SO SEND START LATER
  2253	000702'01  201 01 0 00 000003 		MOVEI T1,STASTK		;NOW CLAIM WE RECEIVED A STACK
  2254	000703'01  137 01 0 00 002302'		STOR T1,DDSTA		;SAVE NEW STATUS
  2255	000704'01  205 16 0 00 000001 		SETONE DDXAK		;NEED TO SEND AN ACK
  2256	000705'01  436 16 0 13 000002 
  2257	000706'01  254 00 0 00 000762'		JRST RCVFLU		;DISCARD MESSAGE
  2258
  2259					;HERE WHEN A LINE DIES - CLEANS UP AND LETS NSPSRV KNOW
  2260					; CALLED WITH NEW STATE IN T1
  2261	000707'01  135 02 0 00 002302'	DEDLIN:	LOAD T2,DDSTA		;GET LINE STATUS
  2262	000710'01  201 03 0 00 000002 		MOVEI T3,DDOWN		;LINE IS DOWN
  2263	000711'01  306 02 0 00 000004 		CAIN T2,STARUN		;WAS LINE RUNNING ?
  2264	000712'01  137 03 0 00 002277'		STOR T3,DCHNG		;YES SO TELL NSPSRV IT DIED
  2265	000713'01  137 01 0 00 002302'		STOR T1,DDSTA		;SET NEW STATE
  2266	000714'01  137 01 0 00 002330'		STOR T1,DDTIM		;START TIMER ALSO
  2267	000715'01  476 00 0 00 000523*		SETOM KDPFLG		;SO WE CHECK FLAG
  2268	000716'01  700 14 0 00 000400 	DEDLN2:	PIOFF			;STOP RACES
  2269	000717'01  554 03 0 13 000003 		HLRZ T3,PGDOMQ(P4)	;GET FIRST MESSAGE IN OUTPUT MESSAGE QUEUE
  2270	000720'01  322 03 0 00 000737'		JUMPE T3,DEDLN8		;IF NONE DONE
  2271	000721'01  261 17 0 03 000002 		PUSH P,MBKLEN(T3)	;SAVE DRIVER INT LOC
  2272	000722'01  261 17 0 03 000001 		PUSH P,MBKCOD(T3)	;SAVE DRIVER UNIQUE CODE
  2273	000723'01  554 02 0 03 000000 		HLRZ T2,MBKLNK(T3)	;GET ADR OF NEXT MESSAGE BLOCK
  2274	000724'01  506 02 0 13 000003 		HRLM T2,PGDOMQ(P4)	;FORGET MESSAGE
  2275	000725'01  550 01 0 03 000003 		HRRZ T1,MBKFRE(T3)	;GET ADR OF CHUNK
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 55-1
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- START MESSAGE

  2276	000726'01  302 02 0 03 000003 		CAIE T2,MBKFRE(T3)	;DOES THIS CHANGE CHUNKS ?
  2277	000727'01  260 17 0 00 000606'		CALL SAVBLK		;SAVE THE BLOCK FOR LATER USE
  2278	000730'01  700 14 0 00 000200 		PION			;REENABLE INTERRUPTS
  2279	000731'01  262 17 0 00 000001 		POP P,T1		;GET DRIVER UNIQUE CODE
  2280	000732'01  262 17 0 00 000002 		POP P,T2		;GET DRIVER INT LOC
  2281	000733'01  557 00 0 00 000002 		HLRZS T2		;PUT DREIVER INT LOC IN RH
  2282	000734'01  332 00 0 00 000002 		SKIPE T2		;WAS THERE ONE ?
  2283	000735'01  260 17 0 02 000000 		CALL (T2)
  2284	000736'01  254 00 0 00 000716'		JRST DEDLN2
  2285	000737'01  402 00 0 13 000003 	DEDLN8:	SETZM PGDOMQ(P4)	;HAVE FLUSHED OUTPUT QUEUE
  2286	000740'01  402 00 0 13 000005 		SETZM PGDLMX(P4)	;NO LAST MESSAGE NOW
  2287	000741'01  402 00 0 13 000007 		SETZM PGDMNM(P4)	;INITIALIZE MESSAGE NUMBERS
  2288	000742'01  201 16 0 00 000377 		SETZRO DDLMX		
  2289	000743'01  412 16 0 13 000001 
  2290	000744'01  700 14 0 00 000200 		PION
  2291	000745'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 56
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- START MESSAGE

  2292
  2293						SUBTTL	DDCMP RECEIVER -- STACK MESSAGE
  2294
  2295					;HERE WHEN RECEIVE A STACK MESSAGE
  2296	000746'01  254 00 1 02 000747'	RCVSTK:	JRST @.+1(T2)		;DISPATCH ON LINE STATE
  2297	000747'01  254 00 0 00 000762'		JRST RCVFLU		;KMC11 NOT RUNNING
  2298	000750'01  254 00 0 00 000762'		JRST RCVFLU		;MAINT MODE
  2299	000751'01  254 00 0 00 000754'		JRST RSTCK0		;SENDING STARTS
  2300	000752'01  254 00 0 00 000754'		JRST RSTCK0		;SENT STACK
  2301	000753'01  254 00 0 00 000762'		JRST RCVFLU		;RUNNING
  2302
  2303	000754'01  260 17 0 00 001447'	RSTCK0:	CALL XMTACK		;SEND AN ACK
  2304	000755'01  201 01 0 00 000003 		MOVEI T1,STASTK		;CLAIM SENT A STACK
  2305	000756'01  137 01 0 00 002302'		STOR T1,DDSTA
  2306	000757'01  254 00 0 00 000762'		JRST RCVFLU		;DISCARD MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 57
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- STACK MESSAGE

  2307
  2308						SUBTTL	DDCMP RECEIVER -- JUNK MESSAGE
  2309
  2310					;HERE WHEN RECEIVE A JUNK MESSAGE
  2311	000760'01  201 01 0 00 000021 	RCVKRD:	MOVEI T1,NCDHFE		;HEADER FORMAT ERROR
  2312	000761'01  260 17 0 00 001474'		CALL XMTNAK		;COMPLAIN TO OTHER END
  2313
  2314	000762'01  554 03 0 00 000010 	RCVFLU:	HLRZ T3,P1		;GET ADR OF BUFFER DESCRIPTOR
  2315	000763'01  135 12 0 00 002340'		LDB P3,[POINT 8,PGRMS1-PGRBD1(T3),35] ;SAVE 3RD BYTE OF MESSAGE
  2316	000764'01  260 17 0 00 001707'		CALL RCVENB		;REENABLE RECEIVER
  2317	000765'01  336 00 0 10 000001 		SKIPN PGSTAL(P1)	;MULTI-DROP LINE?
  2318	000766'01  254 00 0 00 001123'		JRST KMVCB9		;NO, ALL DONE
  2319	000767'01  602 12 0 00 000200 		TRNE P3,SELECT		;DID STATION DESELECT
  2320	000770'01  260 17 0 00 001310'		CALL SELSTA		;YES, SELECT NEXT STATION
  2321	000771'01  254 00 0 00 001123'		JRST KMVCB9		;DISMISS INTERRUPT
  2322
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 58
KDPSRV	MAC	30-Sep-80 14:34		DDCMP RECEIVER -- JUNK MESSAGE

  2323
  2324						SUBTTL	DDCMP TRANSMIT DONE
  2325
  2326					;HERE FOR TRANSMIT DONE
  2327	000772'01  321 02 0 00 002341'	XMTDNE:	JUMPL T2,[SOJA T2,XMTDN5] ;IF SECOND DESCRIPTOR FLUSH MESSAGE
  2328	000773'01  554 01 0 02 000004 		HLRZ T1,PGXMS1-PGXBD1(T2) ;GET FIRST CHAR IN MESSAGE
  2329	000774'01  405 01 0 00 000377 		ANDI T1,377		;STRIP EXTRA BITS
  2330	000775'01  302 01 0 00 000005 		CAIE T1,ENQ		;WAS THIS A CONTROL MESSAGE ?
  2331	000776'01  254 00 0 00 001123'		JRST KMVCB9		;WAIT FOR DATA TO GO
  2332	000777'01  135 12 0 00 002342'	XMTDN5:	LDB P3,[POINT 8,PGXMS1+1-PGXBD1(T2),9] ;GET A0
  2333	001000'01  402 00 0 00 000013 		SETZM P4			;CLEAR STATION TABLE ADDR 
  2334	001001'01  260 17 0 00 000126'	XMTDN6:	CALL NXTSTA		;GET NEXT STATION IN LIST
  2335						BUG (MSGCLB)
  2336						  ;BUG type:    BUGCHK, HARD
  2337						  ;BUG message: DDCMP transmit message clobbered
  2338						       SALL
  2339	001002'01  256 00 0 00 002343'
  2340	001003'01  135 03 0 00 002301'		LOAD T3,DDDRP		;DROP OF SELECTED STATION
  2341	001004'01  312 12 0 00 000003 		CAME P3,T3		;MATCH?
  2342	001005'01  254 00 0 00 001001'		JRST XMTDN6		;LOOP TO FIND STATION
  2343	001006'01  402 00 0 02 000000 		SETZM (T2)		;THIS BUFFER DESCRIPTOR LIST NOW FREE
  2344	001007'01  135 02 0 00 002302'		LOAD T2,DDSTA		;GET STATE
  2345	001010'01  306 00 0 00 000001 		CAIN	STAMAI		;IN MAINTENANCE MODE?
  2346	001011'01  254 00 0 00 002170'		JRST	MOPDNE		;DO MOP COMPLETION STUFF
  2347	001012'01  201 01 0 00 000003 		MOVEI T1,TIMREP		;GET REP INTERVAL
  2348	001013'01  306 02 0 00 000002 		CAIN T2,STASTR		;SENDING STARTS?
  2349	001014'01  201 01 0 00 000005 		MOVEI T1,TIMSTR		;YES, USE START TIMER
  2350	001015'01  135 02 0 00 002330'		LOAD T2,DDTIM		;GET CURRENT TIMER
  2351	001016'01  336 00 0 00 000002 		SKIPN T2		;STATION IDLE?
  2352	001017'01  137 01 0 00 002330'		STOR T1,DDTIM		;YES, SET REP TIMER
  2353	001020'01  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET CURRENTLY SELECTED STATION
  2354	001021'01  135 01 0 00 002345'		LOAD T1,DDNCD		;GET CURRENT NAK CODE
  2355	001022'01  332 00 0 00 000001 		SKIPE T1		;DO WE NEED TO SEND A NAK ?
  2356	001023'01  260 17 0 00 001474'		CALL XMTNAK		;TRY TO SEND IT NOW
  2357	001024'01  135 01 0 00 002346'		LOAD T1,DDSEL		;IS STATION WAITING FOR SELECT
  2358						JUMPN T1,[LOAD T1,DDSTA ;YES,GET STATE
  2359							  CALL @SELDSP(T1) ;SEND A MESSAGE
  2360	001025'01  326 01 0 00 002347'			  JRST .+1]
  2361	001026'01  336 00 0 13 000004 		SKIPN PGOLST(P4)	;ANY OUTPUT FOR THIS STATION
  2362						JRST [SKIPN P4,PGLOUQ(P1) ;ANY OUTPUT QUEUED?
  2363						      HRR P4,PGCSTA(P1) ;NO, JUST CHECK FOR ACK
  2364	001027'01  254 00 0 00 002352'		      JRST .+1]
  2365	001030'01  260 17 0 00 001552'		CALL XMTDAT		;TRY TO SEND SOME DATA
  2366	001031'01  254 00 0 00 001123'		JRST KMVCB9
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 59
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMIT DONE

  2367
  2368						SUBTTL	KMC11 CONTROL OUT INTERRUPT
  2369					;HERE FOR CONTROL OUT INTERRUPT
  2370	001032'01  405 03 0 00 000377 	CNTRLO:	ANDI T3,377		;LEAVE ONLY ERROR CODE
  2371	001033'01  241 03 0 00 777777 		ROT T3,-1		;FOR DISPATCH
  2372	001034'01  321 03 0 00 001037'		JUMPL T3,CNTLO3		;IN CASE BUM DISPATCH
  2373	001035'01  301 03 0 00 000004 		CAIL T3,10/2		;IN RANGE ?
  2374	001036'01  303 03 0 00 000013 		CAILE T3,26/2		;IN RANGE
  2375					CNTLO3:	JRST [	AOS PGCOXX(P1)	;COUNT TIMES THIS HAPPENS
  2376	001037'01  254 00 0 00 002355'			JRST KMVCB9 ]	;IGNORE INTERRUPT
  2377	001040'01  201 01 0 10 000007 		MOVEI T1,PGCOCN-4(P1)	;TABLE TO INCREMENT
  2378	001041'01  270 01 0 00 000003 		ADD T1,T3		;OFFSET FOR CODE
  2379	001042'01  350 00 0 01 000000 		AOS (T1)		;COUNT TYPE OF INTERRUPT
  2380	001043'01  254 00 1 03 001040'		JRST @.+1-4(T3)		;DISPATCH ON MESSAGE TYPE
  2381	001044'01  254 00 0 00 001054'		JRST CNTL10		;10 = INVALID DDCMP HEADER
  2382	001045'01  254 00 0 00 001056'		JRST CNTL12		;12 = BAD CRC
  2383						JRST [	MOVEI T1,NCDBTU	;14 = BUFFER NOT AVAILABLE
  2384							STOR T1,DDNCD	;SAVE REASON FOR NAK
  2385	001046'01  254 00 0 00 002357'			JRST KMVCB9 ]	;DISMISS
  2386	001047'01  254 00 0 00 001062'		JRST CNTL16		;16 = DATASET READY TRANSITION
  2387	001050'01  254 00 0 00 001100'		JRST CNTL20		;20 = NXM
  2388	001051'01  254 00 0 00 001103'		JRST CNTL22		;22 = TRANSMIT UNDERRUN
  2389	001052'01  254 00 0 00 001105'		JRST CNTL24		;24 = RECEIVER UNDERRUN
  2390	001053'01  254 00 0 00 001123'		JRST KMVCB9		;26 = KILL COMPLETE
  2391
  2392					;HERE WHEN GET A CONTROL TYPE 10 = INVALID DDCMP HEADER
  2393	001054'01  260 17 0 00 001107'	CNTL10:	CALL FLUBFR		;FLUSH BUFFER
  2394	001055'01  254 00 0 00 001123'		JRST KMVCB9
  2395
  2396					;HERE WHEN GET A CONTROL TYPE 12 = BAD CRC
  2397	001056'01  260 17 0 00 001107'	CNTL12:	CALL FLUBFR		;FLUSH BUFFER
  2398	001057'01  201 01 0 00 000002 		MOVEI T1,NCDBCC		;NAK CODE FOR BUM CRC
  2399	001060'01  260 17 0 00 001474'		CALL XMTNAK		;TRY TO SEND NAK
  2400	001061'01  254 00 0 00 001123'		JRST KMVCB9		;DISMISS
  2401
  2402					;HERE WHEN WE GET A CONTROL TYPE 16 = DATASET READY TRANSITION
  2403	001062'01  205 03 0 00 000020 	CNTL16:	MOVX T3,DUPDSR		;BIT FOR DATASET READY
  2404	001063'01  433 03 0 10 000005 		XORB T3,PGLSTS(P1)	;CHANGE STATE
  2405	001064'01  603 03 0 00 000020 		TXNE T3,DUPDSR		;STILL UP ?
  2406	001065'01  254 00 0 00 001123'		 JRST KMVCB9		;CAME ON - DISMISS
  2407	001066'01  135 03 0 00 002302'		LOAD T3,DDSTA		;GET CURRENT STATE
  2408	001067'01  302 03 0 00 000003 		CAIE T3,STASTK		;ARE WE SENDING STACKS ?
  2409	001070'01  306 03 0 00 000004 		CAIN T3,STARUN		;OR ARE WE RUNNING ?
  2410	001071'01  334 01 0 00 002362'		SKIPA T1,[EXP STASTR]	;SEND STARTS AGAIN
  2411	001072'01  254 00 0 00 001123'		 JRST KMVCB9		;DISMISS
  2412	001073'01  550 02 0 10 000007 		HRRZ T2,PGKDPN(P1)	;GET LINE NUMBER
  2413	001074'01  306 03 0 00 000004 		CAIN T3,STARUN		;ARE WE RUNNING ?
  2414						 BUG (DSRLST,<<T2,D>>)
  2415						  ;BUG type:    BUGINF, HARD
  2416						  ;BUG message: Dataset ready lost
  2417						       SALL
  2418	001075'01  256 00 0 00 002363'
  2419	001076'01  260 17 0 00 000707'		CALL DEDLIN		;DATASET NOT READY SO DECLARE LINE DOWN
  2420	001077'01  254 00 0 00 001123'		JRST KMVCB9		;DISMISS
  2421
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 59-1
KDPSRV	MAC	30-Sep-80 14:34		KMC11 CONTROL OUT INTERRUPT

  2422					;HERE WHEN GET A CONTROL TYPE 20 = NXM
  2423	001100'01  260 17 0 00 000102'	CNTL20:	CALL KMCHLT		;KILL THE KMC11
  2424						BUG (KMCNXM) ;TELL OPERATOR
  2425						  ;BUG type:    BUGINF, HARD
  2426						  ;BUG message: KMC11 NXM
  2427						       SALL
  2428	001101'01  256 00 0 00 002366'
  2429	001102'01  254 00 0 00 001123'		JRST KMVCB9
  2430
  2431					;HERE WHEN GET A CONTROL TYPE 22 = TRANSMIT UNDERRUN
  2432	001103'01  260 17 0 00 001107'	CNTL22:	CALL FLUBFR		;FLUSH BUFFER
  2433	001104'01  254 00 0 00 001123'		JRST KMVCB9
  2434
  2435					;HERE WHEN GET A CONTROL TYPE 24 = RECEIVER UNDERRUN
  2436	001105'01  260 17 0 00 001107'	CNTL24:	CALL FLUBFR		;FLUSH BUFFER
  2437	001106'01  254 00 0 00 001123'		JRST KMVCB9		;DISMISS
  2438
  2439					;HERE TO FREE BUFFER REFERENCED IN CONTROL OUT MSG
  2440	001107'01  554 01 0 10 000000 	FLUBFR:	HLRZ T1,PGUBAD(P1)	;GET UNIBUS ADR OF PAGE
  2441	001110'01  274 02 0 00 000001 		SUB T2,T1		;LEAVE ONLY RELATIVE ADR ON PAGE
  2442	001111'01  241 02 0 00 777776 		ROT T2,-2		;CONVERT BYTES TO WORDS
  2443	001112'01  550 03 0 00 000002 		HRRZ T3,T2		;COPY BUFFER ADR
  2444	001113'01  271 03 0 10 000000 		ADDI T3,(P1)		;POINT TO BUFFER DESCRIPTOR
  2445	001114'01  302 03 0 10 000362 		CAIE T3,PGRBD1(P1)	;WAS THAT FIRST RECEIVER BUFFER ?
  2446	001115'01  306 03 0 10 000526 		CAIN T3,PGRBD2(P1)	;OR 2ND RECEIVER BUFFER
  2447	001116'01  254 00 0 00 001707'		JRST RCVENB		;REENABLE BUFFER
  2448	001117'01  302 03 0 10 000052 		CAIE T3,PGXBD1(P1)	;WAS THAT 1ST TRANSMIT BUFFER ?
  2449	001120'01  306 02 0 10 000216 		CAIN T2,PGXBD2(P1)	;OR 2ND TRANSMIT BUFFER ?
  2450	001121'01  402 00 0 03 000000 		SETZM (T3)		;FREE BUFFER
  2451	001122'01  263 17 0 00 000000 		RET
  2452
  2453	001123'01  205 17 0 00 000223*	KMVCB9:	MOVSI 17,KMCACS		;BLT POINTER TO RESTORE REGS
  2454	001124'01  251 17 0 00 000017 		BLT 17,17		;RESTORE ALL REGS
  2455	001125'01  254 06 0 00 000000#		XJEN KDPXPC+4		;DISMISS INTERRUPT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 60
KDPSRV	MAC	30-Sep-80 14:34		KMC11 CONTROL OUT INTERRUPT

  2456
  2457						SUBTTL	HERE FROM NSPSRV WITH OUTPUT MESSAGES
  2458
  2459					;ACCEPTS:
  2460					;	F/ DRIVER UNIQUE CODE
  2461					;	T1/ DRIVER INT LOC,,DTE NUMBER
  2462					;	T2/ BYTE POINTER TO NSP DATA (WITH OR WITHOUT HEADER)
  2463					;	T3/ RH = COUNT OF BYTES IN DATA POINTED TO BE B
  2464					;	    B0 SET IF MESSAGE ALREADY SENT
  2465					;	    B1 SET IF MESSAGE FROM DCP
  2466					;
  2467					;	RETURNS:
  2468					;	+1 IF NO PACKETS AND CALLED FROM SCHEDULER. REQUEST NOT
  2469					;	   QUEUED.
  2470					;	+2 REQUEST QUEUED
  2471					;
  2472					;MAY BE CALLED FROM PI OR NON-PI LEVEL .
  2473						; ..
  2474
  2475	001126'01  265 16 0 00 000102*	DCNMSO::SAVEP			;SAVE THE P'S
  2476	001127'01  552 01 0 00 000010 		HRRZM T1,P1		;SAVE THE LINE NUMBER
  2477	001130'01  311 10 0 00 000000*		CAML P1,KDPNLN		;IS LINE NUMBER IN RANGE ?
  2478	001131'01  263 17 0 00 000000 		RET			;NO SO LOSE RETURN
  2479	001132'01  265 16 0 00 000410*		STKVAR <DRVMSG,DRVCOD,DRVLEN,DRVFLG>
  2480	001133'01  000000  000004
  2481	001134'01  202 00 0 17 777775 		MOVEM F,DRVCOD		;SAVE DRIVER CODE
  2482	001135'01  202 02 0 17 777776 		MOVEM T2,DRVMSG		;SAVE POINTER TO MESSAGE
  2483	001136'01  557 00 0 00 000002 		HLRZS T2		;LEAVE ONLY BYTE POINTER BITS
  2484	001137'01  302 02 0 00 441000 		CAIE T2,441000		;RIGHT BITS ?
  2485						BUG (MSGPTR)
  2486						  ;BUG type:    BUGCHK, HARD
  2487						  ;BUG message: Bad msg pointer
  2488						       SALL
  2489	001140'01  256 00 0 00 002370'
  2490
  2491	001141'01  540 01 0 00 000003 		HRR T1,T3		;BUILD MBKLEN
  2492	001142'01  202 01 0 17 777774 		MOVEM T1,DRVLEN		;SAVE IT
  2493	001143'01  202 03 0 17 777773 		MOVEM T3,DRVFLG		;SAVE FLAGS
  2494	001144'01  200 10 0 10 000242*		MOVE P1,KDPPAG(P1)	;GET ADR OF LINES PAGE
  2495	001145'01  607 03 0 00 200000 		TXNN T3,1B1		;DCP DATA
  2496									;%% NOT GOOD ENOUGH
  2497	001146'01  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET STATION TABLE ADDRESS
  2498	001147'01  135 01 0 00 002302'		LOAD T1,DDSTA		;GET LINE STATUS
  2499	001150'01  302 01 0 00 000004 		CAIE T1,STARUN		;IS LINE RUNNING ?
  2500	001151'01  263 17 0 00 000000 		RET			;CAN'T HANDLE MESSAGE
  2501	001152'01  332 00 0 13 000006 	DCNMS1:	SKIPE PGFCOR(P4)	;IS THERE A FREE CORE BLOCK ?
  2502	001153'01  254 00 0 00 001163'		JRST DCNMS2		;ENOUGH CORE
  2503	001154'01  200 01 0 00 002372'		MOVE T1,[.RESP1,,BLKSIZ] ;PRIORITY AND SIZE OF BLOCK TO GET
  2504	001155'01  200 02 0 00 002373'		MOVX T2,RS%SE0+.RESNP	;GET IT FROM THE NETWORK POOL
  2505	001156'01  260 17 0 00 000417*		CALL ASGRES		;GET THE BLOCK
  2506						JRST [	CONSO PI,PIPIIP	;ARE WE AT INTERRUPT LEVEL ?
  2507							SKIPE INSKED	;FROM SCHEDULER ?
  2508							RET		;LOSE
  2509							SKIPE NSKED	;ARE WE NOSKED ?
  2510							RET		;LOSE - CAN'T BLOCK
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 60-1
KDPSRV	MAC	30-Sep-80 14:34		HERE FROM NSPSRV WITH OUTPUT MESSAGES

  2511							HRLI T1,P1	;COPY LINES BLOCK ADR
  2512							HRRI T1,SPCTST	;CHECK FOR ROOM
  2513							MDISMS		;WAIT
  2514	001157'01  254 00 0 00 002374'			JRST DCNMS1 ]	;TRY AGAIN
  2515	001160'01  700 14 0 00 000400 		PIOFF			;DISABLE INTERRUPTS
  2516	001161'01  260 17 0 00 000606'		CALL SAVBLK		;SAVE BLOCK FOR LATER USE
  2517	001162'01  700 14 0 00 000200 		PION			;REENABLE INTERRUPTS
  2518	001163'01  335 00 0 17 777773 	DCNMS2:	SKIPGE DRVFLG		;ALREADY SHUFFLED ?
  2519	001164'01  254 00 0 00 001170'		JRST DCNMS4		;IN CASE ALREADY SHUFFLED DATA
  2520	001165'01  200 03 0 17 777774 		MOVE T3,DRVLEN		;GET LENGTH OF MESSAGE
  2521	001166'01  540 02 0 17 777776 		HRR T2,DRVMSG		;GET ADR OF MESSAGE
  2522	001167'01  260 17 0 00 002230'		CALL	SHFFLE
  2523	001170'01  700 14 0 00 000400 	DCNMS4:	PIOFF			;DISABLE INTERRUPTS WHILE WE QUEUE IT
  2524	001171'01  554 01 0 10 000004 		HLRZ T1,PGLOUQ(P1)	;GET TAIL OF STATION OUTPUT QUEUE
  2525						JUMPE T1,[HRRM P4,PGLOUQ(P1) ;FIRST ENTRY,SET HEAD
  2526							  MOVE T1,P4	;GET TAIL
  2527	001172'01  322 01 0 00 002405'			  JRST .+1]
  2528	001173'01  540 03 0 10 000004 		HRR T3,PGLOUQ(P1)	;GET HEAD
  2529	001174'01  542 03 0 13 000004 		HRRM T3,PGOLST(P4)	;SET FORWARD THREAD
  2530	001175'01  506 01 0 13 000004 		HRLM T1,PGOLST(P4)	;SET BACK THREAD
  2531	001176'01  506 13 0 10 000004 		HRLM P4,PGLOUQ(P1)	;SET NEW TAIL
  2532	001177'01  332 04 0 13 000003 		SKIPE T4,PGDOMQ(P4)	;ANY OUTPUT MESSAGE QUEUE FOR THE LINE
  2533	001200'01  254 00 0 00 001212'		JRST DCNMSA		;YES
  2534	001201'01  402 00 0 13 000005 		SETZM PGDLMX(P4) ;NO PREVIOUS MSG SENT
  2535	001202'01  550 03 0 13 000006 		HRRZ T3,PGFCOR(P4) ;GET BLOCK ADR
  2536	001203'01  336 00 0 00 000003 		SKIPN T3	;IS THERE ANYTHING THERE ?
  2537	001204'01  207 03 0 13 000006 		MOVSS T3,PGFCOR(P4) ;NO SO GET OTHER HALF
  2538	001205'01  513 00 0 13 000006 		HLLZS PGFCOR(P4) ;REMOVE FROM FREE SPACE
  2539	001206'01  506 03 0 13 000003 		HRLM T3,PGDOMQ(P4) ;THIS IS FIRST MESSAGE
  2540	001207'01  550 01 0 00 000003 		HRRZ T1,T3	;COPY ADR OF CHUNK
  2541	001210'01  505 01 0 00 000025 		HRLI T1,BLKSIZ-4 ;NUMBER OF FREE WORDS LEFT
  2542	001211'01  254 00 0 00 001225'		JRST DCNMS6 
  2543	001212'01  201 03 0 04 000003 	DCNMSA:	MOVEI T3,MBKFRE(T4)	;ADR OF NEXT MESSAGE BLOCK
  2544	001213'01  200 01 0 04 000003 		MOVE T1,MBKFRE(T4)	;GET FREE WORD
  2545	001214'01  274 01 0 00 002410'		SUB T1,[3,,0]		;ADJUST FOR NEW STATUS
  2546	001215'01  325 01 0 00 001224'		JUMPGE T1,DCNMS5
  2547	001216'01  550 03 0 13 000006 		HRRZ T3,PGFCOR(P4)	;GET OLD BLOCK
  2548	001217'01  336 00 0 00 000003 		SKIPN T3		;WAS THERE ONE ?
  2549	001220'01  207 03 0 13 000006 		MOVSS T3,PGFCOR(P4)	;NO SO USE ONE WE JUST GOT
  2550	001221'01  513 00 0 13 000006 		HLLZS PGFCOR(P4)	;NO LONGER FREE
  2551	001222'01  550 01 0 00 000003 		HRRZ T1,T3		;COPY ADR OF CHUNK
  2552	001223'01  505 01 0 00 000025 		HRLI T1,BLKSIZ-4	;NUMBER OF FREE WORDS LEFT
  2553	001224'01  506 03 0 04 000000 	DCNMS5:	HRLM T3,MBKLNK(T4)	;SET LINK TO NEXT
  2554	001225'01  202 01 0 03 000003 	DCNMS6:	MOVEM T1,MBKFRE(T3)	;SAVE FREE STUFF
  2555	001226'01  200 01 0 17 777776 		MOVE T1,DRVMSG		;GET ADR OF MESSAGE
  2556	001227'01  552 01 0 03 000000 		HRRZM T1,MBKLNK(T3)	;SAVE LINK WORD
  2557	001230'01  200 01 0 17 777775 		MOVE T1,DRVCOD		;GET DRIVER UNIQUE CODE
  2558	001231'01  202 01 0 03 000001 		MOVEM T1,MBKCOD(T3)	;SAVE IT
  2559	001232'01  200 01 0 17 777774 		MOVE T1,DRVLEN		;GET LENGTH
  2560	001233'01  202 01 0 03 000002 		MOVEM T1,MBKLEN(T3)	;SAVE IT
  2561	001234'01  542 03 0 13 000003 		HRRM T3,PGDOMQ(P4)	;THIS IS NOW LAST MESSAGE IN QUEUE
  2562	001235'01  260 17 0 00 001552'		CALL XMTDAT		;TRY TO SEND THE MESSAGE
  2563	001236'01  135 01 0 00 002330'		LOAD T1,DDTIM		;GET TIMER
  2564	001237'01  336 00 0 00 000001 		SKIPN T1		;ALREADY RUNNING ?
  2565	001240'01  201 01 0 00 000003 		MOVEI T1,TIMREP		;START IT
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 60-2
KDPSRV	MAC	30-Sep-80 14:34		HERE FROM NSPSRV WITH OUTPUT MESSAGES

  2566	001241'01  137 01 0 00 002330'		STOR T1,DDTIM
  2567	001242'01  700 14 0 00 000200 		PION
  2568	001243'01  254 00 0 00 000605*		JRST RSKP		;WIN RETURN
  2569
  2570					;HERE TO SEE IF WE CAN CONTINUE JOB NEEDING CORE
  2571	001244'01  336 00 0 01 000006 	SPCTST:	SKIPN PGFCOR(T1)	;DID WE GET SOME CORE YET ?
  2572	001245'01  254 00 0 04 000000 		JRST 0(4)		;NOT YET
  2573	001246'01  254 00 0 04 000001 		JRST 1(4)		;GOT SOME
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 61
KDPSRV	MAC	30-Sep-80 14:34		HERE FROM NSPSRV WITH OUTPUT MESSAGES

  2574
  2575						SUBTTL	HERE ONCE A SECOND TO CHECK THINGS
  2576
  2577	001247'01  265 16 0 00 001126*	KDPCHK::SAVEP			;SAVE THE P'S
  2578	001250'01  201 01 0 00 001750 		MOVEI T1,^D1000		;TIME TILL WE WANT TO CHECK AGAIN
  2579	001251'01  202 01 0 00 000000*		MOVEM T1,KDPTIM
  2580	001252'01  331 10 0 00 000116*		SKIPL P1,KDPLIM		;GET NUMBER OF DUP11'S
  2581	001253'01  263 17 0 00 000000 		RET			;NONE
  2582	001254'01  700 14 0 00 000400 	KMCHK0:	pioff
  2583	001255'01  540 10 0 10 001144*		HRR P1,KDPPAG(P1)	;GET PAGE ADR
  2584	001256'01  540 13 0 10 000002 		HRR P4,PGCSTA(P1)	;GET DDCMP LINE TABLE
  2585	001257'01  135 01 0 00 002302'		LOAD	T1,DDSTA
  2586	001260'01  306 01 0 00 000001 		CAIN	T1,STAMAI	;MAINTENANCE MODE?
  2587						JRST	[CALL	MOPSEC	;YES, DO MOP STUFF
  2588							 PION		;TURN INTERRUPTS BACK ON
  2589	001261'01  254 00 0 00 002411'			 JRST	KMCHK3]	;GO ON
  2590	001262'01  350 00 0 10 000011 		AOS PGZTIM(P1)		;TIME SINCE COUNTERS ZEROED
  2591	001263'01  135 01 0 00 002330'		LOAD T1,DDTIM		;GET TIMER FOR LINE
  2592	001264'01  322 01 0 00 001274'		JUMPE T1,KMCHK2		;IF TIMER NOT RUNNING WE'RE DONE
  2593	001265'01  370 00 0 00 000001 		SOS T1			;DECREMENT THE TIMER
  2594	001266'01  137 01 0 00 002330'		STOR T1,DDTIM		;SAVE UPDATED TIMER
  2595	001267'01  326 01 0 00 001274'		JUMPN T1,KMCHK2		;IF TIMER DIDN'T EXPIRE DONE WITH LINE
  2596	001270'01  332 00 0 10 000001 		SKIPE PGSTAL(P1)	;MULTIPOINT?
  2597						JRST [CALL SELSTA	;YES, SELECT NEW STATION
  2598	001271'01  254 00 0 00 002414'		      JRST KMCHK2]	;CONTINUE FOR REMAINING LINES
  2599	001272'01  135 01 0 00 002302'		LOAD T1,DDSTA		;GET LINE STATE
  2600	001273'01  260 17 0 01 001303'		CALL TIMDSP(T1)		;DISPATCH ON STATE
  2601	001274'01  700 14 0 00 000200 	KMCHK2:	PION			;REENABLE INTERRUPTS
  2602	001275'01  135 01 0 00 002416'		LOAD T1,DDINT		;WAS AN INTERRUPT REQUESTED
  2603	001276'01  332 00 0 00 000001 		SKIPE T1
  2604						JRST [	SETZRO DDINT	;DID IT NOW
  2605							HRRZ T1,PGLINT(P1)  ;GET CHANNEL
  2606							JUMPE T1,.+1	    ;IS THERE ONE?
  2607							SOS T1		    ;ZERO INDEX
  2608							HLRZ T2,PGLINT(P1)  ;FORK#
  2609							CALL PSIRQ	    ;SEND INTERRUPT
  2610	001277'01  254 00 0 00 002417'			JRST .+1 ]
  2611	001300'01  540 10 0 10 000007 	KMCHK3:	HRR P1,PGKDPN(P1)	;GET LINE NUMBER
  2612	001301'01  253 10 0 00 001254'		AOBJN P1,KMCHK0		;LOOP BACK FOR REST OF LINES
  2613	001302'01  263 17 0 00 000000 		RET			;HAVE DONE ALL LINES
  2614	001303'01  254 00 0 00 000000*	TIMDSP:	JRST R			;KMC NOT RUNNING
  2615	001304'01  254 00 0 00 001303*		JRST R			;MAINTENANCE MODE
  2616	001305'01  254 00 0 00 001407'		JRST XSTART		;SENDING STARTS
  2617	001306'01  254 00 0 00 001417'		JRST REPCHK		;RECEIVED STACK
  2618	001307'01  254 00 0 00 001417'		JRST REPCHK		;RUNNING
  2619
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 62
KDPSRV	MAC	30-Sep-80 14:34		HERE ONCE A SECOND TO CHECK THINGS

  2620
  2621						SUBTTL	HERE TO PROCESS END OF SELECTION INTERVAL
  2622
  2623					;CALLED AT INTERRUPT LEVEL OR WITH PIOFF
  2624	001310'01  201 16 0 00 001770 	SELSTA:	SETZRO DDTIM		;CLEAR REP TIMER
  2625	001311'01  412 16 0 13 000002 
  2626	001312'01  260 17 0 00 001336'		CALL GTNXT		;SELECT NEXT STATION
  2627	001313'01  263 17 0 00 000000 		RET			;NO ELIGABLE STATIONS
  2628	001314'01  135 01 0 00 002327'		LOAD T1,DDHMA		;HIGHEST MESSAGE ACKED
  2629	001315'01  135 02 0 00 002427'		LOAD T2,DDLMX		;HIGHEST XMITTED
  2630	001316'01  313 02 0 00 000001 		CAMLE T2,T1		;ANY OUTSTANDING?
  2631	001317'01  254 00 0 00 001417'		JRST REPCHK		;SEND A REP
  2632	001320'01  135 01 0 00 002430'		LOAD T1,DDHXM		;HIGHEST MESSAGE XMITTED LAST INTERVAL
  2633	001321'01  306 01 0 00 000377 		CAIN T1,377		;TIME TO WRAP AROUND?
  2634	001322'01  402 00 0 00 000001 		SETZM T1		;YUP
  2635	001323'01  137 01 0 00 002427'		STOR T1,DDLMX		;REMEMBER FOR NEXT TIME
  2636	001324'01  205 16 0 00 000001 		SETONE DDXAK		;SEND AN ACK (IF NO DATA)
  2637	001325'01  436 16 0 13 000002 
  2638	001326'01  135 01 0 00 002302'		LOAD T1,DDSTA		;GET STATE
  2639	001327'01  260 17 1 01 001331'		CALL @SELDSP(T1)	;DISPATCH ON STATE
  2640	001330'01  263 17 0 00 000000 		RET
  2641
  2642	001331'01  254 00 0 00 001304*	SELDSP:	JRST R			;KMC NOT RUNNING
  2643	001332'01  254 00 0 00 001331*		JRST R			;MAINTENANCE
  2644	001333'01  254 00 0 00 001407'		JRST XSTART		;SENDIND STARTS
  2645	001334'01  254 00 0 00 001552'		JRST XMTDAT		;RECEIVED STACK
  2646	001335'01  254 00 0 00 001552'		JRST XMTDAT		;RUNNING
  2647
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 63
KDPSRV	MAC	30-Sep-80 14:34		HERE TO PROCESS END OF SELECTION INTERVAL

  2648
  2649						SUBTTL	HERE TO SELECT NEXT STATION TO POLL
  2650
  2651
  2652					;  A STATION IS ELEGIBLE TO BE POLLED IF IT IS RUNNING AND ACTIVE OR IN 
  2653					;STARTUP. ACTIVE/IDLE STATE IS SET VIA THE BOOT JSYS. IF NO ELEGIBLE STATION
  2654					;IS FOUND AFTER ONE PASS THRU THE STATION TABLES A TIMER IS SET TO INITIATE
  2655					;A SCAN IN ONE SECOND AND THE ROUTINE EXITS NON SKIP.
  2656					;  IN ORDER TO REDUCE POLLING DELAYS DUE TO UNRESPONSIVE STATIONS, STATIONS
  2657					;WHICH ARE IN STARTUP ARE NOT POLLED AS FREQUENTLY AS STATIONS WHICH ARE
  2658					;RUNNING. ONLY ONE STARTUP IS ATTEMPTED EVERY N TIMES ALL RUNNING STATIONS
  2659					;ARE POLLED. THE PARAMETER N IS PGSTCC IN THE LINE TABLE AND MAY BE SET VIA
  2660					;THE BOOT JSYS.
  2661					;  ACTIVE STATIONS ARE POLLED ACCORDING TO PRIORITY VALUE BETWEEN 1 AND N
  2662					;WHERE 1 IS HIGHEST. THE RELETIVE FREQUENCY OF POLLING ANY TWO STATIONS
  2663					;WILL BE THE RATIO OF THERE PRIORITY VALUES. PRIORITY VALUES DEFAULT TO 1
  2664					;RESULTING IN ROUND ROBIN POLLING OF ACTIVE STATIONS OR CAN BE SET USING THE
  2665					;BOOT JSYS.
  2666
  2667	001336'01  403 01 0 00 000002 	GTNXT:	SETZB T1,T2		;CLR ELIGABLE STATION COUNTER,LOOP COUNT
  2668	001337'01  550 03 0 00 000013 		HRRZ T3,P4		;REMEMBER CURRENT STATION
  2669	001340'01  550 13 0 13 000000 	GTNXT1:	LOAD P4,DDLNK		;GET NEXT STATION
  2670	001341'01  550 04 0 10 000001 		LOAD T4,DDSTT		;GET TOP OF STATION LIST
  2671	001342'01  316 13 0 00 000004 		CAMN P4,T4		;ARE WE AT TOP?
  2672						JRST [LOAD T2,DDSSP	;PICK UP PRIORITY COUNT
  2673						      SKIPG PGSTCC(P1)	;IF ZERO MUST BE RESET
  2674						      MOVEM T2,PGSTCC(P1)	;OK RESET COUNT
  2675						      SOS PGSTCC(P1)	;DECREMENT COUNT ANYWAY
  2676	001343'01  254 00 0 00 002432'		      JRST .+1]
  2677
  2678					;DETERMINE IF THIS STATION IS ELIGABLE
  2679
  2680	001344'01  135 04 0 00 002437'		LOAD T4,DDACI		;GET POLLING STATUS
  2681	001345'01  327 04 0 00 001360'		JUMPG T4,GTNXT2		;IDLE?
  2682	001346'01  135 04 0 00 002302'		LOAD T4,DDSTA		;GET STATE
  2683	001347'01  201 11 0 00 000003 		MOVEI P2,STASTK		;ASSUME MUST BE RUNNING
  2684	001350'01  337 00 0 10 000012 		SKIPG PGSTCC(P1)	;ARE STARTS ALLOWED
  2685	001351'01  201 11 0 00 000002 		MOVEI P2,STASTR		;YES
  2686	001352'01  315 04 0 00 000011 		CAMGE T4,P2		;STATION ACTIVE?
  2687	001353'01  254 00 0 00 001360'		JRST GTNXT2		;NO
  2688	001354'01  550 11 0 13 000010 		LOAD P2,DDSPC		;GET STATION'S PRIORITY COUNTER
  2689	001355'01  362 11 0 00 001366'		SOJE P2,GTNXT3		;SELECT THIS STATION IF COUNTER ZERO
  2690	001356'01  542 11 0 13 000010 		STOR P2,DDSPC		;SAVE UPDATED COUNT
  2691	001357'01  350 00 0 00 000001 		AOS T1			;MARK AN ACTIVE STATION
  2692	001360'01  312 13 0 00 000003 	GTNXT2:	CAME P4,T3		;ONCE THRU YET?
  2693	001361'01  254 00 0 00 001340'		JRST GTNXT1		;NO, KEEP TRUCKIN
  2694
  2695					;HERE WHEN THRU STATION LIST
  2696	001362'01  327 01 0 00 001340'		JUMPG T1,GTNXT1		;CONTINUE IF THERE ARE ACTIVE STATIONS
  2697	001363'01  201 01 0 00 000001 		MOVEI T1,1		;QUICK TIMER
  2698	001364'01  137 01 0 00 002330'		STOR T1,DDTIM		;FOR THIS SELECTION INTERVAL
  2699	001365'01  263 17 0 00 000000 		RET			;RETURN FAILURE
  2700
  2701	001366'01  554 01 0 13 000010 	GTNXT3: LOAD T1,DDIPC		;GET INITIAL PRIORITY COUNT
  2702	001367'01  542 01 0 13 000010 		STOR T1,DDSPC		;RESET STATION COUNTER
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 63-1
KDPSRV	MAC	30-Sep-80 14:34		HERE TO SELECT NEXT STATION TO POLL

  2703	001370'01  302 04 0 00 000002 		CAIE T4,STASTR	;IS THIS A START
  2704	001371'01  254 00 0 00 001403'		JRST GTNXT4		;NO, CONTINUE
  2705	001372'01  260 17 0 00 000055'		CALL REMSTA		;REMOVE STATION FROM STATION LIST
  2706	001373'01  260 17 0 00 000034'		CALL INSTA		;INSERT IT AT END OF LIST
  2707	001374'01  135 01 0 00 002431'		LOAD T1,DDSSP		;GET INITIAL START COUNT
  2708	001375'01  202 01 0 10 000012 		MOVEM T1,PGSTCC(P1)	;YES, RESET COUNTER
  2709	001376'01  135 01 0 00 002440'		LOAD T1,DDSFC		;GET STARTUP FAILURE COUNTER
  2710	001377'01  303 01 0 00 000010 		CAILE T1,MAXSTR		;IS IT TOO HIGH
  2711						JRST [SETZM PGDSTS(P4)	;MARK LINE DOWN
  2712						      MOVEI T3,DDSF	;POST A STARTUP FAILURE
  2713						      STOR T3,DCHNG	;AT SCHEDULER LEVEL
  2714						      SETOM KDPFLG	;REQUEST THE SERVICE
  2715	001400'01  254 00 0 00 002441'		      JRST GTNXT]	;SELECT ANOTHER STATION
  2716	001401'01  350 00 0 00 000001 		AOS T1			;COUNT THIS STARTUP
  2717	001402'01  137 01 0 00 002440'		STOR T1,DDSFC		;SAVE IT
  2718	001403'01  205 16 0 00 010000 	GTNXT4:	SETONE DDSEL		;MARK STATION FOR SELECT
  2719	001404'01  436 16 0 13 000002 
  2720	001405'01  202 13 0 10 000002 		MOVEM P4,PGCSTA(P1)	;SET STATION SELECTED
  2721	001406'01  254 00 0 00 001243*		RETSKP			;RETURN SUCCESS
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 64
KDPSRV	MAC	30-Sep-80 14:34		HERE TO SELECT NEXT STATION TO POLL

  2722
  2723						SUBTTL	DDCMP TRANSMITTER -- DATA MESSAGES
  2724
  2725	001407'01  205 16 0 00 000001 	XSTART:	SETZRO DDXAK		;DON'T NEED AN ACK NOW
  2726	001410'01  412 16 0 13 000002 
  2727	001411'01  201 01 0 00 000005 		MOVEI T1,TIMSTR		;IF THIS ONE DOESN'T GET RESULTS
  2728	001412'01  137 01 0 00 002330'		STOR T1,DDTIM		;TRY AGAIN SOON
  2729	001413'01  120 01 0 00 000006'		DMOVE T1,STRTMS		;GET PROTOTYPE START MESSAGE
  2730	001414'01  260 17 0 00 001513'		CALL XMTCTL		;SEND THE START MESSAGE
  2731	001415'01  263 17 0 00 000000 		RET			;FAILED - WE'LL TRY AGAIN LATER
  2732	001416'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 65
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- DATA MESSAGES

  2733
  2734						SUBTTL	DDCMP TRANSMITTER -- REP MESSAGE
  2735
  2736					;HERE TO CHECK IF WE NEED TO SEND A REP MESSAGE
  2737	001417'01  205 16 0 00 000400 	REPCHK:	SETZRO DDXRP		;CLEAR INDICATOR
  2738	001420'01  412 16 0 13 000002 
  2739	001421'01  135 02 0 00 002331'		LOAD T2,DDREPC		;GET REP COUNTER
  2740	001422'01  135 01 0 00 002302'		LOAD T1,DDSTA		;GET STATE FOR REPHGH
  2741	001423'01  350 00 0 00 000002 		AOS T2			;MAKE IT LARGER
  2742	001424'01  303 02 0 00 000010 		CAILE T2,REPMAX		;IS THIS STILL OK ?
  2743	001425'01  254 00 0 00 001441'		JRST REPHGH		;DROP LINE
  2744	001426'01  137 02 0 00 002331'		STOR T2,DDREPC		;SAVE UPDATED REP COUNTER
  2745	001427'01  201 01 0 00 000003 		MOVEI T1,TIMREP		;HOW LONG TO WAIT UNTIL WE SEND ANOTHER REP
  2746	001430'01  137 01 0 00 002330'		STOR T1,DDTIM		;RESET TIMER
  2747	001431'01  200 01 0 00 000004'		MOVE T1,REPMSG		;GET PROTOTYPE REP MESSAGE
  2748	001432'01  135 02 0 00 002327'		LOAD T2,DDHMA		;HIGHEST MESSAGE ACKED
  2749	001433'01  332 00 0 13 000003 		SKIPE PGDOMQ(P4)	;ANY MESSAGES IN QUEUE ?
  2750	001434'01  665 02 0 02 000010 		TLOA T2,MAXOUT(T2)	;HIGHEST ACKED PLUS MAX SENT
  2751									; IF NUMBER WRAPS IS OK CUZ OF A0
  2752	001435'01  207 00 0 00 000002 		MOVSS T2		;HIGHEST ACKED IS HIGHEST SENT
  2753	001436'01  260 17 0 00 001513'		CALL XMTCTL		;SEND THE REP MESSAGE
  2754	001437'01  263 17 0 00 000000 		RET
  2755	001440'01  263 17 0 00 000000 		RET
  2756
  2757					;HERE IF REP TIMER GOES TOO HIGH
  2758	001441'01  550 02 0 10 000007 	REPHGH:	HRRZ T2,PGKDPN(P1)	;GET DDCMP LINE NUMBER
  2759	001442'01  306 01 0 00 000004 		CAIN T1,STARUN		;WERE WE RUNNING ?
  2760						 BUG (DDCTIM,<<T2,D>>) ;TELL OPER LINE TIMED OUT
  2761						  ;BUG type:    BUGINF, HARD
  2762						  ;BUG message: DDCMP timed out
  2763						       SALL
  2764	001443'01  256 00 0 00 002446'
  2765	001444'01  201 01 0 00 000002 		MOVEI T1,STASTR		;SEND STARTS AGAIN
  2766	001445'01  260 17 0 00 000707'		CALL DEDLIN		;DECLARE LINE DOWN
  2767	001446'01  263 17 0 00 000000 		RET			;DISMISS
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 66
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- REP MESSAGE

  2768
  2769						SUBTTL	DDCMP TRANSMITTER -- ACK MESSAGE
  2770
  2771	001447'01  135 01 0 00 002345'	XMTACK:	LOAD T1,DDNCD		;GET NAK CODE PENDING
  2772	001450'01  326 01 0 00 001474'		JUMPN T1,XMTNAK		;IF THERE IS ONE SEND IT INSTEAD
  2773	001451'01  205 16 0 00 000001 		SETONE DDXAK		;WANT TO SEND AN ACK
  2774	001452'01  436 16 0 13 000002 
  2775	001453'01  332 00 0 10 000001 	XMTAK3:	SKIPE PGSTAL(P1)	;MULTIDROP?
  2776	001454'01  254 00 0 00 001460'		JRST XMTAK4		;YUP, TRY TO SEND THE ACK
  2777	001455'01  336 00 0 10 000052 		SKIPN PGXBD1(P1)	;IS FIRST BUFFER BUSY ?
  2778	001456'01  332 00 0 10 000216 		SKIPE PGXBD2(P1)	;OR IS THE 2ND BUFFER BUSY ?
  2779	001457'01  263 17 0 00 000000 		RET			;DON'T SEND ACK YET
  2780	001460'01  135 16 0 00 002451'	XMTAK4:	OPSTR <SKIPN>,DDXAK	;DO WE WANT TO SEND AN ACK ?
  2781	001461'01  336 00 0 00 000016 
  2782	001462'01  263 17 0 00 000000 		RET			;NOT NOW
  2783	001463'01  135 01 0 00 002307'		LOAD T1,DDRMN		;HIGHEST MESSAGE WE RECEIVED
  2784	001464'01  242 01 0 00 000010 		LSH T1,^D8		;POSITION FOR MESSAGE
  2785	001465'01  434 01 0 00 000000'		IOR T1,ACKMSG		;GET PROTOTYPE ACK MESSAGE
  2786	001466'01  200 02 0 00 000001'		MOVE T2,ACKMSG+1	;GET REST OF PROTOTYPE MESSAGE
  2787	001467'01  260 17 0 00 001513'		CALL XMTCTL		;SEND THE MESSAGE
  2788	001470'01  263 17 0 00 000000 		RET			;FAILED
  2789	001471'01  205 16 0 00 000001 		SETZRO DDXAK		;HAVE SENT ACK NOW
  2790	001472'01  412 16 0 13 000002 
  2791	001473'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 67
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- ACK MESSAGE

  2792
  2793						SUBTTL	DDCMP TRANSMITTER -- NAK MESSAGE
  2794
  2795					; CALL	MOVEI T1,<NAK REASON CODE>
  2796	001474'01  137 01 0 00 002345'	XMTNAK:	STOR T1,DDNCD		;SAVE NAK REASON IN CASE NEED TO SEND LATER
  2797	001475'01  135 02 0 00 002307'		LOAD T2,DDRMN		;HIGHEST MESSAGE WE RECEIVED
  2798	001476'01  242 02 0 00 000010 		LSH T2,^D8		;POSITION NUMBER
  2799	001477'01  434 01 0 00 000002 		IOR T1,T2		;PUT FOLLOWING REASON FOR NAK
  2800	001500'01  434 01 0 00 000002'		IOR T1,NAKMSG		;GET PROTOTYPE NAK MESSAGE
  2801	001501'01  200 02 0 00 000003'		MOVE T2,NAKMSG+1	;GET REST OF PROTOTYPE NAK MESSAGE
  2802	001502'01  260 17 0 00 001513'		CALL XMTCTL		;SEND THE MESSAGE
  2803	001503'01  263 17 0 00 000000 		RET			;FAILED
  2804	001504'01  135 01 0 00 002345'		LOAD T1,DDNCD		;GET NAK CODE
  2805	001505'01  200 02 0 01 000012'		move t2,naktbl(t1)	;form table offset
  2806	001506'01  271 02 0 10 000036 		addi t2,pgnxnk(p1)	;point to nak counter
  2807	001507'01  350 00 0 02 000000 		AOS (T2)		;COUNT NAKS SENT
  2808	001510'01  205 16 0 00 000374 		SETZRO DDNCD		;HAVE SENT NAK NOW
  2809	001511'01  412 16 0 13 000002 
  2810	001512'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 68
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- NAK MESSAGE

  2811
  2812						SUBTTL	DDCMP TRANSMITTER -- CONTROL MESSAGE
  2813
  2814	001513'01  201 03 0 10 000052 	XMTCTL:	MOVEI T3,PGXBD1(P1)	;ASSUME 1ST XMIT BUFFER DESCRIPTOR LIST
  2815	001514'01  332 00 1 00 000003 		SKIPE @T3		;IS IT FREE ?
  2816	001515'01  201 03 0 10 000216 		MOVEI T3,PGXBD2(P1)	;NOT FREE ... TRY 2ND
  2817	001516'01  332 00 1 00 000003 		SKIPE @T3		;IS IT FREE ?
  2818	001517'01  263 17 0 00 000000 		RET			;CAN'T DO IT NOW ... RETURN TO CALLER
  2819	001520'01  135 04 0 00 002301'		LOAD T4,DDDRP		;GET DROP#
  2820	001521'01  137 04 0 00 002452'		DPB T4,[POINT 8,T2,9]	;PUT IT IN MESSAGE
  2821	001522'01  135 04 0 00 002346'		LOAD T4,DDSEL		;GET SELECT FLAG
  2822						JUMPN T4,[ TRO T1,SELECT!QSYNC  ;YES,PUT IT IN MESSAGE
  2823							   SETZRO DDSEL   ;SENT IT NOW
  2824	001523'01  326 04 0 00 002453'			   JRST .+1 ]   ;CONTINUE
  2825	001524'01  124 01 0 03 000004 		DMOVEM T1,PGXMS1-PGXBD1(T3) ;PUT MESSAGE IN BUFFER
  2826
  2827	001525'01  515 01 0 03 000004 		HRLZI T1,PGXMS1-PGXBD1(T3) ;ADDRESS OF BUFFER
  2828	001526'01  621 01 0 00 777000 		TLZ T1,777000		;MAKE ADR ON PAGE
  2829	001527'01  242 01 0 00 000002 		LSH T1,2		;MAKE PDP11 ADR IN LH
  2830	001530'01  270 01 0 10 000000 		ADD T1,PGUBAD(P1)	;MAKE ABSOLUTE PDP11 ADR
  2831	001531'01  541 01 0 00 000006 		HRRI T1,^D6		;BUFFER IS 6 BYTES LONG
  2832	001532'01  205 02 0 00 111400 		MOVSI T2,BDLLDS!BDLRSY!BDLSOM!BDLEOM ;COMPLETE MESSAGE
  2833	001533'01  623 01 0 00 400000 		TLZE T1,400000		;CHECK UNIBUS ADR
  2834	001534'01  661 02 0 00 004000 		TLO T2,004000		;PUT IN STATUS REG
  2835	001535'01  623 01 0 00 200000 		TLZE T1,200000		;CHECK UNIBUS ADR
  2836	001536'01  661 02 0 00 002000 		TLO T2,002000		;PUT IN STATUS REG
  2837	001537'01  124 01 0 03 000000 		DMOVEM T1,(T3)		;SAVE BUFFER DESCRIPTOR LIST
  2838
  2839	001540'01  242 02 0 00 777762 		LSH T2,4-^D18		;POSITION MEMORY EXTENSION BITS
  2840	001541'01  405 02 0 00 140000 		ANDI T2,140000		;LEAVE ONLY MEMORY EXTENSION BITS
  2841	001542'01  660 02 0 00 020000 		TRO T2,BFRENB		;SET ENABLE
  2842	001543'01  500 02 0 00 000001 		HLL T2,T1		;COPY BUFFER ADR
  2843	001544'01  274 02 0 00 002457'		SUB T2,[4*<PGXMS1-PGXBD1>,,0]	;POINT TO DESCRIPTOR
  2844	001545'01  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER
  2845	001546'01  242 01 0 00 000010 		LSH T1,^D8		;POSITION
  2846	001547'01  435 01 0 00 000000 		IORI T1,BFADIN		;TYPE OF COMMAND
  2847	001550'01  260 17 0 00 000137'		CALL KMCINP		;GIVE BUFFER DESCRIPTOR LIST TO KMC11
  2848	001551'01  254 00 0 00 001406*		RETSKP
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 69
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- CONTROL MESSAGE

  2849
  2850						SUBTTL	DDCMP TRANSMITTER -- DATA MESSAGES
  2851
  2852					;HERE TO CHECK POSSIBILITY OF SENDING A DATA MESSAGE
  2853					; CALLED AT INTERRUPT LEVEL OR WITH PIOFF
  2854	001552'01  554 01 0 13 000003 	XMTDAT:	HLRZ T1,PGDOMQ(P4)	;GET ADR OF FIRST MESSAGE IN QUEUE
  2855	001553'01  332 02 0 13 000005 		SKIPE T2,PGDLMX(P4)	;GET ADR OF LAST MESSAGE SENT
  2856	001554'01  554 01 0 02 000000 		HLRZ T1,MBKLNK(T2)	;GET ADR OF NEXT MESSAGE IN QUEUE
  2857	001555'01  322 01 0 00 001453'		JUMPE T1,XMTAK3		;IN CASE NONE TO SEND NOW
  2858	001556'01  135 03 0 00 002327'		LOAD T3,DDHMA		;GET HIGHEST MESSAGE NUMBER ACKED
  2859	001557'01  336 00 0 13 000005 		SKIPN PGDLMX(P4)	;IS THIS FIRST MSG ?
  2860	001560'01  254 00 0 00 001567'		JRST XMTDT2		;YES
  2861	001561'01  135 02 0 00 002430'		LOAD T2,DDHXM		;HIGHEST MESSAGE NUMBER SENT
  2862	001562'01  274 02 0 00 000003 		SUB T2,T3		;MAKE DIFFERENCE
  2863	001563'01  335 00 0 00 000002 		SKIPGE T2		;DID NUMBERS WRAP AROUND ?
  2864	001564'01  201 02 0 02 000400 		MOVEI T2,400(T2)	;YES SO ADJUST
  2865	001565'01  301 02 0 00 000010 		CAIL T2,MAXOUT		;DO WE HAVE ENOUGH MESSAGES IN PIPE ?
  2866	001566'01  254 00 0 00 001453'		JRST XMTAK3		;DON'T SEND TOO MANY
  2867	001567'01  201 04 0 10 000052 	XMTDT2:	MOVEI T4,PGXBD1(P1)	;ASSUME 1ST XMIT BUFFER DESCRIPTOR LIST
  2868	001570'01  332 00 1 00 000004 		SKIPE @T4		;IS IT FREE ?
  2869	001571'01  201 04 0 10 000216 		MOVEI T4,PGXBD2(P1)	;TRY 2ND XMIT BUFFER DESCRIPTOR LIST
  2870	001572'01  332 00 1 00 000004 		SKIPE @T4		;IS IT FREE ?
  2871	001573'01  263 17 0 00 000000 		RET			;WILL TRY AGAIN LATER
  2872	001574'01  205 16 0 00 000001 		SETZRO DDXAK		;DON'T NEED A EXPLICIT ACK NOW
  2873	001575'01  412 16 0 13 000002 
  2874	001576'01  554 11 0 01 000000 		HLRZ P2,MBKLNK(T1)	;GET LINK
  2875	001577'01  326 11 0 00 001616'		JUMPN P2,XMTDT4		;LAST MESSAGE
  2876	001600'01  550 02 0 13 000004 		HRRZ T2,PGOLST(P4)	;GET FORWARD STATION THREAD
  2877	001601'01  332 00 0 00 000002 		SKIPE T2		;IS THIS A RE-XMIT TO IDLE LINE?
  2878	001602'01  316 02 0 00 000013 		CAMN T2,P4		;IS THIS THE LAST MESSAGE FOR LINE?
  2879						JRST [SETZM PGLOUQ(P1)	;YES,MARK QUEUE EMPTY 
  2880	001603'01  254 00 0 00 002460'		      JRST XMTDT3]
  2881	001604'01  554 12 0 13 000004 		HLRZ P3,PGOLST(P4)	;GET BACK THREAD
  2882	001605'01  542 12 0 02 000004 		HRRM P3,PGOLST(T2)	;UPDATE FORWARD STATION
  2883	001606'01  506 02 0 12 000004 		HRLM T2,PGOLST(P3)	;UPDATE BACK STATION
  2884	001607'01  550 14 0 10 000004 		HRRZ P5,PGLOUQ(P1)	;GET HEAD OF QUEUE
  2885	001610'01  316 14 0 00 000013 		CAMN P5,P4		;WAS THIS THE HEAD
  2886	001611'01  542 02 0 10 000004 		HRRM T2,PGLOUQ(P1)	;YES,UPDATE IT
  2887	001612'01  554 14 0 10 000004 		HLRZ P5,PGLOUQ(P1)	;GET THE TAIL
  2888	001613'01  316 14 0 00 000013 		CAMN P5,P4		;WAS THIS THE TAIL?
  2889	001614'01  506 12 0 10 000004 		HRLM P3,PGLOUQ(P1)	;YES,UPDATE IT
  2890	001615'01  402 00 0 13 000004 	XMTDT3:	SETZM PGOLST(P4)	;CLEAR THE ENTRY
  2891	001616'01  336 00 0 13 000005 	XMTDT4:	SKIPN PGDLMX(P4)	;IS THIS FIRST MESSAGE IN QUEUE ?
  2892	001617'01  137 03 0 00 002430'		STOR T3,DDHXM		;1ST MSG IN QUEUE SO RESET MSG NUMBER
  2893	001620'01  552 01 0 13 000005 		HRRZM T1,PGDLMX(P4)	;REMEMBER ADR OF LAST MESSAGE SENT
  2894	001621'01  550 03 0 01 000002 		HRRZ T3,MBKLEN(T1)	;GET LENGTH (BYTES) OF MESSAGE
  2895	001622'01  550 02 0 00 000003 		HRRZ T2,T3		;COPY COUNT
  2896	001623'01  242 02 0 00 777770 		LSH T2,-^D8		;LEAVE HIGH ORDER BITS OF COUNT
  2897	001624'01  505 02 0 00 000201 		HRLI T2,SOH		;BEGIN DATAMESSAGE HEADER
  2898	001625'01  137 03 0 00 002452'		DPB T3,[POINT 8,T2,9]	;PUT REST OF COUNT IN
  2899	001626'01  135 03 0 00 002307'		LOAD T3,DDRMN		;HIGHEST MESSAGE NUMBER RECEIVED
  2900	001627'01  242 03 0 00 000010 		LSH T3,^D8		;POSITION
  2901	001630'01  434 02 0 00 000003 		IOR T2,T3		;BYTE(18)SOH+CNT*400,CNT+R*400
  2902	001631'01  135 11 0 00 002346'		LOAD P2,DDSEL		;GET SELECT FLAG
  2903						JUMPN P2,[ TRO T2,SELECT!QSYNC  ;YES,PUT IT IN MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 69-1
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- DATA MESSAGES

  2904							   SETZRO DDSEL   ;SENT IT NOW
  2905	001632'01  326 11 0 00 002462'			   JRST .+1 ]   ;CONTINUE
  2906	001633'01  202 02 0 04 000004 		MOVEM T2,PGXMS1-PGXBD1(T4) ;SAVE FIRST HALF OF MSG HEADER
  2907	001634'01  135 03 0 00 002430'		LOAD T3,DDHXM		;LAST MESSAGE SENT
  2908	001635'01  350 00 0 00 000003 		AOS T3			;MAKES NEW MSG NUMBER
  2909	001636'01  137 03 0 00 002430'		STOR T3,DDHXM		;REMEMER WE SENT IT
  2910	001637'01  135 02 0 00 002301'		LOAD T2,DDDRP		;GET DROP#
  2911	001640'01  137 02 0 00 002466'		DPB T2,[POINT 8,T3,27]	;ADD IT TO MESSAGE
  2912	001641'01  516 03 0 04 000005 		HRLZM T3,PGXMS1+1-PGXBD1(T4) ;SAVE REST OF MSG HEADER
  2913	001642'01  550 01 0 13 000005 		HRRZ T1,PGDLMX(P4)	;GET ADR OF MESSAGE BLOCK AGAIN
  2914	001643'01  550 02 0 01 000002 		HRRZ T2,MBKLEN(T1)	;GET LENGTH OF MESSAGE (BYTES)
  2915	001644'01  514 01 0 01 000000 		HRLZ T1,MBKLNK(T1)	;GET ADR OF MESSAGE
  2916	001645'01  541 01 0 04 000006 		HRRI T1,PGXMS1+2-PGXBD1(T4);?}HERE WERE GOING TO PUT MESSAGE
  2917	001646'01  201 02 0 02 000003 		MOVEI T2,3(T2)		;PREPARE TO ROUND
  2918	001647'01  242 02 0 00 777776 		LSH T2,-2		;CONVERT BYTES TO WORDS
  2919	001650'01  271 02 0 01 000000 		ADDI T2,(T1)		;LAST ADR IN MESSAGE
  2920	001651'01  251 01 0 02 000000 		BLT T1,(T2)		;COPY DATA
  2921
  2922	001652'01  515 01 0 04 000004 		HRLZI T1,PGXMS1-PGXBD1(T4) ;ADR OF BUFFER
  2923	001653'01  621 01 0 00 777000 		TLZ T1,777000		;MAKE RELATIVE TO START OF PAGE
  2924	001654'01  242 01 0 00 000002 		LSH T1,2		;MAKE IT A BYTE ADR
  2925	001655'01  270 01 0 10 000000 		ADD T1,PGUBAD(P1)	;MAKE AN 11 ADR
  2926	001656'01  541 01 0 00 000006 		HRRI T1,6		;BYTE COUNTE FOR HEADER
  2927	001657'01  205 02 0 00 011400 		MOVSI T2,BDLRSY!BDLEOM!BDLSOM	;FLAGS
  2928	001660'01  623 01 0 00 400000 		TLZE T1,400000		;CHECK UNIBUS ADR BITS
  2929	001661'01  661 02 0 00 004000 		TLO T2,004000		;INCLUDE IN STATUS
  2930	001662'01  623 01 0 00 200000 		TLZE T1,200000		;CHECK UNIBUS ADR BITS
  2931	001663'01  661 02 0 00 002000 		TLO T2,002000		;INCLUDE IN STATUS
  2932	001664'01  544 02 0 00 000001 		HLR T2,T1		;COPY ADR OF HEADER
  2933	001665'01  271 02 0 00 000010 		ADDI T2,10		;MAKES ADR OF DATA
  2934	001666'01  540 03 0 13 000005 		HRR T3,PGDLMX(P4)	;GET ADR OF MESSAGE AGAIN
  2935	001667'01  504 03 0 03 000002 		HRL T3,MBKLEN(T3)	;GET DATA COUNT
  2936	001670'01  544 03 0 00 000002 		HLR T3,T2		;COPY FLAGS
  2937	001671'01  620 03 0 00 010000 		TRZ T3,BDLRSY		;DON'T RESYNC
  2938	001672'01  660 03 0 00 100000 		TRO T3,BDLLDS		;LAST SEGMENT NOW
  2939	001673'01  124 01 0 04 000000 		DMOVEM T1,(T4)		;SAVE FIRST 2 WORDS OF BUFFER DESCRIPTOR LIST
  2940	001674'01  202 03 0 04 000002 		MOVEM T3,2(T4)		;SAVE SECOND BUFFER DESCRIPTOR
  2941
  2942	001675'01  242 02 0 00 777762 		LSH T2,4-^D18		;POSITION MEMORY EXTENSION BITS
  2943	001676'01  405 02 0 00 140000 		ANDI T2,140000		;LEAVE ONLY MEMORY EXTENSION BITS
  2944	001677'01  660 02 0 00 020000 		TRO T2,BFRENB		;SET ENABLE
  2945	001700'01  500 02 0 00 000001 		HLL T2,T1		;COPY BUFFER ADR
  2946	001701'01  274 02 0 00 002457'		SUB T2,[4*<PGXMS1-PGXBD1>,,0]	;POINT TO DESCRIPTOR
  2947	001702'01  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER
  2948	001703'01  242 01 0 00 000010 		LSH T1,^D8		;POSITION
  2949	001704'01  435 01 0 00 000000 		IORI T1,BFADIN		;TYPE OF COMMAND
  2950	001705'01  260 17 0 00 000137'		CALL KMCINP		;GIVE BUFFER DESCRIPTOR LIST TO KMC11
  2951	001706'01  263 17 0 00 000000 		RET			;DONE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 70
KDPSRV	MAC	30-Sep-80 14:34		DDCMP TRANSMITTER -- DATA MESSAGES

  2952
  2953						SUBTTL	HERE TO ENABLE RECEIVER
  2954
  2955					; CALL	MOVEI T3,PGRBD1(OR PGRBD2)(P1)
  2956	001707'01  476 00 0 03 000004 	RCVENB:	SETOM PGRMS1-PGRBD1(T3)	;DEBUGGIN AID
  2957	001710'01  476 00 0 03 000005 		SETOM PGRMS1+1-PGRBD1(T3) ;DITTO
  2958	001711'01  515 01 0 03 000004 		HRLZI T1,PGRMS1-PGRBD1(T3) ;ADR OF BUFFER
  2959	001712'01  621 01 0 00 777000 		TLZ T1,777000		;MAKE ADR RELATIVE TO PAGE
  2960	001713'01  242 01 0 00 000002 		LSH T1,2		;CONVERT TO BYTE ADR
  2961	001714'01  270 01 0 10 000000 		ADD T1,PGUBAD(P1)	;MAKES RIGHT UNIBUS ADDR
  2962	001715'01  541 01 0 00 000600 		HRRI T1,600		;LENGTH OF BUFFER
  2963	001716'01  205 02 0 00 100000 		MOVSI T2,BDLLDS
  2964	001717'01  623 01 0 00 400000 		TLZE T1,400000		;CHECK UNIBUS ADR
  2965	001720'01  661 02 0 00 004000 		TLO T2,004000		;PUT IN STATUS REG
  2966	001721'01  623 01 0 00 200000 		TLZE T1,200000		;CHECK UNIBUS ADR
  2967	001722'01  661 02 0 00 002000 		TLO T2,002000		;PUT IN STATUS REG
  2968	001723'01  124 01 0 03 000000 		DMOVEM T1,(T3)		;SAVE BUFFER DESCRIPTOR LIST
  2969
  2970	001724'01  242 02 0 00 777762 		LSH T2,4-^D18		;COPY BUFFER ADR BITS 17 & 16
  2971	001725'01  405 02 0 00 140000 		ANDI T2,140000		;STRIP EXTRA BITS
  2972	001726'01  435 02 0 00 020000 		IORI T2,BFRENB		;ENABLE BUFFER
  2973	001727'01  500 02 0 00 000001 		HLL T2,T1		;COPY BUFFER ADR
  2974	001730'01  274 02 0 00 002457'		SUB T2,[4*<PGRMS1-PGRBD1>,,0] ;MAKE ADR OF BUFFER DESCRIPTOR LIST
  2975	001731'01  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER
  2976	001732'01  242 01 0 00 000010 		LSH T1,^D8		;POSITION LINE NUMBER
  2977	001733'01  435 01 0 00 000004 		IORI T1,BFADIN!KMCIOT	;TYPE OF REQUEST
  2978	001734'01  260 17 0 00 000137'		CALL KMCINP		;GIVE THIS TO THE KMC11
  2979	001735'01  263 17 0 00 000000 		RET
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 71
KDPSRV	MAC	30-Sep-80 14:34		HERE TO ENABLE RECEIVER

  2980
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 72
KDPSRV	MAC	30-Sep-80 14:34		TRANSMIT MOP MESSAGE

  2981					SUBTTL	TRANSMIT MOP MESSAGE
  2982
  2983					;		T1/0,,line #
  2984					;		t2/byte pointer to buffer
  2985					;		t3/data length in bytes
  2986					;		F/0,,POST ROUTINE
  2987
  2988
  2989
  2990
  2991	001736'01			XMTMOP:				;
  2992	001736'01  542 00 0 10 000675 		HRRM	F,PGMXHD+1(P1)	;FOR INTERRUPT ROUTINES
  2993	001737'01  542 03 0 10 000676 		STOR	T3,MPBLEN	;SAVE THE BUFFER LENGTH
  2994	001740'01  201 04 0 10 000052 	XMTMP0:	MOVEI	T4,PGXBD1(P1)	;1ST SMIT BUFFER DESCRIPTOR LIST
  2995	001741'01  332 00 1 00 000004 		SKIPE	@T4		;IS IT FREE?
  2996	001742'01  201 04 0 10 000216 		MOVEI	T4,PGXBD2(P1)	;2ND XMIT BUFFER DESCRIPTOR LIST
  2997	001743'01  332 00 1 00 000004 		SKIPE	@T4		;IS IT FREE?
  2998	001744'01  263 17 0 00 000000 		 RET			;NO, LOSE. !!!THIS CANNOT HAPPEN FOR MOP!!!
  2999	001745'01  202 02 0 10 000674 		STOR	T2,MPBPTR	;STORE NOW THAT WE'RE REALLY GOING TO GO
  3000	001746'01  261 17 0 00 000002 		PUSH	P,T2		;SAVE T2
  3001	001747'01  550 02 0 00 000003 		HRRZ	T2,T3		;MOP MSG LENGTH IN BYTES
  3002	001750'01  242 02 0 00 777770 		LSH	T2,-^D8		;LEAVE ONLY HIGH ORDER BITS
  3003	001751'01  505 02 0 00 000220 		HRLI	T2,DLE		;PUT IN MAINTENANCE MSG ID
  3004	001752'01  137 03 0 00 002452'		DPB	T3,[POINT 8,T2,9] ;PUT IN LOWER ORDER 8 BITS OF COUNT
  3005	001753'01  660 02 0 00 000300 		TRO	T2,SELECT!QSYNC	;NECESSARY FOR MAINTENANCE MSGS.
  3006	001754'01  202 02 0 04 000004 		MOVEM	T2,PGXMS1-PGXBD1(T4) ;STORE 1ST HALF OF MSG HEADER
  3007	001755'01  400 02 0 00 000000 		SETZ	T2,		;
  3008	001756'01  135 02 0 00 002301'		LOAD	T2,DDDRP	;GET THE STATION ADDRESS
  3009	001757'01  242 02 0 00 000010 		LSH	T2,^D8		;POSITION TO RIGHT PLACE
  3010	001760'01  516 02 0 04 000005 		HRLZM	T2,PGXMS1+1-PGXBD1(T4) ;STORE REST OF HEADER IN MSG
  3011	001761'01  262 17 0 00 000001 		POP	P,T1
  3012	001762'01  517 00 0 00 000001 		HRLZS	T1		;GET ADDRESS IN LH
  3013	001763'01  541 01 0 04 000006 		HRRI	T1,PGXMS1+2-PGXBD1(T4) ;DATA PART OF MESSAGE GOES HERE
  3014	001764'01  201 02 0 03 000003 		MOVEI	T2,3(T3)	;BYTE COUNT ROUNDED UP
  3015	001765'01  242 02 0 00 777776 		LSH	T2,-2		;BYTES TO WORDS
  3016	001766'01  271 02 0 01 000000 		ADDI	T2,(T1)		;LAST ADDRESS FOR THE BLT
  3017	001767'01  251 01 0 02 000000 		BLT	T1,(T2)		;BLT THE DATA INTO MESSAGE
  3018	001770'01  515 01 0 04 000004 		HRLZI T1,PGXMS1-PGXBD1(T4) ;ADR OF BUFFER
  3019	001771'01  621 01 0 00 777000 		TLZ T1,777000		;MAKE RELATIVE TO START OF PAGE
  3020	001772'01  242 01 0 00 000002 		LSH T1,2		;MAKE IT A BYTE ADR
  3021	001773'01  270 01 0 10 000000 		ADD T1,PGUBAD(P1)	;MAKE AN 11 ADR
  3022	001774'01  541 01 0 00 000006 		HRRI T1,6		;BYTE COUNTE FOR HEADER
  3023	001775'01  205 02 0 00 011400 		MOVSI T2,BDLRSY!BDLEOM!BDLSOM	;FLAGS
  3024	001776'01  623 01 0 00 400000 		TLZE T1,400000		;CHECK UNIBUS ADR BITS
  3025	001777'01  661 02 0 00 004000 		TLO T2,004000		;INCLUDE IN STATUS
  3026	002000'01  623 01 0 00 200000 		TLZE T1,200000		;CHECK UNIBUS ADR BITS
  3027	002001'01  661 02 0 00 002000 		TLO T2,002000		;INCLUDE IN STATUS
  3028	002002'01  544 02 0 00 000001 		HLR T2,T1		;COPY ADR OF HEADER
  3029	002003'01  271 02 0 00 000010 		ADDI T2,10		;MAKES ADR OF DATA
  3030	002004'01  507 00 0 00 000003 		HRLS	T3		;GET BYTE COUNT IN LH
  3031	002005'01  544 03 0 00 000002 		HLR T3,T2		;COPY FLAGS
  3032	002006'01  620 03 0 00 010000 		TRZ T3,BDLRSY		;DON'T RESYNC
  3033	002007'01  660 03 0 00 100000 		TRO T3,BDLLDS		;LAST SEGMENT NOW
  3034	002010'01  124 01 0 04 000000 		DMOVEM T1,(T4)		;SAVE FIRST 2 WORDS OF BUFFER DESCRIPTOR LIST
  3035	002011'01  202 03 0 04 000002 		MOVEM T3,2(T4)		;SAVE SECOND BUFFER DESCRIPTOR
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 72-1
KDPSRV	MAC	30-Sep-80 14:34		TRANSMIT MOP MESSAGE

  3036
  3037	002012'01  242 02 0 00 777762 		LSH T2,4-^D18		;POSITION MEMORY EXTENSION BITS
  3038	002013'01  405 02 0 00 140000 		ANDI T2,140000		;LEAVE ONLY MEMORY EXTENSION BITS
  3039	002014'01  660 02 0 00 020000 		TRO T2,BFRENB		;SET ENABLE
  3040	002015'01  500 02 0 00 000001 		HLL T2,T1		;COPY BUFFER ADR
  3041	002016'01  274 02 0 00 002457'		SUB T2,[4*<PGXMS1-PGXBD1>,,0]	;POINT TO DESCRIPTOR
  3042	002017'01  550 01 0 10 000007 		HRRZ T1,PGKDPN(P1)	;COPY LINE NUMBER
  3043	002020'01  242 01 0 00 000010 		LSH T1,^D8		;POSITION
  3044	002021'01  435 01 0 00 000000 		IORI T1,BFADIN		;TYPE OF COMMAND
  3045	002022'01  260 17 0 00 000137'		CALL KMCINP		;GIVE BUFFER DESCRIPTOR LIST TO KMC11
  3046	002023'01  515 01 0 00 400000 		HRLZI	T1,MPERR	;RESET TIME-OUT ERROR FLAG
  3047	002024'01  412 01 0 10 000672 		ANDCAM	T1,PGMSTS(P1)
  3048	002025'01  201 01 0 00 000017 		MOVEI	T1,PRITMO	;SPECIAL TIMEOUT DURING PRIMARY STATE
  3049	002026'01  135 02 0 00 002467'		LOAD	T2,MOPSTS	;GET THE MOP STATUS
  3050	002027'01  302 02 0 00 000001 		CAIE	T2,MPPRI	;IF IN PRIMARY USE LONGER TIMEOUT
  3051	002030'01  201 01 0 00 000003 		MOVEI	T1,MOPTMO	;USE NORMAL TIMEOUT
  3052	002031'01  137 01 0 00 002470'		STOR	T1,MOPTMR	;START THE TIMER
  3053	002032'01  254 00 0 00 001551*		RETSKP			;DONE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 73
KDPSRV	MAC	30-Sep-80 14:34		RECEIVE A MOP MESSAGE

  3054					subttl	RECEIVE A MOP MESSAGE
  3055
  3056
  3057	002033'01			RCVMOP:
  3058	002033'01  135 01 0 00 002302'		LOAD	T1,DDSTA	;GET THE LINE STATUS
  3059	002034'01  302 01 0 00 000001 		CAIE	T1,STAMAI	;IS IT IN MAINTENANCE MODE?
  3060	002035'01  254 00 0 00 000762'		 JRST	RCVFLU		;NO, FLUSH AND IGNORE THE MESSAGE
  3061	002036'01  336 00 0 10 000674 		SKIPN	PGMXHD(P1)	;ARE WE EXPECTING THIS MESSAGE?
  3062	002037'01  254 00 0 00 000762'		 JRST	RCVFLU		;NO, IGNORE THE MESSAGE
  3063	002040'01  331 00 0 10 000672 		SKIPL	PGMSTS(P1)	;IGNORE INPUT IF ERROR ALREADY DETECTED
  3064	002041'01  332 00 0 10 000701 		SKIPE	PGMRHD(P1)	;IS THERE ALREADY A MSG BEING PROCESSED
  3065	002042'01  254 00 0 00 000762'		 JRST	RCVFLU		;YES, DON'T ACCEPT ANY MORE.
  3066	002043'01  200 01 0 11 000004 		MOVE T1,PGRMS1-PGRBD1(P2) ;GET DDCMP HEADER AGAIN
  3067	002044'01  241 01 0 00 000012 		ROT T1,^D8+2		;PUT LOW ORDER 8 BITS OF COUNT IN RH
  3068	002045'01  200 02 0 00 000001 		MOVE T2,T1		;COPY HIGH ORDER BITS
  3069	002046'01  405 01 0 00 000377 		ANDI T1,377		;LEAVE ONLY LOW ORDER BITS
  3070	002047'01  242 02 0 00 777776 		LSH T2,-2		;POSITION HIGH ORDER BITS
  3071	002050'01  405 02 0 00 037400 		ANDI T2,77*400		;STRIP EXTRA BITS
  3072	002051'01  437 01 0 00 000002 		IORB T1,T2		;LEAVES COUNT IN RH OF T1 & T2
  3073	002052'01  211 12 0 01 000000 		MOVNI P3,(T1)		;MAKE NEGATIVE COUNT AND PREPARE TO ROUND
  3074	002053'01  242 12 0 00 000020 		LSH P3,^D16		;ROUND TO NUMBER OF WORDS
  3075	002054'01  260 17 0 00 002103'		CALL MOPSPC		;GET SPACE FOR MOP MESSAGE
  3076	002055'01  254 00 0 00 000762'		 JRST RCVFLU 
  3077	002056'01  261 17 0 00 000001 		PUSH	P,T1		;SAVE ADDRESS OF BUFFER
  3078	002057'01  541 12 0 11 000005 		HRRI P3,PGRMS1+1-PGRBD1(P2) ;FINISH AOBJN POINTER TO INPUT
  3079	002060'01  551 14 0 01 777777 		HRRZI	P5,-1(T1)	;WHERE TO PUT SHUFFLED MESSAGE
  3080	002061'01  514 01 0 12 000000 	RCVMP3:	HRLZ T1,(P3)		;GET NEXT 16 BITS TO COPY
  3081	002062'01  554 02 0 12 000001 		HLRZ T2,1(P3)		;GET NEXT 16 BITS TO COPY
  3082	002063'01  120 03 0 00 000001 		DMOVE T3,T1		;GET ANOTHER COPY OF EACH
  3083	002064'01  242 01 0 00 000012 		LSH T1,2+^D8		;LEAVE ONLY FIRST BYTE
  3084	002065'01  621 03 0 00 600377 		TLZ T3,600377		;STRIP BITS FROM 2ND BYTE
  3085	002066'01  242 03 0 00 777772 		LSH T3,2-^D8		;POSITION BYTE
  3086	002067'01  434 01 0 00 000003 		IOR T1,T3		;INCLUDE WITH FIRST
  3087	002070'01  405 02 0 00 000377 		ANDI T2,377		;STRIP EXTRA BITS FROM FIRST BYTE
  3088	002071'01  242 02 0 00 000014 		LSH T2,4+^D8		;POSITION
  3089	002072'01  434 01 0 00 000002 		IOR T1,T2		;INCLUDE 3RD BYTE WITH 1ST AND 2ND
  3090	002073'01  405 04 0 00 177400 		ANDI T4,377*400		;STRIP EXTRA BITS FROM 4TH BYTE
  3091	002074'01  242 04 0 00 777774 		LSH T4,4-^D8		;POSITION 4TH BYTE
  3092	002075'01  434 01 0 00 000004 		IOR T1,T4		;INCLUDE WITH 1ST 3 BYTES
  3093	002076'01  261 14 0 00 000001 		PUSH	P5,T1		;SHUFFLED WORD
  3094	002077'01  253 12 0 00 002061'		AOBJN P3,RCVMP3		;LOOP BACK FOR REST OF MESSAGE
  3095	002100'01  262 17 0 00 000011 		POP	P,P2		;GET BUFFER ADDRESS BACK
  3096	002101'01  260 17 0 00 002117'		CALL MOPPST		; POST
  3097	002102'01  254 00 0 00 000762'		JRST	RCVFLU		;THEN FLUSH THE MESSAGE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 74
KDPSRV	MAC	30-Sep-80 14:34		MOP INTERFACE SERVICE ROUTINES

  3098					SUBTTL	MOP INTERFACE SERVICE ROUTINES
  3099
  3100	002103'01  542 02 0 10 000702 	MOPSPC:	STOR	T2,MPRLEN	;STORE LENGTH OF MESSAGE
  3101	002104'01  201 01 0 02 000003 		MOVEI	T1,3(T2)	;PREPARE TO ROUND
  3102	002105'01  242 01 0 00 777776 		LSH	T1,-2
  3103	002106'01  505 01 0 00 000415*		HRLI	T1,.RESP1	;PRIORITY 1
  3104	002107'01  200 02 0 00 002471'		MOVE	T2,[RS%SE0+.RESNP] ;GET FROM NET POOL
  3105	002110'01  260 17 0 00 001156*		CALL ASGRES
  3106	002111'01  263 17 0 00 000000 		 RET			;CAN'T
  3107	002112'01  505 01 0 00 441000 		HRLI	T1,(<POINT 8,>)	;MAKE A POINTER
  3108	002113'01  202 01 0 10 000701 		STOR	T1,MPRPTR	; SAVE IN DATABASE
  3109	002114'01  254 00 0 00 002032*		RETSKP			;ADDRESS OF BUFFER IN T1
  3110
  3111	002115'01  552 11 0 10 000003 	MOPQ:	HRRZM	P2,PGLINQ(P1)	;PUT INTO QUEUE
  3112	002116'01  254 00 0 00 002114*		RETSKP
  3113
  3114	002117'01  201 01 0 00 000000 	MOPPST:	MOVEI	T1,0		;RESET TIMER SO THAT
  3115	002120'01  137 01 0 00 002470'		STOR	T1,MOPTMR	;TIMEOUT WILL NOT OCCUR
  3116	002121'01  260 17 0 00 002130'		CALL	RLXMOP		;RELEASE TRANSMIT BUFFER
  3117	002122'01  550 03 0 10 000675 		LOAD	T3,MPPOST		;GET POST ROUTINES ADDRESS
  3118	002123'01  336 00 0 00 000003 		SKIPN	T3		;IS THERE A SPECIAL POST ROUTINE?
  3119	002124'01  263 17 0 00 000000 		RET			;NO
  3120	002125'01  260 17 0 03 000000 		CALL	(T3)		;CALL THE POST ROUTINE
  3121						 JRST	[HRLZI	T1,MPERR	;INDICATE TO JSYS LEVEL AN ERROR
  3122							 IORM	T1,PGMSTS(P1)
  3123	002126'01  254 00 0 00 002472'			 JRST	.+1	]
  3124	002127'01  263 17 0 00 000000 		RET
  3125
  3126					;ROUTINE TO RELEASE A RESIDENT BUFFER FOR XMITTING OF MOP MSGS
  3127	002130'01  201 01 0 00 000000 	RLXMOP:	MOVEI	T1,0
  3128	002131'01  250 01 0 10 000674 		EXCH	T1,PGMXHD(P1)	;NO LONGER EXPECTING INPUT
  3129	002132'01  322 01 0 00 001332*		JUMPE	T1,R		;RETURN IF NONE
  3130	002133'01  553 00 0 00 000001 		HRRZS	T1		;FOR RELRES
  3131	002134'01  554 02 0 10 000675 		LOAD	T2,MPFLGS	;GET FLAGS
  3132	002135'01  606 02 0 00 000001 		TRNN	T2,MPSHRT	;SHORT MESSAGE?
  3133	002136'01  260 17 0 00 000611*		CALL	RELRES		;RELEASE THE RESIDENT BUFFER
  3134	002137'01  263 17 0 00 000000 		RET
  3135					;ROUTINE TO RELEASE A RESIDENT BUFFER FOR RECV OF MOP MSGS
  3136	002140'01  700 14 0 00 000400 	RELMOP:	PIOFF
  3137	002141'01  201 01 0 00 000000 		MOVEI	T1,0
  3138	002142'01  250 01 0 10 000701 		EXCH	T1,PGMRHD(P1)	;ZERO POINTER TO BUFFER
  3139	002143'01  553 00 0 00 000001 		HRRZS	T1		;FOR RELRES
  3140	002144'01  332 00 0 00 000001 		SKIPE	T1		;NOTHING TO RELEASE
  3141	002145'01  260 17 0 00 002136*		CALL RELRES		;NO, RELEASE RESIDENT BUFFER
  3142	002146'01  700 14 0 00 000200 		PION
  3143	002147'01  263 17 0 00 000000 		RET
  3144					;ONCE-A-SECOND ROUTINE FOR MOP
  3145
  3146	002150'01			MOPSEC:
  3147	002150'01  135 01 0 00 002470'		LOAD	T1,MOPTMR
  3148	002151'01  322 01 0 00 002132*		JUMPE	T1,R		;TIMER NOT RUNNING; DON'T UPDATE
  3149	002152'01  370 00 0 00 000001 		SOS	T1		;COUNT DOWN MOP TIMES
  3150	002153'01  137 01 0 00 002470'		STOR	T1,MOPTMR	;PUT BACK UPDATED
  3151	002154'01  332 00 0 00 000001 		SKIPE	T1		;HAVE WE TIMED OUT?
  3152	002155'01  263 17 0 00 000000 		RET			;NO, DON'T DO ANYTHING MORE
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 74-1
KDPSRV	MAC	30-Sep-80 14:34		MOP INTERFACE SERVICE ROUTINES

  3153	002156'01  515 01 0 00 400000 		HRLZI	T1,MPERR	;INDICATE A TIME-OUT ERROR
  3154	002157'01  436 01 0 10 000672 		IORM	T1,PGMSTS(P1)	;IN STATUS WORD
  3155	002160'01  260 17 0 00 002130'		CALL	RLXMOP		;RELEASE BUFFER SINCE NO LONGER EXPECT INPUT
  3156	002161'01  263 17 0 00 000000 		RET
  3157
  3158					;SCHEDULER TEST TO SEE IF SOME MOP INPUT HAS COME IN
  3159
  3160	002162'01  332 00 0 01 000701 	MPRTST:	SKIPE	PGMRHD(T1)
  3161	002163'01  254 00 0 04 000001 		JRST	1(4)		;THERE IS ONE
  3162	002164'01  200 01 0 01 000672 		MOVE	T1,PGMSTS(T1)	;CHECK ERROR STATUS
  3163	002165'01  603 01 0 00 400000 		TLNE	T1,MPERR	;TEST FOR TIMEOUT
  3164	002166'01  254 00 0 04 000001 		JRST	1(4)		;THERE IS AN ERROR, RE-SCHEDULE PROCESS
  3165	002167'01  254 00 0 04 000000 		JRST	0(4)		;THERE IS NEITHER INPUT NOR ERROR CONDITION
  3166	002170'01			MOPDNE:
  3167	002170'01  201 01 0 00 000017 		MOVEI	T1,PRITMO	;SPECIAL TIMEOUT DURING PRIMARY STAT
  3168	002171'01  135 02 0 00 002467'		LOAD	T2,MOPSTS	;GET THE MOP STATUS
  3169	002172'01  302 02 0 00 000001 		CAIE	T2,MPPRI	;IF IN PRIMARY USE LONGER TIMEOUT
  3170	002173'01  201 01 0 00 000003 		MOVEI	T1,MOPTMO	;TIME-OUT PERIOD
  3171	002174'01  137 01 0 00 002470'		STOR	T1,MOPTMR	;START COUNT-DOWN
  3172	002175'01  254 00 0 00 001123'		JRST	KMVCB9
  3173					;ROUTINE TO SHUFFLE THE DATA FOR THE KMC
  3174
  3175					;INPUTS ARE:
  3176					;		T2/BYTE POINTER TO THE DATA
  3177					;		T3/ NUMBER OF BYTES IN THE BUFFER
  3178
  3179	002176'01			SECSHF:
  3180	002176'01  261 17 0 00 000003 		PUSH	P,T3		;PRESERVE T3
  3181	002177'01  211 04 0 03 000000 		MOVNI	T4,(T3)		;NEGATE AND PREPARE FOR ROUNDING
  3182	002200'01  242 04 0 00 000020 		LSH	T4,^D16		;ROUND AND PUT IN LH OF REG
  3183	002201'01  540 04 0 00 000002 		HRR	T4,T2		;GET ADR OF MESSAGE
  3184	002202'01  261 17 0 00 000002 		PUSH	P,T2		;SAVE ADDRESS OF MESSAGE
  3185	002203'01  200 12 0 00 000002 		MOVE	P3,T2		;GET BYTE POINTER
  3186	002204'01  241 12 0 00 000006 		ROT	P3,6		;POSITION POSITION FIELD
  3187	002205'01  405 12 0 00 000077 		ANDI	P3,77		;GET POSITION OF 1ST BYTE IN WORD
  3188	002206'01  213 00 0 00 000012 		MOVNS	P3		;MAKE NEGATIVE
  3189	
  3190	002207'01  200 01 0 04 000000 	SECSH0:	MOVE	T1,(T4)		;GET NEXT WORD FROM BUFFER
  3191	002210'01  200 02 0 04 000001 		MOVE	T2,1(T4)	;AND NEXT
  3192	002211'01  242 01 0 12 000044 		LSH	T1,^D36(P3)	;POSITION
  3193	002212'01  242 02 0 12 000004 		LSH	T2,4(P3)	;POSITION
  3194	002213'01  434 01 0 00 000002 		IOR	T1,T2		;AND COMBINE
  3195	002214'01  200 02 0 00 000001 		MOVE T2,T1		;COPY BYTES
  3196	002215'01  242 01 0 00 777754 		LSH	T1,-^D20	;POSITION
  3197	002216'01  242 02 0 00 777774 		LSH	T2,-4		;POSITION
  3198	002217'01  405 01 0 00 177777 		ANDI	T1,177777
  3199	002220'01  405 02 0 00 177777 		ANDI	T2,177777
  3200	002221'01  207 00 0 00 000001 		MOVSS	T1
  3201	002222'01  434 01 0 00 000002 		IOR	T1,T2
  3202	002223'01  202 01 0 04 000000 		MOVEM T1,(T4)		;SAVE SHUFFLED WORD
  3203	002224'01  253 04 0 00 002207'		AOBJN T4,SECSH0		;LOOP BACK FOR REST OF DATA
  3204	002225'01  262 17 0 00 000002 		POP	P,T2		;RESTORE T2
  3205	002226'01  262 17 0 00 000003 		POP	P,T3
  3206	002227'01  263 17 0 00 000000 		RET
  3207	002230'01			SHFFLE:
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page 74-2
KDPSRV	MAC	30-Sep-80 14:34		MOP INTERFACE SERVICE ROUTINES

  3208	002230'01  261 17 0 00 000003 		PUSH	P,T3		;PRESERVE T3
  3209	002231'01  211 04 0 03 000000 		MOVNI	T4,(T3)		;NEGATE AND PREPARE FOR ROUNDING
  3210	002232'01  242 04 0 00 000020 		LSH	T4,^D16		;ROUND AND PUT IN LH OF REG
  3211	002233'01  540 04 0 00 000002 		HRR	T4,T2		;GET ADR OF MESSAGE
  3212	002234'01  261 17 0 00 000002 		PUSH	P,T2		;SAVE ADDRESS OF MESSAGE
  3213	002235'01  200 01 0 04 000000 	SHFFL0:	MOVE T1,(T4)		;GET NEXT 4 BYTES
  3214	002236'01  200 02 0 00 000001 		MOVE T2,T1		;COPY BYTES
  3215	002237'01  200 03 0 00 000001 		MOVE T3,T1		;COPY AGAIN
  3216	002240'01  242 01 0 00 777766 		LSH T1,-2-^D8		;POSITION BYTE 1
  3217	002241'01  242 02 0 00 000006 		LSH T2,-2+^D8		;POSITION BYTE 2
  3218	002242'01  621 02 0 00 600377 		TLZ T2,600377		;STRIP EXTRA BITS
  3219	002243'01  434 01 0 00 000002 		IOR T1,T2		;INCLUDE WITH BYTE 1
  3220	002244'01  242 03 0 00 777764 		LSH T3,-4-^D8		;POSITION BYTE 3
  3221	002245'01  405 03 0 00 000377 		ANDI T3,377
  3222	002246'01  540 01 0 00 000003 		HRR T1,T3		;INCLUDE BYTE 3 WITH 1ST AND 2ND
  3223	002247'01  242 02 0 00 777776 		LSH T2,-2		;POSITION BYTE 4
  3224	002250'01  405 02 0 00 177400 		ANDI T2,377*400		;MASK OFF EXTRA BITS
  3225	002251'01  434 01 0 00 000002 		IOR T1,T2		;INCLUDE WITH FIRST 3 BYTES
  3226	002252'01  202 01 0 04 000000 		MOVEM T1,(T4)		;SAVE SHUFFLED WORD
  3227	002253'01  253 04 0 00 002235'		AOBJN T4,SHFFL0		;LOOP BACK FOR REST OF DATA
  3228	002254'01  262 17 0 00 000002 		POP	P,T2
  3229	002255'01  262 17 0 00 000003 		POP	P,T3
  3230	002256'01  263 17 0 00 000000 		RET
  3231
  3232						TNXEND
  3233						END

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
PSECT 1 BREAK IS 002475 FOR  RSCOD 
PSECT 2 BREAK IS 002721 FOR  NRCOD 
PSECT 3 BREAK IS 000076 FOR  BGSTR 
PSECT 4 BREAK IS 000017 FOR  BGPTR 
CPU TIME USED 00:52.400

175P CORE USED
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page S-1
KDPSRV	MAC	30-Sep-80 14:34		SYMBOL TABLE

APRCHN		000003	sin	R		000000	ext	.SAC		000016	sin	
ARGX02		601713	int	RDIO	712000	000000	int	.SAV1		000000	ext	
ARGX19		602033	int	RET	263740	000000	int	.SAV2		000000	ext	
BCIO	715000	000000	int	RS%SE0	400000	000000	sin	.SAV3		000000	ext	
BOOT	104000	000562	int	RSCOD		000000	ext	.VNCBL		000005	sin	
BSIO	714000	000000	int	RSKP		000000	ext	.VNCNL		000004	sin	
BT%CVE	400000	000000	sin	SC%MNT		040000	sin	.VNDDC		000002	sin	
BT%DVE	200000	000000	sin	SC%OPR		200000	sin	.VNMOP		000003	sin	
BT%RVE	100000	000000	sin	SC%WHL		400000	sin	.XSTKS		000000	ext	
BUGMXR		000004	sin	SPTDSW		000000	sin	
CALL	260740	000000	int	SWPERR	200000	000000	sin	
CALLRE	254000	000000	sin	T1		000001	int	
CAPX2		601231	int	T2		000002	int	
CKPSIZ		000100	sin	T3		000003	int	
CX		000016	int	T4		000004	int	
DEVX5		601744	int	UNBVBT		040000	sin	
ERJMP	320700	000000	int	WRIO	713000	000000	int	
F		000000	int	XBLTMU	256200	000000	sin	
HB%1OK	200000	000000	sin	XBLTUM	256040	000000	int	
HB%2OK	100000	000000	sin	XCTBU	256140	000000	int	
HB%HBM	040000	000000	sin	XCTU	256200	000000	int	
HB%MUN	020000	000000	sin	XJEN	254300	000000	int	
HB%PUB	400000	000000	sin	XPCW	254340	000000	int	
HB%WLK	010000	000000	sin	$KDPSR		000000	sen	
IOX5		600221	int	.A16		000016	spd	
JSFRST		777777	sin	.BTCNT		000004	sin	
KDPX01		602206	int	.BTCOD		000001	sin	
KMCADR	000003	760540	sin	.BTKCC		000002	sin	
KMCUBN		000003	sin	.BTKCP		000003	sin	
KMCVEC		000540	sin	.BTKDC		000004	sin	
MAXLC		000047	sin	.BTKDP		000005	sin	
MAXLW		000010	sin	.BTKER		000001	sin	
NOSTR		777777	spd	.BTKMC		000000	sin	
NRCOD		000000	ext	.BTKML		000011	sin	
NUMVAL		000005	sin	.BTKRC		000006	sin	
OURTTL	534460	636266	spd	.BTKRP		000007	sin	
P		000017	int	.BTKSA		000010	sin	
P1		000010	int	.BTLEN		000002	sin	
P2		000011	int	.BTLID		000001	sin	
P3		000012	int	.BTLPT		000005	sin	
P4		000013	int	.BTMPT		000005	sin	
P5		000014	int	.BTMSG		000001	sin	
PI		000004	sin	.BTPRI		000001	sin	
PIOFF	700600	000400	int	.BTPRT		000000	sin	
PION	700600	000200	int	.BTPRV		000001	sin	
PIPIIP		077400	sin	.BTRCC		000004	sin	
PSASN		000010	sin	.BTROM		000000	sin	
PSDEL		000001	sin	.BTSCC		000002	sin	
PSRDN		000002	sin	.BTSEC		000002	sin	
PSRIP		000006	sin	.BTTCC		000006	sin	
PSRPQ		000000	sin	.BTZTM		000001	sin	
PSWIP		000004	sin	.ENTER		000000	ext	
Q1		000005	int	.FP		000015	spd	
Q2		000006	int	.FPAC		000005	spd	
Q3		000007	int	.JBHSO		000075	sin	
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page S-2
KDPSRV	MAC	30-Sep-80 14:34		SYMBOL TABLE FOR PSECT   RSCOD 

A0		000001	spd	DCNMSO		001126'	int	DSRLST		002363'	int	KMCRDO		000200	spd	
ACK		000001	spd	DCPINI		000460'		DUPADR	000003	760300	spd	KMCRMI		001000	spd	
ACKMSG		000000'		DCPL		000001	spd	DUPDSR	000020	000000	spd	KMCRMO		002000	spd	
ALUBWA		000000	ext	DCPPST		000443'		DUPUBN		000003	spd	KMCRQI		000200	spd	
ASGRES		002110'	ext	DCPQ		000432'		EDMS0		002403'	ext	KMCRUN		100000	spd	
BADHDR		002303'	int	DCPQ1		000433'		ENQ		000005	spd	KMCSLU		010000	spd	
BASEIN		000003	spd	DCPQ2		000440'		FILL		000000	spd	KMCSUP		000400	spd	
BDLEOM		001000	spd	DCPSPC		000405'		FLUBFR		001107'		KMCTYP		000003	spd	
BDLLDS		100000	spd	DDACI	020000	000000	spd	FORKX		000000	ext	KMCVCA		000157'		
BDLRSY		010000	spd	DDBAK	777777	000000	spd	FTRACE	777777	777777	spd	KMCVCB		000222'		
BDLSOM		000400	spd	DDCSTR		002335'	int	GTNXT		001336'		KMHLT2		000106'		
BFADIN		000000	spd	DDCTIM		002446'	int	GTNXT1		001340'		KMHLT3		000117'		
BFADOU		000000	spd	DDDRP	000377	000000	spd	GTNXT2		001360'		KMVCB9		001123'		
BFRENB		020000	spd	DDHMA	000003	770000	spd	GTNXT3		001366'		LINSR		000003	spd	
BFREOM		010000	spd	DDHXM	001774	000000	spd	GTNXT4		001403'		LKDPSR		002257'		
BFRKIL		010000	spd	DDINP		000174	spd	IDLE		000226	spd	MAXIN		000050	spd	
BGCCHK		002370'	ext	DDINT		000200	spd	INDCNT		000001	spd	MAXOUT		000010	spd	
BGCINF		002446'	ext	DDIPC	777777	000000	spd	INDLNK		000000	spd	MAXSTR		000010	spd	
BGPTR		000000	ext	DDLMX		000377	spd	INSKED		002375'	ext	MBKCOD		000001	spd	
BGSTR		000000	ext	DDLNK		777777	spd	INSTA		000034'		MBKFRE		000003	spd	
BLKSIZ		000031		DDLSZ		000042	spd	INSTA1		000047'		MBKLEN		000002	spd	
BSEL0		000000	spd	DDNCD	000374	000000	spd	INTDF		000000	ext	MBKLNK		000000	spd	
BSEL1		000001	spd	DDOWN		000002	spd	INTDFF		000000	ext	MONCLR		000271'	ext	
BSEL2		000002	spd	DDPT		000003	spd	ITRAP1		000000	ext	MOPDNE		002170'		
BSEL3		000003	spd	DDREPC		007777	spd	KDPCHK		001247'	int	MOPPST		002117'		
BSEL4		000004	spd	DDRMN	776000	000000	spd	KDPFLG		002444'	ext	MOPQ		002115'		
BSEL5		000005	spd	DDSEL	010000	000000	spd	KDPLIM		001252'	ext	MOPSEC		002150'		
BSEL6		000006	spd	DDSF		000004	spd	KDPN		000000	ext	MOPSPC		002103'		
BSEL7		000007	spd	DDSFC	740000	000000	spd	KDPNLN		001130'	ext	MOPSTS		000003	spd	
BUGHLT		002265'	ext	DDSPC		777777	spd	KDPPAG		001255'	ext	MOPTMO		000003	spd	
BUMHDR		000313'		DDSSP	000017	000000	spd	KDPQ		000403'		MOPTMR	007777	000000	spd	
CAPENB		000000	ext	DDSTA		000007	spd	KDPSPC		000401'		MPBADR		777777	spd	
CDDCMP		100000	spd	DDSTB	777777	000000	spd	KDPTIM		001251'	ext	MPBLEN		777777	spd	
CENABL		000400	spd	DDSTIC		000002	spd	KDPXPC		000221'	ext	MPBPTR	777777	777777	spd	
CHALFD		020000	spd	DDSTT		777777	spd	KMCACS		001123'	ext	MPERR		400000		
CNTL10		001054'		DDTIM		001770	spd	KMCCWR		020000	spd	MPFLGS	777777	000000	spd	
CNTL12		001056'		DDUP		000001	spd	KMCFST		002272'	int	MPPOST		777777	spd	
CNTL16		001062'		DDXAK	000001	000000	spd	KMCHK0		001254'		MPPRI		000001	spd	
CNTL20		001100'		DDXRP	000400	000000	spd	KMCHK2		001274'		MPRADR		777777	spd	
CNTL22		001103'		DEDDCP		000460'		KMCHK3		001300'		MPRLEN		777777	spd	
CNTL24		001105'		DEDLIN		000707'		KMCHLT		000102'	int	MPRPTR	777777	777777	spd	
CNTLIN		000001	spd	DEDLN2		000716'		KMCIEI		000001	spd	MPRTST		002162'		
CNTLO3		001037'		DEDLN8		000737'		KMCIEO		000020	spd	MPSEC		000002	spd	
CNTLOU		000001	spd	DEDMCB		000000	ext	KMCIII		002265'	int	MPSHRT		000001		
CNTRLO		001032'		DLE		000220	spd	KMCINP		000137'		MPSPRQ		000000	spd	
COUERR		000377	spd	DPCBLP		004000	spd	KMCINQ		000176'	ext	MPXSEC		000002		
CRAMSZ		002000	spd	DPCNLP		010000	spd	KMCIOT		000004	spd	MRETN		000000	ext	
CSRMSK		017770	spd	DPDTR		000002	spd	KMCLUL		004000	spd	MSGCLB		002343'	int	
DCHNG	007000	000000	spd	DPMAIN		014000	spd	KMCMCL		040000	spd	MSGPTR		002370'	int	
DCNMS1		001152'		DPPCSR		000002	spd	KMCNTI		002263'	int	MSHDR		000002	spd	
DCNMS2		001163'		DPRCSR		000000	spd	KMCNXM		002366'	int	MSNMAX		000377	spd	
DCNMS4		001170'		DPRDBF		000002	spd	KMCPAG		000103'	ext	NAK		000002	spd	
DCNMS5		001224'		DPTCSR		000004	spd	KMCPDL		000225'	ext	NAKMSG		000002'		
DCNMS6		001225'		DPTDBF		000006	spd	KMCQLN		000000	ext	NAKTBL		000012'		
DCNMSA		001212'		DRAMSZ		002000	spd	KMCRDI		000020	spd	NCDBCC		000002	spd	
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page S-3
KDPSRV	MAC	30-Sep-80 14:34		SYMBOL TABLE FOR PSECT   RSCOD 

NCDBTU		000010	spd	PGXBD2		000216	spd	SELECT		000200	spd	$DDSTA	000013	000002	spd	
NCDHBC		000001	spd	PGXMCN		000024	spd	SELSTA		001310'		$DDSTB	000010	000001	spd	
NCDHFE		000021	spd	PGXMS1		000056	spd	SHFFL0		002235'		$DDSTT	000010	000001	spd	
NCDMTL		000020	spd	PGXMS2		000222	spd	SHFFLE		002230'		$DDTIM	000013	000002	spd	
NCDREP		000003	spd	PGZTIM		000011	spd	SMTEPT		000000	ext	$DDXAK	000013	000002	spd	
NCDROV		000011	spd	PRITMO		000017	spd	SOH		000201	spd	$DDXRP	000013	000002	spd	
NODINI		000000	ext	PROFLG		000000	ext	SPCTST		001244'		$DRVCO	000017	777775	spd	
NRCOD		000000	ext	PSIRQ		002425'	ext	STACK		000007	spd	$DRVFL	000017	777773	spd	
NSKED		002377'	ext	QSYNC		000100	spd	STADWN		000000	spd	$DRVLE	000017	777774	spd	
NSPL		000000	spd	R		002151'	ext	STAMAI		000001	spd	$DRVMS	000017	777776	spd	
NSPQ		000403'	ext	RCVACK		000507'		STARUN		000004	spd	$LINSR	000010	000005	spd	
NSPSPC		000401'	ext	RCVAK0		000515'		STASTK		000003	spd	$MOPST	000010	000672	spd	
NXTSTA		000126'		RCVAK2		000525'		STASTR		000002	spd	$MOPTM	000010	000672	spd	
PGCOCN		000013	spd	RCVAK3		000530'		STCKMS		000010'		$MPBLE	000010	000676	spd	
PGCOXX		000023	spd	RCVAK4		000577'		STRT		000006	spd	$MPBPT	000010	000674	spd	
PGCSTA		000002	spd	RCVAK5		000600'		STRTMS		000006'		$MPFLG	000010	000675	spd	
PGDADR		000001	spd	RCVAK6		000545'		SYN		000226	spd	$MPPOS	000010	000675	spd	
PGDLMX		000005	spd	RCVCTL		000473'		TIMDSP		001303'		$MPRLE	000010	000702	spd	
PGDLNK		000000	spd	RCVDAT		000320'		TIMREP		000003	spd	$MPRPT	000010	000701	spd	
PGDMNM		000007	spd	RCVDT3		000351'		TIMSTR		000005	spd	..ACT		000000	spd	
PGDOMQ		000003	spd	RCVENB		001707'		UBGOOD		000000	ext	..CSC		000004	spd	
PGDPRI		000010	spd	RCVFLU		000762'		XMTACK		001447'		..CSN		000003	spd	
PGDSTS		000002	spd	RCVKRD		000760'		XMTAK3		001453'		..IFT		000000	spd	
PGFCOR		000006	spd	RCVMOP		002033'		XMTAK4		001460'		..MX1	010000	000000	spd	
PGKDPN		000007	spd	RCVMP3		002061'		XMTCTL		001513'		..MX2		000001	spd	
PGKMCR		000046	spd	RCVNAK		000614'		XMTDAT		001552'		..NRGS		000001	spd	
PGLACK		000050	spd	RCVNK0		000622'		XMTDN5		000777'		..NS		000001	spd	
PGLCOC		000012	spd	RCVNK3		000625'		XMTDN6		001001'		..PST		000003	spd	
PGLINQ		000003	spd	RCVREP		000640'		XMTDNE		000772'		..STKN		000004	spd	
PGLINT		000006	spd	RCVRP0		000646'		XMTDT2		001567'		..STKQ		000005	spd	
PGLOUQ		000004	spd	RCVRP3		000655'		XMTDT3		001615'		..STKR		000010	spd	
PGLRNK		000022	spd	RCVSTK		000746'		XMTDT4		001616'		..TSA1	000013	000002	spd	
PGLSTS		000005	spd	RCVSTR		000660'		XMTMOP		001736'		..TX1	200000	000000	spd	
PGLTIM		000011	spd	RELMOP		002140'		XMTMP0		001740'		..TX2		000001	spd	
PGLXNK		000032	spd	RELRES		002145'	ext	XMTNAK		001474'		.BTPSW		000001	spd	
PGMPSW		000673	spd	REM1		000067'		XSTART		001407'		.MPDMC		000014	spd	
PGMRHD		000701	spd	REMSTA		000055'		$DCHNG	000013	000002	spd	.MPLDT		000000	spd	
PGMSTS		000672	spd	REP		000003	spd	$DCPLE	000017	777776	spd	.MPMOP		000006	spd	
PGMXBF		000677	spd	REPCHK		001417'		$DDACI	000013	000002	spd	.MPRQD		000004	spd	
PGMXHD		000674	spd	REPHGH		001441'		$DDBAK	000013	000000	spd	.MPRQP		000010	spd	
PGNRNK		000025	spd	REPMAX		000010	spd	$DDDRP	000013	000001	spd	.RESNP		000000	ext	
PGNXNK		000036	spd	REPMSG		000004'		$DDHMA	000013	000007	spd	.RESP1		002106'	ext	
PGOLST		000004	spd	RESAK		000005	spd	$DDHXM	000013	000007	spd	.XSTKS		001132'	ext	
PGRBD1		000362	spd	RLXMOP		002130'		$DDINP	000010	000005	spd	
PGRBD2		000526	spd	RSCOD		000000	ext	$DDINT	000010	000005	spd	
PGRMCN		000035	spd	RSKP		002262'	ext	$DDIPC	000013	000010	spd	
PGRMS1		000366	spd	RSTCK0		000754'		$DDLMX	000013	000001	spd	
PGRMS2		000532	spd	RSTRT0		000666'		$DDLNK	000013	000000	spd	
PGSTAL		000001	spd	RSTRT3		000672'		$DDNCD	000013	000002	spd	
PGSTCC		000012	spd	RSTRT5		000677'		$DDREP	000013	000007	spd	
PGTPTR		000703	spd	SAVBLK		000606'		$DDRMN	000013	000007	spd	
PGTRCE		000704	spd	SAVP		001247'	ext	$DDSEL	000013	000002	spd	
PGUBAD		000000	spd	SECSH0		002207'		$DDSFC	000013	000002	spd	
PGUBAM		000010	spd	SECSHF		002176'		$DDSPC	000013	000010	spd	
PGXBD1		000052	spd	SELDSP		001331'		$DDSSP	000010	000005	spd	
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page S-4
KDPSRV	MAC	30-Sep-80 14:34		SYMBOL TABLE FOR PSECT   NRCOD 

ALUBWA		002316'	ext	BTKLD9		001753'		KDPN		000000	ext	
ASGRES		002412'	ext	BTKLR0		001775'		KDPNLN		002336'	ext	
BGCINF		002674'	ext	BTKLR2		002004'		KDPPAG		002440'	ext	
BGPTR		000000	ext	BTKLR4		002006'		KDPTSK		002434'	int	
BGSTR		000000	ext	BTKLR9		002011'		KDPXPC		002344'	ext	
BOOTLN		000025	spd	BTKMD		002075'		KMBT.8		002030'		
BOOTTB		001000'		BTKML		001622'		KMCBRK		002643'	int	
BRLCS2		002231'		BTLSB		001154'		KMCILL		002017'		
BRLCS8		002241'		BTRDD		001552'		KMCINQ		002026'	ext	
BTCHK0		001630'		BTRDD0		001600'		KMCLOD		002674'	int	
BTCHK2		001637'		BTRDD1		001605'		KMCPAG		002304'	ext	
BTCHN		001511'		BTRDD2		001573'		KMCTK0		002437'		
BTCKD0		001650'		BTRDD3		001617'		KMCTK1		002441'		
BTCKD1		001651'		BTRLC		002206'		KMCTK8		002466'		
BTCKD2		001666'		BTRLCS		002230'		KMCTK9		002471'		
BTCLI		002243'		BTRMP		001251'		KMCXCT		002167'		
BTCLI2		002244'		BTRMP0		001255'		MARCLR		002164'		
BTCLI5		002251'		BTSDD		001305'		MRETN		001037'	ext	
BTCPN		002257'		BTSDD0		001327'		NODINI		002476'	ext	
BTDMP		001213'		BTSDD1		001335'		PROFLG		002360'	ext	
BTDVX5		001050'		BTSDD2		001340'		R		002163'	ext	
BTEMOK		001150'		BTSLS		001517'		RELRES		002562'	ext	
BTERR		001033'		BTSMP		001213'		RSKP		002575'	ext	
BTGKMA		001040'		BTSMP0		001234'		SMTEPT		000000	ext	
BTGPLI		002271'		BTSSP		001501'		UBGOOD		002312'	ext	
BTGPLX		002272'		BTSTA		001475'		.BOOT		001025'	int	
BTGPR1		001070'		BTSTOP		002177'		.RESNP		000000	ext	
BTGPRT		001052'		BTSTP		001505'		.RESP1		001312'	ext	
BTICBL		001446'		BTSTS		001527'		
BTICNL		001422'		BTSTS9		001550'		
BTIDC0		001424'		BTTPR		001455'		
BTIDC1		001437'		BUGHLT		002706'	ext	
BTIDC2		001440'		CAPENB		001025'	ext	
BTIDC4		001410'		COMINI		002023'		
BTIDDC		001401'		COMIOE		001000'		
BTILPB		001447'		COMIOP		000000'		
BTIMOP		001373'		DDINI		002403'		
BTINI		001077'		DDINI0		002423'		
BTIPR		001351'		DDINI2		002432'		
BTKDC0		002123'		DDLCOR		002702'	int	
BTKDC2		002127'		DEDDSP		002474'		
BTKDC9		002136'		DEDMCB		002474'	ext	
BTKDD0		002140'		DPINI2		002305'		
BTKDD2		002144'		DPINI3		002336'		
BTKDD9		002151'		DUPCOR		002706'	int	
BTKDR2		002102'		DUPUBA		002671'	int	
BTKDR6		002154'		EDMS0		002544'	ext	
BTKDR9		002120'		FORKX		001514'	ext	
BTKLC0		001672'		INIDSP		002476'		
BTKLC2		001676'		INTDF		002177'	ext	
BTKLC4		001714'		INTDFF		002204'	ext	
BTKLC9		001726'		ITRAP1		002514'	ext	
BTKLD0		001727'		KDPFLG		002434'	ext	
BTKLD2		001734'		KDPINI		002300'	int	
BTKLD4		001744'		KDPLIM		002435'	ext	
KDPSRV	MACRO %53B(1215) 17:14 15-Jun-82 Page S-5
KDPSRV	MAC	30-Sep-80 14:34		SYMBOL TABLE FOR PSECT   BGSTR 

..0001		000000'	spd	
..0002		000003'	spd	
..0003		000007'	spd	
..0004		000013'	spd	
..0005		000017'	spd	
..0006		000023'	spd	
..0007		000030'	spd	
..0010		000036'	spd	
..0011		000041'	spd	
..0012		000045'	spd	
..0013		000051'	spd	
..0014		000060'	spd	
..0015		000064'	spd	
..0016		000066'	spd	
..0017		000072'	spd	
A0	   364#	   426	   428	   430	   432	   434
ACK	   372#	   426
ACKMSG	   426#	  2785	  2786
ALUBWA	  1529
ARGX02	   651
ARGX19	   681	   697	   974
ASGRES	   769	   813	   885	  1599	  1608	  2004	  2505	  3105
BADHDR	  1920#	  1920	  1921
BASEIN	   269#	  1329
BDLEOM	   301#	  2832	  2927	  3023
BDLLDS	   298#	  2832	  2938	  2963	  3033
BDLRSY	   299#	  2832	  2927	  2937	  3023	  3032
BDLSOM	   302#	  2832	  2927	  3023
BFADIN	   271#	  2846	  2949	  2977	  3044
BFADOU	   273#
BFRENB	   281#	  2841	  2944	  2972	  3039
BFREOM	   280#
BFRKIL	   282#
BGCCHK	  1793	  1920	  2339	  2489
BGCINF	  1294	  1591	  1865	  2238	  2418	  2428	  2764
BLKSIZ	    77#	  1606	  2503	  2541	  2552
BOOTLN	   641#	   650
BOOTTB	   620#	   641	   659
BRLCS2	  1458#	  1467
BRLCS8	  1459	  1468#
BSEL0	   250#	  1149	  1203	  1205	  1207	  1215	  1254	  1256	  1282	  1377	  1419	  1422	  1424	  1432
	  1691	  1698	  1783	  1823
BSEL1	   251#
BSEL2	   263#	  1172	  1174	  1178	  1181	  1188	  1234	  1242	  1257	  1392	  1405	  1808	  1840	  1851
	  1858
BSEL3	   264#
BSEL4	   274#	  1198	  1213	  1258	  1375	  1839	  1854
BSEL5	   275#
BSEL6	   277#	  1201	  1216	  1259	  1378	  1420	  1837	  1856
BSEL7	   278#
BT%CVE	  1220
BT%DVE	  1183	  1246
BT%RVE	  1157
BTCHK0	  1154#	  1161	  1165
BTCHK2	  1159	  1162#
BTCHN	   639	  1042#
BTCKD0	  1173#	  1191
BTCKD1	  1174#	  1187
BTCKD2	  1185	  1188#
BTCLI	   632	  1473#
BTCLI2	  1475#	  1479
BTCLI5	  1477	  1480#
BTCPN	   633	  1489#
BTDMP	   796#
BTDVX5	   666	   672#
BTEMOK	   749	   754#
BTERR	   623	   651#	   935	   951	   997	  1482
BTGKMA	   664#	  1146	  1347
BTGPLI	  1489	  1501#
BTGPLX	  1473	  1502#
BTGPR1	   693#	   699
BTGPRT	   678#	   704	   763	   801	   834	   878	   919	  1001	  1022	  1030	  1036	  1042	  1050	  1061
	  1099	  1438	  1501
BTICBL	   933	   991#
BTICNL	   931	   965#
BTIDC0	   918	   971#
BTIDC1	   982#
BTIDC2	   983#	   988
BTIDC4	   946	   950	   953#	   994
BTIDDC	   929	   946#
BTILPB	   966	   992#
BTIMOP	   705	   938#
BTINI	   620	   703#
BTIPR	   624	   918#
BTKDC0	  1371#
BTKDC2	  1375#	  1381
BTKDC9	  1373	  1380	  1382#
BTKDD0	  1386#
BTKDD2	  1390#	  1394
BTKDD9	  1388	  1395#
BTKDR2	  1352#	  1357
BTKDR6	  1360	  1362	  1363	  1364	  1365	  1400#
BTKDR9	  1350	  1354	  1366#
BTKLC0	  1194#
BTKLC2	  1198#	  1208
BTKLC4	  1213#	  1223
BTKLC9	  1196	  1224#
BTKLD0	  1228#
BTKLD2	  1233#	  1236
BTKLD4	  1241#	  1249
BTKLD9	  1230	  1250#
BTKLR0	  1262	  1270#
BTKLR2	  1277#	  1281
BTKLR4	  1276	  1279#
BTKLR9	  1272	  1282#
BTKMD	   630	  1347#
BTKML	   629	  1146#
BTLSB	   621	   762#
BTRDD	   638	  1099#
BTRDD0	  1114	  1124#
BTRDD1	  1105	  1123	  1129#
BTRDD2	  1119#	  1121
BTRDD3	  1138	  1140#
BTRLC	   631	  1438#
BTRLCS	  1444	  1448	  1452	  1457#
BTRMP	   628	   833#
BTRMP0	   838#	   844
BTSDD	   637	   878#
BTSDD0	   896#	   898
BTSDD1	   890	   902#
BTSDD2	   901	   905#
BTSLS	   640	  1050#
BTSMP	   622	   800#
BTSMP0	   818#
BTSSP	   635	  1030#
BTSTA	   634	  1022#
BTSTOP	  1147	  1358	  1366	  1428#
BTSTP	   636	  1036#
BTSTS	   626	  1061#
BTSTS9	  1065	  1068	  1072	  1078#
BTTPR	   625	  1001#
BUGHLT	  1534	  1604	  1613	  1816
BUGMXR	  1294	  1816	  1920	  2238	  2418	  2764
BUMHDR	  1897	  1910	  1915#
CAPENB	   645
CAPX2	   647
CDDCMP	   284#	  1335
CENABL	   288#	  1335
CHALFD	   285#
CNTL10	  2381	  2393#
CNTL12	  2382	  2397#
CNTL16	  2386	  2403#
CNTL20	  2387	  2423#
CNTL22	  2388	  2432#
CNTL24	  2389	  2436#
CNTLIN	   270#	  1334
CNTLO3	  2372	  2375#
CNTLOU	   272#
CNTRLO	  1880	  2370#
COMINI	  1286	  1300#
COMIOE	   606#	  1579
COMIOP	   462#	  1579	  1581
COUERR	   289#
CRAMSZ	   291#
CSRMSK	   283#	  1330
CX	   728	   843	  1687	  2475	  2513	  2577
DCHNG	   214#	  1721	  1722	  1890	  2056	  2096	  2101	  2264	  2713
DCNMS1	  2501#	  2514
DCNMS2	  2502	  2518#
DCNMS4	  2519	  2523#
DCNMS5	  2546	  2553#
DCNMS6	  2542	  2554#
DCNMSA	  2533	  2543#
DCNMSO	   911	  2475#
DCPINI	  1751	  2052#
DCPL	   116#	  1052	  1625
DCPLEN	  1997
DCPPST	   907	  2034#
DCPQ	  1984	  2019#
DCPQ1	  2020#	  2043	  2064
DCPQ2	  2023	  2027#
DCPSPC	  1982	  1994#	  2054
DDACI	   216#	   958	  1024	  2680
DDBAK	   196#	  1644	  1655	  1663	  1677
DDCSTR	  2238#	  2238	  2239
DDCTIM	  2764#	  2764	  2765
DDDRP	   198#	   693	   985	  1619	  1621	  1899	  2009	  2037	  2340	  2819	  2910	  3008
DDHMA	   234#	  2113	  2127	  2628	  2748	  2858
DDHXM	   233#	  2632	  2861	  2892	  2907	  2909
DDINI	   984	  1543	  1597#
DDINI0	   981	  1617	  1621#
DDINI2	  1620	  1628#
DDINP	   117#	  1132	  1134	  1994	  2006	  2008	  2040	  2042
DDINT	   118#	  2027	  2044	  2602	  2604
DDIPC	   238#	  1624	  2701
DDLCOR	  1604#	  1604	  1605
DDLMX	   199#	  2288	  2629	  2635
DDLNK	   195#	   698	  1646	  1654	  1662	  1771	  2669
DDLSZ	   243#	  1597
DDNCD	   212#	  2354	  2384	  2771	  2796	  2804	  2808
DDOWN	   220#	  2262
DDPT	   221#	  2034
DDREPC	   235#	  2134	  2156	  2739	  2744
DDRMN	   232#	  1934	  1974	  1976	  2213	  2783	  2797	  2899
DDSEL	   215#	  2357	  2718	  2821	  2823	  2902	  2904
DDSF	   222#	  2712
DDSFC	   217#	  1736	  2709	  2717
DDSPC	   237#	  1038	  1623	  2688	  2690	  2702
DDSSP	   119#	  1032	  2672	  2707
DDSTA	   201#	   764	   802	   835	   924	  1062	  1316	  1616	  1731	  1735	  1904	  2244	  2254	  2261
	  2265	  2305	  2344	  2358	  2407	  2498	  2585	  2599	  2638	  2682	  2740	  3058
DDSTB	   108#	   692	  1640	  1643	  1653	  1678	  1680
DDSTIC	   125#
DDSTT	   107#	   686	  1645	  1652	  1674	  1676	  2670
DDTIM	   207#	  1318	  2132	  2158	  2246	  2266	  2350	  2352	  2563	  2566	  2591	  2594	  2624	  2698
	  2728	  2746
DDUP	   219#	  1726	  2100
DDXAK	   211#	  2255	  2636	  2725	  2773	  2780	  2789	  2872
DDXRP	   213#	  2737
DEDDCP	  1749	  2051#
DEDDSP	  1729	  1748#
DEDLIN	   942	   961	  1010	  1703	  2240	  2261#	  2419	  2766
DEDLN2	  2268#	  2284
DEDLN8	  2270	  2285#
DEDMCB	    61#	    61	  1748
DEVX5	   672
DLE	   350#	  1909	  3003
DPCBLP	   340#	   991	  1076
DPCNLP	   341#	   965	  1074
DPDTR	   336#	   956	  1004
DPINI2	  1516#	  1548
DPINI3	  1526	  1549#
DPMAIN	   342#	   927	   939	   953	  1002	  1071
DPPCSR	   338#
DPRCSR	   335#	   957	  1005
DPRDBF	   337#
DPTCSR	   339#	   926	   940	   954	   955	  1003	  1070
DPTDBF	   343#
DRAMSZ	   292#	  1169
DRVCOD	  2479
DRVFLG	  2479
DRVLEN	  2479
DRVMSG	  2479
DSRLST	  2418#	  2418	  2419
DUPADR	   332#	   683	  1321	  1524
DUPCOR	  1613#	  1613	  1614
DUPDSR	   113#	  2403	  2405
DUPUBA	  1534#	  1534	  1535
DUPUBN	   333#
EDMS0	   728	   843	  2513
ENQ	   349#	   426	   428	   430	   432	   434	  1907	  2330
F	   723	   790	   827	   909	   912	  2481	  2992
FILL	   369#	   426	   428	   430	   432	   434
FLUBFR	  2393	  2397	  2432	  2436	  2440#
FORKX	  1045
FTRACE	    71	   185	  1311	  1826	  1869
GTNXT	  2626	  2667#	  2715
GTNXT1	  2669#	  2693	  2696
GTNXT2	  2681	  2687	  2692#
GTNXT3	  2689	  2701#
GTNXT4	  2704	  2718#
IDLE	   348#
INDCNT	   327#	  1103	  1106	  2012	  2036	  2062
INDLNK	   326#	  1129	  1136	  2010	  2025	  2038
INIDSP	  1741	  1750#
INSKED	  2507
INSTA	  1627	  1639#	  2706
INSTA1	  1641	  1652#
INTDF	  1008	  1428
INTDFF	  1011	  1433
IOX5	  1295
ITRAP1	   647	   651	   660	   672	   681	   697	   974	  1109
KDPCHK	  2577#
KDPFLG	    63#	    63	  1713	  2057	  2102	  2267	  2714
KDPINI	  1511#
KDPLIM	    62#	    62	  1300	  1551	  1552	  1699	  1714	  2580
KDPN	    62#	    62	  1514
KDPNLN	    62#	    62	   680	   973	  1481	  1549	  2477
KDPPAG	    62#	    62	   685	   975	  1305	  1516	  1536	  1538	  1700	  1717	  1828	  1867	  2494	  2583
KDPQ	  1973	  1983#
KDPSPC	  1949	  1981#
KDPTIM	    62#	  2579
KDPTSK	  1713#
KDPX01	   923
KDPXPC	    62#	    62	  1556	  1843	  2455
KMBT.8	  1305#	  1342
KMCACS	    63#	  1803	  1804	  1805	  1841	  1846	  1847	  1848	  2453
KMCADR	   920	  1285	  1429	  1511	  1577	  1689	  1783	  1807	  1850
KMCBRK	  1294#	  1294	  1295
KMCCWR	   254#	  1204
KMCFST	  1865#	  1865
KMCHK0	  2582#	  2612
KMCHK2	  2592	  2595	  2598	  2601#
KMCHK3	  2589	  2611#
KMCHLT	  1430	  1687#	  1860	  2423
KMCIEI	   262#	  1781
KMCIEO	   261#	  1781
KMCIII	  1816#	  1816	  1817
KMCILL	  1158	  1184	  1221	  1248	  1289#
KMCINP	  1331	  1336	  1779#	  2847	  2950	  2978	  3045
KMCINQ	    63#	    63	  1302	  1303	  1304	  1784	  1785	  1786	  1788	  1796	  1809	  1810	  1817	  1818
	  1820	  1822
KMCIOT	   267#	  1886	  2977
KMCLOD	  1591#	  1591
KMCLUL	   256#
KMCMCL	   253#	  1148	  1253
KMCNTI	  1793#	  1793	  1794
KMCNXM	  2428#	  2428	  2429
KMCPAG	    63#	    63	  1515	  1572	  1688
KMCPDL	  1806	  1849
KMCQLN	    63#	  1785	  1817
KMCRDI	   266#	  1811
KMCRDO	   265#	  1852
KMCRMI	   258#	  1418	  1421
KMCRMO	   257#	  1202	  1204	  1214	  1376
KMCRQI	   260#	  1781	  1821
KMCRUN	   252#	   922	  1263	  1697
KMCSLU	   255#
KMCSUP	   259#	  1421
KMCTK0	  1716#	  1746
KMCTK1	  1718#	  1744
KMCTK8	  1724	  1733	  1742#
KMCTK9	  1719	  1730	  1745#
KMCTYP	   268#
KMCUBN	  1527	  1561
KMCVCA	  1558	  1803#
KMCVCB	  1565	  1846#
KMCVEC	  1560
KMCXCT	  1171	  1176	  1180	  1190	  1235	  1241	  1269	  1391	  1401	  1403	  1411	  1418#
KMHLT2	  1691#	  1695
KMHLT3	  1700#	  1705
KMVCB9	  1853	  1865	  2318	  2321	  2331	  2366	  2376	  2385	  2390	  2394	  2400	  2406	  2411	  2420
	  2429	  2433	  2437	  2453#	  3172
LINSR	   114#	  1007	  1056	  1626	  1728	  1740	  1948	  1972
LKDPSR	  3233#
MARCLR	  1168	  1231	  1239	  1389	  1410#
MAXIN	   328#	  1995
MAXOUT	   353#	  2118	  2123	  2750	  2865
MAXSTR	   218#	  2710
MBKCOD	    81#	  2140	  2272	  2558
MBKFRE	    77	    85#	  2146	  2150	  2275	  2276	  2543	  2544	  2554
MBKLEN	    82#	  2139	  2271	  2560	  2894	  2914	  2935
MBKLNK	    79#	  2144	  2273	  2553	  2556	  2856	  2874	  2915
MONCLR	  1894
MOPDNE	  2346	  3166#
MOPPST	  3096	  3114#
MOPQ	   790	   827	  3111#
MOPSEC	  2587	  3146#
MOPSPC	  3075	  3100#
MOPSTS	   164#	   710	   756	   806	  3049	  3168
MOPTMO	   170#	  3051	  3170
MOPTMR	   168#	  3052	  3115	  3147	  3150	  3171
MPBADR	   174#
MPBLEN	   179#	  2993
MPBPTR	   173#	  2999
MPERR	   167#	   730	  3046	  3121	  3153	  3163
MPFLGS	   176#	   713	   783	   786	   820	   823	  3131
MPPOST	   175#	  3117
MPPRI	   165#	   709	  3050	  3169
MPRADR	   183#
MPRLEN	   184#	   747	   849	  3100
MPRPTR	   182#	  3108
MPRTST	   726	   841	  3160#
MPSEC	   166#	   755
MPSHRT	   177#	   712	   785	   822	  3132
MPSPRQ	   420#	   751
MPXSEC	   178#	   784	   821
MRETN	   661
MSGCLB	  2339#	  2339	  2340
MSGPTR	  2489#	  2489	  2490
MSHDR	   325#	  1118	  1127	  2000	  2013	  2019	  2059
MSNMAX	   407#
NAK	   376#	   428
NAKMSG	   428#	  2800	  2801
NAKTBL	   439#	  2191	  2805
NCDBCC	   379#	  2398
NCDBTU	   381#	  1950	  2383
NCDHBC	   378#
NCDHFE	   384#	  2311
NCDMTL	   383#
NCDREP	   380#	  2218
NCDROV	   382#
NODINI	    64#	    64	  1750
NSKED	  2509
NSPL	   115#	  1006	  1053
NSPQ	    64#	  1983
NSPSPC	    64#	  1981
NXTSTA	   983	  1718	  1763#	  2334
OURTTL	    59#
P	   715	   721	   895	   900	  1294	  1591	  1793	  1806	  1849	  1865	  1920	  1953	  1971	  1997
	  1999	  2011	  2052	  2055	  2060	  2238	  2271	  2272	  2279	  2280	  2339	  2418	  2428	  2479
	  2481	  2482	  2489	  2492	  2493	  2518	  2520	  2521	  2555	  2557	  2559	  2764	  3000	  3011
	  3077	  3095	  3180	  3184	  3204	  3205	  3208	  3212	  3228	  3229
P1	   684	   685	   686	   687	   692	   708	   710	   711	   713	   722	   727	   729	   737	   747
	   756	   783	   786	   789	   806	   820	   823	   826	   838	   840	   842	   846	   849	   858
	   862	   863	   906	   938	   972	   973	   975	   979	   980	  1007	  1013	  1015	  1032	  1046
	  1056	  1100	  1132	  1134	  1137	  1139	  1300	  1305	  1306	  1307	  1308	  1309	  1310	  1312
	  1313	  1319	  1327	  1332	  1337	  1339	  1341	  1342	  1439	  1442	  1446	  1450	  1453	  1454
	  1463	  1493	  1515	  1516	  1521	  1535	  1537	  1546	  1547	  1552	  1626	  1628	  1640	  1643
	  1645	  1652	  1653	  1668	  1674	  1676	  1678	  1680	  1688	  1690	  1699	  1700	  1701	  1704
	  1705	  1714	  1717	  1725	  1728	  1739	  1740	  1743	  1745	  1746	  1763	  1764	  1827	  1828
	  1829	  1833	  1834	  1835	  1850	  1851	  1854	  1856	  1858	  1866	  1867	  1868	  1870	  1875
	  1876	  1877	  1883	  1885	  1892	  1947	  1948	  1972	  1977	  1994	  2006	  2008	  2020	  2021
	  2022	  2026	  2027	  2028	  2040	  2042	  2044	  2045	  2129	  2130	  2192	  2233	  2314	  2317
	  2353	  2362	  2363	  2375	  2377	  2404	  2412	  2440	  2444	  2445	  2446	  2448	  2449	  2476
	  2477	  2494	  2497	  2511	  2524	  2525	  2528	  2531	  2580	  2583	  2584	  2590	  2596	  2602
	  2604	  2605	  2608	  2611	  2612	  2670	  2672	  2673	  2674	  2675	  2684	  2707	  2708	  2720
	  2758	  2775	  2777	  2778	  2806	  2814	  2816	  2830	  2844	  2867	  2869	  2879	  2884	  2886
	  2887	  2889	  2925	  2947	  2961	  2975	  2992	  2993	  2994	  2996	  2999	  3021	  3042	  3047
	  3049	  3052	  3061	  3063	  3064	  3100	  3108	  3111	  3115	  3117	  3122	  3128	  3131	  3138
	  3147	  3150	  3154	  3168	  3171
P2	   807	   808	   824	   879	   880	   895	   898	   900	   908	  1136	  1137	  1139	  1514	  1516
	  1521	  1522	  1536	  1538	  1548	  1549	  1550	  1551	  1689	  1691	  1693	  1694	  1696	  1698
	  1884	  1895	  1896	  1898	  1902	  1915	  1931	  1938	  1954	  2072	  2112	  2128	  2183	  2188
	  2211	  2683	  2685	  2686	  2688	  2689	  2690	  2874	  2875	  2902	  2903	  3066	  3078	  3095
	  3111
P3	   773	   774	   777	   782	   810	   817	   819	   882	   902	   904	   946	   976	   977	   986
	  1103	  1104	  1106	  1108	  1111	  1121	  1124	  1125	  1126	  1128	  1542	  1617	  1621	  1690
	  1692	  1945	  1946	  1954	  1956	  1957	  1970	  2315	  2319	  2332	  2341	  2881	  2882	  2883
	  2889	  3073	  3074	  3078	  3080	  3081	  3094	  3185	  3186	  3187	  3188	  3192	  3193
P4	   686	   687	   693	   696	   698	   764	   802	   835	   924	   958	   959	   979	   982	   985
	  1024	  1038	  1062	  1306	  1316	  1318	  1605	  1616	  1619	  1621	  1623	  1624	  1628	  1642
	  1643	  1644	  1646	  1647	  1652	  1653	  1654	  1655	  1662	  1663	  1665	  1667	  1675	  1677
	  1679	  1701	  1716	  1721	  1722	  1723	  1731	  1735	  1736	  1737	  1764	  1767	  1769	  1770
	  1771	  1868	  1890	  1899	  1904	  1923	  1934	  1974	  1976	  2009	  2037	  2056	  2096	  2101
	  2113	  2127	  2132	  2134	  2135	  2137	  2138	  2143	  2145	  2149	  2154	  2156	  2158	  2163
	  2164	  2168	  2194	  2213	  2244	  2246	  2254	  2255	  2256	  2261	  2264	  2265	  2266	  2269
	  2274	  2285	  2286	  2287	  2288	  2289	  2305	  2333	  2340	  2344	  2350	  2352	  2353	  2354
	  2357	  2358	  2361	  2362	  2363	  2384	  2407	  2497	  2498	  2501	  2525	  2526	  2529	  2530
	  2531	  2532	  2534	  2535	  2537	  2538	  2539	  2547	  2549	  2550	  2561	  2563	  2566	  2584
	  2585	  2591	  2594	  2599	  2624	  2625	  2628	  2629	  2632	  2635	  2636	  2637	  2638	  2668
	  2669	  2671	  2680	  2682	  2688	  2690	  2692	  2698	  2701	  2702	  2709	  2711	  2713	  2717
	  2718	  2719	  2720	  2725	  2726	  2728	  2737	  2738	  2739	  2740	  2744	  2746	  2748	  2749
	  2771	  2773	  2774	  2780	  2783	  2789	  2790	  2796	  2797	  2804	  2808	  2809	  2819	  2821
	  2823	  2854	  2855	  2858	  2859	  2861	  2872	  2873	  2876	  2878	  2881	  2885	  2888	  2890
	  2891	  2892	  2893	  2899	  2902	  2904	  2907	  2909	  2910	  2913	  2934	  3008	  3058
P5	  1955	  1969	  2884	  2885	  2887	  2888	  3079	  3093
PGCOCN	   126#	  1442	  2377
PGCOXX	   135#	  2375
PGCSTA	   109#	   687	   979	  1306	  1628	  1701	  1764	  1868	  2353	  2363	  2497	  2584	  2720
PGDADR	   197#	   693	   985	  1619	  1621	  1899	  2009	  2037	  2288	  2289	  2340	  2629	  2635	  2819
	  2910	  3008
PGDLMX	   228#	  2137	  2138	  2194	  2286	  2534	  2855	  2859	  2891	  2893	  2913	  2934
PGDLNK	   194#	   698	  1644	  1646	  1654	  1655	  1662	  1663	  1667	  1672	  1673	  1677	  1771	  2669
PGDMNM	   231#	  1934	  1974	  1976	  2113	  2127	  2134	  2156	  2213	  2287	  2628	  2632	  2739	  2744
	  2748	  2783	  2797	  2858	  2861	  2892	  2899	  2907	  2909
PGDOMQ	   223#	  2135	  2143	  2145	  2149	  2154	  2269	  2274	  2285	  2532	  2539	  2561	  2749	  2854
PGDPRI	   236#	  1038	  1623	  1624	  2688	  2690	  2701	  2702
PGDSTS	   200#	   764	   802	   835	   924	   958	   959	  1024	  1062	  1316	  1318	  1616	  1721	  1722
	  1723	  1731	  1735	  1736	  1737	  1890	  1904	  2056	  2096	  2101	  2132	  2158	  2244	  2246
	  2254	  2255	  2256	  2261	  2264	  2265	  2266	  2305	  2344	  2350	  2352	  2354	  2357	  2358
	  2384	  2407	  2498	  2563	  2566	  2585	  2591	  2594	  2599	  2624	  2625	  2636	  2637	  2638
	  2680	  2682	  2698	  2709	  2711	  2713	  2717	  2718	  2719	  2725	  2726	  2728	  2737	  2738
	  2740	  2746	  2771	  2773	  2774	  2780	  2789	  2790	  2796	  2804	  2808	  2809	  2821	  2823
	  2872	  2873	  2902	  2904	  3058
PGFCOR	   229#	  2163	  2164	  2168	  2501	  2535	  2537	  2538	  2547	  2549	  2550	  2571
PGKDPN	   121#	   722	   789	   826	   906	  1319	  1327	  1332	  1341	  1493	  1521	  1704	  1725	  1739
	  1745	  1947	  2233	  2412	  2611	  2758	  2844	  2947	  2975	  3042
PGKMCR	   150#	  1690
PGLACK	   153#	  2129
PGLCOC	   240#	  1923
PGLINQ	   110#	   846	   863	  1013	  1015	  1100	  1137	  1139	  2020	  2021	  2022	  2026	  3111
PGLINT	   120#	  1046	  2605	  2608
PGLOUQ	   111#	  2362	  2524	  2525	  2528	  2531	  2879	  2884	  2886	  2887	  2889
PGLRNK	   241#
PGLSTS	   112#	  1007	  1032	  1056	  1132	  1134	  1626	  1728	  1740	  1948	  1972	  1994	  2006	  2008
	  2027	  2028	  2040	  2042	  2044	  2045	  2404	  2602	  2604	  2672	  2707
PGLTIM	   239#
PGLXNK	   242#
PGMPSW	   171#	   708	  1546
PGMRHD	   181#	   737	   747	   840	   849	   858	   862	  3064	  3100	  3108	  3138	  3160
PGMSTS	   163#	   710	   729	   756	   806	   838	   938	  3047	  3049	  3052	  3063	  3115	  3122	  3147
	  3150	  3154	  3162	  3168	  3171
PGMXBF	   180#	   711
PGMXHD	   172#	   713	   783	   786	   820	   823	  2992	  2993	  2999	  3061	  3117	  3128	  3131
PGNRNK	   137#	  2192
PGNXNK	   148#	  2806
PGOLST	   226#	  2361	  2529	  2530	  2876	  2881	  2882	  2883	  2890
PGRBD1	   158#	  1309	  1337	  1895	  1896	  1898	  1902	  1915	  1931	  1938	  1954	  2072	  2112	  2128
	  2183	  2188	  2211	  2315	  2445	  2956	  2957	  2958	  2974	  3066	  3078
PGRBD2	   160#	  1310	  1339	  2446
PGRMCN	   147#	  1446	  1977
PGRMS1	   159#	  1895	  1896	  1898	  1902	  1915	  1931	  1938	  1954	  2072	  2112	  2128	  2183	  2188
	  2211	  2315	  2956	  2957	  2958	  2974	  3066	  3078
PGRMS2	   161#
PGSTAL	   106#	   686	   692	   980	  1640	  1643	  1645	  1652	  1653	  1668	  1674	  1676	  1678	  1680
	  1743	  1763	  2317	  2596	  2670	  2775
PGSTCC	   124#	  2673	  2674	  2675	  2684	  2708
PGTPTR	   186#	  1313	  1829	  1835	  1870	  1877
PGTRCE	   188#	  1312	  1834	  1876
PGUBAD	   105#	  1535	  2440	  2830	  2925	  2961	  3021
PGUBAM	   122#	  1537
PGXBD1	   154#	  1307	  2328	  2332	  2448	  2777	  2814	  2825	  2827	  2843	  2867	  2906	  2912	  2916
	  2922	  2946	  2994	  3006	  3010	  3013	  3018	  3041
PGXBD2	   156#	  1308	  2449	  2778	  2816	  2869	  2996
PGXMCN	   136#	  1450	  2130
PGXMS1	   155#	  1572	  2328	  2332	  2825	  2827	  2843	  2906	  2912	  2916	  2922	  2946	  3006	  3010
	  3013	  3018	  3041
PGXMS2	   157#
PGZTIM	   123#	  1439	  1454	  2590
PI	  2506
PIPIIP	  2506
PRITMO	   169#	  3048	  3167
PROFLG	  1568
PSIRQ	  2609
Q1	   655	   664	   678	   781	   807	   818	   850	   853	   856	   879	   888	   899	   925	   971
	  1023	  1031	  1037	  1043	  1051	  1078	  1101	  1104	  1107	  1111	  1112	  1122	  1130	  1194
	  1195	  1210	  1211	  1218	  1224	  1228	  1229	  1237	  1238	  1244	  1250	  1260	  1270	  1271
	  1283	  1284	  1289	  1348	  1349	  1367	  1368	  1371	  1372	  1382	  1383	  1386	  1387	  1395
	  1396	  1440	  1443	  1447	  1451	  1483	  1497	  1502
Q2	   664	   665	   667	   708	   716	   717	  1149	  1153	  1172	  1174	  1178	  1181	  1188	  1198
	  1201	  1203	  1205	  1207	  1213	  1215	  1216	  1234	  1242	  1254	  1256	  1257	  1258	  1259
	  1275	  1282	  1285	  1294	  1351	  1375	  1377	  1378	  1392	  1405	  1419	  1420	  1422	  1424
	  1429	  1432
Q3	   648	   649	   650	   659	  1172	  1188	  1195	  1200	  1211	  1217	  1218	  1229	  1233	  1238
	  1243	  1244	  1271	  1273	  1277	  1284	  1349	  1353	  1368	  1372	  1379	  1383	  1387	  1393
	  1396	  1406
QSYNC	   360#	   432	   434	  2822	  2903	  3005
R	  1400	  1407	  2614	  2615	  2642	  2643	  3129	  3148
RCVACK	  2077	  2088#
RCVAK0	  2092	  2096#	  2185
RCVAK2	  2093	  2106#
RCVAK3	  1929	  2106	  2112#	  2152	  2195
RCVAK4	  2147	  2152#
RCVAK5	  2115	  2124	  2136	  2154#
RCVAK6	  2120	  2126#
RCVCTL	  1908	  2072#
RCVDAT	  1906	  1928#
RCVDT3	  1956#	  1970
RCVENB	  1338	  1340	  2316	  2447	  2956#
RCVFLU	  1891	  1901	  1924	  1930	  1936	  1952	  1979	  2089	  2090	  2091	  2098	  2103	  2107	  2108
	  2175	  2176	  2177	  2196	  2198	  2204	  2205	  2206	  2217	  2220	  2226	  2247	  2257	  2297
	  2298	  2301	  2306	  2314#	  3060	  3062	  3065	  3076	  3097
RCVKRD	  2074	  2076	  2080	  2081	  2184	  2311#
RCVMOP	  1911	  3057#
RCVMP3	  3080#	  3094
RCVNAK	  2078	  2174#
RCVNK0	  2178	  2183#
RCVNK3	  2179	  2188#
RCVREP	  2079	  2203#
RCVRP0	  2207	  2208	  2211#
RCVRP3	  2215	  2218#
RCVSTK	  2083	  2296#
RCVSTR	  2082	  2225#
RELMOP	   740	   744	   752	   754	   847	  1012	  3136#
RELRES	   864	   913	  1140	  2167	  3133	  3141
REM1	  1666	  1672#
REMSTA	  1661#	  2705
REP	   388#	   430
REPCHK	  2617	  2618	  2631	  2737#
REPHGH	  2743	  2758#
REPMAX	   210#	  2742
REPMSG	   430#	  2747
RESAK	   395#
RLXMOP	  3116	  3127#	  3155
RS%SE0	   768	   812	   884	  1598	  1607	  2003	  2504	  3104
RSKP	   627	   757	   793	   830	   866	   914	   943	   952	   962	   996	  1016	  1025	  1033	  1039
	  1047	  1057	  1079	  1102	  1142	  1287	  1397	  1455	  1485	  1498	  1765	  1772	  2014	  2155
	  2159	  2568	  2721	  2848	  3053	  3109	  3112
RSTCK0	  2299	  2300	  2303#
RSTRT0	  2230	  2233#
RSTRT3	  2227	  2229	  2243#	  2252
RSTRT5	  2228	  2250#
SAVBLK	  1614	  2151	  2163#	  2277	  2516
SAVP	  1687	  2475	  2577
SC%MNT	   646
SC%OPR	   646
SC%WHL	   646
SECSH0	  3190#	  3203
SECSHF	   788	  3179#
SELDSP	  2359	  2639	  2642#
SELECT	   361#	   432	   434	  2319	  2822	  2903	  3005
SELSTA	  2320	  2597	  2624#
SHFFL0	  3213#	  3227
SHFFLE	   825	  2522	  3207#
SMTEPT	  1561
SOH	   351#	  1905	  2897
SPCTST	  2512	  2571#
STACK	   402#	   434
STADWN	   202#	   948	   992	  1009	  1067	  1702	  1921
STAMAI	   203#	   765	   803	   836	   941	   949	   993	  1064	  2345	  2586	  3059
STARUN	   206#	  1734	  1928	  2263	  2409	  2413	  2499	  2759
STASTK	   205#	  1732	  2253	  2304	  2408	  2683
STASTR	   204#	   960	  1315	  1615	  2239	  2243	  2348	  2410	  2685	  2703	  2765
STCKMS	   434#	  2250
STRT	   398#	   432
STRTMS	   432#	  2729
SYN	   347#	   348
T1	   645	   646	   667	   668	   678	   679	   684	   689	   690	   694	   709	   710	   711	   714
	   715	   716	   717	   719	   722	   726	   727	   729	   730	   738	   739	   742	   743	   746
	   747	   748	   750	   751	   755	   756	   764	   765	   767	   772	   773	   776	   779	   780
	   781	   782	   783	   784	   785	   786	   789	   802	   803	   805	   806	   808	   809	   810
	   811	   815	   817	   818	   819	   820	   821	   822	   823	   826	   835	   836	   840	   841
	   842	   858	   859	   880	   881	   882	   883	   887	   894	   897	   902	   903	   904	   906
	   907	   912	   920	   921	   922	   924	   939	   940	   941	   948	   949	   953	   954	   956
	   957	   960	   971	   972	   976	   985	   986	   992	   993	  1002	  1003	  1004	  1005	  1006
	  1007	  1009	  1013	  1014	  1023	  1024	  1031	  1032	  1037	  1038	  1043	  1044	  1045	  1046
	  1051	  1052	  1053	  1056	  1062	  1064	  1067	  1100	  1103	  1106	  1118	  1127	  1129	  1135
	  1136	  1148	  1149	  1155	  1156	  1157	  1170	  1175	  1179	  1181	  1182	  1183	  1189	  1200
	  1201	  1202	  1203	  1204	  1205	  1206	  1207	  1214	  1215	  1216	  1219	  1220	  1232	  1240
	  1247	  1253	  1254	  1255	  1256	  1257	  1258	  1259	  1260	  1262	  1264	  1265	  1266	  1267
	  1268	  1273	  1274	  1277	  1278	  1289	  1295	  1302	  1303	  1304	  1312	  1313	  1315	  1316
	  1317	  1318	  1322	  1323	  1324	  1325	  1326	  1327	  1328	  1329	  1332	  1333	  1334	  1352
	  1353	  1359	  1361	  1376	  1377	  1378	  1379	  1390	  1402	  1404	  1410	  1412	  1420	  1431
	  1432	  1439	  1440	  1458	  1459	  1460	  1462	  1466	  1475	  1477	  1478	  1484	  1490	  1491
	  1492	  1496	  1503	  1504	  1511	  1522	  1523	  1524	  1527	  1537	  1541	  1544	  1545	  1546
	  1555	  1556	  1557	  1559	  1562	  1563	  1564	  1566	  1567	  1574	  1575	  1576	  1577	  1578
	  1579	  1580	  1581	  1582	  1583	  1584	  1585	  1597	  1605	  1606	  1615	  1616	  1618	  1619
	  1622	  1623	  1624	  1625	  1626	  1640	  1641	  1642	  1644	  1645	  1646	  1647	  1662	  1664
	  1665	  1672	  1673	  1676	  1677	  1680	  1691	  1692	  1697	  1698	  1702	  1725	  1739	  1763
	  1766	  1767	  1770	  1794	  1809	  1810	  1816	  1817	  1818	  1819	  1820	  1822	  1824	  1825
	  1827	  1830	  1840	  1851	  1852	  1859	  1866	  1871	  1879	  1886	  1890	  1891	  1892	  1893
	  1898	  1900	  1902	  1903	  1905	  1907	  1909	  1915	  1920	  1921	  1931	  1932	  1933	  1935
	  1938	  1939	  1940	  1941	  1944	  1945	  1947	  1950	  1953	  1955	  1956	  1958	  1959	  1962
	  1965	  1968	  1969	  1974	  1975	  1976	  2000	  2001	  2002	  2010	  2012	  2013	  2020	  2024
	  2025	  2036	  2038	  2039	  2055	  2056	  2059	  2062	  2063	  2072	  2073	  2075	  2100	  2101
	  2113	  2114	  2116	  2126	  2127	  2128	  2129	  2131	  2132	  2133	  2134	  2135	  2136	  2137
	  2139	  2140	  2143	  2144	  2146	  2150	  2154	  2156	  2157	  2158	  2164	  2168	  2183	  2184
	  2188	  2189	  2190	  2191	  2211	  2212	  2214	  2218	  2233	  2238	  2239	  2243	  2244	  2245
	  2246	  2250	  2253	  2254	  2265	  2266	  2275	  2279	  2304	  2305	  2311	  2328	  2329	  2330
	  2347	  2349	  2352	  2354	  2355	  2357	  2358	  2359	  2377	  2378	  2379	  2383	  2384	  2398
	  2410	  2440	  2441	  2476	  2491	  2492	  2498	  2499	  2503	  2511	  2512	  2524	  2525	  2526
	  2530	  2540	  2541	  2544	  2545	  2546	  2551	  2552	  2554	  2555	  2556	  2557	  2558	  2559
	  2560	  2563	  2564	  2565	  2566	  2571	  2578	  2579	  2585	  2586	  2591	  2592	  2593	  2594
	  2595	  2599	  2600	  2602	  2603	  2605	  2606	  2607	  2628	  2630	  2632	  2633	  2634	  2635
	  2638	  2639	  2667	  2691	  2696	  2697	  2698	  2701	  2702	  2707	  2708	  2709	  2710	  2716
	  2717	  2727	  2728	  2729	  2740	  2745	  2746	  2747	  2759	  2765	  2771	  2772	  2783	  2784
	  2785	  2796	  2799	  2800	  2804	  2805	  2822	  2825	  2827	  2828	  2829	  2830	  2831	  2833
	  2835	  2837	  2842	  2844	  2845	  2846	  2854	  2856	  2857	  2874	  2893	  2894	  2913	  2914
	  2915	  2916	  2919	  2920	  2922	  2923	  2924	  2925	  2926	  2928	  2930	  2932	  2939	  2945
	  2947	  2948	  2949	  2958	  2959	  2960	  2961	  2962	  2964	  2966	  2968	  2973	  2975	  2976
	  2977	  3011	  3012	  3013	  3016	  3017	  3018	  3019	  3020	  3021	  3022	  3024	  3026	  3028
	  3034	  3040	  3042	  3043	  3044	  3046	  3047	  3048	  3051	  3052	  3058	  3059	  3066	  3067
	  3068	  3069	  3072	  3073	  3077	  3079	  3080	  3082	  3083	  3086	  3089	  3092	  3093	  3101
	  3102	  3103	  3107	  3108	  3114	  3115	  3121	  3122	  3127	  3128	  3129	  3130	  3137	  3138
	  3139	  3140	  3147	  3148	  3149	  3150	  3151	  3153	  3154	  3160	  3162	  3163	  3167	  3170
	  3171	  3190	  3192	  3194	  3195	  3196	  3198	  3200	  3201	  3202	  3213	  3214	  3215	  3216
	  3219	  3222	  3225	  3226
T2	   668	   669	   670	   693	   694	   712	   713	   718	   719	   721	   768	   771	   772	   775
	   776	   777	   778	   779	   812	   815	   816	   850	   851	   856	   857	   859	   860	   884
	   887	   905	   909	   925	   928	   930	   932	   934	   947	   955	   965	   991	   995	  1070
	  1071	  1072	  1074	  1076	  1107	  1108	  1112	  1113	  1115	  1117	  1120	  1122	  1126	  1127
	  1128	  1129	  1130	  1152	  1154	  1156	  1159	  1160	  1162	  1177	  1178	  1217	  1219	  1233
	  1234	  1242	  1245	  1246	  1247	  1275	  1278	  1279	  1280	  1319	  1320	  1321	  1323	  1324
	  1325	  1326	  1330	  1335	  1374	  1375	  1381	  1392	  1393	  1405	  1406	  1418	  1419	  1421
	  1422	  1423	  1424	  1457	  1466	  1468	  1476	  1478	  1480	  1481	  1483	  1493	  1494	  1495
	  1528	  1535	  1536	  1538	  1539	  1540	  1541	  1560	  1561	  1562	  1567	  1572	  1573	  1574
	  1575	  1576	  1578	  1580	  1582	  1584	  1598	  1607	  1663	  1664	  1672	  1673	  1674	  1675
	  1678	  1679	  1728	  1729	  1731	  1732	  1734	  1735	  1740	  1741	  1779	  1795	  1808	  1811
	  1816	  1821	  1823	  1824	  1831	  1837	  1838	  1839	  1854	  1855	  1872	  1881	  1882	  1883
	  1884	  1885	  1899	  1900	  1904	  1920	  1928	  1934	  1935	  1940	  1942	  1943	  1944	  1957
	  1963	  1964	  1965	  1971	  1999	  2000	  2003	  2009	  2010	  2019	  2021	  2022	  2025	  2026
	  2039	  2053	  2063	  2088	  2139	  2141	  2142	  2144	  2145	  2146	  2148	  2163	  2166	  2174
	  2191	  2192	  2193	  2203	  2213	  2214	  2225	  2261	  2263	  2273	  2274	  2276	  2280	  2281
	  2282	  2283	  2296	  2327	  2328	  2332	  2343	  2344	  2348	  2350	  2351	  2412	  2418	  2441
	  2442	  2443	  2449	  2482	  2483	  2484	  2504	  2521	  2608	  2629	  2630	  2667	  2672	  2674
	  2739	  2741	  2742	  2744	  2748	  2750	  2752	  2758	  2764	  2786	  2797	  2798	  2799	  2801
	  2805	  2806	  2807	  2820	  2832	  2834	  2836	  2839	  2840	  2841	  2842	  2843	  2855	  2856
	  2861	  2862	  2863	  2864	  2865	  2876	  2877	  2878	  2882	  2883	  2886	  2895	  2896	  2897
	  2898	  2901	  2903	  2906	  2910	  2911	  2914	  2917	  2918	  2919	  2920	  2927	  2929	  2931
	  2932	  2933	  2936	  2942	  2943	  2944	  2945	  2946	  2963	  2965	  2967	  2970	  2971	  2972
	  2973	  2974	  2999	  3000	  3001	  3002	  3003	  3004	  3005	  3006	  3007	  3008	  3009	  3010
	  3014	  3015	  3016	  3017	  3023	  3025	  3027	  3028	  3029	  3031	  3037	  3038	  3039	  3040
	  3041	  3049	  3050	  3068	  3070	  3071	  3072	  3081	  3087	  3088	  3089	  3100	  3101	  3104
	  3131	  3132	  3168	  3169	  3183	  3184	  3185	  3191	  3193	  3194	  3195	  3197	  3199	  3201
	  3204	  3211	  3212	  3214	  3217	  3218	  3219	  3223	  3224	  3225	  3228
T3	   692	   696	   720	   737	   738	   742	   746	   750	   787	   824	   849	   851	   853	   854
	   855	   857	   860	   888	   889	   891	   893	   896	   899	   903	   908	   910	   926	   927
	   951	   995	  1063	  1066	  1069	  1073	  1075	  1077	  1078	  1119	  1120	  1173	  1174	  1182
	  1185	  1186	  1197	  1198	  1199	  1212	  1213	  1222	  1243	  1245	  1261	  1263	  1274	  1282
	  1337	  1339	  1351	  1352	  1355	  1356	  1443	  1447	  1451	  1457	  1458	  1460	  1468	  1475
	  1490	  1506	  1558	  1559	  1565	  1566	  1721	  1724	  1726	  1781	  1783	  1784	  1785	  1786
	  1787	  1788	  1794	  1795	  1796	  1829	  1830	  1831	  1832	  1833	  1834	  1835	  1856	  1873
	  1958	  1960	  1961	  1962	  1994	  1995	  2006	  2007	  2008	  2034	  2035	  2036	  2037	  2038
	  2040	  2041	  2042	  2052	  2060	  2061	  2062	  2112	  2114	  2116	  2117	  2118	  2121	  2122
	  2123	  2262	  2264	  2269	  2270	  2271	  2272	  2273	  2275	  2276	  2314	  2315	  2340	  2341
	  2370	  2371	  2372	  2373	  2374	  2378	  2380	  2403	  2404	  2405	  2407	  2408	  2409	  2413
	  2443	  2444	  2445	  2446	  2448	  2450	  2491	  2493	  2495	  2520	  2528	  2529	  2535	  2536
	  2537	  2539	  2540	  2543	  2547	  2548	  2549	  2551	  2553	  2554	  2556	  2558	  2560	  2561
	  2668	  2692	  2712	  2713	  2814	  2815	  2816	  2817	  2825	  2827	  2837	  2858	  2862	  2892
	  2894	  2895	  2898	  2899	  2900	  2901	  2907	  2908	  2909	  2911	  2912	  2934	  2935	  2936
	  2937	  2938	  2940	  2956	  2957	  2958	  2968	  2993	  3001	  3004	  3014	  3030	  3031	  3032
	  3033	  3035	  3082	  3084	  3085	  3086	  3117	  3118	  3120	  3180	  3181	  3205	  3208	  3209
	  3215	  3220	  3221	  3222	  3229
T4	   679	   680	   682	   683	   891	   892	   896	   897	   926	   940	   954	   955	   957	  1003
	  1005	  1070	  1115	  1116	  1118	  1119	  1132	  1133	  1134	  1153	  1154	  1155	  1163	  1164
	  1169	  1191	  1194	  1196	  1208	  1210	  1223	  1224	  1228	  1230	  1236	  1237	  1249	  1250
	  1270	  1272	  1281	  1283	  1348	  1350	  1354	  1367	  1371	  1373	  1380	  1382	  1386	  1388
	  1394	  1395	  1400	  1407	  1441	  1442	  1445	  1446	  1449	  1450	  1462	  1464	  1467	  1476
	  1484	  1491	  1495	  1496	  1497	  1502	  1503	  1505	  1807	  1808	  1823	  1837	  1839	  1840
	  1857	  1858	  1870	  1871	  1872	  1873	  1874	  1875	  1876	  1877	  1948	  1949	  1966	  1967
	  1968	  1972	  1973	  2011	  2012	  2532	  2543	  2544	  2553	  2670	  2671	  2680	  2681	  2682
	  2686	  2703	  2819	  2820	  2821	  2822	  2867	  2868	  2869	  2870	  2906	  2912	  2916	  2922
	  2939	  2940	  2994	  2995	  2996	  2997	  3006	  3010	  3013	  3018	  3034	  3035	  3090	  3091
	  3092	  3181	  3182	  3183	  3190	  3191	  3202	  3203	  3209	  3210	  3211	  3213	  3226	  3227
TIMDSP	  2600	  2614#
TIMREP	   209#	  2131	  2347	  2565	  2745
TIMSTR	   208#	  2349	  2727
UBGOOD	   671	  1512	  1525
UNBVBT	  1540
XMTACK	  1978	  2099	  2216	  2303	  2771#
XMTAK3	  2775#	  2857	  2866
XMTAK4	  2776	  2780#
XMTCTL	  2251	  2730	  2753	  2787	  2802	  2814#
XMTDAT	  2197	  2365	  2562	  2645	  2646	  2854#
XMTDN5	  2327	  2332#
XMTDN6	  2334#	  2342
XMTDNE	  1887	  2327#
XMTDT2	  2860	  2867#
XMTDT3	  2880	  2890#
XMTDT4	  2875	  2891#
XMTMOP	   724	   791	   828	  2991#
XMTMP0	  2994#
XMTNAK	  1951	  2219	  2312	  2356	  2399	  2772	  2796#
XSTART	  2616	  2644	  2725#
Z	   102#	   105	   105#	   106	   106#	   109	   109#	   110	   110#	   111	   111#	   112	   112#	   120
	   120#	   121	   121#	   122	   122#	   123	   123#	   124	   124#	   126	   126#	   135	   135#	   136
	   136#	   137	   137#	   147	   147#	   148	   148#	   150	   150#	   153	   153#	   154	   154#	   155
	   155#	   156	   156#	   157	   157#	   158	   158#	   159	   159#	   160	   160#	   161	   161#	   163
	   163#	   171	   171#	   172	   172#	   180	   180#	   181	   181#	   186	   186#	   187	   187#	   188
	   188#	   193#	   194	   194#	   197	   197#	   200	   200#	   223	   223#	   226	   226#	   228	   228#
	   229	   229#	   231	   231#	   236	   236#	   239	   239#	   240	   240#	   241	   241#	   242	   242#
	   243	   244
$DCHNG	  1721#	  1722#	  1890#	  2056#	  2096#	  2101#	  2264#	  2713#
$DCPLE	  1997#
$DDACI	   958#	  1024#	  2680#
$DDBAK	  1644#	  1655#	  1663#	  1677#
$DDDRP	   693#	   985#	  1619#	  1621#	  1899#	  2009#	  2037#	  2340#	  2819#	  2910#	  3008#
$DDHMA	  2113#	  2127#	  2628#	  2748#	  2858#
$DDHXM	  2632#	  2861#	  2892#	  2907#	  2909#
$DDINP	  1132#	  1134#	  1994#	  2006#	  2008#	  2040#	  2042#
$DDINT	  2027#	  2044#	  2602#	  2604#
$DDIPC	  1624#	  2701#
$DDLMX	  2288#	  2629#	  2635#
$DDLNK	   698#	  1646#	  1654#	  1662#	  1771#	  2669#
$DDNCD	  2354#	  2384#	  2771#	  2796#	  2804#	  2808#
$DDREP	  2134#	  2156#	  2739#	  2744#
$DDRMN	  1934#	  1974#	  1976#	  2213#	  2783#	  2797#	  2899#
$DDSEL	  2357#	  2718#	  2821#	  2823#	  2902#	  2904#
$DDSFC	  1736#	  2709#	  2717#
$DDSPC	  1038#	  1623#	  2688#	  2690#	  2702#
$DDSSP	  1032#	  2672#	  2707#
$DDSTA	   764#	   802#	   835#	   924#	  1062#	  1316#	  1616#	  1731#	  1735#	  1904#	  2244#	  2254#	  2261#	  2265#
	  2305#	  2344#	  2358#	  2407#	  2498#	  2585#	  2599#	  2638#	  2682#	  2740#	  3058#
$DDSTB	   692#	  1640#	  1643#	  1653#	  1678#	  1680#
$DDSTT	   686#	  1645#	  1652#	  1674#	  1676#	  2670#
$DDTIM	  1318#	  2132#	  2158#	  2246#	  2266#	  2350#	  2352#	  2563#	  2566#	  2591#	  2594#	  2624#	  2698#	  2728#
	  2746#
$DDXAK	  2255#	  2636#	  2725#	  2773#	  2780#	  2789#	  2872#
$DDXRP	  2737#
$DRVCO	  2479#
$DRVFL	  2479#
$DRVLE	  2479#
$DRVMS	  2479#
$KDPSR	    59	    59#
$LINSR	  1007#	  1056#	  1626#	  1728#	  1740#	  1948#	  1972#
$MOPST	   710#	   756#	   806#	  3049#	  3168#
$MOPTM	  3052#	  3115#	  3147#	  3150#	  3171#
$MPBLE	  2993#
$MPBPT	  2999#
$MPFLG	   713#	   783#	   786#	   820#	   823#	  3131#
$MPPOS	  3117#
$MPRLE	   747#	   849#	  3100#
$MPRPT	  3108#
%DCHNG	  1721	  1722	  1890	  2056	  2096	  2101	  2264	  2713
%DDACI	   958	  1024	  2680
%DDBAK	  1644	  1655	  1663	  1677
%DDDRP	   693	   985	  1619	  1621	  1899	  2009	  2037	  2340	  2819	  2910	  3008
%DDHMA	  2113	  2127	  2628	  2748	  2858
%DDHXM	  2632	  2861	  2892	  2907	  2909
%DDINP	  1132	  1134	  1994	  2006	  2008	  2040	  2042
%DDINT	  2027	  2044	  2602	  2604
%DDIPC	  1624	  2701
%DDLMX	  2288	  2629	  2635
%DDLNK	   698	  1646	  1654	  1662	  1771	  2669
%DDNCD	  2354	  2384	  2771	  2796	  2804	  2808
%DDREP	  2134	  2156	  2739	  2744
%DDRMN	  1934	  1974	  1976	  2213	  2783	  2797	  2899
%DDSEL	  2357	  2718	  2821	  2823	  2902	  2904
%DDSFC	  1736	  2709	  2717
%DDSPC	  1038	  1623	  2688	  2690	  2702
%DDSSP	  1032	  2672	  2707
%DDSTA	   764	   802	   835	   924	  1062	  1316	  1616	  1731	  1735	  1904	  2244	  2254	  2261	  2265
	  2305	  2344	  2358	  2407	  2498	  2585	  2599	  2638	  2682	  2740	  3058
%DDSTB	   692	  1640	  1643	  1653	  1678	  1680
%DDSTT	   686	  1645	  1652	  1674	  1676	  2670
%DDTIM	  1318	  2132	  2158	  2246	  2266	  2350	  2352	  2563	  2566	  2591	  2594	  2624	  2698	  2728
	  2746
%DDXAK	  2255	  2636	  2725	  2773	  2780	  2789	  2872
%DDXRP	  2737
%LINSR	  1007	  1056	  1626	  1728	  1740	  1948	  1972
%MOPST	   710	   756	   806	  3049	  3168
%MOPTM	  3052	  3115	  3147	  3150	  3171
%MPBLE	  2993
%MPBPT	  2999
%MPFLG	   713	   783	   786	   820	   823	  3131
%MPPOS	  3117
%MPRLE	   747	   849	  3100
%MPRPT	  3108
..0001	  1295#	  1295
..0002	  1535#	  1535
..0003	  1591#	  1591
..0004	  1605#	  1605
..0005	  1614#	  1614
..0006	  1794#	  1794
..0007	  1817#	  1817
..0010	  1865#	  1865
..0011	  1921#	  1921
..0012	  2239#	  2239
..0013	  2340#	  2340
..0014	  2419#	  2419
..0015	  2429#	  2429
..0016	  2490#	  2490
..0017	  2765#	  2765
.A16	  1997	  2479
.BOOT	   644#
.BTCNT	   807	   850	   853
.BTCOD	  1023	  1043	  1051
.BTKCC	  1194	  1210	  1224	  1371	  1382	  1580
.BTKCP	  1195	  1211	  1218	  1372	  1383	  1582
.BTKDC	  1228	  1237	  1250	  1386	  1395
.BTKDP	  1229	  1238	  1244	  1387	  1396
.BTKER	  1289
.BTKMC	   664	  1578
.BTKML	  1585
.BTKRC	  1270	  1283	  1348	  1367
.BTKRP	  1271	  1284	  1349	  1368
.BTKSA	  1260	  1576	  1584
.BTLEN	   879	  1101	  1104	  1107	  1111
.BTLID	  1497	  1502
.BTLPT	   818
.BTMPT	   856
.BTMSG	   888	   899	  1112	  1122
.BTPRI	  1031	  1037
.BTPRT	   678	   971	  1130	  1483
.BTPRV	   925	  1078
.BTPSW	   421#
.BTRCC	  1447
.BTROM	   649	   650	   659
.BTSCC	  1443
.BTSEC	   781
.BTTCC	  1451
.BTZTM	  1440
.MPDMC	   419#	   743
.MPLDT	   415#	   771
.MPMOP	   417#	   718
.MPRQD	   416#
.MPRQP	   418#	   739
.RESNP	   768	   812	   884	  1598	  1607	  2003	  2504	  3104
.RESP1	   767	   811	   883	  1597	  1606	  2002	  2503	  3103
.VNCBL	   932	  1077
.VNCNL	   930	  1075
.VNDDC	   928	  1069
.VNMOP	   934	  1063
.XSTKS	  1997	  2479
BADHDR	  1916	  1921
BCIO	   940	   954	  1003	  1005	  1698	  1823
BOOT	  1586
BSIO	   955	   957	  1783
BUG	  1290	  1530	  1587	  1600	  1609	  1789	  1812	  1861	  1916	  2234	  2335	  2414	  2424	  2485
	  2760
CALL	   659	   671	   704	   705	   724	   740	   744	   752	   754	   763	   769	   788	   791	   801
	   813	   825	   828	   834	   847	   864	   878	   885	   911	   918	   919	   942	   961	   983
	  1001	  1010	  1012	  1022	  1030	  1036	  1042	  1050	  1061	  1099	  1140	  1146	  1147	  1168
	  1171	  1176	  1180	  1190	  1231	  1235	  1239	  1241	  1269	  1286	  1331	  1336	  1338	  1340
	  1347	  1358	  1360	  1362	  1363	  1364	  1365	  1366	  1389	  1391	  1401	  1403	  1411	  1430
	  1438	  1444	  1448	  1452	  1473	  1489	  1501	  1512	  1525	  1529	  1543	  1599	  1608	  1614
	  1627	  1703	  1718	  1729	  1741	  1860	  1894	  1929	  1949	  1951	  1973	  1978	  2004	  2043
	  2054	  2064	  2099	  2106	  2142	  2151	  2195	  2197	  2216	  2219	  2240	  2251	  2277	  2283
	  2303	  2312	  2316	  2320	  2334	  2356	  2359	  2365	  2393	  2397	  2399	  2419	  2423	  2432
	  2436	  2505	  2516	  2522	  2562	  2587	  2597	  2600	  2609	  2626	  2639	  2705	  2706	  2730
	  2753	  2766	  2787	  2802	  2847	  2950	  2978	  3045	  3075	  3096	  3105	  3116	  3120	  3133
	  3141	  3155
CALLRE	   913
CONCHK	  1290	  1530	  1587	  1600	  1609	  1789	  1812	  1861	  1916	  2234	  2335	  2414	  2424	  2485
	  2760
DCPLEN	  1997#	  1997	  1999	  2011
DDCSTR	  2234	  2239
DDCTIM	  2760	  2765
DDLCOR	  1600	  1605
DEFSTR	   107	   108	   114	   117	   118	   119	   164	   168	   173	   174	   175	   176	   179	   182
	   183	   184	   195	   196	   198	   199	   201	   207	   211	   212	   213	   214	   215	   216
	   217	   232	   233	   234	   235	   237	   238
DOLOC1	  1294	  1816	  1920	  2238	  2418	  2764
DOLOC2	  1294	  1816	  1920	  2238	  2418	  2764
DOLOCS	  1294	  1534	  1591	  1604	  1613	  1793	  1816	  1865	  1920	  2238	  2339	  2418	  2428	  2489
	  2764
DRVCOD	  2479#	  2479	  2481	  2557
DRVFLG	  2479#	  2479	  2493	  2518
DRVLEN	  2479#	  2479	  2492	  2520	  2559
DRVMSG	  2479#	  2479	  2482	  2521	  2555
DSRLST	  2414	  2419
DUPCOR	  1609	  1614
DUPUBA	  1530	  1535
ENDSV.	  1999#	  2481#
ERJMP	  1587
EXTN	    61	    62	    63	    64
GGLOBS	    59
ITERR	   647	   651	   660	   672	   681	   697	   974	  1109
KMCBRK	  1290	  1295
KMCFST	  1861	  1865
KMCIII	  1812	  1817
KMCLOD	  1587	  1591
KMCNTI	  1789	  1794
KMCNXM	  2424	  2429
LOAD	   686	   692	   693	   698	   747	   764	   783	   802	   820	   835	   849	   924	   985	  1062
	  1132	  1640	  1645	  1662	  1663	  1674	  1677	  1678	  1721	  1728	  1731	  1740	  1771	  1890
	  1899	  1904	  1934	  1948	  1972	  1974	  1994	  2006	  2009	  2037	  2040	  2113	  2213	  2261
	  2340	  2344	  2350	  2354	  2357	  2358	  2407	  2498	  2563	  2585	  2591	  2599	  2602	  2628
	  2629	  2632	  2638	  2669	  2670	  2672	  2680	  2682	  2688	  2701	  2707	  2709	  2739	  2740
	  2748	  2771	  2783	  2797	  2804	  2819	  2821	  2858	  2861	  2899	  2902	  2907	  2910	  3008
	  3049	  3058	  3117	  3131	  3147	  3168
MCENT	   644
MDISMS	   728	   843	  2513
MOVX	   775	   958	  1598	  1607	  1722	  1736	  2027	  2044	  2255	  2288	  2403	  2504	  2604	  2624
	  2636	  2718	  2725	  2737	  2773	  2789	  2808	  2823	  2872	  2904
MRETNG	   661
MSGCLB	  2335	  2340
MSGPTR	  2485	  2490
NOINT	  1008	  1428
OKINT	  1011	  1433
OPSTR	  2096	  2780
PIOFF	   861	  1131	  1639	  1661	  1720	  1782	  2268	  2515	  2523	  2582	  3136
PION	   865	  1141	  1648	  1656	  1669	  1681	  1727	  1738	  1742	  1797	  2278	  2290	  2517	  2567
	  2588	  2601	  3142
RDIO	   921	   926	  1070	  1155	  1172	  1181	  1216	  1242	  1352	  1378	  1392	  1405	  1691	  1808
	  1851	  1854	  1856
RESCD	   425	  1638	  1686	  1762	  1778
RET	   673	   688	   691	   695	   725	   731	   741	   745	   753	   766	   770	   792	   804	   814
	   829	   837	   839	   848	   852	   886	   923	   978	   987	  1055	  1296	  1301	  1343	  1425
	  1434	  1469	  1507	  1513	  1553	  1569	  1591	  1592	  1629	  1649	  1657	  1670	  1682	  1706
	  1715	  1747	  1768	  1798	  1996	  2005	  2029	  2046	  2058	  2065	  2165	  2169	  2291	  2451
	  2478	  2500	  2508	  2510	  2581	  2613	  2627	  2640	  2699	  2731	  2732	  2754	  2755	  2767
	  2779	  2782	  2788	  2791	  2803	  2810	  2818	  2871	  2951	  2979	  2998	  3106	  3119	  3124
	  3134	  3143	  3152	  3156	  3206	  3230
RETBAD	   923	  1996	  2005
RETSKP	   757	   793	   830	   866	   914	   943	   952	   962	   996	  1016	  1025	  1033	  1039	  1047
	  1057	  1079	  1102	  1142	  1287	  1397	  1455	  1485	  1498	  1765	  1772	  2014	  2155	  2159
	  2721	  2848	  3053	  3109	  3112
SAVEP	  1687	  2475	  2577
SETONE	  2027	  2044	  2255	  2636	  2718	  2773
SETZRO	   958	  1722	  1736	  2288	  2604	  2624	  2725	  2737	  2789	  2808	  2823	  2872	  2904
STKVAR	  1997	  2479
STOR	   710	   713	   756	   786	   806	   823	  1007	  1024	  1032	  1038	  1056	  1134	  1316	  1318
	  1616	  1619	  1621	  1623	  1624	  1626	  1643	  1644	  1646	  1652	  1653	  1654	  1655	  1676
	  1680	  1735	  1976	  2008	  2042	  2056	  2101	  2127	  2132	  2134	  2156	  2158	  2244	  2246
	  2254	  2264	  2265	  2266	  2305	  2352	  2384	  2566	  2594	  2635	  2690	  2698	  2702	  2713
	  2717	  2728	  2744	  2746	  2796	  2892	  2909	  2993	  2999	  3052	  3100	  3108	  3115	  3150
	  3171
SWAPCD	   461	  1712
TNXEND	    59#	  3232
TTITLE	    58
TXNE	  2405
TXNN	   646	  2495
TXO	   784	   910	  1157	  1183	  1220	  1246
TXZ	   785	   821	   822
UMOVE	   648	   655	   664	   678	   807	   879	   888	   925	   971	  1023	  1031	  1037	  1043	  1051
	  1112	  1194	  1195	  1210	  1211	  1228	  1229	  1237	  1238	  1260	  1270	  1271	  1348	  1349
	  1371	  1372	  1386	  1387	  1457	  1458	  1502
UMOVEM	   853	   899	  1078	  1104	  1111	  1122	  1218	  1224	  1244	  1250	  1283	  1284	  1367	  1368
	  1382	  1383	  1395	  1396	  1440	  1460	  1468	  1483	  1497
WRIO	  1149	  1154	  1174	  1178	  1188	  1198	  1201	  1203	  1205	  1207	  1213	  1215	  1234	  1254
	  1256	  1257	  1258	  1259	  1278	  1282	  1323	  1324	  1325	  1326	  1375	  1377	  1419	  1420
	  1422	  1424	  1432	  1541	  1837	  1839	  1840	  1858
X	    98#	   105	   106	   109	   110	   111	   112	   120	   121	   122	   123	   124	   126	   135
	   136	   137	   147	   148	   150	   153	   154	   155	   156	   157	   158	   159	   160	   161
	   163	   171	   172	   180	   181	   186	   188	   194	   197	   200	   223	   226	   228	   229
	   231	   236	   239	   240	   241	   242	   244
XBLTMU	   860	  1128
XBLTUM	   782	   819	   904
XCTBU	   896	  1120	  1200	  1217	  1233	  1243	  1273	  1277	  1353	  1379	  1393	  1406	  1466	  1476
	  1484	  1491	  1495	  1496
XCTU	   648	   655	   664	   678	   781	   807	   818	   850	   853	   856	   879	   888	   899	   925
	   971	  1023	  1031	  1037	  1043	  1051	  1078	  1101	  1104	  1107	  1111	  1112	  1122	  1130
	  1194	  1195	  1210	  1211	  1218	  1224	  1228	  1229	  1237	  1238	  1244	  1250	  1260	  1270
	  1271	  1283	  1284	  1348	  1349	  1367	  1368	  1371	  1372	  1382	  1383	  1386	  1387	  1395
	  1396	  1440	  1457	  1458	  1460	  1468	  1483	  1497	  1502
XGLOBS	    59
XJEN	  1843	  2455
XPCW	  1555
%DCHNG	   214#	  1721	  1722	  1890	  2056	  2096	  2101	  2264	  2713
%DDACI	   216#	   958	  1024	  2680
%DDBAK	   196#	  1644	  1655	  1663	  1677
%DDDRP	   198#	   693	   985	  1619	  1621	  1899	  2009	  2037	  2340	  2819	  2910	  3008
%DDHMA	   234#	  2113	  2127	  2628	  2748	  2858
%DDHXM	   233#	  2632	  2861	  2892	  2907	  2909
%DDINP	   117#	  1132	  1134	  1994	  2006	  2008	  2040	  2042
%DDINT	   118#	  2027	  2044	  2602	  2604
%DDIPC	   238#	  1624	  2701
%DDLMX	   199#	  2288	  2629	  2635
%DDLNK	   195#	   698	  1646	  1654	  1662	  1771	  2669
%DDNCD	   212#	  2354	  2384	  2771	  2796	  2804	  2808
%DDREP	   235#	  2134	  2156	  2739	  2744
%DDRMN	   232#	  1934	  1974	  1976	  2213	  2783	  2797	  2899
%DDSEL	   215#	  2357	  2718	  2821	  2823	  2902	  2904
%DDSFC	   217#	  1736	  2709	  2717
%DDSPC	   237#	  1038	  1623	  2688	  2690	  2702
%DDSSP	   119#	  1032	  2672	  2707
%DDSTA	   201#	   764	   802	   835	   924	  1062	  1316	  1616	  1731	  1735	  1904	  2244	  2254	  2261
	  2265	  2305	  2344	  2358	  2407	  2498	  2585	  2599	  2638	  2682	  2740	  3058
%DDSTB	   108#	   692	  1640	  1643	  1653	  1678	  1680
%DDSTT	   107#	   686	  1645	  1652	  1674	  1676	  2670
%DDTIM	   207#	  1318	  2132	  2158	  2246	  2266	  2350	  2352	  2563	  2566	  2591	  2594	  2624	  2698
	  2728	  2746
%DDXAK	   211#	  2255	  2636	  2725	  2773	  2780	  2789	  2872
%DDXRP	   213#	  2737
%LINSR	   114#	  1007	  1056	  1626	  1728	  1740	  1948	  1972
%MOPST	   164#	   710	   756	   806	  3049	  3168
%MOPTM	   168#	  3052	  3115	  3147	  3150	  3171
%MPBAD	   174#
%MPBLE	   179#	  2993
%MPBPT	   173#	  2999
%MPFLG	   176#	   713	   783	   786	   820	   823	  3131
%MPPOS	   175#	  3117
%MPRAD	   183#
%MPRLE	   184#	   747	   849	  3100
%MPRPT	   182#	  3108
.XCMSY	    59