Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/loader/terdmc.list
There are no other files named terdmc.list in the archive.
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34
C11DMC.MAC 10-AUG-79 16:08 TABLE OF CONTENTS
178 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
231 END OF MODULE CHKDEF
232
240 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
304 STOPCD'S
338 GENERAL MACRO DEFINITIONS
578 PDP-11 EIS EMULATORS
734 SYMBOL DEFINITIONS
797 HARDWARE DEFINITIONS
798 VECTORS
818 DEVICES
819 CD20 - PUNCHED CARD READER
889 CR11 - PUNCHED/MARK SENSE CARD READER
912 CTY - CONSOLE TELETYPE
931 DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
972 DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
974 DL10 - UNIBUS-TO-MBUS INTERFACE
1002 DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
1055 DM11BB - MODEM CONTROLLER FOR DH11
1072 DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1096 DN11 - AUTODIALER
1114 DP11 - SYNCHRONOUS LINE INTERFACE
1146 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1267 DS11 - SYNCHRONOUS LINE INTERFACE
1355 DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1402 DU11 - SYNCHRONOUS LINE CONTROLLER
1404 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1494 DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1511 EIA PIN DEFINITIONS
1539 KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1570 KT11 - MEMORY MANAGEMENT MODULE
1648 KW11 - LINE TIME CLOCK
1665 LP11 - LINE PRINTER CONTROLLER
1685 LP20 - LINEPRINTER CONTROLLER
1776 MM11-LP PARITY MEMORY
1788 PA611 - TYPESET READER/PUNCH
1794 PC11 - PAPER TAPE READER/PUNCH INTERFACE
1821 TC11 - DECTAPE CONTROLLER
1879 TM11 - MAGNETIC TAPE CONTROLLER
1944 END OF DEVICE DEFINITIONS
2997 MODULE END
2998
3300 CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3370 CHK11 MACROS
3371 CK11SC
3425 $CKINT
3457 DEVICE
3535 CHKCHR
3551 CKVECT, CKVEC1
3636 CHK11 DEVICE NAME TABLE
3718 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4053 CHECK KT11 HARDWARE
4281 CHECK MEMORY - SLIDING BIT PATTERN
4467 CHECK KW11-L HDW
4524 CHECK DL10 HDW
4560 DEVICE SCAN AND CHECK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34
C11DMC.MAC 10-AUG-79 16:08 TABLE OF CONTENTS
4659 CHK11 COMPLETION
4675 END OF CHK11 MAINLINE
4677 GENERAL SUBROUTINES
4680 LOOK FOR AND CHECK SYSTEM DEVICES
4886 BIT BY BIT SET/CLEAR TEST
4936 BIT SET/BIT CLEAR TEST FOR DL10
4958 PRINT DEVICE ID ROUTINE
4983 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5024 CHECK INTERRUPTS AND FIND DEVICE LEVEL
5116 GENERAL INTERRUPT FIELDER FOR CHK11
5168 DEVICE DIAGNOSTICS
5183 CHECK CD20 HARDWARE
5243 CHECK CR11 HARDWARE
5293 CHECK DH11 HDW
5496 CHECK DL11-A HDW
5504 CHECK DL11-E HDW
5525 CHECK DM11BB HDW
5573 CHECK DN11 HDW
5588 CHECK DP11 HDW
5612 CHECK DQ11 HDW
5929 CHECK DS11 HDW
5981 CHECK DTE20 HARDWARE
6024 CHECK DU11 HDW
6036 CHECK DUP11 HDW
6060 CHECK DZ11 HDW
6083 CHECK KG11 HARDWARE
6130 CHECK KMC/DMC HARDWARE
6381 CHECK LP11 HARDWARE
6402 CHECK LP20 HARDWARE
6460 CHECK MD11 HDW
6472 DUMMY NULL DEVICE CHECKER
6478 CHECK PA611P HARDWARE
6491 CHECK PA611R HARDWARE
6504 CHECK PP11 HARDWARE
6520 CHECK PR11 HARDWARE
6549 CHECK RH11 HARDWARE
6563 CHECK TC11 HARDWARE
6596 CHECK TM11 HARDWARE
6609 NULL DIAGNOSTIC
6624 TTY SUPPORT FOR TYPE OUTS
6802 REMOTE OUTPUT HANDLER
6873 UNEXPECTED BUS TRAP HANDLER
6889 CK11SC/TRAP INSTRUCTION HANDLER
7050 MODULE END
7051 PROGRAM END
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1
C11DMC.MAC 10-AUG-79 16:08
1 .TITLE CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
2 .IDENT /X2A.21/
3 000000 .REPT 0
4 :
5 : : :
6 : :
7 :::: :::: : ::: : : :: :: :: ::: : :::: :::::
8 : : : : : : : : :: : : : : : : :
9 : : : : : : : : : : : : : :
10 : : : : : : : : : : : : : :
11 : : : : :::: :::: : : :::: : : : :
12 :::: :::: : : ::: ::: : : : ::
13 : : : : :
14 :: ::: :::
15
16 AND
17
18 ::
19 : : :: :
20 : :
21 :::: :: ::: ::: : ::: :: : :: :: ::: :: ::
22 : : : : : : : : : : : : : : :: :
23 : : : ::: : : :::: : : : : ::::: :
24 : : : : : : : : : : : : : :
25 : : : : : : : : : : : : : : : : :
26 ::: : ::: ::: ::: ::: ::: : ::: : : : ::: :::
27
28
29 COPYRIGHT (C) 1976,1977,1978,1979 BY
30 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
31
32 THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
33 ONLY IN ACORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
34 INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
35 COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAIABLE TO ANY
36 OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
37 TRANSFERRED.
38 T
39 THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
40 AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
41 CORPORATION.
42 C
43 DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
44 SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
45 .ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-1
C11DMC.MAC 10-AUG-79 16:08
47 000000 .REPT 0
48 .TITLE CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
49 :
50 : : :
51 : :
52 :::: :::: : ::: : : :: :: :: ::: : :::: :::::
53 : : : : : : : : :: : : : : : : :
54 : : : : : : : : : : : : : :
55 : : : : : : : : : : : : : :
56 : : : : :::: :::: : : :::: : : : :
57 :::: :::: : : ::: ::: : : : ::
58 : : : : :
59 :: ::: :::
60
61 AND
62
63 ::
64 : : :: :
65 : :
66 :::: :: ::: ::: : ::: :: : :: :: ::: :: ::
67 : : : : : : : : : : : : : : :: :
68 : : : ::: : : :::: : : : : ::::: :
69 : : : : : : : : : : : : : :
70 : : : : : : : : : : : : : : : : :
71 ::: : ::: ::: ::: ::: ::: : ::: : : : ::: :::
72
73
74 COPYRIGHT (C) 1976,1977,1978,1979 BY
75 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
76
77 THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
78 ONLY IN ACORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
79 INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
80 COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAIABLE TO ANY
81 OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
82 TRANSFERRED.
83 T
84 THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
85 AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
86 CORPORATION.
87 C
88 DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
89 SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
90 .ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-2
C11DMC.MAC 10-AUG-79 16:08
92 ;**********************************************************************;
93 ; ;
94 ; EDIT HISTORY AND VERSION DOCUMENTATION ;
95 ; (ALSO SEE VERSION INFO IN CHK11 BODY) ;
96 ; ;
97 ; THIS MODULE IS A COMBINED TERTIARY LOADER AND HARDWARE CHECKING ;
98 ; PROGRAM. IT IS LOADED BY A SECONDARY LOADER, AND GIVEN CONTROL ;
99 ; AT THE TOP. THE "CHECK11" HARDWARE EXERCISER IS THEN INVOKED, ;
100 ; AFTER WHICH THE LOADER LOADS THE SPECIFIED OPERATING SYSTEM. ;
101 ; ;
102 ; "TERBOT" AND "CHK11" WERE DEVELOPED SEPERATELY. THIS EDIT HISTORY ;
103 ; BEGINS WITH VERSION 2A.0, THE FIRST TO COMBINE THE MODULES. ONLY ;
104 ; EDITS WHICH CHANGE THE SENSE OF THE CODE ARE DOCUMENTED HERE; TYPO ;
105 ; CORRECTIONS AND SUCH CHANGE THE EDIT NUMBER BUT THE CHANGES ARE NOT ;
106 ; FLAGGED. ;
107 ; ;
108 ;**********************************************************************;
109 ; ;
110 ; EDIT HISTORY: ;
111 ; X2A.00 10-NOV-78 L. WEBBER ;
112 ; ORIGINAL COMBINATION OF TERBOT AND CHK11 ;
113 ; (CORRESPONDS TO DTE CHK11 VERSION 2A.05) ;
114 ; .01 7-DEC-78 L. WEBBER ;
115 ; INTEGRATE CHK11 UPDATES FROM DTE VERSION ;
116 ; (CORRESPONDS TO DTE CHK11 VERSION 2A.11) ;
117 ; .02 7-DEC-78 L. WEBBER ;
118 ; SKIP DEVICE DIAGNOSTICS FOR LOAD DEVICE ;
119 ; (NOT RELEVANT TO DTE CHK11) ;
120 ; .03 8-DEC-78 L. WEBBER ;
121 ; SAVE AND RESTORE PAGE 6 MAPPING REGISTERS FOR ;
122 ; MEMORY MANAGEMENT TEST ;
123 ; (NOT RELEVANT TO DTE CHK11) ;
124 ; .04 20-DEC-78 L. WEBBER ;
125 ; MOVE DMC INITIALIZATION CODE OUT OF RELOCATED ;
126 ; CODE SO THAT IT IS DONE BEFORE CHK11 STARTS; ;
127 ; FIX CALL TO DMC DRIVER IN CHK11 TO RESTORE THE ;
128 ; SP BEFORE INVOKING IT. ;
129 ; (NOT RELEVANT TO DTE CHK11) ;
130 ; .05 22-JAN-79 L. WEBBER ;
131 ; FIX STACK SETUP IN "SETREG" TERBOT ROUTINE ;
132 ; (NOT RELEVANT TO DTE CHK11) ;
133 ; .06 24-JAN-79 L. WEBBER ;
134 ; USE PAGE 5 INSTEAD OF PAGE 6 FOR MEMORY ;
135 ; TESTING. ;
136 ; (NOT RELEVANT TO DTE CHK11) ;
137 ; .07 13-FEB-79 L. WEBBER ;
138 ; RECODE ALL EXPRESSIONS WHICH USE COMPLEX ;
139 ; RELOCATION. ;
140 ; (NOT RELEVANT TO DTE CHK11) ;
141 ; .09 28-MAR-79 L. WEBBER ;
142 ; DON'T USE R5 IN CHKBIT; THE REMOTE REPORTING ;
143 ; CODE KILLS IT ;
144 ; (NOT RELEVANT TO DTE CHK11) ;
145 ; .10 28-MAR-79 L. WEBBER ;
146 ; .11 SAVE & RESTORE R5 IN VARIOUS PLACES THE REMOTE ;
147 ; REPORTING CODE MIGHT KILL IT ;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-3
C11DMC.MAC 10-AUG-79 16:08
148 ; (NOT RELEVANT TO DTE CHK11) ;
149 ; .12 29-MAR-79 L. WEBBER ;
150 ; FIX TYPO IN TERTIARY; PUT IN CODE TO HALT THE ;
151 ; PROCESSOR IF THE TERTIARY GETS AN EARLY TRAP ;
152 ; TO 4. ;
153 ; (NOT RELEVANT TO DTE CHK11) ;
154 ; .14 29-MAR-79 L. WEBBER ;
155 ; TAKE OUT "DO YOU WANT TO CONTINUE" ;
156 ; (CORRESPONDS TO DTE CHK11 2A.12) ;
157 ; .15 29-MAR-79 L. WEBBER ;
158 ; .16 MODIFY CR11/CD20 DIFFERENTIATION CODE ;
159 ; (CORRESPONDS TO DTE CHK11 2A.13) ;
160 ; .17 19-APR-79 L. WEBBER ;
161 ; FIX BUG IN CR11 DIFFERENTIATION CODE ;
162 ; (CORRESPONDS TO DTE CHK11 2A.14) ;
163 ; .18 19-APR-79 L. WEBBER ;
164 ; FIX TYPO IN FIRST HALF OF TERTIARY ;
165 ; (NOT RELEVANT TO DTE CHK11) ;
166 ; .19 30-APR-79 L. WEBBER ;
167 ; FIX REGISTER DESTRUCTION IN "CHKDEV" ;
168 ; .20 21-JUN-79 L. WEBBER ;
169 ; ADD DEVICE CHECKOUT FOR KDZ'S KMCS ;
170 ; (CORRESPONDS TO DTE CHK11 2A.16) ;
171 ; .21 10-AUG-79 L. WEBBER ;
172 ; MODIFY MEMORY MANAGEMENT TEST TO SET UP ;
173 ; PDR 5 BEFORE USING IT ;
174 ; (CORRESPONDS TO DTE CHK11 2A.17) ;
175 ; ;
176 ;**********************************************************************;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-4
C11DMC.MAC 10-AUG-79 16:08 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
178 .SBTTL CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
179 ;
180 ;
181 000042 PDP11 = 34. ; EXPECTED CPU IS 11/34
182 ;
183 ;;;; CKSTD = 0 ; SYSTEM CONFIGURATION IS PDP-11 STANDARD
184 000043 CKDN2X = 1!2!40 ; SYSTEM CONIGURATION IS DN20, DN21, OR DN25
185 ; (SPECIFIED BY BIT NUMBERS SET IN CKDN2X DEF -
186 ; B0 SAYS DN20, B1 SAYS DN21, B5 SAYS DN25)
187 177777 INCLUD = -1 ;
188 000000 EXCLUD = 0 ;
189 ;
190 ; CKNODV = 0 ; IF DEFINED, LIST NONEXISTENT DEVICES
191 ;
192 000000 M$$MGE = 0 ; IF DEFINED, ASSEMBLE FOR MAPPED SYSTEM
193 ;
194 ;
195 ;
196 177777 FTCD20 = INCLUD
197 177777 FTCR11 = INCLUD
198 000000 FTDH11 = EXCLUD
199 000000 NDH11 = 1&FTDH11 ;NUMBER OF DH11'S
200 000000 FTDJ11 = EXCLUD
201 000000 FTDL10 = EXCLUD
202 000000 FTDL1A = EXCLUD
203 177777 FTDL1E = INCLUD
204 000000 FTDM11 = INCLUD&FTDH11 ;DM11BB DEPENDS ON EXISTENCE OF DH11
205 000120 DM.TIM = 80. ; DM11BB SETTLE TIME IN MEM CYCLES
206 177777 FTDMC = INCLUD
207 000000 FTDN11 = EXCLUD
208 000000 FTDP11 = EXCLUD
209 000000 FTDQ11 = EXCLUD
210 000000 SPCVFY = EXCLUD&FTDQ11 ;DQ11 SPECIAL CHARACTER TEST
211 000000 FTDS11 = EXCLUD
212 177777 FTDTE = INCLUD
213 000000 FTDU11 = EXCLUD
214 177777 FTDUP1 = INCLUD
215 177777 FTDZ11 = INCLUD
216 000000 FTKG11 = EXCLUD
217 177777 FTKMC = INCLUD&FTDMC ;KMC IS SUPERSET OF DMC
218 000000 FTKMCL = EXCLUD&FTKMC ;INCLUDE ONLY IF CRAM IMAGE IS SUPPLIED
219 177777 FTLE11 = INCLUD
220 177777 FTLP20 = INCLUD
221 000000 FTMD11 = EXCLUD
222 000000 FTPA61 = EXCLUD
223 000000 FTPP11 = EXCLUD
224 000000 FTPR11 = EXCLUD
225 000000 FTRH11 = EXCLUD
226 000000 FTRK11 = EXCLUD
227 000000 FTRX11 = EXCLUD
228 000000 FTTC11 = EXCLUD
229 000000 FTTM11 = EXCLUD
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-5
C11DMC.MAC 10-AUG-79 16:08 END OF MODULE CHKDEF
231 .SBTTL END OF MODULE CHKDEF
232 .SBTTL
233 ;****************************************************************
234 ;
235 ; END OF CHKDEF
236 ;
237 ;****************************************************************
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-6
C11DMC.MAC 10-AUG-79 16:08
239 .TITLE S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
240 .SBTTL S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
241 ;
242 ;
243 ;
244 ;
245 ;
246 ;
247 ;
248 ;
249 ;
250 ;
251 ;
252 ;
253 ; COPYRIGHT 1974, 1975, 1976,1977
254 ; DIGITAL EQUIPMENT CORP., MAYNARD MASS.
255 ;
256 ; SEPT 25,1974 - DMCC/EGF/LAD/EJW/TEP
257 ;
258 ;
259 ;
260 ;
261 ;
262 ;
263 ;
264 ;
265 ;
266 ;
267 ;
268 ;
269 000002 VRS = 02 ;FILE EDIT NUMBER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-7
C11DMC.MAC 10-AUG-79 16:08 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
271 .ENABL LC ;LOWER CASE IS LOWER CASE
272 .ENABL AMA ;USE ABSOLUTE RATHER THAN RELATIVE PC ADDRESSING
273 ;;;; .DSABL GBL ;DISABLE GLOBAL REFERENCES
274 ;;;; .LIST MC,MD,ME ;
275 ;;;; .NLIST CND ;
276 ;;;; .LIST MEB ;LIST ONLY CODE PRODUCING PARTS OF MACROS
277 ;
278 ; DGUTS NON ZERO REQUESTS THE "DON'T GIVE UP THE SHIP" FAILSOFT FEATURE
279 ;
280 .IIF NDF DGUTS,DGUTS=0
281 ;
282 001 .IF NE DGUTS
283 ;IF WE'RE NOT TO GIVE UP THE SHIP, TURN OFF DEBUGGING TRAPS
284 ;THEN WE'LL DIE ONLY ON HARD ERRORS.
285 DEBUG=0
286 FTASRT=0
287 FT.CHK=0
288 000 .ENDC
289 ;
290 .IIF NDF FT.HLP,FT.HLP= 1 ;1 = TYPE OUT STOPCD INFORMATION
291 ;
292 .IIF NDF DEBUG,DEBUG=1 ;LEVEL OF DEBUG CODE INCLUDED
293 ; 0 = NONE = KEEP AS SMALL AS POSSIBLE
294 ; 1 = SOME - KEEP TRACKS, DIE ON SOME ERRORS
295 ; -1 = DIE ON ALL ERRORS
296 ;
297 .IIF NDF STKLEN,STKLEN= 200 ;LENGTH OF SYSTEM STACK
298 ;
299 .IIF NDF FT.CHK,FT.CHK= 1 ;1 EQUALS CHECK STUFF ON FLY
300 ;
301 .IIF NDF PASS,PASS=0 ;COUNT ASSEMBLER PASSES
302 000002 PASS=PASS+1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-8
C11DMC.MAC 10-AUG-79 16:08 STOPCD'S
304 .SBTTL STOPCD'S
305 ;
306 000000 S..AMC = 0 ;ASSERT MACRO CALL - DEFAULT CODE
307 000001 S..NXM = 1 ;BUS TRAPS'S, ADDRESS ERROR'S, ETC.
308 000002 S..DL1 = 2 ;DL10 ERRORS
309 000002 S..DTE = S..DL1 ;DTE20 ERRORS (NOTE - SAME AS DL10)
310 000003 S..CNK = 3 ;CHUNKS ARE MESSED UP
311 000004 S..ILS = 4 ;ILLEGAL INSTRUCTION
312 000005 S..CTY = 5 ;NO CTY
313 000006 S..MEM = 6 ;MEMORY ERROR (E.G. PARITY, OR CAN'T READ WRITE BITS)
314 000007 S..KW11 = 7 ;KW11 ERROR
315 000010 S..NCN = 10 ;NO CONNECTION FOR RECEIVED DATA
316 ; OR CONNECTION NUMBER USED BY SOME OTHER NODE
317 000011 S..BDT = 11 ;BAD DATA TYPE REQUESTED BY 10
318 000012 S..CHK = 12 ;CHECK 11 ERROR
319 000013 S..MPD = 13 ;MAPPED ASSEMBLY RUNNING IN UNMAPPED HARDWARE
320 000014 S..MMG = 14 ;MEMORY MANAGEMENT ERROR
321 ;
322 ;STOP CODE MACRO
323 ; FIRST ARGUMENT IS CODE FOR STOP
324 ; SECOND ARGUMENT IS SEVERITY
325 ;
326 .MACRO STOPCD CD,TYPE
327 .IF NB <CD>
328 S.....=S..'CD
329 .IFF ;NB <CD>
330 S.....=0
331 .ENDC ;NB <CD>
332 Z=1
333 .IIF IDN <.'TYPE>,<.DEBUG>, Z=DEBUG
334 .IIF NE Z, TRAP S.....
335 S.....=0
336 .ENDM STOPCD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-9
C11DMC.MAC 10-AUG-79 16:08 GENERAL MACRO DEFINITIONS
338 .SBTTL GENERAL MACRO DEFINITIONS
339 ;
340 ;
341 .MACRO COUNT A,?X
342 INC A+2
343 BNE X
344 INC A
345 X:
346 .ENDM COUNT
347 ;
348 ; REGISTER SAVE MACRO
349 ;
350 .MACRO SAVE A
351 .IRP X,<A>
352 MOV X,-(SP) ;PUSH X ON THE STACK
353 .ENDR ;IRP X
354 .ENDM SAVE
355 ;
356 ; REGISTER RESTORE MACRO
357 ;
358 .MACRO RESTORE A
359 .IRP X,<A>
360 MOV (SP)+,X ;POP X OFF THE STACK
361 .ENDR ;IRP X
362 .ENDM RESTORE
363 ;
364 .MACRO FALLR DEST
365 .IIF NE DEST-. .ERROR DEST-. ;**** ERRONEOUS CODE FALL THROUGH ATTEMPTED ****
366 .ENDM FALLR
367 ;
368 .MACRO .INC ARG
369 ARG = ARG + 1
370 .ENDM .INC
371 ;
372 .MACRO .DEC ARG
373 ARG = ARG - 1
374 .ENDM .DEC
375 ;
376 .MACRO LESSER A,B,C ;DEFINE A AS THE LESSER OF B AND C
377 .IF GT B-C
378 A = C
379 .IFF
380 A = B
381 .ENDC
382 .ENDM LESSER
383 ;
384 .MACRO GREATR A,B,C ;DEFINE A AS THE GREATER OF B AND C
385 LESSER A,C,B
386 .ENDM GREATR
387 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-10
C11DMC.MAC 10-AUG-79 16:08 GENERAL MACRO DEFINITIONS
389 .MACRO NAMEBT REG,IPOSMS,LIST
390 .IF NB IPOSMS
391 POSMSK = IPOSMS
392 .ENDC
393 .IF DF POSMSK
394 .IF EQ POSMSK
395 POSMSK = 100000
396 .ENDC
397 .IFF
398 POSMSK = 100000
399 .ENDC
400 .IRP NAME,<LIST>
401 .IF EQ POSMSK
402 .ERROR NAME ;**** POSITION MASK UNDERFLOW ****
403 .ENDC
404 .IF NB NAME
405 NAME = POSMSK
406 .ENDC
407 POSMSK = <POSMSK/2>&77777
408 .ENDR ;IRP NAME
409 .ENDM NAMEBT
410 ;
411 .MACRO NAMASC
412 $$ = 0
413 .IRP X,<NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL>
414 X = $$
415 .INC $$
416 .ENDR ;IRP X
417 ;
418 .IRP X,<BS,HT,LF,VT,FF,CR,SO,SI>
419 X = $$
420 .INC $$
421 .ENDR ;IRP X
422 ;
423 .IRP X,<DLE,DC1,DC2,DC3,DC4,NAK,SYN,ETB>
424 X = $$
425 .INC $$
426 .ENDR ;IRP X
427 ;
428 .IRP X,<CAN,EM,SUB,ESC,FS,GS,RS,US>
429 X = $$
430 .INC $$
431 .ENDR ;IRP X
432 ;
433 DEL = 177
434 ;
435 ERRCHR = '\!200 ;DEC STD ERROR CHARACTER
436 ;
437 .ENDM NAMASC
438 ;
439 .MACRO FIELD NAME,HI,LO
440 NAME = <HI-1+HI>&^C<LO-1>
441 .ENDM FIELD
442 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-11
C11DMC.MAC 10-AUG-79 16:08 GENERAL MACRO DEFINITIONS
444 ; HIDDEN HERE IN THE SOURCE CODE ARE A WHOLE BUNCH OF DEBUGGING
445 ; AND OTHER SPECIAL MACROS WHICH ARE SUPRESSED IN THE ASSEMBLY IN
446 ; THE INTEREST OF SQUATTER LISTINGS (AND FASTER ASSEMBLING)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-12
C11DMC.MAC 10-AUG-79 16:08 PDP-11 EIS EMULATORS
578 .SBTTL PDP-11 EIS EMULATORS
579 ;
580 ;MACROS TO SIMULATE INSTRUCTIONS FOR SIMPLE PDP11'S
581 ;
582 001 .IF LT <PDP11-30.>
583 ;
584 ;MACRO TO SIMULATE SOB ON SIMPLE PDP11'S
585 ;
586 .MACRO SOB CNT,WHERE
587 .IIF GT WHERE-., .ERROR 0; SOB FORWARD BRANCH ????
588 .IIF NE <.-WHERE>&^C176, .ERROR WHERE; SOB BRANCH RANGE ????
589 002 .IF NE WHERE-.
590 DEC CNT
591 BNE WHERE
592 .IFF
593 BRLOC=.
594 DEC CNT
595 BNE BRLOC
596 001 .ENDC ;NE WHERE-.
597 .ENDM SOB
598 ;
599 ;MACRO TO DO AN XOR FOR SIMPLE PDP11'S
600 ;
601 ; ARGUMENTS: A-- IS ALWAYS A REGISTER, B-- REFLECTS
602 ; THE DESTINATION OPERAND, C-- IS USUALLY ON THE STACK
603 ;
604 .MACRO XOR2 A02,B02,B12,B22,C02,C12,C22
605 MOV A02,C02
606 BIC B02,C12
607 BIC A02,B12
608 BIS C22,B22
609 .ENDM XOR2
610 ;
611 .MACRO XOR1 A01,B01,B11,B21
612 XOR2 A01,B01,B11,B21,-(SP),(SP),(SP)+
613 .ENDM XOR1
614 ;
615 .MACRO XORERR AV,BV,DB
616 002 .IF B DB
617 .ERROR 74000; XOR SOURCE ('AV') NOT A REGISTER ???
618 .IFF
619 .ERROR <74000+<AV*100>+BV>; XOR WITH DEST DB IS NOT SUPPORTED ????
620 001 .ENDC
621 HALT
622 .ENDM XORERR
623 ;
624 .MACRO XMODE Y,S,D
625 XMOD'Y \QD,S,D
626 .ENDM XMODE
627 ;
628 .MACRO XMOD0 X,S,D
629 XOR1 S,D,D,D
630 .ENDM XMOD0
631 ;
632 .MACRO XMOD10 X,S,D
633 XOR1 S,D,D,D
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-13
C11DMC.MAC 10-AUG-79 16:08 PDP-11 EIS EMULATORS
634 .ENDM XMOD10
635 ;
636 .MACRO XMOD20 X,S,D
637 XOR1 S,(R'X),(R'X),(R'X)+
638 .ENDM XMOD20
639 ;
640 .MACRO XMOD30 X,S,D
641 XOR1 S,@(R'X),@(R'X),@(R'X)+
642 .ENDM XMOD30
643 ;
644 .MACRO XMOD40 X,S,D
645 XOR1 S,-(R'X),(R'X),(R'X)
646 .ENDM XMOD40
647 ;
648 .MACRO XMOD50 X,S,D
649 XOR1 S,@-(R'X),@(R'X),@(R'X)
650 .ENDM XMOD50
651 ;
652 .MACRO XMOD60 X,S,D
653 XOR1 S,D,D,D
654 .ENDM XMOD60
655 ;
656 .MACRO XMOD70 X,S,D
657 XOR1 S,D,D,D
658 .ENDM XMOD70
659 ;
660 .MACRO XOR A,B
661 .NTYPE QA,A ;QA IS 6-BIT SOURCE SPEC
662 .NTYPE QB,B ;QB IS 6-BIT DEST SPEC
663 QC=QB&70 ;QC IS DEST ADDRESS MODE
664 QD=QB&7 ;QD IS DEST ADDRESS REGISTER
665 002 .IF NE QA&^C7 ;QA MUST BE REGISTER DIRECT
666 XORERR \QA
667 .IFF
668 ;QA IS REGISTER DIRECT, DECODE DEST SPEC
669 003 .IF LE <QD-5> ;DEST USES USER GPR (0-5)
670 XMODE \QC,A,B ;CALL MODE SELECTOR MACRO BASED ON QC
671 .IFF
672 ;DEST USES SP OR PC
673 .IIF EQ <QC-0> ;MODE IS REGISTER DIRECT (ERROR)
674 .IIF EQ <QB-06>, XORERR \QA,\QB,B
675 .IIF EQ <QB-07>, XORERR \QA,\QB,B
676 .IIF EQ <QC-1> ;MODE IS REGISTER DEFERRED
677 .IIF EQ <QB-16>, XOR1 A,2(SP),2(SP),(SP)
678 .IIF EQ <QB-17>, XORERR \QA,\QB,B
679 .IIF EQ <QC-2> ;MODE IS POP (PC IMMEDIATE)
680 .IIF EQ <QB-26>, XORERR \QA,\QB,B
681 004 .IF EQ <QB-27>
682 MOV B,.+22
683 XOR1 A,.+12,.+6,(PC)+
684 .WORD 0 ;UNLABELED LITERAL
685 003 .ENDC
686 .IIF EQ <QC-3> ;MODE IS DEFER AND POP (PC ABSOLUTE)
687 .IIF EQ <QB-36>, XOR1 A,@2(SP),@2(SP),@(SP)+
688 .IIF EQ <QB-37>, XOR1 A,B,B,B
689 .IIF EQ <QC-4> ;MODE IS PUSH
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-14
C11DMC.MAC 10-AUG-79 16:08 PDP-11 EIS EMULATORS
690 .IIF EQ <QB-46>, XORERR \QA,\QB,B
691 .IIF EQ <QB-47>, XORERR \QA,\QB,B
692 .IIF EQ <QC-5> ;MODE IS PUSH AND DEFER
693 .IIF EQ <QB-56>, XORERR \QA,\QB,B
694 .IIF EQ <QB-57>, XORERR \QA,\QB,B
695 .IIF EQ <QC-6> ;MODE IS INDEXED
696 .IIF EQ <QB-66>, XOR1 A,2+B,2+B,B
697 .IIF EQ <QB-67>, XOR1 A,B,B,B
698 .IIF EQ <QC-7> ;MODE IS DEFERRED INDEXED
699 .IIF EQ <QB-76>, XORERR \QA,\QB,B
700 .IIF EQ <QB-77>, XOR1 A,B,B,B
701 002 .ENDC ;USER GPR VS. SP/PC
702 001 .ENDC ;QA IS REGISTER DIRECT
703 .ENDM XOR
704 ;
705 000 .ENDC;.IF LT <PDP11-30.>
706 ;
707 001 .IF LT <PDP11-45.>
708 ;MACRO TO SET PROCESSOR LEVEL
709 .MACRO SPL Q
710 .IF NE Q
711 BIS #BR7,PS ;SET PROCESSOR STATUS TO LEVEL 7
712 .ENDC
713 .IF NE <Q-7>
714 BIC #40*<7&<^C<Q>>>,PS ;NOW DROP TO LEVEL Q
715 .ENDC
716 .ENDM SPL
717 000 .ENDC;.IF LT <PDP11-45.>
718 ;
719 ;MACRO TO SIMULATE EXCH INSTRUCTION
720 ;
721 .MACRO EXCH A,B
722 MOV A,-(P) ;SAVE C(A) ON THE STACK
723 MOV B,A ;PUT C(B) INTO A
724 MOV (P)+,B ;PUT ORIGINAL C(A) INTO B
725 .ENDM EXCH
726 ;
727 ;MACRO TO GENERATE AN .ASCIZ STRING TERMINATED WITH .EVEN
728 ;
729 .MACRO ASCIZ STRING
730 .ASCIZ \STRING\
731 .EVEN
732 .ENDM ASCIZ
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-15
C11DMC.MAC 10-AUG-79 16:08 SYMBOL DEFINITIONS
734 .SBTTL SYMBOL DEFINITIONS
735 ;
736 000000 R0 = %0
737 000001 R1 = %1
738 000002 R2 = %2
739 000003 R3 = %3
740 000004 R4 = %4
741 000005 R5 = %5
742 000006 SP = %6 ;STACK POINTER
743 000007 PC = %7
744 ;
745 177776 PS = 177776 ;PROCESSOR STATUS WORD
746 ; 000001 ;C (CARRY)
747 ; 000002 ;V (OVERFLOW)
748 ; 000004 ;Z (ZERO)
749 ; 000010 ;N (NEGATIVE)
750 ; 000020 ;T (TRAP)
751 ; 000340 ;PRIORITY LEVEL (0-7)
752 ; 004000 ;REGISTER SET
753 ; 030000 ;PREVIOUS MODE
754 ; 140000 ;CURRENT MODE
755 ; ;MODE: 00=KERNEL, 01=SUPERVISOR, 11=USER
756 177570 SW=177570 ;ADDRESS OF SWTCHES
757 ;
758 000001 B0 = 1
759 000002 B1 = 2
760 000004 B2 = 4
761 000010 B3 = 10
762 000020 B4 = 20
763 000040 B5 = 40
764 000100 B6 = 100
765 000200 B7 = 200
766 000400 B8 = 400
767 001000 B9 = 1000
768 002000 B10 = 2000
769 004000 B11 = 4000
770 010000 B12 = 10000
771 020000 B13 = 20000
772 040000 B14 = 40000
773 100000 B15 = 100000
774 ;
775 000000' FIELD ALLBTS,B15,B0
776 ;
777 ;DEFINE PROCESSOR LEVELS
778 ;
779 000000 BR0 = 0*40
780 000040 BR1 = 1*40
781 000100 BR2 = 2*40
782 000140 BR3 = 3*40
783 000200 BR4 = 4*40
784 000240 BR5 = 5*40
785 000300 BR6 = 6*40
786 000340 BR7 = 7*40
787 ;
788 000000 PR0 = 0
789 000040 PR1 = 40
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-16
C11DMC.MAC 10-AUG-79 16:08 SYMBOL DEFINITIONS
790 000100 PR2 = 2*PR1
791 000140 PR3 = 3*PR1
792 000200 PR4 = 4*PR1
793 000240 PR5 = 5*PR1
794 000300 PR6 = 6*PR1
795 000340 PR7 = 7*PR1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-17
C11DMC.MAC 10-AUG-79 16:08 HARDWARE DEFINITIONS
797 .SBTTL HARDWARE DEFINITIONS
798 .SBTTL VECTORS
799 ;
800 .MACRO DEFVEC TYP,VQ,LQ
801 TYP'VEC= VQ ;VECTOR FOR TYP IS VQ
802 .IF B LQ
803 TYP'LVL= 7 ;DEFAULT LEVEL IS LEVEL 7
804 .IFF
805 TYP'LVL= LQ ;LEVEL OF TYP IS LQ
806 .ENDC ;B LQ
807 .ENDM DEFVEC
808 ;
809 000000' DEFVEC NXM,04 ;BUS-TIMEOUT INTERRUPT
810 000000' DEFVEC ILS,10 ;ILLEGAL INSTRUCTION INTERRUPT
811 000000' DEFVEC BPT,14 ;BREAKPOINT TRAP
812 000000' DEFVEC IOT,20 ;I/O TRAP INSTRUCTION
813 000000' DEFVEC PWF,24 ;POWER FAIL INT'S
814 000000' DEFVEC EMT,30 ;EMT CALL'S
815 000000' DEFVEC TRP,34 ;TRAP INSTRUCTION
816 000000' DEFVEC MMG,250 ;MEMORY MANAGEMENT FAULT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-18
C11DMC.MAC 10-AUG-79 16:08 DEVICES
818 .SBTTL DEVICES
819 .SBTTL CD20 - PUNCHED CARD READER
820 ;
821 ; CD20 HARDWARE DEVICE REGISTER DEFINITIONS
822 ;
823 000004 CD.LVL = 4 ;BUS REQUEST PRIORITY
824 000230 CD.VEC = 230 ;CD20 VECTOR
825 ;
826 177160 CD.STS = 177160
827 000000 CDST = 0 ;FIRST STATUS AND CONTROL REGISTER
828 000000' NAMEBT CDST,0,<CD.ERR,CD.RDC,CD.EOF,CD.OFL,CD.DER,CD.DLT>
829 000000' NAMEBT ,,<CD.NXM,CD.PWC,CD.RDY,CD.IE,CD.B17,CD.B16>
830 000000' NAMEBT ,,<CD.ONL,CD.HPE,CD.PAC,CD.GO>
831 000060 CD.XAD = CD.B17!CD.B16 ;HIGH ORDER BUS ADDRESS MASK
832 000000 .REPT 0
833 CD.ERR = OR OF ALL ERROR CONDITIONS, RO
834 CD.RDC = READER CHECK, PHYSICAL READER ERROR, RO
835 CD.EOF = END OF FILE BUTTON PRESSED, RO
836 CD.OFL = OFF LINE, RO
837 CD.DER = DATA ERROR, ILLEGAL PACKED CHAR, RO
838 CD.DLT = DATA LATE, NPR TIMING ERROR, RO
839 CD.NXM = NONEXISTENT MEMORY REFERENCE DURING DMA, RO
840 CD.PWC = POWER CLEAR, INITIALIZE CONTROLLER, WO
841
842 CD.RDY = CONTROLLER READY FOR ACTION, RO
843 CD.IE = INTERRUPT ENABLE, RW
844 CD.B17,CD.B16 = HIGHEST ORDER BUS ADDRESS BITS, RW
845 CD.ONL = TRANSITION TO ONLINE OCCURRED, RO
846 CD.HPE = HOPPER EMPTY, RO
847 CD.PAC = READ MODE SWITCH, RW
848 CD.GO = START READER COMMAND, WO
849 .ENDR
850 ;
851 000002 CDCC = 2 ;COLUMN COUNT REGISTER
852 000120 CD.COL = 80. ;80 COLUMN READER
853 ;
854 000004 CDBA = 4 ;CURRENT ADDRESS REGISTER
855 ;
856 000006 CDDB = 6 ;DATA BUFFER
857 ; IMAGE MODE DEFINITIONS
858 000000' NAMEBT CDDB,0,<CD.CER,IDZ2,IDZ1,IDZ0,IZ12,IZ11,IZ00,IZ01>
859 000000' NAMEBT ,,<IZ02,IZ03,IZ04,IZ05,IZ06,IZ07,IZ08,IZ09>
860 000000 .REPT 0
861 CD.CER = CHARACTER PACKING ERROR
862 IDZ- = IMAGE MODE PACKED DIGIT ZONE BITS
863 IZ-- = IMAGE MODE ZONE PUNCH BITS
864 .ENDR
865 ;
866 ; PACKED MODE DEFINITIONS
867 000000' NAMEBT CDDB,200,<PZ12,PZ11,PZ00,PZ09,PZ08,PDZ2,PDZ1,PDZ0>
868 000000 .REPT 0
869 PZ-- = PACKED MODE ZONE PUNCH BITS
870 PDZ- = PACKED MODE PACKED DIGIT ZONE BITS
871 .ENDR
872 ;
873 000006 CDST2 = CDDB ;SECOND STATUS AND CONTROL REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-19
C11DMC.MAC 10-AUG-79 16:08 CD20 - PUNCHED CARD READER
874 ; MULTIPLEXED USE OF DATA BUFFER REGISTER
875 000000' NAMEBT CDST2,0,<ST2ENB,CD.RCK,CD.PCK,CD.SCK>
876 000000' NAMEBT ,,<ZT12,ZT11,ZT00,ZT01,ZT02,ZT03,ZT04,ZT05,ZT06,ZT07,ZT08,ZT09>
877 007777 ZTALL = 7777
878 000000 .REPT 0
879 ST2ENB = CDST2 ENABLE
880 RCHK = READ CHECK (CARD ERROR)
881 PCHK = PICK CHECK (FEED ERROR)
882 SCHK = STACK CHECK (FEED ERROR)
883 ZT-- = ZONE TEST BITS
884 ZTALL = OR OF ALL ZONE TEST BITS
885 .ENDR
886 ;
887 000010 CDHRSZ = 10 ;SIZE OF REGISTER BLOCK IN BYTES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-20
C11DMC.MAC 10-AUG-79 16:08 CR11 - PUNCHED/MARK SENSE CARD READER
889 .SBTTL CR11 - PUNCHED/MARK SENSE CARD READER
890 ;
891 000006 CR.LVL= 6 ; PROCESSOR LEVEL FOR CR11 INTERRUPTS
892 000230 CR.VEC= 230
893 ;
894 177160 CR0STS = 177160
895 177160 CR.STS= 177160 ; CR11 STATUS REGISTER
896 ;
897 100000 CR.ERR= B15 ; ERROR
898 040000 CR.DNE= B14 ; CARD DONE
899 020000 CR.HCK= B13 ; HOPPER CHECK
900 010000 CR.MCK= B12 ; MOTION CHECK
901 004000 CR.TIM= B11 ; TIMING ERROR
902 002000 CR.OLN= B10 ; BACK ONLINE AFTER BEING OFF
903 001000 CR.BSY= B9 ; BUSY
904 000400 CR.RDY= B8 ; NOT READY
905 000200 CR.CDN= B7 ; COLUMN DONE
906 000100 CR.INE= B6 ; INTERRUPT ENABLE
907 000002 CR.EJT= B1 ; EJECT
908 000001 CR.CFD= B0 ; CARD FEED
909
910 177162 CR.DAT= 177162 ; 12 LOW ORDER BITS ARE DATA
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-21
C11DMC.MAC 10-AUG-79 16:08 CTY - CONSOLE TELETYPE
912 .SBTTL CTY - CONSOLE TELETYPE
913 ;
914 ;CTY HARDWARE BITS
915 ;
916 177560 CTISTS = 177560
917 177562 CTICHR = 177562
918 000060 CTIVEC= 60
919 000004 CTILVL= 4 ; PRIORITY LEVEL
920 ;
921 000100 CI.INE= B6 ; CTY INPUT INTERRUPT ENABLE
922 ;
923 177564 CTOSTS = 177564
924 177566 CTOCHR = 177566
925 000064 CTOVEC= 64
926 000004 CTOLVL= 4 ; PRIORITY LEVEL
927 ;
928 000100 CO.INE= B6 ; CTY OUTPUT INTERRUPT ENABLE
929 000004 CO..MM= B2 ; CTY OUTPUT MAINT MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-22
C11DMC.MAC 10-AUG-79 16:08 DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
931 .SBTTL DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
932 160020 DHBASE= 160020 ;HARDWARE ADR OF FIRST DH11
933 000007 DH.LVL= 7 ;DH11 INTERRUPT LEVEL
934 ; 1ST WORD IS SYSTEM CONTROL REGISTER
935 000100 DH.RIE= B6 ;RECEIVE INTERRUPT ENABLE
936 000200 DH..RI= B7 ;RECEIVE INTERRUPT
937 000400 DH.CNX= B8 ;CLEAR NON EX MEM INT
938 001000 DH..MM= B9 ;MAINTANCE MODE
939 002000 DH.NXM= B10 ;NON EXISTENCE MEMORY
940 004000 DH..MC= B11 ;MASTER CLEAR
941 010000 DH.SIE= B12 ;STORAGE INTERRUPT ENABLE
942 020000 DH.TIE= B13 ;TRANSMIT INTERRUPT ENABLE
943 040000 DH..SI= B14 ;STORAGE INTERRUPT
944 100000 DH..TI= B15 ;TRANSMIT INTERRUPT
945 000002 DH.NRC=2 ; 2ND WORD IS NEXT RECEIVED CHAR REGISTER
946 000004 DH.LPR=4 ; 3RD WORD IS LINE PARAMETER REGISTER
947 000006 DH.CAR=6 ; 4TH WORD IS CURRENT ADDRESS REGISTER
948 000010 DH.BCR=10 ; 5TH WORD IS BUFFER COUNT REGISTER
949 000012 DH.BAR=12 ; 6TH WORD IS BUFFER ACTIVE REGISTER
950 000014 DH.BRK=14 ; 7TH WORD IS BREAK CONTROL REGISTER
951 000016 DH.SSR=16 ; 8TH WORD IS SILO STATUS REGISTER
952 ;
953 ;ON CHARS OUT OF SILO
954 040000 DHROVR= B14 ;DATA OVERRUN
955 020000 DHRFER= B13 ;FRAMMING ERROR
956 100000 DH.VDP= B15 ;VALID DATA PRESENT
957 040000 DH.DOV= B14 ;DATA OVER RUN
958 020000 DH..FE= B13 ;FRAMING ERROR
959 010000 DH..PE= B12 ;PARITY ERROR
960 ;
961 ;FOR LINE PARAMETERS
962 100000 DH.AEE= B15 ;AUTO ECHO ENABLE
963 040000 DH..HD= B14 ;HALF DUPLEX
964 000040 DH..OP= B5 ;ODD PARITY
965 000020 DH.PEN= B4 ;PARITY ENABLED
966 000004 DH.2SB= B2 ;2 STOP BITS
967 000000 DH.CL5= 0 ;5 BIT
968 000001 DH.CL6= B0 ;6 BIT
969 000002 DH.CL7= B1 ;7 BIT
970 000003 DH.CL8= B1!B0 ;8 BIT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-23
C11DMC.MAC 10-AUG-79 16:08 DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
972 .SBTTL DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-24
C11DMC.MAC 10-AUG-79 16:08 DL10 - UNIBUS-TO-MBUS INTERFACE
974 .SBTTL DL10 - UNIBUS-TO-MBUS INTERFACE
975 ;
976 ;DL10 - UNIBUS TO DECSYSTEM-10 MEMORY BUS INTERFACE
977 ;
978 100000 DL.BAS= 100000 ;BASE ADDRESS FOR 10 MEMORY
979 100000 DLBASE= DL.BAS ;
980 000170 DL.VEC= 170 ;VECTOR ADR FOR DL10
981 000004 DL.LVL= 4 ;CHANNEL FIVE
982 ;
983 100000 DL.STS=DLBASE ;1ST WORD IS STATUS
984 100000 DL.11I= B15 ; BIT 15 - 11 INT(INTERRUPTS IF 11-INT-ENB SET)
985 040000 DL.11C= B14 ; BIT 14 - CLEAR 11 INT
986 020000 DL.10I= B13 ; BIT 13 - 10 INT
987 010000 DL.10C= B12 ; BIT 12 - CLEAR 10 INT
988 004000 DL.NXM= B11 ; BIT 11 - NXM(INTERRUPTS IF ERR ENB SET)
989 002000 DL.CNX= B10 ; BIT 10 - CLEAR NXM
990 001000 DL.PAR= B9 ; BIT 09 - PAR ERR(INTERRUPTS IF ERR ENB SET)
991 000400 DL.CPE= B8 ; BIT 08 - CLEAR PAR ERR
992 000200 DL.WCO= B7 ; BIT 07 - WCOV(INTERRUPTS IF ERR ENB SET)
993 000100 DL.CWC= B6 ; BIT 06 - CLEAR WCOV
994 000040 DL.PEN= B5 ; BIT 05 - PORT ENABLE
995 000040 DLPENB= DL.PEN ;
996 000020 DL.B04= B4 ; BIT 04 - (GUESS !)
997 000010 DL.ERE= B3 ; BIT 03 - ERR ENABLE
998 000004 DL.INE= B2 ; BIT 02 - 11 INT ENB
999 000002 DL.B01= B1 ; BITS 00 & 01 - PIA
1000 000001 DL.B00= B0 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-25
C11DMC.MAC 10-AUG-79 16:08 DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
1002 .SBTTL DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
1003 ;
1004 ;
1005 175610 DLDADR=175610 ; DL11 NUMBER ZERO DEVICE ADDRESS
1006 000010 DLDSIZ=10 ; LENGTH OF DEVICE ADDRESS ASSIGNMENT
1007 ;
1008 ; CONTROL REGISTERS
1009 ;
1010 ;
1011 000000 DLRSTS=0 ; RECEIVER STATUS AND CONTROL
1012 ;
1013 ; BIT ASSIGNMENTS
1014 000001 DL..RE=B0 ; PAPER TAPE READER ENABLE (R/W)
1015 000002 DL.DTR=B1 ; DATA TERMINAL READY (R/W)
1016 000004 DL.RTS=B2 ; REQUEST TO SEND (R/W)
1017 000010 DL.2XM=B3 ; SECONDARY XMIT (R/W)
1018 000040 DL.DIE=B5 ; DATASET INTERRUPTS ENABLE (R/W)
1019 000100 DL.RIE=B6 ; RECEIVER INTERRUPTS ENABLE (R/W)
1020 000200 DL.ROK=B7 ; RECEIVER DONE (R)
1021 002000 DL.2RC=B10 ; SECONDARY RECEIVE (R)
1022 004000 DL.RGO=B11 ; RECEIVER ACTIVE (R)
1023 010000 DL.CAR=B12 ; CARRIER PRESENT (R)
1024 020000 DL.CTS=B13 ; CLEAR TO SEND (R)
1025 040000 DL.RNG=B14 ; DATASET RING (R)
1026 100000 DL.DSC=B15 ; DATASET STATUS CHANGE (R)
1027 ;
1028 ;
1029 000002 DLRBUF=2 ; RECEIVED CHARACTER BUFFER
1030 ;
1031 ; BIT ASSIGNMENTS
1032 000377 DL..RC=B0!B1!B2!B3!B4!B5!B6!B7 ;THE RECEIVED CHARACTER (R)
1033 010000 DL..PE=B12 ; PARITY ERROR (R)
1034 020000 DL..FE=B13 ; FRAMING ERROR (R)
1035 040000 DL.OVR=B14 ; RECEIVER OVER RUN (R)
1036 100000 DL.ERR=B15 ; RECEIVER ERROR DETECTED (R)
1037 ;
1038 ;
1039 ;
1040 000004 DLXSTS=4 ; XMITTER STATUS AND CONTROL REGISTER
1041 ;
1042 ; BIT ASSIGNMENTS
1043 000001 DL.BRK=B0 ; SEND BREAK (W)
1044 000004 DL..MM=B2 ; MAINTAINANCE MODE (R/W)
1045 000100 DL.XIE=B6 ; XMITTER INTERRUPTS ENABLE (R/W)
1046 000200 DL.XOK=B7 ; XMITTER READY FOR NEXT CHARACTDER (R)
1047 ;
1048 ;
1049 ;
1050 000006 DLXBUF=6 ; XMITTER CHARACTER BUFFER
1051 ;
1052 ; BIT ASSSIGNMENT
1053 000377 DL..XC=B0!B1!B2!B3!B4!B5!B6!B7 ; CHARACTER BEING XMITTED (W)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-26
C11DMC.MAC 10-AUG-79 16:08 DM11BB - MODEM CONTROLLER FOR DH11
1055 .SBTTL DM11BB - MODEM CONTROLLER FOR DH11
1056 ;
1057 170500 DMBASE= 170500 ;HDW ADR OF FIRST DM11
1058 ;
1059 000007 DM.LVL= 7 ;PROCESSOR LEVEL FOR DM11BB INTERRUPTS
1060 ;
1061 170500 B.DM11= 170500 ;FIRST DM11 ADR
1062 004000 DM.SCN= B11 ;CLEAR SCANNER
1063 002000 DM.INI= B10 ;CLEAR MULTIPLEXER
1064 001000 DM..MM= B9 ;MAINTENANCE MODE
1065 000400 DM.STP= B8 ;STEP TO NEXT LINE
1066 000200 DM.DNE= B7
1067 000100 DM.IEN= B6 ;INTERRUPT ENABLE
1068 000040 DM.ENB= B5 ;SCAN ENABLE
1069 000020 DM.BSY= B4 ;CLEAR SCAN STILL PERCOLATING
1070 000017 DM.ALI= B0!B1!B2!B3 ;LINE NUMBER FIELD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-27
C11DMC.MAC 10-AUG-79 16:08 DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1072 .SBTTL DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1073 ;
1074 000005 DMC.LVL = 5
1075 ;
1076 000000' NAMEBT ,0,<MD.RUN,MD.CLR,MD.CWR,MD.SLU,MD.LLU>
1077 000000' NAMEBT ,,<MD.RMO,MD.RMI,MD.SMP,B7,B6,B5,B4,B3,B2,B1,B0>
1078 000000 .REPT 0
1079 MD.RUN - RUN THE MICROPROCESSOR
1080 MD.CLR - CLEAR THE MICROPROCESSOR
1081 MD.CWR - CRAM WRITE
1082 MD.SLU - STEP LINE UNIT
1083 MD.LLU - LOOP LINE UNIT
1084 MD.RMO - ROM OUTPUT
1085 MD.RMI - ROM INPUT
1086 MD.SMP - STEP MICROPROCESSOR
1087 .ENDR
1088 .IRP X,<0,2,4,6>
1089 SEL'X = X
1090 BSEL'X = X
1091 .ENDR ;X
1092 .IRP X,<1,3,5,7>
1093 BSEL'X = X
1094 .ENDR ;X
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-28
C11DMC.MAC 10-AUG-79 16:08 DN11 - AUTODIALER
1096 .SBTTL DN11 - AUTODIALER
1097 ;
1098 000007 DN.LVL= 7 ;PROCESSOR LEVEL FOR DN INTERRUPTS
1099 175200 DNBASE=175200
1100 ;
1101 100000 DN.PWI= B15 ;POWER INDICATE
1102 040000 DN.ACR= B14 ;ABANDON CALL AND RETRY
1103 010000 DN.DLO= B12 ;DATA LINE OCCUPIED
1104 000200 DN.DNE= B7 ;DONE
1105 000100 DN..IE= B6 ;INTERRUPT ENABLE
1106 000040 DN.DSS= B5 ;DATA SET STATUS
1107 000020 DN.PND= B4 ;PRESENT NEXT DIGIT
1108 000010 DN..MM= B3 ;MAINTENANCE MODE
1109 000004 DN..ME= B2 ;MASTER ENABLE
1110 000002 DN..DP= B1 ;DIGIT PRESENT
1111 000001 DN..CR= B0 ;CALL REQUEST
1112 007400 DN.DGT=B8+B9+B10+B11 ;DIGIT BITS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-29
C11DMC.MAC 10-AUG-79 16:08 DP11 - SYNCHRONOUS LINE INTERFACE
1114 .SBTTL DP11 - SYNCHRONOUS LINE INTERFACE
1115 ;
1116 000007 DP.LVL= 7 ;PROCESSOR LEVEL FOR DP11 INTERRUPTS
1117 ;
1118 ; "A" RECEIVER STATUS REGISTER (ADR = XXXXX0)
1119 ;
1120 010000 DP..CP= B12 ;CHARACTER PARITY; 1=ODD, 0=EVEN
1121 004000 DP..RA= B11 ;RECEIVE ACTIVE
1122 000200 DP..RD= B7 ;RECEIVE DONE
1123 000100 DP.RIE= B6 ;RECEIVE DONE INTERRUPT ENABLE
1124 000010 DP..MR= B3 ;MISCELLANEOUS RECEIVE
1125 000004 DP..MM= B2 ;MAINTENANCE MODE
1126 000002 DP..HD= B1 ;HALF DUPLEX
1127 000001 DP..SS= B0 ;STRIP SYNC
1128 ;
1129 ; "B" TRANSMIT AND CONTROL STATUS REG (ADR = XXXXX2)
1130 ;
1131 100000 DP..CF= B15 ;CARRIER FLAG
1132 040000 DP.ROF= B14 ;RECEIVE OVERRUN FLAG
1133 020000 DP.RNG= B13 ;RING FLAG
1134 010000 DP.MRY= B12 ;MODEM READY
1135 004000 DP.CAR= B11 ;CARRIER
1136 002000 DP.CTS= B10 ;CLEAR TO SEND
1137 001000 DP.RTS= B9 ;REQUEST TO SEND
1138 000200 DP..TD= B7 ;TRANSMIT DONE
1139 000100 DP.TIE= B6 ;TRANSMIT DONE INTERRUPT ENABLE
1140 000040 DP.SIE= B5 ;STATUS INTERRUPT ENABLE
1141 000020 DP.MIS= B4 ;MISCELLANEOUS
1142 000010 DP..MT= B3 ;MISCELLANEOUS TRANSMIT
1143 000002 DP..IS= B1 ;IDLE SYNC
1144 000001 DP.DTR= B0 ;TERMINAL READY
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-30
C11DMC.MAC 10-AUG-79 16:08 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1146 .SBTTL DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1147 ;
1148 000007 DQ.LVL= 7 ;PROCESSOR LEVEL FOR DQ11 INTERRUPTS
1149 ;
1150 ; THE BASE ADR FOR THE DQ11 IS CONTAINED IN THE LINE BLOCK
1151 ; RECEIVE STATUS ( ADR =XXXXX0 )
1152 ;
1153 000001 DQ.RGO= B0 ; RECEIVE GO
1154 000002 DQ.SSY= B1 ; STRIP SYNC
1155 000004 DQ.SEC= B2 ; 0= PRIMARY,1=SECONDARY
1156 000010 DQ.HD= B3 ; HALF DUPLEX(= MASK INPUT WHEN XMT ACTIVE)
1157 000020 DQ.CIE= B4 ; CHAR INTERRUPT ENABLE
1158 000040 DQ.RIE= B5 ; RECEIVE DONE INTERRUPT ENABLE
1159 000100 DQ.RDS= B6 ; RECEIVE DONE (SECONDARY) FLAG
1160 000200 DQ.RDP= B7 ; RECEIVE DONE (PRIMARY) FLAG
1161 007400 DQ.CHR= 7400 ; CHAR DETECTED
1162 000400 DQ.ETB= B8 ; CHAR WAS AN ETB
1163 001000 DQ.ETX= B9 ; CHAR WAS AN ETX
1164 002000 DQ.ENQ= B10 ; CHAR WAS AN ENQ
1165 004000 DQ.SYN= B11 ; SPECIAL CHAR WAS A SYNC
1166 010000 DQ.RAC= B12 ; RECEIVE ACTIVE
1167 ; 060000 ; USER OPTION
1168 100000 DQ.VCH= B15 ; VCHAR FLAG
1169 110021 DQ.RKL= DQ.RAC!DQ.VCH!DQ.RGO!DQ.CIE ; BITS TO STOP RECEIVER
1170 ;
1171 ; TRANSMIT STATUS ( ADR = XXXXX2 )
1172 ;
1173 000001 DQ.XGO= B0 ; TRANSMIT GO
1174 ; B1 ; IDLE MODE
1175 000004 DQ.SEC= B2 ; 0= PRIMARY ACTIVE,1=SECONDARY ACTIVE
1176 000010 DQ.EIE= B3 ; ERR INTERRUPT ENABLE
1177 000020 DQ.DIE= B4 ; DATA SET INTERRUPT ENABLE
1178 000040 DQ.XIE= B5 ; TRANSMIT DONE INTERRUPT ENABLE
1179 000100 DQ.XDS= B6 ; TRANSMIT DONE(SECONDARY)
1180 000200 DQ.XDP= B7 ; TRANSMIT DONE(PRIMARY)
1181 000400 DQ.RTS= B8 ; REQUEST TO SEND
1182 001000 DQ.DTR= B9 ; DATA TERMINAL READY
1183 002000 DQ.DSR= B10 ; DATA SET READY
1184 004000 DQ.RNG= B11 ; RING
1185 010000 DQ.CAR= B12 ; CARRIER
1186 020000 DQ.CTS= B13 ; CLEAR TO SEND
1187 ; B14 ; USER OPTION
1188 100000 DQ.DSF= B15 ; DATA SET FLAG
1189 ;
1190 ; REG/ERR REGISTER ( ADR =XXXXX4 )
1191 ;
1192 000001 DQ.XCL= B0 ; TRANSMIT CLOCK LOSS
1193 000002 DQ.RCL= B1 ; RECEIVE CLOCK LOSS
1194 000004 DQ.XLE= B2 ; TRANSMIT LATENCY ERROR
1195 000010 DQ.RLE= B3 ; RECEIVE LATENCY ERROR
1196 000020 DQ.XNX= B4 ; TRANSMIT NONEX MEM
1197 000040 DQ.RNX= B5 ; RECEIVE NONEX MEM
1198 000100 DQ.BCC= B6 ; RECEIVE BCC ERROR
1199 000200 DQ.VRC= B7 ; RECEIVE VRC ERROR
1200 ; 007400 ; REG SELECT FOR REFERENCE TO XXXXX6
1201 010000 DQ.MEM= B12 ; WRENABLE 060000
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-31
C11DMC.MAC 10-AUG-79 16:08 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1202 000020 DQ.MBM= 020 ; BYTE EQUIVALENT OF ABOVE
1203 ; 060000 ; MEM EXT OR ENTER T/EXIT T
1204 ; B15 ; ERROR INTERRUPT
1205 ;
1206 ; SECONDARY REGISTERS ( ADR = XXXXX6 )
1207 ;
1208 000000 RG.PRA= 0 ; PRIMARY RECEIVE BA
1209 000001 RG.PRC= 1 ; PRIMARY RECEIVE CC
1210 000002 RG.PTA= 2 ; PRIMARY TRANSMIT BA
1211 000003 RG.PTC= 3 ; PRIMARY TRANSMIT CC
1212 000004 RG.SRA= 4 ; SECONDARY RECEIVE BA
1213 000005 RG.SRC= 5 ; SECONDARY RECEIVE CC
1214 000006 RG.STA= 6 ; SECONDARY TRANSMIT BA
1215 000007 RG.STC= 7 ; SECONDARY TRANSMIT CC
1216 ;;;; 10 ; CHAR DET REG
1217 000011 RG.SYN= 11 ; SYNC REG
1218 000012 RG.MSC= 12 ; MISC REG
1219 000040 DQ.MC= B5 ; MASTER CLEAR (SORT OF)
1220 ;;;; 13 ; TRANSMIT BUF
1221 ;;;; 14 ; SEQUENCE REGISTER
1222 ;;;; 15 ; RECEIVE BCC
1223 ;;;; 16 ; TRANSMIT BCC
1224 ;;;; 17 ; RECEIVE/TRANSMIT POLYNOMIAL
1225 ;
1226 .MACRO DQREGS REG,QQ
1227 Z= RG.'REG
1228 .IIF EQ <Z&10>,Z= Z+DQ.MBM
1229 .IF B,QQ
1230 MOVB #Z,5(DQ) ;SET TO ADDRESS SECONDARY REGISTER RG.'REG
1231 .IFF ;B <QQ>
1232 MOVB #Z,5QQ ;SET TO ADDRESS SECONDARY REGISTER RG.'REG
1233 .ENDC ;B <QQ>
1234 .ENDM DQREGS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-32
C11DMC.MAC 10-AUG-79 16:08 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1236 ;
1237 ; THE SEVEN SWITCHES (PACKAGES) WILL BE LOCATED
1238 ; ON BOARD #M7818 WITHIN THE DQ11 LOGIC BLOCK
1239 ;
1240 ;
1241 ; PACKAGE # SWITCH #'S SWITCH SETTINGS ON RESPECTIVE PACKAGES
1242 ;
1243 ; 1 8 - 1 ALL OFF
1244 ;
1245 ; 2 16 - 9 ALL OFF
1246 ;
1247 ; 3 24 - 17 ALL OFF
1248 ;
1249 ; 4 32 - 25 DAS78 ON, ON,OFF, ON,OFF,OFF, ON,OFF
1250 ; CHARACTER = 055 (ENQ)
1251 ; 4 32 - 25 DAS85 ON, ON, ON, ON, ON,OFF, ON,OFF
1252 ; CHARACTER = 005 (ENQ)
1253 ;
1254 ; 5 40 - 33 DAS78 ON, ON,OFF,OFF,OFF, ON, ON, ON
1255 ; DAS85 ON,OFF,OFF,OFF,OFF, ON, ON, ON
1256 ;
1257 ; 6 48 - 41 DAS78 ON, ON, ON, ON, ON, ON,OFF,OFF
1258 ; CHARACTER = 03 (ETX)
1259 ; DAS85 OFF, ON, ON,OFF, ON, ON,ON, ON
1260 ; CHARACTER = 220 (DLE)
1261 ;
1262 ; 7 56 - 49 DAS78 ON, ON, OFF, ON, ON,OFF,OFF, ON
1263 ; CHARACTER = 46 (ETB)
1264 ; DAS85 OFF, ON, ON, ON, ON, ON, ON,OFF
1265 ; CHARACTER = 201 (SOH)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-33
C11DMC.MAC 10-AUG-79 16:08 DS11 - SYNCHRONOUS LINE INTERFACE
1267 .SBTTL DS11 - SYNCHRONOUS LINE INTERFACE
1268 ;
1269 ;HARDWARE ADDRESSES
1270 ;
1271 175600 DS.AUX= 175600 ;AUXILLARY REGISTER
1272 175400 DS.DVA= 175400 ;BEGINNING OF LINE DEVICE REGISTERS
1273 000400 DS.VEC= 400 ;FIRST DS11 VECTOR
1274 000007 DS.LVL= 7 ;PROCESSOR LEVEL OR DS11 INTERRUPTS
1275 ;
1276 ;BITS IN AUXILLARY REGISTER
1277 ;
1278 100000 DS.AD3=B15 ;ADAPTER 3 IS PRRSENT IF SET
1279 040000 DS.AD2=B14 ;ADAPTER 2 IS PRESENT IF SET
1280 020000 DS.AD1=B13 ;ADAPTER 1 IS PRESENT IF SET
1281 ; B12 ;NOT USED
1282 ; B11 ;NOT USED
1283 ; B10 ;NOT USED
1284 ; B9 ;PROGRAM VECTOR 9
1285 000400 DS.IVA=B8 ;PROGRAM VECTOR 8 - INTERRUPTS START AT 400
1286 ; B7 ;DIAG MODE
1287 ; B6 ;PROGRAM CLOCK ALLOW
1288 ; B5 ;NOT USED
1289 ; B4 ;DIAG BIT CNTR CLEAR
1290 ; B3 ;DIAG BIT COUNTER 4
1291 ; B2 ;DIAG BIT COUNTER 3
1292 ; B1 ;DIAG BIT COUNTER 2
1293 ; B0 ;DIAG BIT COUNTER 1
1294 ;
1295 ;
1296 ;OFFSETS OF REGISTERS FROM LINE BASE ADDRESS
1297 ;
1298 000006 DS.XDR=6 ;TRANSMIT DATA REGISTER
1299 000004 DS.XST=4 ;TRANSMIT STATUS REGISTER
1300 000002 DS.RDR=2 ;RECEIVE DATA REGISTER
1301 000000 DS.RST=0 ;RECEIVE STATUS REGISTER
1302 ;
1303 ;PRIORITY INTERRUPT LEVELS
1304 ;
1305 000007 I.DSRD=7 ;RECEIVE DATA INTERRUPT
1306 000006 I.DSRS=6 ;RECEIVE STATUS INTERRUPT
1307 000007 I.DSXD=7 ;A TRANSMIT DATA INTERRUPT
1308 000006 I.DSXS=6 ;A TRANSMIT STATUS INTERRUPT
1309 ;
1310 ;BITS IN XMIT STATUS REGISTER & RECEIVE REG.
1311 ;
1312 000440 DS.DTR=000440 ;BOTH XMT & RCV REG.
1313 170000 DS.ZAP=170000 ;CLEAR ALL OVERRUN FLAGS
1314 000455 DS.XGO=DS.DTR+<<I.DSXD/2>*4>+1 ;REQUEST TO SEND
1315 006455 DS.RGO=B11!B10!DS.DTR!<<I.DSRD/2>*4>+1 ;RECEIVE
1316 ;
1317 ;BITS IN TRANSMIT STATUS REGISTER
1318 ;
1319 ; B15 ; NOT USED
1320 ; B14 ; XMIT BIT OVERRUN
1321 ; B13 ; XMIT CHAR OVERRUN
1322 ; B12 ; CLEAR TO SEND FLAG
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-34
C11DMC.MAC 10-AUG-79 16:08 DS11 - SYNCHRONOUS LINE INTERFACE
1323 ; B11 ; NOT USED
1324 ; B10 ; NOT USED
1325 ; B9 ; CLEAR TO SEND
1326 ; B8 ; DATA TERM READY
1327 ; B7 ; XMIT CHAR DONE
1328 ; B6 ; DATA SET READY
1329 ; B5 ; CODE SIZE 2
1330 ; B4 ; CODE SIZE 1
1331 ; B3 ; PRIORITY REQUEST 2
1332 ; B2 ; PRIORITY REQUEST 1
1333 ; B1 ; IDLE
1334 ; B0 ; REQUEST TO SEND
1335 ;
1336 ;BITS IN RECEIVE STATUS REGISTER
1337 ;
1338 ; B15 ; RING FLAG
1339 ; B14 ; REC BIT OVERRUN
1340 ; B13 ; REC CHAR OVERRUN
1341 ; B12 ; LINE SIGNAL FLAG
1342 ; B11 ; SYN STATE 2
1343 ; B10 ; SYN STATE 1
1344 ; B9 ; LINE SIGNAL
1345 ; B8 ; DATA TERMINAL READY
1346 ; B7 ; REC CHAR DONE
1347 ; B6 ; DATA SET READY
1348 ; B5 ; CODE SIZE 2
1349 ; B4 ; CODE SIZE 1
1350 ; B3 ; PRIORITY REQUEST 2
1351 ; B2 ; PRIORITY REQUEST 1
1352 ; B1 ; RING ALLOW
1353 ; B0 ; RECEIVE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-35
C11DMC.MAC 10-AUG-79 16:08 DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1355 .SBTTL DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1356 ;
1357 000000 DLYCNT = 0 ;DELAY COUNTER
1358 100000 BUSA17 = B15 ;UNIBUS ADDRESS BIT 17
1359 040000 BUSA16 = B14 ;UNIBUS ADDRESS BIT 16
1360 037777 DLYMSK = 37777 ;DELAY COUNT FIELD
1361 000002 DEXWD3 = 2 ;DEPOSIT/EXAMINE WORD 3
1362 000004 DEXWD2 = 4 ;DEPOSIT/EXAMINE WORD 2
1363 000006 DEXWD1 = 6 ;DEPOSIT/EXAMINE WORD 1
1364 000010 TENAD1 = 10 ;KL-10 MEMORY ADDRESS 1
1365 000012 TENAD2 = 12 ;KL-10 MEMORY ADDRESS 2
1366 000014 TO10BC = 14 ;TO -10 BYTE (WORD) COUNT
1367 000016 TO11BC = 16 ;TO -11 BYTE (WORD) COUNT
1368 100000 TO11IB = B15 ;INTERRUPT BOTH SIDES WHEN DONE
1369 020000 TO11BM = B13 ;TO -11 BYTE MODE
1370 007777 TO11CM = 7777 ;BYTE (WORD) COUNT
1371 000020 TO10AD = 20 ;TO -10 ADDRESS
1372 000022 TO11AD = 22 ;TO -11 ADDRESS
1373 000024 TO10DT = 24 ;TO -10 DATA WORD
1374 000026 TO11DT = 26 ;TO -11 DATA WORD
1375 000030 DIAG1 = 30 ;DIAGNOSTIC CONTROL REGISTER 1
1376 000032 DIAG2 = 32 ;DIAGNOSTIC CONTROL REGISTER 2
1377 000100 DRESET = B6 ;(W) DTE20 RESET
1378 000034 CSTAT = 34 ;CONTROL STATUS REGISTER
1379 100000 TO10DN = B15 ;(R) TO -10 TRANSFER DONE
1380 040000 DON10C = B14 ;(W) CLEAR TO -10 DONE
1381 020000 TO10ER = B13 ;(R) TO -10 TRANSFER ERROR
1382 010000 ERR10C = B12 ;(W) CLEAR TO -10 TRANSFER ERROR
1383 004000 TO11DB = B11 ;(R) TO -11 DOORBELL
1384 004000 INT11S = TO11DB ;(W) REQUEST INTERRUPT
1385 002000 INT11C = B10 ;(W) CLEAR TO -11 DOORBELL
1386 001000 MPE11 = B9 ;(R) -11 PARITY ERROR
1387 000400 TO10DB = B8 ;(R/W) TO -10 DOORBELL
1388 000200 TO11DN = B7 ;(R) TO -11 TRANSFER DONE
1389 000100 DON11C = B6 ;(W) CLEAR TO -11 DONE
1390 000040 INTRON = B5 ;(W) ENABLE FROM -10 INTERRUPTS
1391 000020 BPARER = B4 ;(R) EBUS PARITY ERROR
1392 000010 INTROF = B3 ;(W) DISABLE FROM -10 INTERRUPTS
1393 000010 RM = INTROF ;(R) RESTRICTED MODE
1394 000004 DEXDON = B2 ;(R) DEPOSIT/EXAMINE DONE
1395 000002 TO11ER = B1 ;(R) TO -11 TRANSFER ERROR
1396 000002 ERR11S = TO11ER ;(W) SET TO -11 ERROR
1397 000001 ERR11C = B0 ;(W) CLEAR TO -11 TRANSFER ERROR
1398 000001 INTSON = ERR11C ;(R) INTERRUPTS ARE ENABLED
1399 000036 DIAG3 = 36 ;DIAGNOSTIC CONTROL REGISTER 3
1400 000001 TO10BM = B0 ;(W) TO -10 BYTE MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-36
C11DMC.MAC 10-AUG-79 16:08 DU11 - SYNCHRONOUS LINE CONTROLLER
1402 .SBTTL DU11 - SYNCHRONOUS LINE CONTROLLER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-37
C11DMC.MAC 10-AUG-79 16:08 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1404 .SBTTL DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1405 ;
1406 000006 DUP.LVL = 6
1407 ;
1408 ;;;; DUPSTS = FLOATING
1409 ;
1410 000000 DUPCRS = 0 ;RECEIVER STATUS AND CONTROL REGISTER
1411 000000' NAMEBT DUPRCS,0,<DUPDSA,DUPRNG,DUPCTS,DUPCAR,DUPACT,DUP2RC>
1412 000000' NAMEBT ,,<DUPDSR,DUPSSY,DUPRDN,DUPRIE,DUPDIE,DUPRCE>
1413 000000' NAMEBT ,,<DUP2TX,DUPRTS,DUPDTR,DUPDSB>
1414 ;
1415 000000 .REPT 0
1416 DUPDSA - DATA SET CHANGE A RO
1417 DUPRNG - RING INDICATOR RO
1418 DUPCTS - CLEAR TO SEND RO
1419 DUPCAR - CARRIER RO
1420 DUPACT - ACTIVE RM
1421 DUP2RC - SECONDARY RECEIVE DATA RO
1422 DUPDSR - DATA SET READY RO
1423 DUPSSY - STRIP SYNCH RW
1424
1425 DUPRDN - RECEIVE DONE RO
1426 DUPRIE - RECEIVER INTERRUPT ENABLE RW
1427 DUPDIE - DATA SET INTERRUPT ENABLE RW
1428 DUPRCE - RECEIVE ENABLE (CLEARS THE READ MOSTLY BITS) RW
1429 DUP2TX - SECONDARY TRANSMIT RW
1430 DUPRTS - REQUEST TO SEND RW
1431 DUPDTR - DATA TERMINAL READY RW
1432 DUPDSB - DATA SET CHANGE B RO
1433 .ENDR
1434 000002 DUPRDB = 2 ;RECEIVE DATA BUFFER
1435 000000' NAMEBT DUPRDB,0,<DUPRER,DUPROV,,DUPRCR,,DUPRAB,DUPREM,DUPRSM>
1436 000377 DUPRDT = 377 ;RECEIVED DATA BUFFER
1437 000000 .REPT 0
1438 DUPRER - RECEIVER ERROR RO
1439 DUPROV - RECEIVER OVERRUN RO
1440 - RESERVED
1441 DUPRCR - RCRC ERROR+ZERO RO
1442 - RESERVED
1443 DUPRAB - RECEIVED ABORT RW
1444 DUPREM - END OF REC'D MSG RM
1445 DUPRSM - START OF REC'D MSG RM
1446 .ENDR
1447 000002 DUPPSR = DUPRDB ;PARAMETER STATUS REGISTER
1448 000000' NAMEBT DUPPSR,0,<DUPPDM,,,DUPP2M,,,DUPPIC,>
1449 000377 DUPP2S = 377 ;SECONDARY STATION ADDRESS OR REC SYNCH REG
1450 000000 .REPT 0
1451 DUPPDM - DEC MODE (BYTE MODE) WO
1452 - RESERVED
1453 - RESERVED
1454 DUPP2M - SENCONDARY MODE SELECT WO
1455 - RESERVED
1456 - RESERVED
1457 DUPPIC - INHIBIT CRC COMPUTATION WO
1458 .ENDR
1459 000004 DUPTCS = 4 ;TRANSMITTER STATUS REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-38
C11DMC.MAC 10-AUG-79 16:08 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1460 000000' NAMEBT DUPTCS,0,<DUPTDL,DUPTMT,DUPTMC,DUPTM1,DUPTM0>
1461 000000' NAMEBT ,,<DUPTMI,DUPTAC,DUPTRS,DUPTDN,DUPTIE,,DUPTSN,DUPTHD,,,>
1462 000000 .REPT 0
1463 DUPTDL - TRANSMIT DATA LATE RM
1464 DUPTMT - MAINTENANCE TRANSLATE RO
1465 DUPTMC - MAINTENANCE CLOCK RW
1466 DUPTM1 - MAINTENANCE MODE SELECT RW
1467 DUPTM0 -
1468 DUPTMI - MAINTENANCE INPUT RW
1469 DUPTAC - TRANSMITTER ACTIVE RO
1470 DUPTRS - DEVICE RESET WO
1471 DUPTDN - TRANSMIT DONE RM
1472 DUPTIE - TRANSMITTER INTERRUPT ENABLE RW
1473 - RESERVED
1474 DUPTSN - SEND RW
1475 DUPTHD - HALF DUPLEX RW
1476 - RESERVED
1477 - RESERVED
1478 - RESERVED
1479 .ENDR
1480 000006 DUPTDB = 6 ;TRANSMITTER DATA BUFFER
1481 000000' NAMEBT DUPTDB,0,<,DUPXCI,,DUPXCO,DUPXMT,DUPXAB,DUPXEM,DUPXSM>
1482 000377 DUPXDB = 377 ;TRANSMITTER DATA BUFFER BYTE
1483 000000 .REPT 0
1484 - RESERVED
1485 DUPXCI - MAINTENANCE CRC INPUT RO
1486 - RESERVED
1487 DUPXCO - MAINTENANCE CRC OUTPUT RO
1488 DUPXMT - MAINTENANCE TIMER RO
1489 DUPXAB - TRANSMIT ABORT RW
1490 DUPXEM - TRANSMIT END OF MSG RW
1491 DUPXSM - TRANSMIT STRAT OF MSG RW
1492 .ENDR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-39
C11DMC.MAC 10-AUG-79 16:08 DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1494 .SBTTL DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1495 ;
1496 ; DZ11 CONTROL STATUS REGISTER (CSR) FLAGS
1497 ;
1498 000020 DZ.CLR= 000020 ;MASTER CLEAR
1499 000040 DZ.SCN= 000040 ;SCAN ENABLE (ENABLE RCV & XMT)
1500 000100 DZ.RIE= 000100 ;RECEIVE INTERUPT ENABLE
1501 010000 DZ.SAE= 010000 ;SILO ALARM ENABLE
1502 040000 DZ.TIE= 040000 ;TRANSMIT INTERUPT ENABLE
1503 050140 DZ.INI= DZ.SCN!DZ.RIE!DZ.TIE!DZ.SAE ;INITIAL VALUE FOR CSR
1504
1505
1506 ;
1507 ; DZ11 LINE PARAMETER REGISTER (LPR) FLAGS
1508 ;
1509 010000 DZ.RCV= 010000 ;RCV ON IN LPR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-40
C11DMC.MAC 10-AUG-79 16:08 EIA PIN DEFINITIONS
1511 .SBTTL EIA PIN DEFINITIONS
1512 ;
1513 ; 1 PROTECTIVE GROUND
1514 ; 2 TRANSMITTED DATA
1515 ; 3 RECEIVED DATA
1516 ; 4 REQUEST TO SEND
1517 ; 5 CLEAR TO SEND
1518 ; 6 DATA SET READY
1519 ; 7 SIGNAL GROUND
1520 ; 8 RECEIVED LINE SIGNAL DECTECTOR
1521 ; 9 *
1522 ; 10 *
1523 ; 11 *
1524 ; 12 *
1525 ; 13 *
1526 ; 14 *
1527 ; 15 *
1528 ; 16 *
1529 ; 17 RECEIVED SIGNAL ELEMENT TIMING
1530 ; 18 *
1531 ; 19 *
1532 ; 20 DATA TERMINAL READY
1533 ; 21 SIGNAL QUALITY DETECTOR
1534 ; 22 RING INDICATOR
1535 ; 23 *
1536 ; 24 TRANSMIT SIGNAL ELEMENT TIMING
1537 ; 25 *
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-41
C11DMC.MAC 10-AUG-79 16:08 KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1539 .SBTTL KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1540 ;
1541 170700 KG.STS = 170700
1542 000200 KG.DNE=200 ;CALCULATION DONE
1543 000100 KG.SEN=100 ;NOT SINGLE CYCLE
1544 000040 KG.STP=040 ;STEP
1545 000020 KG.CLR=020 ;CLEAR
1546 000010 KG.DDB=010 ;WORD MODE
1547 ; 007 ;TYPE OF CALCULATION
1548 000001 KG.CRC=001 ; 1 = CRC-16
1549 000003 KG.LRC=003 ; 3 = LRC-16
1550 000005 KG.CCI=005 ; 5 = CRC-CCITT
1551 000121 KG.INI= KG.SEN!KG.CLR!KG.CRC
1552 000002 KGBCC = 2
1553 000004 KGDATA = 4
1554 ;
1555 .MACRO KGLOAD X,MODE
1556 Z=101
1557 .IF NB MODE
1558 .IIF IDN <MODE>,<WORD>,Z=Z!KG.DDB ;SET WORD MODE
1559 .IIF IDN <MODE>,<BYTE>,Z=Z&<^CKG.DDB>
1560 .ENDC;.IF NB MODE
1561 .IF IDN <#0>,<X>
1562 Z=Z!KG.CLR
1563 .IFF
1564 MOV #133,(R4) ;CLEAN OUT KG11
1565 MOV X,KGDATA(R4) ;LOAD WITH DATA ( X )
1566 .ENDC ;IDN <#0>,<X>
1567 MOV #Z,(R4) ;AND SET CRC MODE
1568 .ENDM KGLOAD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-42
C11DMC.MAC 10-AUG-79 16:08 KT11 - MEMORY MANAGEMENT MODULE
1570 .SBTTL KT11 - MEMORY MANAGEMENT MODULE
1571 ;
1572 .MACRO MMNAM1 MODE,TYPE,SPACE,NUMB
1573 MODE'SPACE'S'TYPE'R'NUMB = $MMADR
1574 $MMADR = $MMADR + 2
1575 .ENDM MMNAM1
1576 ;
1577 .MACRO MMNAM2 MODE,BASE
1578 $MMADR = BASE
1579 .IRPC TYPE,<DA>
1580 .IRPC SPACE,<ID>
1581 $$ = 0
1582 .REPT 8.
1583 MMNAM1 MODE,TYPE,SPACE,\$$
1584 $$ = $$ + 1
1585 .ENDR ;8.
1586 .ENDR ;SPACE
1587 .ENDR ;TYPE
1588 .ENDM MMNAM2
1589 ;
1590 ;
1591 ;
1592 ; MEMORY MANAGEMENT STATUS REGISTER BLOCK
1593 ; ASTERISK (*) DENOTES THE 11/34 MEMORY MANAGEMENT SUBSET
1594 ;
1595 177572 MMGSR0 = 177572 ;MEM MGT STATUS REGISTER *
1596 000000' NAMEBT MMGSR0,0,<MG.ANR,MG.APL,MG.ARO,MG.TMM,,>
1597 000000' NAMEBT ,,<MG.EMT,MG.MNT,MG.IDN,MG.MD1,MG.MD0>
1598 000000' NAMEBT ,,<MG.DAD,MG.PG2,MG.PG1,MG.PG0,MG.ENB>
1599 000000 .REPT 0
1600 MG.ANR - ABORT, NON-RESIDENT *
1601 MG.APL - ABORT, PAGE LENGTH *
1602 MG.ARO - ABORT, READ ONLY *
1603 MG.TMM - ABORT, TRAP ON MEM MGT
1604 MG.XXX - UNUSED
1605 MG.XXX - UNUSED
1606 MG.EMT - ENABLE MEM MGT TRAP
1607 MG.MNT - MAINTENANCE MODE *
1608 MG.IDN - INSTRUCTION DONE
1609 MG.MD1 - MODE, BIT 1 *
1610 MG.MD0 - MODE, BIT 0 *
1611 MG.DAD - D ADDRESS SPACE SELECTED
1612 MG.PG2 - PAGE SELECTED, BIT 2 *
1613 MG.PG1 - PAGE SELECTED, BIT 1 *
1614 MG.PG0 - PAGE SELECTED, BIT 0 *
1615 MG.ENB - ENABLE MEM MGT *
1616 .ENDR ;TEXT
1617 ;
1618 177574 MMGSR1 = 177574 ;GPR MODIFICATION RECORD
1619 ;
1620 177576 MMGSR2 = 177576 ;VIRTUAL ADDRESS REGISTER *
1621 ;
1622 172516 MMGSR3 = 172516 ;
1623 000000' NAMEBT MMGSR3,4,<MG.KDS,MG.SDS,MG.UDS>
1624 ;
1625 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-43
C11DMC.MAC 10-AUG-79 16:08 KT11 - MEMORY MANAGEMENT MODULE
1626 ; DEFINE NAMES FOR THE PAGE ADDRESS AND DESCRIPTOR REGISTERS
1627 ;
1628 000000' MMNAM2 U,177600 ;USER MODE MEM MGT *
1629 ;;;; MMNAM2 S,172200 ;SUPERVISOR MODE MEM MGT (NOT FOR 11/34)
1630 000000' MMNAM2 K,172300 ;KERNEL MODE MEM MGT *
1631 ;
1632 ; PAGE DESCRIPTOR REGISTER FIELD DEFINITIONS
1633 ;
1634 000000' NAMEBT PDR,0,<,PD.PL6,PD.PL5,PD.PL4,PD.PL3,PD.PL2,PD.PL1,PD.PL0>
1635 000000' NAMEBT ,,<PD.A,PD.W,,,PD.ED,PD.AC2,PD.AC1,PD.AC0>
1636 000000' FIELD PD.PLF,PD.PL6,PD.PL0
1637 000000' FIELD PD.ACF,PD.AC2,PD.AC0
1638 ;
1639 ; VIRTUAL ADDRESS DEFINITIONS
1640 ;
1641 000100 BSFACT = 100 ;BIAS FACTOR, NUMBER OF BYTES PER BLOCK
1642 .IRP X,<0,1,2,3,4,5,6,7>
1643 PAGE'X = X*20000 ;BASE ADDRESS REACHED THROUGH APR'X
1644 PAGE'X'B = X*200 ;MAPPING BIAS FOR VIRTUAL=PHYSICAL
1645 .ENDR ;IRP X
1646 007600 PAGE7B = 7600 ;PAGE 7 BIAS (I/O PAGE) HAS A SPECIAL VALUE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-44
C11DMC.MAC 10-AUG-79 16:08 KW11 - LINE TIME CLOCK
1648 .SBTTL KW11 - LINE TIME CLOCK
1649 ;
1650 ;KW11 LINE FREQUENCY CLOCK DEFINITIONS
1651 ;
1652 001 .IF DF FT.87S
1653 CLKLVL= 6 ; DN87 USES STANDARD PRIORITY LEVEL
1654 .IFF
1655 000004 CLKLVL= 4 ; CLOCK INTERRUPT PRIORITY LEVEL
1656 000 .ENDC
1657 000100 CLKVEC= 100 ; CLOCK VECTOR
1658 ;
1659 177546 CLKWRD = 177546 ; CLOCK STATUS WORD
1660 ;
1661 000100 KW.INE=B6 ; ENABLE INTERRUPTS
1662 000100 CLKENB=B6 ; ENABLE INTERRUPTS
1663 000200 KW.TIC=B7 ; CLOCK MONITOR TOGGLE (CLEARED BY PROGRAM)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-45
C11DMC.MAC 10-AUG-79 16:08 LP11 - LINE PRINTER CONTROLLER
1665 .SBTTL LP11 - LINE PRINTER CONTROLLER
1666 ;
1667 000004 LE.LVL= 4 ; PROCESSOR LEVEL FOR LP11 INTERRUPTS
1668 000200 LE.VEC= 200 ; VECTOR LOCATION
1669 ;
1670 177514 LE0STS = 177514 ;STATUS REGISTER FOR 1ST LP11
1671 177514 LE.STS=LE0STS
1672 ;
1673 100000 LE.ERR= B15 ; ERROR BIT(POWER OFF, NO PAPER, GATE, TEMP, OFFLINE)
1674 000200 LE.DNE= B7 ; READY FOR NEXT CHARACTER
1675 000100 LE.INE= B6 ; INTERRUPT ENABLE
1676 ;
1677 177516 LE0DAT = 177516 ;DATA REGISTER
1678 177516 LE.DAT=LE0DAT
1679 ;
1680 ;
1681 ;FOR THE SECOND LP11
1682 177520 LE1STS = 177520
1683 177522 LE1DAT = 177522
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-46
C11DMC.MAC 10-AUG-79 16:08 LP20 - LINEPRINTER CONTROLLER
1685 .SBTTL LP20 - LINEPRINTER CONTROLLER
1686 ;
1687 ; LP20 HARDWARE DEVICE REGISTER DEFINITIONS
1688 ;
1689 000004 LP.LVL = 4 ;BUS REQUEST PRIORITY
1690 000754 LP.VEC = 754 ;FIRST LP VECTOR
1691 ;
1692 175400 LP0STS = 175400 ;LP20 UNIT 0 FIRST REGISTER BLOCK
1693 ;
1694 000000 LPCSRA=0 ;CONTROL AND STATUS REGISTER A
1695 000000' NAMEBT LPCSRA,0,<LP.ERR,LP.PGZ,LP.CHI,LP.VFR,LP.ONL,LP.DH>
1696 000000' NAMEBT ,,<LP.RSE,LP.LOI,LP.DNE,LP.IE,LP.B17,LP.B16>
1697 000000' NAMEBT ,,<LP.MD1,LP.MD0,LP.PEN,LP.GO>
1698 000000 .REPT 0
1699 LP.ERR= ERROR (R)
1700 LP.PGZ= PAGE ZERO (R)
1701 LP.CHI= UNDEFINED CHAR TRAPPED (R)
1702 LP.VFR= VERT FORMAT UNIT READY (R)
1703 LP.ONL= ONLINE (R)
1704 LP.DH= DELIMITER HOLD (R-W)
1705 LP.RSE= RESET ERRORS (W)
1706 LP.LOI= LOCAL INITIALIZE (W)
1707
1708 LP.DNE= DONE (R)
1709 LP.IE= INTERRUPT ENABLE (R-W)
1710 LP.B17= HIGH ORDER BUS ADDRESS BITS (R-W)
1711 LP.B16= "
1712 LP.MD1= OPERATION MODE BITS (R-W)
1713 LP.MD0= "
1714 LP.PEN= PARITY CHECK INTERRUPT ENABLE (R-W)
1715 LP.GO= START COMMAND (R-W)
1716 .ENDR
1717 ;
1718 000004 TSTMOD= LP.MD0 * 1 ;TEST MODE
1719 000010 VFULOD= LP.MD0 * 2 ;VFU LOAD MODE
1720 000014 RAMLOD= LP.MD0 * 3 ;LOAD TRANSLATION RAM
1721 000014 LP.MDS= LP.MD0 ! LP.MD1 ;MODE BIT MASK
1722 000060 LP.XAD= LP.B17!LP.B16 ;HIGH ORDER BUSADD BITS
1723 000103 ENBGO= LP.PEN!LP.IE!LP.GO ;ENABLES AND GO
1724 ;
1725 000002 LPCSRB=2 ;CONTROL AND STATUS REGISTER B
1726 000000' NAMEBT LPCRSA,0,<LP.DV,LP.180,LP.NRD,LP.PAR>
1727 000000' NAMEBT ,,<LP.OPT,LP.TS2,LP.TS1,LP.TS0,LP.OFL,LP.VFE>
1728 000000' NAMEBT ,,<LP.PER,LP.MPE,LP.RPE,LP.SYN,LP.DEM,LP.GOE>
1729 ;
1730 000000 .REPT 0
1731 LP.DV= VALID DATA (R)
1732 LP.180= PRINTER IS AN LA180 (R)
1733 LP.NRD= LINE PRINTER NOT READY (R)
1734 LP.PAR= LINE PRINTER PARITY (R)
1735 LP.OPT= PRINTER HAS OPTICAL VFU (R)
1736 LP.TS2= TEST MODE BITS (R-W)
1737 LP.TS1= "
1738 LP.TS0= "
1739
1740 LP.OFL= DEVICE NOT READY (R)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-47
C11DMC.MAC 10-AUG-79 16:08 LP20 - LINEPRINTER CONTROLLER
1741 LP.VFE= CHANNEL TYPE ERROR (R)
1742 LP.PER= VARIOUS PARITY ERRORS (R)
1743 LP.MPE= "
1744 LP.RPE= "
1745 LP.SYN= SYNCH TIMEOUT (DATA LATE) (R)
1746 LP.DEM= DEMAND TIMEOUT (PRINTER HANG) (R)
1747 LP.GOE= GO ERROR (R-W)
1748 .ENDR
1749 ;
1750 000004 LPBSAD=4 ;BUS ADDRESS REGISTER (R-W)
1751 ;
1752 000006 LPBCTR=6 ;BYTE COUNT (2'S COMPLEMENT)
1753 ; BITS 15-12 NOT USED
1754 ; 11-0 BYTE COUNT (R-W)
1755 ;
1756 000010 LPPCTR=10 ;PAGE COUNTER
1757 ; BITS 15-12 NOT USED
1758 ; 11-0 PAGE COUNT (R-W)
1759 ;
1760 000012 LPRAMD=12 ;RAM DATA REGISTER
1761 000000' NAMEBT LPRAMD,0,<,,,LP.RP,LP.RIN,LP.RDL,LP.RTR,LP.RPI>
1762 007777 RAMDAT = LP.RP - 1 ;MASK FOR WRITABLE RAM BITS
1763 000020 SLEW = 20 ;"SLEW" FLAG FOR VFU
1764 ; BITS 15-13 NOT USED
1765 ; 12 RAM PARITY (R)
1766 ; 11-0 RAM DATA (R-W)
1767 ;
1768 000014 LPCBUF=14 ;(BYTE) CHARACTER BUFFER REGISTER (R-W)
1769 000015 LPCCTR=15 ;(BYTE) COLUMN COUNT REGISTER (R-W)
1770 ;
1771 000016 LPTDAT=16 ;(BYTE) PRINTER DATA REGISTER (R)
1772 000017 LPCKSM=17 ;(BYTE) CHECKSUM REGISTER (R)
1773 ;
1774 000020 LPRBSZ=20 ;SIZE OF HARDWARE REGISTER BLOCK
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-48
C11DMC.MAC 10-AUG-79 16:08 MM11-LP PARITY MEMORY
1776 .SBTTL MM11-LP PARITY MEMORY
1777 ;
1778 000114 MP.VEC=114
1779 000007 MP.LVL=7
1780 ;
1781 172100 MP.REG=172100 ;ADR OF PARITY REGISTER
1782 ;
1783 100000 MP.ERR=100000 ;ERROR BIT
1784 ; BITS 11-5 ERROR ADDRESS
1785 000004 MP.WWP=000004 ;WRITE WRONG PARITY
1786 000001 MP.ENB=000001 ;ENABLE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-49
C11DMC.MAC 10-AUG-79 16:08 PA611 - TYPESET READER/PUNCH
1788 .SBTTL PA611 - TYPESET READER/PUNCH
1789 ;
1790 000007 P6.LVL= 7 ; PROCESSOR LEVEL FOR PA611P INTERRUPTS
1791 ;
1792 000007 R6.LVL= 7 ; PROCESSOR LEVEL FOR PA611R INTERRUPTS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-50
C11DMC.MAC 10-AUG-79 16:08 PC11 - PAPER TAPE READER/PUNCH INTERFACE
1794 .SBTTL PC11 - PAPER TAPE READER/PUNCH INTERFACE
1795 ;
1796 000004 PR.LVL= 4 ; PROCESSOR LEVEL FOR PC11 READER INTERRUPTS
1797 000070 PR.VEC= 70 ; VECTOR FOR PC11 READER
1798 000004 PP.LVL= 4 ; PROCESSOR LEVEL FOR PC11 PUNCH INTERRUPTS
1799 000074 PP.VEC= 74 ; VECTOR FOR PC11 PUNCH
1800 ;
1801 177554 PP0STS = 177554 ;STATUS REGISTER FOR 1ST PC11 PUNCH
1802 177554 PP.STS= 177554 ; PUNCH STATUS REGISTER
1803 ;
1804 100000 PP.ERR= B15 ; ERROR BIT (NO TAPE OR NO POWER)
1805 000200 PP.RDY= B7 ; SET WHEN RREADY TO PUNCH A CHARACTER
1806 000100 PP.INE= B6 ; INTERRUPT ENABLE
1807 ;
1808 177556 PP.DAT= 177556 ; PUNCH BUFFER REGISTER
1809 ;
1810 177550 PR0STS = 177550 ;STATUS REGISTER FOR 1ST PC11 READER
1811 177550 PR.STS= 177550 ; READER STATUS REGISTER
1812 ;
1813 100000 PR.ERR= B15 ; ERROR BIT (NO TAPE, NO POWER, OR OFF-LINE)
1814 004000 PR.BSY= B11 ; SET WHEN A CHARACTER IS BEING READ
1815 000200 PR.DNE= B7 ; CHARACTER IS AVAILABLE IN THE READER BUFFER
1816 000100 PR.INE= B6 ; INTERRUPT ENABLE
1817 000001 PR..RE= B0 ; READER ENABLE
1818 ;
1819 177552 PR.DAT= 177552 ; READER BUFFER REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-51
C11DMC.MAC 10-AUG-79 16:08 TC11 - DECTAPE CONTROLLER
1821 .SBTTL TC11 - DECTAPE CONTROLLER
1822 ;
1823 000214 TC.VEC= 214 ; TC11 INTERRUPT VECTOR ADDRESS
1824 ;
1825 000006 TC.LVL= 6 ; TC11 PRIORITY LEVEL
1826 ;
1827 177340 TC.STS= 177340 ; TC11 CONTROL AND STATUS REGISTER
1828 ;
1829 100000 TC..EZ= B15 ; END ZONE
1830 040000 TC.PAR= B14 ; PARITY ERROR
1831 020000 TC.MTE= B13 ; MARK TRACK ERROR
1832 010000 TC.ILO= B12 ; ILLEGAL OPERATION
1833 004000 TC..SE= B11 ; SELECTION ERROR
1834 002000 TC..BM= B10 ; BLOCK MISSED
1835 001000 TC..DM= B9 ; DATA MISSED
1836 000400 TC.NXM= B8 ; NON-EX MEM
1837 000200 TC.UPS= B7 ; TAPE IS UP TO SPEED
1838 000100 TC.CLK= B6 ; USED TO SIMULATE TIMING TRACK
1839 000040 TC.MMT= B5 ; MAINT MARK TRACK
1840 000020 TC.DT0= B4 ; DATA TRACK 0
1841 000010 TC.DT1= B3 ; DATA TRACK 1
1842 000004 TC.DT2= B2 ; DATA TRACK 2
1843 000002 TC.D17= B1 ; EXTENDED DATA 17
1844 000001 TC.D16= B0 ; EXTENDED DATA 16
1845 ;
1846 177342 TC.CMD= 177342 ; TC11 COMMAND REGISTER
1847 ;
1848 100000 TC.ERR= B15 ; ERROR
1849 020000 TC..MM= B13 ; MAINT MODE
1850 010000 TC..DI= B12 ; DELAY INHIBIT
1851 004000 TC.REV= B11 ; SET = REVERSE MOTION; CLEAR = FORWARD MOTION
1852 000000 TC.US0= 0 ; SELECT UNIT 0
1853 000400 TC.US1= B8 ; SELECT UNIT 1
1854 001000 TC.US2= B9 ; SELECT UNIT 2
1855 001400 TC.US3= B9!B8 ; SELECT UNIT 3
1856 002000 TC.US4= B10 ; SELECT UNIT 4
1857 002400 TC.US5= B10!B8 ; SELECT UNIT 5
1858 003000 TC.US6= B10!B9 ; SELECT UNIT 6
1859 003400 TC.US7= B10!B9!B8 ; SELECT UNIT 7
1860 000200 TC.RDY= B7 ; READY
1861 000100 TC.INE= B6 ; INTERRUPT ENABLE
1862 000040 TC.A17= B5 ; EXTENDED MEM BIT BA17
1863 000020 TC.A16= B4 ; EXTENDED MEM BIT BA16
1864 000000 TC.SAT= 0 ; STOP ALL TAPE MOTION
1865 000002 TC.RMT= B1 ; FINDS MARK TRACK CODE
1866 000004 TC..RD= B2 ; READ
1867 000006 TC.RDA= B2!B1 ; READ ALL
1868 000010 TC.SST= B3 ; STOP ALL TAPE MOTION IN SEL'D TRANSPORT ONLY
1869 000012 TC.WTM= B3!B1 ; WRITE TIMING AND MARK TRACK
1870 000014 TC..WR= B3!B2 ; WRITE
1871 000016 TC.WRA= B3!B2!B1 ; WRITE ALL
1872 ;
1873 177344 TC.WCR= 177344 ; TC11 WORD COUNT REGISTER
1874 ;
1875 177346 TC.BAR= 177346 ; TC11 BUS ADDRESS REGISTER
1876 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-52
C11DMC.MAC 10-AUG-79 16:08 TC11 - DECTAPE CONTROLLER
1877 177350 TC.DAT= 177350 ; TC11 DATA REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-53
C11DMC.MAC 10-AUG-79 16:08 TM11 - MAGNETIC TAPE CONTROLLER
1879 .SBTTL TM11 - MAGNETIC TAPE CONTROLLER
1880 ;
1881 000224 TM.VEC= 224 ; TM11 VECTOR ADDRESS
1882 ;
1883 000005 TM.LVL= 5 ; TM11 PRIORITY LEVEL
1884 ;
1885 172520 TM.STS= 172520 ; STATUS REGISTER
1886 ;
1887 100000 TM..IC= B15 ; ILLEGAL COMMAND
1888 040000 TM.EOF= B14 ; END OF FILE
1889 020000 TM.CRE= B13 ; CYCLICAL REDUNDANCY
1890 010000 TM.PAE= B12 ; PARITY ERROR
1891 004000 TM.BGL= B11 ; BUS GRANT LATE
1892 002000 TM.EOT= B10 ; END OF TAPE
1893 001000 TM.RLE= B9 ; RECORD LENGTH ERROR
1894 000400 TM.BTE= B8 ; BAD TAPE ERROR
1895 000200 TM.NXM= B7 ; NON-EXISTENT MEMORY
1896 000100 TM.SLR= B6 ; SELECT REMOTE
1897 000040 TM.BOT= B5 ; BEGINNING OF TAPE
1898 000020 TM.7CH= B4 ; SEVEN CHANNEL
1899 000010 TM.TSD= B3 ; TAPE SETTLE DOWN
1900 000004 TM.WRL= B2 ; WRITE LOCK
1901 000002 TM.RWS= B1 ; REWIND STATUS
1902 000001 TM.TUR= B0 ; TAPE UNIT READY
1903 ;
1904 172522 TM.MTC= 172522 ; COMMAND REGISTER
1905 ;
1906 100000 TM.ERR= B15 ; ERROR
1907 000000 TM.D72= 0 ; 200 BPI 7 CHANNEL
1908 020000 TM.D75= B13 ; 556 BPI 7 CHANNEL
1909 040000 TM.D78= B14 ; 800 PBI 7 CHANNEL
1910 060000 TM.D98= B14!B13 ; 800 BPI 9 CHANNEL
1911 010000 TM..PC= B12 ; POWER CLEAR
1912 004000 TM..LP= B11 ; LATERAL PARITY
1913 003400 TM..US= B10!B9!B8 ; UNIT SELECT FIELD
1914 000000 TM.US0= 0 ; SELECT UNIT 0
1915 000400 TM.US1= B8 ; SELECT UNIT 1
1916 001000 TM.US2= B9 ; SELECT UNIT 2
1917 001400 TM.US3= B8!B9 ; SELECT UNIT 3
1918 002000 TM.US4= B10 ; SELECT UNIT 4
1919 002400 TM.US5= B10!B8 ; SELECT UNIT 5
1920 003000 TM.US6= B10!B9 ; SELECT UNIT 6
1921 003400 TM.US7= B10!B9!B8 ; SELECT UNIT 7
1922 000200 TM.CUR= B7 ; CU READY
1923 000100 TM.INE= B6 ; INTERRUPT ENABLE
1924 000040 TM.A17= B5 ; EXTENDED MEM BIT BA17
1925 000020 TM.A16= B4 ; EXTENDED MEM BIT BA16
1926 000000 TM.OFL= 0 ; OFF-LINE
1927 000002 TM..RD= B1 ; READ
1928 000004 TM..WR= B2 ; WRITE
1929 000006 TM.WEF= B1!B2 ; WRITE EOF
1930 000010 TM..SF= B3 ; SPACE FORWARD
1931 000012 TM..SR= B3!B1 ; SPACE REVERSE
1932 000014 TM.WEG= B3!B2 ; WRITE WITH EXTENDED GAP
1933 000016 TM.REW= B3!B2!B1 ; REWIND
1934 000001 TM..GO= B0 ; GO
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-54
C11DMC.MAC 10-AUG-79 16:08 TM11 - MAGNETIC TAPE CONTROLLER
1935 ;
1936 172524 TM.BCR= 172524 ; BYTE COUNT REGISTER
1937 ;
1938 172526 TM.BAR= 172526 ; BYTE ADDRESS REGISTER
1939 ;
1940 172530 TM.DAT= 172530 ; DATA BUFFER
1941 ;
1942 172532 TM.RDL= 172532 ; TU 10 READ LINES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-55
C11DMC.MAC 10-AUG-79 16:08 END OF DEVICE DEFINITIONS
1944 .SBTTL END OF DEVICE DEFINITIONS
1945 ;
1946 ; HERE AGAIN RESIDE THE HIDDEN DEBUGGING AND OTHER SPECIAL MACROS
1947 ; WHICH ARE HIDDEN IN THE INTEREST OF SAVING ASSEMBLY TIME RESOURCES
1948 ; AND LARGE AMOUNTS OF PAPER IN LISTING
2997 .SBTTL MODULE END
2998 .SBTTL
2999 ;****************************************************************
3000 ;
3001 ; END OF S - SYMBOL AND MACRO DEFINITION SECTION
3002 ;
3003 ;****************************************************************
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-56
C11DMC.MAC 10-AUG-79 16:08
3005 .TITLE TERBOT - TERTIARY NETWORK BOOTSTRAP
3006 .IDENT /X02.00/
3007
3008 ;
3009 ; COPYRIGHT (C) 1978 BY
3010 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
3011 ;
3012 ;
3013 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3014 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
3015 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
3016 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
3017 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
3018 ; TRANSFERRED.
3019 ;
3020 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
3021 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3022 ; CORPORATION.
3023 ;
3024 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3025 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
3026 ;
3027 ;
3028 ; MODULE DESCRIPTION:
3029 ;
3030 ; TERTIARY BOOT PART I
3031 ;
3032 ;
3033 ;
3034 ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
3035 ;
3036 ; IDENT HISTORY:
3037 ;
3038 ; 1.00 10-FEB-78
3039 ; VERSION 2.0 RELEASE
3040 ; 2.00 16-OCT-78
3041 ; MODIFICATION FOR DN20/DN200 USE WITH CHECK11
3042 ;
3043
3044 ; THE BOOTSTRAP MESSAGES ARE OF THE FORM:
3045 ;
3046 ; SYN,DLE,COUNT,F,S,FILL,FILL,ADDR,CRC1,DATA,CRC2
3047 ;
3048 ; ALL ITEMS ARE 8-BIT QUANTITIES UNLESS OTHERWISE SPECIFIED
3049 ;
3050 ; SYN-THE SYNC CHARACTER-OCTAL 226 OR 377 (ASYNCHRONOUS)
3051 ; DLE-THE ASCII DLE CHARACTER-OCTAL 220
3052 ; COUNT-THE 14-BIT COUNT FIELD-LENGTH OF DATA FIELD
3053 ; F-THE FINAL BIT-LINK CONTROL
3054 ; S-THE SELECT BIT-LINK CONTROL
3055 ; FILL-A FILL CHARACTER-OCTAL 000
3056 ; ADDR-THE ADDRESS OF STATION BEING BOOTED-FOR PT. TO PT. = 1
3057 ; CRC1-THE 16-BIT CRC-16 COMPUTED ON DLE THROUGH ADDR
3058 ; DATA-THE BOOT DATA AS FOLLOWS:
3059 ; FOR BLOCKS WITHOUT CODE=XFER ADDRESS BLOCK:
3060 ; COUNT .GT. 6
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-57
C11DMC.MAC 10-AUG-79 16:08
3061 ; CODE,BLKNO.,BLOCK LOAD ADDR,CORE IMAGE DATA
3062 ; FOR BLOCK WITH CODE=XFER ADDRESS BLOCK
3063 ; COUNT .EQ. 6
3064 ; CODE,BLKNO.,PROGRAM TRANSFER ADDRESS
3065 ; ADDRESSES ARE 4 BYTES-32 BITS-LOW BIT FIRST
3066 ; CODE - 2==>BOOT IMAGE DATA
3067 ; 0==>XFER ADDRESS
3068 ; BLKNO. - BLOCK NO. STARTING AT 0
3069 ; CRC2-THE 16-BIT CRC-16 COMPUTED ON THE DATA FIELD ONLY
3070 ;
3071 ;
3072 ; ***** NOTE *****
3073 ;
3074 ; IF A KT-11 MEMORY MANAGEMENT UNIT EXISTS ON THE TARGET COMPUTER,
3075 ; IT WILL BE ENABLED WHEN THE PROGRAM IS STARTED ON THE TARGET MACHINE
3076 ;
3077 ;
3078 ; ***** NOTE *****
3079 ;
3080 ; THIS VERSION OF THE TERTIARY LOADER RELOCATES THE LOADER TO HIGH CORE
3081 ; AND THEN INVOKES CHECK11, WHICH IS LOCATED IN LOW CORE BEYOND THE LOADER
3082 ; AND ITS DRIVER. CHECK11 IS PASSED THE STARTING ADDRESS OF THE RELOCATED
3083 ; LOADER IN R0, AND RETURNS TO THE LOADER WHEN IT HAS FINISHED ITS
3084 ; DIAGNOSTICS.
3085 ;
3086 ; ***** NOTE *****
3087 ;
3088 ;
3089 ; THE LOADER AND DRIVER CODE IS POSITION-INDEPENDENT. CHECK11 CODE IS NOT.
3090 ;
3091 ;-
3092 ;
3093 ; LOCAL SYMBOL DEFINITIONS
3094 ;
3095 ;
3096 172340 KISAR0=172340
3097 172300 KISDR0=172300
3098 172344 KISAR2=172344 ;NOT DEFINED IN EXELIB
3099 172304 KISDR2=172304 ;NOT DEFINED IN EXELIB
3100 172352 KISAR5=172352
3101 172312 KISDR5=172312
3102 172314 KISDR6=172314 ;DITTO
3103 172354 KISAR6=172354 ;DITTO AGAIN
3104 172356 KISAR7=172356
3105 177572 SR0=177572
3106
3107 000406 BUFSIZ=262. ;BUFFER SIZE (MOP HEADER & LOAD DATA)
3108 ;
3109 ; START OF BOOT PROGRAM
3110 ;
3111 ;
3112 ; SET $DEVTP TO DEVICE TYPE AND $UNIT TO UNIT NUMBER
3113 ; GET TYPE FROM DLLDRV AND UNIT NUMBER BY LOOKING
3114 ; IN DEVICE SPACE
3115 ;
3116 000000' 010702 START: MOV PC,R2 ;CURRENT PC
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-58
C11DMC.MAC 10-AUG-79 16:08
3117 000002' 062702 000116 ADD #DEVNAM-.,R2 ;DEVNAM TABLE ADDR
3118 000006' 062702 000000G ADD #DEVTYP,R2 ;INDEXED BY DEVICE TYPE
3119 000012' 011237 016722' MOV (R2),$DEVTP ;STORE DEVICE TYPE IN ASCII
3120 000016' 016204 000044 MOV CSRTAB-DEVNAM(R2),R4 ;GET CSR ADDRESS
3121 000022' 016203 000022 MOV FLTTAB-DEVNAM(R2),R3 ;GET FLOAT TABLE VALUE
3122 000026' 001421 BEQ SETUNT ;IF EQ, NOT A FLOATING DEVICE
3123 000030' 012737 000340 000006 MOV #340,@#6 ;SET NEW TRAP PS
3124 000036' 010702 MOV PC,R2 ;CURRENT PC
3125 000040' 062702 000160 ADD #NODEV-.,R2 ;NODEV ADDR
3126 000044' 010237 000004 MOV R2,@#4 ;TRAP ROUTINE ADDR
3127 000050' 062702 177766 ADD #DEVTAB-NODEV,R2 ;MODULO TABLE ADDR
3128 000054' 005714 FLOAT: TST (R4) ;LOOK FOR DEVICE
3129 000056' 111205 MOVB (R2),R5 ;UP TO NEXT MODULO
3130 000060' 060504 ADD R5,R4 ;
3131 000062' 005204 INC R4 ;
3132 000064' 040504 BIC R5,R4 ;
3133 000066' 005703 TST R3 ;CHECK FOR END OF SEARCH
3134 000070' 001371 BNE FLOAT ;AGAIN
3135 000072' 160104 SETUNT: SUB R1,R4 ;DISPLACEMENT FROM UNIT 0
3136 000074' 005727 000000G TST #DEVTYP ;IS IT A DP-11
3137 000100' 001401 BEQ 1$ ;NO
3138 000102' 005404 NEG R4 ;CHANGE DISPLACEMENT
3139 000104' 006204 1$: ASR R4 ;DIVIDE BY 8.
3140 000106' 006204 ASR R4 ;
3141 000110' 006204 ASR R4 ;
3142 000112' 110437 016724' MOVB R4,$UNIT ;SAVE UNIT NUMBER
3143 000116' 000442 BR SETREG ;TO RELOCATE ROUTINE
3144 ;
3145 ;
3146 ; DEVICE NAME TABLE
3147 ;
3148 000120' 050130 DEVNAM: .ASCII 'XP'
3149 000122' 052530 .ASCII 'XU'
3150 000124' 046130 .ASCII 'XL'
3151 000126' 050530 .ASCII 'XQ'
3152 000130' 041130 .ASCII 'XB'
3153 000132' 053530 .ASCII 'XW'
3154 000134' 046530 .ASCII 'XM'
3155 000136' 030530 .ASCII 'X1'
3156 000140' 046130 .ASCII 'XL'
3157 ;
3158 ; FLOATING NUMBER TABLE
3159 ;
3160 000142' 000000 FLTTAB: .WORD 0
3161 000144' 000003 .WORD 3
3162 000146' 000000 .WORD 0
3163 000150' 000002 .WORD 2
3164 000152' 000000 .WORD 0
3165 000154' 000004 .WORD 4
3166 000156' 000006 .WORD 6
3167 000160' 000000 .WORD 0
3168 000162' 000000 .WORD 0
3169 ;
3170 ; CSR ADDRESS TABLE
3171 ;
3172 000164' 174770 CSRTAB: .WORD 174770
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-59
C11DMC.MAC 10-AUG-79 16:08
3173 000166' 160010 .WORD 160010
3174 000170' 175610 .WORD 175610
3175 000172' 160010 .WORD 160010
3176 000174' 172414 .WORD 172414
3177 000176' 160010 .WORD 160010
3178 000200' 160010 .WORD 160010
3179 000202' 176500 .WORD 176500
3180 000204' 175610 .WORD 175610
3181 ;
3182 ; FLOATING DEVICE MODULO TABLE
3183 ;
3184 000206' 007 DEVTAB: .BYTE 7 ;DJ
3185 000207' 017 .BYTE 17 ;DH
3186 000210' 007 .BYTE 7 ;DQ
3187 000211' 007 .BYTE 7 ;DU
3188 000212' 007 .BYTE 7 ;DUP
3189 000213' 007 .BYTE 7 ;LK11
3190 000214' 007 .BYTE 7 ;DMC
3191 000215' 007 .BYTE 7 ;DLV
3192 000216' 000 .BYTE 0 ;FILLER
3193
3194 000220' .EVEN
3195 ;
3196 ; FLOAT DEVICE TRAP ROUTINE
3197 ;
3198 000220' 122243 NODEV: CMPB (R2)+,-(R3)
3199 000222' 000002 RTI
3200
3201 ;
3202 ; INPUTS:
3203 ; R1 CONTAINS THE CSR ADDRESS OF THE LINK DEVICE
3204 ;
3205 ;
3206 ; OUTPUTS: R1 CONTAINS CSR ADDRESS OF LINK DEVICE
3207 ; R2 CONTAINS THE ASCII NAME OF THE LINK DEVICE TYPE
3208 ;-
3209 ;
3210 000224' 010700 SETREG: MOV PC,R0 ;SET UP TO FIND TOP OF MEMORY
3211 000226' 062700 000024 ADD #20$-.,R0 ;
3212 000232' 010037 000004 MOV R0,@#4 ;SET TRAP ADDRESS
3213 000236' 012737 000340 000006 MOV #340,@#6 ;PS
3214 000244' 005006 CLR SP ;RESET
3215 000246' 022616 10$: CMP (SP)+,(SP) ;FIND TOP
3216 000250' 000776 BR 10$ ;LOOP UNTIL TRAP
3217 000252' 20$:
3218 000252' 022626 CMP (SP)+,(SP)+ ;SET TO TOP OF CORE
3219
3220 ;
3221 ; LOOK FOR MEMORY MANAGEMENT
3222 ;
3223 000254' 010700 MOV PC,R0 ;SET UP MEMORY TRAP
3224 000256' 062700 000112 ADD #70$-.,R0 ;
3225 000262' 010037 000004 MOV R0,@#4 ;TRAP PC
3226 000266' 005000 CLR R0 ;SET UP PAR'S TO 4K BOUNDARIES...
3227 000270' 012704 172300 MOV #KISDR0,R4 ;...AND ALL PDR'S FOR 4K R/W
3228 000274' 012703 000010 MOV #8.,R3 ;THERE ARE 8 APR'S
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-60
C11DMC.MAC 10-AUG-79 16:08
3229 000300' 010064 000040 30$: MOV R0,KISAR0-KISDR0(R4) ;SET UP NEXT 4K LOW BOUNDARY
3230 000304' 012724 077406 MOV #77406,(R4)+ ;SET UP ASSOCIATED PDR
3231 000310' 062700 000200 ADD #200,R0 ;SET FOR NEXT 4K
3232 000314' 005303 DEC R3 ;MORE?
3233 000316' 001370 BNE 30$ ;IF NE YES
3234 ;
3235 ; NOTE THAT SETTING PAR6 AND PAR7 HERE IS SUPERFLUOUS
3236 ;
3237 ;
3238 ; IF WE GET TO THIS CODE, WE USE THE MEMORY MANAGEMENT UNIT
3239 ;
3240 ;
3241 000320' 105237 016726' INCB KT11 ;YES, VIRGINIA, THERE REALLY IS A KT-11
3242 000324' 012737 007600 172356 MOV #7600,@#KISAR7 ;POINT TO THE EXTERNAL PAGE
3243 000332' 005237 177572 INC @#SR0 ;ENABLE MEMORY MANAGEMENT
3244 000336' 012700 000140 MOV #140,R0 ;START LOOKING HERE
3245 000342' 012706 144000 MOV #144000,SP ;THIS WILL BE 1ST NON-EXISTENT LOC
3246 000346' 010037 172354 50$: MOV R0,@#KISAR6 ;SET UP REGISTER
3247 000352' 020027 007540 CMP R0,#7540 ;AT ABSOLUTE END?
3248 000356' 103005 BHIS 90$ ;IF HIS YES
3249 000360' 005716 TST (SP) ;DOES THE MEMORY EXIST?
3250 000362' 062700 000200 ADD #200,R0 ;IF WE GET HERE, YES
3251 000366' 000767 BR 50$ ;TRY ANOTHER 4K
3252 000370' 022626 70$: CMP (SP)+,(SP)+ ;NO MEMORY MANAGEMENT TODAY, THANKS
3253 000372' 010703 90$: MOV PC,R3 ;COMPUTE ADDRESS OF MOVE START
3254 000374' 162703 000374' SUB #.,R3 ; (INCLUDES
3255 000400' 062703 000000G ADD #ENDDRV,R3 ; THE DRIVER)
3256 000404' 012702 000000G MOV #ENDDRV,R2 ;SET NUMBER
3257 000410' 162702 016032' SUB #BT3STR,R2 ; OF WORDS
3258 000414' 006202 ASR R2 ; TO RELOCATE
3259 000416' 014346 100$: MOV -(R3),-(SP) ;MOVE A WORD
3260 000420' 005302 DEC R2 ;MORE TO MOVE?
3261 000422' 001375 BNE 100$ ;IF NE YES
3262 000424' 005046 CLR -(SP) ;
3263 000426' 010616 MOV SP,(SP) ;CALCULATE
3264 000430' 162716 000504 SUB #BUFSIZ+64.-2,(SP) ; START OF BUFFER & UNUSED STACK
3265 000434' 011646 MOV (SP),-(SP) ;SPECIFY MEMORY LOAD LIMIT
3266 ; ***NOTE*** SP NOW POINTS TO RELOCATED CODE MINUS 4
3267 000436' 005000 CLR R0 ;START WITH LOAD 0
3268 000440' 012705 000004G MOV #INIDRV+4,R5 ;START
3269 000444' 162705 016032' SUB #BT3STR,R5 ; UP
3270 000450' 060605 ADD SP,R5 ; THE
3271 000452' 004715 JSR PC,(R5) ; DEVICE
3272 000454' 010600 MOV SP,R0 ;SAVE BOOT ADDRESS
3273 000456' 062700 000004 ADD #4,R0 ;SKIP PAST THE CONTENTS OF THE STACK
3274 000462' 000137 001230' JMP CHK.11 ;INVOKE CHECK11 (WILL GO ON TO BOOT)
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 1-61
C11DMC.MAC 10-AUG-79 16:08
3276 ;
3277 ; COPYRIGHT (C) 1977,1978 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA 01754
3278 ;
3279 ;
3280 ; MODULE: CHECK11
3281 ;
3282 ; DATE: 21-NOV-78
3283 ;
3284 ; AUTHOR: TOM PORCHER
3285 ; TOM POWERS
3286 ; LEE WEBBER
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 2
C11DMC.MAC 10-AUG-79 16:08
3288
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 3
C11DMC.MAC 10-AUG-79 16:08
3290
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 4
C11DMC.MAC 10-AUG-79 16:08
3292
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 5
C11DMC.MAC 10-AUG-79 16:08
3294
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 6
C11DMC.MAC 10-AUG-79 16:08
3296
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7
C11DMC.MAC 10-AUG-79 16:08
3298
3299 .TITLE CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3300 .SBTTL CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3301 ; 22 SEP 1977 DMCC/EGF/JBS/LAD/EJW/TEP
3302 ;
3303 ;
3304 ;
3305 ; THIS CODE IS EXECUTED ONCE AND THEN OVERLAID
3306 ;
3307 ;
3308 ;
3309 ;
3310 ; THE CALL TO CHK11 IS AS FOLLOWS:
3311 ; JSR PC,CHK.11
3312 ; .WORD PTR ;POINTER TO ASCIZ NAME STRING AND EDIT POINTERS
3313 ; RETURNS TO CALLER FOLLOWING POINTER WORD
3314 ;
3315 ; CHK11 WILL DETERMINE WHAT HARDWARE IS PRESENT
3316 ; AND WILL PERFORM A FEW SIMPLE DIAGNOSTIC TESTS OF THE HDW
3317 ;
3318 ; FOR DEV = < DH11, DM11BB, DP11, DQ11, DS11, DU11>
3319 ; CHK11 WILL: JSR PC,CKA'DEV
3320 ; WITH (R3) = DEVICE VECTOR
3321 ; AND (R4) = DEVICE ADR
3322 ; AND (R1) = DEVICE ADR
3323 ; ONCE FOR EACH DEVICE AND A FINAL:
3324 ; JSR PC,CKA'DEV WITH (R4)=0
3325 ;
3326 ; ALL SYMBOLS BEGINING CHK OR CK ARE RESERVED FOR CHK11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7-1
C11DMC.MAC 10-AUG-79 16:08 CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3328 .ENABL AMA
3329 ; VERSION INFORMATION
3330 ;
3331 000466' 005015 006012 044103 CKNAME: .ASCIZ <15><12><12><14>"CHK11 HARDWARE TEST"
000474' 030513 020061 040510
000502' 042122 040527 042522
000510' 052040 051505 000124
3332 .EVEN
3333 000516' 000002 000101 000025 .WORD CKVMAJ,CKVMIN,CKVEDI
3334 000524' 000530' 000542' .WORD CKVWHN,CKVWHO
3335 ;
3336 000002 CKVMAJ = 2 ;MAJOR VERSION NUMBER
3337 000101 CKVMIN = 'A ;MINOR VERSION LETTER (AS 'A)
3338 000025 CKVEDI = 21. ;EDIT NUMBER
3339 000001 ED.HIS = 1 ;TYPE OUT DETAILS
3340 000530' 030061 040455 043525 CKVWHN: .ASCIZ "10-AUG-79" ;LAST EDIT DATE
000536' 033455 000071
3341 .EVEN
3342 000542' 042114 000127 CKVWHO: .ASCIZ "LDW" ;LAST EDITOR
3343 .EVEN
3344 ;
3345 ;
3346 ;
3347 ;BE SURE ALL THE REGS ARE DEFINED PROPERLY
3348 ;
3349 000000 R0=%0
3350 000001 R1=%1
3351 000002 R2=%2
3352 000003 R3=%3
3353 000004 R4=%4
3354 000005 R5=%5
3355 000006 R6=%6
3356 000006 SP=%6
3357 000007 R7=%7
3358 000007 PC=%7
3359 ;
3360 .IIF NDF FTKG11,FTKG11= 1 ;0 IF KG11 MUST BE PRESENT
3361 ;
3362 ;OTHER DEFAULTS
3363 .IIF NDF FLOATV FLOATV= 300 ;FIRST FLOATING VECTOR
3364 .IIF NDF FLOATD FLOATD= 160000 ;FLOATING DEVICES BEGIN HERE
3365 ;
3366 .IIF NDF DL10AD,DL10AD=.
3367 000546' 000001 .BLKW 1 ;PUT DL10 ADR HERE IF NOWHERE ELSE
3368 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7-2
C11DMC.MAC 10-AUG-79 16:08 CHK11 MACROS
3370 .SBTTL CHK11 MACROS
3371 .SBTTL CK11SC
3372 ;
3373 ;THIS MACRO IS USED FOR TYPING TEXT AND ERROR REPORTING.
3374 ;
3375 ; ARG BITS ;WHAT TO DO ON A TRAP
3376 000001 CKEFAT= B0 ;FATAL ERROR - HALT
3377 000002 CKEPC= B1 ;PRINT ADDRESS OF ERROR TRAP
3378 000004 CKEMSG= B2 ;PRINT THE MESSAGE FOLLOWING CK11SC
3379 000010 CKEDID= B3 ;PRINT DEVICE ID AND REG
3380 000020 CKEMSE= B4 ;PRINT THE MESSAGE POINTED TO BY
3381 ; THE ADDRESS FOLLOWING THE TRAP.
3382 000040 CKENCL= B5 ;PRINT TEXT WITH OUT CR+LF
3383 000100 CKEGB= B6 ;PRINT ADR/REG=XXXXX GD=XXXXX BD=XXXXX XOR=XXXXX
3384 ;
3385 ; ARG MSG ;TEXT TO BE OUTPUT
3386 ;
3387 ; ARG COMENT ;ADD A COMMENT TO THE TRAP INSTRUCTION
3388 ;
3389 ; ARG STOPCD ;ON A FATAL ERROR VALUE TO BE PUT IN R0
3390 ;
3391 .MACRO CK11SC BITS,MSG,COMENT,STOPCD
3392 .IIF NB,STOPCD, MOV #STOPCD,CKSPCD ;VALUE TO DISPLAY ON FATAL ERROR
3393 .IF B <MSG>
3394 TRAP BITS ;COMENT
3395 .IFF ;B <MSG.>
3396 .IF EQ,<BITS&CKEMSE>
3397 TRAP BITS!CKEMSG ;COMENT
3398 ;;;; ASCIZ <MSG> ;MESSAGE TEXT FOLLOWS TRAP
3399 .IFF
3400 TRAP BITS&<^CCKEMSG> ;COMENT
3401 .WORD MSG ;ADR OF MESSAGE FOLLOWS TRAP
3402 .ENDC ;EQ <BITS..>
3403 .ENDC ;B <MSG.>
3404 .ENDM CK11SC
3405 ;
3406 ;
3407 ;THIS MACRO IS USED FOR SAVING GOOD, BAD, AND ADR ON THE STACK
3408 ;PRIOR TO INVOKING CK11SC
3409 ;
3410 ; ARG GD ;GOOD DATA
3411 ; ARG BD ;BAD DATA
3412 ; ARG ADR ;ADDRESS WHERE IT HAPPENED
3413 ;
3414 .MACRO CKSERR GD,BD,ADR
3415 MOV GD,-(SP) ;SAVE GOOD (GD) ON STACK
3416 MOV BD,-(SP) ;SAVE BAD (BD) ON STACK
3417 MOV ADR,-(SP) ;SAVE ADDRESS (ADR) ON STACK
3418 .ENDM CKSERR
3419 ;
3420 .MACRO ABORT
3421 CK11SC CKEFAT
3422 .ENDM ABORT
3423 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7-3
C11DMC.MAC 10-AUG-79 16:08 $CKINT
3425 .SBTTL $CKINT
3426 ;
3427 ;THIS MACRO IS USED TO CHECK INTERRUPT CONDITIONS
3428 ;
3429 ; ARG ENBADR ;DEVICE ADR TO ENABLE INTERRUPTS
3430 ;
3431 ; ARG INTADR ;DEVICE ADR TO GENERATE AN INTERRUPT
3432 ;
3433 ; ARG ENLBIT ;BIT TO ENABLE INTERRUPTS
3434 ;
3435 ; ARG INTBIT ;BITS TO CHECK INTERRUPT CONDITIONS
3436 ;
3437 ; ARG BITCLR ;BITS TO CLEAR INTERRUPT CONDITIONS
3438 ; ;IF CLEARING INTERRUPT BITS WON'T CLEAR
3439 ; ;THEM. [EXAMPLE - DL10]
3440 ;
3441 .MACRO $CKINT ENBADR,INTADR,ENLBIT,INTBIT,BITCLR
3442 .IIF NB,ENBADR, MOV ENBADR,R1 ;LOAD ENABLE ADR
3443 .IIF NB,INTADR, MOV INTADR,R2 ;LOAD INTERRUPT ADR
3444 JSR R5,CKINT ;GO CHECK INTERRUPTS
3445 .IIF NDF I.$$$$,I.XXXX = .
3446 .IIF NDF I.$$$$,I.ENAB = . - I.XXXX
3447 .WORD ENLBIT ;ENABLE BITS - ENLBIT
3448 .IIF NDF I.$$$$,I.INTS = . - I.XXXX
3449 .WORD INTBIT ;INTERRUPT BITS - INTBIT
3450 .IIF NDF I.$$$$,I.INTC = . - I.XXXX
3451 .WORD BITCLR+0 ;BITS TO CLEAR DEVICE - ARG MAY BE BLANK
3452 .IIF NDF I.$$$$,I.RTRN = . - I.XXXX
3453 .IIF NDF I.$$$$,I.$$$$ = 0
3454 .ENDM
3455 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7-4
C11DMC.MAC 10-AUG-79 16:08 DEVICE
3457 .SBTTL DEVICE
3458 ;
3459 ;THIS MACRO IS USED TO TO CALL THE ROUTINE TO CHECK A DEVICE
3460 ;AND ASSIGN THE FLOATING ADDRESS AND VECTORS IF THE DEVICE
3461 ;IS THE TYPE THAT REQUIRES IT.
3462 ;
3463 ; ARG A ;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
3464 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES
3465 ; ARG VI ;VECTOR INCREMENT
3466 ; ARG HI ;HARDWARE INCREMENT
3467 ; ARG VM ;VECTOR MULTIPLE
3468 ; ARG NAM ;DEVICE NAME ABBREVIATION
3469 ; ARG FV ;FIRST VECTOR ADR (FIXED DEV ONLY)
3470 ;
3471 .MACRO DEVICE A,MAXN,VI,HI,VM,NAM,FV
3472 .IF DF X'NAM'11
3473 X'NAM'$$=X'NAM'11 ;IF A LOCAL DIAGNOSTIC IS DEFINED, USE IT
3474 .IFF
3475 X'NAM'$$=X..... ;ELSE USE NULL DIAGNOSTIC
3476 .ENDC ;DF X'NAM'11
3477 ;
3478 ;
3479 .IF DF CKA'NAM'11
3480 CKA'NAM'$$=CKA'NAM'11 ;IF PROGRAM ENTRY DEFINED, USE IT
3481 .IFF
3482 CKA'NAM'$$=CKPOPJ ;ELSE USE NULL SUBROUTINE
3483 .ENDC ;DF CKA'NAM'11
3484 ;
3485 ;
3486 .IF DF CKV'NAM'11
3487 CV'NAM'$$=CKV'NAM'11 ;IF REAL VECTOR DEFINED, USE IT
3488 .IFF
3489 CV'NAM'$$=0 ;ELSE IGNORE EVERYTHING
3490 .ENDC ;DF CKV'NAM'11
3491 ;
3492 ;
3493 .IIF NDF,NAM'.LVL,NAM'.LVL=0 ;USE LEVEL NAME IF IT EXISTS
3494 ;
3495 JSR R5,CHKDEV ;CALL DEVICE ANALYZER
3496 .IIF NDF D.$$$$,D.XXXX=. ;FIRST TIME THROUGH (ONLY)
3497 ; THE OFFSETS ARE DEFINED
3498 .IIF NDF D.$$$$,D.BADR=.-D.XXXX
3499 .WORD A ;1ST NAM'11 ADR IS A
3500 .IIF NDF D.$$$$,D.MAXL=.-D.XXXX
3501 .BYTE <MAXN> ;MAXIMUM NUMBER OF NAM'11 IS MAXN,
3502 .IIF NDF D.$$$$,D.VINC=.-D.XXXX
3503 .BYTE <VI> ;VECTOR INCREMENT IS VI
3504 .IIF NDF D.$$$$,D.HINC=.-D.XXXX
3505 .BYTE <HI> ;HARDWARE INCREMENT IS HI,
3506 .IIF NDF D.$$$$,D.VMUL=.-D.XXXX
3507 .BYTE <VM> ;1ST VECTOR MULTIPLE IS VM
3508 .IIF NDF D.$$$$,D.CNTP=.-D.XXXX
3509 .WORD 0 ;WILL BECOME NUMBER OF DEVICES
3510 .IIF NDF D.$$$$,D.NAMP=.-D.XXXX
3511 .WORD N.'NAM'11 ;ADDRESS OF ASCIZ NAME STRING
3512 .IIF NDF D.$$$$,D.DIAG=.-D.XXXX
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 7-5
C11DMC.MAC 10-AUG-79 16:08 DEVICE
3513 .WORD X'NAM'$$ ;ADDRESS OF ROUTINE TO CHECK DEVICE
3514 .IIF NDF D.$$$$,D.MAIN=.-D.XXXX
3515 .WORD CKA'NAM'$$ ;CALL FOR MAIN PROGRAM (CKA'NAM'11)
3516 .IIF NDF D.$$$$,D.MPVC=.-D.XXXX
3517 .WORD CV'NAM'$$ ;POINTS TO VECTOR SETUP TABLE
3518 .IIF NDF D.$$$$,D.CNTF=.-D.XXXX
3519 .WORD 0 ;WILL CONTAIN NUMBER OF NAM'11 FOUND
3520 .IIF NDF D.$$$$,D.FRSV=.-D.XXXX
3521 .WORD 0 ;WILL CONTAIN FIRST NAM'11 VECTOR ADR
3522 .IIF NDF D.$$$$,D.PRIO=.-D.XXXX
3523 .WORD NAM'.LVL*40 ;CONTAINS NAM'11 PI LEVEL
3524 .IIF NDF D.$$$$,D.FVFD=.-D.XXXX
3525 .WORD FV ;DEVICE FIRST VECTOR (FIXED DEV ONLY)
3526 .IIF NDF D.$$$$,D.NEXT=.-D.XXXX
3527 .IIF NDF D.$$$$,D.$$$$=0 ;DEFINE DEFINITION STOPPER
3528 .ENDM DEVICE
3529 ;
3530 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 8
C11DMC.MAC 10-AUG-79 16:08 DEVICE
3532
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 9
C11DMC.MAC 10-AUG-79 16:08 DEVICE
3534
3535 .SBTTL CHKCHR
3536 ;
3537 ;THIS MACRO IS USED FOR SETTING CHARACTERISTICS TABLE
3538 ;
3539 ; ARG DA ;DEVICE ADDRESS TO PUT IN CHARACTERISTICS TABLE
3540 ;
3541 ; ARG DV ;DEVICE VECTOR ADDRESS TO PUT IN TABLE
3542 ;
3543 ; ARG PI ;DEVICE PI LEVEL TO PUT IN TABLE
3544 ;
3545 .MACRO CHKCHR DA,DV,PI
3546 .IIF NB,<DA>, MOV DA,CHKCHR+CKDA ;PUT DA IN DEVICE ADR SLOT
3547 .IIF NB,<DV>, MOV DV,CHKCHR+CKDV ;PUT DV IN DEVICE VEC SLOT
3548 .IIF NB,<PI>, MOV PI,CHKCHR+CKPI ;PUT PI IN DEVICE INT LVL SLOT
3549 .ENDM CHKCHR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 9-1
C11DMC.MAC 10-AUG-79 16:08 CKVECT, CKVEC1
3551 .SBTTL CKVECT, CKVEC1
3552 ;
3553 ;"CKVECT" INVOKES "CKVEC1" TO BUILD A TABLE
3554 ;FOR EACH DEVICE. THE INFORMATION IN THE TABLE IS OF THE FOLLOWING FORM:
3555 ;
3556 ; CKV'NAM'11:
3557 ; .BYTE NUMBER OF MAIN ROUTINES
3558 ; .BYTE NUMBER OF VECTORS PER DEV
3559 ; .WORD NAM'VA'NUM
3560 ;
3561 ; EXAMPLE:
3562 ;
3563 ; 1. MAIN PROGRAM HAS 1 DQ11
3564 ; THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG: DQVA0
3565 ; DQ #0 VECTOR B THE TAG: DQVB0
3566 ; THE RESULTING TABLE WILL BE:
3567 ;
3568 ; CKVDQ11:.BYTE 1,2
3569 ; DQAV0
3570 ; DQBV0
3571 ;
3572 ; 2. MAIN PROGRAM HAS 2 DQ11'S
3573 ; THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG: DQVA0
3574 ; DQ #0 VECTOR B THE TAG: DQVB0
3575 ; DQ #1 VECTOR A THE TAG: DQVA1
3576 ; DQ #1 VECTOR B THE TAG: DQVB1
3577 ;
3578 ; THE RESULTING TABLE WILL BE:
3579 ;
3580 ; CKVDQ11:.BYTE 2,2
3581 ; DQVA0
3582 ; DQVB0
3583 ; DQVA1
3584 ; DQVB1
3585 ;
3586 ;
3587 ; ARG NAM ;NAME (2 CHARACTERS)
3588 ; ARG NUMV ;NUMBER OF VECTORS PER DEVICE
3589 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES OF A TYPE
3590 ;
3591 .MACRO CKVECT NAM,NUMV,MAXN
3592 CKZQZQ=0
3593 CV'NAM'11:.BYTE NAM'QQQ,NUMV ;NUM OF VEC FOR EACH NAM'11 IS NUMV
3594 NAM'QQQ=0 ;DEFINE AND SET TO 0
3595 .REPT MAXN
3596 CKVEC1 NAM,NUMV,\CKZQZQ
3597 CKZQZQ=CKZQZQ+1
3598 .ENDR
3599 .ENDM CKVECT
3600 ;
3601 ;
3602 ;
3603 ;
3604 .MACRO CKVEC1 NAM,NUMV,NUM
3605 .IF DF,NAM'VA'NUM
3606 NAM'QQQ=NAM'QQQ+1 ;COUNT NUMBER IN MAIN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 9-2
C11DMC.MAC 10-AUG-79 16:08 CKVECT, CKVEC1
3607 .IIF GE,<NUMV-1>, .WORD NAM'VA'NUM ;VECTOR A FOR DEV NAM'11
3608 .IIF GE,<NUMV-2>, .WORD NAM'VB'NUM ;VECTOR B FOR DEV NAM'11
3609 .IIF GE,<NUMV-3>, .WORD NAM'VC'NUM ;VECTOR C FOR DEV NAM'11
3610 .IIF GE,<NUMV-4>, .WORD NAM'VD'NUM ;VECTOR D FOR DEV NAM'11
3611 .ENDC
3612 .ENDM CKVEC1
3613 ;
3614 .MACRO LDVECT DEV
3615 .IF DF DEV'INT
3616 MOV #DEV'INT,DEV'VEC ;SET DEV TO GO TO DEV'VEC
3617 MOV #DEV'LVL*40,DEV'VEC+2 ; AND SET THE LEVEL.
3618 .IFF
3619 MOV 0,@#0 ;LEAVE ROOM FOR ENTRY TO BE PATCHED
3620 MOV 2,@#2 ;
3621 .ENDC
3622 .ENDM LDVECT
3623
3624 ;
3625 ; LIMIT FOR INTERRUPT VECTORS WHICH CHECK11 WILL MONITOR
3626 ;
3627
3628 000400 $$HERE = <CKNAME-START>&177700 ;ABSOLUTE ADDRESS OF TOP OF CHK11
3629 001 .IF LT,<1000-$$HERE>
3630 VCTLIM: .WORD $$HERE
3631 .IFF
3632 000550' 001000 VCTLIM: .WORD 1000
3633 000 .ENDC
3634 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 9-3
C11DMC.MAC 10-AUG-79 16:08 CHK11 DEVICE NAME TABLE
3636 .SBTTL CHK11 DEVICE NAME TABLE
3637 ;
3638 .MACRO NAMSTR DEV,ABBR
3639 N.'ABBR'11:
3640 .ASCIZ "DEV"
3641 .ENDM NAMSTR
3642 ;
3643 ;NOTE: THIS LIST IS ALPHABETIZED BY DEVICE NAME, NOT DEVICE ABBREVIATION
3644 ;
3645 000552' NAMSTR <CD20>,CD
3646 000557' NAMSTR <CR11>,CR
3647 000564' NAMSTR <CTY IN>,CI
3648 000573' NAMSTR <CTY OUT>,CO
3649 000603' NAMSTR <DH11>,DH
3650 000610' NAMSTR <DJ11>,DJ
3651 000615' NAMSTR <DL10>,DL0
3652 000622' NAMSTR <DL11-A>,DL.A
3653 000631' NAMSTR <DL11-E>,DL.E
3654 000640' NAMSTR <DM11-BB>,DM
3655 000650' NAMSTR <DMC11>,DMC
3656 000656' NAMSTR <DN11>,DN
3657 000663' NAMSTR <DP11>,DP
3658 000670' NAMSTR <DQ11>,DQ
3659 000675' NAMSTR <DS11>,DS
3660 000702' NAMSTR <DTE20>,DTE2
3661 000710' NAMSTR <DU11>,DU
3662 000715' NAMSTR <DUP11>,DUP
3663 000723' NAMSTR <DV11>,DV
3664 000730' NAMSTR <DZ11>,DZ
3665 000735' NAMSTR <KG11-A>,KG
3666 000744' NAMSTR <KMC11>,KMC
3667 000752' NAMSTR <KT11>,KT
3668 000757' NAMSTR <KW11-L>,KW.L
3669 000766' NAMSTR <KW11-P>,KW.P
3670 000775' NAMSTR <LK11>,LK
3671 001002' NAMSTR <LP11>,LE
3672 001007' NAMSTR <LP20>,LP
3673 001014' NAMSTR <MF11-UP>,MM
3674 001024' NAMSTR <null device>,NL
3675 001040' NAMSTR <PA611-P>,P6
3676 001050' NAMSTR <PA611-R>,R6
3677 001060' NAMSTR <PP11>,PP
3678 001065' NAMSTR <PR11>,PR
3679 001072' NAMSTR <RC11>,RC
3680 001077' NAMSTR <RF11>,RF
3681 001104' NAMSTR <RK11>,RK
3682 001111' NAMSTR <RH11>,RH
3683 001116' NAMSTR <RP11-C>,RP
3684 001125' NAMSTR <RX11>,RX
3685 001132' NAMSTR <TA11>,TA
3686 001137' NAMSTR <TC11>,TC
3687 001144' NAMSTR <TM11>,TM
3688 001152' .EVEN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 9-4
C11DMC.MAC 10-AUG-79 16:08 CHK11 DEVICE NAME TABLE
3690 001152' 000001 CHKFLG: .BLKW 1 ;CHK11 FLAGS
3691 000001 CKFERR= B0 ;ERROR DETECTED
3692 100000 CKFIDT= B15 ;ID ALREADY TYPED
3693 001154' 000001 CKDEVN: .BLKW 1 ;UNIT # CURRENTLY BEING TESTED
3694 001156' 000001 CKDNAM: .BLKW 1 ;ADR OF DEVICE NAME(.ASCIZ)
3695 ;
3696 001160' 000001 CK.CAL: .BLKW 1 ;RETURN ADDRESS TO CALLER OF CHK11
3697 001162' 000001 CK.DMC: .BLKW 1 ;DMC CSR ADDRESS (FOR REMOTE REPORTING)
3698 001164' 000001 CK.CSP: .BLKW 1 ;CALLER'S SP ON ENTRY
3699 001166' 000001 CK.OSP: .BLKW 1 ;SAVE AREA FOR CK11'S SP
3700 ;
3701 001170' 000001 PHYLIM: .BLKW 1 ;LIMIT OF PHYSICAL MEMORY (BLOCKS)
3702 000060 NLINES = 48. ;NUMBER OF DMC/KMC LINES, 4 PER DEVICE
3703 001172' 000000 MDCSRP: .WORD 0 ;POINTER INTO MDCSR TABLE
3704 001174' 000000 000000 000000 MDCSR: .WORD 0,0,0,0,0,0,0,0 ; (TWELVE ENTRIES FOR NOW)
001202' 000000 000000 000000
001210' 000000 000000
3705 001214' 000000 000000 000000 0,0,0,0 ;
001222' 000000
3706 ;
3707 001224' 000207 CKPOPJ: RTS PC ;CKPOPJ IS THE GENERAL NULL SUBROUTINE
3708 001226' 000000 CKHALT: HALT ;CKHALT IS THE HARD ERROR ROUTINE
3709 .IIF NDF CKADLX,CKADLX=CKPOPJ
3710 .IIF NDF CKAMEM,CKAMEM=CKPOPJ
3711 .IIF NDF CKAKW1,CKAKW1=CKPOPJ
3712 .IIF NDF CKAKG1,CKAKG1=CKPOPJ
3713 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 10
C11DMC.MAC 10-AUG-79 16:08 CHK11 DEVICE NAME TABLE
3715
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 11
C11DMC.MAC 10-AUG-79 16:08 CHK11 DEVICE NAME TABLE
3717
3718 .SBTTL **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3719 ;
3720 001230' CHK.11: SPL 7 ;PROCESSOR LEVEL TO 7
3721 001236' 010037 001160' MOV R0,CK.CAL ;SAVE RETURN ADDRESS
3722 001242' 010137 001162' MOV R1,CK.DMC ;SAVE THE CSR ADDRESS
3723 001246' 010637 001164' MOV SP,CK.CSP ;SAVE CALLER'S SP
3724 001252' 012706 016032' MOV #CHKSTK,SP ;SET UP CHK11'S SP
3725 001256' 010446 MOV R4,-(SP) ;SAVE THE LOADER'S
3726 001260' 010546 MOV R5,-(SP) ; REGISTERS
3727 001262' 013746 172354 MOV KISAR6,-(SP) ;SAVE PAGE 6 MAPPING
3728 001266' 013746 172314 MOV KISDR6,-(SP) ; REGISTERS (FOR CALLER'S STACK)
3729 001272' 012737 000300 010706' MOV #FLOATV,CHKFLV ;FLOATING INT VEC BEGIN HERE
3730 001300' 012737 160000 010710' MOV #FLOATD,CHKFLD ;FLOATING DEV ADR'S BEGIN HERE
3731 001306' 005037 001152' CLR CHKFLG ;CLEAR CHK11 FLAGS
3732 001312' 005037 015474' CLR CKSPCD ;CLEAR STOP CODE; NON 0 ON FATAL
3733 ; ERROR PUTS C(CKSPCD) IN R0.
3734 ;
3735 ;INITIALIZE VECTOR SPACE
3736 ;
3737 ; THIS ROUTINE LOADS THE VECTOR AREA WITH ADDRESSES POINTING
3738 ; INTO TABLE/CODE CHKINT - CHKINT IS USED TO FIELD MOST CHK11
3739 ; INTERRUPTS AND CAN TELL WHICH VECTOR WAS USED BY DECODING
3740 ; THE CONDITION CODE BITS AND THE ENTRY IN CHKINT WHICH WAS USED -
3741 ; THE REFERENCES TO "LIMIT" AND "ADD #CHKISZ,R1" IN THE CODE BELOW
3742 ; ARE WHAT DETERMINE THE CHKINT ENTRY LOCATION
3743 ;
3744 001316' 013703 000014 CKINTS: MOV @#14,R3 ;SAVE ODT ADDRESS
3745 001322' 005000 CLR R0 ;START LOADING AT ADR 0
3746 001324' 012701 010544' MOV #CHKINT,R1 ;WHERE TO GO ON INTERRUPT
3747 001330' 012702 000340 MOV #BR7,R2 ;INTERRUPT PS
3748 ;
3749 001334' 010120 33$: MOV R1,(R0)+ ;SET INTERRUPT VECTOR
3750 001336' 010220 MOV R2,(R0)+ ;SET INTERRUPT LEVEL
3751 001340' 005202 INC R2 ;UP VECTOR COUNTER
3752 001342' 032700 000077 BIT #77,R0 ;HAVE WE HIT A LIMIT ?
3753 001346' 001004 BNE 35$ ;NO
3754 001350' 062701 000012 ADD #CHKISZ,R1 ;YES, CHANGE VECT TO NEXT CHKINT BLOCK
3755 001354' 012702 000340 MOV #BR7,R2 ;RESET PS
3756 001360' 020037 000550' 35$: CMP R0,VCTLIM ;FILL VECTORS UP TO VECTOR LIMIT
3757 001364' 103763 BLO 33$ ;MORE TO DO
3758 ;
3759 001366' 012737 015022' 000034 MOV #CHKERR,TRPVEC ;WHERE TO GO ON TRAP INSTRUCTION
3760 001374' 010337 000014 MOV R3,@#14 ;RESTORE ODT ADDRESS
3761 001400' FALLR CHKCTY ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 11-1
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3763 ;NOW CHECK THE CTY (CONSOLE TTY)
3764 ;
3765 001400' 012737 001452' 000004 CHKCTY: MOV #10$,NXMVEC ;WHERE TO TRAP IF NO CTY
3766 001406' 042737 100000 001152' BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
3767 001414' 012737 100000 013732' MOV #100000,CKTRPT ;ASSUME A CTY EXISTS AS THE REPORT DEV
3768 001422' 005737 177564 TST CTOSTS ;IF ANY OF THESE FOUR TST'S TRAPS
3769 001426' 005737 177566 TST CTOCHR ; THEN WE DEEM THERE IS NO CTY
3770 001432' 005737 177560 TST CTISTS ;
3771 001436' 005737 177562 TST CTICHR ;
3772 001442' 012737 014756' 000004 MOV #CKBUST,NXMVEC ;CTY EXISTS, RESET BUS ERROR VECTOR
3773 001450' 000411 BR 14$ ;
3774 ;
3775 001452' 022626 10$: CMP (SP)+,(SP)+ ;POP TRAP
3776 001454' 012737 000200 013732' MOV #200,CKTRPT ;NO CTY EXISTS, ASSUME REMOTE REPORTING
3777 001462' 012737 014756' 000004 MOV #CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
3778 001470' 000137 002012' JMP CHKCKD ;SKIP TO END OF CTY CHECK
3779 ;
3780 001474' 14$: ; CHECK TO SEE IF CTY OUTPUT SHOULD BE
3781 ; SUPPRESSED OR DIVERTED OR BOTH
3782 001474' 012702 100000 MOV #100000,R2 ;PLAN TO DIRECT OUTPUT TO CTY
3783 000000 .REPT 0 ;***OMITTED***;
3784 30$: JSR R0,CKTCRL ;ASK FOR DIRECTION
3785 .ASCIZ "IS THIS CTY THE DEFAULT REPORTING DEVICE? (Y OR N) "<377>
3786 .EVEN ;
3787 JSR PC,CKGYES ;WAIT FOR ANSWER
3788 BCS 30$ ;
3789 BEQ 40$ ;"YES"
3790 CLR R2 ;"NO", DON'T OUTPUT TO CTY
3791 40$: JSR R0,CKTCRL ;CHECK FOR REMOTE REPORTING
3792 .ASCIZ "IS OUTPUT TO BE DIRECTED TO A REMOTE RECORDER? (Y OR N) "<377>
3793 .EVEN ;
3794 JSR PC,CKGYES ;WAIT FOR ANSWER
3795 BCS 40$ ;
3796 BNE 50$ ;"NO", DON'T OUTPUT REMOTELY
3797 .ENDR ;***OMITTED PART***;
3798 001500' 052702 000200 BIS #200,R2 ;REPORT OUTPUT REMOTELY
3799 001504' 010237 013732' 50$: MOV R2,CKTRPT ;SAVE REQUESTED MODE
3800 ;TEST CTY
3801 001510' 012704 177564 MOV #CTOSTS,R4 ;CTY OUTPUT STATUS
3802 001514' 010437 015476' MOV R4,CHKCHR+CKDA ;DEV ADR
3803 001520' 010401 MOV R4,R1 ;CHKBIT NEEDS ADR IN R1
3804 001522' 012737 000064 015500' MOV #CTOVEC,CHKCHR+CKDV;CTY OUTPUT VECTOR
3805 001530' 012737 000573' 001156' MOV #N.CO11,CKDNAM ;NAME ADDRESS
3806 001536' 005037 001154' CLR CKDEVN ;DEVICE 0
3807 001542' 004537 007574' JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS FOR R/W
3808 001546' 000104 .WORD CO.INE!CO..MM ;BITS TO CHECK FOR R/W
3809 001550' 012714 000100 MOV #CO.INE,(R4) ;ENABLE INTERRUPTS
3810 001554' 004537 010032' JSR R5,CHKINL ;CHECK INTERRUPT AND FIND DEV LEVEL
3811 001560' 177777 .WORD ALLBTS ;TIME LOOP CONSTANT
3812 001562' 005014 CLR (R4) ;CLR DEV OUT
3813 ;
3814 001564' FALLR CHKCKB ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 11-2
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3816 ;NOW CHECK THE KBRD SECTION
3817 ;
3818 001564' 042737 100000 001152' CHKCKB: BIC #CKFIDT,CHKFLG ;PRINT DEV ID
3819 001572' 012704 177560 MOV #CTISTS,R4 ;KBRD STATUS REG
3820 001576' 010437 015476' MOV R4,CHKCHR+CKDA ;DEV ADR
3821 001602' 010401 MOV R4,R1 ;CHKBIT NEEDS ADR IN R1
3822 001604' 012737 000060 015500' MOV #CTIVEC,CHKCHR+CKDV ;VECTOR ADR
3823 001612' 012737 000564' 001156' MOV #N.CI11,CKDNAM ;ADR OF DEV NAME
3824 001620' 004537 007574' JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS
3825 001624' 000100 .WORD CI.INE ;BITS TO CHECK R/W
3826 ;
3827 001626' 012700 000466' 15$: MOV #CKNAME,R0 ;GET ADDR OF .ASCIZ \PROG NAME\
3828 001632' 004737 013734' JSR PC,CKTTXT ;TYPE PROGRAM NAME, ETC.
3829 001636' 010002 MOV R0,R2 ;GET ADDR OF EDIT DATA (FOLLOWS PROG NAME)
3830 001640' 004037 013774' JSR R0,CKTCRL ;
3831 001644' 062566 071562 067551 .ASCIZ "version " ;
001652' 020156 000
3832 001656' .EVEN ;
3833 001656' 012200 MOV (R2)+,R0 ;GET MAJOR VERSION NUMBER
3834 001660' 004737 014022' JSR PC,CKTOCT ;TYPE IT
3835 001664' 012201 MOV (R2)+,R1 ;GET MINOR VERSION LETTER
3836 001666' 001402 BEQ 20$ ;NOT THERE
3837 001670' 004737 014074' JSR PC,CKTCHR ;TYPE IT
3838 001674' 112701 000050 20$: MOVB #'(,R1 ;TYPE EDIT NUMBER IN ()
3839 001700' 004737 014074' JSR PC,CKTCHR ;
3840 001704' 012200 MOV (R2)+,R0 ;GET EDIT NUMBER
3841 001706' 004737 014022' JSR PC,CKTOCT ;TYPE IT
3842 001712' 112701 000051 MOVB #'),R1 ;
3843 001716' 004737 014074' JSR PC,CKTCHR ;
3844 001 .IF DF ED.HIS ;DO NEXT ONLY IF LAST EDIT HISTORY REQ'D
3845 001722' 004037 014000' JSR R0,CKTSTR ;
3846 001726' 067440 020146 000 .ASCIZ " of " ;
3847 001734' .EVEN ;
3848 001734' 012200 MOV (R2)+,R0 ;DATE STRING ADDRESS
3849 001736' 004737 013734' JSR PC,CKTTXT ;
3850 001742' 004037 014000' JSR R0,CKTSTR ;
3851 001746' 061040 020171 000 .ASCIZ " by " ;
3852 001754' .EVEN ;
3853 001754' 012200 MOV (R2)+,R0 ;
3854 001756' 004737 013734' JSR PC,CKTTXT ;
3855 000 .ENDC ;DF ED.HIS ;
3856 001762' 004037 013774' JSR R0,CKTCRL ;
3857 001766' 062524 072163 067151 .ASCIZ "Testing begins..."<15><12>
001774' 020147 062542 064547
002002' 071556 027056 006456
002010' 000012
3858 .EVEN ;
3859 ;
3860 002012' CHKCKD: FALLR CKCPU ;
3861 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 12
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3863
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 13
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3865
3866 ; DETERMINE PROCESSOR MODEL NUMBER
3867 ;
3868 002012' 004037 013774' CKCPU: JSR R0,CKTCRL ;
3869 002016' 044124 020105 051120 .ASCIZ "THE PROCESSOR SEEMS TO BE A "
002024' 041517 051505 047523
002032' 020122 042523 046505
002040' 020123 047524 041040
002046' 020105 020101 000
3870 002054' .EVEN ;
3871 ;
3872 002054' 012700 002242' MOV #CKWRD,R0 ;GET ADDRESS OF TEST WORD
3873 ;;;; MOV R0,(R0)+ ;STORE AND AUTOINC ON SAME REGISTER
3874 002060' 010020 .WORD 10020 ; (PRE-ASSEMBLE TO PREVENT Z ERROR)
3875 002062' 012700 002104' MOV #5$,R0 ;GET BUMPER TABLE ADDRESS
3876 002066' 023727 002242' 002242' CMP CKWRD,#CKWRD ;BUMP BEFORE STORE?
3877 002074' 001402 BEQ 3$ ;NO, CPU IS NEWER THAN THAT
3878 ;YES, CPU IS OF /20 /40 VINTAGE
3879 002076' 062700 000004 ADD #9$-5$,R0 ;MODIFY ADDRESS INTO BUMPER TABLE
3880 ;
3881 002102' 3$: ;;; JMP (R0)+ ;BUMP BEFORE JUMP?
3882 002102' 000120 .WORD 120 ; (PRE-ASSEMBLE TO PREVENT Z ERROR)
3883 002104' 000403 5$: BR 10$ ;NO, CPU IS LIKE /04 /34 /45
3884 002106' 000562 BR CK05 ;YES, CPU IS /05 /10
3885 ;BUMP BEFORE JUMP?
3886 002110' 000572 9$: BR CK40 ;NO, CPU IS /40
3887 002112' 000563 BR CK20 ;YES, CPU IS /15 OR /20
3888 ;
3889 002114' 10$: ;CPU IS /04 /34/ OR /40 OR HIGHER
3890 002114' 013746 000004 MOV @#4,-(SP) ;SAVE BUS ERROR VECTOR
3891 002120' 012737 002160' 000004 MOV #20$,@#4 ;SET LOCAL ONE
3892 002126' 012700 177770 MOV #177770,R0 ;TRY TO FIND NONEXISTENT MEMORY
3893 002132' 005710 15$: TST (R0) ;IS THIS MEMORY HERE?
3894 002134' 162700 000002 SUB #2,R0 ;YES, THERE WAS NO TRAP
3895 002140' 001374 BNE 15$ ;LOOK AGAIN (UNLESS ALL MEMORY SEEN)
3896 ;THIS IS RIDICULOUS! THERE ARE NO HOLES
3897 ; IN MEMORY, OR THE BUS ERROR TRAPPER
3898 ; DOESN'T WORK
3899 002142' 17$: CK11SC CKEPC,<NO NXM??>,<NO NONEXISTENT MEMORY TRAP>
3900 002144' 047516 047040 046530 .ASCIZ "NO NXM??" ;
002152' 037477 000
3901 002156' .EVEN ;
3902 002156' 000410 BR 26$ ;
3903 ;
3904 002160' 012737 002174' 000004 20$: MOV #25$,@#4 ;SET UP NEXT BUS ERROR ADDRESS
3905 002166' 010001 MOV R0,R1 ;COPY ADDRESS WHICH DIDN'T ANSWER
3906 002170' 010220 MOV R2,(R0)+ ;REPEAT TRAP
3907 002172' 000763 BR 17$ ;YOU CAN'T GET HERE UNLESS TRAP FAILS
3908 002174' 062706 000010 25$: ADD #10,SP ;POP BOTH TRAPS
3909 002200' 012637 000004 26$: MOV (SP)+,@#4 ;RESTORE SAVED BUS ERROR VECTOR
3910 002204' 020001 CMP R0,R1 ;DID R0 POP DURING TRAP?
3911 002206' 001517 BEQ CK04 ;NO, CPU IS /04
3912 002210' 013746 000010 MOV @#10,-(SP) ;YES, SAVE RESERVED INSTRUCTION VECTOR
3913 002214' 012737 002230' 000010 MOV #30$,@#10 ;SET UP A NEW ONE
3914 002222' 005000 CLR R0 ;R0 WILL STAY CLEAR IF CPU IS /45
3915 002224' 106700 .WORD 106700 ;11/34 MFPS INSTR (OP NAME=A MACRO NAME)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 13-1
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3916 002226' 005200 INC R0 ;DIDN'T TRAP, CPU IS /34 (OR /03)
3917 002230' 012637 000010 30$: MOV (SP)+,@#10 ;RESTORE RES INSTR VECTOR
3918 002234' 005700 TST R0 ;WAS THERE A TRAP?
3919 002236' 001114 BNE CK34 ;NO, CPU IS 11/34
3920 002240' 000521 BR CK45 ;YES, CPU IS 11/45
3921 ;
3922 002242' 000000 CKWRD: .WORD 0 ;CPU ID TEST WORD
3923 002244' 000000 CKCPUN: .WORD 0 ;CPU MODEL NUMBER (DECIMAL)
3924 .ENABL LSB ;
3925 002246' 004 4$: .BYTE 4.
3926 002247' 113 030504 026461 .ASCIZ "KD11-D (11/04)"
002254' 020104 030450 027461
002262' 032060 000051
3927 002266' 005 5$: .BYTE 5.
3928 002267' 113 030504 026461 .ASCIZ "KD11-B (11/05 OR 11/10)"
002274' 020102 030450 027461
002302' 032460 047440 020122
002310' 030461 030457 024460
002316' 000
3929 002317' 024 20$: .BYTE 20.
3930 002320' 040513 030461 024040 .ASCIZ "KA11 (11/20) OR KC11 (11/15)"
002326' 030461 031057 024460
002334' 047440 020122 041513
002342' 030461 024040 030461
002350' 030457 024465 000
3931 002355' 042 34$: .BYTE 34.
3932 002356' 042113 030461 042455 .ASCIZ "KD11-E (11/34)"
002364' 024040 030461 031457
002372' 024464 000
3933 002375' 050 40$: .BYTE 40.
3934 002376' 042113 030461 040455 .ASCIZ "KD11-A (11/35 OR 11/40)"
002404' 024040 030461 031457
002412' 020065 051117 030440
002420' 027461 030064 000051
3935 002426' 055 45$: .BYTE 45.
3936 002427' 113 030502 026461 .ASCIZ "KB11-A (11/45)"
002434' 020101 030450 027461
002442' 032464 000051
3937 .EVEN ;
3938 ;
3939 002446' 012700 002246' CK04: MOV #4$,R0 ;
3940 002452' 000417 BR CKCPUE ;
3941 ;
3942 002454' 012700 002266' CK05: MOV #5$,R0 ;
3943 002460' 000414 BR CKCPUE ;
3944 ;
3945 002462' 012700 002317' CK20: MOV #20$,R0 ;
3946 002466' 000411 BR CKCPUE ;
3947 ;
3948 002470' 012700 002355' CK34: MOV #34$,R0 ;
3949 002474' 000406 BR CKCPUE ;
3950 ;
3951 002476' 012700 002375' CK40: MOV #40$,R0 ;
3952 002502' 000403 BR CKCPUE ;
3953 ;
3954 002504' 012700 002426' CK45: MOV #45$,R0 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 13-2
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3955 002510' 000400 BR CKCPUE ;
3956 .DSABL LSB ;
3957 ;
3958 002512' 112037 002244' CKCPUE: MOVB (R0)+,CKCPUN ;SAVE PROCESSOR MODEL NUMBER AWAY FOR REFERENCE
3959 002516' 004737 013734' JSR PC,CKTTXT ;TYPE OUT THE ID TEXT
3960 001 .IF NE 1
3961 002522' 004037 013774' JSR R0,CKTCRL ;TYPE OUT EXPECTED MODEL NUMBER
3962 002526' 041411 045510 030461 .ASCIZ " CHK11 EXPECTED AN 11/"
002534' 042440 050130 041505
002542' 042524 020104 047101
002550' 030440 027461 000
3963 002556' .EVEN ;
3964 002556' 012700 000042 MOV #PDP11,R0 ;ADD NUMBER
3965 002562' 004737 014170' JSR PC,CKTDEC
3966 000 .ENDC ;NE 1
3967 ;
3968 002566' FALLR CKDLXB ;FALL INTO DL10 SEEKER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 13-3
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
3970 ;DETERMINE THE DL10 BASE ADDRESS
3971 ;
3972 ;
3973 .IIF NDF FTDL10,FTDL10=0
3974 ;
3975 002566' CKDLXB:
3976 001 .IF NE FTDL10
3977 MOV #CHKFFB,R0 ;SET ADDRESS TO START LOOKING FOR A DL10
3978 CLR DL10AD ;SET FOR NO DL10
3979 MOV #10$,NXMVEC ;WHERE TO GO ON A NXM
3980 3$: MOV #DL.CNX!DL.CPE!DL.CWC!DL.11C,R1 ;BITS TO SET IN DL10
3981 MOV (R0),R2 ;SAVE CONTENTS AS IT MAY BE CORE
3982 BIS R1,(R0) ;CLEAR THESE CONDITIONS IF DL10
3983 ; OR IF MEMORY BITS WILL BE SET
3984 ASL R1 ;POSITION BITS FOR SETTING CONDITIONS
3985 CLR (R0) ;SEE IF SOMETHING THERE AND CLEAR IF IT IS THERE
3986 TST (R0) ;MAKE SURE ITS CLEAR SINCE ITS THERE
3987 BEQ 1$ ;BRANCH IF IT CLEARED
3988 CLR -(SP) ;RESULT SHOULD BE 0
3989 MOV (R0),-(SP) ;SAVE WHAT IT WAS
3990 MOV R0,-(SP) ;SAVE THE ADDRESS WHERE IT HAPPENED
3991 CK11SC <CKEPC!CKEGB>,<Can't Clear DL10 or MEM>,<CLR @R0 DIDN'T CLEAR @R0>,<S..D
3992 .ASCIZ \Can't Clear DL10 or MEM\<377>
3993 .EVEN
3994 BR 1$ ;
3995 1$: BIS R1,(R0) ;NOW SET DL10 BITS
3996 CMP R1,(R0) ;SEE IF THEY SET BE IT MEMORY OR DL10
3997 BEQ 2$ ;BRANCH IF THE SET OK
3998 CKSERR R1,<(R0)>,R0 ;SAVE GD,BD,ADR
3999 CK11SC <CKEPC!CKEGB>,<DL10 or Mem Err>,<EITHER DL10 IS BAD OR MEMORY IS BAD>,<S
4000 .ASCIZ \DL10 or Mem Err\<377>
4001 .EVEN
4002 BR 2$ ;
4003 2$: CLC ;CARRY MUST BE CLR
4004 ROR R1 ;SHIFT TO CLEAR BITS JUST SET
4005 BIS R1,(R0) ;SET BITS, IF DL10 ALL BITS SHOULD BE 0
4006 TST (R0) ;SEE IF ALL 0
4007 BEQ 4$ ;BRANCH IF SO
4008 6$: MOV R2,(R0) ;RESTORE MEMORY
4009 7$: ADD #4000,R0 ;GO TO NEXT POSSIBLE DL10 ADR
4010 CMP R0,#160000 ;TIME TO STOP CHECKING FOR DL10?
4011 BLO 3$ ;BRANCH IF NOT
4012 BR 5$ ;NEVER FOUND A DL10
4013 ;
4014 10$: ADD #4,P ;FLUSH NXM TRAP
4015 BR 7$ ;GO CHECK NEXT POSSIBLE ADR
4016 ;
4017 4$: ;DL10 FOUND
4018 MOV R0,DL10AD ;PUT DL10 BASE ADDR WE FOUND AWAY
4019 JSR PC,CKADLX ;PRINT DL10 BASE ADDR
4020 000 .ENDC ;NE FTDL10
4021 002566' 5$: FALLR CHKMAP ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 13-4
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4023 ; CHECK TO SEE IF SYSTEM IS MAPPED
4024 ;
4025 002566' CHKMAP:
4026 .IIF NDF MMGSR0,MMGSR0 = 177572
4027 ;
4028 002566' 012737 002602' 000004 MOV #48$,NXMVEC ;SET UP BUS ERROR VECTOR
4029 002574' 013700 177572 MOV MMGSR0,R0 ;READ MEM MGT STATUS
4030 ;
4031 001 .IF NDF M$$MGE
4032 CK11SC <CKEMSG>,<WRONG VERSION>
4033 .ASCIZ "A NON-MAPPING CHK11 IS LOADED ON A MAPPED SYSTEM"<15><12><377>
4034 .EVEN ;
4035 BR 63$ ;
4036 ;
4037 48$: CMP (SP)+,(SP)+ ;POP TRAP, IGNORE IT (IT WAS HOPED FOR)
4038 FALLR 63$ ;DROP RIGHT OUT
4039 .IFF
4040 002600' 000433 BR 63$ ;NO TRAP, THAT'S WHAT WAS EXPECTED
4041 ;TRAP, REPORT
4042 002602' 48$: CK11SC <CKEMSG>,<WRONG VERSION>
4043 002604' 020101 040515 050120 .ASCIZ "A MAPPING CHK11 IS LOADED ON UNMAPPED HARDWARE"<15><12><377>
002612' 047111 020107 044103
002620' 030513 020061 051511
002626' 046040 040517 042504
002634' 020104 047117 052440
002642' 046516 050101 042520
002650' 020104 040510 042122
002656' 040527 042522 005015
002664' 000377
4044 002666' ABORT ;
4045 .EVEN ;
4046 000 .ENDC ;NDF M$$MGE
4047 002670' 63$: FALLR CHKMMG ;CHECK MEMORY MGT
4048 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 14
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4050
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 15
C11DMC.MAC 10-AUG-79 16:08 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4052
4053 .SBTTL CHECK KT11 HARDWARE
4054 ;
4055 ;VERIFY MEMORY MANAGEMENT HARDWARE - *** CODED FOR 11/34 SUBSET ***
4056 ;
4057 002670' CHKMMG: ;
4058 001 .IF DF M$$MGE
4059 002670' 004037 013774' JSR R0,CKTCRL ;
4060 002674' 045412 030524 020061 .ASCIZ <12>"KT11 memory management test"
002702' 062555 067555 074562
002710' 066440 067141 063541
002716' 066545 067145 020164
002724' 062564 072163 000
4061 002732' .EVEN ;
4062 002732' 012704 000250 MOV #MMGVEC,R4 ;SAVE ADDRESS OF MEM MGT VECTOR
4063 002736' 011446 MOV (R4),-(SP) ;SAVE CURRENT MEM MGT VECTOR
4064 002740' 012714 003116' MOV #25$,(R4) ;SET MEM MGT VECTOR TO "BAD TRAP"
4065 002744' 012700 077406 MOV #PD.PLF!<6*PD.AC0>,R0 ;SET UP CONSTANT FOR FULL PAGE, R/W ACCESS
4066 002750' 032737 000001 177572 BIT #MG.ENB,MMGSR0 ;MEM MGT ALREADY ENABLED?
4067 002756' 001020 BNE 10$ ;YES, DON'T MESS
4068 002760' 005037 172340 CLR KISAR0 ;NO, SET UP REASONABLY, AS APR0 TO PAGE ZERO
4069 002764' 010037 172300 MOV R0,KISDR0 ;FULL PAGE ACCESS, R/W, EXPAND UP
4070 002770' 012737 000200 172342 MOV #PAGE1B,KISAR1 ;MAP THIS PROGRAM TO SELF
4071 002776' 010037 172302 MOV R0,KISDR1 ;INCLUDE SAME TOTAL ACCESS
4072 003002' 012737 007600 172356 MOV #PAGE7B,KISAR7 ;SPECIAL MAP TO I/O PAGE
4073 003010' 010037 172316 MOV R0,KISDR7 ;
4074 003014' 005237 177572 INC MMGSR0 ;TURN ON MEMORY MANAGEMENT
4075 ;
4076 003020' 10$: ;RELOCATION CONSISTENCY CHECK
4077 ;
4078 003020' 013737 172340 172352 MOV KISAR0,KISAR5 ;MAP APR5 TO SAME MEMORY AS APR0
4079 003026' 013737 172300 172312 MOV KISDR0,KISDR5 ; AND COPY OVER THE PDR TOO
4080 003034' 012701 000302 MOV #PAGE0+302,R1 ;GET POINTERS INTO PAGES 0 AND 5
4081 003040' 012702 120302 MOV #PAGE5+302,R2 ; THE OFFSET INTO THE PAGE IS MOSTLY ARBITRARY
4082 ;
4083 003044' 011146 MOV (R1),-(SP) ;SAVE THE CURRENT CONTENTS OF THE DIDDLE LOC
4084 003046' 010712 16$: MOV PC,(R2) ;ENSURE TEST LOCATION HAS NON-ZERO CONTENTS
4085 003050' 005011 CLR (R1) ;CLEAR THE TEST LOCATION THROUGH THE OTHER PTR
4086 003052' 005712 TST (R2) ;DID IT REALLY CLEAR?
4087 003054' 001015 BNE 20$ ;NO, WHAT A SHAME
4088 003056' 010711 MOV PC,(R1) ;YES, ENSURE IT'S NOT ZERO AGAIN
4089 003060' 021112 CMP (R1),(R2) ;STILL MATCH?
4090 003062' 001012 BNE 20$ ;NO, THAT'S FUNNY, IT WORKED BEFORE
4091 ;
4092 003064' 023737 172340 172352 CMP KISAR0,KISAR5 ;DONE OFFSET TEST YET?
4093 003072' 001015 BNE 30$ ;YES
4094 003074' 062737 000002 172352 ADD #2,KISAR5 ;NO, CHANGE APR6 UP
4095 003102' 162702 000200 SUB #2*BSFACT,R2 ; AND PAGE POINTER DOWN ACCORDINGLY
4096 003106' 000757 BR 16$ ;REPEAT TEST FOR DIFFERENT RELOCATION ADDRESSES
4097 ;
4098 003110' 20$: CK11SC CKEMSE,101$ ;
4099 003114' 000404 BR 30$ ;
4100 003116' 25$: CK11SC CKEMSE,104$ ;
4101 003122' 000400 BR 26$ ;
4102 003124' 000002 26$: RTI ;
4103 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 15-1
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4104 003126' 012611 30$: MOV (SP)+,(R1) ;RESTORE ORIGINAL TEST WORD CONTENTS
4105 ;
4106 ;PAGE LENGTH PROTECTION TEST
4107 ;
4108 003130' 013737 172340 172352 MOV KISAR0,KISAR5 ;USE VECTOR SPACE AGAIN FOR TEST
4109 003136' 012737 000406 172312 MOV #PD.PL0!<6*PD.AC0>,KISDR5 ;SET 2 BLOCK PAGE, R/W, UP
4110 003144' 012701 000176 MOV #PAGE0+<2*BSFACT>-2,R1 ;SET PTRS NEAR PAGE BOUNDARY
4111 003150' 012702 120176 MOV #PAGE5+<2*BSFACT>-2,R2 ;
4112 003154' 012146 MOV (R1)+,-(SP) ;FETCH FROM BELOW BOUNDARY
4113 003156' 012622 MOV (SP)+,(R2)+ ;WRITE IT BACK, DIFFERENT PTR, SHOULDN'T TRAP
4114 003160' 012146 MOV (R1)+,-(SP) ;FETCH FROM ABOVE BOUNDARY, PAGE 0, NO TRAP
4115 003162' 012714 003176' MOV #45$,(R4) ;SET UP TO EXPECT TRAP
4116 003166' 012622 MOV (SP)+,(R2)+ ;WRITE BACK TO TEST LOCATION, EXPECT TRAP
4117 ;NO TRAP, THAT'S BAD
4118 003170' 40$: CK11SC CKEMSE,107$ ;
4119 003174' 024646 CMP -(SP),-(SP) ;FAKE TRAP
4120 ;
4121 003176' 022626 45$: CMP (SP)+,(SP)+ ;GOOD TRAP, POP IT
4122 003200' 012714 003116' MOV #25$,(R4) ;RESET TO BAD TRAP MSG
4123 003204' 032737 120000 177572 BIT #MG.ANR!MG.ARO,MMGSR0 ;TRAP FOR RIGHT REASON?
4124 003212' 001403 BEQ 47$ ;YES, KEEP ON KEEPIN' ON
4125 003214' CK11SC CKEMSE,107$ ;NO, GOOD GRIEF!
4126 003220' 000400 BR 47$ ;
4127 003222' 47$: ;
4128 ;**** CONSIDER ADDING HERE THE SAME TYPE OF
4129 ; TEST FOR A DOWNWARD EXPANDABLE PAGE ****
4130 ;
4131 ;ACCESS CONTROL MODE TEST
4132 ;
4133 003222' 013737 172340 172352 MOV KISAR0,KISAR5 ;USE THE VECTOR AREA AGAIN
4134 003230' 012737 077406 172312 MOV #PD.PLF+<6*PD.AC0>,KISDR5 ;RESET TO FULL PAGE, FULL ACCESS
4135 003236' 012702 120052 MOV #PAGE5+52,R2 ;RESET POINTER TO ARBITRARY LOCATION IN PAGE
4136 003242' 012714 003272' MOV #50$,(R4) ;SET UP THE EXPECTED BAD TRAP HANDLER
4137 003246' 011246 MOV (R2),-(SP) ;READ (DON'T TRAP)
4138 003250' 012612 MOV (SP)+,(R2) ;PUT IT BACK (DON'T TRAP)
4139 003252' 112737 000002 172312 MOVB #PD.AC0*2,KISDR5 ;SET PDR FOR READ ONLY ACCESS
4140 003260' 011246 MOV (R2),-(SP) ;READ AGAIN (DON'T TRAP)
4141 003262' 012714 003306' MOV #60$,(R4) ;RESET TRAP VECTOR AGAIN
4142 003266' 012612 MOV (SP)+,(R2) ;WRITE IT BACK AGAIN, AND FINALLY TRAP!
4143 003270' 024646 CMP -(SP),-(SP) ;DIDN'T TRAP, HAVE TO FAKE IT
4144 ;
4145 003272' 50$: CK11SC CKEMSE,110$ ;BAD TRAP, OR NON-TRAP, DEPENDING
4146 003276' 000404 BR 62$ ;
4147 ;
4148 003300' 062716 000002 55$: ADD #2,(SP) ;GOOD TRAP, SKIP ERROR BRANCH
4149 003304' 000002 RTI ; ON RETURN
4150 ;
4151 003306' 022626 60$: CMP (SP)+,(SP)+ ;GOOD TRAP, POP IT
4152 003310' 012714 003356' 62$: MOV #67$,(R4) ;CHANGE TRAP VECTOR STILL AGAIN
4153 003314' 012737 077404 172312 MOV #PD.PLF+<PD.AC0*4>,KISDR5 ;SET PDR FOR ILLEGAL ACCESS
4154 003322' 011201 65$: MOV (R2),R1 ;TRY TO READ, EXPECT A TRAP
4155 003324' CK11SC <CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
4156 003330' 010112 MOV R1,(R2) ;TRY A WRITE, EXPECT A TRAP
4157 003332' CK11SC <CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
4158 003336' 032737 000007 172312 BIT #PD.ACF,KISDR5 ;DONE ALL ACF MODES YET?
4159 003344' 001511 BEQ 70$ ;YES, GO ON
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 15-2
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4160 003346' 042737 000007 172312 BIC #PD.ACF,KISDR5 ;NO, CLEAR ACF FOR LAST ILLEGAL MODE
4161 003354' 000762 BR 65$ ;REPEAT TEST
4162 ;
4163 003356' 062716 000004 67$: ADD #4,(SP) ;GOOD TRAP, POP IT
4164 003362' 000002 RTI ;
4165 ;
4166 003364' 064411 061556 067157 101$: .ASCIZ " inconsistent relocation"<377>
003372' 064563 072163 067145
003400' 020164 062562 067554
003406' 060543 064564 067157
003414' 000377
4167 003416' 072411 062556 070170 104$: .ASCIZ " unexpected mem mgt trap"<377>
003424' 061545 062564 020144
003432' 062555 020155 063555
003440' 020164 071164 070141
003446' 000377
4168 003450' 066411 066545 066440 107$: .ASCIZ " mem mgt page length protection failure"<377>
003456' 072147 070040 063541
003464' 020145 062554 063556
003472' 064164 070040 067562
003500' 062564 072143 067551
003506' 020156 060546 066151
003514' 071165 177545 000
4169 003521' 011 062555 020155 110$: .ASCIZ " mem mgt access mode control failure"<377>
003526' 063555 020164 061541
003534' 062543 071563 066440
003542' 062157 020145 067543
003550' 072156 067562 020154
003556' 060546 066151 071165
003564' 177545 000
4170 003570' .EVEN ;
4171 ;
4172 003570' 012614 70$: MOV (SP)+,(R4) ;RESTORE PREVIOUS MEMORY MANAGEMENT TRAP VECTOR
4173 .IFF
4174 JSR R0,CKTCRL ;
4175 .ASCIZ "NO MEM MGT TEST"
4176 .EVEN ;
4177 000 .ENDC ;DF M$$MGE
4178 003572' FALLR CHKCOR ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 15-3
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4180 ; SEE HOW MUCH CORE IS PRESENT
4181 ;
4182 003572' CHKCOR: ;
4183 001 .IF NDF M$$MGE
4184 ;UNMAPPED SNIFFER
4185 CLR R0 ;START SMALL
4186 MOV #20$,NXMVEC ;SET BUS TRAP VECTOR
4187 10$: TST (R0)+ ;CHECK NEXT LOCATION
4188 CMP R0,DL10AD ;SEE IF NEXT WORD IS DL10
4189 BNE 10$ ;
4190 BR 21$ ;
4191 ;
4192 20$: CMP (SP)+,(SP)+ ;FLUSH STACK
4193 SUB #2,R0 ;MAKE 2 LESS SO WE HAVE 1ST NXM LOC
4194 21$: MOV R0,PHYLIM ;SAVE ADR OF 1ST NXM LOCATION
4195 JSR PC,CKAMEM ;PRINT LAST MEM LOCATION
4196 .IFF
4197 ;MAPPED SNIFFER
4198 003572' 004037 013774' JSR R0,CKTCRL ;ADVERTISE RANGES OF MEMORY
4199 003576' 050012 054510 044523 .ASCIZ <12>"PHYSICAL MEMORY HAS ABSOLUTE LIMITS OF "
003604' 040503 020114 042515
003612' 047515 054522 044040
003620' 051501 040440 051502
003626' 046117 052125 020105
003634' 044514 044515 051524
003642' 047440 020106 000
4200 003650' .EVEN ;
4201 003650' 005037 172352 CLR KISAR5 ;START AT ZERO MEMORY
4202 003654' 012737 077406 172312 MOV #PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS
4203 003662' 005000 CLR R0 ;START OF CURRENT BLOCK ADDRESS
4204 003664' 005001 CLR R1 ;ACCUMULATED PAGE COUNT
4205 003666' 005003 CLR R3 ;CURRENT BLOCK PAGE COUNT
4206 003670' 012737 003710' 000004 MOV #35$,NXMVEC ;SET UP BUS ERROR VECTOR
4207 ;
4208 003676' 012702 000100 30$: MOV #BSFACT,R2 ;SET BYTE COUNT OF PAGE
4209 003702' 105762 117777 31$: TSTB PAGE5-1(R2) ;READ A BYTE FROM THE ADDRESSED PAGE
4210 003706' 000412 BR 43$ ;NO TRAP
4211 ;
4212 003710' 022626 35$: CMP (SP)+,(SP)+ ;TRAP, POP IT
4213 003712' 005703 TST R3 ;ANY PAGES FOUND?
4214 003714' 001402 BEQ 39$ ;NO, SKIP REPORT
4215 003716' 004737 004076' JSR PC,65$ ;YES, REPORT RANGE
4216 003722' 005237 172352 39$: INC KISAR5 ;COMPUTE NEXT BIAS VALUE
4217 003726' 013700 172352 MOV KISAR5,R0 ;SAVE IT AS START ADDRESS OF NEXT RANGE
4218 003732' 000404 BR 52$ ;RETURN TO TEST LOOP
4219 ;
4220 003734' 077216 43$: SOB R2,31$ ;LOOP OVER ALL BYTES ON CURRENT PAGE
4221 003736' 005203 INC R3 ;NO TRAP, UP BLOCK COUNT
4222 003740' 005237 172352 INC KISAR5 ;UP PAGE BIAS
4223 ;
4224 003744' 023727 172352 007600 52$: CMP KISAR5,#PAGE7B ;DONE ALL POSSIBLE MEMORY SPACE?
4225 003752' 103751 BLO 30$ ;NOT YET
4226 ;YES
4227 003754' 005703 TST R3 ;ANY BLOCKS FOUND AT END OF MEMORY?
4228 003756' 001402 BEQ 54$ ;NO
4229 003760' 004737 004076' JSR PC,65$ ;YES, REPORT LAST BLOCK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 15-4
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4230 003764' 010137 001170' 54$: MOV R1,PHYLIM ;SAVE NUMBER OF BLOCKS OF MEMORY
4231 003770' 004037 013774' JSR R0,CKTCRL ;SUMMARIZE MEMORY SIZE DATA
4232 003774' 043011 051117 040440 .ASCIZ " FOR A TOTAL OF "
004002' 052040 052117 046101
004010' 047440 020106 000
4233 004016' .EVEN ;
4234 004016' 010100 MOV R1,R0 ;
4235 004020' 006200 ASR R0 ;DIVIDE NUMBER OF 32 WORD BLOCKS
4236 004022' 006200 ASR R0 ; BY 32 TO GET NUMBER OF KW
4237 004024' 006200 ASR R0 ;
4238 004026' 006200 ASR R0 ;
4239 004030' 006200 ASR R0 ;
4240 004032' 004737 014170' JSR PC,CKTDEC ;OUTPUT MEMORY SIZE IN KW DECIMAL
4241 004036' 032701 000037 BIT #37,R1 ;REMAINDER OVER EXACT KW AMOUNT?
4242 004042' 001402 BEQ 62$ ;NO
4243 004044' CK11SC <CKENCL>,<+>,<REMAINDER OVER EVEN K AMOUNT>
4244 004046' 000053 .ASCIZ "+" ;
4245 .EVEN ;
4246 004050' 004037 014000' 62$: JSR R0,CKTSTR ;
4247 004054' 053513 024040 042504 .ASCIZ "KW (DECIMAL)"<15><12>
004062' 044503 040515 024514
004070' 005015 000
4248 004074' .EVEN ;
4249 004074' 000432 BR 70$ ;
4250 ;
4251 004076' 65$: CK11SC 0,<CRLFTAB> ;FEED LINE, SPACE OVER
4252 004100' 000011 .ASCIZ " " ;
4253 .EVEN ;
4254 004102' 060301 ADD R3,R1 ;ACCUMULATE TOTAL BLOCKS TO DATE
4255 004104' 005003 CLR R3 ;CLEAR FOR NEXT TIME
4256 004106' 004737 014022' JSR PC,CKTOCT ;TYPE R0 FOR START BIAS
4257 004112' 005700 TST R0 ;SKIP LEADING ZEROS IF ZERO
4258 004114' 001404 BEQ 66$ ;
4259 004116' 004037 014000' JSR R0,CKTSTR ;ADD ZEROS FOR FULL ADDRESS
4260 004122' 030060 000 .ASCIZ "00" ;
4261 004126' .EVEN ;
4262 004126' 004037 014000' 66$: JSR R0,CKTSTR ;
4263 004132' 026440 000040 .ASCIZ " - " ;
4264 .EVEN ;
4265 004136' 013700 172352 MOV KISAR5,R0 ;GET END OF BLOCK ADDRESS BIAS
4266 004142' 005300 DEC R0 ;BACK TO LAST GOOD BIAS
4267 004144' 004737 014022' JSR PC,CKTOCT ;
4268 004150' 004037 014000' JSR R0,CKTSTR ;
4269 004154' 033467 000 .ASCIZ "77" ;
4270 004160' .EVEN ;
4271 004160' 000207 RTS PC ;
4272 ;
4273 004162' 70$: ;
4274 000 .ENDC ;NDF M$$MGE
4275 004162' FALLR CKCOR ;
4276 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 16
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4278
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17
C11DMC.MAC 10-AUG-79 16:08 CHECK KT11 HARDWARE
4280
4281 .SBTTL CHECK MEMORY - SLIDING BIT PATTERN
4282 ;
4283 ; PERFORM A SIMPLE READ/WRITE MEMORY TEST -
4284 ;THE PATTERN USED IS A SLIDING BIT, WITH THE
4285 ;BIT IN EACH OF THE 16 BIT POSITIONS AND THE
4286 ;LAST PATTERN BEING ALL 0'S.
4287 ;
4288 004162' CKCOR:
4289 001 .IF NDF M$$MGE
4290 CLR R0 ;FIRST ADR TO CHECK
4291 MOV #10$,R1 ;LIMIT TO CHECK
4292 ;CHECK IN TWO PIECES, SKIPPING
4293 ; THE AREA OF THE SUBROUTINE,
4294 ; SO AS NOT TO CLOBBER OURSELVES
4295 JSR PC,10$ ;CHECK LOW CORE
4296 MOV #CKMPAR,R0 ;BEGIN CHECKING HERE NOW
4297 MOV PHYLIM,R1 ;AND STOP HERE
4298 JSR PC,10$ ;
4299 JSR R0,CKTCRL ;PRINT AMOUNT OF CORE
4300 .ASCIZ \ \ ;
4301 .EVEN ;
4302 MOV PHYLIM,R0 ;GET AMOUNT
4303 JSR PC,CKTOCT ;PRINT IT
4304 JSR R0,CKTSTR ;FOLLOWED BY MSG:
4305 .ASCIZ \ BYTES OF UNMAPPED MEMORY\
4306 .EVEN ;
4307 BR CKMPAR ;ALL OK, SKIP TO PARITY CHECKER
4308 .IFF
4309 004162' 004037 013774' JSR R0,CKTCRL ;
4310 004166' 040515 050120 042105 .ASCIZ "MAPPED PHYSICAL MEMORY TEST..."
004174' 050040 054510 044523
004202' 040503 020114 042515
004210' 047515 054522 052040
004216' 051505 027124 027056
004224' 000
4311 004226' .EVEN ;
4312 004226' 005037 172352 CLR KISAR5 ;START AT LOWEST POSSIBLE ADDRESS
4313 ;;;; MOV #PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS (SET ALREADY)
4314 004232' 012737 004330' 000004 MOV #80$,NXMVEC ;SET UP BUS ERROR VECTOR
4315 002000 CKCPSZ = 1024. ;SET UP SIZE OF PAGE TO CHECK
4316 004240' 005001 CLR R1 ;
4317 004242' 010100 8$: MOV R1,R0 ;SET UP POINTER, CONSIDERING NON-ZERO START
4318 004244' 005400 NEG R0 ;CHANGE NEGATIVE WORD COUNT
4319 004246' 006300 ASL R0 ; TO POSITIVE BYTE ADDRESS OFFSET
4320 004250' 062700 120000 ADD #PAGE5,R0 ;MAP THROUGH APR5
4321 004254' 062701 002000 ADD #CKCPSZ,R1 ;SET UP COUNT TO TEST
4322 004260' 004737 004412' JSR PC,10$ ;CALL CHECKER FOR DEFINED PAGE
4323 004264' 062737 000020 172352 ADD #CKCPSZ/BSFACT.,KISAR5 ;UP MAPPING REG TO NEXT PAGE
4324 004272' 023737 172352 001170' CMP KISAR5,PHYLIM ;PAST ALL OF PHYSICAL MEMORY?
4325 004300' 101760 BLOS 8$ ;NOT YET
4326 004302' 004037 013774' JSR R0,CKTCRL ;ADVERTISE COMPLETION
4327 004306' 004411 027056 041456 .ASCIZ " ...COMPLETE"<15><12>
004314' 046517 046120 052105
004322' 006505 000012
4328 .EVEN ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17-1
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4329 004326' 000512 BR CKMPAR ;
4330 ;
4331 004330' 80$: ;THIS TRAP HANDLER IS NEEDED ONLY IF THERE
4332 ; CAN BE HOLES IN THE PHYSICAL MEMORY
4333 004330' 021627 004420' CMP (SP),#15$ ;EXPECTED TRAP FROM CHECKER?
4334 004334' 001422 BEQ 82$ ;OKAY
4335 004336' CK11SC <CKEPC!CKEMSG>,<BAD NXM TRAP IN MEM CHK>
4336 004340' 040502 020104 054116 .ASCIZ "BAD NXM TRAP IN MEMORY CHECKER"<377>
004346' 020115 051124 050101
004354' 044440 020116 042515
004362' 047515 054522 041440
004370' 042510 045503 051105
004376' 000377
4337 .EVEN ;
4338 004400' 000400 BR 82$ ;
4339 004402' 012716 004550' 82$: MOV #40$,(SP) ;SET RECOVERY ADDRESS
4340 004406' 000002 RTI ;RECOVER
4341 000 .ENDC ;NDF M$$MGE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17-2
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4343 ; MEMORY CHECKER SUBROUTINE, CALLED FROM ABOVE, AND SKIPPED AROUND INLINE
4344 ;
4345 004410' 000000 1$: .WORD 0 ;LOCAL LOWER LIMIT WORD
4346 004412' 012702 000001 10$: MOV #1,R2 ;SET UP TEST PATTERN
4347 004416' 011003 MOV (R0),R3 ;SAVE CONTENTS OF OBJECT LOCATION
4348 004420' 15$: ;LEGAL TRAP OCCURS HERE
4349 004420' 012737 177777 004410' MOV #-1,1$ ;SET LIMIT WORD NON-ZERO
4350 004426' 005010 CLR (R0) ;CLEAR OBJECT WORD
4351 004430' 005737 004410' TST 1$ ;REACHED LOWER LIMIT?
4352 004434' 001006 BNE 20$ ;NO, CONTINUE WITH TEST
4353 ;YES, SET VALUES TO SKIP TESTING THIS CODE AREA
4354 004436' 062700 000142 ADD #60$-1$,R0 ;POINT PAST THIS CODE
4355 004442' 162701 000061 SUB #<60$-1$>/2,R1 ;ADJUST COUNT FOR SKIPPING TEST
4356 004446' 003361 BGT 10$ ;NO PAGE BREAK RESULTED, RESUME TEST
4357 004450' 000207 RTS PC ;CODE COVERS PAGE BREAK, RETURN R1 LE ZERO
4358 ;
4359 004452' 20$: ;
4360 004452' 010210 22$: MOV R2,(R0) ;STUFF CURRENT PATTERN
4361 004454' 005110 COM (R0) ;INVERT IT
4362 004456' 005110 COM (R0) ;AND BRING IT BACK
4363 004460' 021002 CMP (R0),R2 ;DID IT SURVIVE?
4364 004462' 001411 BEQ 30$ ;YES
4365 004464' CKSERR R2,<(R0)>,R0 ;SAVE GD,BD,ADR
4366 004472' CK11SC <CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
4367 004504' 000400 BR 30$ ;
4368 004506' 006302 30$: ASL R2 ;ADVANCE PATTERN
4369 004510' 001360 BNE 22$ ;REPEAT UNTIL R2 IS ZERO
4370 004512' 103757 BCS 22$ ; AND EVEN THEN, DO IT ONCE MORE
4371 004514' 010310 MOV R3,(R0) ;RESTORE RIGHTFUL DATA
4372 004516' 005110 COM (R0) ;BLAP IT, TOO
4373 004520' 005110 COM (R0) ; BACK AND FORTH
4374 004522' 022003 CMP (R0)+,R3 ;CHECK FOR SURVIVAL AND ADVANCE POINTER
4375 004524' 001411 BEQ 40$ ;OKAY
4376 004526' CKSERR R3,<-(R0)>,R0 ;SAVE GD,BD,ADR
4377 004534' CK11SC <CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
4378 004546' 000400 BR 40$ ;
4379 004550' 077160 40$: SOB R1,10$ ;DO OVER THE WHOLE DEFINED LIMIT OF THE PAGE
4380 004552' 000207 60$: RTS PC ;THEN RETURN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17-3
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4382 ; CHECK THE MEMORY PARITY OPTION
4383 ;
4384 004554' CKMPAR: ;START CHECKING CORE HERE
4385 001 .IF EQ <PDP11-40.>
4386 MOV #N.MM11,CKDNAM ;SAVE NAME OF "DEVICE"
4387 CLR CKDEVN ;"UNIT" IS 0
4388 MOV #MP.REG,R1 ;OPTION REGISTER
4389 MOV R1,CHKCHR+CKDA ;SAVE ADR IN CASE NEED TO TYPE IT
4390 MOV NXMVEC,-(SP)
4391 MOV #MP.VEC,CHKCHR+CKDV ;VECTOR
4392 FOR INTERRUPTS
4393 MOV #60$,NXMVEC ;IN CASE PARITY OPTION NOT INSTALLED
4394 CLR MP.REG ;TRY TO CLEAR MEMORY PARITY REGISTER
4395 MOV @P,NXMVEC ;RESTORE TRAP VECTOR
4396 JSR R5,CHKBIT ;CHECK READ/WRITE BITS
4397 107745
4398 ;NOW CHECK INTERRUPTS FROM PARITY CONTROL
4399 ; THIS IS DIFFICULT CUZ SETTING MP.ENB & MP.ERR WON'T CAUSE INTERRUPT
4400 CLR R0 ;VECTOR WE TOOK WILL APPEAR HERE
4401 MOV #MP.WWP,@R1 ;WE WANT TO WRITE WRONG PARITY
4402 MOV CKMPAR,CKMPAR ;WRITE A BAD WORD
4403 ;
4404 CLR @R1 ;BUT ONLY ONE WORD !
4405 TST CKMPAR ;TRY FOR AN INTERRUPT
4406 NOP ;IN CASE SLOW
4407 TST R0 ;SEE IF WE GOT ONE
4408 BEQ 32$
4409 CK11SC <CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPTED WHEN NOT ENABLED>
4410 32$: MOV #MP.ENB,@R1 ;NOW LETS GET THE INTERRUPT
4411 TST CKMPAR
4412 CLR @R1 ;DISABLE FURTHER INTERRUPTS
4413 MOV CKMPAR,CKMPAR ;WRITE BACK RIGHT
4414 TST R0 ;DID WE GET THE INTERRUPT ?
4415 BNE 34$
4416 CK11SC <CKEDID!CKEMSE!CKEPC>,CKMG04,<INTERRUPT DID NOT OCCUR>
4417 BR 80$
4418 ;
4419 34$: CMP R0,CHKCHR+CKDV ;WAS INTERRUPT RIGHT?
4420 BEQ 36$ ;YES.
4421 CKSERR <CHKCHR+CKDV>,R0,<#CKMPAR> ;GD,BD,ADR
4422 CK11SC <CKEMSE!CKEDID!CKEPC!CKEGB>,CKMG05,<interrupted to wrong vector>
4423 BR 80$ ;DONE.
4424 ;
4425 .PAGE
4426 ; COME HERE IF PARITY OPTION IS PRESENT AND WORKING
4427 ;
4428 36$: JSR R0,CKTCRL ;PRINT MESSAGE ABOUT IT
4429 .ASCIZ \ MF11-UP\
4430 .EVEN
4431 MOV #MP.ENB,MP.REG ;ENABLE PARITY ERRORS
4432 BR 80$ ;ALL DONE.
4433 ;
4434 ;HERE IF WE GET A BUS TRAP WHILE ACCESSING THE PARITY CONTROL REG
4435 60$: MOV (SP)+,(SP)+ ;CLEAN OFF STACK
4436 CK11SC <CKEDID!CKEPC!CKEMSE>,CKMG06,<not found>
4437 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17-4
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4438 002 .IF DF MP.ARM
4439 MOV #402,MP.ARM ;MP.ARM CONTAINS A MOV #MP.ENB,MP.REG;
4440 ; THIS TURNS IT INTO A BR .+6
4441 001 .ENDC
4442 80$: MOV (SP)+,NXMVEC
4443 ;
4444 000 .ENDC;.IF EQ <PDP11-40.>
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 17-5
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4446 ; SEE IF ROM = BM873 OR M9301 IS PRESENT
4447 ;
4448 001 .IF DF FT.ROM
4449 002 .IF NE FT.ROM
4450 CK.ROM: MOV NXMVEC,-(SP) ;SAVE BUS TRAP VECTOR
4451 MOV #20$,NXMVEC
4452 TST ROMADR ;IS ROM REALLY HERE ?
4453 BR 90$ ;YES
4454 ;
4455 ;HERE BECAUSE ROM NOT PRESENT
4456 20$: CLR GO.ROM ;MAKE JMP ROMADR = HALT
4457 MOV (SP)+,(SP)+ ;CLEAN OFF STACK
4458 ;
4459 90$: MOV (SP)+,NXMVEC
4460 001 .ENDC;NE FT.ROM
4461 000 .ENDC;DF FT.ROM
4462 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 18
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4464
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 19
C11DMC.MAC 10-AUG-79 16:08 CHECK MEMORY - SLIDING BIT PATTERN
4466
4467 .SBTTL CHECK KW11-L HDW
4468 ;
4469 ; BE SURE CLOCK IS PRESENT AND TICKS
4470 ;
4471 004554' 012737 000757' 001156' CHKCLK: MOV #N.KW.L,CKDNAM ;SET UP FOR NAME
4472 004562' 042737 100000 001152' BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
4473 004570' 012704 177546 MOV #CLKWRD,R4 ;SET UP DEV ADR
4474 004574' 010437 015476' MOV R4,CHKCHR+CKDA ;SET UP DEVICE ADR
4475 004600' 012737 000100 015500' MOV #CLKVEC,CHKCHR+CKDV ;SET UP VECTOR ADR
4476 004606' 005037 001154' CLR CKDEVN ;DEVICE NUMBER
4477 004612' 012737 004720' 000004 MOV #20$,NXMVEC ;SET BUS TRAP IN CASE CLOCK IS NOT PRESENT
4478 004620' 005714 TST (R4) ;TRAP IF NOT INSTALLED
4479 004622' 012737 014756' 000004 MOV #CKBUST,NXMVEC ;WHERE TO GO ON BUS TRAP
4480 004630' 013746 000100 MOV CLKVEC,-(SP) ;SAVE WHERE TO GO ON INT
4481 004634' 012737 004742' 000100 MOV #80$,CLKVEC ;SETUP INTERRUPT VECTOR
4482 004642' 012737 000003 004754' MOV #3,CHKTIM ;TIME 3 TICKS
4483 004650' 005037 177776 CLR PS ;LET INTERRUPTS HAPPEN
4484 004654' 012714 000100 MOV #KW.INE,(R4) ;ENABLE THE CLOCK
4485 004660' 001412 BEQ 15$ ;IF COUNTED OUT ALREADY EVIL
4486 004662' 005000 CLR R0 ;INITIALIZE WATCHDOG COUNTER
4487 004664' 005737 004754' 10$: TST CHKTIM
4488 004670' 001432 BEQ CKCLK9 ;BRANCH IF TIMED OUT ALREADY
4489 004672' 077004 SOB R0,10$
4490 004674' CK11SC <CKEPC!CKEDID>,<Slow>,<NO RESPONSE FROM KW11>
4491 004676' 066123 073557 000377 .ASCIZ \Slow\<377>
4492 .EVEN
4493 004704' 000424 BR CKCLK9 ;
4494 004706' 15$: CK11SC <CKEPC!CKEDID>,<Fast>,<KW11 TICKING TOO FAST>
4495 004710' 060506 072163 000377 .ASCIZ \Fast\<377>
4496 .EVEN
4497 004716' 000417 BR CKCLK9 ;
4498 004720' 20$: CK11SC <CKEPC!CKEDID>,<Not Present>,<CAN'T ACCESS KW11>
4499 004722' 067516 020164 071120 .ASCIZ \Not Present\<377>
004730' 071545 067145 177564
004736' 000
4500 004740' .EVEN
4501 004740' 000406 BR CKCLK9 ;
4502 ;
4503 ; KW11 INTERRUPT HANDLER
4504 ;
4505 004742' 005337 004754' 80$: DEC CHKTIM ;COUNT OUT TIMER
4506 004746' 001001 BNE 90$ ;
4507 004750' 005014 CLR (R4) ;TURN OFF CLOCK
4508 004752' 000002 90$: RTI ;DISMISS INTERRUPT
4509 ;
4510 004754' 000000 CHKTIM: .WORD 0 ;
4511 004756' CKCLK9: SPL 7 ;SET TO LEVEL 7
4512 004764' 012714 000100 MOV #KW.INE,(R4) ;ENABLE INT
4513 004770' 012637 000100 MOV (SP)+,CLKVEC ;RESTORE WHERE TO GO ON INT
4514 004774' 004537 010032' JSR R5,CHKINL ;FIND THE INT LEVEL
4515 005000' 177777 -1 ;DELAY TO WAIT FOR INT
4516 005002' 042737 000100 177546 BIC #KW.INE,CLKWRD ;DISABLE CLK INTS
4517 005010' 004037 013774' JSR R0,CKTCRL ;INDICATE CLOCK PRESENT
4518 005014' 053513 030461 046055 .ASCIZ \KW11-L checked\
005022' 061440 062550 065543
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 19-1
C11DMC.MAC 10-AUG-79 16:08 CHECK KW11-L HDW
005030' 062145 000
4519 005034' .EVEN ;
4520 005034' 004737 001224' JSR PC,CKAKW1 ;CALL TO MAIN FOR CLOCK
4521 ;
4522 005040' FALLR . ;FALL INTO WHATEVER COMES NEXT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 19-2
C11DMC.MAC 10-AUG-79 16:08 CHECK DL10 HDW
4524 .SBTTL CHECK DL10 HDW
4525 ;
4526 005040' CKDL10:
4527 001 .IF NE FTDL10 ;IF DOESN'T HAVE A DL10,DON'T CHECK IT
4528 MOV DL10AD,R4 ;IF "DL10AD" IS NON 0 A DL10 IS PRESENT
4529 ; AND R4 WILL BE LOADED WITH BASE ADR
4530 BEQ 10$ ;BRANCH IF WE DO NOT
4531 BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
4532 MOV #CKND10,CKDNAM ;DEVICE NAME
4533 CLR CKDEVN ;DEVICE NUMBER
4534 MOV R4,R1 ;PUT DEVICE ADDR FOR CHKBIT
4535 MOV R4,CHKCHR+CKDA ;PUT IN CHARACT TABLE FOR ERROR REPORTING
4536 JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS
4537 DL.B00!DL.B01!DL.INE!DL.ERE
4538 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4539 DL.WCO ;WORD COUNT OVERFLOW
4540 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4541 DL.PAR ;PARITY ERROR
4542 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4543 DL.NXM ;NON EX MEM
4544 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4545 DL.11I
4546 8$: MOV #DL.B01,(R4) ;SET DL10 FOR LEVEL 5
4547 MOV #DL.VEC,CHKCHR+CKDV;PUT DEVICE VECTOR IN TABLE FOR CKINT
4548 $CKINT R4,R4,DL.INE,DL.11I,DL.11C
4549 $CKINT R4,R4,DL.ERE,<DL.PAR!DL.NXM!DL.WCO>,<DL.CNX!DL.CPE!DL.CWC>
4550 JSR R0,CKTCRL ;NOTE PRESENCE OF DL10
4551 .ASCIZ \ DL10\
4552 .EVEN
4553 10$:
4554 000 .ENDC ;.IF NE FTDL10
4555 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 20
C11DMC.MAC 10-AUG-79 16:08 CHECK DL10 HDW
4557
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21
C11DMC.MAC 10-AUG-79 16:08 CHECK DL10 HDW
4559
4560 .SBTTL DEVICE SCAN AND CHECK
4561 ;
4562 ;THE SAME ROUTINE IS USED FOR FLOATING AND FIXED DEVICES
4563 ;HOWEVER FOR FIXED DEVICES THE VECTOR MULTIPLE MUST BE 0
4564 ; *** WARNING: *** CKCDEV IS BOTH CODE AND DATA BASE.
4565 ;DO *NOT* PUT ANYTHING OTHER THAN "DEVICE" MACROS BETWEEN CKCDEV AND CKCEND!
4566 ;
4567 ; INVOCATION:
4568 ; DEVICE A,MAXN,VI,HI,VM,NAM,FV
4569 ;
4570 ; ARG A ;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
4571 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES
4572 ; ARG VI ;VECTOR INCREMENT
4573 ; ARG HI ;HARDWARE INCREMENT
4574 ; ARG VM ;VECTOR MULTIPLE
4575 ; ARG NAM ;DEVICE NAME ABBREVIATION
4576 ; ARG FV ;FIRST VECTOR ADR (FIXED DEV ONLY)
4577 ;
4578 005040' 004037 013774' JSR R0,CKTCRL ;
4579 005044' 062012 073145 061551 .ASCII <12>"device scan report assumes"
005052' 020145 061563 067141
005060' 071040 070145 071157
005066' 020164 071541 072563
005074' 062555 163
4580 .IIF DF CKSTD .ASCII <15><12>"standard PDP-11 fixed and floating assignments"
4581 001 .IF DF CKDN2X
4582 002 .IF NE CKDN2X&B0
4583 005077' 015 020012 020040 .ASCII <15><12>" DN20"
005104' 020040 020040 047104
005112' 030062
4584 001 .ENDC
4585 002 .IF NE CKDN2X&B1
4586 005114' 005015 020040 020040 .ASCII <15><12>" DN21"
005122' 020040 042040 031116
005130' 061
4587 001 .ENDC
4588 002 .IF NE CKDN2X&B5
4589 005131' 015 020012 020040 .ASCII <15><12>" DN25"
005136' 020040 020040 047104
005144' 032462
4590 001 .ENDC
4591 005146' 063040 074151 062145 .ASCII " fixed assignments (no floating)"
005154' 060440 071563 063551
005162' 066556 067145 071564
005170' 024040 067556 063040
005176' 067554 072141 067151
005204' 024547
4592 000 .ENDC ;DF CKDN2X
4593 005206' 000 .BYTE 0
4594 005210' .EVEN ;
4595 ;
4596 ;
4597 005210' CKCDEV: ;FIXED ADDRESS, FIXED VECTOR DEVICES
4598 005210' CHKCD: DEVICE CD.STS,1,0,0,0,CD,CD.VEC ;CD20(CD11)
4599 000034 CKCADD=.-CKCDEV ;SIZE OF "DEVICE" BLOCK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-1
C11DMC.MAC 10-AUG-79 16:08 DEVICE SCAN AND CHECK
4600 005244' CHKCR: DEVICE CR.STS,1,0,0,0,CR,CR.VEC ;CR11
4601 005300' DEVICE KG.STS,8.,0,10,0,KG,0 ;KG11
4602 005334' DEVICE LE.STS,2,-10,10,0,LE,LE.VEC ;LP11
4603 005370' DEVICE LP0STS,2,-4,20,0,LP,LP.VEC ;LP20
4604 005424' DEVICE PP.STS,1,0,0,0,PP,PP.VEC ;PP11(PC11)
4605 005460' DEVICE PR.STS,1,0,0,0,PR,PR.VEC ;PR11(PC11)
4606 005514' DEVICE TC.STS,1,0,0,0,TC,TC.VEC ;TC11
4607 005550' DEVICE TM.STS,1,0,0,0,TM,TM.VEC ;TM11
4608 005604' DEVICE 177446,1,0,0,0,RC,210 ;RC11
4609 005640' DEVICE 177460,1,0,0,0,RF,204 ;RF11
4610 005674' DEVICE 176700,1,0,0,0,RH,254 ;RH11
4611 005730' CHKRP: DEVICE 176710,1,0,0,0,RP,254 ;RP11-C
4612 005764' DEVICE 177500,1,0,0,0,TA,260 ;TA11
4613 006020' DEVICE 177404,1,0,0,0,RK,220 ;RK11
4614 006054' DEVICE 177170,1,0,0,0,RX,264 ;RX11
4615 006110' DEVICE 172540,1,0,0,0,KW.P,104 ;KW11-P
4616 ;;;; DEVICE DS.DVA,1,20,10,0,DS,DS.VEC ;DS11
4617 006144' CHKDTE: DEVICE 174440,4,-4,40,0,DTE2,774 ;DTE20
4618 001 .IF DF CKSTD ;STANDARD FLOATING ASSIGNMENTS
4619 ;FIXED ADDRESS, FLOATING VECTOR DEVICES
4620 DEVICE 174770,32.,10,-10,10,DP,0 ;DP11
4621 DEVICE 175200,64.,4,10,4,DN,0 ;DN11
4622 DEVICE 170500,16.,4,10,10,DM,0 ;DM11BB
4623 DEVICE 172600,16.,4,10,4,R6,0 ;PA611RDR
4624 DEVICE 172700,16.,4,10,4,P6,0 ;PA611PNCH
4625 DEVICE 175610,16.,10,10,10,DL.E,0 ;DL11-E
4626 .IIF DF SY0880 DEVICE 177776,1,10,0,10,NL,0 ;(NULL DEVICE, VECTOR SPACER)
4627 ;FULLY FLOATING DEVICES
4628 DEVICE 0,16.,10,10,10,DJ,0 ;DJ11
4629 DEVICE 0,16.,10,20,10,DH,0 ;DH11
4630 DEVICE 0,16.,10,10,10,DQ,0 ;DQ11
4631 DEVICE 0,16.,10,10,10,DU,0 ;DU11
4632 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
4633 DEVICE 0,16.,10,10,10,DUP,0 ;DUP11
4634 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
4635 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
4636 DEVICE 0,16.,10,10,4,DMC,0 ;DMC11
4637 DEVICE 0,3.,10,10,4,KMC,0 ;KMC11
4638 000 .ENDC ;DF CKSTD
4639 ;
4640 001 .IF DF CKDN2X ;-20 FRONT END CONFIGURATIONS
4641 002 .IF NE CKDN2X&B0 ;DN20
4642 006200' DEVICE 160540,3,10,10,0,KMC,540 ;KMC11
4643 006234' DEVICE 160300,12.,10,10,0,DUP,570 ;DUP11
4644 006270' DEVICE 175630,1,10,10,0,DL.E,740 ;DL11-E (DN20 #1)
4645 006324' DEVICE 175640,1,10,10,0,DL.E,730 ;DL11-E (DN20 #2)
4646 006360' DEVICE 175650,1,10,10,0,DL.E,720 ;DL11-E (DN20 #3)
4647 001 .ENDC ;NE CKDN2X&B0
4648 002 .IF NE CKDN2X&B1 ;DN21
4649 006414' DEVICE 160740,4,10,10,0,DMC,670 ;DMC11
4650 001 .ENDC ;NE CKDN2X&B1
4651 002 .IF NE CKDN2X&B5 ;DN25
4652 006450' DEVICE 160640,3,10,10,0,KMC,300 ;KMC11
4653 006504' DEVICE 160010,16.,10,10,0,DZ,340 ;DZ11
4654 001 .ENDC ;NE CKDN2X&B5
4655 000 .ENDC ;DF CKDN2X
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-2
C11DMC.MAC 10-AUG-79 16:08 DEVICE SCAN AND CHECK
4656 ;
4657 006540' CKCEND: ;END OF DEVICES TO CHECK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-3
C11DMC.MAC 10-AUG-79 16:08 CHK11 COMPLETION
4659 .SBTTL CHK11 COMPLETION
4660 ;
4661 006540' 004037 013774' CHK.90: JSR R0,CKTCRL ;
4662 006544' 004412 044103 030513 .ASCIZ <12>" CHK11 complete"<15><12><12>
006552' 020061 067543 070155
006560' 062554 062564 005015
006566' 000012
4663 .EVEN ;
4664 006570' 012700 014631' MOV #CK.BUF,R0 ;SEND A BLANK
4665 006574' 004737 014536' JSR PC,CKBFSH ; MESSAGE TO REMOTE
4666 006600' 005037 000006 CLR @#6 ;SET UP HALT TRAP
4667 006604' 012737 000006 000004 MOV #6,@#4 ; FOR NEXT PROGRAM
4668 006612' 012637 172314 MOV (SP)+,KISDR6 ;RESTORE PAGE 6
4669 006616' 012637 172354 MOV (SP)+,KISAR6 ; MAPPING REGISTERS
4670 006622' 012605 MOV (SP)+,R5 ;RESTORE
4671 006624' 012604 MOV (SP)+,R4 ; CALLER'S
4672 006626' 013701 001162' MOV CK.DMC,R1 ; REGISTERS
4673 006632' 013706 001164' MOV CK.CSP,SP ;RESTORE CALLER'S SP
4674 006636' 000177 172316 JMP @CK.CAL ;RETURN TO CALLER
4675 .SBTTL END OF CHK11 MAINLINE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-4
C11DMC.MAC 10-AUG-79 16:08 GENERAL SUBROUTINES
4677 .SBTTL GENERAL SUBROUTINES
4678 ;**** GOT RID OF ALL THE STANDARD CHK11 VECTOR SETUP HERE ****;
4679 ;**** AFTER ALL, THIS IS ONLY THE TERTIARY LOADER... ****;
4680 .SBTTL LOOK FOR AND CHECK SYSTEM DEVICES
4681 ;
4682 ; CALLING SEQUENCE (GENERATED BY MACRO "DEVICE"):
4683 ; JSR R5,CHKDEV
4684 ; (OFFSET
4685 ; NAME)
4686 ; D.BADR .WORD ADDRESS OF 1ST DEVICE REGISTER
4687 ; D.MAXL .BYTE MAX # OF DEVICES TO SEEK
4688 ; D.VINC .BYTE VECTOR INC
4689 ; D.HINC .BYTE HDW INC
4690 ; D.VMUL .BYTE 1ST VEC MULTIPLE
4691 ; D.CNTP .WORD <ADR OF NUMBER OF DEVICES OR ZERO>
4692 ; D.NAMP .WORD <ADR OF .ASCIZ \NAME\>
4693 ; D.DIAG .WORD <ADR OF ROUTINE TO VERIFY OPERATION>
4694 ; D.MAIN .WORD <ADR OF MAIN PROGRAM ROUTINE FOR DEVICE>
4695 ; D.MPVC .WORD <ADR OF TABLE WHICH CONTAINS MAIN PROG VECTORS OR 0>
4696 ; D.CNTF .WORD <# OF DEVICES FOUND>
4697 ; D.FRSV .WORD <FIRST VECTOR FOUND>
4698 ; D.PRIO .WORD <PI LEVEL>
4699 ; D.FVFD .WORD <FIRST DEV VECTOR FOR FIXED TYPE DEV>
4700 ; D.NEXT (RETURN ADDRESS)
4701 ;
4702 006642' CHKDEV: ;
4703 ;LOOK FOR AND COUNT PLAUSIBLE DEVICE TYPES
4704 ;
4705 006642' 016537 000010 001156' MOV D.NAMP(R5),CKDNAM ;REMEMBER DEVICE NAME
4706 006650' 005002 CLR R2 ;INITIALIZE COUNTER FOR DEVICES
4707 ;GET DEVICE VECTOR
4708 006652' 013703 010706' MOV CHKFLV,R3 ;ASSUME FLOATING VECTOR
4709 006656' 105765 000005 TSTB D.VMUL(R5) ;BUT SEE IF FIXED
4710 006662' 001002 BNE 4$ ;FLOATING VECTOR
4711 006664' 016503 000026 MOV D.FVFD(R5),R3 ;FIXED, GET PRE-ASSIGNED VECTOR
4712 ;
4713 006670' 011504 4$: MOV (R5),R4 ;GET HDW ADR FOR 1ST DEVICE
4714 006672' 001012 BNE 6$ ;ADDRESS IS NOT ZERO, HENCE FIXED DEVICE
4715 ;DEV EXPECTS TO FLOAT, BUMP UP TO NEXT SLOT
4716 006674' 116501 000004 MOVB D.HINC(R5),R1 ;COMPUTE NEXT ADDRESS AS MULTIPLE OF HDW INC
4717 006700' 060137 010710' ADD R1,CHKFLD ;
4718 006704' 005301 DEC R1 ;
4719 006706' 040137 010710' BIC R1,CHKFLD ;
4720 006712' 013704 010710' MOV CHKFLD,R4 ;COPY FOR USE
4721 006716' 010415 MOV R4,(R5) ;STUFF EXPECTED ADDRESS IN DEVICE TABLE
4722 006720' 6$: ;
4723 006720' 012737 007032' 000004 7$: MOV #20$,NXMVEC ;SET BUS TRAP VECTOR
4724 006726' 005714 TST (R4) ;CHECK TO SEE IF DEVICE IS PRESENT
4725 006730' 012737 014756' 000004 MOV #CKBUST,NXMVEC ;IT'S THERE, SET BUS ERR VEC BACK
4726 006736' 005702 TST R2 ;IS THIS THE FIRST OF ITS KIND ?
4727 006740' 001014 BNE 15$ ;NO
4728 006742' 005065 000020 CLR D.CNTF(R5) ;YES, CLEAR NUMBER OF DEV FOUND
4729 006746' 005065 000022 CLR D.FRSV(R5) ;CLEAR FIRST VECTOR ADR
4730 ;;;; CLR D.PRIO(R5) ;CLEAR BR LEVEL
4731 006752' 116501 000005 MOVB D.VMUL(R5),R1 ;GET ADDRESS MULTIPLE OF VECTOR
4732 006756' 001405 BEQ 15$ ;BRANCH IF FIXED VECTOR DEV
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-5
C11DMC.MAC 10-AUG-79 16:08 LOOK FOR AND CHECK SYSTEM DEVICES
4733 006760' 005301 DEC R1 ;ELSE COUNT UP VECTOR MOD VMUL
4734 006762' 010365 000026 MOV R3,D.FVFD(R5) ;SAVE EXPECTED ADDRESS OF FIRST VECTOR
4735 006766' 060103 ADD R1,R3 ;
4736 006770' 040103 BIC R1,R3 ;
4737 006772' 005202 15$: INC R2 ;COUNT DEVICE
4738 006774' 005265 000020 INC D.CNTF(R5) ;COUNT DEVICE AND REMEMBER IT
4739 007000' 116501 000003 MOVB D.VINC(R5),R1 ;GET VECTOR INCREMENT
4740 007004' 060103 ADD R1,R3 ;COMPUTE NEW VECTOR
4741 007006' 116501 000004 MOVB D.HINC(R5),R1 ;GET REG BLOCK INCREMENT
4742 007012' 060104 ADD R1,R4 ;ADVANCE DEVICE ADR POINTER
4743 007014' 021537 010710' CMP (R5),CHKFLD ;FLOATING DEVICE?
4744 007020' 101737 BLOS 7$ ;YES, KEEP LOOKING UNTIL GAP FOUND
4745 007022' 120265 000002 CMPB R2,D.MAXL(R5) ;HAVE WE CHECKED AS MANY AS WE CAN EXPECT?
4746 007026' 001334 BNE 7$ ;NO, LOOP BACK FOR REST
4747 007030' 024646 CMP -(SP),-(SP) ;YES, FAKE A TRAP
4748 ;WE HAVE FOUND AS MANY UNITS AS WE SOUGHT,
4749 ; OR WE HAVE TRAPPED ON FINDING FEWER
4750 ;REPORT THE DEVICE COUNT
4751 007032' 012737 014756' 000004 20$: MOV #CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
4752 007040' 022626 CMP (SP)+,(SP)+ ;POP OFF TRAP
4753 007042' 021537 010710' CMP (R5),CHKFLD ;FLOATER?
4754 007046' 101016 BHI 21$ ;NO
4755 007050' 010437 010710' MOV R4,CHKFLD ;YES, SAVE CURRENT ADDRESS AS GAP ADDRESS
4756 007054' 120265 000002 CMPB R2,D.MAXL(R5) ;TOO MANY?
4757 007060' 101411 BLOS 21$ ;NO
4758 007062' CK11SC <CKEDID>,<Too many device units>
4759 007064' 067524 020157 060555 .ASCIZ "Too many units"
007072' 074556 072440 064556
007100' 071564 000
4760 007104' .EVEN ;
4761 007104' 005765 000006 21$: TST D.CNTP(R5) ;DO WE HAVE A REMOTE ADDRESS TO REPORT COUNT?
4762 007110' 001402 BEQ 22$ ;IF NOT, DON'T TRY
4763 007112' 010275 000006 MOV R2,@D.CNTP(R5) ;YES, PUT NUMBER FOR SOMEONE TO FIND
4764 007116' 010200 22$: MOV R2,R0 ;NUMBER OF DEVICES WE FOUND
4765 007120' 001001 BNE 24$ ;THERE ARE SOME
4766 001 .IF DF CKNODV
4767 JSR PC,CKCRLF ;DO CR/LF
4768 JSR R0,CKTSTR ;THERE AREN'T ANY
4769 .ASCIZ "no" ;
4770 .EVEN ;
4771 BR 25$ ;
4772 .IFF
4773 007122' 000567 BR 40$ ;AREN'T ANY - FORGET IT
4774 000 .ENDC
4775 007124' 004737 013762' 24$: JSR PC,CKCRLF ;DO CR/LF
4776 007130' 004737 014022' JSR PC,CKTOCT ;TYPE OUT THE NUMBER
4777 007134' 012700 007532' 25$: MOV #70$,R0 ;ASSUME FIXED ADDRESS DEVICE
4778 007140' 021537 010710' CMP (R5),CHKFLD ; BUT CHECK
4779 007144' 101002 BHI 26$ ;FIXED
4780 007146' 012700 007542' MOV #72$,R0 ;RATHER FLOATING
4781 007152' 004737 013734' 26$: JSR PC,CKTTXT ;SAY WHICH
4782 007156' 013700 001156' MOV CKDNAM,R0 ;GET ADR OF ASCIZ STRING
4783 007162' 004737 013734' JSR PC,CKTTXT ;TYPE DEVICE NAME
4784 007166' 020227 000001 CMP R2,#1 ;HOW MANY ?
4785 007172' 001402 BEQ 27$ ;SINGULAR
4786 007174' CK11SC <CKENCL>,<'s> ;PLURAL
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-6
C11DMC.MAC 10-AUG-79 16:08 LOOK FOR AND CHECK SYSTEM DEVICES
4787 007176' 000163 .ASCIZ \s\ ;
4788 .EVEN ;
4789 007200' 012700 007566' 27$: MOV #74$,R0 ;ADD TO DESCRIPTOR STRING
4790 007204' 020227 000001 CMP R2,#1 ;USE PROPER PREPOSITION
4791 007210' 101402 BLOS 28$ ;
4792 007212' 012700 007556' MOV #73$,R0 ;
4793 007216' 004737 013734' 28$: JSR PC,CKTTXT ;TYPE PREPOSITION
4794 007222' 011500 MOV (R5),R0 ;GET EXPECTED DEVICE ADDRESS
4795 007224' 004737 014022' JSR PC,CKTOCT ;TYPE IT OUT
4796 ;THE CURRENT DEVICE UNITS HAVE BEEN SOUGHT
4797 ; AND COUNTED - PROCEED TO TEST ANY SO FOUND
4798 007230' 005702 TST R2 ;WERE THERE ANY?
4799 007232' 001523 BEQ 40$ ;NO
4800 007234' 010346 MOV R3,-(SP) ;
4801 007236' 010446 MOV R4,-(SP) ;
4802 007240' 010246 MOV R2,-(SP) ;R2 MUST STAY ON TOP FOR COUNT
4803 007242' 005037 001154' CLR CKDEVN ;CHECK UNIT 0 FIRST
4804 007246' 016503 000026 MOV D.FVFD(R5),R3 ;GET FIRST VECTOR FOR POSSIBLE FIXED
4805 007252' 010346 MOV R3,-(SP) ;
4806 007254' 004037 014000' JSR R0,CKTSTR ;REPORT VECTOR ADDRESS
4807 007260' 020054 062566 072143 .ASCIZ ", vector at" ;
007266' 071157 060440 000164
4808 .EVEN ;
4809 007274' 011600 MOV (SP),R0 ;
4810 007276' 004737 014006' JSR PC,CKTBOC ;
4811 007302' 012603 MOV (SP)+,R3 ;
4812 007304' 116500 000005 MOVB D.VMUL(R5),R0 ;GET VECTOR MULTIPLE
4813 007310' 001405 BEQ 30$ ;BRANCH IF FIXED
4814 007312' 013703 010706' MOV CHKFLV,R3 ;GET VECTOR FOR 1ST UNIT
4815 007316' 005300 DEC R0 ;
4816 007320' 060003 ADD R0,R3 ;
4817 007322' 040003 BIC R0,R3 ;
4818 007324' 011504 30$: MOV (R5),R4 ;GET HDW ADR FOR FIRST UNIT
4819 007326' 001002 BNE 32$ ;
4820 007330' 013704 010710' MOV CHKFLD,R4 ;FLOATING DEVICE
4821 007334' 005037 015502' 32$: CLR CHKCHR+CKPI ;ROUTINE WILL SET PI LEVEL
4822 007340' 016500 000012 MOV D.DIAG(R5),R0 ;ADR OF ROUTINE TO VERIFY DEVICE
4823 007344' 001431 BEQ 34$ ;BRANCH IF NO ROUTINE TO VERIFY
4824 007346' 042737 100000 001152' BIC #CKFIDT,CHKFLG ;HAVEN'T TYPED ID YET
4825 007354' 010437 015476' MOV R4,CHKCHR+CKDA ;SAVE DEVICE ADDRESS
4826 007360' 010337 015500' MOV R3,CHKCHR+CKDV ;SAVE VECTOR ADDRESS IN TABLE
4827 007364' 010401 MOV R4,R1 ;PUT DEV ADR IN R1, MOST WILL USE IT
4828 007366' 005037 015504' CLR CHKCHR+CKFLG ;CLR AND LET DEV ROUTINE SET FLAGS
4829 007372' SPL 7 ;MAKE SURE WE'RE AT LEVEL 7
4830 007400' 020437 001162' CMP R4,CK.DMC ;IF THIS IS THE LOAD DEVICE,
4831 007404' 001403 BEQ 33$ ; SKIP OVER DIAGNOSTICS FOR IT
4832 007406' 010546 MOV R5,-(SP) ;
4833 007410' 004710 JSR PC,(R0) ;CALL TO DEVICE CHECK
4834 007412' 012605 MOV (SP)+,R5 ;
4835 007414' 005765 000022 33$: TST D.FRSV(R5) ;SEE IF VECTOR ADR SET YET
4836 007420' 001003 BNE 34$ ;BRANCH IF SET
4837 007422' 013765 015500' 000022 MOV CHKCHR+CKDV,D.FRSV(R5) ;SET FIRST VECTOR FOUND
4838 ;;;; MOV CHKCHR+CKPI,D.PRIO(R5) ;SET FIRST PI LEVEL FOUND
4839 007430' 021527 175400 34$: CMP (R5),#DS.DVA ;DS11 ARE SPECIAL SO DON'T CALL MAIN HERE
4840 007434' 001404 BEQ 35$ ;BRANCH IF DS11
4841 007436' 012700 015476' MOV #CHKCHR,R0 ;POINT TO THE CHARACTERISTIC TABLE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 21-7
C11DMC.MAC 10-AUG-79 16:08 LOOK FOR AND CHECK SYSTEM DEVICES
4842 007442' 004775 000014 JSR PC,@D.MAIN(R5) ;CALL TO MAIN PROGRAM
4843 007446' 116500 000003 35$: MOVB D.VINC(R5),R0 ;GET VECTOR INCREMENT
4844 007452' 060003 ADD R0,R3 ;
4845 007454' 116500 000004 MOVB D.HINC(R5),R0 ;HDW INCREMENT
4846 007460' 060004 ADD R0,R4 ;POINT TO NEXT REGISTER SET
4847 007462' 005237 001154' INC CKDEVN ;ON TO NEXT DEVICE NUMBER
4848 007466' 023716 001154' CMP CKDEVN,(SP) ;DONE ALL UNITS YET? (SET TO 177776 BY NULL DIAG)
4849 007472' 103720 BLO 32$ ;NO, NOT YET
4850 007474' 012602 MOV (SP)+,R2 ;
4851 007476' 012604 MOV (SP)+,R4 ;
4852 007500' 012603 MOV (SP)+,R3 ;
4853 007502' 40$: ;
4854 000000 .REPT 0
4855 ;;;;DISABLED CODE!!!
4856 SAVE <R3,R4>
4857 CLR R4 ;FLAG NO MORE DEVICES
4858 JSR PC,@D.MAIN(R5) ;CALL MAIN PROGRAM
4859 RESTORE <R4,R3>
4860 .ENDR
4861 ;
4862 ;DONE CHECKING ALL DEVICE UNITS, UPDATE FLOATING VALUES AS REQ'D
4863 ;
4864 007502' 105765 000005 TSTB D.VMUL(R5) ;FIXED VECTOR DEV?
4865 007506' 001406 BEQ 50$ ;YES
4866 007510' 013746 010706' MOV CHKFLV,-(SP) ;NO, RESET FLOATING VECTOR
4867 007514' 010337 010706' MOV R3,CHKFLV ;
4868 007520' 012603 MOV (SP)+,R3 ;
4869 007522' 011500 MOV (R5),R0 ;WAS THIS A FLOATING DEVICE ?
4870 007524' 062705 000030 50$: ADD #D.NEXT,R5 ;RETURN FOLLOWING TRAILING ARGS
4871 007530' 000205 RTS R5 ;
4872 ;
4873 007532' 043040 074151 062145 70$: .ASCIZ " Fixed " ;
007540' 000040
4874 .EVEN ;
4875 007542' 043040 067554 072141 72$: .ASCIZ " Floating " ;
007550' 067151 020147 000
4876 007556' .EVEN ;
4877 007556' 063040 067562 020155 73$: .ASCIZ " from " ;
007564' 000
4878 007566' .EVEN ;
4879 007566' 060440 020164 000 74$: .ASCIZ " at " ;
4880 007574' .EVEN ;
4881 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 22
C11DMC.MAC 10-AUG-79 16:08 LOOK FOR AND CHECK SYSTEM DEVICES
4883
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 23
C11DMC.MAC 10-AUG-79 16:08 LOOK FOR AND CHECK SYSTEM DEVICES
4885
4886 .SBTTL BIT BY BIT SET/CLEAR TEST
4887 ;
4888 ; CHECK WE CAN SET/CLEAR VARIOUS BITS
4889 ;
4890 ; CALL MOV #<ADR OF ASCIZ \NAME\>,CKDNAM
4891 ; MOV <DEVICE NUMBER>,CKDEVN
4892 ; MOV <DEVICE REGISTER ADDRESS>,R1
4893 ; JSR R5,CHKBIT
4894 ; <ALL BITS TO TEST>
4895 ;
4896 007574' 010046 CHKBIT: MOV R0,-(SP) ;
4897 007576' 010246 MOV R2,-(SP) ;
4898 007600' 010502 MOV R5,R2 ;USE R2 AS WORK REGISTER IN ROUTINE
4899 007602' 052737 000340 177776 BIS #BR7,PS ;DISABLE INTERRUPTS
4900 007610' 011500 MOV (R5),R0 ;GET BITS TO CHECK
4901 007612' 040011 BIC R0,(R1) ;TRY AND CLEAR ALL OF THEM
4902 007614' 030011 BIT R0,(R1) ;SEE IF ALL OF THEM CLEARED?
4903 007616' 001410 BEQ 1$ ;BRANCH IF ALL CLEAR
4904 007620' 005046 CLR -(SP) ;WHAT THE RESULT SHOULD BE
4905 007622' 011146 MOV (R1),-(SP) ;PUT C(DEV REG) ON STACK
4906 007624' 010046 MOV R0,-(SP) ;BUT ONLY CERTAIN BITS ARE BAD CANDIDATES
4907 007626' 005116 COM (SP) ;GET RID OF ONES
4908 007630' 042616 BIC (SP)+,(SP) ; THAT WE'RE NOT INTERESTED IN
4909 007632' 010146 MOV R1,-(SP) ;SAVE THE DEVICE ADR
4910 007634' CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BITS WOULD NOT CLEAR>
4911 007640' 012700 000001 1$: MOV #1,R0 ;START WITH B0 AND GO UNTIL B15 IS DONE
4912 007644' 031500 2$: BIT (R5),R0 ;WANT THIS BIT CHECKED?
4913 007646' 001420 BEQ 4$ ;BRANCH IF NOT, AND MAKE NEW BIT
4914 007650' 050011 BIS R0,(R1) ;TRY TO SET THE BIT
4915 007652' 030011 BIT R0,(R1) ;SEE IF THE BIT SET
4916 007654' 001005 BNE 3$ ;BRANCH IF IT SET
4917 007656' 010046 MOV R0,-(SP) ;SAVE GOOD
4918 007660' 005046 CLR -(SP) ;GOOD SHOUD BE 0 FOR THAT BIT
4919 007662' 010146 MOV R1,-(SP) ;DEV ADR WHERE IT HAPPENED
4920 007664' CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<BIT WOULD NOT SET>
4921 007670' 040011 3$: BIC R0,(R1) ;NOW THAT ITS SET TRY TO CLEAR IT
4922 007672' 030011 BIT R0,(R1) ;SEE IF IT CLEARED
4923 007674' 001405 BEQ 4$ ;BRANCH IF IT CLEARED AND GET NEW BIT
4924 007676' 005046 CLR -(SP) ;GOOD SHOUD BE 0
4925 007700' 010046 MOV R0,-(SP) ;SINCE IT DIDN'T CLEAR THIS BIT IS BAD
4926 007702' 010146 MOV R1,-(SP) ;DEV ADR THAT FAILED
4927 007704' CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BIT WOULD NOT CLEAR>
4928 007710' 006300 4$: ASL R0 ;MAKE NEW BIT POSITION
4929 007712' 001354 BNE 2$ ;BRANCH IF THERE IS A BIT
4930 007714' 010205 MOV R2,R5 ;RESTORE LINK REGISTER
4931 007716' 012602 MOV (SP)+,R2 ;
4932 007720' 012600 MOV (SP)+,R0 ;
4933 007722' 005725 TST (R5)+ ;GO OVER BITS FOLLOWING JSR
4934 007724' 000205 RTS R5 ;EXIT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 23-1
C11DMC.MAC 10-AUG-79 16:08 BIT SET/BIT CLEAR TEST FOR DL10
4936 .SBTTL BIT SET/BIT CLEAR TEST FOR DL10
4937 ;
4938 ;ROUTINE TO CHECK DL10 BITS
4939 ;
4940 001 .IF NE FTDL10
4941 CHKDLX: MOV (R5)+,R0 ;GET BIT TO CHECK
4942 BIS R0,(R1) ;SET THE BIT IN THE DL10
4943 CMP (R1),R0 ;DID IT SET AND ONLY IT SET?
4944 BEQ 1$ ;BRANCH IF OK
4945 CKSERR R0,<(R1)>,R1 ;GD, BD, ADR
4946 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<SET BIT BUT ITS NOT SET>
4947 1$: ASR R0 ;SHIFT RIGHT TO GET IT IN CLEAR POSITION
4948 BIS R0,(R1) ;SET BIT TO CLEAR BIT
4949 TST (R1) ;ALL BITS SHOULD BE CLEAR NOW
4950 BEQ 2$ ;BRANCH IF THEY ARE
4951 CLR -(SP) ;THE GOOD
4952 MOV (R1),-(SP) ;THE BAD
4953 MOV R1,-(SP) ;THE BAD ADR
4954 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<SETTING DIDN'T CLR BIT>
4955 2$: RTS R5 ;EXIT
4956 000 .ENDC ;.IF NE FTDL10
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 23-2
C11DMC.MAC 10-AUG-79 16:08 PRINT DEVICE ID ROUTINE
4958 .SBTTL PRINT DEVICE ID ROUTINE
4959 ;
4960 007726' 032737 100000 001152' CKDIDT: BIT #CKFIDT,CHKFLG ;HAVE WE ALREADY TYPE DEVICE ID ?
4961 007734' 001035 BNE 1$
4962 007736' CK11SC 0,<? >
4963 007740' 004407 020077 000 .ASCIZ <7>" ? "
4964 007746' .EVEN
4965 007746' 013700 001156' MOV CKDNAM,R0 ;GET ASCIZ \DEVICE NAME\
4966 007752' 004737 013734' JSR PC,CKTTXT ;TYPE DEVICE NAME
4967 007756' CK11SC <CKENCL>,< #>
4968 007760' 021440 000 .ASCIZ \ #\
4969 007764' .EVEN
4970 007764' 013700 001154' MOV CKDEVN,R0 ;GET UNIT NUMBER
4971 007770' 004737 014022' JSR PC,CKTOCT ;TYPE UNIT NUMBER
4972 007774' CK11SC <CKENCL>,<(Adr = >
4973 007776' 040450 071144 036440 .ASCIZ \(Adr = \
010004' 000040
4974 .EVEN
4975 010006' 013700 015476' MOV CHKCHR+CKDA,R0 ;GET DEVICE ADDR
4976 010012' 004737 014022' JSR PC,CKTOCT ;TYPE IT
4977 010016' CK11SC <CKENCL>,<)>
4978 010020' 000051 .ASCIZ \)\
4979 .EVEN
4980 010022' 052737 100000 001152' BIS #CKFIDT,CHKFLG ;REMEMBER WE TYPED DEVICE ID
4981 010030' 000207 1$: RTS PC
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 23-3
C11DMC.MAC 10-AUG-79 16:08 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
4983 .SBTTL ROUTINE TO FIND DEVICE INTERRUPT LEVEL
4984 ;
4985 ;CALL JSR R5,CHKINL ;WITH DEVICE READY TO INT BUT
4986 ; ; WITH THE PS SET TO LEVEL 7.
4987 ;
4988 010032' 010046 CHKINL: MOV R0,-(SP) ;SAVE R0
4989 010034' 010146 MOV R1,-(SP) ;SAVE R1
4990 010036' 010246 MOV R2,-(SP) ;SAVE R2
4991 010040' 012702 000300 MOV #BR6,R2 ;START BY CHECKING LEVEL 6
4992 010044' 011501 1$: MOV (R5),R1 ;GET TIME TO WAIT
4993 010046' 005000 CLR R0 ;WILL BE SET BY INT ROUTINE IF INT
4994 010050' 010237 177776 MOV R2,PS ;LOWER PS LEVEL
4995 ;MOST REASONABLE INTERRUPTS WHICH OCCUR WILL
4996 ; DISPATCH THROUGH CKINT, RETURN THE VECTOR
4997 ; ADDRESS USED IN R0
4998 010054' 005700 2$: TST R0 ;SEE IF INT YET
4999 010056' 001012 BNE 10$ ;NON 0 SAYS INTERRUPT HAPPENED
5000 010060' 077103 SOB R1,2$ ;TIME AND WAIT
5001 010062' SPL 7 ;TIMED OUT SET LEVEL 7, LOWER AND TRY AGAIN
5002 010070' 162702 000040 SUB #40,R2 ;MAKE LEVEL LOWER BY 1
5003 010074' 002363 BGE 1$ ;BRANCH IF LEVEL 0 NOT CHECKED YET
5004 010076' CK11SC <CKEMSE!CKEDID!CKEPC>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
5005 010102' 000415 BR 3$ ;EXIT
5006 ;
5007 010104' 020037 015500' 10$: CMP R0,CHKCHR+CKDV ;SEE IF SAME AS WHAT IT SHOULD BE
5008 010110' 001406 BEQ 11$ ;BRANCH IF CORRECT VECTOR
5009 010112' CKSERR <CHKCHR+CKDV>,<R0>,<R4>
5010 010122' CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
5011 ;
5012 010126' 062702 000040 11$: ADD #40,R2 ;MAKE THE DEVICE LEVEL
5013 010132' 010237 015502' MOV R2,CHKCHR+CKPI ;SAVE LEVEL DEVICE INTERRUPTED AT
5014 010136' 012602 3$: MOV (SP)+,R2 ;RESTORE R2
5015 010140' 012601 MOV (SP)+,R1 ;RESTORE R1
5016 010142' 012600 MOV (SP)+,R0 ;RESTORE R0
5017 010144' 005725 TST (R5)+ ;SKIP OVER TIME DELAY CONSTANT
5018 010146' 000205 RTS R5 ;RETURN WITH DEVICE LEVEL SAVED IN CHARACTERISTICS TABLE
5019 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 24
C11DMC.MAC 10-AUG-79 16:08 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5021
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25
C11DMC.MAC 10-AUG-79 16:08 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5023
5024 .SBTTL CHECK INTERRUPTS AND FIND DEVICE LEVEL
5025 ;
5026 ;ROUTINE TO CHECK INTERRUPTS AND FIND DEVICE LEVEL
5027 ;
5028 ; CALL (GENERATED BY MACRO "$CKINT"):
5029 ; MOV ENABLE ADR,R1
5030 ; MOV INT ADR,R2
5031 ; JSR R5,CKINT
5032 ; TRAILING ARGS:
5033 ; (NAME) (PURPOSE)
5034 ; I.ENAB - ENABLE BIT
5035 ; I.INTS - INTERRUPT BITS
5036 ; I.INTC - SPECIAL CLEAR BITS
5037 ; I.RTRN - RETURN ADDRESS
5038 ;
5039 010150' 010346 CKINT: MOV R3,-(SP)
5040 010152' 010446 MOV R4,-(SP)
5041 010154' 005037 015502' CLR CHKCHR+CKPI ;START WITH PI OF 0 (NO DEV)
5042 010160' 005037 010542' CLR CKFLAG ;0 = PI LEVEL FOUND MUST BE PUT IN TABLE
5043 ; NON 0 = CHECK PI LEVEL FOUND WITH TABLE
5044 010164' 012704 000001 MOV #1,R4 ;STARTING POSITION OF SLIDING INT BIT
5045 010170' 012703 000340 CKINT1: MOV #BR7,R3 ;START CHECKING AT THIS LEVEL
5046 010174' 010337 177776 CKINT2: MOV R3,PS ;SET PS
5047 010200' 005000 CLR R0 ;SET TO 0 SO IF INT HAPPENS WE KNOW IT
5048 010202' 030465 000002 CKINT3: BIT R4,I.INTS(R5) ;IS THERE A BIT TO TEST?
5049 010206' 001002 BNE 5$ ;BRANCH IF BIT IN POSITION
5050 010210' 000137 010520' JMP CKINT7 ;MAKE NEW BIT POSITION
5051 010214' 051511 5$: BIS (R5),(R1) ;SET INTERRUPT ENABLE
5052 010216' 050412 BIS R4,(R2) ;SET INTERRUPT BIT
5053 010220' 000240 NOP ;ALLOW 1 EXTRA INST TIME FOR INT
5054 010222' SPL 7 ;LET NO INT HAPPEN
5055 010230' 041511 BIC (R5),(R1) ;CLEAR INT ENABLE
5056 010232' 005765 000004 TST I.INTC(R5) ;SEE IF SPECIAL CLEAR
5057 010236' 001403 BEQ 7$ ;BRANCH IF NOT
5058 010240' 056512 000004 BIS I.INTC(R5),(R2) ;SPECIAL CLEAR
5059 010244' 000402 BR 9$ ;CONTINUE
5060 010246' 046512 000002 7$: BIC I.INTS(R5),(R2) ;CLEAR INT BITS
5061 010252' 005700 9$: TST R0 ;IF R0 IS NON 0 IT SHOULD BE THE
5062 ; VECTOR ADR. IF 0 NO INT HAPPENED.
5063 010254' 001006 BNE 10$ ;BRANCH IF INTERRUPT
5064 010256' 162703 000040 SUB #40,R3 ;MAKE PS VALUE 1 LEVEL LESS
5065 010262' 002344 BGE CKINT2 ;BRANCH IF NEW LEVEL OK
5066 010264' CK11SC <CKEMSE!CKEPC!CKEDID>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
5067 010270' 000517 BR CKINTE ;EXIT
5068 010272' 10$: ;INTERRUPT OCCURRED, CHECK IT OUT
5069 010272' 020037 015500' CMP R0,CHKCHR+CKDV ;SEE IF WE WENT TO CORRECT ADR
5070 010276' 001407 BEQ 13$ ;BRANCH IF WE DID, R0 = VECTOR ADR
5071 010300' CKSERR <CHKCHR+CKDV>,R0,<R2>;GD,BD,ADR
5072 010310' CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
5073 010314' 000505 BR CKINTE ;EXIT
5074 010316' 005737 010542' 13$: TST CKFLAG ;MUST WE LOAD LEVEL OR CHECK IT?
5075 010322' 001010 BNE 11$ ;BRANCH IF JUST CHECK
5076 010324' 010337 015502' MOV R3,CHKCHR+CKPI ;LOAD LEVEL JUST FOUND
5077 010330' 062737 000040 015502' ADD #40,CHKCHR+CKPI ;MAKE LEVEL OF DEVICE
5078 010336' 012737 177777 010542' MOV #-1,CKFLAG ;SET FLAG SO NEXT TIME WE CHECK LEVEL AS WELL
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25-1
C11DMC.MAC 10-AUG-79 16:08 CHECK INTERRUPTS AND FIND DEVICE LEVEL
5079 010344' 010300 11$: MOV R3,R0 ;GET PRESENT LEVEL
5080 010346' 062700 000040 ADD #40,R0 ;MAKE IT THE DEVICE LEVEL
5081 010352' 020037 015502' CMP R0,CHKCHR+CKPI ;CHECK LEVEL AGAINST LAST TIME
5082 010356' 001427 BEQ CKINT6 ;BRANCH IF LEVEL CHECKS
5083 010360' CKSERR <CHKCHR+CKPI>,R0,R4
5084 010370' CK11SC <CKEPC!CKEDID!CKEGB>,<Interrupt to Different BR Level>,<INTERRUPT TO DIF
5085 010372' 067111 062564 071162 .ASCIZ \Interrupt to Different BR Level\<377>
010400' 070165 020164 067564
010406' 042040 063151 062546
010414' 062562 072156 041040
010422' 020122 062514 062566
010430' 177554 000
5086 010434' .EVEN
5087 010434' 000435 BR CKINTE ;EXIT
5088 010436' 005037 177776 CKINT6: CLR PS ;CHECK WITH LEVEL 0 AND
5089 010442' 005000 CLR R0 ; NO INT ENABLE BITS SET
5090 010444' 050412 BIS R4,(R2) ; AND INT BIT SET THAT NO INT OCCURRS
5091 010446' 000240 NOP ;PAUSE
5092 010450' 000240 NOP ;PAUSE
5093 010452' SPL 7 ;DON'T LET AN INT HAPPEN
5094 010460' 005700 TST R0 ;SEE IF ONE HAPPENED
5095 010462' 001403 BEQ 19$ ;BRANCH IF NO INT
5096 010464' CK11SC <CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPT WHEN NOT ENABLED>
5097 010470' 000417 BR CKINTE ;EXIT
5098 010472' 005765 000004 19$: TST I.INTC(R5) ;SEE IF SPECIAL CLEAR
5099 010476' 001403 BEQ 22$ ;BRANCH IF NOT
5100 010500' 056512 000004 BIS I.INTC(R5),(R2) ;SPECIAL CLEAR (DL10 FOR ONE)
5101 010504' 000401 BR 24$ ;CONTINUE
5102 010506' 040412 22$: BIC R4,(R2) ;CLEAR INT BITS
5103 010510' 006304 24$: ASL R4 ;MAKE NEW BIT POSITION
5104 010512' 001406 BEQ CKINTE ;BRANCH IF DONE
5105 010514' 000137 010170' JMP CKINT1 ;TEST NEW BIT
5106 010520' 006304 CKINT7: ASL R4 ;MAKE NEW INT BIT POSITION
5107 010522' 001402 BEQ CKINTE ;BRANCH IF NO NEW BIT POSITION
5108 010524' 000137 010202' JMP CKINT3 ;BRANCH IF NEW BIT POSITION
5109 010530' 062705 000006 CKINTE: ADD #I.RTRN,R5 ;FOR CORRECT RETURN
5110 010534' 012604 MOV (SP)+,R4 ;
5111 010536' 012603 MOV (SP)+,R3 ;
5112 010540' 000205 RTS R5 ;RETURN
5113 ;
5114 010542' 000000 CKFLAG: 0
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25-2
C11DMC.MAC 10-AUG-79 16:08 GENERAL INTERRUPT FIELDER FOR CHK11
5116 .SBTTL GENERAL INTERRUPT FIELDER FOR CHK11
5117 ;
5118 ;WE GET HERE FROM ALMOST ANY INTERRUPT WHILE IN CHK11
5119 ; THIS WILL RETURN THE VECTOR ADDRESS IN R0 -
5120 ; THIS IS DISCERNED FROM THE CONDITION CODE BITS AND THE
5121 ; ADDRESS AT WHICH THE CODE IS ENTERED
5122 ;
5123 010544' CHKINT:
5124 ;ENTRY FOR VECTORS 0-74
5125 010544' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5126 010550' 004737 010664' JSR PC,1$
5127 010554' 000000 .WORD 0
5128 000012 CHKISZ = .-CHKINT ;CHKINT BLOCK SIZE
5129 ;ENTRY FOR VECTORS 100-174
5130 010556' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5131 010562' 004737 010664' JSR PC,1$
5132 010566' 000100 .WORD 100
5133 ;ENTRY FOR VECTORS 200-274
5134 010570' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5135 010574' 004737 010664' JSR PC,1$
5136 010600' 000200 .WORD 200
5137 ;ENTRY FOR VECTORS 300-374
5138 010602' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5139 010606' 004737 010664' JSR PC,1$
5140 010612' 000300 .WORD 300
5141 ;ENTRY FOR VECTORS 400-474
5142 010614' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5143 010620' 004737 010664' JSR PC,1$
5144 010624' 000400 .WORD 400
5145 ;ENTRY FOR VECTORS 500-574
5146 010626' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5147 010632' 004737 010664' JSR PC,1$
5148 010636' 000500 .WORD 500
5149 ;ENTRY FOR VECTORS 600-674
5150 010640' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5151 010644' 004737 010664' JSR PC,1$
5152 010650' 000600 .WORD 600
5153 ;ENTRY FOR VECTORS 700-774
5154 010652' 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5155 010656' 004737 010664' JSR PC,1$
5156 010662' 000700 .WORD 700
5157 ;-----------------------------------------------------------------
5158 010664' 042700 177760 1$: BIC #^C17,R0 ;SAVE ONLY CONDITION CODE BITS
5159 010670' 006300 ASL R0 ;MULTIPLY BY 4 (4 BYTES PER VECTOR)
5160 010672' 006300 ASL R0 ;
5161 010674' 063600 ADD @(SP)+,R0 ;MAKES VECTOR ADR (POPS JSR RET ADR)
5162 010676' 012766 000340 000002 MOV #BR7,2(SP) ;DON'T TRAP AGAIN ON RETURN
5163 010704' 000002 RTI ;
5164 ;
5165 010706' 000001 CHKFLV: .BLKW 1 ;CURRENT FLOATING DEVICE VECTOR
5166 010710' 000001 CHKFLD: .BLKW 1 ;CURRENT FLOATING DEVICE ADR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25-3
C11DMC.MAC 10-AUG-79 16:08 DEVICE DIAGNOSTICS
5168 .SBTTL DEVICE DIAGNOSTICS
5169 ;
5170 ; THE FOLLOWING ROUTINES HAVE NAMES OF THE FORM X--11, WHERE -- IS
5171 ; A DEVICE NAME (E.G. DH, DL, DTE2, KMC, ETC.) - THIS DEVICE NAME IS USED
5172 ; IN THE MACRO "DEVICE" TO GENERATE A POINTER TO THE APPROPRIATE
5173 ; DIAGNOSTIC ROUTINE - "DEVICE" CALLS CHKDEV, WHICH ACCESSES THE
5174 ; TABLE GENERATED BY "DEVICE" CONTAINING THIS POINTER, AND USES
5175 ; IT TO CALL THE PROPER DIAGNOSTIC
5176 ;
5177 ; DEVELOPERS: TRY TO KEEP THE DEVICE ROUTINE SETS IN
5178 ; ALPHABETICAL ORDER BY DEVICE NAME (E.G., ...DL11-A, DL11-E,
5179 ; DM11BB, DN11, ... DU11, DUP11, DZ11...) - ALSO NOTE THAT THE
5180 ; THE DEVICE NAMES ARE THE ABBREVIATIONS USED IN THE MACRO NAMSTR
5181 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25-4
C11DMC.MAC 10-AUG-79 16:08 CHECK CD20 HARDWARE
5183 .SBTTL CHECK CD20 HARDWARE
5184 ;
5185 .IIF NDF FTCD20,FTCD20=0
5186 001 .IF NE FTCD20
5187 010712' XCD11: ;
5188 010712' 012737 011146' 000004 MOV #30$,NXMVEC ;SET A LOCAL BUS ERROR HANDLER
5189 010720' 005761 000006 TST CDST2(R1) ;LOOK FOR SECONDARY STATUS REGISTER
5190 010724' 012737 014756' 000004 MOV #CKBUST,NXMVEC ;IT'S THERE, THIS MAY BE A CD20 (NOT A CR11)
5191 010732' 016146 000004 MOV CDBA(R1),-(SP) ;TO BE SURE,
5192 010736' 012700 177777 MOV #-1,R0 ; FIND OUT IF WE CAN
5193 010742' 074061 000004 XOR R0,CDBA(R1) ; FIDDLE THE "CDBA" BITS
5194 010746' 022661 000004 CMP (SP)+,CDBA(R1) ; IF WE CAN'T,
5195 010752' 001501 BEQ 40$ ; IT ISN'T A CD11/20
5196 010754' 074061 000004 XOR R0,CDBA(R1) ; IF WE DID, PUT THE BITS BACK
5197 010760' 052737 000001 005250' BIS #1,CHKCR+4 ;MAKE CR11 TEST FAIL IF TRIED
5198 010766' 004537 007574' JSR R5,CHKBIT ;R/W CHECK ON CD.STS
5199 010772' 000162 .WORD CD.IE!CD.XAD!CD.PAC
5200 010774' 005721 TST (R1)+ ;UP TO CDCC
5201 010776' 004537 007574' JSR R5,CHKBIT ;
5202 011002' 177777 .WORD ALLBTS ;
5203 011004' 005721 TST (R1)+ ;UP TO CDBA
5204 011006' 004537 007574' JSR R5,CHKBIT ;
5205 011012' 177777 .WORD ALLBTS ;
5206 011014' 010401 MOV R4,R1 ;RESTORE CD.STS POINTER
5207 011016' 032711 010000 BIT #CD.OFL,(R1) ;READER AVAILABLE?
5208 011022' 001012 BNE 10$ ;YES
5209 011024' CK11SC 0,<not ready> ;
5210 011026' 041411 031104 020060 .ASCIZ " CD20 off line"
011034' 063157 020146 064554
011042' 062556 000
5211 011046' .EVEN ;
5212 011046' 000207 RTS PC ;
5213 ;
5214 011050' 012721 000400 10$: MOV #CD.PWC,(R1)+ ;CLEAR READER
5215 011054' 012721 177777 MOV #-1,(R1)+ ;SET TO READ ONE COLUMN
5216 011060' 012721 160000 MOV #160000,(R1)+ ; INTO A NON-EXISTENT LOCATION
5217 011064' 012714 000161 MOV #CD.IE!CD.XAD!CD.GO,(R4) ;START READER
5218 011070' 005000 CLR R0 ;SET TIMER FOR READ WAIT
5219 011072' 032714 100200 15$: BIT #CD.ERR!CD.RDY,(R4) ;LOOK FOR ERROR OR DONE
5220 011076' 001017 BNE 20$ ;GOT ONE OF THEM
5221 011100' 077004 SOB R0,15$ ;NOT YET
5222 011102' CK11SC <CKEPC!CKEDID>,<SLOW READ>
5223 011104' 041411 031104 020060 .ASCIZ " CD20 time out on read"
011112' 064564 062555 067440
011120' 072165 067440 020156
011126' 062562 062141 000
5224 011134' .EVEN ;
5225 011134' 000207 RTS PC ;
5226 ;
5227 011136' 004537 010032' 20$: JSR R5,CHKINL ;CD20 SHOULD BE READY TO INTERRUPT
5228 011142' 177777 .WORD 177777 ;
5229 011144' 000207 RTS PC ;
5230 ;
5231 011146' 012737 014756' 000004 30$: MOV #CKBUST,NXMVEC ;RESTORE BUS ERROR VECTOR
5232 011154' 022626 CMP (SP)+,(SP)+ ;POP TRAP
5233 011156' 40$: CK11SC 0,<NOT CD20> ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 25-5
C11DMC.MAC 10-AUG-79 16:08 CHECK CD20 HARDWARE
5234 011160' 061411 071157 062562 .ASCIZ " correction - reader is NOT a CD20"
011166' 072143 067551 020156
011174' 020055 062562 062141
011202' 071145 064440 020163
011210' 047516 020124 020141
011216' 042103 030062 000
5235 011224' .EVEN ;
5236 011224' 000207 RTS PC ;
5237 000 .ENDC ;NE FTCD20
5238 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 26
C11DMC.MAC 10-AUG-79 16:08 CHECK CD20 HARDWARE
5240
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27
C11DMC.MAC 10-AUG-79 16:08 CHECK CD20 HARDWARE
5242
5243 .SBTTL CHECK CR11 HARDWARE
5244 ;
5245 ;CALL MOV #<VECTOR ADR>,R3
5246 ; MOV #<HDW ADR>,R4
5247 ; MOV #<HDW ADR>,R1
5248 ; JSR PC,XCR11
5249 ;
5250 .IIF NDF FTCR11,FTCR11=0
5251 001 .IF NE FTCR11
5252 011226' XCR11:
5253 011226' 016146 000004 MOV CDBA(R1),-(SP) ;CHECK TO SEE
5254 011232' 012700 177777 MOV #-1,R0 ; IF WE CAN
5255 011236' 074061 000004 XOR R0,CDBA(R1) ; FIDDLE THE BITS IN
5256 011242' 022661 000004 CMP (SP)+,CDBA(R1) ; THE BUFFER ADDRESS CSR
5257 011246' 001423 BEQ 10$ ;NO - READER IS REAL
5258 011250' 074061 000004 XOR R0,CDBA(R1) ;YES - SET THE BITS BACK
5259 011254' CK11SC 0,<NOT CR11> ; AND COMPLAIN
5260 011256' 067411 070157 020163 .ASCIZ " oops - reader is NOT a CR11"
011264' 020055 062562 062141
011272' 071145 064440 020163
011300' 047516 020124 020141
011306' 051103 030461 000
5261 011314' .EVEN ;
5262 011314' 000207 RTS PC ;
5263 ;
5264 011316' 052737 000001 005214' 10$: BIS #1,CHKCD+4 ;MAKE CD20 TEST FAIL IF TRIED
5265 011324' 004537 007574' JSR R5,CHKBIT ;CHECK HARDWARE BITS
5266 011330' 000102 .WORD CR.EJT!CR.INE ;
5267 011332' 032714 001000 BIT #CR.BSY,(R4) ;SEE IF BUSY (MAYBE POWER OFF)
5268 011336' 001414 BEQ 2$ ;BRANCH IF COMMAND CAN BE GIVEV
5269 011340' CK11SC 0,< CR11 not Rdy>
5270 011342' 041440 030522 020061 .ASCIZ \ CR11 not Rdy\
011350' 067556 020164 062122
011356' 000171
5271 .EVEN
5272 011360' 012737 000006 015502' MOV #CR.LVL,CHKCHR+CKPI ;GIVE DEFAULT LEVEL
5273 011366' 000207 RTS PC ;
5274 ;
5275 011370' 012714 000101 2$: MOV #CR.INE!CR.CFD,(R4) ;SET INT ENABLE AND READ
5276 ; TO FORCE ANY KIND OF INT
5277 011374' 005000 CLR R0 ;FOR TIMING OUT
5278 011376' 032714 100200 1$: BIT #CR.ERR!CR.CDN,(R4) ;SEE IF AN INT CONDITION EXISTS
5279 011402' 001015 BNE 3$ ;IF NOT, THEN WAIT.
5280 011404' 077004 SOB R0,1$ ;START TIMING OUT
5281 011406' 042714 000100 BIC #CR.INE,(R4) ;DISABLE CR11 INT ENABLE
5282 011412' CK11SC <CKEPC!CKEDID>,<CR11 Timed Out>,<CR11 NOT RESPONDING>
5283 011414' 051103 030461 052040 .ASCIZ \CR11 Timed Out\
011422' 066551 062145 047440
011430' 072165 000
5284 011434' .EVEN ;
5285 011434' 000207 RTS PC ;
5286 ;
5287 011436' 004537 010032' 3$: JSR R5,CHKINL ;FIND INT LEVEL
5288 011442' 177777 -1 ;FOR TIME-OUT LOOP
5289 011444' 042714 000100 BIC #CR.INE,(R4) ;DISABLE INT FOR CR11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27-1
C11DMC.MAC 10-AUG-79 16:08 CHECK CR11 HARDWARE
5290 011450' 000207 RTS PC ;
5291 000 .ENDC ;NE FTCR11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27-2
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5293 .SBTTL CHECK DH11 HDW
5294 .IIF NDF NDH11,NDH11=0 ;BY DEFAULT NO DH11S
5295 ;
5296 ;CALL MOV #<VECTOR ADR>,R3
5297 ; MOV #<HDW ADR>,R4
5298 ; MOV #<HDW ADR>,R1
5299 ; JSR PC,XDH11
5300 ;
5301 .IIF NDF FTDH11,FTDH11=0
5302 001 .IF NE FTDH11
5303 XDH11: MOV R3,-(SP) ;SAVE REGISTER
5304 JSR R5,CHKBIT ;CHECK RD/WRT BITS
5305 131177 ;READ/WRITE BITS
5306 TST (R1)+ ;ADVANCE TO NXT REC CHAR REG
5307 TST (R1)+ ;ADVANCE TO LINE PARAMETER REG(XX4)
5308 JSR R5,CHKBIT ;CHECK RD/WRT BITS
5309 177767 ;READ/WRITE BITS
5310 TST (R1)+ ;ADVANCE TO CURRENT ADR REG(XX6)
5311 CLR R2 ;START CHECK AT LINE 0
5312 1$: JSR R5,CHKBIT ;CHECK RD/WRT BITS
5313 -1 ;READ/WRITE BITS
5314 INC R2 ;NEXT LINE TO CHECK
5315 CMP R2,#17 ;DONE
5316 BLE 1$ ;CHECK LINES 0-17
5317 TST (R1)+ ;ADVANCE TO BYTE COUNT REG(X10)
5318 CLR R2 ;START CHECK AT LINE 0
5319 2$: JSR R5,CHKBIT ;CHECK RD/WRT BITS
5320 -1 ;READ/WRITE BITS
5321 INC R2 ;NEXT LINE TO CHECK
5322 CMP R2,#17 ;ALL LINES CHECKED?
5323 BLE 2$ ;CHECK ALL 20 LINES
5324 TST (R1)+ ;ADVANCE TO BAR REG(XX12)
5325 TST (R1)+ ;ADVANCE TO BREAK REG(X14)
5326 JSR R5,CHKBIT ;CHECK BITS
5327 -1 ;READ/WRITE BITS
5328 TST (R1)+ ;ADVANCE TO SILO STATUS REG(X16)
5329 JSR R5,CHKBIT ;CHECK READ/WRITE BITS
5330 77
5331 $CKINT R4,R4,<DH.RIE!DH..MM>,<DH..RI>
5332 $CKINT ,,<DH.SIE!DH..MM>,<DH..SI>
5333 ADD #4,CHKCHR+CKDV ;MAKE EXPECTED VECTOR FOR XMIT
5334 $CKINT ,,<DH.TIE>,<DH..TI>
5335 MOV R3,CHKCHR+CKDV ;PUT VECTOR ADDRESS IN TABLE
5336 ;
5337 002 .IF NE NDH11 ;DON'T CHECK HARDWARE NOT TO BE USED
5338 CKDH1A: MOV R3,DHXMII ;ADR TO COME TO ON XMIT INT
5339 ADD #4,DHXMII ;
5340 MOV #CKBLK,R0 ;LOAD A BUFFER WITH COUNT PATTERN
5341 MOV #400,R1 ;LOAD 400 CHARACTERS
5342 CLR R2 ;START WITH 0
5343 1$: MOVB R2,(R0)+ ;STORE THE COUNT PATTERN
5344 INCB R2 ;NEW PATTERN
5345 SOB R1,1$ ;BUFFER LOADED?
5346 CLR R3 ;START WITH LINE 0
5347 MOV #1,R2 ;LINE BIT (LINE 0)
5348 CKDH1B: CLR DHDATA ;FIRST RCV'D SHOULD BE 0
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27-3
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5349 .IIF NDF NTRIB,NTRIB=0
5350 003 .IF NE NTRIB
5351 ;IF TRIBUTARY LINES IN USE
5352 ;USE MINIMAL TEST TO AVOID INTERFERRENCE
5353 ;WITH THE FUNCTIONAL STATIONS ON LINE
5354 ;THE PROBLEM ARISES BECAUSE MAINTAINANCE
5355 ;MODE ON THE DH11 DRIVES THE MODEM LINES!!!
5356 MOV #-1,R1
5357 DEC DHDATA
5358 MOVB R1,CKBLK
5359 .IFF
5360 MOV #-400,R1
5361 002 .ENDC ;.IF NE NTRIB
5362 BIS #DH..MC,(R4) ;CLEAR THE DH
5363 BIS #DH..MM!DH.SIE!DH.TIE!DH.RIE,(R4) ;ENABLE INTS
5364 BIS R3,(R4) ;LOAD THE LINE NUMBER
5365 MOV #B6!B8!B9!B10!B12!B13!DH.2SB!DH.CL8!DH.PEN!DH..OP,DH.LPR(R4)
5366 ;SEL 8BIT,9600,PAR,ODD
5367 MOV R1,DH.BCR(R4) ;LENGTH TO XMIT
5368 MOV #CKBLK,DH.CAR(R4) ;ADR WHERE THE DATA IS
5369 MOV #4,DH.SSR(R4) ;ALARM LEVEL TO 4
5370 CKDH1E: CLR R0 ;INT RETURNS ADR IN HERE
5371 CLR R1 ;TIMER
5372 MOV R2,DH.BAR(R4) ;SET LINE ACTIVE
5373 2$: CLR PS ;LEVEL TO 0 FOR INTS
5374 NOP ;LET AN INTERRUPT HAPPEN
5375 SPL 7 ;DON'T LET ONE HAPPEN
5376 CMP R0,CHKCHR+CKDV ;SEE IF RCV INT YET
5377 BEQ 4$ ;BRANCH IF RCV INT
5378 CMP R0,DHXMII ;SEE IF XMIT INT
5379 BEQ 5$ ;BRANCH IF XMIT INT
5380 TST R0 ;SEE IF ANY INTERRUPT
5381 BEQ 3$ ;BRANCH IF NO INTERRUPT
5382 CKSERR <CHKCHR+CKDV>,R0,R3
5383 CK11SC <CKEPC!CKEGB!CKEDID>,<Ill Int>,<ILLEGAL INT WHILE WAITING FOR DH11 INT>
5384 .ASCIZ \Ill Int\<377>
5385 .EVEN
5386 JMP CKDH1D ;DON'T TEST ANY MORE
5387 3$: SOB R1,2$ ;TIME-OUT
5388 CK11SC <CKEPC!CKEDID>,<No Int>,<NO DH11 INTERRUPT>
5389 .ASCIZ \No Int\<377>
5390 .EVEN
5391 JSR PC,CKDHPL ;REPORT LINE NUMBER
5392 JMP CKDH1D ;DON'T TEST ANY MORE
5393 5$: BIT #DH.NXM,(R4) ;SEE IF NXM
5394 BEQ 16$ ;BRANCH IF NO NXM
5395 CK11SC <CKEPC!CKEDID>,<Xmit Nxm>,<TRANSMIT NXM ON DH>
5396 .ASCIZ \Xmit Nxm\<377>
5397 .EVEN
5398 JSR PC,CKDHPL ;REPORT LINE NUMBER
5399 BR CKDH1D ;DON'T TEST ANY MORE
5400 16$: BIT #DH..TI,(R4) ;BETTER HAVE XMIT INT
5401 BNE 17$ ;BRANCH IF WE DO
5402 CK11SC <CKEPC!CKEDID>,<Ill Xmit Int>,<INT TO XMIT BUT FOR NO REASON>
5403 .ASCIZ \Ill Xmit Int\<377>
5404 .EVEN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27-4
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5405 JSR PC,CKDHPL ;REPORT LINE NUMBER
5406 BR CKDH1D ;DON'T TEST ANY MORE
5407 17$: BIC #DH..TI,(R4) ;CLEAR XMIT INT
5408 BR CKDH1E ;
5409 4$: BIT #DH..SI,(R4) ;SEE IF SILO OVERFLOW
5410 BEQ CKDH1C ;BRANCH IF SILO HAD ROOM
5411 CK11SC <CKEPC!CKEDID>,<Silo Full>,<SILO OVERFLOW>
5412 .ASCIZ \Silo Full\<377>
5413 .EVEN
5414 JSR PC,CKDHPL ;REPORT LINE NUMBER
5415 BR CKDH1D ;DON'T TEST ANY MORE
5416 CKDH1C: BIC #DH..RI,(R4) ;CLEAR RCV INT (MUST FOR MAINT MODE)
5417 MOV DH.NRC(R4),R0 ;GET STUFF FROM SILO
5418 BIT #DH.DOV!DH..FE!DH..PE,R0 ;SEE IF ANY ERROR BITS WITH DATA
5419 BEQ 7$ ;BRANCH IF NO ERRORS WITH THE DATA
5420 MOV DHDATA,-(SP) ;MAKE THE GOOD
5421 MOV R3,-(SP) ;PUT LINE # IN
5422 SWAB (SP) ;GET IT IN THE (LB)
5423 BIS (SP)+,(SP) ;LINE # NOW IN GOOD
5424 BIS #DH.VDP,(SP) ;GOOD INCLUDES VALID DATA PRESENT
5425 MOV R0,-(SP) ;THE BAD
5426 MOV R3,-(SP) ;THE LINE UNDER TEST
5427 CK11SC <CKEGB!CKEPC!CKEDID>,<Data Err Bit Set>,<ERROR BITS WITH THE DATA>
5428 .ASCIZ \Data Err Bit Set\<377>
5429 .EVEN
5430 BR CKDH1D ;DON'T TEST ANY MORE
5431 7$: BIT #DH.VDP,R0 ;SEE IF VALID DATA
5432 BNE 8$ ;BRANCH IF VALID DATA
5433 CK11SC <CKEPC!CKEDID>,<Not Valid Data>,<NOT VALID DATA BIT SET>
5434 .ASCIZ \Not Valid Data\<377>
5435 .EVEN
5436 JSR PC,CKDHPL ;REPORT LINE NUMBER
5437 BR CKDH1D ;DON'T TEST ANY MORE
5438 8$: BIC #B15!B14!B13!B12,R0 ;CLEAR DATA ERROR BITS
5439 SWAB R0 ;FOR CHECKING LINE #
5440 CMPB R0,R3 ;SEE IF LINE #OK
5441 BEQ 9$ ;BRANCH IF IT IS
5442 MOV R3,-(SP) ;LEGAL LINE NUMBER
5443 CLR -(SP) ;0 FOR BYTE MOVE
5444 MOVB R0,(SP) ;THE ILLEGAL LINE NUMBER
5445 MOV R3,-(SP) ;LINE UNDER TEST
5446 CK11SC <CKEGB!CKEPC!CKEDID>,<Ill Line Num>,<ILLEGAL LINE NUMBER>
5447 .ASCIZ \Ill Line Num\<377>
5448 .EVEN
5449 BR CKDH1D ;DON'T TEST ANY MORE
5450 9$: SWAB R0 ;FOR CHECKING THE DATA
5451 CMPB R0,DHDATA ;SEE IF CORRECT DATA
5452 BEQ 10$ ;BRANCH IF DATA OK
5453 MOV DHDATA,-(SP) ;GOOD DATA
5454 CLR -(SP) ;FOR BYTE MOVE
5455 MOVB R0,(SP) ;THE BAD DATA
5456 MOV R3,-(SP) ;THE LINE #
5457 CK11SC <CKEGB!CKEPC!CKEDID>,<Data Err>,<DATA ERROR>
5458 .ASCIZ \Data Err\<377>
5459 .EVEN
5460 BR CKDH1D ;DON'T TEST ANY MORE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 27-5
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5461 10$: INCB DHDATA ;NEW PATTERN EXPECTED
5462 BEQ 11$ ;BRANCH IF LINE DONE
5463 JMP CKDH1E ;
5464 ;
5465 11$:
5466 CKDH1D: INC R3 ;NEW LINE NUMBER
5467 ASL R2 ;NEW BIT FOR NEXT LINE
5468 BEQ CKDH1F ;BRANCH IF TEST ALL DONE
5469 JMP CKDH1B ;
5470 ;
5471 CKDHPL: CK11SC 0,< Line #>
5472 .ASCIZ \ Line #\
5473 .EVEN
5474 MOV R3,R0 ;LINE NUMBER TO R0 FOR CALL
5475 JSR PC,CKTOCT ;PRINT LINE NUMBER
5476 RTS PC ;RETURN
5477 ;
5478 .IFF ;NE NDH11
5479 10$: JSR R0,CKTSTR
5480 .ASCIZ \ SKIPPING TRANSMISSION CHECK\
5481 .EVEN
5482 MOV #377+<<.+6-10$>/2>,10$ ;SHUT OFF SKIPPING COMMENT
5483 001 .ENDC ;NE NDH11
5484 ;
5485 CKDH1F: BIS #DH..MC,(R4) ;MASTER CLEAR
5486 MOV (SP)+,R3 ;GET R3 BACK
5487 RTS PC ;DH CHARACTER TEST DONE
5488 DHDATA: 0
5489 DHXMII: 0
5490 000 .ENDC ;NE FTDH11
5491 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 28
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5493
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29
C11DMC.MAC 10-AUG-79 16:08 CHECK DH11 HDW
5495
5496 .SBTTL CHECK DL11-A HDW
5497 ;
5498 .IIF NDF FTDL1A,FTDL1A=0
5499 001 .IF NE FTDL1A
5500 XDL.A11:
5501 RTS PC
5502 000 .ENDC ;NE FTDL1A
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-1
C11DMC.MAC 10-AUG-79 16:08 CHECK DL11-E HDW
5504 .SBTTL CHECK DL11-E HDW
5505 ;
5506 ;CALL MOV #<VECTOR ADR>,R3
5507 ; MOV #<HDW ADR>,R4
5508 ; MOV #<HDW ADR>,R1
5509 ; JSR PC,XDL11
5510 ;
5511 .IIF NDF FTDL1E,FTDL1E=0
5512 001 .IF NE FTDL1E
5513 011452' XDL.E11:
5514 011452' 010346 MOV R3,-(SP) ;
5515 011454' 004537 007574' JSR R5,CHKBIT ;CHECK READ/WRITE BITS
5516 011460' 000156 000156 ;
5517 011462' 005721 TST (R1)+ ;ADVANCE TO RECEIVE DATA REGISTER
5518 011464' 005721 TST (R1)+ ;ADVANCE TO TRANSMIT STATUS REGISTER
5519 011466' 004537 007574' JSR R5,CHKBIT ;
5520 011472' 000105 000105 ;
5521 011474' 012603 MOV (SP)+,R3 ;
5522 011476' 000207 RTS PC ;
5523 000 .ENDC ;NE FTDL1E
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-2
C11DMC.MAC 10-AUG-79 16:08 CHECK DM11BB HDW
5525 .SBTTL CHECK DM11BB HDW
5526 ;
5527 ;CALL MOV #<VECTOR ADR>,R3
5528 ; MOV #<HDW ADR>,R4
5529 ; MOV #<HDW ADR>,R1
5530 ; JSR PC,XDM11
5531 ;
5532 .IIF NDF FTDM11,FTDM11=0
5533 001 .IF NE FTDM11
5534 XDM11: JSR R5,CHKBIT ;CHECK FOLLOWING BITS
5535 DM.ALI!DM.DNE!DM..MM!DM.ENB!DM.IEN
5536 $CKINT ,R4,<DM.IEN>,<DM.DNE>
5537 JSR PC,CKDMCS ;CLEAR SCAN AND CHECK IT CLEARED
5538 BIS #DM.ENB,(R4) ;ENABLE SCAN
5539 BIT #DM.BSY,(R4) ;SEE IF BSY SET
5540 BNE 1$ ;BRANCH IF IT DID
5541 CK11SC <CKEPC!CKEDID>,<Busy did not Set>,<BUSY DID NOT SET>
5542 .ASCIZ \Busy did not Set\<377>
5543 .EVEN
5544 1$: JSR PC,CKDMCS ;CLEAR SCAN AND CHECKED IT CLEARED
5545 RTS PC
5546 ;
5547 .IIF NDF DM.TIM,DM.TIM=40. ;DM11BB SETTLE TIME IN MEMORY CYCLES
5548 ;
5549 CKDMCS: MOV #DM.DNE!DM..MM!DM.IEN!DM.ENB!DM.ALI,R2
5550 ;BITS WHICH SHOULD GET CLEARED
5551 MOV #<DM.TIM/5>,R0 ;TIME OUT FOR BUSY
5552 BIS #DM.SCN,(R4) ;CLEAR SCAN
5553 5$: BIT #DM.BSY,(R4) ;SEE IF BUSY CLEAR YET
5554 BEQ 2$ ;BRANCH IF IT IS
5555 SOB R0,5$ ;TIME OUT WAITING FOR BSY TO CLEAR
5556 CK11SC <CKEPC!CKEDID>,<Busy did not Clear>,<CLEARING SCAN FAILED TO CLEAR BUSY>
5557 .ASCIZ \Busy did not Clear\<377>
5558 .EVEN
5559 2$: BIT R1,(R4) ;SEE IF THEY ARE ALL CLEAR
5560 BEQ 3$ ;BRANCH IF THEY ARE ALL CLEAR
5561 MOV (R4),R0 ;GET DM11 STATUS
5562 COM R2 ;MASK OUT NON INTERESTING BITS
5563 BIC R2,R0 ;
5564 CLR -(SP) ;GOOD
5565 MOV R0,-(SP) ;BAD
5566 MOV R4,-(SP) ;ADR
5567 CK11SC <CKEGB!CKEPC!CKEDID>,<Clear Scan Error>,<CLR SCAN FAILED TO CLEAR A BIT>
5568 .ASCIZ \Clear Scan Error\<377>
5569 .EVEN
5570 3$: RTS PC
5571 000 .ENDC ;NE FTDM11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-3
C11DMC.MAC 10-AUG-79 16:08 CHECK DN11 HDW
5573 .SBTTL CHECK DN11 HDW
5574 ;
5575 ;CALL MOV #<VECTOR ADR>,R3
5576 ; MOV #<HDW ADR>,R4
5577 ; MOV #<HDW ADR>,R1
5578 ; JSR PC,XDN11
5579 ;
5580 .IIF NDF FTDN11,FTDN11=0
5581 001 .IF NE FTDN11
5582 XDN11: JSR R5,CHKBIT ;CHECK BITS
5583 007714 ;READ/WRITE BITS
5584 $CKINT ,R4,<DN..IE!DN..ME>,<DN.DNE>
5585 RTS PC
5586 000 .ENDC ;NE FTDN11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-4
C11DMC.MAC 10-AUG-79 16:08 CHECK DP11 HDW
5588 .SBTTL CHECK DP11 HDW
5589 ;
5590 ;CALL MOV #<VECTOR ADR>,R3
5591 ; MOV #<HDW ADR>,R4
5592 ; MOV #<HDW ADR>,R1
5593 ; JSR PC,XDP11
5594 ;
5595 .IIF NDF FTDP11,FTDP11=0
5596 001 .IF NE FTDP11
5597 XDP11: JSR R5,CHKBIT ;CHECK BITS
5598 3707 ;READ/WRITE BITS
5599 TST (R1)+ ;ADV TO REC BUF/SYN REG
5600 ;;;; JSR R5,CHKBIT ;CHECK BITS
5601 ;;;; 000000 ;READ/WRITE BITS
5602 TST (R1)+ ;ADV TO XMT STATUS REG
5603 JSR R5,CHKBIT ;
5604 000143 ;READ/WRITE BITS
5605 ;;;; TST (R1)+ ;ADV TO XMT BUFFER
5606 ;;;; JSR R5,CHKBIT ;
5607 ;;;; 000000 ;READ/WRITE BITS
5608 $CKINT R4,R4,B6,B7 ;
5609 RTS PC ;
5610 000 .ENDC ;NE FTDP11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-5
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5612 .SBTTL CHECK DQ11 HDW
5613 ;
5614 ;CALL MOV #<VECTOR ADR>,R3
5615 ; MOV #<HDW ADR>,R4
5616 ; MOV #<HDW ADR>,R1
5617 ; JSR PC,XDQ11
5618 ;
5619 .IIF NDF FTDQ11,FTDQ11=0
5620 001 .IF NE FTDQ11
5621 XDQ11:
5622 002 .IF NDF,FT.D75 ;ONLY ASSEMBLE DQ IF NOT DC75
5623 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
5624 110373 ;READ/WRITE BITS
5625 TST (R1)+ ;ADVANCE TO XMT REGISTER
5626 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
5627 101772 ;READ/WRITE BITS
5628 TST (R1)+ ;ADVANCE TO ERR REGISTER
5629 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
5630 017477 ;READ/WRITE BITS
5631 TST (R1)+ ;ADVANCE TO SHADOW REGISTERS
5632 JSR R5,CHKBIT
5633 -1
5634 ;
5635 ;DETERMINE DQ11 INTERRUPT LEVEL
5636 ;
5637 30$: $CKINT R4,R4,DQ.RIE,<DQ.RDP!DQ.RDS>
5638 MOV CHKCHR+CKDV,-(SP) ;SAVE VECTOR
5639 ADD #4,CHKCHR+CKDV ;MAKE VECTOR B
5640 CMP (R1)+,(R2)+ ;POINT TO XMIT REG
5641 $CKINT ,,<DQ.XIE>,<DQ.XDS!DQ.XDP>
5642 TST (R2)+ ;ADVANCE INT BIT POINTER TO ERR REG
5643 $CKINT ,,<DQ.EIE>,<DQ.VRC!DQ.XLE!DQ.RLE!DQ.XNX!DQ.RNX!DQ.XCL!DQ.RCL>
5644 MOV (SP)+,CHKCHR+CKDV ;RESTORE VECTOR A VECTOR
5645 ;
5646 ;ENTRY BECAUSE DQ11 TRAPPED TO RIGHT LOCATION
5647 ; CHECK WE CAN CLEAR THE DATASET FLAG
5648 ;
5649 32$: MOV #5,R0 ;PATIENCE COUNTER ON DATASET FLAG
5650 31$: BIC #DQ.DSF,2(R4) ;CLEAR DATASET FLAG
5651 CMP (SP),(SP) ;TIME WASTER ONLY
5652 BIT #DQ.DSF,2(R4) ;CHECK TO SEE IF DATASET FLAG STILL OFF
5653 BEQ CHKDQE
5654 SOB R0,31$
5655 CK11SC <CKEDID!CKEPC>,<Can't Clr Dataset Flg>,< CAN'T CLEAR DATASET FLAG>
5656 .ASCIZ \Can't Clr Dataset Flg\<377>
5657 .EVEN
5658 .PAGE
5659 ;CHECK THAT ERROR BITS WORK
5660 ;
5661 CHKDQE: JSR PC,CKDQCL ;CLEAR ENTIRE DQ
5662 MOV #40,R2 ;FIRST BIT TO TRY
5663 1$: BIS R2,4(R4) ;SET AN ERROR BIT
5664 MOV 4(R4),R0 ;GET ERR REG
5665 BPL 2$ ;BRANCH IF B15 ERR NOT SET
5666 BIT R2,R0 ;SEE IF THE BIT SET
5667 BNE 3$ ;BRANCH IF B15 SET AND ERR BIT SET
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 29-6
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5668 2$: MOV R2,-(SP) ;SAVE GOOD
5669 BIS #B15,(SP) ; ALSO MUST INCLUDE BIT 15.
5670 JSR PC,CKDQES ;PUT BAD AND REG # ON STACK
5671 CK11SC <CKEDID!CKEPC!CKEGB>,<Bit not Set>,<CAN'T SET BIT>
5672 .ASCIZ \Bit not Set\<377>
5673 .EVEN
5674 3$: BIC R2,4(R4) ;CLEAR BIT JUST SET, SHOULD ALSO CLEAR B15.
5675 MOV 4(R4),R0 ;SAVE RESULTS
5676 BMI 4$ ;BRANCH IF B15 SET (IT SHOULDN'T BE)
5677 BIT R2,R0 ;SEE IF THE BIT IS CLEAR
5678 BEQ 5$ ;BRANCH IF ITS 0
5679 4$: CLR -(SP) ;WHAT GOOD SHOULD BE
5680 JSR PC,CKDQES ;SAVE BD, AND REG # ON STACK
5681 CK11SC <CKEDID!CKEPC!CKEGB>,<Bit not Clear>,<COULDN'T CLEAR BIT>
5682 .ASCIZ \Bit not Clear\<377>
5683 .EVEN
5684 5$: ASR R2 ;ALL DONE?
5685 BNE 1$ ;BRANCH BACK IF ANOTHER BIT TO TEST
5686 BR CHKDQS ;GO CHECK SECONDARY REGS
5687 ;
5688 CKDQES: MOV (SP)+,R1 ;SAVE RETURN PC
5689 MOV R0,-(SP) ;PUT C(ERR REG) ON STACK
5690 MOV R2,-(SP) ;BIT WE TESTED
5691 BIS #B15,(SP) ;INCLUDE ERROR BIT
5692 COM (SP) ;
5693 BIC (SP)+,(SP) ;KEEP ONLY THE INTERESTING BITS
5694 MOV R4,-(SP) ;SAVE REG ADR
5695 ADD #4,(SP) ;MAKE IT THE ERROR REG
5696 JMP (R1) ;RETURN
5697 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 30
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5699
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 31
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5701
5702 ; CHECK WE CAN LOAD VARIOUS DQ11 SECONDARY REGISTERS
5703 ;
5704 CHKDQS: CLR R0 ;1ST TRY TO CLEAR ALL SECONDARY REGISTERS
5705 JSR PC,60$ ;GO DO IT
5706 MOV #-1,R0 ;NOW TRY TO SET ALL SECONDARY REGISTERS
5707 JSR PC,60$
5708 MOV #1,R0 ;BIT TO LOAD
5709 10$: JSR PC,60$ ;TRY TO LOAD BIT
5710 ASL R0 ;SHIFT BIT
5711 BNE 10$ ;BRANCH IF STILL HAVE BITS TO TEST
5712 MOV #RG.SYN,R1 ;NOW TRY TO LOAD REG WITH REG #
5713 12$: MOV R1,R0 ;DATA = REGISTER NUMBER
5714 JSR PC,CKDQSL ;TRY TO LOAD REGISTER
5715 CMP #RG.SYN,R1
5716 BNE 14$
5717 DEC R1 ;SKIP REG 10
5718 14$: DEC R1 ;ON TO NEXT REGISTER
5719 BPL 12$
5720 MOV #RG.SYN,R1 ;NOW CHECK IT LOADED
5721 16$: MOV R1,R0 ;DATA SHOULD BE SAME
5722 JSR PC,CKDQSR ;CHECK DATA STILL THERE
5723 CMP #RG.SYN,R1 ;WAS THIS THE FIRST REG ?
5724 BNE 18$
5725 DEC R1 ;YES SO SKIP REG 10
5726 18$: DEC R1 ;ON TO NEXT REGISTER
5727 BPL 16$ ;DO REST IF ANY
5728 MOV #RG.MSC,R1 ;NOW TEST MISC REG
5729 CLR R0 ;TRY TO CLEAR REGISTER
5730 JSR PC,CKDQSL ;TRY TO LOAD IT
5731 MOV #2,R0 ;TEST STEP-MODE BIT
5732 JSR PC,CKDQSL
5733 MOV #
5734 10,R0 ;TEST TEST-LOOP BIT
5735 JSR PC,CKDQSL
5736 CLR R0
5737 JSR PC,CKDQSL ;CLEAR MISC REG
5738 BR CHKDQL ;DO A LOOP BACK TEST
5739 ;
5740 60$: MOV #RG.SYN,R1 ;1ST REGISTER TO LOAD
5741 62$: JSR PC,CKDQSL
5742 CMP #RG.SYN,R1 ;DID WE JUST CHECK THE SYN REG ?
5743 BNE 64$
5744 DEC R1 ;YES SO SKIP A REG
5745 64$: DEC R1 ;ON TO THE NEXT REG
5746 BPL 62$
5747 RTS PC ;YES
5748 ;
5749 ; LOAD A DQ11 2NDARY REGISTER
5750 ; CALL MOV #DATA,R0
5751 ; MOV #REG,R1
5752 ; JSR PC,CKDQSL
5753 CKDQSL: BIS #DQ.MBM,R1
5754 MOVB R1,5(R4) ;SELECT THE REGISTER
5755 MOV R0,6(R4) ;LOAD THE DATA
5756 CKDQSR: BIS #DQ.MBM,R1
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 31-1
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5757 MOVB R1,5(R4) ;SELECT THE REGISTER
5758 BIC #DQ.MBM,R1
5759 CMP R0,6(R4) ;CHECK TO SEE IF WE LOADED IT
5760 BNE 10$
5761 RTS PC
5762 10$: MOV R0,-(SP) ;SAVE GOOD DATA
5763 MOV 6(R4),-(SP) ;SAVE BAD DATA
5764 MOV R1,-(SP) ;SAVE 2ND REG #
5765 CK11SC <CKEDID!CKEPC!CKEGB>,<Secondary Reg Err>,<SECONDARY REG ERROR>
5766 .ASCIZ \Secondary Reg Err\<377>
5767 .EVEN
5768 RTS PC ;RETURN
5769 .PAGE
5770 ; DISCOVER WHAT THE SPECIAL CHARACTERS ARE IN THE DQ11.
5771 ;
5772 CHKDQL:
5773 003 .IF NE SPCVFY ;CHECK FOR SPECIAL CHARS ONLY IF USED
5774 CLR CHKCHR+CKFLG ;CLEAR WHERE WE COUNT SPECIAL CHARS
5775 MOV R2,-(SP) ;SAVE R2
5776 MOV R3,-(SP) ;SAVE R3 (VECTOR)
5777 MOV R5,-(SP) ;SAVE R5
5778 MOVB #255,CHKXBF+2 ;SOMETHING OTHER THAN SYNC (226)
5779 CLR R3 ;START WITH CHARACTER 0
5780 CKDQLP:
5781 1$: JSR PC,CKDQCL ;CLEAR DQ
5782 MOV #CHKRBF,R5 ;ADDRESS TO LOAD
5783 MOV #<<CHKRBF-CHKXBF>/2>,R1 ;LENGTH TO LOAD
5784 CLR R2 ;DATA TO LOAD
5785 JSR PC,CKLDBF ;LOAD BUFFER
5786 MOV #226*401,CHKXBF ;SYNC CHAR WE USE
5787 MOVB R3,CHKXBF+3 ;PUT CHAR IN XMIT BUFFER
5788 DQREGS SYN,(R4) ;SYNC REG
5789 MOV #226*401,6(R4) ;PUT SYNC CHAR IN REG
5790 DQREGS MSC,(R4) ;MISC REG
5791 MOV #4010,6(R4) ;LOAD MISC REG
5792 DQREGS PTA,(R4) ;PRI XMIT ADDR REG
5793 MOV #CHKXBF,6(R4) ;LOAD XMIT PRI ADDR REG
5794 DQREGS STA,(R4) ;SEC XMIT ADR REG
5795 MOV #CHKXBF,6(R4) ;LOAD XMIT SEC ADDR REG
5796 DQREGS PRA,(R4) ;PRIMARY RECEIVE ADDR REG
5797 MOV #CHKRBF,6(R4) ;LOAD REC ADDR REG PRI
5798 DQREGS SRA,(R4) ;SEC REC ADR REG
5799 MOV #CHKRBF,6(R4) ;LOAD REC ADDR REG SEC
5800 DQREGS PTC,(R4) ;PRI XMIT CC
5801 MOV #-4,6(R4) ;LOAD PRI XMIT CC
5802 DQREGS STC,(R4) ;SEC XMIT CC
5803 MOV #-2,6(R4) ;LOAD SEC XMIT CC
5804 DQREGS PRC,(R4) ;PRI REC CC
5805 MOV #-2,6(R4) ;LOAD PRI REC CC
5806 DQREGS SRC,(R4) ;SEC REC CC
5807 MOV #-2,6(R4) ;LOAD SEC REC CC
5808 CLR R1 ;CLEAR SAVED STATUS
5809 MOV #DQ.RGO!DQ.CIE!DQ.RIE,(R4) ;TELL REC TO GO WITH IE
5810 MOV #DQ.XGO,2(R4) ;TELL XMIT TO GO
5811 CKDQWA: CLR R5 ;FOR TIME-OUT
5812 CLR R0 ;UPON INT R0 WILL GET VECTOR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 31-2
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5813 CLR PS ;LET INT HAPPEN
5814 1$: TST R0 ;SEE IF AN INTERRUPT
5815 BNE 2$ ;BRANCH IF ONE (R0 IS NON 0)
5816 SOB R5,1$ ;TIME OUT
5817 CK11SC <CKEPC!CKEDID>,<Timed Out>,<TIMED OUT WHILE WAITING FOR AN INT>
5818 .ASCIZ \Timed Out\<377>
5819 .EVEN
5820 BR CKDQOT ;DON'T CHK THIS DQ ANY MORE
5821 2$: CMP R0,CHKCHR+CKDV ;SEE IF WE CAME TO THE RIGH VECTOR
5822 BEQ CKDQGI ;BRANCH IF WE DID
5823 CKSERR <CHKCHR+CKDV>,R0,R4 ;SAVE GD,BD,DEV ADR
5824 CK11SC <CKEPC!CKEDID!CKEGB>,<Interrupted to Wrong Vector>,<INTERRUPTED TO WRONG
5825 .ASCIZ \Interrupted to Wrong Vector\<377>
5826 .EVEN
5827 BR CKDQOT ;DON'T CHK ANY MORE OF THIS DQ
5828 CKLDBF: MOV R2,(R5)+ ;PUT DATA IN ADDR
5829 SOB R1,CKLDBF ;FILLED?
5830 RTS PC ;YES.
5831 ;
5832 CKDQGI: MOV (R4),R5 ;GET STATUS
5833 TSTB R5 ;SEE IF DONE YET?
5834 BMI 1$ ;BRANCH IF SO
5835 BIT #DQ.RDS,R5 ;SEE IF SEC INT
5836 BNE 2$ ;BRANCH IF IT IS
5837 BIT #DQ.VCH,R5 ;SEE IF SPECIAL CHAR INT
5838 BNE 3$ ;BRANCH IF SO
5839 CK11SC <CKEDID!CKEPC>,<Illegal Interrupt>,<SOME BIT OTHER THAN SPEC CHAR INT'ED
5840 .ASCIZ \Illegal Interrupt\<377>
5841 .EVEN
5842 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
5843 1$: BIT #DQ.VCH,R5 ;SEE IF SPECIAL CHAR INT
5844 BEQ 5$ ;BRANCH IF NOT
5845 MOV R5,R1 ;SAVE REC STATUS FOR PRINT
5846 BIC #DQ.VCH!DQ.RDP!DQ.CIE,(R4) ;DISMISS INT
5847 BR CKDQWA ;GO WAIT FOR ANOTHER INT
5848 3$: BIC #DQ.VCH,(R4) ;CLEAR FOR EXIT
5849 BR CKDQWA ;GO WAIT FOR ANOTHER INT
5850 5$: BIC #DQ.RDP,(R4) ;
5851 BR CKDQWA ;GO WAIT FOR ANOTHER INT
5852 2$: BIT #DQ.VCH,R1 ;WAS IT A SPECIAL CHAR?
5853 BEQ 6$ ;NO, SO JUST UPDATE PATTERN
5854 BIT #DQ.CHR,R1 ;WAS THERE CAUSE FOR VCH ?
5855 BNE 9$ ;MUST BE NON 0 OR WHY ARE WE HERE
5856 CK11SC <CKEDID!CKEPC>,<Spec Char Code Fld 0>,<SPECIAL CHAR CODE FIELD 0>
5857 .ASCIZ \Spec Char Code Fld 0\
5858 .EVEN
5859 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
5860 9$: BIT #DQ.ETB!DQ.ETX!DQ.ENQ,R1 ;WAS IT INTERESTING SPECIAL CHAR ?
5861 BNE 10$ ;IF SO FIND WHICH
5862 BIS #B15,CHKCHR+CKFLG ;SET FLAG THAT SYNC INTERRUPTS
5863 BR 6$
5864 69$: .WORD B10
5865 .WORD B9
5866 .WORD B8
5867 10$: MOV #4,R5 ;INDEX FOR SPECIAL CHAR TABLE
5868 INC CHKCHR+CKFLG ;COUNT SPECIAL CHARACTER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 31-3
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5869 12$: BIT 69$(R5),R1 ;CHECK FOR SPECIAL CHAR FLAG
5870 BEQ 14$
5871 MOV R3,CHKCHR+CKSPC(R5) ;PUT INTO THE TABLE
5872 14$: SUB #2,R5
5873 BGE 12$ ;LOOK FOR ANOTHER MAYBE
5874 6$: INCB R3 ;NEXT CHAR TO CHECK
5875 BEQ 4$ ;BRANCH IF ALL DONE
5876 BIC #DQ.RDS!DQ.VCH!DQ.CIE!DQ.RIE,(R4) ;
5877 JMP CKDQLP ;
5878 CKDQOT=.
5879 4$: MOV (SP)+,R5
5880 MOV (SP)+,R3
5881 MOV (SP)+,R2
5882 CMPB CHKCHR+CKFLG,#4 ;SHOULD BE NO MORE THAT 4
5883 BLE 15$ ;CHECK IF SO
5884 CK11SC <CKEDID!CKEPC>,<More than 4 Spec Char Det>,<MORE THAN 4 SPEC CHAR WERE D
5885 .ASCIZ \More than 4 Spec Char Det\
5886 .EVEN
5887 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
5888 .IFF
5889 10$: JSR R0,CKTSTR
5890 .ASCIZ \ SKIPPING SPEC CHAR TEST\
5891 .EVEN
5892 MOV #377+<<.+6-10$>/2>,10$ ;SHUT OFF SKIPPING COMMENT
5893 002 .ENDC ; .IF NE SPCVFY
5894 15$: RTS PC ;RETURN
5895 .PAGE
5896 ;ROUTINE TO CLEAR THE ENTIRE DQ
5897 ;
5898 CKDQCL: MOV R0,-(SP)
5899 MOV R1,-(SP)
5900 MOV R2,-(SP)
5901 DQREGS MSC,(R4) ;SELECT MISC REG
5902 MOV #DQ.MC,6(R4) ;MASTER CLEAR
5903 DQREGS MSC,(R4) ;SELECT MISC REG AGAIN
5904 MOV #DQ.MC,6(R4) ;MASTER CLEAR AGAIN
5905 MOV #17,R0 ;CLEAR ALL SEC REG
5906 MOV #B12,R2 ;CLEAR BITS 13+14 IN ERR
5907 1$: MOV R2,4(R4) ;SELECT A SEC REG
5908 CLR 6(R4) ;CLEAR THAT SEC REG
5909 ADD #B8,R2 ;SELECT NEXT SEC REG TO CLEAR
5910 SOB R0,1$ ;ALL SEC CLEARED?
5911 MOV (SP)+,R2 ;RESTORE REGS USED
5912 MOV (SP)+,R1
5913 MOV (SP)+,R0
5914 RTS PC ;RETURN
5915 ;
5916 .IIF NDF CHKBSZ,CHKBSZ=10
5917 CHKXBF: .BLKB CHKBSZ
5918 CHKRBF: .BLKB CHKBSZ
5919 ;
5920 001 .ENDC ;RANGES OVER ENTIRE DQ CHECK (NDF FT.D75)
5921 ;
5922 .IIF DF,FT.D75, RTS PC
5923 000 .ENDC ;NE FTDQ11
5924 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 32
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5926
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 33
C11DMC.MAC 10-AUG-79 16:08 CHECK DQ11 HDW
5928
5929 .SBTTL CHECK DS11 HDW
5930 ;
5931 ;CALL MOV #<VECTOR ADR>,R3
5932 ; MOV #<HDW ADR>,R4
5933 ; MOV #<HDW ADR>,R1
5934 ; JSR PC,CKDS11
5935 ;
5936 .IIF NDF FTDS11,FTDS11=0
5937 001 .IF NE FTDS11
5938 CKDS11:
5939 MOV DS.AUX,R1 ;GET AUX REG TO SEE HOW MANY GROUPS
5940 MOV #DS.AD1,R2 ;FOR CHECKING GROUP NUMBER
5941 MOV #4,R0 ;ALWAYS 1 GROUP IF DS11
5942 1$: BIT R2,R1 ;GROUP EXIST?
5943 BEQ 2$ ;BRANCH IF NO GROUP
5944 ADD #4,R0 ;COUNT 4 LINES FOR EACH GROUP
5945 ASL R2 ;POSITION TO CHECK NEXT GROUP BIT
5946 BNE 1$ ;BRANCH IF WE CAN CHECK ANOTHER
5947 2$: JSR PC,CKTBOC ;PRINT NUMBER OF LINES
5948 CK11SC CKENCL,< Lines>
5949 .ASCIZ \ Lines\
5950 .EVEN
5951 MOV #DS.AUX,R1 ;CHECK THE AUX REG
5952 JSR R5,CHKBIT ;CHECK FOLLOWING BITS
5953 1700 ;BITS TO CHECK
5954 MOV #DS.DVA-2,R1 ;SET TO CHECK LINES
5955 MOV #DS.VEC,CHKCHR+CKDV ;VECTOR TO START AT
5956 MOV 26(R5),CHKCHR+CKPI ;PI LEVEL FOR ALL DS11
5957 MOV R0,R2 ;NUMBER OF LINES TO CHECK
5958 MOV #CHKCHR,R0 ;POINT TO BLOCK FOR MAIN CALL
5959 3$: ADD #2,R1 ;LINE ADR TO CHECK
5960 MOV R1,CHKCHR+CKDA ;MAIN NEEDS THIS INFO
5961 JSR R5,CHKBIT ;CHK RECEIVE STATUS REG
5962 6477 ;BITS TO CHECK
5963 TST (R1)+ ;ADVANCE TO REC DATA REG
5964 JSR R5,CHKBIT ;CHK RECEIVE DATA REG
5965 7777 ;BITS TO CHECK
5966 TST (R1)+ ;ADVANCE TO XMIT STATUS REG
5967 JSR R5,CHKBIT ;CHK XMIT STATUS REG
5968 476 ;BITS TO CHECK
5969 TST (R1)+ ;ADVNACE TO XMIT DATA REG
5970 JSR R5,CHKBIT ;CHK XMIT DATA REG
5971 7777 ;BITS TO CHECK
5972 JSR PC,@14(R5) ;CALL THE MAIN PROGRAM
5973 ADD #20,CHKCHR+CKDV ;ADVANCE VECTOR ADR FOR NEXT LINE
5974 ADD #10,CHKCHR+CKDA ;ADVANCE DEVICE ADR FOR NEXT LINE
5975 SOB R2,3$ ;ALL LINES CHECKED?
5976 MOV #DS.VEC,CHKCHR+CKDV ;SO "CHKDEV" WILL FILL OUT BLOCK
5977 ;
5978 RTS PC ;FINI CHECKING DS11
5979 000 .ENDC ;NE FTDS11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 33-1
C11DMC.MAC 10-AUG-79 16:08 CHECK DTE20 HARDWARE
5981 .SBTTL CHECK DTE20 HARDWARE
5982 ;
5983 ;CALL MOV #<VECTOR ADR>,R3
5984 ; MOV #<HDW ADR>,R4
5985 ; MOV #<HDW ADR>,R1
5986 ; JSR PC,XDTE211
5987 ;
5988 .IIF NDF FTDTE,FTDTE=0
5989 001 .IF NE FTDTE
5990 011500' XDTE211: ;
5991 011500' 010100 MOV R1,R0 ;FROM THE DEVICE ADDRESS
5992 011502' 006200 ASR R0 ;BITS 5 AND 6 GIVE US WHICH ONE IT IS
5993 011504' 006200 ASR R0 ;POSITION TO BITS 2 AND 3 WHICH IS
5994 011506' 006200 ASR R0 ;WHERE THE VECTOR VARIES
5995 011510' 042700 177763 BIC #^C14,R0 ;ISOLATE THEM
5996 011514' 160037 015500' SUB R0,CHKCHR+CKDV ;CORRECT OUR VECTOR ADDRESS
5997 011520' 004537 007574' JSR R5,CHKBIT ;CHECK DLYCNT IN DTE'S RAM
5998 011524' 177777 177777 ; SINCE WE CAN ACCESS ALL THE BITS
5999 011526' 062701 000034 ADD #CSTAT-DLYCNT,R1 ;POINT TO STATUS REGISTER
6000 011532' 012711 000040 MOV #INTRON,(R1) ;ENABLE INTERRUPTS
6001 011536' 032711 000001 BIT #INTSON,(R1) ;DOES DTE AGREE?
6002 011542' 001022 BNE 10$ ;YEP
6003 011544' CK11SC <CKEPC!CKEDID>,<Setting INTRON didn't set INTSON>
6004 011546' 062523 072164 067151 .ASCIZ \Setting INTRON didn't set INTSON\<377>
011554' 020147 047111 051124
011562' 047117 062040 062151
011570' 023556 020164 062563
011576' 020164 047111 051524
011604' 047117 000377
6005 .EVEN
6006 011610' 012711 004000 10$: MOV #INT11S,(R1) ;NOW SEE IF IT WILL INTERRUPT US
6007 011614' 004537 010032' JSR R5,CHKINL
6008 011620' 177777 -1 ;TIME DELAY COUNT
6009 011622' 012711 000010 MOV #INTROF,(R1) ;TRY TO MAKE IT GO AWAY
6010 011626' 032711 000001 BIT #INTSON,(R1) ;WHICH SHOULD TURN THIS OFF
6011 011632' 001423 BEQ 20$ ;OKAY
6012 011634' CK11SC <CKEPC!CKEDID>,<Setting INTROF didn't clear INTSON>
6013 011636' 062523 072164 067151 .ASCIZ \Setting INTROF didn't clear INTSON\<377>
011644' 020147 047111 051124
011652' 043117 062040 062151
011660' 023556 020164 066143
011666' 060545 020162 047111
011674' 051524 047117 000377
6014 .EVEN
6015 011702' 032711 000010 20$: BIT #RM,(R1) ;WE SHOULD BE RESTRICTED
6016 011706' 001016 BNE 30$ ;WE ARE, FINE
6017 011710' CK11SC <CKEPC!CKEDID>,<DTE20 is not restricted>
6018 011712' 052104 031105 020060 .ASCIZ \DTE20 is not restricted\<377>
011720' 071551 067040 072157
011726' 071040 071545 071164
011734' 061551 062564 177544
011742' 000
6019 011744' .EVEN ;
6020 011744' 012741 000100 30$: MOV #DRESET,-(R1) ;REALLY INITIALIZE DTE20
6021 011750' 000207 RTS PC
6022 000 .ENDC ;NE FT.DTE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 33-2
C11DMC.MAC 10-AUG-79 16:08 CHECK DU11 HDW
6024 .SBTTL CHECK DU11 HDW
6025 ;
6026 ;CALL MOV #<VECTOR ADR>,R3
6027 ; MOV #<HDW ADR>,R4
6028 ; MOV #<HDW ADR>,R1
6029 ; JSR PC,XDU11
6030 .IIF NDF FTDU11,FTDU11=0
6031 001 .IF NE FTDU11
6032 XDU11: ;
6033 RTS PC
6034 000 .ENDC ;NE FTDU11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 33-3
C11DMC.MAC 10-AUG-79 16:08 CHECK DUP11 HDW
6036 .SBTTL CHECK DUP11 HDW
6037 ;
6038 ;CALL MOV #<VECTOR ADR>,R3
6039 ; MOV #<HDW ADR>,R4
6040 ; MOV #<HDW ADR>,R1
6041 ; JSR PC,XUP11
6042 .IIF NDF FTDUP1,FTDUP1=0
6043 001 .IF NE FTDUP1
6044 011752' XDUP11: ;
6045 011752' FIELD $$,DUPRIE,DUPDTR ;
6046 011752' 004537 007574' JSR R5,CHKBIT ;TEST THE RECVR CSR
6047 011756' 000576 .WORD DUPSSY!$$ ;
6048 011760' 005721 TST (R1)+ ;UP TO RECVR, BUT IT'S READ ONLY
6049 011762' 005721 TST (R1)+ ;UP TO XMIT CSR
6050 011764' 004537 007574' JSR R5,CHKBIT ;
6051 011770' 036130 .WORD DUPTMC!DUPTM1!DUPTM0!DUPTMI!DUPTIE!DUPTSN!DUPTHD
6052 011772' 005721 TST (R1)+ ;UP TO XMIT DBR
6053 011774' 004537 007574' JSR R5,CHKBIT ;
6054 012000' 003777 .WORD DUPXAB!DUPXEM!DUPXSM!DUPXDB
6055 012002' 010401 MOV R4,R1 ;RESTORE DEVICE ADDRESS
6056 ;(ADD INTERRUPT CHECK)
6057 012004' 000207 RTS PC ;
6058 000 .ENDC ;NE FTDUP1
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 33-4
C11DMC.MAC 10-AUG-79 16:08 CHECK DZ11 HDW
6060 .SBTTL CHECK DZ11 HDW
6061 ;
6062 ;CALL MOV #<VECTOR ADR>,R3
6063 ; MOV #<HDW ADR>,R4
6064 ; MOV #<HDW ADR>,R1
6065 ; JSR PC,XDZ11
6066 .IIF NDF FTDZ11,FTDZ11=0
6067 001 .IF NE FTDZ11
6068 012006' XDZ11: ;
6069 012006' 004537 007574' JSR R5,CHKBIT ;
6070 012012' 040140 .WORD DZ.TIE!DZ.RIE!DZ.SCN
6071 012014' 005721 TST (R1)+ ;
6072 012016' 004537 007574' JSR R5,CHKBIT ;
6073 012022' 000000 .WORD 0 ;
6074 012024' 010401 MOV R4,R1 ;
6075 ;ADD INTERRUPT TEST
6076 012026' 000207 RTS PC ;
6077 000 .ENDC ;NE FTDZ11
6078 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 34
C11DMC.MAC 10-AUG-79 16:08 CHECK DZ11 HDW
6080
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35
C11DMC.MAC 10-AUG-79 16:08 CHECK DZ11 HDW
6082
6083 .SBTTL CHECK KG11 HARDWARE
6084 ;
6085 012030' XKG11: SAVE R3 ;
6086 012032' CHKCHR R4,<#0>,<#0> ;
6087 012052' 005000 CLR R0 ;
6088 012054' 11$: KGLOAD R0 ;
6089 012070' 020064 000002 CMP R0,KGBCC(R4) ;CHECK THAT IT LOADED
6090 012074' 001422 BEQ 12$ ;OK
6091 012076' CKSERR R0,KGBCC(R4),R4 ;GD,BD,ADR
6092 012106' CK11SC <CKEPC!CKEDID!CKEGB>,<Can't load BCC Correctly>,<BCC ERROR>
6093 012110' 060503 023556 020164 .ASCIZ \Can't load BCC Correctly\<377>
012116' 067554 062141 041040
012124' 041503 041440 071157
012132' 062562 072143 074554
012140' 000377
6094 .EVEN ;
6095 012142' 077034 12$: SOB R0,11$ ;
6096 ;
6097 ; CHECK CRC PORTION
6098 ;
6099 012144' 012700 000777 MOV #777,R0 ;FIRST ENTRY FOR CRC
6100 012150' KGLOAD #0 ;CLEAR KG11
6101 012154' 005003 CLR R3 ;CLEAR SOFTWARE COPY
6102 012156' 004737 012234' 20$: JSR PC,70$ ;CALCULATE SOFTWARE BCC
6103 012162' 110064 000004 MOVB R0,KGDATA(R4) ;INCLUDE CHAR IN HDW BCC
6104 012166' 020364 000002 CMP R3,KGBCC(R4) ;
6105 012172' 001415 BEQ 54$ ;
6106 012174' CKSERR R3,KGBCC(R4),R4 ;
6107 012204' CK11SC <CKEPC!CKEGB!CKEDID>,<Incorrect CRC>,<INCORRECT CRC>
6108 012206' 067111 067543 071162 .ASCIZ \Incorrect CRC\<377>
012214' 061545 020164 051103
012222' 177503 000
6109 012226' .EVEN ;
6110 012226' 077025 54$: SOB R0,20$ ;
6111 ;
6112 012230' RESTORE R3 ;
6113 012232' 000207 RTS PC ;
6114 ;
6115 ;SUBROUTINE TO CALCULATE CRC IN R3
6116 ;
6117 012234' 70$: SAVE <R0,R1> ;
6118 012240' 042700 177400 BIC #^C377,R0 ;STRIP EXTRA BITS
6119 012244' 012701 000010 MOV #8.,R1 ;COUNTER
6120 012250' 074003 XOR R0,R3 ;
6121 012252' 012700 120001 MOV #120001,R0 ;
6122 012256' 000241 72$: CLC ;CLEAR CARRY BIT
6123 012260' 006003 ROR R3 ;
6124 012262' 103001 BCC 74$ ;
6125 012264' 074003 XOR R0,R3 ;
6126 012266' 077105 74$: SOB R1,72$ ;
6127 012270' RESTORE <R1,R0> ;
6128 012274' 000207 RTS PC ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-1
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6130 .SBTTL CHECK KMC/DMC HARDWARE
6131 ;
6132 ;CALL MOV #<VECTOR ADR OF KMC11>,R3
6133 ; MOV #<HDW ADR OF KMC11>,R4
6134 ; MOV #<HDW ADR OF KMC11>,R1
6135 ; JSR PC,XKMC11
6136 ;
6137 .IIF NDF FTKMC,FTKMC=0
6138 .IIF NDF FTDMC,FTDMC=0
6139 001 .IF NE FTDMC
6140 012276' XDMC11:
6141 012276' 010546 XKMC11: MOV R5,-(SP) ;SAVE R5
6142 012300' 010446 MOV R4,-(SP) ; AND R4
6143 012302' 010346 MOV R3,-(SP) ; AND R3
6144 012304' 012714 040000 MOV #MD.CLR,(R4) ;INITIALIZE THE KMC11
6145 012310' 013746 001172' MOV MDCSRP,-(SP) ;LOG IN THE DEVICE
6146 012314' 001004 BNE 10$ ;NOT THE FIRST
6147 012316' 012716 001174' MOV #MDCSR,(SP) ;THE FIRST, SET POINTER
6148 012322' 011637 001172' MOV (SP),MDCSRP ;
6149 012326' 010436 10$: MOV R4,@(SP)+ ;ENTER DEVICE CSR INTO STARTUP TABLE
6150 012330' 062737 000002 001172' ADD #2,MDCSRP ;UPDATE TABLE POINTER
6151 012336' 005024 CLR (R4)+ ;CLEAR THE CSRS
6152 012340' 005024 CLR (R4)+ ;
6153 012342' 005024 CLR (R4)+ ;
6154 012344' 005024 CLR (R4)+ ;
6155 012346' 010104 MOV R1,R4 ;
6156 012350' 004537 007574' JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6157 012354' 000377 .WORD 377 ;ALL BITS OF BSEL 0
6158 012356' 005721 TST (R1)+ ;LOOK AT SEL 2
6159 012360' 004537 007574' JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6160 012364' 177777 .WORD ALLBTS ;ALL BITS OF SEL 2
6161 012366' 005721 TST (R1)+ ;LOOK AT SEL 4
6162 012370' 004537 007574' JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6163 012374' 177777 .WORD ALLBTS ;ALL BITS OF SEL 4
6164 012376' 005721 TST (R1)+ ;LOOK AT SEL 6
6165 012400' 004537 007574' JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6166 012404' 177777 .WORD ALLBTS ;ALL BITS OF SEL 6
6167 002 .IF NE FTKMCL
6168 TST MDCODB+2 ;IF WE ARE RETAINING THE CRAM...
6169 BEQ 20$ ; DON'T CHECK INTERRUPTS (CLOBBERS CRAM 0)
6170 001 .ENDC ;NE FTKMCL
6171 ;CREATE A DMC INTERRUPT BY SETTING
6172 ; BUS RQ IN MP MISC BY JAMMING MP INSTRS
6173 012406' 012737 000340 177776 MOV #BR7,PS ;STOP INTERRUPTS
6174 012414' 012714 001000 MOV #MD.RMI,(R4) ;SET ROM I ("JAM INSTRUCTION")
6175 012420' 012764 000600 000006 MOV #600,6(R4) ;600 = "MOVE #200,BRG"
6176 012426' 052714 000400 BIS #MD.SMP,(R4) ;EXECUTE THE INSTRUCTION
6177 012432' 005014 CLR (R4) ;TURN OFF STEP AND ROM I
6178 012434' 012714 001000 MOV #MD.RMI,(R4) ;SET ROM I AGAIN
6179 012440' 012764 061231 000006 MOV #61231,6(R4) ;61231 = "MOVE BRG,MISC" (SETS BUS RQ)
6180 012446' 052714 000400 BIS #MD.SMP,(R4) ;EXECUTE
6181 012452' 005014 CLR (R4) ;TURN OFF ROM I
6182 012454' 004537 010032' JSR R5,CHKINL ;CHECK FOR THE RESULTING INTERRUPT
6183 012460' 177777 .WORD 177777 ;
6184 012462' 012714 040000 MOV #MD.CLR,(R4) ;CLEAR INTERFACE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-2
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6186 ; IF WE HAVE A VALID COPY OF THE MICROCODE, WE CAN TEST
6187 ; THE CRAM. OTHERWISE BYPASS MOST OF THE TESTING.
6188 ;
6189 012466' 20$:
6190 002 .IF NE FTKMC
6191 012466' 012701 000012 MOV #12,R1 ;CHECK ARBITRARY LOCATION IN CRAM
6192 012472' 004737 013334' JSR PC,CKMDRD ;READ FROM IT
6193 012476' 010046 MOV R0,-(SP) ;SAVE DATA READ
6194 012500' 005100 COM R0 ;INVERT IT
6195 012502' 004737 013202' JSR PC,CKMDWR ;WRITE BACK INVERTED DATA
6196 012506' 004737 013334' JSR PC,CKMDRD ;READ IT BACK OUT
6197 012512' 020026 CMP R0,(SP)+ ;CHECK IT AGAINST WHAT WAS WRITTEN
6198 012514' 001034 BNE 22$ ;DATA DIFFERENT, CRAM IS READ/WRITE
6199 ;NOT WRITTEN, CRAM IS A CROM
6200 012516' 023727 001156' 000744' CMP CKDNAM,#N.KMC11 ;DID YOU EXPECT A KMC?
6201 012524' 001026 BNE 21$ ;NO, SKIP CRAM CHECK, NO MSG
6202 012526' 013746 001152' MOV CHKFLG,-(SP) ;PREVENT ERROR FROM BEING SET
6203 012532' CK11SC CKEDID,<DEV IS DMC>
6204 012534' 041411 040522 020115 .ASCIZ " CRAM is not R/W, device is a DMC"
012542' 071551 067040 072157
012550' 051040 053457 020054
012556' 062544 064566 062543
012564' 064440 020163 020141
012572' 046504 000103
6205 .EVEN ;
6206 012576' 012637 001152' MOV (SP)+,CHKFLG ;RESTORE PREVIOUS FLAG WORD
6207 012602' 000137 013136' 21$: JMP CKMDXT ;SKIP CRAM CHECK
6208 ;
6209 012606' 005100 22$: COM R0 ;INVERT DATA BACK
6210 012610' 004737 013202' JSR PC,CKMDWR ;REWRITE AGAIN
6211 012614' 023727 001156' 000650' CMP CKDNAM,#N.DMC11 ;WAS A DMC EXPECTED?
6212 012622' 001027 BNE 23$ ;NO, MUST HAVE BEEN A KMC CALL
6213 012624' 013746 001152' MOV CHKFLG,-(SP) ;PREVENT ERROR FROM BEING SET
6214 012630' CK11SC CKEDID,<dev is a KMC>
6215 012632' 051011 053457 041440 .ASCIZ " R/W CRAM present, device is a KMC"
012640' 040522 020115 071160
012646' 071545 067145 026164
012654' 062040 073145 061551
012662' 020145 071551 060440
012670' 045440 041515 000
6216 012676' .EVEN ;
6217 012676' 012637 001152' MOV (SP)+,CHKFLG ;RESTORE PREVIOUS FLAG WORD
6218 012702' 003 23$: .IF NE FTKMCL
6219 TST MDCODB+2 ;IS MICROCODE IMAGE INVALID?
6220 BNE 24$ ;NOT OBVIOUSLY
6221 JSR PC,CKMDEX ;YES, BE SURE WE CAN CYCLE THE CRAM
6222 JMP CKMDXT ; BUT LEAVE ITS CONTENTS ALONE.
6223 24$:
6224 002 .ENDC ;NE FTKMCL
6225 012702' 005001 CLR R1 ;START AT CRAM ADDRESS 0
6226 012704' 005000 30$: CLR R0 ;DATA IS ZERO
6227 012706' 004737 013230' JSR PC,CKMDCK ;WRITE 0 AND CHECK IT
6228 012712' 005201 INC R1 ;NEXT CRAM LOCATION
6229 012714' 022701 002000 CMP #2000,R1 ;REACHED THE END OF THE CRAM?
6230 012720' 001371 BNE 30$ ;NO, DO THE REST.
6231 012722' 004737 013152' JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-3
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6232 012726' 005001 CLR R1 ;START AT THE BEGINNING AGAIN
6233 012730' 004737 013334' 36$: JSR PC,CKMDRD ;READ A WORD FROM THE CRAM
6234 012734' 005700 TST R0 ;IS IT ZERO?
6235 012736' 001417 BEQ 42$ ;YES, THAT IS OK.
6236 012740' CKSERR <#0>,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6237 012750' CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM CLEAR FAILED>,<CRAM CLEAR FAILED>
6238 012752' 041440 040522 020115 .ASCIZ / CRAM clear failed /
012760' 066143 060545 020162
012766' 060546 066151 062145
012774' 000040
6239 .EVEN
6240 012776' 005201 42$: INC R1 ;NEXT CRAM ADDRESS
6241 013000' 022701 002000 CMP #2000,R1 ;REACHED THE END OF THE CRAM?
6242 013004' 001351 BNE 36$ ;NO, DO THE REST
6243 ;
6244 ; NOW SET EACH CRAM LOCATION TO ITS OWN ADDRESS. THIS CHECKS FOR
6245 ; ADDRESSING FAILURES.
6246 ;
6247 013006' 005001 CLR R1 ;START AT LOCATION ZERO
6248 013010' 010100 50$: MOV R1,R0 ;GET ADDRESS
6249 013012' 006300 ASL R0 ; * 2 (WE ARE PUTTING THE 10-BIT
6250 013014' 006300 ASL R0 ; * 4 CRAM ADDRESS IN THE MIDDLE
6251 013016' 006300 ASL R0 ; * 8 OF THE 16-BIT WORD.)
6252 013020' 004737 013230' JSR PC,CKMDCK ;WRITE ADDRESS INTO CRAM
6253 013024' 005201 INC R1 ;NEXT CRAM ADDRESS
6254 013026' 020127 002000 CMP R1,#2000 ;REACHED END OF CRAM YET?
6255 013032' 103766 BLO 50$ ;NO, GO DO THE REST.
6256 013034' 004737 013152' JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
6257 013040' 005001 CLR R1 ;START AT BEGINNING OF CRAM AGAIN
6258 013042' 004737 013334' 55$: JSR PC,CKMDRD ;READ WORD FROM CRAM
6259 013046' 010102 MOV R1,R2 ;GET CRAM ADDRESS
6260 013050' 006302 ASL R2 ; * 2
6261 013052' 006302 ASL R2 ; * 4
6262 013054' 006302 ASL R2 ; * 8
6263 013056' 020002 CMP R0,R2 ;IS THE CRAM OK?
6264 013060' 001422 BEQ 60$ ;YES
6265 013062' CKSERR R2,R0,R1 ;NO, STUFF GOOD, BAD, AND CRAM ADDRESS
6266 013070' CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM ERROR>,<CRAM ERROR>
6267 013072' 041440 040522 020115 .ASCIZ / CRAM data = address error /
013100' 060544 060564 036440
013106' 060440 062144 062562
013114' 071563 062440 071162
013122' 071157 000040
6268 .EVEN ;
6269 013126' 005201 60$: INC R1 ;NEXT CRAM ADDRESS
6270 013130' 020127 002000 CMP R1,#2000 ;REACHED THE END OF THE CRAM?
6271 013134' 103742 BLO 55$ ;NO, GO DO THE REST
6272 ;
6273 ; NOW LOAD THE APPLICATION CODE INTO THE CRAM, IF REQUESTED.
6274 ;
6275 003 .IF NE FTKMCL
6276 CLR R1 ;START AT THE BEGINNING OF THE CRAM
6277 MOV #MDCODB,R2 ;POINT TO APPLICATION CODE
6278 70$: MOV (R2)+,R0 ;GET WORD TO LOAD
6279 JSR PC,CKMDCK ;WRITE IT INTO THE CRAM
6280 INC R1 ;POINT TO NEXT CRAM LOCATION
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-4
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6281 CMP R2,#MDCODE ;REACHED END OF PROGRAM?
6282 BNE 70$ ;NO, LOAD THE REST
6283 JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
6284 CLR R1 ;START AT BEGINNING OF CRAM AGAIN
6285 MOV #MDCODB,R2 ;POINT TO APPLICATION CODE AGAIN
6286 72$: JSR PC,CKMDRD ;READ A WORD FROM THE CRAM
6287 MOV (R2)+,R3 ;GET WORD THAT SHOULD BE THERE
6288 CMP R3,R0 ;IS IT RIGHT?
6289 BEQ 78$ ;YES
6290 CKSERR R3,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6291 CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM LOAD ERROR>,<CRAM LOAD ERROR>
6292 .ASCIZ / CRAM load error /
6293 .EVEN ;
6294 78$: INC R1 ;NEXT CRAM ADDRESS
6295 CMP R2,#MDCODE ;REACHED END OF APPLICATION PROGRAM?
6296 BLO 72$ ;NO, DO THE REST
6297 002 .ENDC ;NE FTKMCL
6298 001 .ENDC ;NE FTKMC
6299 ;
6300 ; DMC (KMC) CHECK COMPLETED
6301 ;
6302 013136' 012714 040000 CKMDXT: MOV #MD.CLR,(R4) ;BE SURE THE KMC11 IS CLEAR
6303 013142' 012603 MOV (SP)+,R3 ;RESTORE R3
6304 013144' 012604 MOV (SP)+,R4 ; AND R4
6305 013146' 012605 MOV (SP)+,R5 ; AND R5
6306 013150' 000207 RTS PC ;RETURN.
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-5
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6308 002 .IF NE FTKMC ;THESE SUBROUTINES APPLY ONLY TO
6309 ; WRITEABLE CONTROL STORES, I.E., KMC'S
6310 ;
6311 ; SUBROUTINE TO COMPLEMENT THE DATA IN THE KMC11'S CRAM.
6312 ; ENTERING AT CKMDEX WILL CAUSE THE ROUTINE TO EXECUTE TWICE -
6313 ; IF THE KMC11 IS WORKING PROPERLY THIS WILL LEAVE THE CRAM UNCHANGED.
6314 ;
6315 013152' 004717 CKMDEX: JSR PC,(PC) ;CALL REST OF ROUTINE ONCE, RETURN
6316 ; HERE AND FALL INTO IT FOR SECOND PASS
6317 013154' 005001 CLR R1 ;START AT BEGINNING OF CRAM
6318 013156' 004737 013334' 80$: JSR PC,CKMDRD ;READ WORD FROM CRAM
6319 013162' 005100 COM R0 ;COMPLEMENT IT
6320 013164' 004737 013230' JSR PC,CKMDCK ;WRITE IT BACK (AND CHECK IT)
6321 013170' 005201 INC R1 ;NEXT CRAM LOCATION
6322 013172' 020127 002000 CMP R1,#2000 ;REACHED END OF CRAM?
6323 013176' 103767 BLO 80$ ;NO, DO THE REST
6324 013200' 000207 RTS PC ;YES, ALL DONE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 35-6
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6326 ; SUBROUTINE TO WRITE A WORD INTO THE KMC11'S CRAM
6327 ;
6328 ; R0 = WORD TO WRITE
6329 ; R1 = CRAM ADDRESS
6330 ; R4 = POINTER TO KMC11 CSR
6331 ;
6332 013202' 005014 CKMDWR: CLR (R4) ;CLEAR BSEL 1
6333 013204' 010164 000004 MOV R1,4(R4) ;SET ADDRESS INTO SEL 4
6334 013210' 010064 000006 MOV R0,6(R4) ;LOAD DATA INTO SEL 6
6335 013214' 052714 002000 BIS #MD.RMO,(R4) ;SET ROM O
6336 013220' 052714 022000 BIS #MD.RMO!MD.CWR,(R4) ;SET CRAM WRITE ALSO
6337 013224' 005014 CLR (R4) ;CLEAR ROM O AND CRAM WRITE
6338 013226' 000207 RTS PC ;RETURN
6339 ;
6340 ; SUBROUTINE TO WRITE AND VERIFY A WORD IN THE CRAM
6341 ;
6342 ; CALLED AS CKMDWR
6343 ;
6344 013230' 010046 CKMDCK: MOV R0,-(SP) ;SAVE DATA TO BE WRITTEN
6345 013232' 004737 013202' JSR PC,CKMDWR ;WRITE THE WORD
6346 013236' 004737 013334' JSR PC,CKMDRD ;READ IT BACK
6347 013242' 020016 CMP R0,(SP) ;DATA SAME AS WRITTEN?
6348 013244' 001431 BEQ 85$ ;YES.
6349 013246' 010246 MOV R2,-(SP) ;NO, SAVE R2
6350 013250' 016602 000002 MOV 2(SP),R2 ;GET BAD DATA FROM CRAM
6351 013254' CKSERR R2,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6352 013262' CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM DATA ERROR>,<CRAM DATA ERROR>
6353 013264' 041440 040522 020115 .ASCIZ / CRAM data error in write check /
013272' 060544 060564 062440
013300' 071162 071157 064440
013306' 020156 071167 072151
013314' 020145 064143 061545
013322' 020153 000
6354 013326' .EVEN
6355 013326' 012602 MOV (SP)+,R2 ;RESTORE R2
6356 013330' 012600 85$: MOV (SP)+,R0 ;RESTORE DATA
6357 013332' 000207 RTS PC ;RETURN
6358 ;
6359 ; SUBROUTINE TO READ A WORD FROM THE KMC11'S CRAM.
6360 ;
6361 ; R1 = ADDRESS
6362 ; R4 = POINTER TO KMC11 CSR
6363 ;
6364 ; ON RETURN:
6365 ;
6366 ; R0 = DATA FROM CRAM
6367 ;
6368 013334' 005014 CKMDRD: CLR (R4) ;CLEAR BSEL 1
6369 013336' 010164 000004 MOV R1,4(R4) ;SET ADDRESS INTO BSEL 4
6370 013342' 052714 002000 BIS #MD.RMO,(R4) ;SET ROM O
6371 013346' 016400 000006 MOV 6(R4),R0 ;FETCH DATA
6372 013352' 005014 CLR (R4) ;CLEAR ROM O
6373 013354' 000207 RTS PC ;RETURN
6374 001 .ENDC ;NE FTKMC
6375 000 .ENDC ;NE FTDMC
6376 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 36
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6378
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37
C11DMC.MAC 10-AUG-79 16:08 CHECK KMC/DMC HARDWARE
6380
6381 .SBTTL CHECK LP11 HARDWARE
6382 ;
6383 ;CALL MOV #<VECTOR ADR>,R3
6384 ; MOV #<HDW ADR>,R4
6385 ; MOV #<HDW ADR>,R1
6386 ; JSR PC,XLE11
6387 ;
6388 .IIF NDF FTLE11,FTLE11=0
6389 001 .IF NE FTLE11
6390 013356' XLE11: ;
6391 013356' 032714 100000 BIT #LE.ERR,(R4) ;SEE IF DEV READY
6392 013362' 001406 BEQ 1$ ;BRANCH IF RDY
6393 013364' CK11SC <CKEDID!CKENCL>,< Not Rdy>
6394 013366' 047040 072157 051040 .ASCIZ \ Not Rdy\<377>
013374' 074544 000377
6395 .EVEN ;
6396 013400' 004537 007574' 1$: JSR R5,CHKBIT ;CHECK HDW BITS
6397 013404' 000100 .WORD LE.INE
6398 013406' $CKINT ,R4,<LE.INE>,<LE.DNE>
6399 013422' 000207 RTS PC
6400 000 .ENDC ;NE FTLE11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-1
C11DMC.MAC 10-AUG-79 16:08 CHECK LP20 HARDWARE
6402 .SBTTL CHECK LP20 HARDWARE
6403 ;
6404 .IIF NDF FTLP20,FTLP20=0
6405 001 .IF NE FTLP20
6406 013424' XLP11: ;
6407 013424' 012737 000340 177776 MOV #BR7,PS ;
6408 013432' 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;CLEAR CONTROLLER
6409 013436' 062701 000012 ADD #LPRAMD,R1 ;POINT TO RAM DATA BUFFER
6410 013442' 010102 MOV R1,R2 ;
6411 013444' 005722 TST (R2)+ ;POINT TO CHAR BUFFER
6412 013446' 105012 CLRB (R2) ;SET RAM ADDRESS TO ZERO
6413 013450' 005011 10$: CLR (R1) ;CLEAR RAM LOCATION
6414 013452' 105212 INCB (R2) ;UP RAM ADDRESS
6415 013454' 001375 BNE 10$ ; UNTIL IT OVERFLOWS
6416 013456' 010401 MOV R4,R1 ;RECOVER BASE CRS ADDRESS
6417 013460' 005061 000004 CLR LPBSAD(R1) ;SET UP HARMLESS TRANSFER
6418 013464' 012761 177777 000006 MOV #-1,LPBCTR(R1) ;
6419 013472' 004537 007574' JSR R5,CHKBIT ;CHECK R/W ON CSRA
6420 013476' 002176 .WORD LP.DH!LP.IE!LP.XAD!LP.MDS!LP.PEN
6421 ;
6422 013500' 005721 TST (R1)+ ;UP TO CSRB
6423 013502' 004537 007574' JSR R5,CHKBIT ;
6424 013506' 003400 .WORD LP.TS2!LP.TS1!LP.TS0
6425 013510' 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6426 ;
6427 013514' 005721 TST (R1)+ ;CHECK R/W ON BUS ADDRESS
6428 013516' 004537 007574' JSR R5,CHKBIT ;
6429 013522' 177777 .WORD ALLBTS ;
6430 013524' 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6431 ;
6432 013530' 012702 000003 MOV #3,R2 ;NEXT THREE REGISTERS ARE ALIKE
6433 013534' 005721 20$: TST (R1)+ ;BYTE COUNT, PAGE CONT, RAMDATA
6434 013536' 004537 007574' JSR R5,CHKBIT ;
6435 013542' 007777 .WORD 7777 ;
6436 013544' 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6437 013550' 077207 SOB R2,20$ ;
6438 ;
6439 013552' 005721 TST (R1)+ ;CHECK R/W ON CHAR BUFFER
6440 013554' 004537 007574' JSR R5,CHKBIT ;
6441 013560' 177777 .WORD ALLBTS ;
6442 013562' 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6443 ;
6444 013566' 010401 MOV R4,R1 ;RECOVER BASE CSR ADDRESS
6445 013570' 032711 004000 BIT #LP.ONL,(R1) ;PRINTER AVAILABLE?
6446 013574' 001012 BNE 30$ ;YES
6447 013576' CK11SC 0,<NOT READY>
6448 013600' 050114 030062 067040 .ASCIZ "LP20 not ready"
013606' 072157 071040 060545
013614' 074544 000
6449 013620' .EVEN ;
6450 013620' 000207 RTS PC ;
6451 ;
6452 013622' 012761 177777 000006 30$: MOV #-1,LPBCTR(R1) ;SET CHAR COUNT
6453 013630' 010161 000004 MOV R1,LPBSAD(R1) ;SET ADDRESS TO SELF
6454 013634' 062761 000014 000004 ADD #LPCBUF,LPBSAD(R1) ;
6455 013642' 012711 000061 MOV #LP.B17!LP.B16!LP.GO,(R1) ;SET HIGH ADDRESS BITS AND START
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-2
C11DMC.MAC 10-AUG-79 16:08 CHECK LP20 HARDWARE
6456 013646' $CKINT ,R4,LP.IE,LP.IE ;
6457 013662' 000207 RTS PC ;
6458 000 .ENDC ;NE FTLP20
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-3
C11DMC.MAC 10-AUG-79 16:08 CHECK MD11 HDW
6460 .SBTTL CHECK MD11 HDW
6461 ;
6462 ;CALL MOV #<VECTOR ADR>,R3
6463 ; MOV #<HDW ADR>,R4
6464 ; MOV #<HDW ADR>,R1
6465 ; JSR PC,XMD11
6466 .IIF NDF FTMD11,FTMD11=0
6467 001 .IF NE FTMD11
6468 XMD11: ;
6469 RTS PC
6470 000 .ENDC ;NE FTMD11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-4
C11DMC.MAC 10-AUG-79 16:08 DUMMY NULL DEVICE CHECKER
6472 .SBTTL DUMMY NULL DEVICE CHECKER
6473 ;
6474 ;
6475 ;
6476 013664' 000207 XNL11: RTS PC ;DUMMY
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-5
C11DMC.MAC 10-AUG-79 16:08 CHECK PA611P HARDWARE
6478 .SBTTL CHECK PA611P HARDWARE
6479 ;
6480 ;CALL MOV #<VECTOR ADR>,R3
6481 ; MOV #<HDW ADR>,R4
6482 ; MOV #<HDW ADR>,R1
6483 ; JSR PC,XP611
6484 ;
6485 .IIF NDF FTP611,FTP611=0
6486 001 .IF NE FTP611
6487 XP611: ;
6488 RTS PC
6489 000 .ENDC ;NE FTP611
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-6
C11DMC.MAC 10-AUG-79 16:08 CHECK PA611R HARDWARE
6491 .SBTTL CHECK PA611R HARDWARE
6492 ;
6493 ;CALL MOV #<VECTOR ADR>,R3
6494 ; MOV #<HDW ADR>,R4
6495 ; MOV #<HDW ADR>,R1
6496 ; JSR PC,XR611
6497 ;
6498 .IIF NDF FTR611,FTR611=0
6499 001 .IF NE FTR611
6500 XR611: ;
6501 RTS PC
6502 000 .ENDC ;NE FTR611
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-7
C11DMC.MAC 10-AUG-79 16:08 CHECK PP11 HARDWARE
6504 .SBTTL CHECK PP11 HARDWARE
6505 ;
6506 ;CALL MOV #<VECTOR ADR>,R3
6507 ; MOV #<HDW ADR>,R4
6508 ; MOV #<HDW ADR>,R1
6509 ; JSR PC,XPP11
6510 ;
6511 .IIF NDF FTPP11,FTPP11=0
6512 001 .IF NE FTPP11
6513 XPP11:
6514 JSR R5,CHKBIT
6515 PP.INE
6516 $CKINT ,R4,<PP.INE>,<PP.RDY>
6517 RTS PC
6518 000 .ENDC ;NE FTPP11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-8
C11DMC.MAC 10-AUG-79 16:08 CHECK PR11 HARDWARE
6520 .SBTTL CHECK PR11 HARDWARE
6521 ;
6522 ;CALL MOV #<VECTOR ADR>,R3
6523 ; MOV #<HDW ADR>,R4
6524 ; MOV #<HDW ADR>,R1
6525 ; JSR PC,XPR11
6526 ;
6527 .IIF NDF FTPR11,FTPR11=0
6528 001 .IF NE FTPR11
6529 XPR11: ;
6530 JSR R5,CHKBIT ;CHECK HARDWARE BITS
6531 PR.INE
6532 CLR R0 ;FOR TIME OUT
6533 BIS #PR..RE!PR.INE,(R4) ;TELL READER TO DO SOMETHING
6534 ; TO FORCE ANY INTERRUPT COND
6535 1$: BIT #PR.DNE!PR.ERR,(R4) ;SEE IF AN INT CONDITION IS THERE
6536 BNE 2$ ;IF NOT, THEN WAIT FOR ONE.
6537 SOB R0,1$ ;TIME OUT TO CATCH NO RESPONSE
6538 CK11SC <CKEDID!CKEPC>,<Timed Out>,<NO RESPONSE>
6539 .ASCIZ \Timed Out\<377>
6540 .EVEN
6541 BIC #PR.INE,(R4) ;DISABLE INT ENABLE
6542 RTS PC ;EXIT
6543 2$: JSR R5,CHKINL ;FIND INT LEVEL
6544 -1 ;FOR TIME-OUT
6545 BIC #PR.INE,(R4) ;DISABLE INTS
6546 RTS PC
6547 000 .ENDC ;NE FTPR11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-9
C11DMC.MAC 10-AUG-79 16:08 CHECK RH11 HARDWARE
6549 .SBTTL CHECK RH11 HARDWARE
6550 ;
6551 ;CALL MOV #<VECTOR ADR>,R3
6552 ; MOV #<HDW ADR>,R4
6553 ; MOV #<HDW ADR>,R1
6554 ; JSR PC,XRH11
6555 ;
6556 .IIF NDF FTRH11,FTRH11=0
6557 001 .IF NE FTRH11
6558 XRH11: BIS #1,CHKRP+4+0 ;GROSS KLUDGE TO PREVENT CHKDEV FROM
6559 RTS PC ; FINDING WHAT LOOKS LIKE AN RP.
6560 ; (THE DEVICE REGISTERS OVERLAP)
6561 000 .ENDC ;NE FTRH11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-10
C11DMC.MAC 10-AUG-79 16:08 CHECK TC11 HARDWARE
6563 .SBTTL CHECK TC11 HARDWARE
6564 ;
6565 ;CALL MOV #<VECTOR ADR>,R3
6566 ; MOV #<HDW ADR>,R4
6567 ; MOV #<HDW ADR>,R1
6568 ; JSR PC,XTC11
6569 ;
6570 .IIF NDF FTTC11,FTTC11=0
6571 001 .IF NE FTTC11
6572 XTC11: ;
6573 002 .IF NDF,FT.D75
6574 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6575 TC.D17!TC.D16
6576 TST (R1)+ ;ADVANCE TO COMMAND REGISTER
6577 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6578 TC..MM!TC..DI!TC.REV!TC.US7!TC.INE!TC.A17!TC.A16
6579 TST (R1)+ ;ADVANCE TO WORD COUNT REG
6580 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6581 -1
6582 TST (R1)+ ;ADVANCE TO BUS ADDR REG
6583 JSR R5,CHKBIT ;TEST THE FOLLOWING BITS
6584 -1
6585 TST (R1)+ ;ADVANCE TO DATA REGISTER
6586 JSR R5,CHKBIT ;CHECK FOLLOWING BITS
6587 -1
6588 MOV R4,R1 ;SET UP ADR FOR INT CHK
6589 TST (R1)+ ;ADVANCE TO COMMAND REG
6590 MOV R1,R2 ;SET UP FOR INT CHK
6591 $CKINT ,,<TC.INE>,<TC.RDY>
6592 001 .ENDC ;IF NDF FT.D75
6593 RTS PC
6594 000 .ENDC ;NE FTTC11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-11
C11DMC.MAC 10-AUG-79 16:08 CHECK TM11 HARDWARE
6596 .SBTTL CHECK TM11 HARDWARE
6597 ;
6598 ;CALL MOV #<VECTOR ADR>,R3
6599 ; MOV #<HDW ADR>,R4
6600 ; MOV #<HDW ADR>,R1
6601 ; JSR PC,XTM11
6602 ;
6603 .IIF NDF FTTM11,FTTM11=0
6604 001 .IF NE FTTM11
6605 XTM11: ;
6606 RTS PC
6607 000 .ENDC ;NE FTTM11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 37-12
C11DMC.MAC 10-AUG-79 16:08 NULL DIAGNOSTIC
6609 .SBTTL NULL DIAGNOSTIC
6610 ;
6611 ;
6612 ;
6613 013666' X.....: ;
6614 013666' 004037 014000' JSR R0,CKTSTR ;
6615 013672' 020073 067151 062564 .ASCIZ "; integrity not tested"
013700' 071147 072151 020171
013706' 067556 020164 062564
013714' 072163 062145 000
6616 013722' .EVEN ;
6617 013722' 012737 177776 001154' MOV #177776,CKDEVN ;SET COUNT TO PREVENT MORE TYPEOUTS
6618 013730' 000207 RTS PC ;
6619 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 38
C11DMC.MAC 10-AUG-79 16:08 NULL DIAGNOSTIC
6621
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39
C11DMC.MAC 10-AUG-79 16:08 NULL DIAGNOSTIC
6623
6624 .SBTTL TTY SUPPORT FOR TYPE OUTS
6625 ;
6626 013732' 000000 CKTRPT: .WORD 0 ;REPORT DESTINATION DEVICE
6627 ; B15 - CTY
6628 ; B7 - REMOTE DEVICE
6629 ;
6630 ; TYPE THE MESSAGE STRING POINTED TO BY R0
6631 ;
6632 ; CALL JSR PC,CKTTXT ;R0 CONTAINS ADDR OF TXT
6633 ; ON EXIT R0 POINTS TO THE EVEN LOCATION FOLLOWING THE TEXT
6634 ;
6635 .ENABL LSB
6636 013734' CKTTXT: SAVE <R1>
6637 013736' 112001 10$: MOVB (R0)+,R1 ;GET THE NEXT CHARACTER
6638 013740' 001403 BEQ 20$ ;BRANCH IF END (NULL)
6639 013742' 004737 014074' JSR PC,CKTCHR ;TYPE CHAR
6640 013746' 000773 BR 10$ ;GET NEXT CHAR
6641 ;
6642 013750' 005200 20$: INC R0 ;
6643 013752' 042700 000001 BIC #B0,R0 ;POINT TO EVEN LOC
6644 013756' 25$: RESTORE <R1>
6645 013760' 000207 RTS PC ;RETURN TO CALLER
6646 ;
6647 ; TYPE A CARRIAGE RETURN AND LINE FEED
6648 ;
6649 ; CALL JSR PC,CKCRLF
6650 ;
6651 013762' 004037 014000' CKCRLF: JSR R0,CKTSTR
6652 013766' 005015 000 .ASCIZ <15><12>
6653 013772' .EVEN
6654 013772' 000207 RTS PC
6655 ;
6656 ; TYPE A STRING PRECEEDED BY A CR/LF
6657 ;
6658 ; CALL JSR R0,CKTCRL
6659 ; .ASCIZ \TEXT\
6660 ; .EVEN
6661 ;
6662 013774' 004737 013762' CKTCRL: JSR PC,CKCRLF ;FIRST TYPE A CR/LF
6663 ;
6664 ; TYPE A MESSAGE ON THE CTY
6665 ; CALL JSR R0,CKTSTR ;CALL TYPE ROUTINE
6666 ; .ASCIZ \TEXT\
6667 ; .EVEN
6668 ;
6669 014000' 004737 013734' CKTSTR: JSR PC,CKTTXT ;GO TYPE STRING
6670 014004' 000200 RTS R0
6671 ;
6672 ;TYPE A BLANK AND THE OCTAL CONTENTS OF R0
6673 ;
6674 ; SIMILIAR TO CKTOCT
6675 ;
6676 014006' CKTBOC: SAVE <R1>
6677 014010' 012701 000040 MOV #040,R1
6678 014014' 004737 014074' JSR PC,CKTCHR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-1
C11DMC.MAC 10-AUG-79 16:08 TTY SUPPORT FOR TYPE OUTS
6679 014020' 000401 BR 30$
6680 ;
6681 ; TYPE THE OCTAL CONTENTS OF R0
6682 ;
6683 ; CALL JSR PC,CKTOCT ;WITH ARG IN R0
6684 ;
6685 014022' CKTOCT: SAVE <R1>
6686 014024' 30$: SAVE <R0>
6687 014026' 004737 014040' JSR PC,50$
6688 014032' 40$: RESTORE <R0>
6689 014034' RESTORE <R1>
6690 014036' 000207 RTS PC
6691 ;
6692 ;RECURSIVE BINARY TO ASCIC CONVERSION
6693 ; PUSHES CURRENT VALUE IN R0 ONTO STACK, THEN DIVIDES BY 8 -
6694 ; IF THE QUOTIENT IS NOT ZERO IT CALLS ITSELF, HENCE INTERLEAVING
6695 ; INTERMEDIATE VALUES AND RETURN ADDRESSES - WHEN THE QUOTIENT
6696 ; BECOMES ZERO, INTERMEDIATE VALUES ARE POPPED, AND THE LEAST
6697 ; SIGNIFICANT VALUES ARE PRINTED IN TURN, WITH RETURN FALLING
6698 ; BACK INTO THE PRINT ROUTINE - NOTICE THAT LEADING ZEROS ARE
6699 ; AUTOMATICALLY SUPPRESSED, EXCEPT THE LONE ZERO OF A ZERO WORD
6700 ;
6701 014040' 50$: SAVE <R0> ;STUFF CURRENT VALUE
6702 014042' 006000 ROR R0 ;DIVIDE BY EIGHT
6703 014044' 006000 ROR R0 ;
6704 014046' 006000 ROR R0 ;
6705 014050' 042700 160000 BIC #160000,R0 ;CLEAR SPURIOUS CARRIES IN
6706 014054' 001402 BEQ 60$ ;SKIP TO PRINT WHEN QUOTIENT ZERO
6707 014056' 004737 014040' JSR PC,50$ ; ELSE CALL SELF
6708 014062' 60$: RESTORE <R1> ;POP INTERMEDIATE VALUE
6709 014064' 042701 177770 BIC #^C7,R1 ;SAVE LSD
6710 014070' 052701 000060 BIS #60,R1 ;SET BITS FOR ASCII CHARACTER
6711 ; AND DROP INTO CHARACTER PRINT
6712 ;
6713 ; TYPE THE SINGLE CHARACTER IN R1
6714 ;
6715 ; CALL JSR PC,CKTCHR ;WITH CHAR IN R1
6716 ;
6717 014074' 120127 000040 CKTCHR: CMPB R1,#40 ;DOES THIS NEED FILLER ?
6718 014100' 103015 BHIS 80$ ;
6719 014102' 120127 000011 CMPB R1,#11 ;IS CHAR A TAB (11)
6720 014106' 001005 BNE 70$ ;BRANCH IF NOT A TAB
6721 014110' 004037 014000' JSR R0,CKTSTR ;GIVE SPACES FOR IT
6722 014114' 040 040 040 .BYTE 40,40,40,0 ;SUBSTITUTE SPACES FOR TAB
014117' 000
6723 014120' 000207 RTS PC ;
6724 ;
6725 014122' 004737 014126' 70$: JSR PC,75$ ;TYPE CHAR FIRST THEN PAD IT WITH 4 NULLS
6726 014126' 004737 014134' 75$: JSR PC,80$ ;
6727 014132' 005001 CLR R1 ;
6728 014134' 005737 013732' 80$: TST CKTRPT ;CTY OUTPUT REPORT DEVICE?
6729 014140' 100005 BPL 83$ ;NO
6730 014142' 105737 177564 81$: TSTB CTOSTS ;YES, TEST FOR STILL BUSY
6731 014146' 100375 BPL 81$ ;
6732 014150' 110137 177566 MOVB R1,CTOCHR ;TYPE CHAR
6733 014154' 105737 013732' 83$: TSTB CKTRPT ;REMOTE DEVICE RECEIVING REPORT?
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-2
C11DMC.MAC 10-AUG-79 16:08 TTY SUPPORT FOR TYPE OUTS
6734 014160' 100002 BPL 86$ ;NO
6735 014162' 004737 014412' JSR PC,CKTREM ;YES, REPORT REMOTELY
6736 014166' 000207 86$: RTS PC ;
6737 ;
6738 ; BINARY TO DECIMAL ASCII CONVERSION AND OUTPUT
6739 ;
6740 014170' CKTDEC: SAVE <R0,R1,R2> ;
6741 014176' 012702 014264' MOV #125$,R2 ;SET DIVISOR POINTER
6742 014202' 005001 101$: CLR R1 ;CLEAR QUOTIENT COUNTER
6743 014204' 005742 103$: TST -(R2) ;BACK DOWN INTO ARRAY
6744 014206' 001414 BEQ 111$ ;DONE ALL BUT UNITS
6745 014210' 005201 107$: INC R1 ;UP QUOTIENT
6746 014212' 161200 SUB (R2),R0 ;SUBTRACT CURRENT 10**N
6747 014214' 002375 BGE 107$ ;NOT NEGATIVE YET, LOOP AROUND
6748 014216' 061200 ADD (R2),R0 ;WENT TOO FAR, GO BACK ONE
6749 014220' 005301 DEC R1 ;COUNT BACK QUOTIENT
6750 014222' 001770 BEQ 103$ ;IF QUOTIENT IS ZERO, SUPPRESS IT
6751 014224' 052701 000060 BIS #'0,R1 ;CONVERT QUOTIENT DIGIT TO ASCII
6752 014230' 004737 014074' JSR PC,CKTCHR ;TYPE DIGIT
6753 014234' 005712 TST (R2) ;DONE TO LSD?
6754 014236' 001361 BNE 101$ ;NO
6755 014240' 111$: RESTORE <R2,R1,R0> ;RESTORE AND RETURN
6756 014246' 000207 RTS PC ;
6757 014250' 000000 000001 000012 124$: .WORD 0,1.,10.,100.,1000.,10000. ;DECIMAL ORDERS OF MAGNITUDE
014256' 000144 001750 023420
6758 014264' 125$: ;125$ **ENDS** THE ARRAY
6759 ;
6760 ; GET A SINGLE CHAR FROM THE KEYBOARD
6761 ; R1 WILL HAVE THE SEVEN BIT CHAR INPUT, OR
6762 ; WILL HAVE -1 IF THE ROUTINE HAD TO WAIT MORE
6763 ; THAN 30 SECONDS FOR A RESPONSE
6764 ; IF THERE IS NO CTY, THE RETURNED CHAR WILL BE "N" (DEFAULT "NO")
6765 ; CALL JSR PC,CKGCHR
6766 ;
6767 014264' 005737 013732' CKGCHR: TST CKTRPT ;KB EXIST?
6768 014270' 100030 BPL 96$ ;NO, DON'T LOOK FOR A CHARACTER
6769 014272' SAVE <R0,R2> ;YES, ENTER INPUT WAIT
6770 014276' 012702 000764 MOV #500.,R2 ;SET TIMEOUT COUNTERS
6771 014302' 005000 CLR R0 ;
6772 014304' 012701 177777 MOV #-1,R1 ;ASSUME NO CHARACTER WILL BE RECEIVED
6773 014310' 005737 177562 TST CTICHR ;CLEAR BUFFER
6774 014314' 077001 90$: SOB R0,90$ ;THIS TAKES ABOUT 1/15 SECOND TO FALL THROUGH
6775 014316' 005302 DEC R2 ;DO IT ENOUGH TIMES TO GET TO 30-60 SECONDS
6776 014320' 001411 BEQ 95$ ;NO INPUT WAS SEEN, RETURN WITH DEFAULT
6777 014322' 105737 177560 TSTB CTISTS ;LOOK FOR CHAR
6778 014326' 100372 BPL 90$ ;NOT THERE YET
6779 014330' 113701 177562 MOVB CTICHR,R1 ;FINALLY GOT ONE, GRAB IT
6780 014334' 042701 177600 BIC #^C177,R1 ;KEEP ONLY INTERESTING BITS
6781 014340' 004737 014074' JSR PC,CKTCHR ;TYPE IT BACK TO HIM (ECHO)
6782 014344' 95$: RESTORE <R2,R0> ;
6783 014350' 000207 RTS PC ;
6784 ;
6785 014352' 012701 000116 96$: MOV #'N,R1 ;NO CTY, RETURN "NO" FOR ANSWER
6786 014356' 000207 RTS PC ;
6787 ;
6788 ; GET A CHARACTER AND RETURN Z-BIT SET IF IT IS A "Y" (CASE INSENSITIVE) -
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-3
C11DMC.MAC 10-AUG-79 16:08 TTY SUPPORT FOR TYPE OUTS
6789 ; RETURN WITH C-BIT SET IF NO CHARACTER WAS RECEIVED
6790 ;
6791 014360' 004737 014264' CKGYES: JSR PC,CKGCHR ;GET ANY CHARACTER
6792 014364' 120127 000040 CMPB R1,#40 ;TEST FOR IGNORED OR UNPRINTABLE
6793 014370' 002406 BLT 97$ ;NO CHARACTER
6794 014372' 052701 000040 BIS #40,R1 ;FORCE LOWER CASE FOR COMPARISON
6795 014376' 120127 000171 CMPB R1,#'Y!40 ;IS IT A "Y"?
6796 014402' 000241 CLC ;RETURN Z-BIT FOR CALLER TO BRANCH ON
6797 014404' 000207 RTS PC ;
6798 014406' 000261 97$: SEC ;NO REASONABLE CHARACTER TYPED
6799 014410' 000207 RTS PC ;
6800 .DSABL LSB
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-4
C11DMC.MAC 10-AUG-79 16:08 REMOTE OUTPUT HANDLER
6802 .SBTTL REMOTE OUTPUT HANDLER
6803 ;
6804 014412' CKTREM: ;
6805 ; THIS ROUTINE WILL TAKE THE OUTPUT DIRECTED
6806 ; TO THE CTY AND SEND IT OVER A BUFFERED
6807 ; LINK TO BE OUTPUT ON A REMOTE DEVICE
6808 ;
6809 ; IF THE TRANSFER IS BUFFERED, RECEIPT OF A -1 BYTE
6810 ; SHOULD FORCE THE TRANSMISSION OF THE PARTIALLY FILLED
6811 ; BUFFER TO ENSURE THE UP TO DATE REPORTING OF VITAL
6812 ; MESSAGES (DEATH, DISEASE, FAMINE, ETC.)
6813 ;
6814 014412' 010546 MOV R5,-(SP) ;
6815 014414' 105037 013732' CLRB CKTRPT ;PREVENT ERROR LOOP IN THIS ROUTINE
6816 014420' 010046 MOV R0,-(SP) ;
6817 014422' 013700 014754' MOV CK.PTR,R0 ;PICK UP BUFFER FILL POINTER
6818 014426' 120127 177777 CMPB R1,#-1 ;IF CHARACTER IS -1,
6819 014432' 001003 BNE 5$ ; (NOT)
6820 014434' 004737 014536' JSR PC,CKBFSH ;WRITE OUT BUFFER
6821 014440' 000426 BR 100$ ;AND QUIT (DON'T STORE THE -1)
6822 014442' 020127 000015 5$: CMP R1,#15 ;IF CHARACTER IS <CR>,
6823 014446' 001003 BNE 10$ ; (NOT)
6824 014450' 005237 014752' INC CK.BFG ;SET FLAG
6825 014454' 000412 BR 30$ ;AND STORE IN BUFFER
6826 014456' 020127 000012 10$: CMP R1,#12 ;IF CHARACTER IS <LF>,
6827 014462' 001005 BNE 20$ ; (NOT)
6828 014464' 005737 014752' TST CK.BFG ;AND LAST CHAR WAS <CR>,
6829 014470' 001402 BEQ 20$ ; (NOT)
6830 014472' 004737 014536' JSR PC,CKBFSH ;WRITE OUT BUFFER
6831
6832 014476' 005037 014752' 20$: CLR CK.BFG ;CLEAR <CR> FLAG
6833 014502' 110120 30$: MOVB R1,(R0)+ ;STORE CHAR IN BUFFER
6834 014504' 020027 014751' CMP R0,#CK.BFN ;IF AT END OF BUFFER,
6835 014510' 001002 BNE 100$ ; (NOT)
6836 014512' 004737 014536' JSR PC,CKBFSH ;WRITE OUT BUFFER
6837 014516' 010037 014754' 100$: MOV R0,CK.PTR ;REFRESH BUFFER FILL POINTER
6838 014522' 012600 MOV (SP)+,R0 ;
6839 014524' 112737 177777 013732' MOVB #-1,CKTRPT ;RESET "REMOTE REPORTING" FLAG
6840 014532' 012605 MOV (SP)+,R5 ;
6841 014534' 000207 RTS PC ;RETURN TO CALLER
6842
6843
6844 ; ROUTINE TO WRITE OUT A BUFFER
6845 ;
6846 014536' 010146 CKBFSH: MOV R1,-(SP) ;
6847 014540' 010246 MOV R2,-(SP) ;
6848 014542' 010637 001166' MOV SP,CK.OSP ;SAVE OUR STACK POINTER
6849 014546' 013706 001164' MOV CK.CSP,SP ;PICK UP CALLER'S STACK
6850 014552' 010002 MOV R0,R2 ;CALCULATE
6851 014554' 162702 014631' SUB #CK.BUF,R2 ; BUFFER LENGTH
6852 014560' 005202 INC R2 ; PLUS ONE FOR OPCODE
6853 014562' 012746 014630' MOV #CK.COD,-(SP) ;ADDRESS MESSAGE START
6854 014566' 013701 001162' MOV CK.DMC,R1 ;PICK UP DMC CSR ADDRESS
6855 014572' 013700 001160' MOV CK.CAL,R0 ;CALL THE
6856 014576' 062700 000000G ADD #SNDDRV,R0 ; DMC SEND
6857 014602' 162700 016032' SUB #BT3STR,R0 ; ROUTINE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-5
C11DMC.MAC 10-AUG-79 16:08 REMOTE OUTPUT HANDLER
6858 014606' 004710 JSR PC,(R0) ; IN LOADER
6859 014610' 005726 TST (SP)+ ;GET RID OF BUFFER ADDRESS
6860 014612' 013706 001166' MOV CK.OSP,SP ;RESTORE OUR STACK
6861 014616' 012602 MOV (SP)+,R2 ;
6862 014620' 012601 MOV (SP)+,R1 ;
6863 014622' 012700 014631' MOV #CK.BUF,R0 ;RESET FILL POINTER TO START OF BUFFER
6864 014626' 000207 RTS PC
6865
6866 014630' 026 CK.COD: .BYTE 22. ;MOP OP CODE
6867 014631' 000120 CK.BUF: .BLKB 80. ;BUFFER
6868 014751' 000 CK.BFN: .BYTE 0 ; END OF BUFFER (1 BYTE SAFETY PAD)
6869 .EVEN ;
6870 014752' 000000 CK.BFG: .WORD 0 ;FLAG WORD
6871 014754' 014631' CK.PTR: .WORD CK.BUF ;BUFFER FILL POINTER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 39-6
C11DMC.MAC 10-AUG-79 16:08 UNEXPECTED BUS TRAP HANDLER
6873 .SBTTL UNEXPECTED BUS TRAP HANDLER
6874 ;
6875 014756' CKBUST: CK11SC <CKEDID>,<Bus error trap>
6876 014760' 072502 020163 071105 .ASCIZ \Bus Error trap from\
014766' 067562 020162 071164
014774' 070141 063040 067562
015002' 000155
6877 .EVEN ;
6878 015004' 011600 MOV (SP),R0 ;GET PC OF NEXT INST
6879 015006' 162700 000002 SUB #2,R0 ;MAKE PC WITHIN BAD INST
6880 015012' 004737 014006' JSR PC,CKTBOC ;PRINT THE PC WHERE WE WERE DONE IN
6881 ;;;; JMP ? ;FATAL BUS ERROR
6882 015016' 000000 20$: HALT ;SOMEDAY WE MAY HAVE A REAL ABORT ROUTINE
6883 015020' 000776 BR 20$ ; BUT FOR NOW, WE JUST HANG
6884 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 40
C11DMC.MAC 10-AUG-79 16:08 UNEXPECTED BUS TRAP HANDLER
6886
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41
C11DMC.MAC 10-AUG-79 16:08 UNEXPECTED BUS TRAP HANDLER
6888
6889 .SBTTL CK11SC/TRAP INSTRUCTION HANDLER
6890 ;
6891 ; TRAP INSTRUCTION HANDLER - WE GET HERE ON ERROR IN CHK11
6892 ;
6893 ; AT HALT TIME R0 CONTAINS ADDRESS OF TRAP
6894 ;
6895 015022' 010046 CHKERR: MOV R0,-(SP) ;SAVE A WORKING REGISTER
6896 015024' 016646 000002 MOV 2(SP),-(SP) ;GET THE ADDRESS OF
6897 015030' 162716 000002 SUB #2,(SP) ; THE TRAP INSTRUCTION
6898 015034' 013646 MOV @(SP)+,-(SP) ;REPLACE THE ADDRESS WITH THE INSTR
6899 015036' 032716 000010 BIT #CKEDID,(SP) ;PRINT DEVICE ID+REG MSG?
6900 015042' 001405 BEQ 11$ ;NO
6901 015044' 052737 000001 001152' BIS #CKFERR,CHKFLG ;YES, REMEMBER WE HAD AN ERROR
6902 015052' 004737 007726' JSR PC,CKDIDT ;
6903 015056' 032716 000002 11$: BIT #CKEPC,(SP) ;TYPE PC MESSAGE?
6904 015062' 001421 BEQ 14$ ;NO
6905 015064' 004037 013774' JSR R0,CKTCRL ;YES
6906 015070' 020011 071105 067562 .ASCIZ \ Error at PC\
015076' 020162 072141 050040
015104' 000103
6907 .EVEN ;
6908 015106' 052737 000001 001152' BIS #CKFERR,CHKFLG ;REMEMBER WE HAD AN ERROR
6909 015114' 016600 000004 MOV 4(SP),R0 ;GET ADDRESS
6910 015120' 005740 TST -(R0) ; OF INSTRUCTION
6911 015122' 004737 014006' JSR PC,CKTBOC ;PRINT SPACE AND ADDRESS
6912 015126' 032716 000024 14$: BIT #CKEMSG!CKEMSE,(SP);ANY MSG TO DO?
6913 015132' 001434 BEQ 36$ ;NO
6914 ;
6915 015134' 032716 000040 BIT #CKENCL,(SP) ;YES, SUPPRESS CR/LF?
6916 015140' 001002 BNE 20$ ;YES
6917 015142' 004737 013762' JSR PC,CKCRLF ;NO, DO CR/LF
6918 015146' 032716 000110 20$: BIT #CKEDID!CKEGB,(SP);DETAIL FORMAT SPACES?
6919 015152' 001404 BEQ 24$ ;NO
6920 015154' 004037 014000' JSR R0,CKTSTR ;YES
6921 015160' 004411 000 .ASCIZ " "
6922 015164' .EVEN ;
6923 015164' 016600 000004 24$: MOV 4(SP),R0 ;GET MSG ADDRESS
6924 015170' 032716 000020 BIT #CKEMSE,(SP) ;INDIRECT?
6925 015174' 001401 BEQ 29$ ;NO, INLINE
6926 015176' 011000 MOV (R0),R0 ;YES, GET ACTUAL ADDRESS
6927 015200' 004737 013734' 29$: JSR PC,CKTTXT ;TYPE OUT MSG
6928 015204' 062766 000002 000004 ADD #2,4(SP) ;UPDATE RETURN ADDRESS
6929 015212' 032716 000004 BIT #CKEMSG,(SP) ;WAS MSG INLINE?
6930 015216' 001402 BEQ 36$ ;NO
6931 015220' 010066 000004 MOV R0,4(SP) ;YES, REPLACE RETURN ADDRESS
6932 015224' 032716 000100 36$: BIT #CKEGB,(SP) ;SEE IF GOOD BAD PRINT OUT
6933 015230' 001454 BEQ 40$ ;BRANCH IF NOT THIS
6934 015232' 004037 013774' JSR R0,CKTCRL ;
6935 015236' 004411 062101 027562 .ASCIZ \ Adr/Reg =\
015244' 062522 020147 000075
6936 .EVEN ;
6937 015252' 016600 000010 MOV 10(SP),R0 ;GET ADR OFF THE STACK
6938 015256' 004737 014006' JSR PC,CKTBOC ;PRINT ADR
6939 015262' 004037 014000' JSR R0,CKTSTR ;
6940 015266' 020040 042107 036440 .ASCIZ \ GD =\
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-1
C11DMC.MAC 10-AUG-79 16:08 CK11SC/TRAP INSTRUCTION HANDLER
015274' 000
6941 015276' .EVEN
6942 015276' 016600 000014 MOV 14(SP),R0 ;GET "GOOD"
6943 015302' 004737 014006' JSR PC,CKTBOC ;PRINT IT
6944 015306' 004037 014000' JSR R0,CKTSTR ;
6945 015312' 020040 042102 036440 .ASCIZ \ BD =\
015320' 000
6946 015322' .EVEN
6947 015322' 016600 000012 MOV 12(SP),R0 ;PRINT BAD STUFF
6948 015326' 004737 014006' JSR PC,CKTBOC ;PRINT BAD
6949 015332' 004037 014000' JSR R0,CKTSTR ;
6950 015336' 020040 047530 020122 .ASCIZ \ XOR =\
015344' 000075
6951 .EVEN
6952 015346' 016646 000014 MOV 14(SP),-(SP) ;GET GOOD
6953 015352' 074016 XOR R0,(SP) ;LEAVE ONLY QUESTIONABLE BITS
6954 015354' 012600 MOV (SP)+,R0 ;PRINT THEM
6955 015356' 004737 014006' JSR PC,CKTBOC ;
6956 015362' 032716 000001 40$: BIT #CKEFAT,(SP) ;FATAL ERROR? HALT REQUIRED?
6957 015366' 001426 BEQ 50$ ;NO
6958 015370' 052737 000001 001152' BIS #CKFERR,CHKFLG ;YES, NOTE THAT WE HAD AN ERROR
6959 015376' 004037 013774' JSR R0,CKTCRL ;
6960 015402' 004411 060506 060564 .ASCIZ \ Fatal Error\<377>
015410' 020154 071105 067562
015416' 177562 000
6961 015422' .EVEN
6962 015422' 013700 015474' MOV CKSPCD,R0 ;PUT STOPCODE IN R0, 0 IS NOT TO BE DISPLAYED
6963 015426' 001401 BEQ 45$ ;IF 0
6964 015430' 000000 HALT ;STOP CODE IN R0, PRESS CONTINUE
6965 ; GIVES ADR WE CAME FROM
6966 015432' 016600 000004 45$: MOV 4(SP),R0 ;ADDRESS OF RETURN FROM TRAP IN R0
6967 015436' 000000 HALT ;FATAL ERROR - R0 CONTAINS ERROR ADDRESS
6968 015440' 000137 001230' JMP CHK.11 ;IF CONTINUE DO PROGRAM AGAIN.
6969 015444' 032726 000100 50$: BIT #CKEGB,(SP)+ ;WAS THERE A GD-BD PRINT? (POP SAVED INSTUCTION)
6970 015450' 001002 BNE 55$ ;YES, CLEAR STACK
6971 015452' 012600 MOV (SP)+,R0 ;
6972 015454' 000002 RTI ; AND EXIT
6973 ;
6974 015456' 012600 55$: MOV (SP)+,R0 ;RESTORE WORKING REGISTER, CLEAN STACK
6975 015460' 012666 000004 MOV (SP)+,4(SP) ;PC
6976 015464' 012666 000004 MOV (SP)+,4(SP) ;PS
6977 015470' 005726 TST (SP)+ ;CLEAN THE STACK
6978 015472' 000002 RTI ; THEN EXIT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-2
C11DMC.MAC 10-AUG-79 16:08 CK11SC/TRAP INSTRUCTION HANDLER
6980 015474' 000000 CKSPCD: .WORD 0 ;CONTAINS STOPCODE ON FATAL ERROR
6981 ;
6982 015476' CHKCHR:
6983 ;
6984 000000 CKDA = .-CHKCHR ;DEVICE ADDRESS OFFSET
6985 015476' 000001 .BLKW 1
6986 ;
6987 000002 CKDV = .-CHKCHR ;DEVICE VECTOR OFFSET
6988 015500' 000001 .BLKW 1
6989 ;
6990 000004 CKPI = .-CHKCHR ;DEVICE PI LEVEL OFFSET
6991 015502' 000001 .BLKW 1
6992 ;
6993 000006 CKFLG = .-CHKCHR ;DEVICE FLAGS OFFSET
6994 ; B0-B5 = # OF DQ11 SPECIAL CHAR
6995 ; B15 = INTERRUPTED ON SYNC
6996 015504' 000001 .BLKW 1
6997 ;
6998 000010 CKSPC = .-CHKCHR ;SPECIAL CHAR OFFSET
6999 015506' 000004 .BLKW 4 ;SPECIAL CHARACTERS
7000 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-3
C11DMC.MAC 10-AUG-79 16:08 CK11SC/TRAP INSTRUCTION HANDLER
7002 000000 .REPT 0
7003 CKVECT CD,1,1 ;CD20 VECTOR SETUP
7004 CKVECT CR,1,1 ;CR11 VECTOR SETUP
7005 CKVECT DH,2,16. ;DH11 VECTOR SETUP
7006 CKVECT DJ,2,16. ;DJ11 VECTOR SETUP
7007 CKVECT DL.E,2,16. ;DL11 VECTOR SETUP
7008 CKVECT DM,1,16. ;DM11BB VECTOR SETUP
7009 CKVECT DMC,2,16. ;DMC11 VECTOR SETUP
7010 CKVECT DN,1,64. ;DN11 VECTOR SETUP
7011 CKVECT DP,2,32. ;DP11 VECTOR SETUP
7012 CKVECT DQ,2,16. ;DQ11 VECTOR SETUP
7013 CKVECT DS,4,16. ;DS11 VECTOR SETUP
7014 CKVECT DU,2,16. ;DU11 VECTOR SETUP
7015 CKVECT DUP,2,16. ;DUP11 VECTOR SETUP
7016 CKVECT DTE2,1,1 ;DTE20 VECTOR SETUP
7017 CKVECT KMC,2,3 ;KMC11 VECTOR SETUP
7018 CKVECT KW.P,1,1 ;KW11-P VECTOR SETUP
7019 CKVECT LE,1,2 ;LP11 VECTOR SETUP
7020 CKVECT LP,1,2 ;LP20 VECTOR SETUP
7021 CKVECT PP,1,1 ;PP11 VECTOR SETUP
7022 CKVECT PR,1,1 ;PR11 VECTOR SETUP
7023 CKVECT P6,1,16. ;PA611P VECTOR SETUP
7024 CKVECT R6,1,16. ;PA611R VECTOR SETUP
7025 CKVECT TC,1,1 ;TC11 VECTOR SETUP
7026 CKVECT TM,1,1 ;TM11 VECTOR SETUP
7027 CKVECT RC,1,1 ;RC11 VECTOR SETUP
7028 CKVECT RF,1,1 ;RF11 VECTOR SETUP
7029 CKVECT RH,1,1 ;RH11 (RJP04) VECTOR SETUP
7030 CKVECT RP,1,1 ;RP11-C VECTOR SETUP
7031 CKVECT TA,1,1 ;TA11 VECTOR SETUP
7032 CKVECT RK,1,1 ;RK11 VECTOR SETUP
7033 CKVECT RX,1,1 ;RX11 VECOR SETUP
7034 .ENDR ;END OF SUPPRES VECTORS
7035 ;
7036 015516' 062515 020155 071105 CKMG01: .ASCIZ \Mem Err\<377>
015524' 177562 000
7037 015527' 102 072151 062040 CKMG02: .ASCIZ \Bit did not clear\<377>
015534' 062151 067040 072157
015542' 061440 062554 071141
015550' 000377
7038 015552' 064502 020164 064544 CKMG03: .ASCIZ \Bit did not set\<377>
015560' 020144 067556 020164
015566' 062563 177564 000
7039 015573' 111 072156 071145 CKMG04: .ASCIZ \Interrupt did not occur\<377>
015600' 072562 072160 062040
015606' 062151 067040 072157
015614' 067440 061543 071165
015622' 000377
7040 015624' 067111 062564 071162 CKMG05: .ASCIZ \Interrupted to wrong vector\<377>
015632' 070165 062564 020144
015640' 067564 073440 067562
015646' 063556 073040 061545
015654' 067564 177562 000
7041 015661' 156 072157 063040 CKMG06: .ASCIZ \not found\<377>
015666' 072557 062156 000377
7042 015674' 067151 062564 071162 CKMG07: .ASCIZ \interrupted when not enabled\<377>
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-4
C11DMC.MAC 10-AUG-79 16:08 CK11SC/TRAP INSTRUCTION HANDLER
015702' 070165 062564 020144
015710' 064167 067145 067040
015716' 072157 062440 060556
015724' 066142 062145 000377
7043 ;
7044 .EVEN
7045 001316' CKBLK=CKINTS ;REMOVE THIS AREA AS A BUFFER FOR THE DH11 TEST
7046 ;
7047 015732' 000040 .BLKW 40 ;STACK FOR CHECK-11
7048 016032' CHKSTK =. ;END OF STACK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-5
C11DMC.MAC 10-AUG-79 16:08 MODULE END
7050 .SBTTL MODULE END
7051 .SBTTL PROGRAM END
7052 016032' CHKEND= . ;COMPUTE AND PRINT PROGRAM SIZE
7053 ;
7054 ; EEEEEEEEEEEEEE NN NN DDDDDDDDDD !!
7055 ; EE NNNN NN DD DD !!
7056 ; EE NN NN NN DD DD !!
7057 ; EE NN NN NN DD DD !!
7058 ; EEEEEEEEEE NN NN NN DD DD !!
7059 ; EE NN NN NN DD DD !!
7060 ; EE NN NN NN DD DD !!
7061 ; EE NN NNNN DD DD
7062 ; EEEEEEEEEEEEEE NN NN DDDDDDDDDD !!
7063 ;
7064 ;
7065 ;**********************************************************************
7066 ;
7067 ; END OF CHK11 - THE ONLY ONCE ONLY SYSTEM DIAGNOSTIC YOU'LL EVER NEED
7068 ;
7069 ;**********************************************************************
7070 ;
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-6
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7072 .TITLE TERBOT - TERTIARY NETWORK BOOTSTRAP
7073 ;
7074 ; MODULE DESCRIPTION:
7075 ;
7076 ; TERTIARY BOOT PART II
7077 ;
7078 ;
7079 ;
7080 ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
7081 ;
7082 ; IDENT HISTORY:
7083 ;
7084 ; 1.00 10-FEB-78
7085 ; VERSION 2.0 RELEASE
7086 ; 2.00 16-OCT-78
7087 ; MODIFICATION FOR DN20/DN200 USE WITH CHECK11
7088 ;
7089
7090 ;+
7091 ; **-BT3STR-START OF TERTIARY NETWORK LOADER
7092 ;
7093 ; INPUTS:
7094 ;
7095 ; R1 = CSR ADDRESS OF LOAD DEVICE
7096 ; SP = HIGHEST MEMORY ADDRESS OF THE MACHINE
7097 ; ALL THE CODE BETWEEN 'BT3STR' AND 'BT3END' HAS BEEN RELOCATED
7098 ; TO THE TOP OF MEMORY.
7099 ; THE FOLLOWING DATA LOCATIONS HAVE BEEN INITIALIZED:
7100 ; $DEVTP - ASCII NAME OF THE LOAD DEVICE
7101 ; $UNIT - UNIT NUMBER OF THE LOAD DEVICE
7102 ; KT11 - FLAG TO INDICATE EXISTANCE OF MEMORY MANAGEMENT
7103 ;
7104 ;
7105 ;-
7106 ;
7107 .DSABL AMA
7108 016032' 005000 BT3STR: CLR R0 ;START WITH LOAD 0
7109 016034' 004767 000000G INIT: JSR PC,INIDRV ;INIT DEVICE
7110 016040' 105767 000662 TSTB KT11 ;MEMORY MANAGEMENT ENABLED ?
7111 016044' 001403 BEQ 10$ ;IF EQ, NO - LEAVE HIGHEST LOAD ADDRESS ALONE
7112 016046' 042766 160000 000002 BIC #160000,2(SP) ;OTHERWISE REDUCE IT TO A VIRTUAL ADDRESS THROUGH APR0
7113 016054' 10$: ;
7114
7115 ;
7116 ; SEND REQUEST OPERATING SYSTEM BOOT MESSAGE
7117 ;
7118 ; MESSAGE SENT IS:
7119 ; CODE 8-REQUEST PROGRAM
7120 ; CODE(1),DEVTYPE(1),STADDR(1),PGMTYPE(1)
7121 ;
7122 016054' 011605 SNDOS: MOV (SP),R5 ;MESSAGE BUFFER ADDR
7123 016056' 012702 000000G MOV #DEVTYP,R2 ; DEVICE
7124 016062' 000302 SWAB R2 ; TYPE AND
7125 016064' 062702 000010 ADD #8.,R2 ; CODE
7126 016070' 010225 MOV R2,(R5)+ ; INTO MESSAGE
7127 016072' 012725 001001 MOV #1001,(R5)+ ;STATION ADDR + OPERATING SYSTEM REQUEST
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-7
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7128 016076' 012702 000004 SENDIT: MOV #4,R2 ;MESSAGE LENGTH
7129 016102' 004767 000000G SNDIT: JSR PC,SNDDRV ;TO SEND DRIVER
7130 016106' 001352 BNE INIT ;START AGAIN
7131 ;
7132 ; RECEIVE A MESSAGE FROM THE LINK
7133 ;
7134 ;
7135 016110' 012702 000406 MOV #BUFSIZ,R2 ;SET BUFFER SIZE
7136 016114' 004767 000000G JSR PC,RCVDRV ;TO RECEIVE DRIVER
7137 016120' 001113 BNE ERR ;ERROR ON RECEIVE
7138 016122' 011603 MOV (SP),R3 ;BUFFER ADDR
7139 ;
7140 ; PROGRAM LOAD WITH AND WITHOUT TRANSFER ADDR
7141 ; R2-MESSAGE BYTE COUNT(WITHOUT CODE)
7142 ; R3-MESSAGE ADDR(BYTE FOLLOWING CODE)
7143 ; R4-CODE
7144 ;
7145 ; MESSAGES RECEIVED ARE:
7146 ; CODE 0-PGM LOAD WITH TRANSFER ADDR
7147 ; CODE(1),LDNUM(1),LDADDR(4),IMAGE(N),XADDR(4)
7148 ;
7149 ; CODE 2-PGM LOAD WITHOUT XFER ADDR
7150 ; CODE(1),LDNUM(1),LDADDR(4),IMAGE(N)
7151 ;
7152 ; CODE 20-PARAMETERS WITH TRANSFER ADDRESS
7153 ; CODE(1),LDNUM(1),PARAMETERS,XADDR(4)
7154 ; PARAMETERS: ENTRY,ENDMARK
7155 ; ENTRIES:
7156 ; PARTYPE (1):B PARAMETER TYPE #
7157 ; PARLENGTH (1):B # OF BYTES IN PARVALUE
7158 ; PARVALUE (1):B PARAMETER VALUE ACCORDING TO PARTYPE AND PARLENGTH
7159 ; PARAMETER TYPE LENGTH VALUE
7160 ; 1 1 TO 6 ASCII NODE NAME
7161 ; 2 2 BINARY NODE NO.
7162 ; 3 1 TO 6 ASCII HOST NODE NAME
7163 ; ENDMARK (1):B = 0
7164 ;
7165 ;
7166 ; MESSAGE RETURNED IS:
7167 ; CODE 10-REQUEST PROGRAM LOAD
7168 ; CODE(1),LDNUM(1),ERROR(1)
7169 ;
7170 ;
7171 016124' 112304 PGMLD0: MOVB (R3)+,R4 ;SAVE CODE
7172 016126' 005302 DEC R2 ;SUBTRACT CODE LENGTH
7173 016130' 120427 000002 CMPB R4,#2 ;IS IT LOAD WITH XFER ADDR
7174 016134' 001407 BEQ PGMLD2 ;YES
7175 016136' 120427 000024 CMPB R4,#20. ;IS IT A PARAMETERS MESSAGE
7176 016142' 001402 BEQ 5$ ;IF EQ, YES
7177 016144' 105704 TSTB R4 ;IS IT LOAD WITHOUT XFER ADDR
7178 016146' 001342 BNE SNDOS ;NO
7179 016150' 162702 000004 5$: SUB #4.,R2 ;SUBTRACT XFER ADDR LENGTH
7180 016154' 105713 PGMLD2: TSTB (R3) ;IS IT LOAD 0
7181 016156' 001402 BEQ 10$ ;YES, RESET LOAD NUMBER
7182 016160' 121300 CMPB (R3),R0 ;DOES IT MATCH REQUESTED LOAD
7183 016162' 001072 BNE ERR ;NO, ASK AGAIN
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-8
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7184 016164' 112300 10$: MOVB (R3)+,R0 ;SET LOAD NUMBER
7185 016166' 105200 INCB R0 ;SET TO NEXT REQUESTED
7186 016170' 005302 DEC R2 ;DECREMENT REMAINING COUNT
7187 ; BLE NODAT ;IF LE, NO DATA IN THIS LOAD
7188 ;
7189 ;
7190 ; GET LOAD ADDRESS
7191 ;
7192 016172' 120427 000024 CMPB R4,#20. ;IS THIS A PARAMETERS MESSAGE ?
7193 016176' 001467 BEQ PARM ;IF EQ, YES - EXTRACT PARAMETERS
7194 016200' 012305 MOV (R3)+,R5 ;LOAD ADDR
7195 016202' 105767 000520 TSTB KT11 ;MEMORY MANAGEMENT ENABLED ?
7196 016206' 001414 BEQ 20$ ;IF EQ, NO - SKIP EXTENDED MEMORY COMPUTATION
7197 016210' 010546 MOV R5,-(SP) ;USE THE HIGH BYTE OF R5 AS THE LOW ORDER
7198 016212' 000316 SWAB (SP) ; BYTE OF THE REAL MEMORY ADDRESS
7199 016214' 111366 000001 MOVB (R3),1(SP) ;THE NEXT BYTE IN THE MESSAGE IS THE HIGH ORDER ADDRESS
7200 016220' 042716 000007 BIC #7,(SP) ;POSITION FOR MULTIPLES OF 1K WORDS
7201 016224' 006316 ASL (SP) ;...
7202 016226' 006316 ASL (SP) ;...
7203 016230' 012637 172340 MOV (SP)+,@#KISAR0 ;SET UP THE MAPPING REGISTER
7204 016234' 042705 174000 BIC #^C<3777>,R5 ;BUILD A VIRTUAL ADDRESS USING APR0
7205 016240' 005723 20$: TST (R3)+ ;SKIP OVER HIGH ORDER WORD OF LOAD ADDRESS
7206 016242' 162702 000004 SUB #4.,R2 ;SUBTRACT LOAD ADDR LENGTH
7207 016246' 003415 BLE NODAT ;IF LE, NO DATA
7208
7209 ;
7210 ; MOVE THE DATA BUT DON'T OVERWRITE THE LOADER
7211 ;
7212 016250' 105767 000452 30$: TSTB KT11 ;MEMORY MANAGEMENT ENBALED ?
7213 016254' 001404 BEQ 40$ ;IF EQ, NO - SKIP EXTENDED ADDRESS CHECK
7214 016256' 023737 172340 172354 CMP @#KISAR0,@#KISAR6 ;IS THE BLOCK RELOCATION BIAS POINTING BEYOND THE LOAD
7215 016264' 001002 BNE 50$ ;IF NE, IT MIGHT BE - DONT NEED VIRTUAL ADDRESS CHECK
7216 016266' 020566 000002 40$: CMP R5,2(SP) ;IS THE VIRTUAL ADDRESS TOO LARGE ?
7217 016272' 103020 50$: BHIS LDERR ;IF HIS, YES - LOAD ERROR
7218 016274' 112325 MOVB (R3)+,(R5)+ ;MOVE BYTE TO REQUESTED LOCATION
7219 016276' 005302 DEC R2 ;DECREMENT COUNT
7220 016300' 003363 BGT 30$ ;MORE TO MOVE
7221
7222 ;
7223 ; CHECK FOR TRANSFER ADDRESS
7224 ;
7225 016302' 105704 NODAT: TSTB R4 ;IS IT LOAD WITH XFER ADDR
7226 016304' 001507 BEQ XFER ;IF EQ, YES - TRANSFER TO PROGRAM
7227
7228 ;
7229 ; REQUEST NEXT BLOCK
7230 ;
7231 016306' 005003 ACKLD: CLR R3 ;CLEAR ERROR BYTE
7232 016310' 011605 SNDER: MOV (SP),R5 ;BUFFER ADDR
7233 016312' 112725 000012 MOVB #10.,(R5)+ ;REQUEST PGM LOAD CODE
7234 016316' 110025 MOVB R0,(R5)+ ;REQUESTED LOAD NUMBER
7235 016320' 012702 000003 MOV #3,R2 ;SET FOR ACK CNT
7236 016324' 010325 MOV R3,(R5)+ ;SET ERROR STATUS
7237 016326' 001665 BEQ SNDIT
7238 016330' 005202 INC R2 ;ONE MORE IF ERROR
7239 016332' 000663 BR SNDIT
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-9
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7240
7241 ;
7242 ; LOADER OVERWRITE ERROR
7243 ;
7244 016334' 012703 000000 LDERR: MOV #0,R3 ;SET ERROR CODE
7245 016340' 000763 BR SNDER ;
7246
7247 ;
7248 ; TRANSFER ADDRESS ERROR
7249 ;
7250 016342' 012703 000002 XFERR: MOV #2,R3 ;SET ERROR CODE
7251 016346' 000760 BR SNDER ;
7252
7253 ;
7254 ; ERROR ON RECEIVE
7255 ; SEND EITHER REQUEST PROGRAM OR LOAD
7256 ;
7257 016350' 105700 ERR: TSTB R0 ;HAVE WE STARTED XFER YET
7258 016352' 001640 BEQ SNDOS ;NOT YET,REQUEST PROGRAM
7259 016354' 000754 BR ACKLD ;ALREADY STARTED, REQUEST LOAD
7260
7261 ;
7262 ; PARAMETERS MESSAGE WITH TRANSFER ADDRESS
7263 ;
7264 016356' 010304 PARM: MOV R3,R4 ;SAVE PARAMETER ADDRESS
7265 016360' 060203 ADD R2,R3 ;SKIP OVER ALL PARAMETERS
7266 016362' 062766 000506 000002 ADD #BUFSIZ+64.,2(SP);LAST 32. WORDS GP013078
7267 016370' 062766 000000G 000002 ADD #TOP32,2(SP) ;32 WORD BLOCK AT END
7268 016376' 162766 016032' 000002 SUB #BT3STR,2(SP) ;HAD BEEN SAVED
7269 016404' 022727 000000G 000014 CMP #DEVTYP,#12. ;USING DMC? GP020678
7270 016412' 001003 BNE 9$ ;NO GP020678
7271 016414' 062766 000200 000002 ADD #128.,2(SP) ;YES, ADJUST ADDRESS MORE GP020678
7272 016422' 016602 000002 9$: MOV 2(SP),R2 ; GP013078
7273 016426' 105767 000274 TSTB KT11 ;MEMORY MANAGEMENT GP021278
7274 016432' 001403 BEQ 12$ ;NO GP021278
7275 016434' 013737 172354 172340 MOV @#KISAR6,@#KISAR0; GP021278
7276 016442' 005022 12$: CLR (R2)+ ;CLEAR BINARY AREA
7277 016444' 012705 000014 MOV #12.,R5 ;PAD OUT REST
7278 016450' 112722 000040 10$: MOVB #40,(R2)+ ;WITH SPACES
7279 016454' 005305 DEC R5
7280 016456' 001374 BNE 10$
7281 016460' 016602 000002 11$: MOV 2(SP),R2 ;GET BACK ADDRESS GP013078
7282 016464' 105714 TSTB (R4) ;CHK FOR END GP013078
7283 016466' 001416 BEQ XFER ;IF 0, NO MORE DATA GP013078
7284 016470' 122714 000002 CMPB #2,(R4) ;BINARY? (TYPE=2) GP012578
7285 016474' 001405 BEQ 15$ ;NO GP012578
7286 016476' 005722 TST (R2)+ ;BEYOND BINARY AREA GP012578
7287 016500' 105314 DECB (R4) ;CHK IF HOST NAME (TYPE=3) GP013178
7288 016502' 001402 BEQ 15$ ;IF EQ, NODE NAME GP013178
7289 016504' 062702 000006 ADD #6,R2 ;GET TO PROPER AREA
7290 016510' 105724 15$: TSTB (R4)+ ;GET COUNT
7291 016512' 112405 MOVB (R4)+,R5
7292 016514' 112422 20$: MOVB (R4)+,(R2)+ ;MOVE NAME OR NUMBER
7293 016516' 005305 DEC R5
7294 016520' 001375 BNE 20$
7295 016522' 000756 BR 11$ ;CHK FOR MORE GP013078
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-10
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7296
7297 ;
7298 ; IF FINAL LOAD THEN TRANSFER
7299 ;
7300 016524' 016602 000002 XFER: MOV 2(SP),R2 ;GET BACK ADDRESS ;**NEW**
7301 016530' 005722 TST (R2)+ ;TO NAME AREA ;**NEW**
7302 016532' 121227 000040 CMPB (R2),#40 ;VALID NAME? ;**NEW**
7303 016536' 001001 BNE 5$ ;YES ;**NEW**
7304 016540' 005012 CLR (R2) ;NO, NULL IT ;**NEW**
7305 016542' 062702 000006 5$: ADD #6,R2 ;NEXT NAME AREA ;**NEW**
7306 016546' 121227 000040 CMPB (R2),#40 ;SAME TEST ;**NEW**
7307 016552' 001001 BNE 10$ ;**NEW**
7308 016554' 005012 CLR (R2) ;**NEW**
7309 016556' 112346 10$: MOVB (R3)+,-(SP) ;LOW BYTE TO STACK
7310 016560' 112366 000001 MOVB (R3)+,1(SP) ;HIGH BYTE
7311 016564' 012603 MOV (SP)+,R3 ;GET THE TRANSFER ADDRESS
7312 016566' 105767 000134 TSTB KT11 ;IS THERE MEMORY MANAGEMENT?
7313 016572' 001416 BEQ 70$ ;IF EQ NO
7314 016574' 005037 172340 CLR @#KISAR0 ;SET APR TO LOW 4K
7315 016600' 020327 140000 CMP R3,#140000 ;IS THE ADDRESS WITHIN BOUNDS?
7316 016604' 103413 BLO 80$ ;IF LO YES
7317 016606' 013737 172354 172344 MOV @#KISAR6,@#KISAR2 ;NEED TO "RELOCATE" THIS CODE
7318 016614' 042707 100000 BIC #100000,PC ;USE APR2 INSTEAD OF APR6
7319 016620' 012737 001400 172354 MOV #1400,@#KISAR6 ;SET TO PROPER 4K BOUNDARY
7320 016626' 000402 BR 80$ ;CLEAN UP AND XFER
7321 ;
7322 016630' 020306 70$: CMP R3,SP ;TRANSFER WITHIN BOOT3?
7323 016632' 103243 BHIS XFERR ;IF HIS, YES - SEND ERROR
7324
7325 ;
7326 ; ACKNOWLEDGE THE LAST BLOCK TO FINISH THE LOAD
7327 ;
7328 016634' 011605 80$: MOV (SP),R5 ;GET BUFFER ADDRESS
7329 016636' 112725 000012 MOVB #10.,(R5)+ ;REQUEST PROGRAM LOAD
7330 016642' 110025 MOVB R0,(R5)+ ;REQUESTED LOAD NUMBER
7331 016644' 005025 CLR (R5)+ ;NO ERROR
7332 016646' 010300 MOV R3,R0 ;SAVE TRANSFER ADDRESS
7333 016650' 012702 000002 MOV #2,R2 ;SET LENGTH
7334 016654' 004767 000000G JSR PC,SNDDRV ;SEND THE LAST ACK
7335 016660' 012702 000012 MOV #10.,R2 ;KILL ENOUGH TIME FOR THE LAST ACK TO GO
7336 016664' 010005 MOV R0,R5 ;RESTORE TRANSFER ADDRESS
7337 016666' 005300 1$: DEC R0 ;DECREMENT INNER LOOP
7338 016670' 001376 BNE 1$ ;KEEP GOING TILL ZERO
7339 016672' 005302 DEC R2 ;DECREMENT OUTER LOOP
7340 016674' 001374 BNE 1$ ;ONCE MORE
7341 016676' 005003 25$: CLR R3
7342 016700' 156703 000020 BISB $UNIT,R3 ;SET LOAD UNIT NO.
7343 016704' 016704 000012 MOV $DEVTP,R4 ;AND DEVICE TYPE
7344 016710' 012701 177777 MOV #-1,R1 ;TO INDICATE DOWN LINE LOAD
7345 016714' 012702 177777 MOV #-1,R2 ;SAME
7346 016720' 010507 MOV R5,PC ;DO THE TRANSFER
7347
7348 ;
7349 ; LOCAL DATA (RELOCATED WITH THE LOADER)
7350 ;
7351 016722' 000001 $DEVTP::.BLKW 1 ;ASCII NAME OF DEVICE TYPE USED DOWN-LINE
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 41-11
C11DMC.MAC 10-AUG-79 16:08 PROGRAM END
7352 016724' 000001 $UNIT:: .BLKB 1 ;PHYSICAL DEVICE NO. OF LOAD UNIT
7353 016726' .EVEN
7354 016726' 000 KT11: .BYTE 0 ;KT-11 FLAG
7355 016727' 000 .BYTE 0 ;RESERVED
7356 016730' BT3END =. ;END OF TERTIARY LOADER
7357 000000' .END START
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
ACKLD 016306R 7231# 7259
ALLBTS= 177777 775# 3811 5202 5205 6160 6163 6166 6429 6441
BPARER= 000020 1391#
BPTLVL= 000007 811#
BPTVEC= 000014 811#
BR0 = 000000 779#
BR1 = 000040 780#
BR2 = 000100 781#
BR3 = 000140 782#
BR4 = 000200 783#
BR5 = 000240 784#
BR6 = 000300 785# 4991
BR7 = 000340 786# 3720 3747 3755 4511 4829 4899 5001 5045 5054 5093 5162 6173
6407
BSEL0 = 000000 1091#
BSEL1 = 000001 1094#
BSEL2 = 000002 1091#
BSEL3 = 000003 1094#
BSEL4 = 000004 1091#
BSEL5 = 000005 1094#
BSEL6 = 000006 1091#
BSEL7 = 000007 1094#
BSFACT= 000100 1641# 4095 4110 4111 4208 4323
BT3END= 016730R 7356#
BT3STR 016032R 3257 3269 6857 7108# 7268
BUFSIZ= 000406 3107# 3264 7135 7266
BUSA16= 040000 1359#
BUSA17= 100000 1358#
B.DM11= 170500 1061#
B0 = 000001 758# 775 908 968 970 1000 1014 1032 1043 1053 1070 1077# 1111
1127 1144 1153 1173 1192 1397 1400 1817 1844 1902 1934 3376 3691
4582 4641 6643
B1 = 000002 759# 907 969 970 999 1015 1032 1053 1070 1077# 1110 1126 1143
1154 1193 1395 1843 1865 1867 1869 1871 1901 1927 1929 1931 1933
3377 4585 4648
B10 = 002000 768# 902 939 989 1021 1063 1112 1136 1164 1183 1315 1385 1834
1856 1857 1858 1859 1892 1913 1918 1919 1920 1921
B11 = 004000 769# 901 940 988 1022 1062 1112 1121 1135 1165 1184 1315 1383
1814 1833 1851 1891 1912
B12 = 010000 770# 900 941 959 987 1023 1033 1103 1120 1134 1166 1185 1201
1382 1832 1850 1890 1911
B13 = 020000 771# 899 942 955 958 986 1024 1034 1133 1186 1280 1369 1381
1831 1849 1889 1908 1910
B14 = 040000 772# 898 943 954 957 963 985 1025 1035 1102 1132 1279 1359
1380 1830 1888 1909 1910
B15 = 100000 773# 775 897 944 956 962 984 1026 1036 1101 1131 1168 1188
1278 1358 1368 1379 1673 1804 1813 1829 1848 1887 1906 3692
B2 = 000004 760# 929 966 998 1016 1032 1044 1053 1070 1077# 1109 1125 1155
1175 1194 1394 1842 1866 1867 1870 1871 1900 1928 1929 1932 1933
3378
B3 = 000010 761# 997 1017 1032 1053 1070 1077# 1108 1124 1142 1156 1176 1195
1392 1841 1868 1869 1870 1871 1899 1930 1931 1932 1933 3379
B4 = 000020 762# 965 996 1032 1053 1069 1077# 1107 1141 1157 1177 1196 1391
1840 1863 1898 1925 3380
B5 = 000040 763# 964 994 1018 1032 1053 1068 1077# 1106 1140 1158 1178 1197
1219 1390 1839 1862 1897 1924 3382 4588 4651
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-1
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
B6 = 000100 764# 906 921 928 935 993 1019 1032 1045 1053 1067 1077# 1105
1123 1139 1159 1179 1198 1377 1389 1661 1662 1675 1806 1816 1838
1861 1896 1923 3383
B7 = 000200 765# 905 936 992 1020 1032 1046 1053 1066 1077# 1104 1122 1138
1160 1180 1199 1388 1663 1674 1805 1815 1837 1860 1895 1922
B8 = 000400 766# 904 937 991 1065 1112 1162 1181 1285 1387 1836 1853 1855
1857 1859 1894 1913 1915 1917 1919 1921
B9 = 001000 767# 903 938 990 1064 1112 1137 1163 1182 1386 1835 1854 1855
1858 1859 1893 1913 1916 1917 1920 1921
CDBA = 000004 854# 5191 5193* 5194 5196* 5253 5255* 5256 5258*
CDCC = 000002 851#
CDDB = 000006 856# 873
CDHRSZ= 000010 887#
CDST = 000000 827#
CDST2 = 000006 873# 5189
CD.B16= 000020 829# 831
CD.B17= 000040 829# 831
CD.CER= 100000 858#
CD.COL= 000120 852#
CD.DER= 004000 828#
CD.DLT= 002000 828#
CD.EOF= 020000 828#
CD.ERR= 100000 828# 5219
CD.GO = 000001 830# 5217
CD.HPE= 000004 830#
CD.IE = 000100 829# 5199 5217
CD.LVL= 000004 823# 4598
CD.NXM= 001000 829#
CD.OFL= 010000 828# 5207
CD.ONL= 000010 830#
CD.PAC= 000002 830# 5199
CD.PCK= 020000 875#
CD.PWC= 000400 829# 5214
CD.RCK= 040000 875#
CD.RDC= 040000 828#
CD.RDY= 000200 829# 5219
CD.SCK= 010000 875#
CD.STS= 177160 826# 4598
CD.VEC= 000230 824# 4598
CD.XAD= 000060 831# 5199 5217
CHKBIT 007574R 3807 3824 4896# 5198 5201 5204 5265 5515 5519 5997 6046 6050 6053
6069 6072 6156 6159 6162 6165 6396 6419 6423 6428 6434 6440
CHKCD 005210R 4598# 5264*
CHKCHR 015476R 3802* 3804* 3820* 3822* 4474* 4475* 4821* 4825* 4826* 4828* 4837 4841 4975
5007 5009 5013* 5041* 5069 5071 5076* 5077* 5081 5083 5272* 5996* 6086*
6982# 6984 6987 6990 6993 6998
CHKCKB 001564R 3814 3818#
CHKCKD 002012R 3778 3860#
CHKCLK 004554R 4471#
CHKCOR 003572R 4178 4182#
CHKCR 005244R 4600# 5197*
CHKCTY 001400R 3761 3765#
CHKDEV 006642R 4598 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611
4612 4613 4614 4615 4617 4642 4643 4644 4645 4646 4649 4652 4653
4702#
CHKDTE 006144R 4617#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-2
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
CHKEND= 016032R 7052#
CHKERR 015022R 3759 6895#
CHKFLD 010710R 3730* 4717* 4719* 4720 4743 4753 4755* 4778 4820 5166#
CHKFLG 001152R 3690# 3731* 3766* 3818* 4472* 4824* 4960 4980* 6202 6206* 6213 6217* 6901*
6908* 6958*
CHKFLV 010706R 3729* 4708 4814 4866 4867* 5165#
CHKINL 010032R 3810 4514 4988# 5227 5287 6007 6182
CHKINT 010544R 3746 5123# 5128
CHKISZ= 000012 3754 5128#
CHKMAP 002566R 4021 4025#
CHKMMG 002670R 4047 4057#
CHKRP 005730R 4611#
CHKSTK= 016032R 3724 7048#
CHKTIM 004754R 4482* 4487 4505* 4510#
CHK.11 001230R 3274 3720# 6968
CHK.90 006540R 4661#
CI.INE= 000100 921# 3825
CKACD$= 001224R 4598#
CKACD1= ****** U 4598
CKACR$= 001224R 4600#
CKACR1= ****** U 4600
CKADLX= 001224R 3709
CKADL.= 001224R 4644# 4645# 4646#
CKADMC= 001224R 4649#
CKADTE= 001224R 4617#
CKADUP= 001224R 4643#
CKADZ$= 001224R 4653#
CKADZ1= ****** U 4653
CKAKG$= 001224R 4601#
CKAKG1= 001224R 3712 4601
CKAKMC= 001224R 4642# 4652#
CKAKW.= 001224R 4615#
CKAKW1= 001224R 3711 4520
CKALE$= 001224R 4602#
CKALE1= ****** U 4602
CKALP$= 001224R 4603#
CKALP1= ****** U 4603
CKAMEM= 001224R 3710
CKAPP$= 001224R 4604#
CKAPP1= ****** U 4604
CKAPR$= 001224R 4605#
CKAPR1= ****** U 4605
CKARC$= 001224R 4608#
CKARC1= ****** U 4608
CKARF$= 001224R 4609#
CKARF1= ****** U 4609
CKARH$= 001224R 4610#
CKARH1= ****** U 4610
CKARK$= 001224R 4613#
CKARK1= ****** U 4613
CKARP$= 001224R 4611#
CKARP1= ****** U 4611
CKARX$= 001224R 4614#
CKARX1= ****** U 4614
CKATA$= 001224R 4612#
CKATA1= ****** U 4612
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-3
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
CKATC$= 001224R 4606#
CKATC1= ****** U 4606
CKATM$= 001224R 4607#
CKATM1= ****** U 4607
CKBFSH 014536R 4665 6820 6830 6836 6846#
CKBLK = 001316R 7045#
CKBUST 014756R 3772 3777 4479 4725 4751 5190 5231 6875#
CKCADD= 000034 4599#
CKCDEV 005210R 4597# 4599
CKCEND 006540R 4657#
CKCLK9 004756R 4488 4493 4497 4501 4511#
CKCOR 004162R 4275 4288#
CKCPSZ= 002000 4315# 4321 4323
CKCPU 002012R 3860 3868#
CKCPUE 002512R 3940 3943 3946 3949 3952 3955 3958#
CKCPUN 002244R 3923# 3958*
CKCRLF 013762R 4775 6651# 6662 6917
CKDA = 000000 3802* 3820* 4474* 4825* 4975 6086* 6984#
CKDEVN 001154R 3693# 3806* 4476* 4803* 4847* 4848 4970 6617*
CKDIDT 007726R 4960# 6902
CKDLXB 002566R 3968 3975#
CKDL10 005040R 4526#
CKDNAM 001156R 3694# 3805* 3823* 4471* 4705* 4782 4965 6200 6211
CKDN2X= 000043 184# 4581 4582 4585 4588 4640 4641 4648 4651
CKDV = 000002 3804* 3822* 4475* 4826* 4837 5007 5009 5069 5071 5996* 6086* 6987#
CKEDID= 000010 3379# 4490 4494 4498 4758 4910 4920 4927 5004 5010 5066 5072 5084
5096 5222 5282 6003 6012 6017 6092 6107 6203 6214 6237 6266 6352
6393 6875 6899 6918
CKEFAT= 000001 3376# 4044 6956
CKEGB = 000100 3383# 4366 4377 4910 4920 4927 5010 5072 5084 6092 6107 6237 6266
6352 6918 6932 6969
CKEMSE= 000020 3380# 3899 4042 4098 4100 4118 4125 4145 4155 4157 4243 4251 4335
4366 4377 4490 4494 4498 4758 4786 4910 4920 4927 4962 4967 4972
4977 5004 5010 5066 5072 5084 5096 5209 5222 5233 5259 5269 5282
6003 6012 6017 6092 6107 6203 6214 6237 6266 6352 6393 6447 6875
6912 6924
CKEMSG= 000004 3378# 3899 4042 4098 4100 4118 4125 4145 4155 4157 4243 4251 4335
4366 4377 4490 4494 4498 4758 4786 4910 4920 4927 4962 4967 4972
4977 5004 5010 5066 5072 5084 5096 5209 5222 5233 5259 5269 5282
6003 6012 6017 6092 6107 6203 6214 6237 6266 6352 6393 6447 6875
6912 6929
CKENCL= 000040 3382# 4243 4786 4967 4972 4977 6393 6915
CKEPC = 000002 3377# 3899 4155 4157 4335 4366 4377 4490 4494 4498 4910 4920 4927
5004 5010 5066 5072 5084 5096 5222 5282 6003 6012 6017 6092 6107
6237 6266 6352 6903
CKFERR= 000001 3691# 6901 6908 6958
CKFIDT= 100000 3692# 3766 3818 4472 4824 4960 4980
CKFLAG 010542R 5042* 5074 5078* 5114#
CKFLG = 000006 4828* 6993#
CKGCHR 014264R 6767# 6791
CKGYES 014360R 6791#
CKHALT 001226R 3708#
CKINT 010150R 5039# 6398 6456
CKINTE 010530R 5067 5073 5087 5097 5104 5107 5109#
CKINTS 001316R 3744# 7045
CKINT1 010170R 5045# 5105
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-4
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
CKINT2 010174R 5046# 5065
CKINT3 010202R 5048# 5108
CKINT6 010436R 5082 5088#
CKINT7 010520R 5050 5106#
CKMDCK 013230R 6227 6252 6320 6344#
CKMDEX 013152R 6231 6256 6315#
CKMDRD 013334R 6192 6196 6233 6258 6318 6346 6368#
CKMDWR 013202R 6195 6210 6332# 6345
CKMDXT 013136R 6207 6302#
CKMG01 015516R 4366 4377 7036#
CKMG02 015527R 4910 4927 7037#
CKMG03 015552R 4920 7038#
CKMG04 015573R 5004 5066 7039#
CKMG05 015624R 5010 5072 7040#
CKMG06 015661R 7041#
CKMG07 015674R 5096 7042#
CKMPAR 004554R 4329 4384#
CKNAME 000466R 3331# 3628 3827
CKNODV= ****** U 4766
CKPI = 000004 4821* 5013* 5041* 5076* 5077* 5081 5083 5272* 6086* 6990#
CKPOPJ 001224R 3707# 4598 4600 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611
4612 4613 4614 4653
CKSPC = 000010 6998#
CKSPCD 015474R 3732* 4366* 4377* 6962 6980#
CKSTD = ****** U 4580 4618
CKTBOC 014006R 4810 6676# 6880 6911 6938 6943 6948 6955
CKTCHR 014074R 3837 3839 3843 6639 6678 6717# 6752 6781
CKTCRL 013774R 3830 3856 3868 3961 4059 4198 4231 4309 4326 4517 4578 4661 6662#
6905 6934 6959
CKTDEC 014170R 3965 4240 6740#
CKTOCT 014022R 3834 3841 4256 4267 4776 4795 4971 4976 6685#
CKTREM 014412R 6735 6804#
CKTRPT 013732R 3767* 3776* 3799* 6626# 6728 6733 6767 6815* 6839*
CKTSTR 014000R 3845 3850 4246 4259 4262 4268 4806 6614 6651 6669# 6721 6920 6939
6944 6949
CKTTXT 013734R 3828 3849 3854 3959 4781 4783 4793 4966 6636# 6669 6927
CKVCD1= ****** U 4598
CKVCR1= ****** U 4600
CKVDL.= ****** U 4644 4645 4646
CKVDMC= ****** U 4649
CKVDTE= ****** U 4617
CKVDUP= ****** U 4643
CKVDZ1= ****** U 4653
CKVEDI= 000025 3333 3338#
CKVKG1= ****** U 4601
CKVKMC= ****** U 4642 4652
CKVKW.= ****** U 4615
CKVLE1= ****** U 4602
CKVLP1= ****** U 4603
CKVMAJ= 000002 3333 3336#
CKVMIN= 000101 3333 3337#
CKVPP1= ****** U 4604
CKVPR1= ****** U 4605
CKVRC1= ****** U 4608
CKVRF1= ****** U 4609
CKVRH1= ****** U 4610
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-5
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
CKVRK1= ****** U 4613
CKVRP1= ****** U 4611
CKVRX1= ****** U 4614
CKVTA1= ****** U 4612
CKVTC1= ****** U 4606
CKVTM1= ****** U 4607
CKVWHN 000530R 3334 3340#
CKVWHO 000542R 3334 3342#
CKWRD 002242R 3872 3876 3922#
CK.BFG 014752R 6824* 6828 6832* 6870#
CK.BFN 014751R 6834 6868#
CK.BUF 014631R 4664 6851 6863 6867# 6871
CK.CAL 001160R 3696# 3721* 4674 6855
CK.COD 014630R 6853 6866#
CK.CSP 001164R 3698# 3723* 4673 6849
CK.DMC 001162R 3697# 3722* 4672 4830 6854
CK.OSP 001166R 3699# 6848* 6860
CK.PTR 014754R 6817 6837* 6871#
CK04 002446R 3911 3939#
CK05 002454R 3884 3942#
CK20 002462R 3887 3945#
CK34 002470R 3919 3948#
CK40 002476R 3886 3951#
CK45 002504R 3920 3954#
CLKENB= 000100 1662#
CLKLVL= 000004 1655#
CLKVEC= 000100 1657# 4475 4480 4481* 4513*
CLKWRD= 177546 1659# 4473 4516*
CO.INE= 000100 928# 3808 3809
CO..MM= 000004 929# 3808
CR.BSY= 001000 903# 5267
CR.CDN= 000200 905# 5278
CR.CFD= 000001 908# 5275
CR.DAT= 177162 910#
CR.DNE= 040000 898#
CR.EJT= 000002 907# 5266
CR.ERR= 100000 897# 5278
CR.HCK= 020000 899#
CR.INE= 000100 906# 5266 5275 5281 5289
CR.LVL= 000006 891# 4600 5272
CR.MCK= 010000 900#
CR.OLN= 002000 902#
CR.RDY= 000400 904#
CR.STS= 177160 895# 4600
CR.TIM= 004000 901#
CR.VEC= 000230 892# 4600
CR0STS= 177160 894#
CSRTAB 000164R 3120 3172#
CSTAT = 000034 1378# 5999
CTICHR= 177562 917# 3771 6773 6779
CTILVL= 000004 919#
CTISTS= 177560 916# 3770 3819 6777
CTIVEC= 000060 918# 3822
CTOCHR= 177566 924# 3769 6732*
CTOLVL= 000004 926#
CTOSTS= 177564 923# 3768 3801 6730
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-6
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
CTOVEC= 000064 925# 3804
CVCD$$= 000000 4598#
CVCR$$= 000000 4600#
CVDL.E= 000000 4644# 4645# 4646#
CVDMC$= 000000 4649#
CVDTE2= 000000 4617#
CVDUP$= 000000 4643#
CVDZ$$= 000000 4653#
CVKG$$= 000000 4601#
CVKMC$= 000000 4642# 4652#
CVKW.P= 000000 4615#
CVLE$$= 000000 4602#
CVLP$$= 000000 4603#
CVPP$$= 000000 4604#
CVPR$$= 000000 4605#
CVRC$$= 000000 4608#
CVRF$$= 000000 4609#
CVRH$$= 000000 4610#
CVRK$$= 000000 4613#
CVRP$$= 000000 4611#
CVRX$$= 000000 4614#
CVTA$$= 000000 4612#
CVTC$$= 000000 4606#
CVTM$$= 000000 4607#
DEBUG = 000001 292
DEVNAM 000120R 3117 3120 3121 3148#
DEVTAB 000206R 3127 3184#
DEVTYP= ****** GX 3118 3136 7123 7269
DEXDON= 000004 1394#
DEXWD1= 000006 1363#
DEXWD2= 000004 1362#
DEXWD3= 000002 1361#
DGUTS = 000000 280 282
DHBASE= 160020 932#
DHRFER= 020000 955#
DHROVR= 040000 954#
DH.AEE= 100000 962#
DH.BAR= 000012 949#
DH.BCR= 000010 948#
DH.BRK= 000014 950#
DH.CAR= 000006 947#
DH.CL5= 000000 967#
DH.CL6= 000001 968#
DH.CL7= 000002 969#
DH.CL8= 000003 970#
DH.CNX= 000400 937#
DH.DOV= 040000 957#
DH.LPR= 000004 946#
DH.LVL= 000007 933#
DH.NRC= 000002 945#
DH.NXM= 002000 939#
DH.PEN= 000020 965#
DH.RIE= 000100 935#
DH.SIE= 010000 941#
DH.SSR= 000016 951#
DH.TIE= 020000 942#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-7
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
DH.VDP= 100000 956#
DH..FE= 020000 958#
DH..HD= 040000 963#
DH..MC= 004000 940#
DH..MM= 001000 938#
DH..OP= 000040 964#
DH..PE= 010000 959#
DH..RI= 000200 936#
DH..SI= 040000 943#
DH..TI= 100000 944#
DH.2SB= 000004 966#
DIAG1 = 000030 1375#
DIAG2 = 000032 1376#
DIAG3 = 000036 1399#
DLBASE= 100000 979# 983
DLDADR= 175610 1005#
DLDSIZ= 000010 1006#
DLPENB= 000040 995#
DLRBUF= 000002 1029#
DLRSTS= 000000 1011#
DLXBUF= 000006 1050#
DLXSTS= 000004 1040#
DLYCNT= 000000 1357# 5999
DLYMSK= 037777 1360#
DL.BAS= 100000 978# 979
DL.BRK= 000001 1043#
DL.B00= 000001 1000#
DL.B01= 000002 999#
DL.B04= 000020 996#
DL.CAR= 010000 1023#
DL.CNX= 002000 989#
DL.CPE= 000400 991#
DL.CTS= 020000 1024#
DL.CWC= 000100 993#
DL.DIE= 000040 1018#
DL.DSC= 100000 1026#
DL.DTR= 000002 1015#
DL.ERE= 000010 997#
DL.ERR= 100000 1036#
DL.E.L= 000000 4644 4645 4646
DL.INE= 000004 998#
DL.LVL= 000004 981#
DL.NXM= 004000 988#
DL.OVR= 040000 1035#
DL.PAR= 001000 990#
DL.PEN= 000040 994# 995
DL.RGO= 004000 1022#
DL.RIE= 000100 1019#
DL.RNG= 040000 1025#
DL.ROK= 000200 1020#
DL.RTS= 000004 1016#
DL.STS= 100000 983#
DL.VEC= 000170 980#
DL.WCO= 000200 992#
DL.XIE= 000100 1045#
DL.XOK= 000200 1046#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-8
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
DL..FE= 020000 1034#
DL..MM= 000004 1044#
DL..PE= 010000 1033#
DL..RC= 000377 1032#
DL..RE= 000001 1014#
DL..XC= 000377 1053#
DL.10C= 010000 987#
DL.10I= 020000 986#
DL.11C= 040000 985#
DL.11I= 100000 984#
DL.2RC= 002000 1021#
DL.2XM= 000010 1017#
DL10AD= 000546R 3366
DMBASE= 170500 1057#
DMC.LV= 000005 1074# 4649
DM.ALI= 000017 1070#
DM.BSY= 000020 1069#
DM.DNE= 000200 1066#
DM.ENB= 000040 1068#
DM.IEN= 000100 1067#
DM.INI= 002000 1063#
DM.LVL= 000007 1059#
DM.SCN= 004000 1062#
DM.STP= 000400 1065#
DM.TIM= 000120 205#
DM..MM= 001000 1064#
DNBASE= 175200 1099#
DN.ACR= 040000 1102#
DN.DGT= 007400 1112#
DN.DLO= 010000 1103#
DN.DNE= 000200 1104#
DN.DSS= 000040 1106#
DN.LVL= 000007 1098#
DN.PND= 000020 1107#
DN.PWI= 100000 1101#
DN..CR= 000001 1111#
DN..DP= 000002 1110#
DN..IE= 000100 1105#
DN..ME= 000004 1109#
DN..MM= 000010 1108#
DON10C= 040000 1380#
DON11C= 000100 1389#
DP.CAR= 004000 1135#
DP.CTS= 002000 1136#
DP.DTR= 000001 1144#
DP.LVL= 000007 1116#
DP.MIS= 000020 1141#
DP.MRY= 010000 1134#
DP.RIE= 000100 1123#
DP.RNG= 020000 1133#
DP.ROF= 040000 1132#
DP.RTS= 001000 1137#
DP.SIE= 000040 1140#
DP.TIE= 000100 1139#
DP..CF= 100000 1131#
DP..CP= 010000 1120#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-9
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
DP..HD= 000002 1126#
DP..IS= 000002 1143#
DP..MM= 000004 1125#
DP..MR= 000010 1124#
DP..MT= 000010 1142#
DP..RA= 004000 1121#
DP..RD= 000200 1122#
DP..SS= 000001 1127#
DP..TD= 000200 1138#
DQ.BCC= 000100 1198#
DQ.CAR= 010000 1185#
DQ.CHR= 007400 1161#
DQ.CIE= 000020 1157# 1169
DQ.CTS= 020000 1186#
DQ.DIE= 000020 1177#
DQ.DSF= 100000 1188#
DQ.DSR= 002000 1183#
DQ.DTR= 001000 1182#
DQ.EIE= 000010 1176#
DQ.ENQ= 002000 1164#
DQ.ETB= 000400 1162#
DQ.ETX= 001000 1163#
DQ.HD = 000010 1156#
DQ.LVL= 000007 1148#
DQ.MBM= 000020 1202#
DQ.MC = 000040 1219#
DQ.MEM= 010000 1201#
DQ.RAC= 010000 1166# 1169
DQ.RCL= 000002 1193#
DQ.RDP= 000200 1160#
DQ.RDS= 000100 1159#
DQ.RGO= 000001 1153# 1169
DQ.RIE= 000040 1158#
DQ.RKL= 110021 1169#
DQ.RLE= 000010 1195#
DQ.RNG= 004000 1184#
DQ.RNX= 000040 1197#
DQ.RTS= 000400 1181#
DQ.SEC= 000004 1155# 1175#
DQ.SSY= 000002 1154#
DQ.SYN= 004000 1165#
DQ.VCH= 100000 1168# 1169
DQ.VRC= 000200 1199#
DQ.XCL= 000001 1192#
DQ.XDP= 000200 1180#
DQ.XDS= 000100 1179#
DQ.XGO= 000001 1173#
DQ.XIE= 000040 1178#
DQ.XLE= 000004 1194#
DQ.XNX= 000020 1196#
DRESET= 000100 1377# 6020
DS.AD1= 020000 1280#
DS.AD2= 040000 1279#
DS.AD3= 100000 1278#
DS.AUX= 175600 1271#
DS.DTR= 000440 1312# 1314 1315
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-10
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
DS.DVA= 175400 1272# 4839
DS.IVA= 000400 1285#
DS.LVL= 000007 1274#
DS.RDR= 000002 1300#
DS.RGO= 006455 1315#
DS.RST= 000000 1301#
DS.VEC= 000400 1273#
DS.XDR= 000006 1298#
DS.XGO= 000455 1314#
DS.XST= 000004 1299#
DS.ZAP= 170000 1313#
DTE2.L= 000000 4617
DUPACT= 004000 1411#
DUPCAR= 010000 1411#
DUPCRS= 000000 1410#
DUPCTS= 020000 1411#
DUPDIE= 000040 1412#
DUPDSA= 100000 1411#
DUPDSB= 000001 1413#
DUPDSR= 001000 1412#
DUPDTR= 000002 1413# 6045
DUPPDM= 100000 1448#
DUPPIC= 001000 1448#
DUPPSR= 000002 1447#
DUPP2M= 010000 1448#
DUPP2S= 000377 1449#
DUPRAB= 002000 1435#
DUPRCE= 000020 1412#
DUPRCR= 010000 1435#
DUPRDB= 000002 1434# 1447
DUPRDN= 000200 1412#
DUPRDT= 000377 1436#
DUPREM= 001000 1435#
DUPRER= 100000 1435#
DUPRIE= 000100 1412# 6045
DUPRNG= 040000 1411#
DUPROV= 040000 1435#
DUPRSM= 000400 1435#
DUPRTS= 000004 1413#
DUPSSY= 000400 1412# 6047
DUPTAC= 001000 1461#
DUPTCS= 000004 1459#
DUPTDB= 000006 1480#
DUPTDL= 100000 1460#
DUPTDN= 000200 1461#
DUPTHD= 000010 1461# 6051
DUPTIE= 000100 1461# 6051
DUPTMC= 020000 1460# 6051
DUPTMI= 002000 1461# 6051
DUPTMT= 040000 1460#
DUPTM0= 004000 1460# 6051
DUPTM1= 010000 1460# 6051
DUPTRS= 000400 1461#
DUPTSN= 000020 1461# 6051
DUPXAB= 002000 1481# 6054
DUPXCI= 040000 1481#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-11
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
DUPXCO= 010000 1481#
DUPXDB= 000377 1482# 6054
DUPXEM= 001000 1481# 6054
DUPXMT= 004000 1481#
DUPXSM= 000400 1481# 6054
DUP.LV= 000006 1406# 4643
DUP2RC= 002000 1411#
DUP2TX= 000010 1413#
DZ.CLR= 000020 1498#
DZ.INI= 050140 1503#
DZ.LVL= 000000 4653
DZ.RCV= 010000 1509#
DZ.RIE= 000100 1500# 1503 6070
DZ.SAE= 010000 1501# 1503
DZ.SCN= 000040 1499# 1503 6070
DZ.TIE= 040000 1502# 1503 6070
D.CNTF= 000020 4728* 4738*
D.CNTP= 000006 4761 4763*
D.DIAG= 000012 4822
D.FRSV= 000022 4729* 4835 4837*
D.FVFD= 000026 4711 4734* 4804
D.HINC= 000004 4716 4741 4845
D.MAIN= 000014 4842
D.MAXL= 000002 4745 4756
D.NAMP= 000010 4705
D.NEXT= 000030 4870
D.VINC= 000003 4739 4843
D.VMUL= 000005 4709 4731 4812 4864
D.$$$$= 000000 4598 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611
4612 4613 4614 4615 4617 4642 4643 4644 4645 4646 4649 4652 4653
ED.HIS= 000001 3339# 3844
EMTLVL= 000007 814#
EMTVEC= 000030 814#
ENBGO = 000103 1723#
ENDDRV= ****** GX 3255 3256
ERR 016350R 7137 7183 7257#
ERR10C= 010000 1382#
ERR11C= 000001 1397# 1398
ERR11S= 000002 1396#
EXCLUD= 000000 188# 198 200 201 202 207 208 209 210 211 213 216 218
221 222 223 224 225 226 227 228 229
FLOAT 000054R 3128# 3134
FLOATD= 160000 3364 3730
FLOATV= 000300 3363 3729
FLTTAB 000142R 3121 3160#
FTCD20= 177777 196# 5185 5186
FTCR11= 177777 197# 5250 5251
FTDH11= 000000 198# 199 204 5301 5302
FTDJ11= 000000 200#
FTDL1A= 000000 202# 5498 5499
FTDL1E= 177777 203# 5511 5512
FTDL10= 000000 201# 3973 3976 4527 4940
FTDMC = 177777 206# 217 6138 6139
FTDM11= 000000 204# 5532 5533
FTDN11= 000000 207# 5580 5581
FTDP11= 000000 208# 5595 5596
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-12
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
FTDQ11= 000000 209# 210 5619 5620
FTDS11= 000000 211# 5936 5937
FTDTE = 177777 212# 5988 5989
FTDUP1= 177777 214# 6042 6043
FTDU11= 000000 213# 6030 6031
FTDZ11= 177777 215# 6066 6067
FTKG11= 000000 216# 3360
FTKMC = 177777 217# 218 6137 6190 6308
FTKMCL= 000000 218# 6167 6218 6275
FTLE11= 177777 219# 6388 6389
FTLP20= 177777 220# 6404 6405
FTMD11= 000000 221# 6466 6467
FTPA61= 000000 222#
FTPP11= 000000 223# 6511 6512
FTPR11= 000000 224# 6527 6528
FTP611= 000000 6485 6486
FTRH11= 000000 225# 6556 6557
FTRK11= 000000 226#
FTRX11= 000000 227#
FTR611= 000000 6498 6499
FTTC11= 000000 228# 6570 6571
FTTM11= 000000 229# 6603 6604
FT.CHK= 000001 299
FT.HLP= 000001 290
FT.ROM= ****** U 4448
FT.87S= ****** U 1652
IDZ0 = 010000 858#
IDZ1 = 020000 858#
IDZ2 = 040000 858#
ILSLVL= 000007 810#
ILSVEC= 000010 810#
INCLUD= 177777 187# 196 197 203 204 206 212 214 215 217 219 220
INIDRV= ****** GX 3268 7109
INIT 016034R 7109# 7130
INTROF= 000010 1392# 1393 6009
INTRON= 000040 1390# 6000
INTSON= 000001 1398# 6001 6010
INT11C= 002000 1385#
INT11S= 004000 1384# 6006
IOTLVL= 000007 812#
IOTVEC= 000020 812#
IZ00 = 001000 858#
IZ01 = 000400 858#
IZ02 = 000200 859#
IZ03 = 000100 859#
IZ04 = 000040 859#
IZ05 = 000020 859#
IZ06 = 000010 859#
IZ07 = 000004 859#
IZ08 = 000002 859#
IZ09 = 000001 859#
IZ11 = 002000 858#
IZ12 = 004000 858#
I.DSRD= 000007 1305# 1315
I.DSRS= 000006 1306#
I.DSXD= 000007 1307# 1314
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-13
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
I.DSXS= 000006 1308#
I.INTC= 000004 5056 5058 5098 5100
I.INTS= 000002 5048 5060
I.RTRN= 000006 5109
I.$$$$= 000000 6398 6456
KDSAR0= 172360 1630#
KDSAR1= 172362 1630#
KDSAR2= 172364 1630#
KDSAR3= 172366 1630#
KDSAR4= 172370 1630#
KDSAR5= 172372 1630#
KDSAR6= 172374 1630#
KDSAR7= 172376 1630#
KDSDR0= 172320 1630#
KDSDR1= 172322 1630#
KDSDR2= 172324 1630#
KDSDR3= 172326 1630#
KDSDR4= 172330 1630#
KDSDR5= 172332 1630#
KDSDR6= 172334 1630#
KDSDR7= 172336 1630#
KGBCC = 000002 1552# 6089 6091 6104 6106
KGDATA= 000004 1553# 6088* 6103*
KG.CCI= 000005 1550#
KG.CLR= 000020 1545# 1551 6100
KG.CRC= 000001 1548# 1551
KG.DDB= 000010 1546#
KG.DNE= 000200 1542#
KG.INI= 000121 1551#
KG.LRC= 000003 1549#
KG.LVL= 000000 4601
KG.SEN= 000100 1543# 1551
KG.STP= 000040 1544#
KG.STS= 170700 1541# 4601
KISAR0= 172340 1630# 3096# 3229* 4068* 4078 4092 4108 4133 7203* 7214 7275* 7314*
KISAR1= 172342 1630# 4070*
KISAR2= 172344 1630# 3098# 7317*
KISAR3= 172346 1630#
KISAR4= 172350 1630#
KISAR5= 172352 1630# 3100# 4078* 4092 4094* 4108* 4133* 4201* 4216* 4217 4222* 4224 4265
4312* 4323* 4324
KISAR6= 172354 1630# 3103# 3246* 3727 4669* 7214 7275 7317 7319*
KISAR7= 172356 1630# 3104# 3242* 4072*
KISDR0= 172300 1630# 3097# 3227 3229* 4069* 4079
KISDR1= 172302 1630# 4071*
KISDR2= 172304 1630# 3099#
KISDR3= 172306 1630#
KISDR4= 172310 1630#
KISDR5= 172312 1630# 3101# 4079* 4109* 4134* 4139* 4153* 4158 4160* 4202*
KISDR6= 172314 1630# 3102# 3728 4668*
KISDR7= 172316 1630# 4073*
KMC.LV= 000000 4642 4652
KT11 016726R 3241* 7110 7195 7212 7273 7312 7354#
KW.INE= 000100 1661# 4484 4512 4516
KW.P.L= 000000 4615
KW.TIC= 000200 1663#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-14
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
LDERR 016334R 7217 7244#
LE.DAT= 177516 1678#
LE.DNE= 000200 1674# 6398
LE.ERR= 100000 1673# 6391
LE.INE= 000100 1675# 6397 6398
LE.LVL= 000004 1667# 4602
LE.STS= 177514 1671# 4602
LE.VEC= 000200 1668# 4602
LE0DAT= 177516 1677# 1678
LE0STS= 177514 1670# 1671
LE1DAT= 177522 1683#
LE1STS= 177520 1682#
LPBCTR= 000006 1752# 6418* 6452*
LPBSAD= 000004 1750# 6417* 6453* 6454*
LPCBUF= 000014 1768# 6454
LPCCTR= 000015 1769#
LPCKSM= 000017 1772#
LPCSRA= 000000 1694#
LPCSRB= 000002 1725#
LPPCTR= 000010 1756#
LPRAMD= 000012 1760# 6409
LPRBSZ= 000020 1774#
LPTDAT= 000016 1771#
LP.B16= 000020 1696# 1722 6455
LP.B17= 000040 1696# 1722 6455
LP.CHI= 020000 1695#
LP.DEM= 000002 1728#
LP.DH = 002000 1695# 6420
LP.DNE= 000200 1696#
LP.DV = 100000 1726#
LP.ERR= 100000 1695#
LP.GO = 000001 1697# 1723 6455
LP.GOE= 000001 1728#
LP.IE = 000100 1696# 1723 6420 6456
LP.LOI= 000400 1696# 6408 6425 6430 6436 6442
LP.LVL= 000004 1689# 4603
LP.MDS= 000014 1721# 6420
LP.MD0= 000004 1697# 1718 1719 1720 1721
LP.MD1= 000010 1697# 1721
LP.MPE= 000020 1728#
LP.NRD= 020000 1726#
LP.OFL= 000200 1727#
LP.ONL= 004000 1695# 6445
LP.OPT= 004000 1727#
LP.PAR= 010000 1726#
LP.PEN= 000002 1697# 1723 6420
LP.PER= 000040 1728#
LP.PGZ= 040000 1695#
LP.RDL= 002000 1761#
LP.RIN= 004000 1761#
LP.RP = 010000 1761# 1762
LP.RPE= 000010 1728#
LP.RPI= 000400 1761#
LP.RSE= 001000 1696# 6408 6425 6430 6436 6442
LP.RTR= 001000 1761#
LP.SYN= 000004 1728#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-15
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
LP.TS0= 000400 1727# 6424
LP.TS1= 001000 1727# 6424
LP.TS2= 002000 1727# 6424
LP.VEC= 000754 1690# 4603
LP.VFE= 000100 1727#
LP.VFR= 010000 1695#
LP.XAD= 000060 1722# 6420
LP.180= 040000 1726#
LP0STS= 175400 1692# 4603
MDCSR 001174R 3704# 6147
MDCSRP 001172R 3703# 6145 6148* 6150*
MD.CLR= 040000 1076# 6144 6184 6302
MD.CWR= 020000 1076# 6336
MD.LLU= 004000 1076#
MD.RMI= 001000 1077# 6174 6178
MD.RMO= 002000 1077# 6335 6336 6370
MD.RUN= 100000 1076#
MD.SLU= 010000 1076#
MD.SMP= 000400 1077# 6176 6180
MG.ANR= 100000 1596# 4123
MG.APL= 040000 1596#
MG.ARO= 020000 1596# 4123
MG.DAD= 000020 1598#
MG.EMT= 001000 1597#
MG.ENB= 000001 1598# 4066
MG.IDN= 000200 1597#
MG.KDS= 000004 1623#
MG.MD0= 000040 1597#
MG.MD1= 000100 1597#
MG.MNT= 000400 1597#
MG.PG0= 000002 1598#
MG.PG1= 000004 1598#
MG.PG2= 000010 1598#
MG.SDS= 000002 1623#
MG.TMM= 010000 1596#
MG.UDS= 000001 1623#
MMGLVL= 000007 816#
MMGSR0= 177572 1595# 4026 4029 4066 4074* 4123
MMGSR1= 177574 1618#
MMGSR2= 177576 1620#
MMGSR3= 172516 1622#
MMGVEC= 000250 816# 4062
MPE11 = 001000 1386#
MP.ENB= 000001 1786#
MP.ERR= 100000 1783#
MP.LVL= 000007 1779#
MP.REG= 172100 1781#
MP.VEC= 000114 1778#
MP.WWP= 000004 1785#
M$$MGE= 000000 192# 4031 4058 4183 4289
NDH11 = 000000 199# 5294
NLINES= 000060 3702#
NODAT 016302R 7207 7225#
NODEV 000220R 3125 3127 3198#
NXMLVL= 000007 809#
NXMVEC= 000004 809# 3765* 3772* 3777* 4028* 4206* 4314* 4477* 4479* 4723* 4725* 4751* 5188*
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-16
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
5190* 5231*
N.CD11 000552R 3645# 4598
N.CI11 000564R 3647# 3823
N.CO11 000573R 3648# 3805
N.CR11 000557R 3646# 4600
N.DH11 000603R 3649#
N.DJ11 000610R 3650#
N.DL.A 000622R 3652#
N.DL.E 000631R 3653# 4644 4645 4646
N.DL01 000615R 3651#
N.DMC1 000650R 3655# 4649 6211
N.DM11 000640R 3654#
N.DN11 000656R 3656#
N.DP11 000663R 3657#
N.DQ11 000670R 3658#
N.DS11 000675R 3659#
N.DTE2 000702R 3660# 4617
N.DUP1 000715R 3662# 4643
N.DU11 000710R 3661#
N.DV11 000723R 3663#
N.DZ11 000730R 3664# 4653
N.KG11 000735R 3665# 4601
N.KMC1 000744R 3666# 4642 4652 6200
N.KT11 000752R 3667#
N.KW.L 000757R 3668# 4471
N.KW.P 000766R 3669# 4615
N.LE11 001002R 3671# 4602
N.LK11 000775R 3670#
N.LP11 001007R 3672# 4603
N.MM11 001014R 3673#
N.NL11 001024R 3674#
N.PP11 001060R 3677# 4604
N.PR11 001065R 3678# 4605
N.P611 001040R 3675#
N.RC11 001072R 3679# 4608
N.RF11 001077R 3680# 4609
N.RH11 001111R 3682# 4610
N.RK11 001104R 3681# 4613
N.RP11 001116R 3683# 4611
N.RX11 001125R 3684# 4614
N.R611 001050R 3676#
N.TA11 001132R 3685# 4612
N.TC11 001137R 3686# 4606
N.TM11 001144R 3687# 4607
PAGE0 = 000000 1645# 4080 4110
PAGE0B= 000000 1645#
PAGE1 = 020000 1645#
PAGE1B= 000200 1645# 4070
PAGE2 = 040000 1645#
PAGE2B= 000400 1645#
PAGE3 = 060000 1645#
PAGE3B= 000600 1645#
PAGE4 = 100000 1645#
PAGE4B= 001000 1645#
PAGE5 = 120000 1645# 4081 4111 4135 4209 4320
PAGE5B= 001200 1645#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-17
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
PAGE6 = 140000 1645#
PAGE6B= 001400 1645#
PAGE7 = 160000 1645#
PAGE7B= 007600 1645# 1646# 4072 4224
PARM 016356R 7193 7264#
PASS = 000002 301 302#
PDP11 = 000042 181# 582 707 3964 4385
PDZ0 = 000001 867#
PDZ1 = 000002 867#
PDZ2 = 000004 867#
PD.A = 000200 1635#
PD.ACF= 000007 1637# 4158 4160
PD.AC0= 000001 1635# 1637 4065 4109 4134 4139 4153 4202
PD.AC1= 000002 1635#
PD.AC2= 000004 1635# 1637
PD.ED = 000010 1635#
PD.PLF= 077400 1636# 4065 4134 4153 4202
PD.PL0= 000400 1634# 1636 4109
PD.PL1= 001000 1634#
PD.PL2= 002000 1634#
PD.PL3= 004000 1634#
PD.PL4= 010000 1634#
PD.PL5= 020000 1634#
PD.PL6= 040000 1634# 1636
PD.W = 000100 1635#
PGMLD0 016124R 7171#
PGMLD2 016154R 7174 7180#
PHYLIM 001170R 3701# 4230* 4324
POSMSK= 000200 828# 829# 830# 858# 859# 867# 875# 876# 1076# 1077# 1411# 1412# 1413#
1435# 1448# 1460# 1461# 1481# 1596# 1597# 1598# 1623# 1634# 1635# 1695# 1696#
1697# 1726# 1727# 1728# 1761#
PP.DAT= 177556 1808#
PP.ERR= 100000 1804#
PP.INE= 000100 1806#
PP.LVL= 000004 1798# 4604
PP.RDY= 000200 1805#
PP.STS= 177554 1802# 4604
PP.VEC= 000074 1799# 4604
PP0STS= 177554 1801#
PR.BSY= 004000 1814#
PR.DAT= 177552 1819#
PR.DNE= 000200 1815#
PR.ERR= 100000 1813#
PR.INE= 000100 1816#
PR.LVL= 000004 1796# 4605
PR.STS= 177550 1811# 4605
PR.VEC= 000070 1797# 4605
PR..RE= 000001 1817#
PR0 = 000000 788#
PR0STS= 177550 1810#
PR1 = 000040 789# 790 791 792 793 794 795
PR2 = 000100 790#
PR3 = 000140 791#
PR4 = 000200 792#
PR5 = 000240 793#
PR6 = 000300 794#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-18
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
PR7 = 000340 795#
PS = 177776 745# 3720* 4483* 4511* 4829* 4899* 4994* 5001* 5046* 5054* 5088* 5093* 5125
5130 5134 5138 5142 5146 5150 5154 6173* 6407*
PWFLVL= 000007 813#
PWFVEC= 000024 813#
PZ00 = 000040 867#
PZ08 = 000010 867#
PZ09 = 000020 867#
PZ11 = 000100 867#
PZ12 = 000200 867#
P6.LVL= 000007 1790#
RAMDAT= 007777 1762#
RAMLOD= 000014 1720#
RCVDRV= ****** GX 7136
RC.LVL= 000000 4608
RF.LVL= 000000 4609
RG.MSC= 000012 1218#
RG.PRA= 000000 1208#
RG.PRC= 000001 1209#
RG.PTA= 000002 1210#
RG.PTC= 000003 1211#
RG.SRA= 000004 1212#
RG.SRC= 000005 1213#
RG.STA= 000006 1214#
RG.STC= 000007 1215#
RG.SYN= 000011 1217#
RH.LVL= 000000 4610
RK.LVL= 000000 4613
RM = 000010 1393# 6015
RP.LVL= 000000 4611
RX.LVL= 000000 4614
R6.LVL= 000007 1792#
SEL0 = 000000 1091#
SEL2 = 000002 1091#
SEL4 = 000004 1091#
SEL6 = 000006 1091#
SENDIT 016076R 7128#
SETREG 000224R 3143 3210#
SETUNT 000072R 3122 3135#
SLEW = 000020 1763#
SNDDRV= ****** GX 6856 7129 7334
SNDER 016310R 7232# 7245 7251
SNDIT 016102R 7129# 7237 7239
SNDOS 016054R 7122# 7178 7258
SPCVFY= 000000 210#
SR0 = 177572 3105# 3243*
START 000000R 3116# 3628 7357
STKLEN= 000200 297
ST2ENB= 100000 875#
SW = 177570 756#
S..AMC= 000000 306#
S..BDT= 000011 317#
S..CHK= 000012 318#
S..CNK= 000003 310#
S..CTY= 000005 312#
S..DL1= 000002 308# 309
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-19
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
S..DTE= 000002 309#
S..ILS= 000004 311#
S..KW1= 000007 314#
S..MEM= 000006 313# 4366 4377
S..MMG= 000014 320#
S..MPD= 000013 319#
S..NCN= 000010 315#
S..NXM= 000001 307#
TA.LVL= 000000 4612
TC.A16= 000020 1863#
TC.A17= 000040 1862#
TC.BAR= 177346 1875#
TC.CLK= 000100 1838#
TC.CMD= 177342 1846#
TC.DAT= 177350 1877#
TC.DT0= 000020 1840#
TC.DT1= 000010 1841#
TC.DT2= 000004 1842#
TC.D16= 000001 1844#
TC.D17= 000002 1843#
TC.ERR= 100000 1848#
TC.ILO= 010000 1832#
TC.INE= 000100 1861#
TC.LVL= 000006 1825# 4606
TC.MMT= 000040 1839#
TC.MTE= 020000 1831#
TC.NXM= 000400 1836#
TC.PAR= 040000 1830#
TC.RDA= 000006 1867#
TC.RDY= 000200 1860#
TC.REV= 004000 1851#
TC.RMT= 000002 1865#
TC.SAT= 000000 1864#
TC.SST= 000010 1868#
TC.STS= 177340 1827# 4606
TC.UPS= 000200 1837#
TC.US0= 000000 1852#
TC.US1= 000400 1853#
TC.US2= 001000 1854#
TC.US3= 001400 1855#
TC.US4= 002000 1856#
TC.US5= 002400 1857#
TC.US6= 003000 1858#
TC.US7= 003400 1859#
TC.VEC= 000214 1823# 4606
TC.WCR= 177344 1873#
TC.WRA= 000016 1871#
TC.WTM= 000012 1869#
TC..BM= 002000 1834#
TC..DI= 010000 1850#
TC..DM= 001000 1835#
TC..EZ= 100000 1829#
TC..MM= 020000 1849#
TC..RD= 000004 1866#
TC..SE= 004000 1833#
TC..WR= 000014 1870#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-20
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
TENAD1= 000010 1364#
TENAD2= 000012 1365#
TM.A16= 000020 1925#
TM.A17= 000040 1924#
TM.BAR= 172526 1938#
TM.BCR= 172524 1936#
TM.BGL= 004000 1891#
TM.BOT= 000040 1897#
TM.BTE= 000400 1894#
TM.CRE= 020000 1889#
TM.CUR= 000200 1922#
TM.DAT= 172530 1940#
TM.D72= 000000 1907#
TM.D75= 020000 1908#
TM.D78= 040000 1909#
TM.D98= 060000 1910#
TM.EOF= 040000 1888#
TM.EOT= 002000 1892#
TM.ERR= 100000 1906#
TM.INE= 000100 1923#
TM.LVL= 000005 1883# 4607
TM.MTC= 172522 1904#
TM.NXM= 000200 1895#
TM.OFL= 000000 1926#
TM.PAE= 010000 1890#
TM.RDL= 172532 1942#
TM.REW= 000016 1933#
TM.RLE= 001000 1893#
TM.RWS= 000002 1901#
TM.SLR= 000100 1896#
TM.STS= 172520 1885# 4607
TM.TSD= 000010 1899#
TM.TUR= 000001 1902#
TM.US0= 000000 1914#
TM.US1= 000400 1915#
TM.US2= 001000 1916#
TM.US3= 001400 1917#
TM.US4= 002000 1918#
TM.US5= 002400 1919#
TM.US6= 003000 1920#
TM.US7= 003400 1921#
TM.VEC= 000224 1881# 4607
TM.WEF= 000006 1929#
TM.WEG= 000014 1932#
TM.WRL= 000004 1900#
TM..GO= 000001 1934#
TM..IC= 100000 1887#
TM..LP= 004000 1912#
TM..PC= 010000 1911#
TM..RD= 000002 1927#
TM..SF= 000010 1930#
TM..SR= 000012 1931#
TM..US= 003400 1913#
TM..WR= 000004 1928#
TM.7CH= 000020 1898#
TOP32 = ****** GX 7267
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-21
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
TO10AD= 000020 1371#
TO10BC= 000014 1366#
TO10BM= 000001 1400#
TO10DB= 000400 1387#
TO10DN= 100000 1379#
TO10DT= 000024 1373#
TO10ER= 020000 1381#
TO11AD= 000022 1372#
TO11BC= 000016 1367#
TO11BM= 020000 1369#
TO11CM= 007777 1370#
TO11DB= 004000 1383# 1384
TO11DN= 000200 1388#
TO11DT= 000026 1374#
TO11ER= 000002 1395# 1396
TO11IB= 100000 1368#
TRPLVL= 000007 815#
TRPVEC= 000034 815# 3759*
TSTMOD= 000004 1718#
UDSAR0= 177660 1628#
UDSAR1= 177662 1628#
UDSAR2= 177664 1628#
UDSAR3= 177666 1628#
UDSAR4= 177670 1628#
UDSAR5= 177672 1628#
UDSAR6= 177674 1628#
UDSAR7= 177676 1628#
UDSDR0= 177620 1628#
UDSDR1= 177622 1628#
UDSDR2= 177624 1628#
UDSDR3= 177626 1628#
UDSDR4= 177630 1628#
UDSDR5= 177632 1628#
UDSDR6= 177634 1628#
UDSDR7= 177636 1628#
UISAR0= 177640 1628#
UISAR1= 177642 1628#
UISAR2= 177644 1628#
UISAR3= 177646 1628#
UISAR4= 177650 1628#
UISAR5= 177652 1628#
UISAR6= 177654 1628#
UISAR7= 177656 1628#
UISDR0= 177600 1628#
UISDR1= 177602 1628#
UISDR2= 177604 1628#
UISDR3= 177606 1628#
UISDR4= 177610 1628#
UISDR5= 177612 1628#
UISDR6= 177614 1628#
UISDR7= 177616 1628#
VCTLIM 000550R 3632# 3756
VFULOD= 000010 1719#
VRS = 000002 269#
XCD$$ = 010712R 4598#
XCD11 010712R 4598 5187#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-22
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
XCR$$ = 011226R 4600#
XCR11 011226R 4600 5252#
XDL.E$= 011452R 4644# 4645# 4646#
XDL.E1 011452R 4644 4645 4646 5513#
XDMC$$= 012276R 4649#
XDMC11 012276R 4649 6140#
XDTE2$= 011500R 4617#
XDTE21 011500R 4617 5990#
XDUP$$= 011752R 4643#
XDUP11 011752R 4643 6044#
XDZ$$ = 012006R 4653#
XDZ11 012006R 4653 6068#
XFER 016524R 7226 7283 7300#
XFERR 016342R 7250# 7323
XKG$$ = 012030R 4601#
XKG11 012030R 4601 6085#
XKMC$$= 012276R 4642# 4652#
XKMC11 012276R 4642 4652 6141#
XKW.P$= 013666R 4615#
XKW.P1= ****** U 4615
XLE$$ = 013356R 4602#
XLE11 013356R 4602 6390#
XLP$$ = 013424R 4603#
XLP11 013424R 4603 6406#
XNL11 013664R 6476#
XPP$$ = 013666R 4604#
XPP11 = ****** U 4604
XPR$$ = 013666R 4605#
XPR11 = ****** U 4605
XRC$$ = 013666R 4608#
XRC11 = ****** U 4608
XRF$$ = 013666R 4609#
XRF11 = ****** U 4609
XRH$$ = 013666R 4610#
XRH11 = ****** U 4610
XRK$$ = 013666R 4613#
XRK11 = ****** U 4613
XRP$$ = 013666R 4611#
XRP11 = ****** U 4611
XRX$$ = 013666R 4614#
XRX11 = ****** U 4614
XTA$$ = 013666R 4612#
XTA11 = ****** U 4612
XTC$$ = 013666R 4606#
XTC11 = ****** U 4606
XTM$$ = 013666R 4607#
XTM11 = ****** U 4607
X..... 013666R 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 6613#
Z = 000121 6088# 6100#
ZTALL = 007777 877#
ZT00 = 001000 876#
ZT01 = 000400 876#
ZT02 = 000200 876#
ZT03 = 000100 876#
ZT04 = 000040 876#
ZT05 = 000020 876#
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 42-23
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- USER SYMBOLS
ZT06 = 000010 876#
ZT07 = 000004 876#
ZT08 = 000002 876#
ZT09 = 000001 876#
ZT11 = 002000 876#
ZT12 = 004000 876#
$DEVTP 016722RG 3119* 7343 7351#
$MMADR= 172400 1628# 1630#
$UNIT 016724RG 3142* 7342 7352#
$$ = 000176 1628# 1630# 6045# 6047
$$HERE= 000400 3628# 3629
. = 016730R 3117 3125 3194# 3211 3224 3254 3367# 3688# 3690# 3693# 3694# 3696# 3697#
3698# 3699# 3701# 3761 3814 3832# 3847# 3852# 3860 3870# 3901# 3963# 3968
4021 4047 4061# 4170# 4178 4200# 4233# 4248# 4261# 4270# 4275 4311# 4500#
4519# 4522 4594# 4599 4760# 4876# 4878# 4880# 4964# 4969# 5086# 5128 5165#
5166# 5211# 5224# 5235# 5261# 5284# 6019# 6109# 6216# 6354# 6449# 6616# 6653#
6867# 6922# 6941# 6946# 6961# 6984 6985# 6987 6988# 6990 6991# 6993 6996#
6998 6999# 7047# 7048 7052 7351# 7352# 7353# 7356
TERBOT - TERTIARY NETWORK BOOTSTRAP DNMAC X24.07-563 06-DEC-79 10:34 PAGE 43
C11DMC.MAC 10-AUG-79 16:08 CROSS REFERENCE TABLE -- MACRO NAMES
ABORT 3420# 4044
ASCIZ 729#
CHKCHR 3545# 6086
CKSERR 3414# 4365 4376 5009 5071 5083 6091 6106 6236 6265 6351
CKVECT 3591#
CKVEC1 3604#
CK11SC 3391# 3899 4042 4044 4098 4100 4118 4125 4145 4155 4157 4243 4251 4335 4366
4377 4490 4494 4498 4758 4786 4910 4920 4927 4962 4967 4972 4977 5004 5010
5066 5072 5084 5096 5209 5222 5233 5259 5269 5282 6003 6012 6017 6092 6107
6203 6214 6237 6266 6352 6393 6447 6875
COUNT 341#
DEFVEC 800# 809 810 811 812 813 814 815 816
DEVICE 3471# 4598 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612
4613 4614 4615 4617 4642 4643 4644 4645 4646 4649 4652 4653
DQREGS 1226#
EXCH 721#
FALLR 364# 3761 3814 3860 3968 4021 4047 4178 4275 4522
FIELD 439# 775 1636 1637 6045
GREATR 384#
KGLOAD 1555# 6088 6100
LDVECT 3614#
LESSER 376#
MMNAM1 1572# 1628 1630
MMNAM2 1577# 1628 1630
NAMASC 411#
NAMEBT 389# 828 829 830 858 859 867 875 876 1076 1077 1411 1412 1413 1435
1448 1460 1461 1481 1596 1597 1598 1623 1634 1635 1695 1696 1697 1726 1727
1728 1761
NAMSTR 3638# 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658
3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673
3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687
RESTOR 358# 6112 6127 6644 6688 6689 6708 6755 6782
SAVE 350# 6085 6117 6636 6676 6685 6686 6701 6740 6769
SPL 709# 3720 4511 4829 5001 5054 5093
STOPCD 326#
$CKINT 3441# 6398 6456
.DEC 372#
.INC 368#
. ABS. 000000 000 CON RW ABS LCL I
016730 001 CON RO ABS GBL D
ERRORS DETECTED: 0
DEFAULT GLOBALS GENERATED: 6
C11DMC,C11DMC/CRF=C11DMC
RUN-TIME: 12 18 3 SECONDS
RUN-TIME RATIO: 131/34=3.8
CORE USED: 17K (33 PAGES)