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