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