Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/loader/dtempt.list
There are no other files named dtempt.list in the archive.
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39
C11DTE.MAC 10-AUG-79 16:05 TABLE OF CONTENTS
154 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
208 END OF MODULE CHKDEF
209
217 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
281 STOPCD'S
315 GENERAL MACRO DEFINITIONS
555 PDP-11 EIS EMULATORS
711 SYMBOL DEFINITIONS
774 HARDWARE DEFINITIONS
775 VECTORS
795 DEVICES
796 CD20 - PUNCHED CARD READER
866 CR11 - PUNCHED/MARK SENSE CARD READER
889 CTY - CONSOLE TELETYPE
908 DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
949 DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
951 DL10 - UNIBUS-TO-MBUS INTERFACE
979 DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
1032 DM11BB - MODEM CONTROLLER FOR DH11
1049 DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1073 DN11 - AUTODIALER
1091 DP11 - SYNCHRONOUS LINE INTERFACE
1123 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1244 DS11 - SYNCHRONOUS LINE INTERFACE
1332 DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1379 DU11 - SYNCHRONOUS LINE CONTROLLER
1381 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1471 DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1488 EIA PIN DEFINITIONS
1516 KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1547 KT11 - MEMORY MANAGEMENT MODULE
1625 KW11 - LINE TIME CLOCK
1642 LP11 - LINE PRINTER CONTROLLER
1662 LP20 - LINEPRINTER CONTROLLER
1753 MM11-LP PARITY MEMORY
1765 PA611 - TYPESET READER/PUNCH
1771 PC11 - PAPER TAPE READER/PUNCH INTERFACE
1798 TC11 - DECTAPE CONTROLLER
1856 TM11 - MAGNETIC TAPE CONTROLLER
1921 END OF DEVICE DEFINITIONS
2974 MODULE END
2975
2987 TITLE PAGE
3002 MACROS AND DEFINITIONS
3184 MOVE TO TOP OF PHYSICAL MEMORY
3297 MOP PROCESSOR
3539 DTE SUBROUTINES
3661 DATA
3717 CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3787 CHK11 MACROS
3788 CK11SC
3842 $CKINT
3874 DEVICE
3950 CHKCHR
3966 CKVECT, CKVEC1
4051 CHK11 DEVICE NAME TABLE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39
C11DTE.MAC 10-AUG-79 16:05 TABLE OF CONTENTS
4129 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4459 CHECK KT11 HARDWARE
4685 CHECK MEMORY - SLIDING BIT PATTERN
4868 CHECK KW11-L HDW
4925 CHECK DL10 HDW
4959 DEVICE SCAN AND CHECK
5058 CHK11 COMPLETION
5070 END OF CHK11 MAINLINE
5072 GENERAL SUBROUTINES
5075 LOOK FOR AND CHECK SYSTEM DEVICES
5273 BIT BY BIT SET/CLEAR TEST
5319 BIT SET/BIT CLEAR TEST FOR DL10
5341 PRINT DEVICE ID ROUTINE
5366 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5405 CHECK INTERRUPTS AND FIND DEVICE LEVEL
5497 GENERAL INTERRUPT FIELDER FOR CHK11
5549 DEVICE DIAGNOSTICS
5564 CHECK CD20 HARDWARE
5622 CHECK CR11 HARDWARE
5671 CHECK DH11 HDW
5872 CHECK DL11-A HDW
5880 CHECK DL11-E HDW
5901 CHECK DM11BB HDW
5949 CHECK DN11 HDW
5964 CHECK DP11 HDW
5988 CHECK DQ11 HDW
6300 CHECK DS11 HDW
6352 CHECK DTE20 HARDWARE
6395 CHECK DU11 HDW
6407 CHECK DUP11 HDW
6431 CHECK DZ11 HDW
6452 CHECK KG11 HARDWARE
6499 CHECK KMC/DMC HARDWARE
6748 CHECK LP11 HARDWARE
6769 CHECK LP20 HARDWARE
6827 CHECK MD11 HDW
6839 DUMMY NULL DEVICE CHECKER
6845 CHECK PA611P HARDWARE
6858 CHECK PA611R HARDWARE
6871 CHECK PP11 HARDWARE
6887 CHECK PR11 HARDWARE
6916 CHECK RH11 HARDWARE
6930 CHECK TC11 HARDWARE
6963 CHECK TM11 HARDWARE
6976 NULL DIAGNOSTIC
6989 TTY SUPPORT FOR TYPE OUTS
7167 REMOTE OUTPUT HANDLER
7237 UNEXPECTED BUS TRAP HANDLER
7251 CK11SC/TRAP INSTRUCTION HANDLER
7412 MODULE END
7413 PROGRAM END
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1
C11DTE.MAC 10-AUG-79 16:05
1 .TITLE CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
2 .IDENT /X2A.17/
3 000000 .REPT 0
4 :
5 : : :
6 : :
7 :::: :::: : ::: : : :: :: :: ::: : :::: :::::
8 : : : : : : : : :: : : : : : : :
9 : : : : : : : : : : : : : :
10 : : : : : : : : : : : : : :
11 : : : : :::: :::: : : :::: : : : :
12 :::: :::: : : ::: ::: : : : ::
13 : : : : :
14 :: ::: :::
15
16 AND
17
18 ::
19 : : :: :
20 : :
21 :::: :: ::: ::: : ::: :: : :: :: ::: :: ::
22 : : : : : : : : : : : : : : :: :
23 : : : ::: : : :::: : : : : ::::: :
24 : : : : : : : : : : : : : :
25 : : : : : : : : : : : : : : : : :
26 ::: : ::: ::: ::: ::: ::: : ::: : : : ::: :::
27
28
29 COPYRIGHT (C) 1976,1977,1978 BY
30 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
31
32 THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
33 ONLY IN ACORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
34 INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
35 COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAIABLE TO ANY
36 OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
37 TRANSFERRED.
38 T
39 THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
40 AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
41 CORPORATION.
42 C
43 DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
44 SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
45 .ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-1
C11DTE.MAC 10-AUG-79 16:05
47 000000 .REPT 0
48 .TITLE CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
49 :
50 : : :
51 : :
52 :::: :::: : ::: : : :: :: :: ::: : :::: :::::
53 : : : : : : : : :: : : : : : : :
54 : : : : : : : : : : : : : :
55 : : : : : : : : : : : : : :
56 : : : : :::: :::: : : :::: : : : :
57 :::: :::: : : ::: ::: : : : ::
58 : : : : :
59 :: ::: :::
60
61 AND
62
63 ::
64 : : :: :
65 : :
66 :::: :: ::: ::: : ::: :: : :: :: ::: :: ::
67 : : : : : : : : : : : : : : :: :
68 : : : ::: : : :::: : : : : ::::: :
69 : : : : : : : : : : : : : :
70 : : : : : : : : : : : : : : : : :
71 ::: : ::: ::: ::: ::: ::: : ::: : : : ::: :::
72
73
74 COPYRIGHT (C) 1976,1977,1978 BY
75 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
76
77 THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
78 ONLY IN ACORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
79 INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
80 COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAIABLE TO ANY
81 OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
82 TRANSFERRED.
83 T
84 THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
85 AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
86 CORPORATION.
87 C
88 DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
89 SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
90 .ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-2
C11DTE.MAC 10-AUG-79 16:05
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 ; "DTEMOP" 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 22-AUG-78 L. WEBBER ;
112 ; ORIGINAL COMBINATION OF DTEMOP AND CHK11 ;
113 ; .02 23-AUG-78 L. WEBBER ;
114 ; MODIFIED LINKAGE SO THAT CHK11 IS CALLED AFTER ;
115 ; THE LOADER HAS RELOCATED ITSELF TO HIGH CORE ;
116 ; .04 27-AUG-78 L. WEBBER ;
117 ; DID .02 OVER AGAIN RIGHT ;
118 ; .05 28-AUG-78 L. WEBBER ;
119 ; TOOK OUT TTY DIALOG & ELIMINATED MSGS FOR ;
120 ; NONEXISTENT HARDWARE ;
121 ; .06 28-AUG-78 L. WEBBER ;
122 ; WROTE REMOTE OUTPUT HANDLER TO SEND MOP MSGS ;
123 ; OVER DTE ;
124 ; .08 10-NOV-78 L. WEBBER ;
125 ; MODIFIED REMOTE OUTPUT HANDLER TO INTERFACE ;
126 ; CORRECTLY TO DTE DRIVER ;
127 ; .10 17-NOV-78 L. WEBBER ;
128 ; TOOK "DATA CHECK" OPTION OUT OF DTE DRIVER ;
129 ; NOT WORK WITH CHK11); FIXED PRINT OF MINOR ;
130 ; VERSION; ENHANCED TO SEND NULL LINE TO REMOTE ;
131 ; DEVICE ;
132 ; .11 20-NOV-78 L. WEBBER
133 ; ELIMINATED BLANK LINE FOR NONEXISTENT DEVICES; ;
134 ; ELIMINATED DEVICE TESTS FOR DH11,DN11,DP11, ;
135 ; DU11,KG11, AND RH11, AND TOOK OUT IMPROPER ;
136 ; FIXED KMC ENTRY FOR DN25 ;
137 ; .12 29-MAR-79 L. WEBBER ;
138 ; TOOK OUT "DO YOU WANT TO CONTINUE" ;
139 ; .13 30-MAR-79 L. WEBBER ;
140 ; MODIFIED CR11/CD11 DIFFERENTIATION CODE ;
141 ; .14 19-APR-79 L. WEBBER ;
142 ; FIXED CR11 DIFFERENTIATION CODE ;
143 ; .15 22-APR-79 L. WEBBER ;
144 ; MODIFIED LOAD PARAMETER PROCESSING TO BE CON- ;
145 ; SISTENT WITH -11M DECNET CONVENTIONS ;
146 ; .16 21-JUN-79 L. WEBBER ;
147 ; ADDED DEVICE CHECK FOR KDZ'S KMC'S ;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-3
C11DTE.MAC 10-AUG-79 16:05
148 ; .17 10-AUG-79 L. WEBBER ;
149 ; MODIFIED MEMORY MANAGEMENT TEST TO SET UP ;
150 ; PDR 6 ;
151 ; ;
152 ;**********************************************************************;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-4
C11DTE.MAC 10-AUG-79 16:05 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
154 .SBTTL CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
155 ;
156 ;
157 000042 PDP11 = 34. ; EXPECTED CPU IS 11/34
158 ;
159 ;;;; CKSTD = 0 ; SYSTEM CONFIGURATION IS PDP-11 STANDARD
160 ;;;; SY0880 = 0 ; INCLUDE SYSTEM 880 QUIRKS
161 000043 CKDN2X = 1!2!40 ; SYSTEM CONIGURATION IS DN20, DN21, OR DN25
162 ; (SPECIFIED BY BIT NUMBERS SET IN CKDN2X DEF -
163 ; B0 SAYS DN20, B1 SAYS DN21, B5 SAYS DN25)
164 177777 INCLUD = -1 ;
165 000000 EXCLUD = 0 ;
166 ;
167 ; CKNODV = 0 ; IF DEFINED, LIST NONEXISTENT DEVICES
168 ;
169 000000 M$$MGE = 0 ; IF DEFINED, ASSEMBLE FOR MAPPED SYSTEM
170 ;
171 ;
172 ;
173 177777 FTCD20 = INCLUD
174 177777 FTCR11 = INCLUD
175 000000 FTDH11 = EXCLUD
176 000000 NDH11 = 1&FTDH11 ;NUMBER OF DH11'S
177 000000 FTDJ11 = EXCLUD
178 000000 FTDL10 = EXCLUD
179 000000 FTDL1A = EXCLUD
180 177777 FTDL1E = INCLUD
181 000000 FTDM11 = INCLUD&FTDH11 ;DM11BB DEPENDS ON EXISTENCE OF DH11
182 000120 DM.TIM = 80. ; DM11BB SETTLE TIME IN MEM CYCLES
183 177777 FTDMC = INCLUD
184 000000 FTDN11 = EXCLUD
185 000000 FTDP11 = EXCLUD
186 000000 FTDQ11 = EXCLUD
187 000000 SPCVFY = EXCLUD&FTDQ11 ;DQ11 SPECIAL CHARACTER TEST
188 000000 FTDS11 = EXCLUD
189 177777 FTDTE = INCLUD
190 000000 FTDU11 = EXCLUD
191 177777 FTDUP1 = INCLUD
192 177777 FTDZ11 = INCLUD
193 000000 FTKG11 = EXCLUD
194 177777 FTKMC = INCLUD&FTDMC ;KMC IS SUPERSET OF DMC
195 000000 FTKMCL = EXCLUD&FTKMC ;INCLUDE ONLY IF CRAM IMAGE IS SUPPLIED
196 177777 FTLE11 = INCLUD
197 177777 FTLP20 = INCLUD
198 000000 FTMD11 = EXCLUD
199 000000 FTPA61 = EXCLUD
200 000000 FTPP11 = EXCLUD
201 000000 FTPR11 = EXCLUD
202 000000 FTRH11 = EXCLUD
203 000000 FTRK11 = EXCLUD
204 000000 FTRX11 = EXCLUD
205 000000 FTTC11 = EXCLUD
206 000000 FTTM11 = EXCLUD
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-5
C11DTE.MAC 10-AUG-79 16:05 END OF MODULE CHKDEF
208 .SBTTL END OF MODULE CHKDEF
209 .SBTTL
210 ;****************************************************************
211 ;
212 ; END OF CHKDEF
213 ;
214 ;****************************************************************
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-6
C11DTE.MAC 10-AUG-79 16:05
216 .TITLE S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
217 .SBTTL S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
218 ;
219 ;
220 ;
221 ;
222 ;
223 ;
224 ;
225 ;
226 ;
227 ;
228 ;
229 ;
230 ; COPYRIGHT 1974, 1975, 1976,1977
231 ; DIGITAL EQUIPMENT CORP., MAYNARD MASS.
232 ;
233 ; SEPT 25,1974 - DMCC/EGF/LAD/EJW/TEP
234 ;
235 ;
236 ;
237 ;
238 ;
239 ;
240 ;
241 ;
242 ;
243 ;
244 ;
245 ;
246 000002 VRS = 02 ;FILE EDIT NUMBER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-7
C11DTE.MAC 10-AUG-79 16:05 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
248 .ENABL LC ;LOWER CASE IS LOWER CASE
249 .ENABL AMA ;USE ABSOLUTE RATHER THAN RELATIVE PC ADDRESSING
250 ;;;; .DSABL GBL ;DISABLE GLOBAL REFERENCES
251 ;;;; .LIST MC,MD,ME ;
252 ;;;; .NLIST CND ;
253 ;;;; .LIST MEB ;LIST ONLY CODE PRODUCING PARTS OF MACROS
254 ;
255 ; DGUTS NON ZERO REQUESTS THE "DON'T GIVE UP THE SHIP" FAILSOFT FEATURE
256 ;
257 .IIF NDF DGUTS,DGUTS=0
258 ;
259 001 .IF NE DGUTS
260 ;IF WE'RE NOT TO GIVE UP THE SHIP, TURN OFF DEBUGGING TRAPS
261 ;THEN WE'LL DIE ONLY ON HARD ERRORS.
262 DEBUG=0
263 FTASRT=0
264 FT.CHK=0
265 000 .ENDC
266 ;
267 .IIF NDF FT.HLP,FT.HLP= 1 ;1 = TYPE OUT STOPCD INFORMATION
268 ;
269 .IIF NDF DEBUG,DEBUG=1 ;LEVEL OF DEBUG CODE INCLUDED
270 ; 0 = NONE = KEEP AS SMALL AS POSSIBLE
271 ; 1 = SOME - KEEP TRACKS, DIE ON SOME ERRORS
272 ; -1 = DIE ON ALL ERRORS
273 ;
274 .IIF NDF STKLEN,STKLEN= 200 ;LENGTH OF SYSTEM STACK
275 ;
276 .IIF NDF FT.CHK,FT.CHK= 1 ;1 EQUALS CHECK STUFF ON FLY
277 ;
278 .IIF NDF PASS,PASS=0 ;COUNT ASSEMBLER PASSES
279 000002 PASS=PASS+1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-8
C11DTE.MAC 10-AUG-79 16:05 STOPCD'S
281 .SBTTL STOPCD'S
282 ;
283 000000 S..AMC = 0 ;ASSERT MACRO CALL - DEFAULT CODE
284 000001 S..NXM = 1 ;BUS TRAPS'S, ADDRESS ERROR'S, ETC.
285 000002 S..DL1 = 2 ;DL10 ERRORS
286 000002 S..DTE = S..DL1 ;DTE20 ERRORS (NOTE - SAME AS DL10)
287 000003 S..CNK = 3 ;CHUNKS ARE MESSED UP
288 000004 S..ILS = 4 ;ILLEGAL INSTRUCTION
289 000005 S..CTY = 5 ;NO CTY
290 000006 S..MEM = 6 ;MEMORY ERROR (E.G. PARITY, OR CAN'T READ WRITE BITS)
291 000007 S..KW11 = 7 ;KW11 ERROR
292 000010 S..NCN = 10 ;NO CONNECTION FOR RECEIVED DATA
293 ; OR CONNECTION NUMBER USED BY SOME OTHER NODE
294 000011 S..BDT = 11 ;BAD DATA TYPE REQUESTED BY 10
295 000012 S..CHK = 12 ;CHECK 11 ERROR
296 000013 S..MPD = 13 ;MAPPED ASSEMBLY RUNNING IN UNMAPPED HARDWARE
297 000014 S..MMG = 14 ;MEMORY MANAGEMENT ERROR
298 ;
299 ;STOP CODE MACRO
300 ; FIRST ARGUMENT IS CODE FOR STOP
301 ; SECOND ARGUMENT IS SEVERITY
302 ;
303 .MACRO STOPCD CD,TYPE
304 .IF NB <CD>
305 S.....=S..'CD
306 .IFF ;NB <CD>
307 S.....=0
308 .ENDC ;NB <CD>
309 Z=1
310 .IIF IDN <.'TYPE>,<.DEBUG>, Z=DEBUG
311 .IIF NE Z, TRAP S.....
312 S.....=0
313 .ENDM STOPCD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-9
C11DTE.MAC 10-AUG-79 16:05 GENERAL MACRO DEFINITIONS
315 .SBTTL GENERAL MACRO DEFINITIONS
316 ;
317 ;
318 .MACRO COUNT A,?X
319 INC A+2
320 BNE X
321 INC A
322 X:
323 .ENDM COUNT
324 ;
325 ; REGISTER SAVE MACRO
326 ;
327 .MACRO SAVE A
328 .IRP X,<A>
329 MOV X,-(SP) ;PUSH X ON THE STACK
330 .ENDR ;IRP X
331 .ENDM SAVE
332 ;
333 ; REGISTER RESTORE MACRO
334 ;
335 .MACRO RESTORE A
336 .IRP X,<A>
337 MOV (SP)+,X ;POP X OFF THE STACK
338 .ENDR ;IRP X
339 .ENDM RESTORE
340 ;
341 .MACRO FALLR DEST
342 .IIF NE DEST-. .ERROR DEST-. ;**** ERRONEOUS CODE FALL THROUGH ATTEMPTED ****
343 .ENDM FALLR
344 ;
345 .MACRO .INC ARG
346 ARG = ARG + 1
347 .ENDM .INC
348 ;
349 .MACRO .DEC ARG
350 ARG = ARG - 1
351 .ENDM .DEC
352 ;
353 .MACRO LESSER A,B,C ;DEFINE A AS THE LESSER OF B AND C
354 .IF GT B-C
355 A = C
356 .IFF
357 A = B
358 .ENDC
359 .ENDM LESSER
360 ;
361 .MACRO GREATR A,B,C ;DEFINE A AS THE GREATER OF B AND C
362 LESSER A,C,B
363 .ENDM GREATR
364 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-10
C11DTE.MAC 10-AUG-79 16:05 GENERAL MACRO DEFINITIONS
366 .MACRO NAMEBT REG,IPOSMS,LIST
367 .IF NB IPOSMS
368 POSMSK = IPOSMS
369 .ENDC
370 .IF DF POSMSK
371 .IF EQ POSMSK
372 POSMSK = 100000
373 .ENDC
374 .IFF
375 POSMSK = 100000
376 .ENDC
377 .IRP NAME,<LIST>
378 .IF EQ POSMSK
379 .ERROR NAME ;**** POSITION MASK UNDERFLOW ****
380 .ENDC
381 .IF NB NAME
382 NAME = POSMSK
383 .ENDC
384 POSMSK = <POSMSK/2>&77777
385 .ENDR ;IRP NAME
386 .ENDM NAMEBT
387 ;
388 .MACRO NAMASC
389 $$ = 0
390 .IRP X,<NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL>
391 X = $$
392 .INC $$
393 .ENDR ;IRP X
394 ;
395 .IRP X,<BS,HT,LF,VT,FF,CR,SO,SI>
396 X = $$
397 .INC $$
398 .ENDR ;IRP X
399 ;
400 .IRP X,<DLE,DC1,DC2,DC3,DC4,NAK,SYN,ETB>
401 X = $$
402 .INC $$
403 .ENDR ;IRP X
404 ;
405 .IRP X,<CAN,EM,SUB,ESC,FS,GS,RS,US>
406 X = $$
407 .INC $$
408 .ENDR ;IRP X
409 ;
410 DEL = 177
411 ;
412 ERRCHR = '\!200 ;DEC STD ERROR CHARACTER
413 ;
414 .ENDM NAMASC
415 ;
416 .MACRO FIELD NAME,HI,LO
417 NAME = <HI-1+HI>&^C<LO-1>
418 .ENDM FIELD
419 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-11
C11DTE.MAC 10-AUG-79 16:05 GENERAL MACRO DEFINITIONS
421 ; HIDDEN HERE IN THE SOURCE CODE ARE A WHOLE BUNCH OF DEBUGGING
422 ; AND OTHER SPECIAL MACROS WHICH ARE SUPRESSED IN THE ASSEMBLY IN
423 ; THE INTEREST OF SQUATTER LISTINGS (AND FASTER ASSEMBLING)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-12
C11DTE.MAC 10-AUG-79 16:05 PDP-11 EIS EMULATORS
555 .SBTTL PDP-11 EIS EMULATORS
556 ;
557 ;MACROS TO SIMULATE INSTRUCTIONS FOR SIMPLE PDP11'S
558 ;
559 001 .IF LT <PDP11-30.>
560 ;
561 ;MACRO TO SIMULATE SOB ON SIMPLE PDP11'S
562 ;
563 .MACRO SOB CNT,WHERE
564 .IIF GT WHERE-., .ERROR 0; SOB FORWARD BRANCH ????
565 .IIF NE <.-WHERE>&^C176, .ERROR WHERE; SOB BRANCH RANGE ????
566 002 .IF NE WHERE-.
567 DEC CNT
568 BNE WHERE
569 .IFF
570 BRLOC=.
571 DEC CNT
572 BNE BRLOC
573 001 .ENDC ;NE WHERE-.
574 .ENDM SOB
575 ;
576 ;MACRO TO DO AN XOR FOR SIMPLE PDP11'S
577 ;
578 ; ARGUMENTS: A-- IS ALWAYS A REGISTER, B-- REFLECTS
579 ; THE DESTINATION OPERAND, C-- IS USUALLY ON THE STACK
580 ;
581 .MACRO XOR2 A02,B02,B12,B22,C02,C12,C22
582 MOV A02,C02
583 BIC B02,C12
584 BIC A02,B12
585 BIS C22,B22
586 .ENDM XOR2
587 ;
588 .MACRO XOR1 A01,B01,B11,B21
589 XOR2 A01,B01,B11,B21,-(SP),(SP),(SP)+
590 .ENDM XOR1
591 ;
592 .MACRO XORERR AV,BV,DB
593 002 .IF B DB
594 .ERROR 74000; XOR SOURCE ('AV') NOT A REGISTER ???
595 .IFF
596 .ERROR <74000+<AV*100>+BV>; XOR WITH DEST DB IS NOT SUPPORTED ????
597 001 .ENDC
598 HALT
599 .ENDM XORERR
600 ;
601 .MACRO XMODE Y,S,D
602 XMOD'Y \QD,S,D
603 .ENDM XMODE
604 ;
605 .MACRO XMOD0 X,S,D
606 XOR1 S,D,D,D
607 .ENDM XMOD0
608 ;
609 .MACRO XMOD10 X,S,D
610 XOR1 S,D,D,D
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-13
C11DTE.MAC 10-AUG-79 16:05 PDP-11 EIS EMULATORS
611 .ENDM XMOD10
612 ;
613 .MACRO XMOD20 X,S,D
614 XOR1 S,(R'X),(R'X),(R'X)+
615 .ENDM XMOD20
616 ;
617 .MACRO XMOD30 X,S,D
618 XOR1 S,@(R'X),@(R'X),@(R'X)+
619 .ENDM XMOD30
620 ;
621 .MACRO XMOD40 X,S,D
622 XOR1 S,-(R'X),(R'X),(R'X)
623 .ENDM XMOD40
624 ;
625 .MACRO XMOD50 X,S,D
626 XOR1 S,@-(R'X),@(R'X),@(R'X)
627 .ENDM XMOD50
628 ;
629 .MACRO XMOD60 X,S,D
630 XOR1 S,D,D,D
631 .ENDM XMOD60
632 ;
633 .MACRO XMOD70 X,S,D
634 XOR1 S,D,D,D
635 .ENDM XMOD70
636 ;
637 .MACRO XOR A,B
638 .NTYPE QA,A ;QA IS 6-BIT SOURCE SPEC
639 .NTYPE QB,B ;QB IS 6-BIT DEST SPEC
640 QC=QB&70 ;QC IS DEST ADDRESS MODE
641 QD=QB&7 ;QD IS DEST ADDRESS REGISTER
642 002 .IF NE QA&^C7 ;QA MUST BE REGISTER DIRECT
643 XORERR \QA
644 .IFF
645 ;QA IS REGISTER DIRECT, DECODE DEST SPEC
646 003 .IF LE <QD-5> ;DEST USES USER GPR (0-5)
647 XMODE \QC,A,B ;CALL MODE SELECTOR MACRO BASED ON QC
648 .IFF
649 ;DEST USES SP OR PC
650 .IIF EQ <QC-0> ;MODE IS REGISTER DIRECT (ERROR)
651 .IIF EQ <QB-06>, XORERR \QA,\QB,B
652 .IIF EQ <QB-07>, XORERR \QA,\QB,B
653 .IIF EQ <QC-1> ;MODE IS REGISTER DEFERRED
654 .IIF EQ <QB-16>, XOR1 A,2(SP),2(SP),(SP)
655 .IIF EQ <QB-17>, XORERR \QA,\QB,B
656 .IIF EQ <QC-2> ;MODE IS POP (PC IMMEDIATE)
657 .IIF EQ <QB-26>, XORERR \QA,\QB,B
658 004 .IF EQ <QB-27>
659 MOV B,.+22
660 XOR1 A,.+12,.+6,(PC)+
661 .WORD 0 ;UNLABELED LITERAL
662 003 .ENDC
663 .IIF EQ <QC-3> ;MODE IS DEFER AND POP (PC ABSOLUTE)
664 .IIF EQ <QB-36>, XOR1 A,@2(SP),@2(SP),@(SP)+
665 .IIF EQ <QB-37>, XOR1 A,B,B,B
666 .IIF EQ <QC-4> ;MODE IS PUSH
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-14
C11DTE.MAC 10-AUG-79 16:05 PDP-11 EIS EMULATORS
667 .IIF EQ <QB-46>, XORERR \QA,\QB,B
668 .IIF EQ <QB-47>, XORERR \QA,\QB,B
669 .IIF EQ <QC-5> ;MODE IS PUSH AND DEFER
670 .IIF EQ <QB-56>, XORERR \QA,\QB,B
671 .IIF EQ <QB-57>, XORERR \QA,\QB,B
672 .IIF EQ <QC-6> ;MODE IS INDEXED
673 .IIF EQ <QB-66>, XOR1 A,2+B,2+B,B
674 .IIF EQ <QB-67>, XOR1 A,B,B,B
675 .IIF EQ <QC-7> ;MODE IS DEFERRED INDEXED
676 .IIF EQ <QB-76>, XORERR \QA,\QB,B
677 .IIF EQ <QB-77>, XOR1 A,B,B,B
678 002 .ENDC ;USER GPR VS. SP/PC
679 001 .ENDC ;QA IS REGISTER DIRECT
680 .ENDM XOR
681 ;
682 000 .ENDC;.IF LT <PDP11-30.>
683 ;
684 001 .IF LT <PDP11-45.>
685 ;MACRO TO SET PROCESSOR LEVEL
686 .MACRO SPL Q
687 .IF NE Q
688 BIS #BR7,PS ;SET PROCESSOR STATUS TO LEVEL 7
689 .ENDC
690 .IF NE <Q-7>
691 BIC #40*<7&<^C<Q>>>,PS ;NOW DROP TO LEVEL Q
692 .ENDC
693 .ENDM SPL
694 000 .ENDC;.IF LT <PDP11-45.>
695 ;
696 ;MACRO TO SIMULATE EXCH INSTRUCTION
697 ;
698 .MACRO EXCH A,B
699 MOV A,-(P) ;SAVE C(A) ON THE STACK
700 MOV B,A ;PUT C(B) INTO A
701 MOV (P)+,B ;PUT ORIGINAL C(A) INTO B
702 .ENDM EXCH
703 ;
704 ;MACRO TO GENERATE AN .ASCIZ STRING TERMINATED WITH .EVEN
705 ;
706 .MACRO ASCIZ STRING
707 .ASCIZ \STRING\
708 .EVEN
709 .ENDM ASCIZ
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-15
C11DTE.MAC 10-AUG-79 16:05 SYMBOL DEFINITIONS
711 .SBTTL SYMBOL DEFINITIONS
712 ;
713 000000 R0 = %0
714 000001 R1 = %1
715 000002 R2 = %2
716 000003 R3 = %3
717 000004 R4 = %4
718 000005 R5 = %5
719 000006 SP = %6 ;STACK POINTER
720 000007 PC = %7
721 ;
722 177776 PS = 177776 ;PROCESSOR STATUS WORD
723 ; 000001 ;C (CARRY)
724 ; 000002 ;V (OVERFLOW)
725 ; 000004 ;Z (ZERO)
726 ; 000010 ;N (NEGATIVE)
727 ; 000020 ;T (TRAP)
728 ; 000340 ;PRIORITY LEVEL (0-7)
729 ; 004000 ;REGISTER SET
730 ; 030000 ;PREVIOUS MODE
731 ; 140000 ;CURRENT MODE
732 ; ;MODE: 00=KERNEL, 01=SUPERVISOR, 11=USER
733 177570 SW=177570 ;ADDRESS OF SWTCHES
734 ;
735 000001 B0 = 1
736 000002 B1 = 2
737 000004 B2 = 4
738 000010 B3 = 10
739 000020 B4 = 20
740 000040 B5 = 40
741 000100 B6 = 100
742 000200 B7 = 200
743 000400 B8 = 400
744 001000 B9 = 1000
745 002000 B10 = 2000
746 004000 B11 = 4000
747 010000 B12 = 10000
748 020000 B13 = 20000
749 040000 B14 = 40000
750 100000 B15 = 100000
751 ;
752 000000' FIELD ALLBTS,B15,B0
753 ;
754 ;DEFINE PROCESSOR LEVELS
755 ;
756 000000 BR0 = 0*40
757 000040 BR1 = 1*40
758 000100 BR2 = 2*40
759 000140 BR3 = 3*40
760 000200 BR4 = 4*40
761 000240 BR5 = 5*40
762 000300 BR6 = 6*40
763 000340 BR7 = 7*40
764 ;
765 000000 PR0 = 0
766 000040 PR1 = 40
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-16
C11DTE.MAC 10-AUG-79 16:05 SYMBOL DEFINITIONS
767 000100 PR2 = 2*PR1
768 000140 PR3 = 3*PR1
769 000200 PR4 = 4*PR1
770 000240 PR5 = 5*PR1
771 000300 PR6 = 6*PR1
772 000340 PR7 = 7*PR1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-17
C11DTE.MAC 10-AUG-79 16:05 HARDWARE DEFINITIONS
774 .SBTTL HARDWARE DEFINITIONS
775 .SBTTL VECTORS
776 ;
777 .MACRO DEFVEC TYP,VQ,LQ
778 TYP'VEC= VQ ;VECTOR FOR TYP IS VQ
779 .IF B LQ
780 TYP'LVL= 7 ;DEFAULT LEVEL IS LEVEL 7
781 .IFF
782 TYP'LVL= LQ ;LEVEL OF TYP IS LQ
783 .ENDC ;B LQ
784 .ENDM DEFVEC
785 ;
786 000000' DEFVEC NXM,04 ;BUS-TIMEOUT INTERRUPT
787 000000' DEFVEC ILS,10 ;ILLEGAL INSTRUCTION INTERRUPT
788 000000' DEFVEC BPT,14 ;BREAKPOINT TRAP
789 000000' DEFVEC IOT,20 ;I/O TRAP INSTRUCTION
790 000000' DEFVEC PWF,24 ;POWER FAIL INT'S
791 000000' DEFVEC EMT,30 ;EMT CALL'S
792 000000' DEFVEC TRP,34 ;TRAP INSTRUCTION
793 000000' DEFVEC MMG,250 ;MEMORY MANAGEMENT FAULT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-18
C11DTE.MAC 10-AUG-79 16:05 DEVICES
795 .SBTTL DEVICES
796 .SBTTL CD20 - PUNCHED CARD READER
797 ;
798 ; CD20 HARDWARE DEVICE REGISTER DEFINITIONS
799 ;
800 000004 CD.LVL = 4 ;BUS REQUEST PRIORITY
801 000230 CD.VEC = 230 ;CD20 VECTOR
802 ;
803 177160 CD.STS = 177160
804 000000 CDST = 0 ;FIRST STATUS AND CONTROL REGISTER
805 000000' NAMEBT CDST,0,<CD.ERR,CD.RDC,CD.EOF,CD.OFL,CD.DER,CD.DLT>
806 000000' NAMEBT ,,<CD.NXM,CD.PWC,CD.RDY,CD.IE,CD.B17,CD.B16>
807 000000' NAMEBT ,,<CD.ONL,CD.HPE,CD.PAC,CD.GO>
808 000060 CD.XAD = CD.B17!CD.B16 ;HIGH ORDER BUS ADDRESS MASK
809 000000 .REPT 0
810 CD.ERR = OR OF ALL ERROR CONDITIONS, RO
811 CD.RDC = READER CHECK, PHYSICAL READER ERROR, RO
812 CD.EOF = END OF FILE BUTTON PRESSED, RO
813 CD.OFL = OFF LINE, RO
814 CD.DER = DATA ERROR, ILLEGAL PACKED CHAR, RO
815 CD.DLT = DATA LATE, NPR TIMING ERROR, RO
816 CD.NXM = NONEXISTENT MEMORY REFERENCE DURING DMA, RO
817 CD.PWC = POWER CLEAR, INITIALIZE CONTROLLER, WO
818
819 CD.RDY = CONTROLLER READY FOR ACTION, RO
820 CD.IE = INTERRUPT ENABLE, RW
821 CD.B17,CD.B16 = HIGHEST ORDER BUS ADDRESS BITS, RW
822 CD.ONL = TRANSITION TO ONLINE OCCURRED, RO
823 CD.HPE = HOPPER EMPTY, RO
824 CD.PAC = READ MODE SWITCH, RW
825 CD.GO = START READER COMMAND, WO
826 .ENDR
827 ;
828 000002 CDCC = 2 ;COLUMN COUNT REGISTER
829 000120 CD.COL = 80. ;80 COLUMN READER
830 ;
831 000004 CDBA = 4 ;CURRENT ADDRESS REGISTER
832 ;
833 000006 CDDB = 6 ;DATA BUFFER
834 ; IMAGE MODE DEFINITIONS
835 000000' NAMEBT CDDB,0,<CD.CER,IDZ2,IDZ1,IDZ0,IZ12,IZ11,IZ00,IZ01>
836 000000' NAMEBT ,,<IZ02,IZ03,IZ04,IZ05,IZ06,IZ07,IZ08,IZ09>
837 000000 .REPT 0
838 CD.CER = CHARACTER PACKING ERROR
839 IDZ- = IMAGE MODE PACKED DIGIT ZONE BITS
840 IZ-- = IMAGE MODE ZONE PUNCH BITS
841 .ENDR
842 ;
843 ; PACKED MODE DEFINITIONS
844 000000' NAMEBT CDDB,200,<PZ12,PZ11,PZ00,PZ09,PZ08,PDZ2,PDZ1,PDZ0>
845 000000 .REPT 0
846 PZ-- = PACKED MODE ZONE PUNCH BITS
847 PDZ- = PACKED MODE PACKED DIGIT ZONE BITS
848 .ENDR
849 ;
850 000006 CDST2 = CDDB ;SECOND STATUS AND CONTROL REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-19
C11DTE.MAC 10-AUG-79 16:05 CD20 - PUNCHED CARD READER
851 ; MULTIPLEXED USE OF DATA BUFFER REGISTER
852 000000' NAMEBT CDST2,0,<ST2ENB,CD.RCK,CD.PCK,CD.SCK>
853 000000' NAMEBT ,,<ZT12,ZT11,ZT00,ZT01,ZT02,ZT03,ZT04,ZT05,ZT06,ZT07,ZT08,ZT09>
854 007777 ZTALL = 7777
855 000000 .REPT 0
856 ST2ENB = CDST2 ENABLE
857 RCHK = READ CHECK (CARD ERROR)
858 PCHK = PICK CHECK (FEED ERROR)
859 SCHK = STACK CHECK (FEED ERROR)
860 ZT-- = ZONE TEST BITS
861 ZTALL = OR OF ALL ZONE TEST BITS
862 .ENDR
863 ;
864 000010 CDHRSZ = 10 ;SIZE OF REGISTER BLOCK IN BYTES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-20
C11DTE.MAC 10-AUG-79 16:05 CR11 - PUNCHED/MARK SENSE CARD READER
866 .SBTTL CR11 - PUNCHED/MARK SENSE CARD READER
867 ;
868 000006 CR.LVL= 6 ; PROCESSOR LEVEL FOR CR11 INTERRUPTS
869 000230 CR.VEC= 230
870 ;
871 177160 CR0STS = 177160
872 177160 CR.STS= 177160 ; CR11 STATUS REGISTER
873 ;
874 100000 CR.ERR= B15 ; ERROR
875 040000 CR.DNE= B14 ; CARD DONE
876 020000 CR.HCK= B13 ; HOPPER CHECK
877 010000 CR.MCK= B12 ; MOTION CHECK
878 004000 CR.TIM= B11 ; TIMING ERROR
879 002000 CR.OLN= B10 ; BACK ONLINE AFTER BEING OFF
880 001000 CR.BSY= B9 ; BUSY
881 000400 CR.RDY= B8 ; NOT READY
882 000200 CR.CDN= B7 ; COLUMN DONE
883 000100 CR.INE= B6 ; INTERRUPT ENABLE
884 000002 CR.EJT= B1 ; EJECT
885 000001 CR.CFD= B0 ; CARD FEED
886
887 177162 CR.DAT= 177162 ; 12 LOW ORDER BITS ARE DATA
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-21
C11DTE.MAC 10-AUG-79 16:05 CTY - CONSOLE TELETYPE
889 .SBTTL CTY - CONSOLE TELETYPE
890 ;
891 ;CTY HARDWARE BITS
892 ;
893 177560 CTISTS = 177560
894 177562 CTICHR = 177562
895 000060 CTIVEC= 60
896 000004 CTILVL= 4 ; PRIORITY LEVEL
897 ;
898 000100 CI.INE= B6 ; CTY INPUT INTERRUPT ENABLE
899 ;
900 177564 CTOSTS = 177564
901 177566 CTOCHR = 177566
902 000064 CTOVEC= 64
903 000004 CTOLVL= 4 ; PRIORITY LEVEL
904 ;
905 000100 CO.INE= B6 ; CTY OUTPUT INTERRUPT ENABLE
906 000004 CO..MM= B2 ; CTY OUTPUT MAINT MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-22
C11DTE.MAC 10-AUG-79 16:05 DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
908 .SBTTL DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
909 160020 DHBASE= 160020 ;HARDWARE ADR OF FIRST DH11
910 000007 DH.LVL= 7 ;DH11 INTERRUPT LEVEL
911 ; 1ST WORD IS SYSTEM CONTROL REGISTER
912 000100 DH.RIE= B6 ;RECEIVE INTERRUPT ENABLE
913 000200 DH..RI= B7 ;RECEIVE INTERRUPT
914 000400 DH.CNX= B8 ;CLEAR NON EX MEM INT
915 001000 DH..MM= B9 ;MAINTANCE MODE
916 002000 DH.NXM= B10 ;NON EXISTENCE MEMORY
917 004000 DH..MC= B11 ;MASTER CLEAR
918 010000 DH.SIE= B12 ;STORAGE INTERRUPT ENABLE
919 020000 DH.TIE= B13 ;TRANSMIT INTERRUPT ENABLE
920 040000 DH..SI= B14 ;STORAGE INTERRUPT
921 100000 DH..TI= B15 ;TRANSMIT INTERRUPT
922 000002 DH.NRC=2 ; 2ND WORD IS NEXT RECEIVED CHAR REGISTER
923 000004 DH.LPR=4 ; 3RD WORD IS LINE PARAMETER REGISTER
924 000006 DH.CAR=6 ; 4TH WORD IS CURRENT ADDRESS REGISTER
925 000010 DH.BCR=10 ; 5TH WORD IS BUFFER COUNT REGISTER
926 000012 DH.BAR=12 ; 6TH WORD IS BUFFER ACTIVE REGISTER
927 000014 DH.BRK=14 ; 7TH WORD IS BREAK CONTROL REGISTER
928 000016 DH.SSR=16 ; 8TH WORD IS SILO STATUS REGISTER
929 ;
930 ;ON CHARS OUT OF SILO
931 040000 DHROVR= B14 ;DATA OVERRUN
932 020000 DHRFER= B13 ;FRAMMING ERROR
933 100000 DH.VDP= B15 ;VALID DATA PRESENT
934 040000 DH.DOV= B14 ;DATA OVER RUN
935 020000 DH..FE= B13 ;FRAMING ERROR
936 010000 DH..PE= B12 ;PARITY ERROR
937 ;
938 ;FOR LINE PARAMETERS
939 100000 DH.AEE= B15 ;AUTO ECHO ENABLE
940 040000 DH..HD= B14 ;HALF DUPLEX
941 000040 DH..OP= B5 ;ODD PARITY
942 000020 DH.PEN= B4 ;PARITY ENABLED
943 000004 DH.2SB= B2 ;2 STOP BITS
944 000000 DH.CL5= 0 ;5 BIT
945 000001 DH.CL6= B0 ;6 BIT
946 000002 DH.CL7= B1 ;7 BIT
947 000003 DH.CL8= B1!B0 ;8 BIT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-23
C11DTE.MAC 10-AUG-79 16:05 DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
949 .SBTTL DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-24
C11DTE.MAC 10-AUG-79 16:05 DL10 - UNIBUS-TO-MBUS INTERFACE
951 .SBTTL DL10 - UNIBUS-TO-MBUS INTERFACE
952 ;
953 ;DL10 - UNIBUS TO DECSYSTEM-10 MEMORY BUS INTERFACE
954 ;
955 100000 DL.BAS= 100000 ;BASE ADDRESS FOR 10 MEMORY
956 100000 DLBASE= DL.BAS ;
957 000170 DL.VEC= 170 ;VECTOR ADR FOR DL10
958 000004 DL.LVL= 4 ;CHANNEL FIVE
959 ;
960 100000 DL.STS=DLBASE ;1ST WORD IS STATUS
961 100000 DL.11I= B15 ; BIT 15 - 11 INT(INTERRUPTS IF 11-INT-ENB SET)
962 040000 DL.11C= B14 ; BIT 14 - CLEAR 11 INT
963 020000 DL.10I= B13 ; BIT 13 - 10 INT
964 010000 DL.10C= B12 ; BIT 12 - CLEAR 10 INT
965 004000 DL.NXM= B11 ; BIT 11 - NXM(INTERRUPTS IF ERR ENB SET)
966 002000 DL.CNX= B10 ; BIT 10 - CLEAR NXM
967 001000 DL.PAR= B9 ; BIT 09 - PAR ERR(INTERRUPTS IF ERR ENB SET)
968 000400 DL.CPE= B8 ; BIT 08 - CLEAR PAR ERR
969 000200 DL.WCO= B7 ; BIT 07 - WCOV(INTERRUPTS IF ERR ENB SET)
970 000100 DL.CWC= B6 ; BIT 06 - CLEAR WCOV
971 000040 DL.PEN= B5 ; BIT 05 - PORT ENABLE
972 000040 DLPENB= DL.PEN ;
973 000020 DL.B04= B4 ; BIT 04 - (GUESS !)
974 000010 DL.ERE= B3 ; BIT 03 - ERR ENABLE
975 000004 DL.INE= B2 ; BIT 02 - 11 INT ENB
976 000002 DL.B01= B1 ; BITS 00 & 01 - PIA
977 000001 DL.B00= B0 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-25
C11DTE.MAC 10-AUG-79 16:05 DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
979 .SBTTL DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
980 ;
981 ;
982 175610 DLDADR=175610 ; DL11 NUMBER ZERO DEVICE ADDRESS
983 000010 DLDSIZ=10 ; LENGTH OF DEVICE ADDRESS ASSIGNMENT
984 ;
985 ; CONTROL REGISTERS
986 ;
987 ;
988 000000 DLRSTS=0 ; RECEIVER STATUS AND CONTROL
989 ;
990 ; BIT ASSIGNMENTS
991 000001 DL..RE=B0 ; PAPER TAPE READER ENABLE (R/W)
992 000002 DL.DTR=B1 ; DATA TERMINAL READY (R/W)
993 000004 DL.RTS=B2 ; REQUEST TO SEND (R/W)
994 000010 DL.2XM=B3 ; SECONDARY XMIT (R/W)
995 000040 DL.DIE=B5 ; DATASET INTERRUPTS ENABLE (R/W)
996 000100 DL.RIE=B6 ; RECEIVER INTERRUPTS ENABLE (R/W)
997 000200 DL.ROK=B7 ; RECEIVER DONE (R)
998 002000 DL.2RC=B10 ; SECONDARY RECEIVE (R)
999 004000 DL.RGO=B11 ; RECEIVER ACTIVE (R)
1000 010000 DL.CAR=B12 ; CARRIER PRESENT (R)
1001 020000 DL.CTS=B13 ; CLEAR TO SEND (R)
1002 040000 DL.RNG=B14 ; DATASET RING (R)
1003 100000 DL.DSC=B15 ; DATASET STATUS CHANGE (R)
1004 ;
1005 ;
1006 000002 DLRBUF=2 ; RECEIVED CHARACTER BUFFER
1007 ;
1008 ; BIT ASSIGNMENTS
1009 000377 DL..RC=B0!B1!B2!B3!B4!B5!B6!B7 ;THE RECEIVED CHARACTER (R)
1010 010000 DL..PE=B12 ; PARITY ERROR (R)
1011 020000 DL..FE=B13 ; FRAMING ERROR (R)
1012 040000 DL.OVR=B14 ; RECEIVER OVER RUN (R)
1013 100000 DL.ERR=B15 ; RECEIVER ERROR DETECTED (R)
1014 ;
1015 ;
1016 ;
1017 000004 DLXSTS=4 ; XMITTER STATUS AND CONTROL REGISTER
1018 ;
1019 ; BIT ASSIGNMENTS
1020 000001 DL.BRK=B0 ; SEND BREAK (W)
1021 000004 DL..MM=B2 ; MAINTAINANCE MODE (R/W)
1022 000100 DL.XIE=B6 ; XMITTER INTERRUPTS ENABLE (R/W)
1023 000200 DL.XOK=B7 ; XMITTER READY FOR NEXT CHARACTDER (R)
1024 ;
1025 ;
1026 ;
1027 000006 DLXBUF=6 ; XMITTER CHARACTER BUFFER
1028 ;
1029 ; BIT ASSSIGNMENT
1030 000377 DL..XC=B0!B1!B2!B3!B4!B5!B6!B7 ; CHARACTER BEING XMITTED (W)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-26
C11DTE.MAC 10-AUG-79 16:05 DM11BB - MODEM CONTROLLER FOR DH11
1032 .SBTTL DM11BB - MODEM CONTROLLER FOR DH11
1033 ;
1034 170500 DMBASE= 170500 ;HDW ADR OF FIRST DM11
1035 ;
1036 000007 DM.LVL= 7 ;PROCESSOR LEVEL FOR DM11BB INTERRUPTS
1037 ;
1038 170500 B.DM11= 170500 ;FIRST DM11 ADR
1039 004000 DM.SCN= B11 ;CLEAR SCANNER
1040 002000 DM.INI= B10 ;CLEAR MULTIPLEXER
1041 001000 DM..MM= B9 ;MAINTENANCE MODE
1042 000400 DM.STP= B8 ;STEP TO NEXT LINE
1043 000200 DM.DNE= B7
1044 000100 DM.IEN= B6 ;INTERRUPT ENABLE
1045 000040 DM.ENB= B5 ;SCAN ENABLE
1046 000020 DM.BSY= B4 ;CLEAR SCAN STILL PERCOLATING
1047 000017 DM.ALI= B0!B1!B2!B3 ;LINE NUMBER FIELD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-27
C11DTE.MAC 10-AUG-79 16:05 DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1049 .SBTTL DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
1050 ;
1051 000005 DMC.LVL = 5
1052 ;
1053 000000' NAMEBT ,0,<MD.RUN,MD.CLR,MD.CWR,MD.SLU,MD.LLU>
1054 000000' NAMEBT ,,<MD.RMO,MD.RMI,MD.SMP,B7,B6,B5,B4,B3,B2,B1,B0>
1055 000000 .REPT 0
1056 MD.RUN - RUN THE MICROPROCESSOR
1057 MD.CLR - CLEAR THE MICROPROCESSOR
1058 MD.CWR - CRAM WRITE
1059 MD.SLU - STEP LINE UNIT
1060 MD.LLU - LOOP LINE UNIT
1061 MD.RMO - ROM OUTPUT
1062 MD.RMI - ROM INPUT
1063 MD.SMP - STEP MICROPROCESSOR
1064 .ENDR
1065 .IRP X,<0,2,4,6>
1066 SEL'X = X
1067 BSEL'X = X
1068 .ENDR ;X
1069 .IRP X,<1,3,5,7>
1070 BSEL'X = X
1071 .ENDR ;X
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-28
C11DTE.MAC 10-AUG-79 16:05 DN11 - AUTODIALER
1073 .SBTTL DN11 - AUTODIALER
1074 ;
1075 000007 DN.LVL= 7 ;PROCESSOR LEVEL FOR DN INTERRUPTS
1076 175200 DNBASE=175200
1077 ;
1078 100000 DN.PWI= B15 ;POWER INDICATE
1079 040000 DN.ACR= B14 ;ABANDON CALL AND RETRY
1080 010000 DN.DLO= B12 ;DATA LINE OCCUPIED
1081 000200 DN.DNE= B7 ;DONE
1082 000100 DN..IE= B6 ;INTERRUPT ENABLE
1083 000040 DN.DSS= B5 ;DATA SET STATUS
1084 000020 DN.PND= B4 ;PRESENT NEXT DIGIT
1085 000010 DN..MM= B3 ;MAINTENANCE MODE
1086 000004 DN..ME= B2 ;MASTER ENABLE
1087 000002 DN..DP= B1 ;DIGIT PRESENT
1088 000001 DN..CR= B0 ;CALL REQUEST
1089 007400 DN.DGT=B8+B9+B10+B11 ;DIGIT BITS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-29
C11DTE.MAC 10-AUG-79 16:05 DP11 - SYNCHRONOUS LINE INTERFACE
1091 .SBTTL DP11 - SYNCHRONOUS LINE INTERFACE
1092 ;
1093 000007 DP.LVL= 7 ;PROCESSOR LEVEL FOR DP11 INTERRUPTS
1094 ;
1095 ; "A" RECEIVER STATUS REGISTER (ADR = XXXXX0)
1096 ;
1097 010000 DP..CP= B12 ;CHARACTER PARITY; 1=ODD, 0=EVEN
1098 004000 DP..RA= B11 ;RECEIVE ACTIVE
1099 000200 DP..RD= B7 ;RECEIVE DONE
1100 000100 DP.RIE= B6 ;RECEIVE DONE INTERRUPT ENABLE
1101 000010 DP..MR= B3 ;MISCELLANEOUS RECEIVE
1102 000004 DP..MM= B2 ;MAINTENANCE MODE
1103 000002 DP..HD= B1 ;HALF DUPLEX
1104 000001 DP..SS= B0 ;STRIP SYNC
1105 ;
1106 ; "B" TRANSMIT AND CONTROL STATUS REG (ADR = XXXXX2)
1107 ;
1108 100000 DP..CF= B15 ;CARRIER FLAG
1109 040000 DP.ROF= B14 ;RECEIVE OVERRUN FLAG
1110 020000 DP.RNG= B13 ;RING FLAG
1111 010000 DP.MRY= B12 ;MODEM READY
1112 004000 DP.CAR= B11 ;CARRIER
1113 002000 DP.CTS= B10 ;CLEAR TO SEND
1114 001000 DP.RTS= B9 ;REQUEST TO SEND
1115 000200 DP..TD= B7 ;TRANSMIT DONE
1116 000100 DP.TIE= B6 ;TRANSMIT DONE INTERRUPT ENABLE
1117 000040 DP.SIE= B5 ;STATUS INTERRUPT ENABLE
1118 000020 DP.MIS= B4 ;MISCELLANEOUS
1119 000010 DP..MT= B3 ;MISCELLANEOUS TRANSMIT
1120 000002 DP..IS= B1 ;IDLE SYNC
1121 000001 DP.DTR= B0 ;TERMINAL READY
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-30
C11DTE.MAC 10-AUG-79 16:05 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1123 .SBTTL DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1124 ;
1125 000007 DQ.LVL= 7 ;PROCESSOR LEVEL FOR DQ11 INTERRUPTS
1126 ;
1127 ; THE BASE ADR FOR THE DQ11 IS CONTAINED IN THE LINE BLOCK
1128 ; RECEIVE STATUS ( ADR =XXXXX0 )
1129 ;
1130 000001 DQ.RGO= B0 ; RECEIVE GO
1131 000002 DQ.SSY= B1 ; STRIP SYNC
1132 000004 DQ.SEC= B2 ; 0= PRIMARY,1=SECONDARY
1133 000010 DQ.HD= B3 ; HALF DUPLEX(= MASK INPUT WHEN XMT ACTIVE)
1134 000020 DQ.CIE= B4 ; CHAR INTERRUPT ENABLE
1135 000040 DQ.RIE= B5 ; RECEIVE DONE INTERRUPT ENABLE
1136 000100 DQ.RDS= B6 ; RECEIVE DONE (SECONDARY) FLAG
1137 000200 DQ.RDP= B7 ; RECEIVE DONE (PRIMARY) FLAG
1138 007400 DQ.CHR= 7400 ; CHAR DETECTED
1139 000400 DQ.ETB= B8 ; CHAR WAS AN ETB
1140 001000 DQ.ETX= B9 ; CHAR WAS AN ETX
1141 002000 DQ.ENQ= B10 ; CHAR WAS AN ENQ
1142 004000 DQ.SYN= B11 ; SPECIAL CHAR WAS A SYNC
1143 010000 DQ.RAC= B12 ; RECEIVE ACTIVE
1144 ; 060000 ; USER OPTION
1145 100000 DQ.VCH= B15 ; VCHAR FLAG
1146 110021 DQ.RKL= DQ.RAC!DQ.VCH!DQ.RGO!DQ.CIE ; BITS TO STOP RECEIVER
1147 ;
1148 ; TRANSMIT STATUS ( ADR = XXXXX2 )
1149 ;
1150 000001 DQ.XGO= B0 ; TRANSMIT GO
1151 ; B1 ; IDLE MODE
1152 000004 DQ.SEC= B2 ; 0= PRIMARY ACTIVE,1=SECONDARY ACTIVE
1153 000010 DQ.EIE= B3 ; ERR INTERRUPT ENABLE
1154 000020 DQ.DIE= B4 ; DATA SET INTERRUPT ENABLE
1155 000040 DQ.XIE= B5 ; TRANSMIT DONE INTERRUPT ENABLE
1156 000100 DQ.XDS= B6 ; TRANSMIT DONE(SECONDARY)
1157 000200 DQ.XDP= B7 ; TRANSMIT DONE(PRIMARY)
1158 000400 DQ.RTS= B8 ; REQUEST TO SEND
1159 001000 DQ.DTR= B9 ; DATA TERMINAL READY
1160 002000 DQ.DSR= B10 ; DATA SET READY
1161 004000 DQ.RNG= B11 ; RING
1162 010000 DQ.CAR= B12 ; CARRIER
1163 020000 DQ.CTS= B13 ; CLEAR TO SEND
1164 ; B14 ; USER OPTION
1165 100000 DQ.DSF= B15 ; DATA SET FLAG
1166 ;
1167 ; REG/ERR REGISTER ( ADR =XXXXX4 )
1168 ;
1169 000001 DQ.XCL= B0 ; TRANSMIT CLOCK LOSS
1170 000002 DQ.RCL= B1 ; RECEIVE CLOCK LOSS
1171 000004 DQ.XLE= B2 ; TRANSMIT LATENCY ERROR
1172 000010 DQ.RLE= B3 ; RECEIVE LATENCY ERROR
1173 000020 DQ.XNX= B4 ; TRANSMIT NONEX MEM
1174 000040 DQ.RNX= B5 ; RECEIVE NONEX MEM
1175 000100 DQ.BCC= B6 ; RECEIVE BCC ERROR
1176 000200 DQ.VRC= B7 ; RECEIVE VRC ERROR
1177 ; 007400 ; REG SELECT FOR REFERENCE TO XXXXX6
1178 010000 DQ.MEM= B12 ; WRENABLE 060000
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-31
C11DTE.MAC 10-AUG-79 16:05 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1179 000020 DQ.MBM= 020 ; BYTE EQUIVALENT OF ABOVE
1180 ; 060000 ; MEM EXT OR ENTER T/EXIT T
1181 ; B15 ; ERROR INTERRUPT
1182 ;
1183 ; SECONDARY REGISTERS ( ADR = XXXXX6 )
1184 ;
1185 000000 RG.PRA= 0 ; PRIMARY RECEIVE BA
1186 000001 RG.PRC= 1 ; PRIMARY RECEIVE CC
1187 000002 RG.PTA= 2 ; PRIMARY TRANSMIT BA
1188 000003 RG.PTC= 3 ; PRIMARY TRANSMIT CC
1189 000004 RG.SRA= 4 ; SECONDARY RECEIVE BA
1190 000005 RG.SRC= 5 ; SECONDARY RECEIVE CC
1191 000006 RG.STA= 6 ; SECONDARY TRANSMIT BA
1192 000007 RG.STC= 7 ; SECONDARY TRANSMIT CC
1193 ;;;; 10 ; CHAR DET REG
1194 000011 RG.SYN= 11 ; SYNC REG
1195 000012 RG.MSC= 12 ; MISC REG
1196 000040 DQ.MC= B5 ; MASTER CLEAR (SORT OF)
1197 ;;;; 13 ; TRANSMIT BUF
1198 ;;;; 14 ; SEQUENCE REGISTER
1199 ;;;; 15 ; RECEIVE BCC
1200 ;;;; 16 ; TRANSMIT BCC
1201 ;;;; 17 ; RECEIVE/TRANSMIT POLYNOMIAL
1202 ;
1203 .MACRO DQREGS REG,QQ
1204 Z= RG.'REG
1205 .IIF EQ <Z&10>,Z= Z+DQ.MBM
1206 .IF B,QQ
1207 MOVB #Z,5(DQ) ;SET TO ADDRESS SECONDARY REGISTER RG.'REG
1208 .IFF ;B <QQ>
1209 MOVB #Z,5QQ ;SET TO ADDRESS SECONDARY REGISTER RG.'REG
1210 .ENDC ;B <QQ>
1211 .ENDM DQREGS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-32
C11DTE.MAC 10-AUG-79 16:05 DQ11 - DMA SYNCHRONOUS LINE INTERFACE
1213 ;
1214 ; THE SEVEN SWITCHES (PACKAGES) WILL BE LOCATED
1215 ; ON BOARD #M7818 WITHIN THE DQ11 LOGIC BLOCK
1216 ;
1217 ;
1218 ; PACKAGE # SWITCH #'S SWITCH SETTINGS ON RESPECTIVE PACKAGES
1219 ;
1220 ; 1 8 - 1 ALL OFF
1221 ;
1222 ; 2 16 - 9 ALL OFF
1223 ;
1224 ; 3 24 - 17 ALL OFF
1225 ;
1226 ; 4 32 - 25 DAS78 ON, ON,OFF, ON,OFF,OFF, ON,OFF
1227 ; CHARACTER = 055 (ENQ)
1228 ; 4 32 - 25 DAS85 ON, ON, ON, ON, ON,OFF, ON,OFF
1229 ; CHARACTER = 005 (ENQ)
1230 ;
1231 ; 5 40 - 33 DAS78 ON, ON,OFF,OFF,OFF, ON, ON, ON
1232 ; DAS85 ON,OFF,OFF,OFF,OFF, ON, ON, ON
1233 ;
1234 ; 6 48 - 41 DAS78 ON, ON, ON, ON, ON, ON,OFF,OFF
1235 ; CHARACTER = 03 (ETX)
1236 ; DAS85 OFF, ON, ON,OFF, ON, ON,ON, ON
1237 ; CHARACTER = 220 (DLE)
1238 ;
1239 ; 7 56 - 49 DAS78 ON, ON, OFF, ON, ON,OFF,OFF, ON
1240 ; CHARACTER = 46 (ETB)
1241 ; DAS85 OFF, ON, ON, ON, ON, ON, ON,OFF
1242 ; CHARACTER = 201 (SOH)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-33
C11DTE.MAC 10-AUG-79 16:05 DS11 - SYNCHRONOUS LINE INTERFACE
1244 .SBTTL DS11 - SYNCHRONOUS LINE INTERFACE
1245 ;
1246 ;HARDWARE ADDRESSES
1247 ;
1248 175600 DS.AUX= 175600 ;AUXILLARY REGISTER
1249 175400 DS.DVA= 175400 ;BEGINNING OF LINE DEVICE REGISTERS
1250 000400 DS.VEC= 400 ;FIRST DS11 VECTOR
1251 000007 DS.LVL= 7 ;PROCESSOR LEVEL OR DS11 INTERRUPTS
1252 ;
1253 ;BITS IN AUXILLARY REGISTER
1254 ;
1255 100000 DS.AD3=B15 ;ADAPTER 3 IS PRRSENT IF SET
1256 040000 DS.AD2=B14 ;ADAPTER 2 IS PRESENT IF SET
1257 020000 DS.AD1=B13 ;ADAPTER 1 IS PRESENT IF SET
1258 ; B12 ;NOT USED
1259 ; B11 ;NOT USED
1260 ; B10 ;NOT USED
1261 ; B9 ;PROGRAM VECTOR 9
1262 000400 DS.IVA=B8 ;PROGRAM VECTOR 8 - INTERRUPTS START AT 400
1263 ; B7 ;DIAG MODE
1264 ; B6 ;PROGRAM CLOCK ALLOW
1265 ; B5 ;NOT USED
1266 ; B4 ;DIAG BIT CNTR CLEAR
1267 ; B3 ;DIAG BIT COUNTER 4
1268 ; B2 ;DIAG BIT COUNTER 3
1269 ; B1 ;DIAG BIT COUNTER 2
1270 ; B0 ;DIAG BIT COUNTER 1
1271 ;
1272 ;
1273 ;OFFSETS OF REGISTERS FROM LINE BASE ADDRESS
1274 ;
1275 000006 DS.XDR=6 ;TRANSMIT DATA REGISTER
1276 000004 DS.XST=4 ;TRANSMIT STATUS REGISTER
1277 000002 DS.RDR=2 ;RECEIVE DATA REGISTER
1278 000000 DS.RST=0 ;RECEIVE STATUS REGISTER
1279 ;
1280 ;PRIORITY INTERRUPT LEVELS
1281 ;
1282 000007 I.DSRD=7 ;RECEIVE DATA INTERRUPT
1283 000006 I.DSRS=6 ;RECEIVE STATUS INTERRUPT
1284 000007 I.DSXD=7 ;A TRANSMIT DATA INTERRUPT
1285 000006 I.DSXS=6 ;A TRANSMIT STATUS INTERRUPT
1286 ;
1287 ;BITS IN XMIT STATUS REGISTER & RECEIVE REG.
1288 ;
1289 000440 DS.DTR=000440 ;BOTH XMT & RCV REG.
1290 170000 DS.ZAP=170000 ;CLEAR ALL OVERRUN FLAGS
1291 000455 DS.XGO=DS.DTR+<<I.DSXD/2>*4>+1 ;REQUEST TO SEND
1292 006455 DS.RGO=B11!B10!DS.DTR!<<I.DSRD/2>*4>+1 ;RECEIVE
1293 ;
1294 ;BITS IN TRANSMIT STATUS REGISTER
1295 ;
1296 ; B15 ; NOT USED
1297 ; B14 ; XMIT BIT OVERRUN
1298 ; B13 ; XMIT CHAR OVERRUN
1299 ; B12 ; CLEAR TO SEND FLAG
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-34
C11DTE.MAC 10-AUG-79 16:05 DS11 - SYNCHRONOUS LINE INTERFACE
1300 ; B11 ; NOT USED
1301 ; B10 ; NOT USED
1302 ; B9 ; CLEAR TO SEND
1303 ; B8 ; DATA TERM READY
1304 ; B7 ; XMIT CHAR DONE
1305 ; B6 ; DATA SET READY
1306 ; B5 ; CODE SIZE 2
1307 ; B4 ; CODE SIZE 1
1308 ; B3 ; PRIORITY REQUEST 2
1309 ; B2 ; PRIORITY REQUEST 1
1310 ; B1 ; IDLE
1311 ; B0 ; REQUEST TO SEND
1312 ;
1313 ;BITS IN RECEIVE STATUS REGISTER
1314 ;
1315 ; B15 ; RING FLAG
1316 ; B14 ; REC BIT OVERRUN
1317 ; B13 ; REC CHAR OVERRUN
1318 ; B12 ; LINE SIGNAL FLAG
1319 ; B11 ; SYN STATE 2
1320 ; B10 ; SYN STATE 1
1321 ; B9 ; LINE SIGNAL
1322 ; B8 ; DATA TERMINAL READY
1323 ; B7 ; REC CHAR DONE
1324 ; B6 ; DATA SET READY
1325 ; B5 ; CODE SIZE 2
1326 ; B4 ; CODE SIZE 1
1327 ; B3 ; PRIORITY REQUEST 2
1328 ; B2 ; PRIORITY REQUEST 1
1329 ; B1 ; RING ALLOW
1330 ; B0 ; RECEIVE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-35
C11DTE.MAC 10-AUG-79 16:05 DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1332 .SBTTL DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
1333 ;
1334 000000 DLYCNT = 0 ;DELAY COUNTER
1335 100000 BUSA17 = B15 ;UNIBUS ADDRESS BIT 17
1336 040000 BUSA16 = B14 ;UNIBUS ADDRESS BIT 16
1337 037777 DLYMSK = 37777 ;DELAY COUNT FIELD
1338 000002 DEXWD3 = 2 ;DEPOSIT/EXAMINE WORD 3
1339 000004 DEXWD2 = 4 ;DEPOSIT/EXAMINE WORD 2
1340 000006 DEXWD1 = 6 ;DEPOSIT/EXAMINE WORD 1
1341 000010 TENAD1 = 10 ;KL-10 MEMORY ADDRESS 1
1342 000012 TENAD2 = 12 ;KL-10 MEMORY ADDRESS 2
1343 000014 TO10BC = 14 ;TO -10 BYTE (WORD) COUNT
1344 000016 TO11BC = 16 ;TO -11 BYTE (WORD) COUNT
1345 100000 TO11IB = B15 ;INTERRUPT BOTH SIDES WHEN DONE
1346 020000 TO11BM = B13 ;TO -11 BYTE MODE
1347 007777 TO11CM = 7777 ;BYTE (WORD) COUNT
1348 000020 TO10AD = 20 ;TO -10 ADDRESS
1349 000022 TO11AD = 22 ;TO -11 ADDRESS
1350 000024 TO10DT = 24 ;TO -10 DATA WORD
1351 000026 TO11DT = 26 ;TO -11 DATA WORD
1352 000030 DIAG1 = 30 ;DIAGNOSTIC CONTROL REGISTER 1
1353 000032 DIAG2 = 32 ;DIAGNOSTIC CONTROL REGISTER 2
1354 000100 DRESET = B6 ;(W) DTE20 RESET
1355 000034 CSTAT = 34 ;CONTROL STATUS REGISTER
1356 100000 TO10DN = B15 ;(R) TO -10 TRANSFER DONE
1357 040000 DON10C = B14 ;(W) CLEAR TO -10 DONE
1358 020000 TO10ER = B13 ;(R) TO -10 TRANSFER ERROR
1359 010000 ERR10C = B12 ;(W) CLEAR TO -10 TRANSFER ERROR
1360 004000 TO11DB = B11 ;(R) TO -11 DOORBELL
1361 004000 INT11S = TO11DB ;(W) REQUEST INTERRUPT
1362 002000 INT11C = B10 ;(W) CLEAR TO -11 DOORBELL
1363 001000 MPE11 = B9 ;(R) -11 PARITY ERROR
1364 000400 TO10DB = B8 ;(R/W) TO -10 DOORBELL
1365 000200 TO11DN = B7 ;(R) TO -11 TRANSFER DONE
1366 000100 DON11C = B6 ;(W) CLEAR TO -11 DONE
1367 000040 INTRON = B5 ;(W) ENABLE FROM -10 INTERRUPTS
1368 000020 BPARER = B4 ;(R) EBUS PARITY ERROR
1369 000010 INTROF = B3 ;(W) DISABLE FROM -10 INTERRUPTS
1370 000010 RM = INTROF ;(R) RESTRICTED MODE
1371 000004 DEXDON = B2 ;(R) DEPOSIT/EXAMINE DONE
1372 000002 TO11ER = B1 ;(R) TO -11 TRANSFER ERROR
1373 000002 ERR11S = TO11ER ;(W) SET TO -11 ERROR
1374 000001 ERR11C = B0 ;(W) CLEAR TO -11 TRANSFER ERROR
1375 000001 INTSON = ERR11C ;(R) INTERRUPTS ARE ENABLED
1376 000036 DIAG3 = 36 ;DIAGNOSTIC CONTROL REGISTER 3
1377 000001 TO10BM = B0 ;(W) TO -10 BYTE MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-36
C11DTE.MAC 10-AUG-79 16:05 DU11 - SYNCHRONOUS LINE CONTROLLER
1379 .SBTTL DU11 - SYNCHRONOUS LINE CONTROLLER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-37
C11DTE.MAC 10-AUG-79 16:05 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1381 .SBTTL DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1382 ;
1383 000006 DUP.LVL = 6
1384 ;
1385 ;;;; DUPSTS = FLOATING
1386 ;
1387 000000 DUPCRS = 0 ;RECEIVER STATUS AND CONTROL REGISTER
1388 000000' NAMEBT DUPRCS,0,<DUPDSA,DUPRNG,DUPCTS,DUPCAR,DUPACT,DUP2RC>
1389 000000' NAMEBT ,,<DUPDSR,DUPSSY,DUPRDN,DUPRIE,DUPDIE,DUPRCE>
1390 000000' NAMEBT ,,<DUP2TX,DUPRTS,DUPDTR,DUPDSB>
1391 ;
1392 000000 .REPT 0
1393 DUPDSA - DATA SET CHANGE A RO
1394 DUPRNG - RING INDICATOR RO
1395 DUPCTS - CLEAR TO SEND RO
1396 DUPCAR - CARRIER RO
1397 DUPACT - ACTIVE RM
1398 DUP2RC - SECONDARY RECEIVE DATA RO
1399 DUPDSR - DATA SET READY RO
1400 DUPSSY - STRIP SYNCH RW
1401
1402 DUPRDN - RECEIVE DONE RO
1403 DUPRIE - RECEIVER INTERRUPT ENABLE RW
1404 DUPDIE - DATA SET INTERRUPT ENABLE RW
1405 DUPRCE - RECEIVE ENABLE (CLEARS THE READ MOSTLY BITS) RW
1406 DUP2TX - SECONDARY TRANSMIT RW
1407 DUPRTS - REQUEST TO SEND RW
1408 DUPDTR - DATA TERMINAL READY RW
1409 DUPDSB - DATA SET CHANGE B RO
1410 .ENDR
1411 000002 DUPRDB = 2 ;RECEIVE DATA BUFFER
1412 000000' NAMEBT DUPRDB,0,<DUPRER,DUPROV,,DUPRCR,,DUPRAB,DUPREM,DUPRSM>
1413 000377 DUPRDT = 377 ;RECEIVED DATA BUFFER
1414 000000 .REPT 0
1415 DUPRER - RECEIVER ERROR RO
1416 DUPROV - RECEIVER OVERRUN RO
1417 - RESERVED
1418 DUPRCR - RCRC ERROR+ZERO RO
1419 - RESERVED
1420 DUPRAB - RECEIVED ABORT RW
1421 DUPREM - END OF REC'D MSG RM
1422 DUPRSM - START OF REC'D MSG RM
1423 .ENDR
1424 000002 DUPPSR = DUPRDB ;PARAMETER STATUS REGISTER
1425 000000' NAMEBT DUPPSR,0,<DUPPDM,,,DUPP2M,,,DUPPIC,>
1426 000377 DUPP2S = 377 ;SECONDARY STATION ADDRESS OR REC SYNCH REG
1427 000000 .REPT 0
1428 DUPPDM - DEC MODE (BYTE MODE) WO
1429 - RESERVED
1430 - RESERVED
1431 DUPP2M - SENCONDARY MODE SELECT WO
1432 - RESERVED
1433 - RESERVED
1434 DUPPIC - INHIBIT CRC COMPUTATION WO
1435 .ENDR
1436 000004 DUPTCS = 4 ;TRANSMITTER STATUS REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-38
C11DTE.MAC 10-AUG-79 16:05 DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
1437 000000' NAMEBT DUPTCS,0,<DUPTDL,DUPTMT,DUPTMC,DUPTM1,DUPTM0>
1438 000000' NAMEBT ,,<DUPTMI,DUPTAC,DUPTRS,DUPTDN,DUPTIE,,DUPTSN,DUPTHD,,,>
1439 000000 .REPT 0
1440 DUPTDL - TRANSMIT DATA LATE RM
1441 DUPTMT - MAINTENANCE TRANSLATE RO
1442 DUPTMC - MAINTENANCE CLOCK RW
1443 DUPTM1 - MAINTENANCE MODE SELECT RW
1444 DUPTM0 -
1445 DUPTMI - MAINTENANCE INPUT RW
1446 DUPTAC - TRANSMITTER ACTIVE RO
1447 DUPTRS - DEVICE RESET WO
1448 DUPTDN - TRANSMIT DONE RM
1449 DUPTIE - TRANSMITTER INTERRUPT ENABLE RW
1450 - RESERVED
1451 DUPTSN - SEND RW
1452 DUPTHD - HALF DUPLEX RW
1453 - RESERVED
1454 - RESERVED
1455 - RESERVED
1456 .ENDR
1457 000006 DUPTDB = 6 ;TRANSMITTER DATA BUFFER
1458 000000' NAMEBT DUPTDB,0,<,DUPXCI,,DUPXCO,DUPXMT,DUPXAB,DUPXEM,DUPXSM>
1459 000377 DUPXDB = 377 ;TRANSMITTER DATA BUFFER BYTE
1460 000000 .REPT 0
1461 - RESERVED
1462 DUPXCI - MAINTENANCE CRC INPUT RO
1463 - RESERVED
1464 DUPXCO - MAINTENANCE CRC OUTPUT RO
1465 DUPXMT - MAINTENANCE TIMER RO
1466 DUPXAB - TRANSMIT ABORT RW
1467 DUPXEM - TRANSMIT END OF MSG RW
1468 DUPXSM - TRANSMIT STRAT OF MSG RW
1469 .ENDR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-39
C11DTE.MAC 10-AUG-79 16:05 DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1471 .SBTTL DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
1472 ;
1473 ; DZ11 CONTROL STATUS REGISTER (CSR) FLAGS
1474 ;
1475 000020 DZ.CLR= 000020 ;MASTER CLEAR
1476 000040 DZ.SCN= 000040 ;SCAN ENABLE (ENABLE RCV & XMT)
1477 000100 DZ.RIE= 000100 ;RECEIVE INTERUPT ENABLE
1478 010000 DZ.SAE= 010000 ;SILO ALARM ENABLE
1479 040000 DZ.TIE= 040000 ;TRANSMIT INTERUPT ENABLE
1480 050140 DZ.INI= DZ.SCN!DZ.RIE!DZ.TIE!DZ.SAE ;INITIAL VALUE FOR CSR
1481
1482
1483 ;
1484 ; DZ11 LINE PARAMETER REGISTER (LPR) FLAGS
1485 ;
1486 010000 DZ.RCV= 010000 ;RCV ON IN LPR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-40
C11DTE.MAC 10-AUG-79 16:05 EIA PIN DEFINITIONS
1488 .SBTTL EIA PIN DEFINITIONS
1489 ;
1490 ; 1 PROTECTIVE GROUND
1491 ; 2 TRANSMITTED DATA
1492 ; 3 RECEIVED DATA
1493 ; 4 REQUEST TO SEND
1494 ; 5 CLEAR TO SEND
1495 ; 6 DATA SET READY
1496 ; 7 SIGNAL GROUND
1497 ; 8 RECEIVED LINE SIGNAL DECTECTOR
1498 ; 9 *
1499 ; 10 *
1500 ; 11 *
1501 ; 12 *
1502 ; 13 *
1503 ; 14 *
1504 ; 15 *
1505 ; 16 *
1506 ; 17 RECEIVED SIGNAL ELEMENT TIMING
1507 ; 18 *
1508 ; 19 *
1509 ; 20 DATA TERMINAL READY
1510 ; 21 SIGNAL QUALITY DETECTOR
1511 ; 22 RING INDICATOR
1512 ; 23 *
1513 ; 24 TRANSMIT SIGNAL ELEMENT TIMING
1514 ; 25 *
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-41
C11DTE.MAC 10-AUG-79 16:05 KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1516 .SBTTL KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
1517 ;
1518 170700 KG.STS = 170700
1519 000200 KG.DNE=200 ;CALCULATION DONE
1520 000100 KG.SEN=100 ;NOT SINGLE CYCLE
1521 000040 KG.STP=040 ;STEP
1522 000020 KG.CLR=020 ;CLEAR
1523 000010 KG.DDB=010 ;WORD MODE
1524 ; 007 ;TYPE OF CALCULATION
1525 000001 KG.CRC=001 ; 1 = CRC-16
1526 000003 KG.LRC=003 ; 3 = LRC-16
1527 000005 KG.CCI=005 ; 5 = CRC-CCITT
1528 000121 KG.INI= KG.SEN!KG.CLR!KG.CRC
1529 000002 KGBCC = 2
1530 000004 KGDATA = 4
1531 ;
1532 .MACRO KGLOAD X,MODE
1533 Z=101
1534 .IF NB MODE
1535 .IIF IDN <MODE>,<WORD>,Z=Z!KG.DDB ;SET WORD MODE
1536 .IIF IDN <MODE>,<BYTE>,Z=Z&<^CKG.DDB>
1537 .ENDC;.IF NB MODE
1538 .IF IDN <#0>,<X>
1539 Z=Z!KG.CLR
1540 .IFF
1541 MOV #133,(R4) ;CLEAN OUT KG11
1542 MOV X,KGDATA(R4) ;LOAD WITH DATA ( X )
1543 .ENDC ;IDN <#0>,<X>
1544 MOV #Z,(R4) ;AND SET CRC MODE
1545 .ENDM KGLOAD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-42
C11DTE.MAC 10-AUG-79 16:05 KT11 - MEMORY MANAGEMENT MODULE
1547 .SBTTL KT11 - MEMORY MANAGEMENT MODULE
1548 ;
1549 .MACRO MMNAM1 MODE,TYPE,SPACE,NUMB
1550 MODE'SPACE'S'TYPE'R'NUMB = $MMADR
1551 $MMADR = $MMADR + 2
1552 .ENDM MMNAM1
1553 ;
1554 .MACRO MMNAM2 MODE,BASE
1555 $MMADR = BASE
1556 .IRPC TYPE,<DA>
1557 .IRPC SPACE,<ID>
1558 $$ = 0
1559 .REPT 8.
1560 MMNAM1 MODE,TYPE,SPACE,\$$
1561 $$ = $$ + 1
1562 .ENDR ;8.
1563 .ENDR ;SPACE
1564 .ENDR ;TYPE
1565 .ENDM MMNAM2
1566 ;
1567 ;
1568 ;
1569 ; MEMORY MANAGEMENT STATUS REGISTER BLOCK
1570 ; ASTERISK (*) DENOTES THE 11/34 MEMORY MANAGEMENT SUBSET
1571 ;
1572 177572 MMGSR0 = 177572 ;MEM MGT STATUS REGISTER *
1573 000000' NAMEBT MMGSR0,0,<MG.ANR,MG.APL,MG.ARO,MG.TMM,,>
1574 000000' NAMEBT ,,<MG.EMT,MG.MNT,MG.IDN,MG.MD1,MG.MD0>
1575 000000' NAMEBT ,,<MG.DAD,MG.PG2,MG.PG1,MG.PG0,MG.ENB>
1576 000000 .REPT 0
1577 MG.ANR - ABORT, NON-RESIDENT *
1578 MG.APL - ABORT, PAGE LENGTH *
1579 MG.ARO - ABORT, READ ONLY *
1580 MG.TMM - ABORT, TRAP ON MEM MGT
1581 MG.XXX - UNUSED
1582 MG.XXX - UNUSED
1583 MG.EMT - ENABLE MEM MGT TRAP
1584 MG.MNT - MAINTENANCE MODE *
1585 MG.IDN - INSTRUCTION DONE
1586 MG.MD1 - MODE, BIT 1 *
1587 MG.MD0 - MODE, BIT 0 *
1588 MG.DAD - D ADDRESS SPACE SELECTED
1589 MG.PG2 - PAGE SELECTED, BIT 2 *
1590 MG.PG1 - PAGE SELECTED, BIT 1 *
1591 MG.PG0 - PAGE SELECTED, BIT 0 *
1592 MG.ENB - ENABLE MEM MGT *
1593 .ENDR ;TEXT
1594 ;
1595 177574 MMGSR1 = 177574 ;GPR MODIFICATION RECORD
1596 ;
1597 177576 MMGSR2 = 177576 ;VIRTUAL ADDRESS REGISTER *
1598 ;
1599 172516 MMGSR3 = 172516 ;
1600 000000' NAMEBT MMGSR3,4,<MG.KDS,MG.SDS,MG.UDS>
1601 ;
1602 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-43
C11DTE.MAC 10-AUG-79 16:05 KT11 - MEMORY MANAGEMENT MODULE
1603 ; DEFINE NAMES FOR THE PAGE ADDRESS AND DESCRIPTOR REGISTERS
1604 ;
1605 000000' MMNAM2 U,177600 ;USER MODE MEM MGT *
1606 ;;;; MMNAM2 S,172200 ;SUPERVISOR MODE MEM MGT (NOT FOR 11/34)
1607 000000' MMNAM2 K,172300 ;KERNEL MODE MEM MGT *
1608 ;
1609 ; PAGE DESCRIPTOR REGISTER FIELD DEFINITIONS
1610 ;
1611 000000' NAMEBT PDR,0,<,PD.PL6,PD.PL5,PD.PL4,PD.PL3,PD.PL2,PD.PL1,PD.PL0>
1612 000000' NAMEBT ,,<PD.A,PD.W,,,PD.ED,PD.AC2,PD.AC1,PD.AC0>
1613 000000' FIELD PD.PLF,PD.PL6,PD.PL0
1614 000000' FIELD PD.ACF,PD.AC2,PD.AC0
1615 ;
1616 ; VIRTUAL ADDRESS DEFINITIONS
1617 ;
1618 000100 BSFACT = 100 ;BIAS FACTOR, NUMBER OF BYTES PER BLOCK
1619 .IRP X,<0,1,2,3,4,5,6,7>
1620 PAGE'X = X*20000 ;BASE ADDRESS REACHED THROUGH APR'X
1621 PAGE'X'B = X*200 ;MAPPING BIAS FOR VIRTUAL=PHYSICAL
1622 .ENDR ;IRP X
1623 007600 PAGE7B = 7600 ;PAGE 7 BIAS (I/O PAGE) HAS A SPECIAL VALUE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-44
C11DTE.MAC 10-AUG-79 16:05 KW11 - LINE TIME CLOCK
1625 .SBTTL KW11 - LINE TIME CLOCK
1626 ;
1627 ;KW11 LINE FREQUENCY CLOCK DEFINITIONS
1628 ;
1629 001 .IF DF FT.87S
1630 CLKLVL= 6 ; DN87 USES STANDARD PRIORITY LEVEL
1631 .IFF
1632 000004 CLKLVL= 4 ; CLOCK INTERRUPT PRIORITY LEVEL
1633 000 .ENDC
1634 000100 CLKVEC= 100 ; CLOCK VECTOR
1635 ;
1636 177546 CLKWRD = 177546 ; CLOCK STATUS WORD
1637 ;
1638 000100 KW.INE=B6 ; ENABLE INTERRUPTS
1639 000100 CLKENB=B6 ; ENABLE INTERRUPTS
1640 000200 KW.TIC=B7 ; CLOCK MONITOR TOGGLE (CLEARED BY PROGRAM)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-45
C11DTE.MAC 10-AUG-79 16:05 LP11 - LINE PRINTER CONTROLLER
1642 .SBTTL LP11 - LINE PRINTER CONTROLLER
1643 ;
1644 000004 LE.LVL= 4 ; PROCESSOR LEVEL FOR LP11 INTERRUPTS
1645 000200 LE.VEC= 200 ; VECTOR LOCATION
1646 ;
1647 177514 LE0STS = 177514 ;STATUS REGISTER FOR 1ST LP11
1648 177514 LE.STS=LE0STS
1649 ;
1650 100000 LE.ERR= B15 ; ERROR BIT(POWER OFF, NO PAPER, GATE, TEMP, OFFLINE)
1651 000200 LE.DNE= B7 ; READY FOR NEXT CHARACTER
1652 000100 LE.INE= B6 ; INTERRUPT ENABLE
1653 ;
1654 177516 LE0DAT = 177516 ;DATA REGISTER
1655 177516 LE.DAT=LE0DAT
1656 ;
1657 ;
1658 ;FOR THE SECOND LP11
1659 177520 LE1STS = 177520
1660 177522 LE1DAT = 177522
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-46
C11DTE.MAC 10-AUG-79 16:05 LP20 - LINEPRINTER CONTROLLER
1662 .SBTTL LP20 - LINEPRINTER CONTROLLER
1663 ;
1664 ; LP20 HARDWARE DEVICE REGISTER DEFINITIONS
1665 ;
1666 000004 LP.LVL = 4 ;BUS REQUEST PRIORITY
1667 000754 LP.VEC = 754 ;FIRST LP VECTOR
1668 ;
1669 175400 LP0STS = 175400 ;LP20 UNIT 0 FIRST REGISTER BLOCK
1670 ;
1671 000000 LPCSRA=0 ;CONTROL AND STATUS REGISTER A
1672 000000' NAMEBT LPCSRA,0,<LP.ERR,LP.PGZ,LP.CHI,LP.VFR,LP.ONL,LP.DH>
1673 000000' NAMEBT ,,<LP.RSE,LP.LOI,LP.DNE,LP.IE,LP.B17,LP.B16>
1674 000000' NAMEBT ,,<LP.MD1,LP.MD0,LP.PEN,LP.GO>
1675 000000 .REPT 0
1676 LP.ERR= ERROR (R)
1677 LP.PGZ= PAGE ZERO (R)
1678 LP.CHI= UNDEFINED CHAR TRAPPED (R)
1679 LP.VFR= VERT FORMAT UNIT READY (R)
1680 LP.ONL= ONLINE (R)
1681 LP.DH= DELIMITER HOLD (R-W)
1682 LP.RSE= RESET ERRORS (W)
1683 LP.LOI= LOCAL INITIALIZE (W)
1684
1685 LP.DNE= DONE (R)
1686 LP.IE= INTERRUPT ENABLE (R-W)
1687 LP.B17= HIGH ORDER BUS ADDRESS BITS (R-W)
1688 LP.B16= "
1689 LP.MD1= OPERATION MODE BITS (R-W)
1690 LP.MD0= "
1691 LP.PEN= PARITY CHECK INTERRUPT ENABLE (R-W)
1692 LP.GO= START COMMAND (R-W)
1693 .ENDR
1694 ;
1695 000004 TSTMOD= LP.MD0 * 1 ;TEST MODE
1696 000010 VFULOD= LP.MD0 * 2 ;VFU LOAD MODE
1697 000014 RAMLOD= LP.MD0 * 3 ;LOAD TRANSLATION RAM
1698 000014 LP.MDS= LP.MD0 ! LP.MD1 ;MODE BIT MASK
1699 000060 LP.XAD= LP.B17!LP.B16 ;HIGH ORDER BUSADD BITS
1700 000103 ENBGO= LP.PEN!LP.IE!LP.GO ;ENABLES AND GO
1701 ;
1702 000002 LPCSRB=2 ;CONTROL AND STATUS REGISTER B
1703 000000' NAMEBT LPCRSA,0,<LP.DV,LP.180,LP.NRD,LP.PAR>
1704 000000' NAMEBT ,,<LP.OPT,LP.TS2,LP.TS1,LP.TS0,LP.OFL,LP.VFE>
1705 000000' NAMEBT ,,<LP.PER,LP.MPE,LP.RPE,LP.SYN,LP.DEM,LP.GOE>
1706 ;
1707 000000 .REPT 0
1708 LP.DV= VALID DATA (R)
1709 LP.180= PRINTER IS AN LA180 (R)
1710 LP.NRD= LINE PRINTER NOT READY (R)
1711 LP.PAR= LINE PRINTER PARITY (R)
1712 LP.OPT= PRINTER HAS OPTICAL VFU (R)
1713 LP.TS2= TEST MODE BITS (R-W)
1714 LP.TS1= "
1715 LP.TS0= "
1716
1717 LP.OFL= DEVICE NOT READY (R)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-47
C11DTE.MAC 10-AUG-79 16:05 LP20 - LINEPRINTER CONTROLLER
1718 LP.VFE= CHANNEL TYPE ERROR (R)
1719 LP.PER= VARIOUS PARITY ERRORS (R)
1720 LP.MPE= "
1721 LP.RPE= "
1722 LP.SYN= SYNCH TIMEOUT (DATA LATE) (R)
1723 LP.DEM= DEMAND TIMEOUT (PRINTER HANG) (R)
1724 LP.GOE= GO ERROR (R-W)
1725 .ENDR
1726 ;
1727 000004 LPBSAD=4 ;BUS ADDRESS REGISTER (R-W)
1728 ;
1729 000006 LPBCTR=6 ;BYTE COUNT (2'S COMPLEMENT)
1730 ; BITS 15-12 NOT USED
1731 ; 11-0 BYTE COUNT (R-W)
1732 ;
1733 000010 LPPCTR=10 ;PAGE COUNTER
1734 ; BITS 15-12 NOT USED
1735 ; 11-0 PAGE COUNT (R-W)
1736 ;
1737 000012 LPRAMD=12 ;RAM DATA REGISTER
1738 000000' NAMEBT LPRAMD,0,<,,,LP.RP,LP.RIN,LP.RDL,LP.RTR,LP.RPI>
1739 007777 RAMDAT = LP.RP - 1 ;MASK FOR WRITABLE RAM BITS
1740 000020 SLEW = 20 ;"SLEW" FLAG FOR VFU
1741 ; BITS 15-13 NOT USED
1742 ; 12 RAM PARITY (R)
1743 ; 11-0 RAM DATA (R-W)
1744 ;
1745 000014 LPCBUF=14 ;(BYTE) CHARACTER BUFFER REGISTER (R-W)
1746 000015 LPCCTR=15 ;(BYTE) COLUMN COUNT REGISTER (R-W)
1747 ;
1748 000016 LPTDAT=16 ;(BYTE) PRINTER DATA REGISTER (R)
1749 000017 LPCKSM=17 ;(BYTE) CHECKSUM REGISTER (R)
1750 ;
1751 000020 LPRBSZ=20 ;SIZE OF HARDWARE REGISTER BLOCK
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-48
C11DTE.MAC 10-AUG-79 16:05 MM11-LP PARITY MEMORY
1753 .SBTTL MM11-LP PARITY MEMORY
1754 ;
1755 000114 MP.VEC=114
1756 000007 MP.LVL=7
1757 ;
1758 172100 MP.REG=172100 ;ADR OF PARITY REGISTER
1759 ;
1760 100000 MP.ERR=100000 ;ERROR BIT
1761 ; BITS 11-5 ERROR ADDRESS
1762 000004 MP.WWP=000004 ;WRITE WRONG PARITY
1763 000001 MP.ENB=000001 ;ENABLE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-49
C11DTE.MAC 10-AUG-79 16:05 PA611 - TYPESET READER/PUNCH
1765 .SBTTL PA611 - TYPESET READER/PUNCH
1766 ;
1767 000007 P6.LVL= 7 ; PROCESSOR LEVEL FOR PA611P INTERRUPTS
1768 ;
1769 000007 R6.LVL= 7 ; PROCESSOR LEVEL FOR PA611R INTERRUPTS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-50
C11DTE.MAC 10-AUG-79 16:05 PC11 - PAPER TAPE READER/PUNCH INTERFACE
1771 .SBTTL PC11 - PAPER TAPE READER/PUNCH INTERFACE
1772 ;
1773 000004 PR.LVL= 4 ; PROCESSOR LEVEL FOR PC11 READER INTERRUPTS
1774 000070 PR.VEC= 70 ; VECTOR FOR PC11 READER
1775 000004 PP.LVL= 4 ; PROCESSOR LEVEL FOR PC11 PUNCH INTERRUPTS
1776 000074 PP.VEC= 74 ; VECTOR FOR PC11 PUNCH
1777 ;
1778 177554 PP0STS = 177554 ;STATUS REGISTER FOR 1ST PC11 PUNCH
1779 177554 PP.STS= 177554 ; PUNCH STATUS REGISTER
1780 ;
1781 100000 PP.ERR= B15 ; ERROR BIT (NO TAPE OR NO POWER)
1782 000200 PP.RDY= B7 ; SET WHEN RREADY TO PUNCH A CHARACTER
1783 000100 PP.INE= B6 ; INTERRUPT ENABLE
1784 ;
1785 177556 PP.DAT= 177556 ; PUNCH BUFFER REGISTER
1786 ;
1787 177550 PR0STS = 177550 ;STATUS REGISTER FOR 1ST PC11 READER
1788 177550 PR.STS= 177550 ; READER STATUS REGISTER
1789 ;
1790 100000 PR.ERR= B15 ; ERROR BIT (NO TAPE, NO POWER, OR OFF-LINE)
1791 004000 PR.BSY= B11 ; SET WHEN A CHARACTER IS BEING READ
1792 000200 PR.DNE= B7 ; CHARACTER IS AVAILABLE IN THE READER BUFFER
1793 000100 PR.INE= B6 ; INTERRUPT ENABLE
1794 000001 PR..RE= B0 ; READER ENABLE
1795 ;
1796 177552 PR.DAT= 177552 ; READER BUFFER REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-51
C11DTE.MAC 10-AUG-79 16:05 TC11 - DECTAPE CONTROLLER
1798 .SBTTL TC11 - DECTAPE CONTROLLER
1799 ;
1800 000214 TC.VEC= 214 ; TC11 INTERRUPT VECTOR ADDRESS
1801 ;
1802 000006 TC.LVL= 6 ; TC11 PRIORITY LEVEL
1803 ;
1804 177340 TC.STS= 177340 ; TC11 CONTROL AND STATUS REGISTER
1805 ;
1806 100000 TC..EZ= B15 ; END ZONE
1807 040000 TC.PAR= B14 ; PARITY ERROR
1808 020000 TC.MTE= B13 ; MARK TRACK ERROR
1809 010000 TC.ILO= B12 ; ILLEGAL OPERATION
1810 004000 TC..SE= B11 ; SELECTION ERROR
1811 002000 TC..BM= B10 ; BLOCK MISSED
1812 001000 TC..DM= B9 ; DATA MISSED
1813 000400 TC.NXM= B8 ; NON-EX MEM
1814 000200 TC.UPS= B7 ; TAPE IS UP TO SPEED
1815 000100 TC.CLK= B6 ; USED TO SIMULATE TIMING TRACK
1816 000040 TC.MMT= B5 ; MAINT MARK TRACK
1817 000020 TC.DT0= B4 ; DATA TRACK 0
1818 000010 TC.DT1= B3 ; DATA TRACK 1
1819 000004 TC.DT2= B2 ; DATA TRACK 2
1820 000002 TC.D17= B1 ; EXTENDED DATA 17
1821 000001 TC.D16= B0 ; EXTENDED DATA 16
1822 ;
1823 177342 TC.CMD= 177342 ; TC11 COMMAND REGISTER
1824 ;
1825 100000 TC.ERR= B15 ; ERROR
1826 020000 TC..MM= B13 ; MAINT MODE
1827 010000 TC..DI= B12 ; DELAY INHIBIT
1828 004000 TC.REV= B11 ; SET = REVERSE MOTION; CLEAR = FORWARD MOTION
1829 000000 TC.US0= 0 ; SELECT UNIT 0
1830 000400 TC.US1= B8 ; SELECT UNIT 1
1831 001000 TC.US2= B9 ; SELECT UNIT 2
1832 001400 TC.US3= B9!B8 ; SELECT UNIT 3
1833 002000 TC.US4= B10 ; SELECT UNIT 4
1834 002400 TC.US5= B10!B8 ; SELECT UNIT 5
1835 003000 TC.US6= B10!B9 ; SELECT UNIT 6
1836 003400 TC.US7= B10!B9!B8 ; SELECT UNIT 7
1837 000200 TC.RDY= B7 ; READY
1838 000100 TC.INE= B6 ; INTERRUPT ENABLE
1839 000040 TC.A17= B5 ; EXTENDED MEM BIT BA17
1840 000020 TC.A16= B4 ; EXTENDED MEM BIT BA16
1841 000000 TC.SAT= 0 ; STOP ALL TAPE MOTION
1842 000002 TC.RMT= B1 ; FINDS MARK TRACK CODE
1843 000004 TC..RD= B2 ; READ
1844 000006 TC.RDA= B2!B1 ; READ ALL
1845 000010 TC.SST= B3 ; STOP ALL TAPE MOTION IN SEL'D TRANSPORT ONLY
1846 000012 TC.WTM= B3!B1 ; WRITE TIMING AND MARK TRACK
1847 000014 TC..WR= B3!B2 ; WRITE
1848 000016 TC.WRA= B3!B2!B1 ; WRITE ALL
1849 ;
1850 177344 TC.WCR= 177344 ; TC11 WORD COUNT REGISTER
1851 ;
1852 177346 TC.BAR= 177346 ; TC11 BUS ADDRESS REGISTER
1853 ;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-52
C11DTE.MAC 10-AUG-79 16:05 TC11 - DECTAPE CONTROLLER
1854 177350 TC.DAT= 177350 ; TC11 DATA REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-53
C11DTE.MAC 10-AUG-79 16:05 TM11 - MAGNETIC TAPE CONTROLLER
1856 .SBTTL TM11 - MAGNETIC TAPE CONTROLLER
1857 ;
1858 000224 TM.VEC= 224 ; TM11 VECTOR ADDRESS
1859 ;
1860 000005 TM.LVL= 5 ; TM11 PRIORITY LEVEL
1861 ;
1862 172520 TM.STS= 172520 ; STATUS REGISTER
1863 ;
1864 100000 TM..IC= B15 ; ILLEGAL COMMAND
1865 040000 TM.EOF= B14 ; END OF FILE
1866 020000 TM.CRE= B13 ; CYCLICAL REDUNDANCY
1867 010000 TM.PAE= B12 ; PARITY ERROR
1868 004000 TM.BGL= B11 ; BUS GRANT LATE
1869 002000 TM.EOT= B10 ; END OF TAPE
1870 001000 TM.RLE= B9 ; RECORD LENGTH ERROR
1871 000400 TM.BTE= B8 ; BAD TAPE ERROR
1872 000200 TM.NXM= B7 ; NON-EXISTENT MEMORY
1873 000100 TM.SLR= B6 ; SELECT REMOTE
1874 000040 TM.BOT= B5 ; BEGINNING OF TAPE
1875 000020 TM.7CH= B4 ; SEVEN CHANNEL
1876 000010 TM.TSD= B3 ; TAPE SETTLE DOWN
1877 000004 TM.WRL= B2 ; WRITE LOCK
1878 000002 TM.RWS= B1 ; REWIND STATUS
1879 000001 TM.TUR= B0 ; TAPE UNIT READY
1880 ;
1881 172522 TM.MTC= 172522 ; COMMAND REGISTER
1882 ;
1883 100000 TM.ERR= B15 ; ERROR
1884 000000 TM.D72= 0 ; 200 BPI 7 CHANNEL
1885 020000 TM.D75= B13 ; 556 BPI 7 CHANNEL
1886 040000 TM.D78= B14 ; 800 PBI 7 CHANNEL
1887 060000 TM.D98= B14!B13 ; 800 BPI 9 CHANNEL
1888 010000 TM..PC= B12 ; POWER CLEAR
1889 004000 TM..LP= B11 ; LATERAL PARITY
1890 003400 TM..US= B10!B9!B8 ; UNIT SELECT FIELD
1891 000000 TM.US0= 0 ; SELECT UNIT 0
1892 000400 TM.US1= B8 ; SELECT UNIT 1
1893 001000 TM.US2= B9 ; SELECT UNIT 2
1894 001400 TM.US3= B8!B9 ; SELECT UNIT 3
1895 002000 TM.US4= B10 ; SELECT UNIT 4
1896 002400 TM.US5= B10!B8 ; SELECT UNIT 5
1897 003000 TM.US6= B10!B9 ; SELECT UNIT 6
1898 003400 TM.US7= B10!B9!B8 ; SELECT UNIT 7
1899 000200 TM.CUR= B7 ; CU READY
1900 000100 TM.INE= B6 ; INTERRUPT ENABLE
1901 000040 TM.A17= B5 ; EXTENDED MEM BIT BA17
1902 000020 TM.A16= B4 ; EXTENDED MEM BIT BA16
1903 000000 TM.OFL= 0 ; OFF-LINE
1904 000002 TM..RD= B1 ; READ
1905 000004 TM..WR= B2 ; WRITE
1906 000006 TM.WEF= B1!B2 ; WRITE EOF
1907 000010 TM..SF= B3 ; SPACE FORWARD
1908 000012 TM..SR= B3!B1 ; SPACE REVERSE
1909 000014 TM.WEG= B3!B2 ; WRITE WITH EXTENDED GAP
1910 000016 TM.REW= B3!B2!B1 ; REWIND
1911 000001 TM..GO= B0 ; GO
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-54
C11DTE.MAC 10-AUG-79 16:05 TM11 - MAGNETIC TAPE CONTROLLER
1912 ;
1913 172524 TM.BCR= 172524 ; BYTE COUNT REGISTER
1914 ;
1915 172526 TM.BAR= 172526 ; BYTE ADDRESS REGISTER
1916 ;
1917 172530 TM.DAT= 172530 ; DATA BUFFER
1918 ;
1919 172532 TM.RDL= 172532 ; TU 10 READ LINES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-55
C11DTE.MAC 10-AUG-79 16:05 END OF DEVICE DEFINITIONS
1921 .SBTTL END OF DEVICE DEFINITIONS
1922 ;
1923 ; HERE AGAIN RESIDE THE HIDDEN DEBUGGING AND OTHER SPECIAL MACROS
1924 ; WHICH ARE HIDDEN IN THE INTEREST OF SAVING ASSEMBLY TIME RESOURCES
1925 ; AND LARGE AMOUNTS OF PAPER IN LISTING
2974 .SBTTL MODULE END
2975 .SBTTL
2976 ;****************************************************************
2977 ;
2978 ; END OF S - SYMBOL AND MACRO DEFINITION SECTION
2979 ;
2980 ;****************************************************************
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77 DNMAC X24.07-563 06-DEC-79 13:39 PAGE 1-56
C11DTE.MAC 10-AUG-79 16:05
2982 .ENABLE ABS
2983 000000 T$$RLD= 0 ;*** ASSEMBLE TERTIARY LOADER ***
2984 .IIF NDF S$$CLD!T$$RLD .TITLE DTEMOP -- DTE20 MOP MODE BOOTSTRAP
2985 .IIF DF S$$CLD .TITLE DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP
2986 .IIF DF T$$RLD .TITLE DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP
2987 .SBTTL TITLE PAGE
2988 ;
2989 ;
2990 ; COPYRIGHT (C) 1977,1978 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA 01754
2991 ;
2992 ;
2993 ; MODULE: CHECK11
2994 ;
2995 ; DATE: 14-NOV-78
2996 ;
2997 ; AUTHOR: TOM PORCHER
2998 ; TOM POWERS
2999 ; LEE WEBBER
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 2
C11DTE.MAC 10-AUG-79 16:05 TITLE PAGE
3001
3002 .SBTTL MACROS AND DEFINITIONS
3003 ;
3004 ; PARAMETERS (DEFINED IN PARAMETER MODULE)
3005 ;
3006 ; S$$CLD= 0 ;SECONDARY LOADER (FOR TERTIARY) IF DEFINED
3007 ; T$$RLD= 0 ;TERTIARY LOADER IF DEFINED
3008 ;
3009 ; PARAMETERS
3010 ;
3011 ;** D$$BUG= 0 ;DEBUG VERSION IF DEFINED
3012 000000 E$$CHK= 0 ;ERROR CHECKING IF DEFINED
3013 ;** D$$CHK= 0 ;DTE-20 CONSISTENCY CHECKING IF DEFINED
3014 000000 M$$CHK= 0 ;MEMORY LIMIT CHECKING IF DEFINED
3015 000000 L$$DPR= 0 ;ALLOW LOAD PARAMETERS IF DEFINED
3016 001 .IF DF T$$RLD
3017 002000 M$$XSZ= 1024. ;MAX SIZE IS 1K BYTES (0.5K WORDS)
3018 000000 M$$MGE= 0 ;MEMORY MANAGEMENT IF DEFINED
3019 000000 T$$32K= 0 ;ALLOW DTE20 TRANSFERS OVER 32K BOUNDARIES IF DEFINED
3020 .IFF
3021 M$$XSZ= 512. ;MAX SIZE IF PROGRAM IS 512. BYTES (256. WORDS)
3022 000 .ENDC
3023 ;
3024 ;
3025 ; MISC. MCALLS
3026 ;
3027 .MCALL CALL,RETURN
3028 ;
3029 ; MACROS
3030 ;
3031 .MACRO DEBUG,OP,MSG,ALTOP
3032 .IF DF D$$BUG
3033 OP ;MSG
3034 .IF NDF PASS2
3035 .PRINT .-MOP ;MSG
3036 .ENDC
3037 .IFF
3038 ALTOP
3039 .ENDC
3040 .ENDM DEBUG
3041 ;
3042 .MACRO ERR,CND,MSG,WHERE,?LABEL
3043 .IF DF D$$BUG
3044 .IIF IDN <CND>,<R>,
3045 .IIF IDN <CND>,<NE>,BEQ LABEL
3046 .IIF IDN <CND>,<EQ>,BNE LABEL
3047 .IIF IDN <CND>,<PL>,BMI LABEL
3048 .IIF IDN <CND>,<MI>,BPL LABEL
3049 .IIF IDN <CND>,<VC>,BVS LABEL
3050 .IIF IDN <CND>,<VS>,BVC LABEL
3051 .IIF IDN <CND>,<CC>,BCS LABEL
3052 .IIF IDN <CND>,<CS>,BCC LABEL
3053 .IIF IDN <CND>,<GE>,BLT LABEL
3054 .IIF IDN <CND>,<LT>,BGE LABEL
3055 .IIF IDN <CND>,<GT>,BLE LABEL
3056 .IIF IDN <CND>,<LE>,BGT LABEL
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 2-1
C11DTE.MAC 10-AUG-79 16:05 MACROS AND DEFINITIONS
3057 .IIF IDN <CND>,<HI>,BLOS LABEL
3058 .IIF IDN <CND>,<LOS>,BHI LABEL
3059 .IIF IDN <CND>,<HIS>,BLO LABEL
3060 .IIF IDN <CND>,<LO>,BHIS LABEL
3061 .IFTF
3062 DEBUG HALT,<ERROR: "MSG">,<B'CND WHERE'MOPERR>
3063 .IFT
3064 LABEL:
3065 .ENDC
3066 .ENDM ERR
3067 ;
3068 .MACRO FIT,BASE,SIZE,STUFF
3069 .IF DF SIZE&PASS2
3070 .IF G <<.-BASE>-SIZE>
3071 .ERROR <<.-BASE>-SIZE> ; TOO MUCH STUFF
3072 .IFF
3073 .PRINT <SIZE-<.-BASE>> ; FREE FOR STUFF
3074 .ENDC
3075 .ENDC
3076 .ENDM FIT
3077 ;
3078 ;
3079 ; GENERAL BIT DEFINITIONS
3080 ;
3081 000001 BIT0= 000001
3082 000002 BIT1= 000002
3083 000004 BIT2= 000004
3084 000010 BIT3= 000010
3085 000020 BIT4= 000020
3086 000040 BIT5= 000040
3087 000100 BIT6= 000100
3088 000200 BIT7= 000200
3089 000400 BIT8= 000400
3090 001000 BIT9= 001000
3091 002000 BIT10= 002000
3092 004000 BIT11= 004000
3093 010000 BIT12= 010000
3094 020000 BIT13= 020000
3095 040000 BIT14= 040000
3096 100000 BIT15= 100000
3097 ;
3098 ;
3099 ; MOP DEFINITIONS
3100 ;
3101 000000 M.PMLT= 0. ;MEMORY LOAD WITH TRANSFER
3102 000002 M.PMLD= 2. ;MEMORY LOAD
3103 000004 M.PRMD= 4. ;REQUEST MEMORY DUMP
3104 000006 M.PEMM= 6. ;ENTER MOP MODE
3105 000010 M.PRPR= 8. ;REQUEST PROGRAM
3106 000012 M.PRML= 10. ;REQUEST/ACKNOWLEDGE MEMORY LOAD
3107 000014 M.PMMR= 12. ;MOP MODE RUNNING
3108 000016 M.PMDP= 14. ;MEMORY DUMP
3109 000020 M.PDAP= 16. ;(REMOTE-11) DAP ENVELOPE
3110 000022 M.PEAM= 18. ;(REMOTE-11) ENTER REMOTE-11 ASCII MODE
3111 000024 M.PLDP= 20. ;PROGRAM DATA
3112 000030 M.PLBT= 24. ;LOOPBACK TEST
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 2-2
C11DTE.MAC 10-AUG-79 16:05 MACROS AND DEFINITIONS
3113 ;
3114 ;
3115 ; CPU REGISTER DEFINITIONS
3116 ;
3117 177570 SWR= 177570 ;SWITCH REGISTER
3118 177776 PS= 177776 ;PROCESSOR STATUS WORD
3119 000340 PR7= 7*BIT5 ;PRIORITY 7
3120 ;
3121 ; MEMORY MANAGEMENT REGISTER DEFINITIONS
3122 ;
3123 177572 SR0= 177572 ;STATUS REGISTER 0
3124 ;
3125 172300 KISDR0= 172300 ;KERNAL PAGE DESRIPTOR 0
3126 172302 KISDR1= 172302 ; . . 1
3127 172304 KISDR2= 172304 ; . . 2
3128 172306 KISDR3= 172306 ; . . 3
3129 172310 KISDR4= 172310 ; . . 4
3130 172312 KISDR5= 172312 ; . . 5
3131 172314 KISDR6= 172314 ; . . 6
3132 172316 KISDR7= 172316 ; . . 7
3133 ;
3134 172340 KISAR0= 172340 ;KERNAL PAGE ADDRESS REGISTER 0
3135 172342 KISAR1= 172342 ; . . 1
3136 172344 KISAR2= 172344 ; . . 2
3137 172346 KISAR3= 172346 ; . . 3
3138 172350 KISAR4= 172350 ; . . 4
3139 172352 KISAR5= 172352 ; . . 5
3140 172354 KISAR6= 172354 ; . . 6
3141 172356 KISAR7= 172356 ; . . 7
3142 ;
3143 ;
3144 ; DTE20 REGISTER DEFINITIONS
3145 ;
3146 000000 DLYCNT= 0 ;DELAY COUNTER
3147 100000 BUSA17= BIT15 ;UNIBUS ADDRESS BIT 17
3148 040000 BUSA16= BIT14 ;UNIBUS ADDRESS BIT 16
3149 037777 DLYMSK= 37777 ;DELAY COUNTER
3150 000002 DEXWD3= 2 ;DEPOSIT/EXAMINE WORD 3
3151 000004 DEXWD2= 4 ; . . 2
3152 000006 DEXWD1= 6 ; . . 1
3153 000010 TENAD1= 10 ;KL-10 MEMORY ADDRESS 1
3154 000012 TENAD2= 12 ; . . 2
3155 000014 TO10BC= 14 ;TO -10 BYTE (WORD) COUNT
3156 000016 TO11BC= 16 ;TO -11 BYTE (WORD) COUNT
3157 100000 TO11IB= BIT15 ;INTERRUPT BOTH -10 AND -11 WHEN DONE
3158 020000 TO11BM= BIT13 ;TO -11 BYTE MODE
3159 007777 TO11CM= 7777 ;BYTE (WORD) COUNT
3160 000020 TO10AD= 20 ;TO -10 ADDRESS
3161 000022 TO11AD= 22 ;TO -11 ADDRESS
3162 000024 TO10DT= 24 ;TO -10 DATA WORD
3163 000026 TO11DT= 26 ;TO -11 DATA WORD
3164 ;
3165 000030 DIAG1= 30 ;DIAGNOSTIC/CONTROL REGISTER 1
3166 000032 DIAG2= 32 ;DIAGNOSTIC REGISTER 2
3167 000100 DRESET= BIT6 ;(W) DTE20 RESET
3168 000034 CSTAT= 34 ;CONTROL/STATUS REGISTER
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 2-3
C11DTE.MAC 10-AUG-79 16:05 MACROS AND DEFINITIONS
3169 100000 TO10DN= BIT15 ;(R) TO -10 TRANSFER DONE
3170 040000 DON10C= BIT14 ;(W) CLEAR TO -10 DONE
3171 020000 TO10ER= BIT13 ;(R) TO -10 TRANSFER ERROR
3172 010000 ERR10C= BIT12 ;(W) CLEAR TO -10 TRANSFER ERROR
3173 004000 TO11DB= BIT11 ;(R/W) TO -11 DOORBELL
3174 002000 INT11C= BIT10 ;(W) CLEAR TO -11 DOORBELL
3175 000400 TO10DB= BIT8 ;(R/W) TO -10 DOORBELL
3176 000200 TO11DN= BIT7 ;(R) TO -11 TRANSFER DONE
3177 000100 DON11C= BIT6 ;(W) CLEAR TO -11 DONE
3178 000002 TO11ER= BIT1 ;(R) TO -11 TRANSFER ERROR
3179 000001 ERR11C= BIT0 ;(W) CLEAR TO -11 TRANSFER ERROR
3180 000036 DIAG3= 36 ;DIAGNOSTIC/CONTROL REGISTER 3
3181 000001 TO10BM= BIT0 ;(W) TO -10 BYTE MODE
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 3
C11DTE.MAC 10-AUG-79 16:05 MACROS AND DEFINITIONS
3183
3184 .SBTTL MOVE TO TOP OF PHYSICAL MEMORY
3185 ;
3186 ; SECONDARY LOADER:
3187 ; THE BM873-YF, -YG, -YH, -YJ ROM LOADS THIS 256. WORD (512. BYTE) PROGRAM
3188 ; STARTING AT LOCATION 0, THEN TRANSFERS TO LOCATION 0.
3189 ;
3190 ; TERTIARY LOADER:
3191 ; THE SECONDARY LOADER LOADS THIS 1K WORD (2048. BYTE) PROGRAM
3192 ; AND TRANSFERS TO IT AT ITS TRANSFER ADDRESS "DTEMOP"
3193 ;
3194 ;
3195 ; THE FOLLOWING REGISTERS ARE LEFT BY THE ROM OR SECONDARY:
3196 ; R1 -- ADDRESS OF DTE20 STATUS WORD "CSTAT"
3197 ;
3198 ;
3199 .DSABL AMA
3200 000000 DTEMOP:
3201 000000 DEBUG HALT,<BOOTSTRAP>,NOP ;(0) MARK START OF BOOTSTRAP
3202 001 .IF DF T$$RLD
3203 000002 012737 000162 000004 MOV #30$,@#4 ;(2,4,6) SET UP TIMEOUT TRAP
3204 000010 012737 000340 000006 MOV #PR7,@#6 ; (10,12,14) TO TRAP TO US
3205 .IFF
3206 BR 10$ ;(2) SKIP OVER TIMEOUT CODE
3207 ;
3208 ; TIMEOUT VECTOR-- USED TO FIND TOP OF MEMORY
3209 ;
3210 .WORD 30$,PR7 ;(4,6) WHERE TO GO ON NXM (FIRST ON KT-11, THEN MEMORY S
3211 ;
3212 10$:
3213 ;
3214 ; WAIT FOR TO -11 DOORBELL IF NOT CLEARED BY ROM
3215 ;
3216 TSTB (R1) ;TO -11 DONE?
3217 BPL 15$ ;NO-- DOOBELL HAS BEEN CLEARED
3218 BIT #TO11DB,(R1) ;DOORBELL RINGING?
3219 BEQ 10$ ;NO-- WAIT
3220 15$:
3221 000 .ENDC
3222 ;
3223 ; FIND TOP BLOCK OF PHYSICAL MEMORY WHERE WE WILL FIT
3224 ;
3225 000016 012706 001344 MOV #STACK-4,SP ;SET STACK
3226 000022 012700 160000 MOV #160000,R0 ;START AT EXTERNAL PAGE IF NO KT11
3227 001 .IF DF M$$MGE
3228 000026 012702 077406 MOV #77406,R2 ;SET MAX SIZE FOR AN APR
3229 000032 010237 172300 MOV R2,@#KISDR0 ;SET MAP FOR THIS CODE (THIS WILL TRAP TO 30$ IF NO KT11
3230 000036 010237 172302 MOV R2,@#KISDR1 ;SET OTHER MAP FOR THIS CODE
3231 000042 010237 172304 MOV R2,@#KISDR2 ;SET MAP FOR FINDING MEMORY
3232 000046 010237 172316 MOV R2,@#KISDR7 ; THEN FOR EXTERNAL PAGE
3233 000052 005037 172340 CLR @#KISAR0 ;SET MAP SEGMENT 0 TO THIS CODE
3234 000056 012737 000200 172342 MOV #200,@#KISAR1 ; ALSO MAP SEGMENT 1
3235 000064 012737 007600 172344 MOV #7600,@#KISAR2 ;START MEMORY LOOKING AT EXTERNAL PAGE
3236 000072 012737 007600 172356 MOV #7600,@#KISAR7 ;ALSO MAP EXTERNAL PAGE
3237 000100 012737 000001 177572 MOV #1,@#SR0 ;ENABLE SEGMENTATION
3238 000106 012700 040000 MOV #40000,R0 ;POINT TO WHERE MAPPING REGISTER 2 MAPS
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 3-1
C11DTE.MAC 10-AUG-79 16:05 MOVE TO TOP OF PHYSICAL MEMORY
3239 000112 012737 000120 000004 MOV #20$,@#4 ;SET TIMEOUT TO KT11 FLAVOR
3240 000120 20$:
3241 000120 022626 CMP (SP)+,(SP)+ ;REMOVE TRAP
3242 000122 162737 000020 172344 SUB #M$$XSZ/100,@#KISAR2 ;COUNT DOWN BY OUR SIZE
3243 000130 005710 TST (R0) ;TRAP BACK TO 20$ IF NON-EX MEM
3244 ;
3245 ; FOUND TOP OF PHYSICAL MEMORY-- NOW COMPUTE PHYSICAL ADDRESS
3246 ;
3247 000132 013705 172344 MOV @#KISAR2,R5 ;GET PHYSICAL ADDRESS (RIGHT-SHIFTED 6 BITS)
3248 000136 006305 ASL R5 ;SHIFT
3249 000140 006305 ASL R5 ; EXTENSION
3250 000142 006305 ASL R5 ; BITS TO
3251 000144 006305 ASL R5 ; BITS 15-14
3252 000146 010504 MOV R5,R4 ;COPY IT
3253 000150 042704 037777 BIC #^C<BUSA17!BUSA16>,R4 ;TRIM TO RIGHT SIZE
3254 000154 006305 ASL R5 ;MAKE R5
3255 000156 006305 ASL R5 ; PHYSICAL ADDRESS
3256 000160 000411 BR 40$ ;GO ON TO MOVE
3257 .IFTF
3258 ;
3259 ; HERE IF WE MUST FIND TOP OF MEMORY WITHOUT MEMORY MANAGEMENT
3260 ;
3261 000162 30$:
3262 000162 022626 CMP (SP)+,(SP)+ ;REMOVE TRAP FROM STACK
3263 000164 162700 002000 SUB #M$$XSZ,R0 ;DOWN BY ANOTHER BLOCK
3264 000170 005710 TST (R0) ;TRAP TO 30$ IF STILL NXM
3265 ;
3266 ; FOUND TOP OF PHYSICAL MEMORY
3267 ;
3268 000172 010005 MOV R0,R5 ;COPY PHYSICAL ADDRESS
3269 .IFT
3270 000174 005004 CLR R4 ;MEMORY EXTENSION= 0
3271 000176 012767 000240 000514 MOV #240,CLRSR0 ;CHANGE "CLR (SP)" (SR0) TO NO-OP
3272 .IFF
3273 CLR DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS FOR DTE20 TO 0
3274 000 .ENDC
3275 ;
3276 ; WE NOW HAVE R0 POINTING TO THE TOP BLOCK IN MEMORY.
3277 ; SINCE THIS IS POSITION-INDEPENDENT, WE CAN MOVE UP THERE NOW.
3278 ;
3279 ; REGISTERS:
3280 ; R0 -- VIRTUAL ADDRESS OF WHERE TO MOVE CODE
3281 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
3282 ; R4 -- PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 17-16, IN BITS 15-14)
3283 ; R5 -- PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 15-0)
3284 ;
3285 000204 40$:
3286 000204 010006 MOV R0,SP ;COPY VIRTUAL ADDRESS
3287 000206 010067 000744 MOV R0,PARMAD ;CALCULATE START
3288 000212 062767 001700 000736 ADD #M$$XSZ-64.,PARMAD ;OF PARAMETER AREA
3289 000220 012702 000240 MOV #MOP,R2 ;SET SOURCE ADDRESS
3290 000224 50$:
3291 000224 012226 MOV (R2)+,(SP)+ ;MOVE A WORD
3292 000226 020227 001350 CMP R2,#STACK ;MOVED ALL THE CODE?
3293 000232 103774 BLO 50$ ;NO-- KEEP ON MOVIN'
3294 000234 000167 001646 JMP CHK.11 ;INVOKE CHECK11 (WILL CALL MOVED CODE)
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 4
C11DTE.MAC 10-AUG-79 16:05 MOVE TO TOP OF PHYSICAL MEMORY
3296
3297 .SBTTL MOP PROCESSOR
3298 ;
3299 ; THIS POSITION-INDEPENDENT CODE EXECUTES IN THE TOP BLOCK OF PHYSICAL MEMORY
3300 ;
3301 ; REGISTERS:
3302 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
3303 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
3304 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
3305 ; SP -- STACK POINTER (TOP OF VIRTUAL MEMORY)
3306 ;
3307 ; PAGE REGISTERS:
3308 ; 0 -- MAPS TO PHYSICAL 0
3309 ; 1 -- MAPS TO THIS CODE
3310 ; 7 -- MAPS TO EXTERNAL PAGE
3311 ;
3312 000240 MOP:
3313 000240 DEBUG HALT,<MOVED TO TOP OF PHYSICAL>
3314 001 .IF DF E$$CHK!D$$CHK!M$$CHK
3315 000240 012761 000100 177776 MOV #DRESET,DIAG2-CSTAT(R1) ;RESET ALL TRANSFERS IN PROGRESS
3316 000246 010706 MOV PC,SP ;SET STACK
3317 000250 062706 001100 ADD #STACK-.,SP ; BACK, JACK
3318 000254 105067 000675 CLRB LODNUM ;START LOAD AT ZERO
3319 002 .IF DF L$$DPR
3320 000260 105067 000674 CLRB PRGDAT ;MARK NO PROGRAM DATA YET
3321 001 .ENDC
3322 000 .ENDC
3323 ;
3324 ; SEND "REQUEST PROGRAM" MESSAGE TO THE -10
3325 ;
3326 000264 012700 000704 MOV #REQOPS-MOP,R0 ;GET ADDRESS OF MOP "REQUEST PROGRAM"
3327 000270 CALL DTESND ;SEND IT TO -10
3328 ;
3329 ; WAIT FOR -10 TO SEND US SOMETHING-- DOORBELL WILL RING
3330 ;
3331 000274 MOPWAT:
3332 000274 032711 004000 BIT #TO11DB,(R1) ;DOORBELL RINGING?
3333 000300 001775 BEQ MOPWAT ;NO-- WAIT UNTIL -10 RINGS US
3334 ;
3335 ; THE FIRST TWO BYTES ARE THE BYTE COUNT.
3336 ;
3337 000302 012700 001064 MOV #RCVMSG-MOP,R0 ;GET ADDRESS OF BYTE COUNT WORD
3338 000306 011703 MOV (PC),R3 ;SET LARGE COUNT
3339 000310 012702 000002 MOV #2,R2 ;SET BYTE COUNT
3340 000314 CALL DTERCV ;RECEIVE BYTE COUNT
3341 ;
3342 ; THE NEXT BYTE IS THE MOP FUNCTION CODE.
3343 ; THE NEXT BYTE IS THE LOAD NUMBER.
3344 ;
3345 000320 016703 001000 MOV BYTCNT,R3 ;GET BYTE COUNT NOW
3346 000324 012702 000002 MOV #2,R2 ;ONE BYTE MOP FUNCTION, ONE BYTE LOAD NUMBER
3347 000330 CALL DTERCA ;RECEIVE MOP CODE, ADDRESS IN R0
3348 001 .IF DF E$$CHK
3349 ;
3350 ; VERIFY MOP FUNCTION
3351 ;
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 4-1
C11DTE.MAC 10-AUG-79 16:05 MOP PROCESSOR
3352 000334 116702 000766 MOVB MOPFNC,R2 ;GET MOP FUNCTION
3353 000340 001406 BEQ 10$ ;(M.PMLT) MEMORY LOAD W/TRANSFER-- OK
3354 002 .IF DF L$$DPR
3355 000342 120227 000024 CMPB R2,#M.PLDP ;PROGRAM DATA?
3356 000346 001403 BEQ 10$ ;YES-- OK
3357 001 .ENDC
3358 000350 120227 000002 CMPB R2,#M.PMLD ;MEMORY LOAD?
3359 000354 ERR NE,<INVALID MOP FUNCTION CODE RECEIVED>,MOPFER
3360 000356 10$:
3361 ;
3362 ; VERIFY LOAD NUMBER
3363 ;
3364 .IFTF
3365 000356 116702 000745 MOVB RCVLDN,R2 ;IS LOAD 0?
3366 .IFT
3367 000362 001403 BEQ 20$ ;YES-- ALWAYS OK
3368 000364 120267 000565 CMPB R2,LODNUM ;THIS RIGHT LOAD?
3369 000370 ERR NE,<WRONG LOAD NUMBER RECIEVED>,MOPFER
3370 000372 20$:
3371 000 .ENDC
3372 000372 105202 INCB R2 ;BUMP LOAD NUMBER
3373 000374 110267 000555 MOVB R2,LODNUM ;STORE LOAD NUMBER
3374 ;
3375 ; RECEIVE DATA INTO MEMORY
3376 ;
3377 000400 012702 000004 MOV #4,R2 ;SET TO GET LOAD ADDRESS
3378 001 .IF DF L$$DPR
3379 000404 126727 000716 000024 CMPB MOPFNC,#M.PLDP ;PROGRAM DATA?
3380 000412 001005 BNE 40$ ;NO-- USE ADDRESS
3381 000414 062700 177630 ADD #PRGDAT-LODADR,R0 ;YES-- POINT TO PROGRAM DATA STORAGE AREA
3382 000420 005402 NEG R2 ;GET -4 FOR TRANSFER ADDRESS
3383 000422 060302 ADD R3,R2 ;GET SIZE LEFT
3384 000424 000444 BR 60$ ;AND RECEIVE PROGRAM DATA
3385 ;
3386 000426 40$:
3387 000 .ENDC
3388 000426 CALL DTERCA ; INTO LODADR
3389 000432 003450 BLE 70$ ;ONLY TRANSFER -- DO THAT
3390 000434 126727 000666 000002 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
3391 000442 001402 BEQ 42$ ;YES-- ALL IS DATA
3392 000444 162702 000004 SUB #4,R2 ;NO-- SAVE TRANSFER FOR LATER
3393 000450 42$:
3394 000450 016700 000654 MOV LODADR+0,R0 ;GET LOW ADDRESS BITS
3395 001 .IF DF M$$MGE
3396 002 .IF DF M$$CHK
3397 000454 010046 MOV R0,-(SP) ;ALSO SAVE AS ADDRESS RANGE
3398 .IFTF
3399 000456 016746 000650 MOV LODADR+2,-(SP) ;GET HIGH ADDRESS BITS
3400 .IFT
3401 000462 032716 177774 BIT #^C<BIT1!BIT0>,(SP) ;EXTRA BITS SET?
3402 000466 ERR NE,<LOAD REQUEST ABOVE 128K>,MOPFER
3403 .IFTF
3404 000470 006216 ASR (SP) ;SHIFT
3405 000472 006016 ROR (SP) ; TO
3406 000474 006016 ROR (SP) ; BITS 15-14
3407 000476 042716 037777 BIC #^C<BUSA17!BUSA16>,(SP) ;TRIM EXCESS
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 4-2
C11DTE.MAC 10-AUG-79 16:05 MOP PROCESSOR
3408 .IFT
3409 000502 011661 177744 MOV (SP),DLYCNT-CSTAT(R1) ;SET MEMORY BITS
3410 000506 060266 000002 ADD R2,2(SP) ;COMPUTE FINAL TRANSFER ADDRESS
3411 000512 103003 BCC 44$ ;NO CARRY-- GO ON
3412 000514 062716 040000 ADD #BUSA16,(SP) ;CARRY INTO THE HIGH PART
3413 000520 ERR CS,<LOAD REQUEST WRAPS AROUND 128K>,MOPFER
3414 000522 44$:
3415 000522 022604 CMP (SP)+,R4 ;VERIFY HIGH ADDRESS
3416 000524 ERR HI,<LOAD REQUEST ABOVE LOADER>,MOPFER
3417 000526 103402 BLO 46$ ;CHECK LOW ADDRESS ONLY IF EQ
3418 000530 021605 CMP (SP),R5 ;VERIFY LOW ADDRESS
3419 000532 ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
3420 000534 46$:
3421 000534 005726 TST (SP)+ ;REMOVE LOW ADDRESS
3422 .IFF
3423 MOV (SP)+,DLYCNT-CSTAT(R1) ;SET MEMORY BITS
3424 001 .ENDC
3425 .IFF
3426 002 .IF DF M$$CHK
3427 TST LODADR+2 ;MAKE SURE HIGH ADDRESS IS ZERO
3428 ERR NE,<LOAD REQUEST ABOVE LOADER>,MOPFER
3429 MOV R0,-(SP) ;ALSO SAVE LOW ADDRESS FOR COMPARE
3430 ADD R2,(SP) ;COMPUTE FINAL TRANSFER ADDRESS
3431 CMP (SP)+,R5 ;VERIFY LOW ADDRESS
3432 ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
3433 001 .ENDC
3434 000 .ENDC
3435 000536 60$:
3436 000536 CALL DTERCA ;RECEIVE THEM BYTES
3437 000542 003404 BLE 80$ ;ALL DONE-- DO ANOTHER REQUEST
3438 ;
3439 ; READ TRANSFER ADDRESS INTO LODADR
3440 ;
3441 000544 012700 001070 MOV #LODADR-MOP,R0 ;POINT BACK TO VIRTUAL MEMORY
3442 000550 CALL DTERCV ;READ THE ADDRESS INTO VIRTUAL MEMORY
3443 000554 70$:
3444 001 .IF DF S$$CLD
3445 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
3446 BNE 90$ ;NO-- DO THE TRANSFER
3447 .IFTF
3448 ;
3449 ; SEND REQUEST FOR NEXT MEMORY LOAD SEGMENT TO THE -10
3450 ;
3451 000554 80$:
3452 000554 012700 000712 MOV #REQMLD-MOP,R0 ;GET ADDRESS OF MOP "REQUEST/ACKNOWLEDGE MEMORY LOAD"
3453 000560 CALL DTESND ;SEND IT TO -10
3454 .IFT
3455 BR MOPWAT ;AND WAIT FOR ANOTHER REQUEST
3456 ;
3457 90$:
3458 .IFF
3459 000564 126727 000536 000002 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
3460 000572 001640 BEQ MOPWAT ;YES-- WAIT FOR NEXT REQUEST
3461 000 .ENDC
3462 ;
3463 ; TRANSFER TO ADDRESS NOW IN LODADR.
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 4-3
C11DTE.MAC 10-AUG-79 16:05 MOP PROCESSOR
3464 ;
3465 001 .IF DF M$$CHK
3466 000574 005767 000532 TST LODADR+2 ;MUST HAVE A VIRTUAL (16-BIT) TRANSFER ADDRESS
3467 000600 ERR NE,<TRANSFER ADDRESS ABOVE 32K>
3468 000 .ENDC
3469 001 .IF DF L$$DPR
3470 000602 010704 MOV PC,R4 ;ADDRESS THE
3471 000604 062704 000354 ADD #<PRGDAT-.>,R4 ; RECEIVE BUFFER
3472 000610 016705 000342 MOV PARMAD,R5 ; AND THE STANDARD AREA
3473 000614 005025 CLR (R5)+ ;CLEAR OUT BINARY SECTION
3474 000616 012700 000006 MOV #6,R0 ;CLEAR OUT
3475 000622 012725 020040 110$: MOV #20040,(R5)+ ; NODE AND HOST
3476 000626 077003 SOB R0,110$ ; NAME AREAS
3477 000630 016705 000322 112$: MOV PARMAD,R5 ;ADDRESS STANDARD AREA AGAIN
3478 000634 105714 TSTB (R4) ;IF THERE ARE NO MORE PARMS,
3479 000636 001415 BEQ 118$ ; GET OUT OF LOOP
3480 000640 121427 000002 CMPB (R4),#2 ;NODE NUMBER -
3481 000644 001405 BEQ 115$ ; WE'RE POSITIONED RIGHT NOW
3482 000646 005725 TST (R5)+ ;OTHERWISE, BUMP PAST BINARY AREA
3483 000650 105314 DECB (R4) ;IF NOT
3484 000652 001402 BEQ 115$ ; NODE NAME,
3485 000654 062705 000006 ADD #6,R5 ; BUMP TO HOST AREA
3486 000660 105224 115$: INCB (R4)+ ;PAST PARM TYPE (MAKE IT NON-ZERO)
3487 000662 112400 MOVB (R4)+,R0 ;PICK UP PARM LENGTH
3488 000664 112425 116$: MOVB (R4)+,(R5)+ ;MOVE PARM TO
3489 000666 077002 SOB R0,116$ ; STANDARD AREA
3490 000670 000757 BR 112$ ;GO DO NEXT PARM
3491 000 .ENDC
3492 ;
3493 000672 010106 118$: MOV R1,SP ;COPY DTE STATUS ADDRESS
3494 000674 010100 MOV R1,R0 ; (ALSO TO HERE)
3495 001 .IF DF L$$DPR
3496 000676 116701 000256 MOVB PRGDAT,R1 ;IF THERE IS
3497 000702 001403 BEQ 120$ ; PROGRAM DATA,
3498 000704 012701 177777 MOV #-1,R1 ; FLAG THE FACT
3499 000710 010102 MOV R1,R2 ; IN R1 AND R2
3500 000 .ENDC
3501 001 .IF DF M$$MGE
3502 000712 062706 177746 120$: ADD #DEXWD3-CSTAT,SP ;POINT TO DEXWD3, DEXWD2 FOR CODE
3503 000716 012726 MOV (PC)+,(SP)+ ;(DEXWD3)
3504 000720 005016 CLRSR0: CLR (SP) ;TURN OFF SEGMENTATION
3505 000722 012726 MOV (PC)+,(SP)+ ;(DEXWD2)
3506 000724 000113 JMP (R3) ;TRANSFER TO LOADED CODE.
3507 000726 016703 000376 MOV LODADR,R3 ;SET TRANSFER ADDRESS
3508 000732 012706 177572 MOV #SR0,SP ;ALSO WHERE TO DISABLE SEGMENTATION
3509 000736 DEBUG HALT,<TRANSFER ADDRESS READY>
3510 000736 000160 177746 JMP DEXWD3-CSTAT(R0) ;NOW TURN OFF SEGMENTATION AND TRANSFER.
3511 .IFF
3512 DEBUG HALT,<TRANSFER ADDRESS READY>
3513 JMP @LODADR ;TRANSFER TO IT.
3514 000 .ENDC
3515 001 .IF DF E$$CHK!D$$CHK!M$$CHK
3516 ;
3517 ; MOP FORMAT ERROR-- READ REST OF MOP MESSAGE AND REQUEST PROGRAM AGAIN
3518 ;
3519 002 .IF DF E$$CHK!M$$CHK
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 4-4
C11DTE.MAC 10-AUG-79 16:05 MOP PROCESSOR
3520 000742 MOPFER:
3521 000742 012702 000001 MOV #1,R2 ;READ ONE BYTE
3522 000746 012700 001324 MOV #RCVMSG,R0 ; INTO RCVMSG
3523 000752 CALL DTERCV ; FROM -10
3524 000756 003371 BGT MOPFER ;NOT DONE-- READ ANOTHER
3525 ; BR MOPERR ;DONE-- ABORT
3526 001 .ENDC
3527 ;
3528 ; ERROR-- BACK TO REQUEST PROGRAM AGAIN
3529 ;
3530 000760 MOPERR:
3531 002 .IF LT <<.-MOP>-256.>
3532 BR MOP ;SEND REQUEST PROGRAM
3533 .IFF
3534 000760 000167 177254 JMP MOP ;SEND REQUEST PROGRAM
3535 001 .ENDC
3536 000 .ENDC
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 5
C11DTE.MAC 10-AUG-79 16:05 MOP PROCESSOR
3538
3539 .SBTTL DTE SUBROUTINES
3540 ;
3541 ; DTESND -- SEND MESSAGE TO DTE20 FROM VIRTUAL
3542 ; R0 -- ADDRESS WITHIN MOVED CODE TO SEND DATA FROM (BYTE COUNT WORD)
3543 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
3544 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
3545 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
3546 ;
3547 000764 DTESND:
3548 000764 012711 050000 MOV #DON10C!ERR10C,(R1) ;RESET TO10DN AND TO10ER
3549 000770 012761 000001 000002 MOV #TO10BM,DIAG3-CSTAT(R1) ;SET TO -10 BYTE MODE
3550 001 .IF DF M$$MGE
3551 000776 010461 177744 MOV R4,DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS
3552 000 .ENDC
3553 001 .IF DF D$$CHK
3554 MOV R0,-(SP) ;SAVE ADDRESS
3555 .IFTF
3556 001002 060500 ADD R5,R0 ;CONVERT TO PHYSICAL
3557 001004 010061 177764 MOV R0,TO10AD-CSTAT(R1) ;SET ADDRESS OF MOP MESSAGE
3558 .IFT
3559 ADD #2,R0 ;DON'T FORGET THE BYTE COUNT!
3560 ADD PC,(SP) ;CONVERT OFFSET WITHIN "MOP" TO VIRTUAL
3561 ADD #MOP-.,(SP) ; . .
3562 ADD @(SP)+,R0 ;UPDATE ADDRESS BY BYTE COUNT
3563 000 .ENDC
3564 001010 012711 002400 MOV #TO10DB!INT11C,(R1) ;RING -10'S DOORBELL WITH THIS MESSAGE
3565 ;
3566 ; WAIT FOR TO -10 TRANSFER
3567 ;
3568 001014 10$:
3569 001 .IF DF E$$CHK
3570 001014 032711 120000 BIT #TO10DN!TO10ER,(R1) ;DONE OR ERROR?
3571 001020 001775 BEQ 10$ ;NOT DONE OR ERROR-- WAIT
3572 001022 ERR PL,<TO -10 TRANSFER ERROR>
3573 .IFF
3574 TST (R1) ;DONE?
3575 BPL 10$ ;NO-- WAIT
3576 000 .ENDC
3577 001 .IF DF D$$CHK
3578 CMP R0,TO10AD-CSTAT(R1) ;TRANSFER REQUESTED NUMBER OF BYTES?
3579 ERR NE,<TO -10 TRANSFER WRONG NUMBER OF BYTES>
3580 000 .ENDC
3581 001024 RETURN ;RETURN FROM DTESND
3582 ;
3583 ; DTERCV -- RECEIVE MESSAGE FROM DTE20 VIRTUAL
3584 ; R0 -- ADDRESS WITHIN MOVED CODE TO STORE DATA
3585 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
3586 ; R2 -- BYTE COUNT TO BE RECEIVED
3587 ; R3 -- GLOBAL BYTE COUNT
3588 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
3589 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
3590 ;
3591 001026 DTERCV:
3592 001 .IF DF M$$MGE
3593 001026 010461 177744 MOV R4,DLYCNT-CSTAT(R1) ;SET EXTENDED MEMORY BITS
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 5-1
C11DTE.MAC 10-AUG-79 16:05 DTE SUBROUTINES
3594 000 .ENDC
3595 001032 060500 ADD R5,R0 ;MAKE PHYSICAL ADDRESS
3596 ;
3597 ; DTERCA -- RECEIVE FROM DTE20
3598 ; R0 -- PHYSICAL RECEIVE ADDRESS (BITS 15-0)
3599 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
3600 ; R2 -- BYTE COUNT TO BE RECEIVED
3601 ; R3 -- GLOBAL BYTE COUNT
3602 ;
3603 001034 DTERCA:
3604 001034 010061 177766 MOV R0,TO11AD-CSTAT(R1) ;SET ADDRESS
3605 001040 060200 ADD R2,R0 ;UPDATE ADDRESS
3606 001 .IF DF T$$32K
3607 001042 103010 BCC 10$ ;NO BOUNDARY-- OK
3608 001044 001407 BEQ 10$ ;EXACTLY A BOUNDARY-- OK ALSO
3609 ;
3610 ; THE REQUESTED TRANSFER CROSSES A 32K BOUNDARY-- WE MUST
3611 ; DO THE TRANSFER IN TWO PIECES
3612 ;
3613 001046 010046 MOV R0,-(SP) ;SAVE RESIDUAL COUNT ABOVE BOUNDARY
3614 001050 160002 SUB R0,R2 ;CHANGE THIS COUNT TO JUST BELOW BOUNDARY
3615 001052 005000 CLR R0 ;SET FINAL ADDRESS= 0
3616 001054 CALL 10$ ;DO THE FIRST PART OF THE TRANSFER
3617 001060 012602 MOV (SP)+,R2 ;GET RESIDUAL COUNT
3618 001062 010200 MOV R2,R0 ;THAT'S FINAL ADDRESS, ALSO
3619 001064 10$:
3620 000 .ENDC
3621 001064 012711 000101 MOV #DON11C!ERR11C,(R1) ;RESET TO11DN AND TO11ER
3622 001070 160203 SUB R2,R3 ;LAST TRANSFER?
3623 001072 001403 BEQ 20$ ;YES-- SET TO11IB TO INDICATE "DONE" TO BOTH PROCESSORS
3624 001 .IF DF E$$CHK
3625 001074 ERR LT,<TO -11 MESSAGE TO SHORT>
3626 000 .ENDC
3627 001076 052702 100000 BIS #TO11IB,R2 ;CLEAR TO11IB (WHEN WE NEG R2)
3628 001102 20$:
3629 001102 005402 NEG R2 ;NEGATE BYTE COUNT
3630 001104 042702 050000 BIC #^C<TO11IB!TO11BM!TO11CM>,R2 ;CLEAR UNUSED BITS
3631 001 .IF DF E$$CHK
3632 001110 ERR EQ,<TO -11 ZERO BYTE TRANSFER>
3633 000 .ENDC
3634 001112 010261 177762 MOV R2,TO11BC-CSTAT(R1) ;START TRANSFER
3635 ;
3636 ; WAIT FOR TO -11 TRANSFER
3637 ;
3638 001116 30$:
3639 001 .IF DF E$$CHK
3640 001116 132711 000202 BITB #TO11DN!TO11ER,(R1) ;DONE OR ERROR?
3641 001122 001775 BEQ 30$ ;NOT DONE OR ERROR-- WAIT
3642 001124 ERR PL,<TO -11 TRANSFER ERROR>
3643 .IFF
3644 TSTB (R1) ;DONE?
3645 BPL 30$ ;NO-- WAIT
3646 000 .ENDC
3647 001 .IF DF D$$CHK
3648 CMP R0,TO11AD-CSTAT(R1) ;TRANSFER PROPER NUMBER OF BYTES?
3649 ERR NE,<TO -11 TRANSFER WRONG NUMBER OF BYTES>
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 5-2
C11DTE.MAC 10-AUG-79 16:05 DTE SUBROUTINES
3650 000 .ENDC
3651 001 .IF DF T$$32K
3652 001126 005700 TST R0 ;THIS TRANSFER CROSS A 32K BOUNDARY?
3653 001130 001003 BNE 40$ ;NO-- ALL OK
3654 001132 062761 040000 177744 ADD #BUSA16,DLYCNT-CSTAT(R1) ;YES-- BUMP ADDRESS BITS
3655 001140 40$:
3656 000 .ENDC
3657 001140 010302 MOV R3,R2 ;GET REMAINING COUNT, AND TST IT
3658 001142 RETURN ;RETURN FROM DTERCV/DTERCA
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 6
C11DTE.MAC 10-AUG-79 16:05 DTE SUBROUTINES
3660
3661 .SBTTL DATA
3662 ;
3663 ; MOP MESSAGE "REQUEST PROGRAM"
3664 ;
3665 001144 REQOPS:
3666 001144 000004 .WORD REQOPZ ;(2 BYTES) BYTE COUNT
3667 001146 010 .BYTE M.PRPR ;(0) FUNCTION = REQUEST PROGRAM
3668 001147 024 .BYTE 20. ;(1) DEVICE TYPE = DTE20/11
3669 001150 001 .BYTE 1 ;(2) STATION ADDRESS = 1
3670 001 .IF DF S$$CLD
3671 .BYTE 1 ;(3) PROGRAM TYPE = TERTIARY LOADER
3672 .IFF
3673 001151 002 .BYTE 2 ;(3) PROGRAM TYPE = OPERATING SYSTEM
3674 000 .ENDC
3675 000004 REQOPZ= .-REQOPS-2
3676 .EVEN
3677 ;
3678 ; MOP MESSAGE "REQUEST/ACKNOWLEDGE MEMORY LOAD"
3679 ;
3680 001152 REQMLD:
3681 001152 000002 .WORD REQMLZ ;(2 BYTES) BYTE COUNT
3682 001154 012 .BYTE M.PRML ;(0) FUNCTION = REQUEST/ACKNOWLEDGE MEMORY LOAD
3683 001155 000 LODNUM: .BYTE 0 ;(1) LOAD NUMBER (START AT 0)
3684 000002 REQMLZ= .-REQMLD-2
3685 ;
3686 ; LOAD PARAMETER BLOCK FOR PROGRAM
3687 ;
3688 001 .IF DF L$$DPR
3689 001156 000000 PARMAD: .WORD 0 ;VIRTUAL ADDRESS OF STANDARD PROGRAM DATA AREA
3690 001160 PRGDAT:
3691 001160 000 .BYTE 0 ;FIRST BYTE INDICATES EXISTENCE
3692 .IFTF
3693 001161 FIT DTEMOP,M$$XSZ,<CODE>
3694 .IFT
3695 001161 000143 .BLKB 100.-1 ;LOAD PARAMETERS FOR PROGRAM
3696 000 .ENDC
3697 ;
3698 ; RECEIVED MOP MESSAGE
3699 ;
3700 .EVEN
3701 001324 RCVMSG:
3702 001324 000001 BYTCNT: .BLKW 1 ;BYTE COUNT
3703 001326 000001 MOPFNC: .BLKB 1 ;MOP FUNCTION
3704 001327 000001 RCVLDN: .BLKB 1 ;LOAD NUMBER RECEIVED
3705 001330 000004 LODADR: .BLKB 4 ;LOAD ADDRESS/TRANSFER ADDRESS
3706 ;
3707 ; STACK
3708 ;
3709 .EVEN
3710 001334 000006 .BLKW 6
3711 001350 STACK:
3712 ;
3713 001350 FIT MOP,M$$XSZ,<MOVED CODE>
DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7
C11DTE.MAC 10-AUG-79 16:05 DATA
3715
3716 .TITLE CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3717 .SBTTL CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3718 ; 22 SEP 1977 DMCC/EGF/JBS/LAD/EJW/TEP
3719 ;
3720 ;
3721 ;
3722 ; THIS CODE IS EXECUTED ONCE AND THEN OVERLAID
3723 ;
3724 ;
3725 ;
3726 ;
3727 ; THE CALL TO CHK11 IS AS FOLLOWS:
3728 ; JSR PC,CHK.11
3729 ; .WORD PTR ;POINTER TO ASCIZ NAME STRING AND EDIT POINTERS
3730 ; RETURNS TO CALLER FOLLOWING POINTER WORD
3731 ;
3732 ; CHK11 WILL DETERMINE WHAT HARDWARE IS PRESENT
3733 ; AND WILL PERFORM A FEW SIMPLE DIAGNOSTIC TESTS OF THE HDW
3734 ;
3735 ; FOR DEV = < DH11, DM11BB, DP11, DQ11, DS11, DU11>
3736 ; CHK11 WILL: JSR PC,CKA'DEV
3737 ; WITH (R3) = DEVICE VECTOR
3738 ; AND (R4) = DEVICE ADR
3739 ; AND (R1) = DEVICE ADR
3740 ; ONCE FOR EACH DEVICE AND A FINAL:
3741 ; JSR PC,CKA'DEV WITH (R4)=0
3742 ;
3743 ; ALL SYMBOLS BEGINING CHK OR CK ARE RESERVED FOR CHK11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7-1
C11DTE.MAC 10-AUG-79 16:05 CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC
3745 .ENABL AMA
3746 ; VERSION INFORMATION
3747 ;
3748 001350 005015 006012 044103 CKNAME: .ASCIZ <15><12><12><14>"CHK11 HARDWARE TEST"
001356 030513 020061 040510
001364 042122 040527 042522
001372 052040 051505 000124
3749 .EVEN
3750 001400 000002 000101 000021 .WORD CKVMAJ,CKVMIN,CKVEDI
3751 001406 001412 001424 .WORD CKVWHN,CKVWHO
3752 ;
3753 000002 CKVMAJ = 2 ;MAJOR VERSION NUMBER
3754 000101 CKVMIN = 'A ;MINOR VERSION LETTER (AS 'A)
3755 000021 CKVEDI = 17. ;EDIT NUMBER
3756 000001 ED.HIS = 1 ;TYPE OUT DETAILS
3757 001412 030061 040455 043525 CKVWHN: .ASCIZ "10-AUG-79" ;LAST EDIT DATE
001420 033455 000071
3758 .EVEN
3759 001424 042114 000127 CKVWHO: .ASCIZ "LDW" ;LAST EDITOR
3760 .EVEN
3761 ;
3762 ;
3763 ;
3764 ;BE SURE ALL THE REGS ARE DEFINED PROPERLY
3765 ;
3766 000000 R0=%0
3767 000001 R1=%1
3768 000002 R2=%2
3769 000003 R3=%3
3770 000004 R4=%4
3771 000005 R5=%5
3772 000006 R6=%6
3773 000006 SP=%6
3774 000007 R7=%7
3775 000007 PC=%7
3776 ;
3777 .IIF NDF FTKG11,FTKG11= 1 ;0 IF KG11 MUST BE PRESENT
3778 ;
3779 ;OTHER DEFAULTS
3780 .IIF NDF FLOATV FLOATV= 300 ;FIRST FLOATING VECTOR
3781 .IIF NDF FLOATD FLOATD= 160000 ;FLOATING DEVICES BEGIN HERE
3782 ;
3783 .IIF NDF DL10AD,DL10AD=.
3784 001430 000001 .BLKW 1 ;PUT DL10 ADR HERE IF NOWHERE ELSE
3785 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7-2
C11DTE.MAC 10-AUG-79 16:05 CHK11 MACROS
3787 .SBTTL CHK11 MACROS
3788 .SBTTL CK11SC
3789 ;
3790 ;THIS MACRO IS USED FOR TYPING TEXT AND ERROR REPORTING.
3791 ;
3792 ; ARG BITS ;WHAT TO DO ON A TRAP
3793 000001 CKEFAT= B0 ;FATAL ERROR - HALT
3794 000002 CKEPC= B1 ;PRINT ADDRESS OF ERROR TRAP
3795 000004 CKEMSG= B2 ;PRINT THE MESSAGE FOLLOWING CK11SC
3796 000010 CKEDID= B3 ;PRINT DEVICE ID AND REG
3797 000020 CKEMSE= B4 ;PRINT THE MESSAGE POINTED TO BY
3798 ; THE ADDRESS FOLLOWING THE TRAP.
3799 000040 CKENCL= B5 ;PRINT TEXT WITH OUT CR+LF
3800 000100 CKEGB= B6 ;PRINT ADR/REG=XXXXX GD=XXXXX BD=XXXXX XOR=XXXXX
3801 ;
3802 ; ARG MSG ;TEXT TO BE OUTPUT
3803 ;
3804 ; ARG COMENT ;ADD A COMMENT TO THE TRAP INSTRUCTION
3805 ;
3806 ; ARG STOPCD ;ON A FATAL ERROR VALUE TO BE PUT IN R0
3807 ;
3808 .MACRO CK11SC BITS,MSG,COMENT,STOPCD
3809 .IIF NB,STOPCD, MOV #STOPCD,CKSPCD ;VALUE TO DISPLAY ON FATAL ERROR
3810 .IF B <MSG>
3811 TRAP BITS ;COMENT
3812 .IFF ;B <MSG.>
3813 .IF EQ,<BITS&CKEMSE>
3814 TRAP BITS!CKEMSG ;COMENT
3815 ;;;; ASCIZ <MSG> ;MESSAGE TEXT FOLLOWS TRAP
3816 .IFF
3817 TRAP BITS&<^CCKEMSG> ;COMENT
3818 .WORD MSG ;ADR OF MESSAGE FOLLOWS TRAP
3819 .ENDC ;EQ <BITS..>
3820 .ENDC ;B <MSG.>
3821 .ENDM CK11SC
3822 ;
3823 ;
3824 ;THIS MACRO IS USED FOR SAVING GOOD, BAD, AND ADR ON THE STACK
3825 ;PRIOR TO INVOKING CK11SC
3826 ;
3827 ; ARG GD ;GOOD DATA
3828 ; ARG BD ;BAD DATA
3829 ; ARG ADR ;ADDRESS WHERE IT HAPPENED
3830 ;
3831 .MACRO CKSERR GD,BD,ADR
3832 MOV GD,-(SP) ;SAVE GOOD (GD) ON STACK
3833 MOV BD,-(SP) ;SAVE BAD (BD) ON STACK
3834 MOV ADR,-(SP) ;SAVE ADDRESS (ADR) ON STACK
3835 .ENDM CKSERR
3836 ;
3837 .MACRO ABORT
3838 CK11SC CKEFAT
3839 .ENDM ABORT
3840 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7-3
C11DTE.MAC 10-AUG-79 16:05 $CKINT
3842 .SBTTL $CKINT
3843 ;
3844 ;THIS MACRO IS USED TO CHECK INTERRUPT CONDITIONS
3845 ;
3846 ; ARG ENBADR ;DEVICE ADR TO ENABLE INTERRUPTS
3847 ;
3848 ; ARG INTADR ;DEVICE ADR TO GENERATE AN INTERRUPT
3849 ;
3850 ; ARG ENLBIT ;BIT TO ENABLE INTERRUPTS
3851 ;
3852 ; ARG INTBIT ;BITS TO CHECK INTERRUPT CONDITIONS
3853 ;
3854 ; ARG BITCLR ;BITS TO CLEAR INTERRUPT CONDITIONS
3855 ; ;IF CLEARING INTERRUPT BITS WON'T CLEAR
3856 ; ;THEM. [EXAMPLE - DL10]
3857 ;
3858 .MACRO $CKINT ENBADR,INTADR,ENLBIT,INTBIT,BITCLR
3859 .IIF NB,ENBADR, MOV ENBADR,R1 ;LOAD ENABLE ADR
3860 .IIF NB,INTADR, MOV INTADR,R2 ;LOAD INTERRUPT ADR
3861 JSR R5,CKINT ;GO CHECK INTERRUPTS
3862 .IIF NDF I.$$$$,I.XXXX = .
3863 .IIF NDF I.$$$$,I.ENAB = . - I.XXXX
3864 .WORD ENLBIT ;ENABLE BITS - ENLBIT
3865 .IIF NDF I.$$$$,I.INTS = . - I.XXXX
3866 .WORD INTBIT ;INTERRUPT BITS - INTBIT
3867 .IIF NDF I.$$$$,I.INTC = . - I.XXXX
3868 .WORD BITCLR+0 ;BITS TO CLEAR DEVICE - ARG MAY BE BLANK
3869 .IIF NDF I.$$$$,I.RTRN = . - I.XXXX
3870 .IIF NDF I.$$$$,I.$$$$ = 0
3871 .ENDM
3872 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7-4
C11DTE.MAC 10-AUG-79 16:05 DEVICE
3874 .SBTTL DEVICE
3875 ;
3876 ;THIS MACRO IS USED TO TO CALL THE ROUTINE TO CHECK A DEVICE
3877 ;AND ASSIGN THE FLOATING ADDRESS AND VECTORS IF THE DEVICE
3878 ;IS THE TYPE THAT REQUIRES IT.
3879 ;
3880 ; ARG A ;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
3881 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES
3882 ; ARG VI ;VECTOR INCREMENT
3883 ; ARG HI ;HARDWARE INCREMENT
3884 ; ARG VM ;VECTOR MULTIPLE
3885 ; ARG NAM ;DEVICE NAME ABBREVIATION
3886 ; ARG FV ;FIRST VECTOR ADR (FIXED DEV ONLY)
3887 ;
3888 .MACRO DEVICE A,MAXN,VI,HI,VM,NAM,FV
3889 .IF DF X'NAM'11
3890 X'NAM'$$=X'NAM'11 ;IF A LOCAL DIAGNOSTIC IS DEFINED, USE IT
3891 .IFF
3892 X'NAM'$$=X..... ;ELSE USE NULL DIAGNOSTIC
3893 .ENDC ;DF X'NAM'11
3894 ;
3895 ;
3896 .IF DF CKA'NAM'11
3897 CKA'NAM'$$=CKA'NAM'11 ;IF PROGRAM ENTRY DEFINED, USE IT
3898 .IFF
3899 CKA'NAM'$$=CKPOPJ ;ELSE USE NULL SUBROUTINE
3900 .ENDC ;DF CKA'NAM'11
3901 ;
3902 ;
3903 .IF DF CKV'NAM'11
3904 CV'NAM'$$=CKV'NAM'11 ;IF REAL VECTOR DEFINED, USE IT
3905 .IFF
3906 CV'NAM'$$=0 ;ELSE IGNORE EVERYTHING
3907 .ENDC ;DF CKV'NAM'11
3908 ;
3909 ;
3910 .IIF NDF,NAM'.LVL,NAM'.LVL=0 ;USE LEVEL NAME IF IT EXISTS
3911 ;
3912 JSR R5,CHKDEV ;CALL DEVICE ANALYZER
3913 .IIF NDF D.$$$$,D.XXXX=. ;FIRST TIME THROUGH (ONLY)
3914 ; THE OFFSETS ARE DEFINED
3915 .IIF NDF D.$$$$,D.BADR=.-D.XXXX
3916 .WORD A ;1ST NAM'11 ADR IS A
3917 .IIF NDF D.$$$$,D.MAXL=.-D.XXXX
3918 .BYTE <MAXN> ;MAXIMUM NUMBER OF NAM'11 IS MAXN,
3919 .IIF NDF D.$$$$,D.VINC=.-D.XXXX
3920 .BYTE <VI> ;VECTOR INCREMENT IS VI
3921 .IIF NDF D.$$$$,D.HINC=.-D.XXXX
3922 .BYTE <HI> ;HARDWARE INCREMENT IS HI,
3923 .IIF NDF D.$$$$,D.VMUL=.-D.XXXX
3924 .BYTE <VM> ;1ST VECTOR MULTIPLE IS VM
3925 .IIF NDF D.$$$$,D.CNTP=.-D.XXXX
3926 .WORD 0 ;WILL BECOME NUMBER OF DEVICES
3927 .IIF NDF D.$$$$,D.NAMP=.-D.XXXX
3928 .WORD N.'NAM'11 ;ADDRESS OF ASCIZ NAME STRING
3929 .IIF NDF D.$$$$,D.DIAG=.-D.XXXX
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 7-5
C11DTE.MAC 10-AUG-79 16:05 DEVICE
3930 .WORD X'NAM'$$ ;ADDRESS OF ROUTINE TO CHECK DEVICE
3931 .IIF NDF D.$$$$,D.MAIN=.-D.XXXX
3932 .WORD CKA'NAM'$$ ;CALL FOR MAIN PROGRAM (CKA'NAM'11)
3933 .IIF NDF D.$$$$,D.MPVC=.-D.XXXX
3934 .WORD CV'NAM'$$ ;POINTS TO VECTOR SETUP TABLE
3935 .IIF NDF D.$$$$,D.CNTF=.-D.XXXX
3936 .WORD 0 ;WILL CONTAIN NUMBER OF NAM'11 FOUND
3937 .IIF NDF D.$$$$,D.FRSV=.-D.XXXX
3938 .WORD 0 ;WILL CONTAIN FIRST NAM'11 VECTOR ADR
3939 .IIF NDF D.$$$$,D.PRIO=.-D.XXXX
3940 .WORD NAM'.LVL*40 ;CONTAINS NAM'11 PI LEVEL
3941 .IIF NDF D.$$$$,D.FVFD=.-D.XXXX
3942 .WORD FV ;DEVICE FIRST VECTOR (FIXED DEV ONLY)
3943 .IIF NDF D.$$$$,D.NEXT=.-D.XXXX
3944 .IIF NDF D.$$$$,D.$$$$=0 ;DEFINE DEFINITION STOPPER
3945 .ENDM DEVICE
3946 ;
3947 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 8
C11DTE.MAC 10-AUG-79 16:05 DEVICE
3949
3950 .SBTTL CHKCHR
3951 ;
3952 ;THIS MACRO IS USED FOR SETTING CHARACTERISTICS TABLE
3953 ;
3954 ; ARG DA ;DEVICE ADDRESS TO PUT IN CHARACTERISTICS TABLE
3955 ;
3956 ; ARG DV ;DEVICE VECTOR ADDRESS TO PUT IN TABLE
3957 ;
3958 ; ARG PI ;DEVICE PI LEVEL TO PUT IN TABLE
3959 ;
3960 .MACRO CHKCHR DA,DV,PI
3961 .IIF NB,<DA>, MOV DA,CHKCHR+CKDA ;PUT DA IN DEVICE ADR SLOT
3962 .IIF NB,<DV>, MOV DV,CHKCHR+CKDV ;PUT DV IN DEVICE VEC SLOT
3963 .IIF NB,<PI>, MOV PI,CHKCHR+CKPI ;PUT PI IN DEVICE INT LVL SLOT
3964 .ENDM CHKCHR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 8-1
C11DTE.MAC 10-AUG-79 16:05 CKVECT, CKVEC1
3966 .SBTTL CKVECT, CKVEC1
3967 ;
3968 ;"CKVECT" INVOKES "CKVEC1" TO BUILD A TABLE
3969 ;FOR EACH DEVICE. THE INFORMATION IN THE TABLE IS OF THE FOLLOWING FORM:
3970 ;
3971 ; CKV'NAM'11:
3972 ; .BYTE NUMBER OF MAIN ROUTINES
3973 ; .BYTE NUMBER OF VECTORS PER DEV
3974 ; .WORD NAM'VA'NUM
3975 ;
3976 ; EXAMPLE:
3977 ;
3978 ; 1. MAIN PROGRAM HAS 1 DQ11
3979 ; THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG: DQVA0
3980 ; DQ #0 VECTOR B THE TAG: DQVB0
3981 ; THE RESULTING TABLE WILL BE:
3982 ;
3983 ; CKVDQ11:.BYTE 1,2
3984 ; DQAV0
3985 ; DQBV0
3986 ;
3987 ; 2. MAIN PROGRAM HAS 2 DQ11'S
3988 ; THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG: DQVA0
3989 ; DQ #0 VECTOR B THE TAG: DQVB0
3990 ; DQ #1 VECTOR A THE TAG: DQVA1
3991 ; DQ #1 VECTOR B THE TAG: DQVB1
3992 ;
3993 ; THE RESULTING TABLE WILL BE:
3994 ;
3995 ; CKVDQ11:.BYTE 2,2
3996 ; DQVA0
3997 ; DQVB0
3998 ; DQVA1
3999 ; DQVB1
4000 ;
4001 ;
4002 ; ARG NAM ;NAME (2 CHARACTERS)
4003 ; ARG NUMV ;NUMBER OF VECTORS PER DEVICE
4004 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES OF A TYPE
4005 ;
4006 .MACRO CKVECT NAM,NUMV,MAXN
4007 CKZQZQ=0
4008 CV'NAM'11:.BYTE NAM'QQQ,NUMV ;NUM OF VEC FOR EACH NAM'11 IS NUMV
4009 NAM'QQQ=0 ;DEFINE AND SET TO 0
4010 .REPT MAXN
4011 CKVEC1 NAM,NUMV,\CKZQZQ
4012 CKZQZQ=CKZQZQ+1
4013 .ENDR
4014 .ENDM CKVECT
4015 ;
4016 ;
4017 ;
4018 ;
4019 .MACRO CKVEC1 NAM,NUMV,NUM
4020 .IF DF,NAM'VA'NUM
4021 NAM'QQQ=NAM'QQQ+1 ;COUNT NUMBER IN MAIN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 8-2
C11DTE.MAC 10-AUG-79 16:05 CKVECT, CKVEC1
4022 .IIF GE,<NUMV-1>, .WORD NAM'VA'NUM ;VECTOR A FOR DEV NAM'11
4023 .IIF GE,<NUMV-2>, .WORD NAM'VB'NUM ;VECTOR B FOR DEV NAM'11
4024 .IIF GE,<NUMV-3>, .WORD NAM'VC'NUM ;VECTOR C FOR DEV NAM'11
4025 .IIF GE,<NUMV-4>, .WORD NAM'VD'NUM ;VECTOR D FOR DEV NAM'11
4026 .ENDC
4027 .ENDM CKVEC1
4028 ;
4029 .MACRO LDVECT DEV
4030 .IF DF DEV'INT
4031 MOV #DEV'INT,DEV'VEC ;SET DEV TO GO TO DEV'VEC
4032 MOV #DEV'LVL*40,DEV'VEC+2 ; AND SET THE LEVEL.
4033 .IFF
4034 MOV 0,@#0 ;LEAVE ROOM FOR ENTRY TO BE PATCHED
4035 MOV 2,@#2 ;
4036 .ENDC
4037 .ENDM LDVECT
4038
4039 ;
4040 ; LIMIT FOR INTERRUPT VECTORS WHICH CHECK11 WILL MONITOR
4041 ;
4042
4043 001300 $$HERE = <CKNAME-DTEMOP>&177700 ;ABSOLUTE ADDRESS OF TOP OF CHK11
4044 001 .IF LT,<1000-$$HERE>
4045 001432 001300 VCTLIM: .WORD $$HERE
4046 .IFF
4047 VCTLIM: .WORD 1000
4048 000 .ENDC
4049 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 8-3
C11DTE.MAC 10-AUG-79 16:05 CHK11 DEVICE NAME TABLE
4051 .SBTTL CHK11 DEVICE NAME TABLE
4052 ;
4053 .MACRO NAMSTR DEV,ABBR
4054 N.'ABBR'11:
4055 .ASCIZ "DEV"
4056 .ENDM NAMSTR
4057 ;
4058 ;NOTE: THIS LIST IS ALPHABETIZED BY DEVICE NAME, NOT DEVICE ABBREVIATION
4059 ;
4060 001434 NAMSTR <CD20>,CD
4061 001441 NAMSTR <CR11>,CR
4062 001446 NAMSTR <CTY IN>,CI
4063 001455 NAMSTR <CTY OUT>,CO
4064 001465 NAMSTR <DH11>,DH
4065 001472 NAMSTR <DJ11>,DJ
4066 001477 NAMSTR <DL10>,DL0
4067 001504 NAMSTR <DL11-A>,DL.A
4068 001513 NAMSTR <DL11-E>,DL.E
4069 001522 NAMSTR <DM11-BB>,DM
4070 001532 NAMSTR <DMC11>,DMC
4071 001540 NAMSTR <DN11>,DN
4072 001545 NAMSTR <DP11>,DP
4073 001552 NAMSTR <DQ11>,DQ
4074 001557 NAMSTR <DS11>,DS
4075 001564 NAMSTR <DTE20>,DTE2
4076 001572 NAMSTR <DU11>,DU
4077 001577 NAMSTR <DUP11>,DUP
4078 001605 NAMSTR <DV11>,DV
4079 001612 NAMSTR <DZ11>,DZ
4080 001617 NAMSTR <KG11-A>,KG
4081 001626 NAMSTR <KMC11>,KMC
4082 001634 NAMSTR <KT11>,KT
4083 001641 NAMSTR <KW11-L>,KW.L
4084 001650 NAMSTR <KW11-P>,KW.P
4085 001657 NAMSTR <LK11>,LK
4086 001664 NAMSTR <LP11>,LE
4087 001671 NAMSTR <LP20>,LP
4088 001676 NAMSTR <MF11-UP>,MM
4089 001706 NAMSTR <null device>,NL
4090 001722 NAMSTR <PA611-P>,P6
4091 001732 NAMSTR <PA611-R>,R6
4092 001742 NAMSTR <PP11>,PP
4093 001747 NAMSTR <PR11>,PR
4094 001754 NAMSTR <RC11>,RC
4095 001761 NAMSTR <RF11>,RF
4096 001766 NAMSTR <RK11>,RK
4097 001773 NAMSTR <RH11>,RH
4098 002000 NAMSTR <RP11-C>,RP
4099 002007 NAMSTR <RX11>,RX
4100 002014 NAMSTR <TA11>,TA
4101 002021 NAMSTR <TC11>,TC
4102 002026 NAMSTR <TM11>,TM
4103 002034 .EVEN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 8-4
C11DTE.MAC 10-AUG-79 16:05 CHK11 DEVICE NAME TABLE
4105 002034 000001 CHKFLG: .BLKW 1 ;CHK11 FLAGS
4106 000001 CKFERR= B0 ;ERROR DETECTED
4107 100000 CKFIDT= B15 ;ID ALREADY TYPED
4108 002036 000001 CKDEVN: .BLKW 1 ;UNIT # CURRENTLY BEING TESTED
4109 002040 000001 CKDNAM: .BLKW 1 ;ADR OF DEVICE NAME(.ASCIZ)
4110 ;
4111 002042 000001 CK.CAL: .BLKW 1 ;RETURN ADDRESS TO CALLER OF CHK11
4112 002044 000001 CK.DTE: .BLKW 1 ;DTE CSR ADDRESS (FOR REMOTE REPORTING)
4113 ;
4114 002046 000001 PHYLIM: .BLKW 1 ;LIMIT OF PHYSICAL MEMORY (BLOCKS)
4115 000060 NLINES = 48. ;NUMBER OF DMC/KMC LINES, 4 PER DEVICE
4116 002050 000000 MDCSRP: .WORD 0 ;POINTER INTO MDCSR TABLE
4117 002052 000000 000000 000000 MDCSR: .WORD 0,0,0,0,0,0,0,0 ; (TWELVE ENTRIES FOR NOW)
002060 000000 000000 000000
002066 000000 000000
4118 002072 000000 000000 000000 0,0,0,0 ;
002100 000000
4119 ;
4120 002102 000207 CKPOPJ: RTS PC ;CKPOPJ IS THE GENERAL NULL SUBROUTINE
4121 002104 000000 CKHALT: HALT ;CKHALT IS THE HARD ERROR ROUTINE
4122 .IIF NDF CKADLX,CKADLX=CKPOPJ
4123 .IIF NDF CKAMEM,CKAMEM=CKPOPJ
4124 .IIF NDF CKAKW1,CKAKW1=CKPOPJ
4125 .IIF NDF CKAKG1,CKAKG1=CKPOPJ
4126 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 9
C11DTE.MAC 10-AUG-79 16:05 CHK11 DEVICE NAME TABLE
4128
4129 .SBTTL **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4130 ;
4131 002106 CHK.11: SPL 7 ;PROCESSOR LEVEL TO 7
4132 002114 010137 002044 MOV R1,CK.DTE ;SAVE THE
4133 002120 010446 MOV R4,-(SP) ; LOADER'S
4134 002122 010546 MOV R5,-(SP) ; REGISTERS
4135 002124 010037 002042 MOV R0,CK.CAL ;SAVE RETURN ADDRESS
4136 002130 012705 016616 MOV #CHKSTK,R5 ;GET OUR OWN STACK
4137 002134 010645 MOV SP,-(R5) ;CHAIN TO CALLER'S STACK
4138 002136 010506 MOV R5,SP ;SWITCH CONTROL
4139 002140 012737 000300 011502 MOV #FLOATV,CHKFLV ;FLOATING INT VEC BEGIN HERE
4140 002146 012737 160000 011504 MOV #FLOATD,CHKFLD ;FLOATING DEV ADR'S BEGIN HERE
4141 002154 005037 002034 CLR CHKFLG ;CLEAR CHK11 FLAGS
4142 002160 005037 016260 CLR CKSPCD ;CLEAR STOP CODE; NON 0 ON FATAL
4143 ; ERROR PUTS C(CKSPCD) IN R0.
4144 ;
4145 ;INITIALIZE VECTOR SPACE
4146 ;
4147 ; THIS ROUTINE LOADS THE VECTOR AREA WITH ADDRESSES POINTING
4148 ; INTO TABLE/CODE CHKINT - CHKINT IS USED TO FIELD MOST CHK11
4149 ; INTERRUPTS AND CAN TELL WHICH VECTOR WAS USED BY DECODING
4150 ; THE CONDITION CODE BITS AND THE ENTRY IN CHKINT WHICH WAS USED -
4151 ; THE REFERENCES TO "LIMIT" AND "ADD #CHKISZ,R1" IN THE CODE BELOW
4152 ; ARE WHAT DETERMINE THE CHKINT ENTRY LOCATION
4153 ;
4154 002164 013703 000014 CKINTS: MOV @#14,R3 ;SAVE ODT ADDRESS
4155 002170 005000 CLR R0 ;START LOADING AT ADR 0
4156 002172 012701 011340 MOV #CHKINT,R1 ;WHERE TO GO ON INTERRUPT
4157 002176 012702 000340 MOV #BR7,R2 ;INTERRUPT PS
4158 ;
4159 002202 010120 33$: MOV R1,(R0)+ ;SET INTERRUPT VECTOR
4160 002204 010220 MOV R2,(R0)+ ;SET INTERRUPT LEVEL
4161 002206 005202 INC R2 ;UP VECTOR COUNTER
4162 002210 032700 000077 BIT #77,R0 ;HAVE WE HIT A LIMIT ?
4163 002214 001004 BNE 35$ ;NO
4164 002216 062701 000012 ADD #CHKISZ,R1 ;YES, CHANGE VECT TO NEXT CHKINT BLOCK
4165 002222 012702 000340 MOV #BR7,R2 ;RESET PS
4166 002226 020037 001432 35$: CMP R0,VCTLIM ;FILL VECTORS UP TO VECTOR LIMIT
4167 002232 103763 BLO 33$ ;MORE TO DO
4168 ;
4169 002234 012737 015606 000034 MOV #CHKERR,TRPVEC ;WHERE TO GO ON TRAP INSTRUCTION
4170 002242 010337 000014 MOV R3,@#14 ;RESTORE ODT ADDRESS
4171 002246 FALLR CHKCTY ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 9-1
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4173 ;NOW CHECK THE CTY (CONSOLE TTY)
4174 ;
4175 002246 012737 002320 000004 CHKCTY: MOV #10$,NXMVEC ;WHERE TO TRAP IF NO CTY
4176 002254 042737 100000 002034 BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
4177 002262 012737 100000 014526 MOV #100000,CKTRPT ;ASSUME A CTY EXISTS AS THE REPORT DEV
4178 002270 005737 177564 TST CTOSTS ;IF ANY OF THESE FOUR TST'S TRAPS
4179 002274 005737 177566 TST CTOCHR ; THEN WE DEEM THERE IS NO CTY
4180 002300 005737 177560 TST CTISTS ;
4181 002304 005737 177562 TST CTICHR ;
4182 002310 012737 015542 000004 MOV #CKBUST,NXMVEC ;CTY EXISTS, RESET BUS ERROR VECTOR
4183 002316 000411 BR 14$ ;
4184 ;
4185 002320 022626 10$: CMP (SP)+,(SP)+ ;POP TRAP
4186 002322 012737 000200 014526 MOV #200,CKTRPT ;NO CTY EXISTS, ASSUME REMOTE REPORTING
4187 002330 012737 015542 000004 MOV #CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
4188 002336 000137 002660 JMP CHKCKD ;SKIP TO END OF CTY CHECK
4189 ;
4190 002342 14$: ; CHECK TO SEE IF CTY OUTPUT SHOULD BE
4191 ; SUPPRESSED OR DIVERTED OR BOTH
4192 002342 012702 100000 MOV #100000,R2 ;PLAN TO DIRECT OUTPUT TO CTY
4193 000000 .REPT 0 ;***OMITTED***;
4194 30$: JSR R0,CKTCRL ;ASK FOR DIRECTION
4195 .ASCIZ "IS THIS CTY THE DEFAULT REPORTING DEVICE? (Y OR N) "<377>
4196 .EVEN ;
4197 JSR PC,CKGYES ;WAIT FOR ANSWER
4198 BCS 30$ ;
4199 BEQ 40$ ;"YES"
4200 CLR R2 ;"NO", DON'T OUTPUT TO CTY
4201 40$: JSR R0,CKTCRL ;CHECK FOR REMOTE REPORTING
4202 .ASCIZ "IS OUTPUT TO BE DIRECTED TO A REMOTE RECORDER? (Y OR N) "<377>
4203 .EVEN ;
4204 JSR PC,CKGYES ;WAIT FOR ANSWER
4205 BCS 40$ ;
4206 BNE 50$ ;"NO", DON'T OUTPUT REMOTELY
4207 .ENDR ;***OMITTED PART***;
4208 002346 052702 000200 BIS #200,R2 ;REPORT OUTPUT REMOTELY
4209 002352 010237 014526 50$: MOV R2,CKTRPT ;SAVE REQUESTED MODE
4210 ;TEST CTY
4211 002356 012704 177564 MOV #CTOSTS,R4 ;CTY OUTPUT STATUS
4212 002362 010437 016262 MOV R4,CHKCHR+CKDA ;DEV ADR
4213 002366 010401 MOV R4,R1 ;CHKBIT NEEDS ADR IN R1
4214 002370 012737 000064 016264 MOV #CTOVEC,CHKCHR+CKDV;CTY OUTPUT VECTOR
4215 002376 012737 001455 002040 MOV #N.CO11,CKDNAM ;NAME ADDRESS
4216 002404 005037 002036 CLR CKDEVN ;DEVICE 0
4217 002410 004537 010400 JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS FOR R/W
4218 002414 000104 .WORD CO.INE!CO..MM ;BITS TO CHECK FOR R/W
4219 002416 012714 000100 MOV #CO.INE,(R4) ;ENABLE INTERRUPTS
4220 002422 004537 010626 JSR R5,CHKINL ;CHECK INTERRUPT AND FIND DEV LEVEL
4221 002426 177777 .WORD ALLBTS ;TIME LOOP CONSTANT
4222 002430 005014 CLR (R4) ;CLR DEV OUT
4223 ;
4224 002432 FALLR CHKCKB ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 9-2
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4226 ;NOW CHECK THE KBRD SECTION
4227 ;
4228 002432 042737 100000 002034 CHKCKB: BIC #CKFIDT,CHKFLG ;PRINT DEV ID
4229 002440 012704 177560 MOV #CTISTS,R4 ;KBRD STATUS REG
4230 002444 010437 016262 MOV R4,CHKCHR+CKDA ;DEV ADR
4231 002450 010401 MOV R4,R1 ;CHKBIT NEEDS ADR IN R1
4232 002452 012737 000060 016264 MOV #CTIVEC,CHKCHR+CKDV ;VECTOR ADR
4233 002460 012737 001446 002040 MOV #N.CI11,CKDNAM ;ADR OF DEV NAME
4234 002466 004537 010400 JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS
4235 002472 000100 .WORD CI.INE ;BITS TO CHECK R/W
4236 ;
4237 002474 012700 001350 15$: MOV #CKNAME,R0 ;GET ADDR OF .ASCIZ \PROG NAME\
4238 002500 004737 014530 JSR PC,CKTTXT ;TYPE PROGRAM NAME, ETC.
4239 002504 010002 MOV R0,R2 ;GET ADDR OF EDIT DATA (FOLLOWS PROG NAME)
4240 002506 004037 014570 JSR R0,CKTCRL ;
4241 002512 062566 071562 067551 .ASCIZ "version " ;
002520 020156 000
4242 002524 .EVEN ;
4243 002524 012200 MOV (R2)+,R0 ;GET MAJOR VERSION NUMBER
4244 002526 004737 014616 JSR PC,CKTOCT ;TYPE IT
4245 002532 012201 MOV (R2)+,R1 ;GET MINOR VERSION LETTER
4246 002534 001402 BEQ 20$ ;NOT THERE
4247 002536 004737 014670 JSR PC,CKTCHR ;TYPE IT
4248 002542 112701 000050 20$: MOVB #'(,R1 ;TYPE EDIT NUMBER IN ()
4249 002546 004737 014670 JSR PC,CKTCHR ;
4250 002552 012200 MOV (R2)+,R0 ;GET EDIT NUMBER
4251 002554 004737 014616 JSR PC,CKTOCT ;TYPE IT
4252 002560 112701 000051 MOVB #'),R1 ;
4253 002564 004737 014670 JSR PC,CKTCHR ;
4254 001 .IF DF ED.HIS ;DO NEXT ONLY IF LAST EDIT HISTORY REQ'D
4255 002570 004037 014574 JSR R0,CKTSTR ;
4256 002574 067440 020146 000 .ASCIZ " of " ;
4257 002602 .EVEN ;
4258 002602 012200 MOV (R2)+,R0 ;DATE STRING ADDRESS
4259 002604 004737 014530 JSR PC,CKTTXT ;
4260 002610 004037 014574 JSR R0,CKTSTR ;
4261 002614 061040 020171 000 .ASCIZ " by " ;
4262 002622 .EVEN ;
4263 002622 012200 MOV (R2)+,R0 ;
4264 002624 004737 014530 JSR PC,CKTTXT ;
4265 000 .ENDC ;DF ED.HIS ;
4266 002630 004037 014570 JSR R0,CKTCRL ;
4267 002634 062524 072163 067151 .ASCIZ "Testing begins..."<15><12>
002642 020147 062542 064547
002650 071556 027056 006456
002656 000012
4268 .EVEN ;
4269 ;
4270 002660 CHKCKD: FALLR CKCPU ;
4271 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 10
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4273
4274 ; DETERMINE PROCESSOR MODEL NUMBER
4275 ;
4276 002660 004037 014570 CKCPU: JSR R0,CKTCRL ;
4277 002664 044124 020105 051120 .ASCIZ "THE PROCESSOR SEEMS TO BE A "
002672 041517 051505 047523
002700 020122 042523 046505
002706 020123 047524 041040
002714 020105 020101 000
4278 002722 .EVEN ;
4279 ;
4280 002722 012700 003110 MOV #CKWRD,R0 ;GET ADDRESS OF TEST WORD
4281 ;;;; MOV R0,(R0)+ ;STORE AND AUTOINC ON SAME REGISTER
4282 002726 010020 .WORD 10020 ; (PRE-ASSEMBLE TO PREVENT Z ERROR)
4283 002730 012700 002752 MOV #5$,R0 ;GET BUMPER TABLE ADDRESS
4284 002734 023727 003110 003110 CMP CKWRD,#CKWRD ;BUMP BEFORE STORE?
4285 002742 001402 BEQ 3$ ;NO, CPU IS NEWER THAN THAT
4286 ;YES, CPU IS OF /20 /40 VINTAGE
4287 002744 062700 000004 ADD #9$-5$,R0 ;MODIFY ADDRESS INTO BUMPER TABLE
4288 ;
4289 002750 3$: ;;; JMP (R0)+ ;BUMP BEFORE JUMP?
4290 002750 000120 .WORD 120 ; (PRE-ASSEMBLE TO PREVENT Z ERROR)
4291 002752 000403 5$: BR 10$ ;NO, CPU IS LIKE /04 /34 /45
4292 002754 000562 BR CK05 ;YES, CPU IS /05 /10
4293 ;BUMP BEFORE JUMP?
4294 002756 000572 9$: BR CK40 ;NO, CPU IS /40
4295 002760 000563 BR CK20 ;YES, CPU IS /15 OR /20
4296 ;
4297 002762 10$: ;CPU IS /04 /34/ OR /40 OR HIGHER
4298 002762 013746 000004 MOV @#4,-(SP) ;SAVE BUS ERROR VECTOR
4299 002766 012737 003026 000004 MOV #20$,@#4 ;SET LOCAL ONE
4300 002774 012700 177770 MOV #177770,R0 ;TRY TO FIND NONEXISTENT MEMORY
4301 003000 005710 15$: TST (R0) ;IS THIS MEMORY HERE?
4302 003002 162700 000002 SUB #2,R0 ;YES, THERE WAS NO TRAP
4303 003006 001374 BNE 15$ ;LOOK AGAIN (UNLESS ALL MEMORY SEEN)
4304 ;THIS IS RIDICULOUS! THERE ARE NO HOLES
4305 ; IN MEMORY, OR THE BUS ERROR TRAPPER
4306 ; DOESN'T WORK
4307 003010 17$: CK11SC CKEPC,<NO NXM??>,<NO NONEXISTENT MEMORY TRAP>
4308 003012 047516 047040 046530 .ASCIZ "NO NXM??" ;
003020 037477 000
4309 003024 .EVEN ;
4310 003024 000410 BR 26$ ;
4311 ;
4312 003026 012737 003042 000004 20$: MOV #25$,@#4 ;SET UP NEXT BUS ERROR ADDRESS
4313 003034 010001 MOV R0,R1 ;COPY ADDRESS WHICH DIDN'T ANSWER
4314 003036 010220 MOV R2,(R0)+ ;REPEAT TRAP
4315 003040 000763 BR 17$ ;YOU CAN'T GET HERE UNLESS TRAP FAILS
4316 003042 062706 000010 25$: ADD #10,SP ;POP BOTH TRAPS
4317 003046 012637 000004 26$: MOV (SP)+,@#4 ;RESTORE SAVED BUS ERROR VECTOR
4318 003052 020001 CMP R0,R1 ;DID R0 POP DURING TRAP?
4319 003054 001517 BEQ CK04 ;NO, CPU IS /04
4320 003056 013746 000010 MOV @#10,-(SP) ;YES, SAVE RESERVED INSTRUCTION VECTOR
4321 003062 012737 003076 000010 MOV #30$,@#10 ;SET UP A NEW ONE
4322 003070 005000 CLR R0 ;R0 WILL STAY CLEAR IF CPU IS /45
4323 003072 106700 .WORD 106700 ;11/34 MFPS INSTR (OP NAME=A MACRO NAME)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 10-1
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4324 003074 005200 INC R0 ;DIDN'T TRAP, CPU IS /34 (OR /03)
4325 003076 012637 000010 30$: MOV (SP)+,@#10 ;RESTORE RES INSTR VECTOR
4326 003102 005700 TST R0 ;WAS THERE A TRAP?
4327 003104 001114 BNE CK34 ;NO, CPU IS 11/34
4328 003106 000521 BR CK45 ;YES, CPU IS 11/45
4329 ;
4330 003110 000000 CKWRD: .WORD 0 ;CPU ID TEST WORD
4331 003112 000000 CKCPUN: .WORD 0 ;CPU MODEL NUMBER (DECIMAL)
4332 .ENABL LSB ;
4333 003114 004 4$: .BYTE 4.
4334 003115 113 030504 026461 .ASCIZ "KD11-D (11/04)"
003122 020104 030450 027461
003130 032060 000051
4335 003134 005 5$: .BYTE 5.
4336 003135 113 030504 026461 .ASCIZ "KD11-B (11/05 OR 11/10)"
003142 020102 030450 027461
003150 032460 047440 020122
003156 030461 030457 024460
003164 000
4337 003165 024 20$: .BYTE 20.
4338 003166 040513 030461 024040 .ASCIZ "KA11 (11/20) OR KC11 (11/15)"
003174 030461 031057 024460
003202 047440 020122 041513
003210 030461 024040 030461
003216 030457 024465 000
4339 003223 042 34$: .BYTE 34.
4340 003224 042113 030461 042455 .ASCIZ "KD11-E (11/34)"
003232 024040 030461 031457
003240 024464 000
4341 003243 050 40$: .BYTE 40.
4342 003244 042113 030461 040455 .ASCIZ "KD11-A (11/35 OR 11/40)"
003252 024040 030461 031457
003260 020065 051117 030440
003266 027461 030064 000051
4343 003274 055 45$: .BYTE 45.
4344 003275 113 030502 026461 .ASCIZ "KB11-A (11/45)"
003302 020101 030450 027461
003310 032464 000051
4345 .EVEN ;
4346 ;
4347 003314 012700 003114 CK04: MOV #4$,R0 ;
4348 003320 000417 BR CKCPUE ;
4349 ;
4350 003322 012700 003134 CK05: MOV #5$,R0 ;
4351 003326 000414 BR CKCPUE ;
4352 ;
4353 003330 012700 003165 CK20: MOV #20$,R0 ;
4354 003334 000411 BR CKCPUE ;
4355 ;
4356 003336 012700 003223 CK34: MOV #34$,R0 ;
4357 003342 000406 BR CKCPUE ;
4358 ;
4359 003344 012700 003243 CK40: MOV #40$,R0 ;
4360 003350 000403 BR CKCPUE ;
4361 ;
4362 003352 012700 003274 CK45: MOV #45$,R0 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 10-2
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4363 003356 000400 BR CKCPUE ;
4364 .DSABL LSB ;
4365 ;
4366 003360 112037 003112 CKCPUE: MOVB (R0)+,CKCPUN ;SAVE PROCESSOR MODEL NUMBER AWAY FOR REFERENCE
4367 003364 004737 014530 JSR PC,CKTTXT ;TYPE OUT THE ID TEXT
4368 001 .IF NE 1
4369 003370 004037 014570 JSR R0,CKTCRL ;TYPE OUT EXPECTED MODEL NUMBER
4370 003374 041411 045510 030461 .ASCIZ " CHK11 EXPECTED AN 11/"
003402 042440 050130 041505
003410 042524 020104 047101
003416 030440 027461 000
4371 003424 .EVEN ;
4372 003424 012700 000042 MOV #PDP11,R0 ;ADD NUMBER
4373 003430 004737 014764 JSR PC,CKTDEC
4374 000 .ENDC ;NE 1
4375 ;
4376 003434 FALLR CKDLXB ;FALL INTO DL10 SEEKER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 10-3
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4378 ;DETERMINE THE DL10 BASE ADDRESS
4379 ;
4380 ;
4381 .IIF NDF FTDL10,FTDL10=0
4382 ;
4383 003434 CKDLXB:
4384 001 .IF NE FTDL10
4385 MOV #CHKFFB,R0 ;SET ADDRESS TO START LOOKING FOR A DL10
4386 CLR DL10AD ;SET FOR NO DL10
4387 MOV #10$,NXMVEC ;WHERE TO GO ON A NXM
4388 3$: MOV #DL.CNX!DL.CPE!DL.CWC!DL.11C,R1 ;BITS TO SET IN DL10
4389 MOV (R0),R2 ;SAVE CONTENTS AS IT MAY BE CORE
4390 BIS R1,(R0) ;CLEAR THESE CONDITIONS IF DL10
4391 ; OR IF MEMORY BITS WILL BE SET
4392 ASL R1 ;POSITION BITS FOR SETTING CONDITIONS
4393 CLR (R0) ;SEE IF SOMETHING THERE AND CLEAR IF IT IS THERE
4394 TST (R0) ;MAKE SURE ITS CLEAR SINCE ITS THERE
4395 BEQ 1$ ;BRANCH IF IT CLEARED
4396 CLR -(SP) ;RESULT SHOULD BE 0
4397 MOV (R0),-(SP) ;SAVE WHAT IT WAS
4398 MOV R0,-(SP) ;SAVE THE ADDRESS WHERE IT HAPPENED
4399 CK11SC <CKEPC!CKEGB>,<Can't Clear DL10 or MEM>,<CLR @R0 DIDN'T CLEAR @R0>,<S..D
4400 .ASCIZ \Can't Clear DL10 or MEM\<377>
4401 .EVEN
4402 BR 1$ ;
4403 1$: BIS R1,(R0) ;NOW SET DL10 BITS
4404 CMP R1,(R0) ;SEE IF THEY SET BE IT MEMORY OR DL10
4405 BEQ 2$ ;BRANCH IF THE SET OK
4406 CKSERR R1,<(R0)>,R0 ;SAVE GD,BD,ADR
4407 CK11SC <CKEPC!CKEGB>,<DL10 or Mem Err>,<EITHER DL10 IS BAD OR MEMORY IS BAD>,<S
4408 .ASCIZ \DL10 or Mem Err\<377>
4409 .EVEN
4410 BR 2$ ;
4411 2$: CLC ;CARRY MUST BE CLR
4412 ROR R1 ;SHIFT TO CLEAR BITS JUST SET
4413 BIS R1,(R0) ;SET BITS, IF DL10 ALL BITS SHOULD BE 0
4414 TST (R0) ;SEE IF ALL 0
4415 BEQ 4$ ;BRANCH IF SO
4416 6$: MOV R2,(R0) ;RESTORE MEMORY
4417 7$: ADD #4000,R0 ;GO TO NEXT POSSIBLE DL10 ADR
4418 CMP R0,#160000 ;TIME TO STOP CHECKING FOR DL10?
4419 BLO 3$ ;BRANCH IF NOT
4420 BR 5$ ;NEVER FOUND A DL10
4421 ;
4422 10$: ADD #4,P ;FLUSH NXM TRAP
4423 BR 7$ ;GO CHECK NEXT POSSIBLE ADR
4424 ;
4425 4$: ;DL10 FOUND
4426 MOV R0,DL10AD ;PUT DL10 BASE ADDR WE FOUND AWAY
4427 JSR PC,CKADLX ;PRINT DL10 BASE ADDR
4428 000 .ENDC ;NE FTDL10
4429 003434 5$: FALLR CHKMAP ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 10-4
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4431 ; CHECK TO SEE IF SYSTEM IS MAPPED
4432 ;
4433 003434 CHKMAP:
4434 .IIF NDF MMGSR0,MMGSR0 = 177572
4435 ;
4436 003434 012737 003450 000004 MOV #48$,NXMVEC ;SET UP BUS ERROR VECTOR
4437 003442 013700 177572 MOV MMGSR0,R0 ;READ MEM MGT STATUS
4438 ;
4439 001 .IF NDF M$$MGE
4440 CK11SC <CKEMSG>,<WRONG VERSION>
4441 .ASCIZ "A NON-MAPPING CHK11 IS LOADED ON A MAPPED SYSTEM"<15><12><377>
4442 .EVEN ;
4443 BR 63$ ;
4444 ;
4445 48$: CMP (SP)+,(SP)+ ;POP TRAP, IGNORE IT (IT WAS HOPED FOR)
4446 FALLR 63$ ;DROP RIGHT OUT
4447 .IFF
4448 003446 000433 BR 63$ ;NO TRAP, THAT'S WHAT WAS EXPECTED
4449 ;TRAP, REPORT
4450 003450 48$: CK11SC <CKEMSG>,<WRONG VERSION>
4451 003452 020101 040515 050120 .ASCIZ "A MAPPING CHK11 IS LOADED ON UNMAPPED HARDWARE"<15><12><377>
003460 047111 020107 044103
003466 030513 020061 051511
003474 046040 040517 042504
003502 020104 047117 052440
003510 046516 050101 042520
003516 020104 040510 042122
003524 040527 042522 005015
003532 000377
4452 003534 ABORT ;
4453 .EVEN ;
4454 000 .ENDC ;NDF M$$MGE
4455 003536 63$: FALLR CHKMMG ;CHECK MEMORY MGT
4456 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 11
C11DTE.MAC 10-AUG-79 16:05 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
4458
4459 .SBTTL CHECK KT11 HARDWARE
4460 ;
4461 ;VERIFY MEMORY MANAGEMENT HARDWARE - *** CODED FOR 11/34 SUBSET ***
4462 ;
4463 003536 CHKMMG: ;
4464 001 .IF DF M$$MGE
4465 003536 004037 014570 JSR R0,CKTCRL ;
4466 003542 045412 030524 020061 .ASCIZ <12>"KT11 memory management test"
003550 062555 067555 074562
003556 066440 067141 063541
003564 066545 067145 020164
003572 062564 072163 000
4467 003600 .EVEN ;
4468 003600 012704 000250 MOV #MMGVEC,R4 ;SAVE ADDRESS OF MEM MGT VECTOR
4469 003604 011446 MOV (R4),-(SP) ;SAVE CURRENT MEM MGT VECTOR
4470 003606 012714 003764 MOV #25$,(R4) ;SET MEM MGT VECTOR TO "BAD TRAP"
4471 003612 012700 077406 MOV #PD.PLF!<6*PD.AC0>,R0 ;SET UP CONSTANT FOR FULL PAGE, R/W ACCESS
4472 003616 032737 000001 177572 BIT #MG.ENB,MMGSR0 ;MEM MGT ALREADY ENABLED?
4473 003624 001020 BNE 10$ ;YES, DON'T MESS
4474 003626 005037 172340 CLR KISAR0 ;NO, SET UP REASONABLY, AS APR0 TO PAGE ZERO
4475 003632 010037 172300 MOV R0,KISDR0 ;FULL PAGE ACCESS, R/W, EXPAND UP
4476 003636 012737 000200 172342 MOV #PAGE1B,KISAR1 ;MAP THIS PROGRAM TO SELF
4477 003644 010037 172302 MOV R0,KISDR1 ;INCLUDE SAME TOTAL ACCESS
4478 003650 012737 007600 172356 MOV #PAGE7B,KISAR7 ;SPECIAL MAP TO I/O PAGE
4479 003656 010037 172316 MOV R0,KISDR7 ;
4480 003662 005237 177572 INC MMGSR0 ;TURN ON MEMORY MANAGEMENT
4481 ;
4482 003666 10$: ;RELOCATION CONSISTENCY CHECK
4483 ;
4484 003666 013737 172340 172354 MOV KISAR0,KISAR6 ;MAP APR6 TO SAME MEMORY AS APR0
4485 003674 013737 172300 172314 MOV KISDR0,KISDR6 ; AND COPY PDR OVER TOO
4486 003702 012701 000302 MOV #PAGE0+302,R1 ;GET POINTERS INTO PAGES 0 AND 6
4487 003706 012702 140302 MOV #PAGE6+302,R2 ; THE OFFSET INTO THE PAGE IS MOSTLY ARBITRARY
4488 ;
4489 003712 011146 MOV (R1),-(SP) ;SAVE THE CURRENT CONTENTS OF THE DIDDLE LOC
4490 003714 010712 16$: MOV PC,(R2) ;ENSURE TEST LOCATION HAS NON-ZERO CONTENTS
4491 003716 005011 CLR (R1) ;CLEAR THE TEST LOCATION THROUGH THE OTHER PTR
4492 003720 005712 TST (R2) ;DID IT REALLY CLEAR?
4493 003722 001015 BNE 20$ ;NO, WHAT A SHAME
4494 003724 010711 MOV PC,(R1) ;YES, ENSURE IT'S NOT ZERO AGAIN
4495 003726 021112 CMP (R1),(R2) ;STILL MATCH?
4496 003730 001012 BNE 20$ ;NO, THAT'S FUNNY, IT WORKED BEFORE
4497 ;
4498 003732 023737 172340 172354 CMP KISAR0,KISAR6 ;DONE OFFSET TEST YET?
4499 003740 001015 BNE 30$ ;YES
4500 003742 062737 000002 172354 ADD #2,KISAR6 ;NO, CHANGE APR6 UP
4501 003750 162702 000200 SUB #2*BSFACT,R2 ; AND PAGE POINTER DOWN ACCORDINGLY
4502 003754 000757 BR 16$ ;REPEAT TEST FOR DIFFERENT RELOCATION ADDRESSES
4503 ;
4504 003756 20$: CK11SC CKEMSE,101$ ;
4505 003762 000404 BR 30$ ;
4506 003764 25$: CK11SC CKEMSE,104$ ;
4507 003770 000400 BR 26$ ;
4508 003772 000002 26$: RTI ;
4509 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 11-1
C11DTE.MAC 10-AUG-79 16:05 CHECK KT11 HARDWARE
4510 003774 012611 30$: MOV (SP)+,(R1) ;RESTORE ORIGINAL TEST WORD CONTENTS
4511 ;
4512 ;PAGE LENGTH PROTECTION TEST
4513 ;
4514 003776 013737 172340 172354 MOV KISAR0,KISAR6 ;USE VECTOR SPACE AGAIN FOR TEST
4515 004004 012737 000406 172314 MOV #PD.PL0!<6*PD.AC0>,KISDR6 ;SET 2 BLOCK PAGE, R/W, UP
4516 004012 012701 000176 MOV #PAGE0+<2*BSFACT>-2,R1 ;SET PTRS NEAR PAGE BOUNDARY
4517 004016 012702 140176 MOV #PAGE6+<2*BSFACT>-2,R2 ;
4518 004022 012146 MOV (R1)+,-(SP) ;FETCH FROM BELOW BOUNDARY
4519 004024 012622 MOV (SP)+,(R2)+ ;WRITE IT BACK, DIFFERENT PTR, SHOULDN'T TRAP
4520 004026 012146 MOV (R1)+,-(SP) ;FETCH FROM ABOVE BOUNDARY, PAGE 0, NO TRAP
4521 004030 012714 004044 MOV #45$,(R4) ;SET UP TO EXPECT TRAP
4522 004034 012622 MOV (SP)+,(R2)+ ;WRITE BACK TO TEST LOCATION, EXPECT TRAP
4523 ;NO TRAP, THAT'S BAD
4524 004036 40$: CK11SC CKEMSE,107$ ;
4525 004042 024646 CMP -(SP),-(SP) ;FAKE TRAP
4526 ;
4527 004044 022626 45$: CMP (SP)+,(SP)+ ;GOOD TRAP, POP IT
4528 004046 012714 003764 MOV #25$,(R4) ;RESET TO BAD TRAP MSG
4529 004052 032737 120000 177572 BIT #MG.ANR!MG.ARO,MMGSR0 ;TRAP FOR RIGHT REASON?
4530 004060 001403 BEQ 47$ ;YES, KEEP ON KEEPIN' ON
4531 004062 CK11SC CKEMSE,107$ ;NO, GOOD GRIEF!
4532 004066 000400 BR 47$ ;
4533 004070 47$: ;
4534 ;**** CONSIDER ADDING HERE THE SAME TYPE OF
4535 ; TEST FOR A DOWNWARD EXPANDABLE PAGE ****
4536 ;
4537 ;ACCESS CONTROL MODE TEST
4538 ;
4539 004070 013737 172340 172354 MOV KISAR0,KISAR6 ;USE THE VECTOR AREA AGAIN
4540 004076 012737 077406 172314 MOV #PD.PLF+<6*PD.AC0>,KISDR6 ;RESET TO FULL PAGE, FULL ACCESS
4541 004104 012702 140052 MOV #PAGE6+52,R2 ;RESET POINTER TO ARBITRARY LOCATION IN PAGE
4542 004110 012714 004140 MOV #50$,(R4) ;SET UP THE EXPECTED BAD TRAP HANDLER
4543 004114 011246 MOV (R2),-(SP) ;READ (DON'T TRAP)
4544 004116 012612 MOV (SP)+,(R2) ;PUT IT BACK (DON'T TRAP)
4545 004120 112737 000002 172314 MOVB #PD.AC0*2,KISDR6 ;SET PDR FOR READ ONLY ACCESS
4546 004126 011246 MOV (R2),-(SP) ;READ AGAIN (DON'T TRAP)
4547 004130 012714 004154 MOV #60$,(R4) ;RESET TRAP VECTOR AGAIN
4548 004134 012612 MOV (SP)+,(R2) ;WRITE IT BACK AGAIN, AND FINALLY TRAP!
4549 004136 024646 CMP -(SP),-(SP) ;DIDN'T TRAP, HAVE TO FAKE IT
4550 ;
4551 004140 50$: CK11SC CKEMSE,110$ ;BAD TRAP, OR NON-TRAP, DEPENDING
4552 004144 000404 BR 62$ ;
4553 ;
4554 004146 062716 000002 55$: ADD #2,(SP) ;GOOD TRAP, SKIP ERROR BRANCH
4555 004152 000002 RTI ; ON RETURN
4556 ;
4557 004154 022626 60$: CMP (SP)+,(SP)+ ;GOOD TRAP, POP IT
4558 004156 012714 004224 62$: MOV #67$,(R4) ;CHANGE TRAP VECTOR STILL AGAIN
4559 004162 012737 077404 172314 MOV #PD.PLF+<PD.AC0*4>,KISDR6 ;SET PDR FOR ILLEGAL ACCESS
4560 004170 011201 65$: MOV (R2),R1 ;TRY TO READ, EXPECT A TRAP
4561 004172 CK11SC <CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
4562 004176 010112 MOV R1,(R2) ;TRY A WRITE, EXPECT A TRAP
4563 004200 CK11SC <CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
4564 004204 032737 000007 172314 BIT #PD.ACF,KISDR6 ;DONE ALL ACF MODES YET?
4565 004212 001511 BEQ 70$ ;YES, GO ON
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 11-2
C11DTE.MAC 10-AUG-79 16:05 CHECK KT11 HARDWARE
4566 004214 042737 000007 172314 BIC #PD.ACF,KISDR6 ;NO, CLEAR ACF FOR LAST ILLEGAL MODE
4567 004222 000762 BR 65$ ;REPEAT TEST
4568 ;
4569 004224 062716 000004 67$: ADD #4,(SP) ;GOOD TRAP, POP IT
4570 004230 000002 RTI ;
4571 ;
4572 004232 064411 061556 067157 101$: .ASCIZ " inconsistent relocation"<377>
004240 064563 072163 067145
004246 020164 062562 067554
004254 060543 064564 067157
004262 000377
4573 004264 072411 062556 070170 104$: .ASCIZ " unexpected mem mgt trap"<377>
004272 061545 062564 020144
004300 062555 020155 063555
004306 020164 071164 070141
004314 000377
4574 004316 066411 066545 066440 107$: .ASCIZ " mem mgt page length protection failure"<377>
004324 072147 070040 063541
004332 020145 062554 063556
004340 064164 070040 067562
004346 062564 072143 067551
004354 020156 060546 066151
004362 071165 177545 000
4575 004367 011 062555 020155 110$: .ASCIZ " mem mgt access mode control failure"<377>
004374 063555 020164 061541
004402 062543 071563 066440
004410 062157 020145 067543
004416 072156 067562 020154
004424 060546 066151 071165
004432 177545 000
4576 004436 .EVEN ;
4577 ;
4578 004436 012614 70$: MOV (SP)+,(R4) ;RESTORE PREVIOUS MEMORY MANAGEMENT TRAP VECTOR
4579 .IFF
4580 JSR R0,CKTCRL ;
4581 .ASCIZ "NO MEM MGT TEST"
4582 .EVEN ;
4583 000 .ENDC ;DF M$$MGE
4584 004440 FALLR CHKCOR ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 11-3
C11DTE.MAC 10-AUG-79 16:05 CHECK KT11 HARDWARE
4586 ; SEE HOW MUCH CORE IS PRESENT
4587 ;
4588 004440 CHKCOR: ;
4589 001 .IF NDF M$$MGE
4590 ;UNMAPPED SNIFFER
4591 CLR R0 ;START SMALL
4592 MOV #20$,NXMVEC ;SET BUS TRAP VECTOR
4593 10$: TST (R0)+ ;CHECK NEXT LOCATION
4594 CMP R0,DL10AD ;SEE IF NEXT WORD IS DL10
4595 BNE 10$ ;
4596 BR 21$ ;
4597 ;
4598 20$: CMP (SP)+,(SP)+ ;FLUSH STACK
4599 SUB #2,R0 ;MAKE 2 LESS SO WE HAVE 1ST NXM LOC
4600 21$: MOV R0,PHYLIM ;SAVE ADR OF 1ST NXM LOCATION
4601 JSR PC,CKAMEM ;PRINT LAST MEM LOCATION
4602 .IFF
4603 ;MAPPED SNIFFER
4604 004440 004037 014570 JSR R0,CKTCRL ;ADVERTISE RANGES OF MEMORY
4605 004444 050012 054510 044523 .ASCIZ <12>"PHYSICAL MEMORY HAS ABSOLUTE LIMITS OF "
004452 040503 020114 042515
004460 047515 054522 044040
004466 051501 040440 051502
004474 046117 052125 020105
004502 044514 044515 051524
004510 047440 020106 000
4606 004516 .EVEN ;
4607 004516 005037 172354 CLR KISAR6 ;START AT ZERO MEMORY
4608 004522 012737 077406 172314 MOV #PD.PLF!<6*PD.AC0>,KISDR6 ;FULL PAGE, R/W ACCESS
4609 004530 005000 CLR R0 ;START OF CURRENT BLOCK ADDRESS
4610 004532 005001 CLR R1 ;ACCUMULATED PAGE COUNT
4611 004534 005003 CLR R3 ;CURRENT BLOCK PAGE COUNT
4612 004536 012737 004556 000004 MOV #35$,NXMVEC ;SET UP BUS ERROR VECTOR
4613 ;
4614 004544 012702 000100 30$: MOV #BSFACT,R2 ;SET BYTE COUNT OF PAGE
4615 004550 105762 137777 31$: TSTB PAGE6-1(R2) ;READ A BYTE FROM THE ADDRESSED PAGE
4616 004554 000412 BR 43$ ;NO TRAP
4617 ;
4618 004556 022626 35$: CMP (SP)+,(SP)+ ;TRAP, POP IT
4619 004560 005703 TST R3 ;ANY PAGES FOUND?
4620 004562 001402 BEQ 39$ ;NO, SKIP REPORT
4621 004564 004737 004744 JSR PC,65$ ;YES, REPORT RANGE
4622 004570 005237 172354 39$: INC KISAR6 ;COMPUTE NEXT BIAS VALUE
4623 004574 013700 172354 MOV KISAR6,R0 ;SAVE IT AS START ADDRESS OF NEXT RANGE
4624 004600 000404 BR 52$ ;RETURN TO TEST LOOP
4625 ;
4626 004602 077216 43$: SOB R2,31$ ;LOOP OVER ALL BYTES ON CURRENT PAGE
4627 004604 005203 INC R3 ;NO TRAP, UP BLOCK COUNT
4628 004606 005237 172354 INC KISAR6 ;UP PAGE BIAS
4629 ;
4630 004612 023727 172354 007600 52$: CMP KISAR6,#PAGE7B ;DONE ALL POSSIBLE MEMORY SPACE?
4631 004620 103751 BLO 30$ ;NOT YET
4632 ;YES
4633 004622 005703 TST R3 ;ANY BLOCKS FOUND AT END OF MEMORY?
4634 004624 001402 BEQ 54$ ;NO
4635 004626 004737 004744 JSR PC,65$ ;YES, REPORT LAST BLOCK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 11-4
C11DTE.MAC 10-AUG-79 16:05 CHECK KT11 HARDWARE
4636 004632 010137 002046 54$: MOV R1,PHYLIM ;SAVE NUMBER OF BLOCKS OF MEMORY
4637 004636 004037 014570 JSR R0,CKTCRL ;SUMMARIZE MEMORY SIZE DATA
4638 004642 043011 051117 040440 .ASCIZ " FOR A TOTAL OF "
004650 052040 052117 046101
004656 047440 020106 000
4639 004664 .EVEN ;
4640 004664 010100 MOV R1,R0 ;
4641 004666 006200 ASR R0 ;DIVIDE NUMBER OF 32 WORD BLOCKS
4642 004670 006200 ASR R0 ; BY 32 TO GET NUMBER OF KW
4643 004672 006200 ASR R0 ;
4644 004674 006200 ASR R0 ;
4645 004676 006200 ASR R0 ;
4646 004700 004737 014764 JSR PC,CKTDEC ;OUTPUT MEMORY SIZE IN KW DECIMAL
4647 004704 032701 000037 BIT #37,R1 ;REMAINDER OVER EXACT KW AMOUNT?
4648 004710 001402 BEQ 62$ ;NO
4649 004712 CK11SC <CKENCL>,<+>,<REMAINDER OVER EVEN K AMOUNT>
4650 004714 000053 .ASCIZ "+" ;
4651 .EVEN ;
4652 004716 004037 014574 62$: JSR R0,CKTSTR ;
4653 004722 053513 024040 042504 .ASCIZ "KW (DECIMAL)"<15><12>
004730 044503 040515 024514
004736 005015 000
4654 004742 .EVEN ;
4655 004742 000432 BR 70$ ;
4656 ;
4657 004744 65$: CK11SC 0,<CRLFTAB> ;FEED LINE, SPACE OVER
4658 004746 000011 .ASCIZ " " ;
4659 .EVEN ;
4660 004750 060301 ADD R3,R1 ;ACCUMULATE TOTAL BLOCKS TO DATE
4661 004752 005003 CLR R3 ;CLEAR FOR NEXT TIME
4662 004754 004737 014616 JSR PC,CKTOCT ;TYPE R0 FOR START BIAS
4663 004760 005700 TST R0 ;SKIP LEADING ZEROS IF ZERO
4664 004762 001404 BEQ 66$ ;
4665 004764 004037 014574 JSR R0,CKTSTR ;ADD ZEROS FOR FULL ADDRESS
4666 004770 030060 000 .ASCIZ "00" ;
4667 004774 .EVEN ;
4668 004774 004037 014574 66$: JSR R0,CKTSTR ;
4669 005000 026440 000040 .ASCIZ " - " ;
4670 .EVEN ;
4671 005004 013700 172354 MOV KISAR6,R0 ;GET END OF BLOCK ADDRESS BIAS
4672 005010 005300 DEC R0 ;BACK TO LAST GOOD BIAS
4673 005012 004737 014616 JSR PC,CKTOCT ;
4674 005016 004037 014574 JSR R0,CKTSTR ;
4675 005022 033467 000 .ASCIZ "77" ;
4676 005026 .EVEN ;
4677 005026 000207 RTS PC ;
4678 ;
4679 005030 70$: ;
4680 000 .ENDC ;NDF M$$MGE
4681 005030 FALLR CKCOR ;
4682 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12
C11DTE.MAC 10-AUG-79 16:05 CHECK KT11 HARDWARE
4684
4685 .SBTTL CHECK MEMORY - SLIDING BIT PATTERN
4686 ;
4687 ; PERFORM A SIMPLE READ/WRITE MEMORY TEST -
4688 ;THE PATTERN USED IS A SLIDING BIT, WITH THE
4689 ;BIT IN EACH OF THE 16 BIT POSITIONS AND THE
4690 ;LAST PATTERN BEING ALL 0'S.
4691 ;
4692 005030 CKCOR:
4693 001 .IF NDF M$$MGE
4694 CLR R0 ;FIRST ADR TO CHECK
4695 MOV #10$,R1 ;LIMIT TO CHECK
4696 ;CHECK IN TWO PIECES, SKIPPING
4697 ; THE AREA OF THE SUBROUTINE,
4698 ; SO AS NOT TO CLOBBER OURSELVES
4699 JSR PC,10$ ;CHECK LOW CORE
4700 MOV #CKMPAR,R0 ;BEGIN CHECKING HERE NOW
4701 MOV PHYLIM,R1 ;AND STOP HERE
4702 JSR PC,10$ ;
4703 JSR R0,CKTCRL ;PRINT AMOUNT OF CORE
4704 .ASCIZ \ \ ;
4705 .EVEN ;
4706 MOV PHYLIM,R0 ;GET AMOUNT
4707 JSR PC,CKTOCT ;PRINT IT
4708 JSR R0,CKTSTR ;FOLLOWED BY MSG:
4709 .ASCIZ \ BYTES OF UNMAPPED MEMORY\
4710 .EVEN ;
4711 BR CKMPAR ;ALL OK, SKIP TO PARITY CHECKER
4712 .IFF
4713 005030 004037 014570 JSR R0,CKTCRL ;
4714 005034 040515 050120 042105 .ASCIZ "MAPPED PHYSICAL MEMORY TEST..."
005042 050040 054510 044523
005050 040503 020114 042515
005056 047515 054522 052040
005064 051505 027124 027056
005072 000
4715 005074 .EVEN ;
4716 005074 005037 172354 CLR KISAR6 ;START AT LOWEST POSSIBLE ADDRESS
4717 ;;;; MOV #PD.PLF!<6*PD.AC0>,KISDR6 ;FULL PAGE, R/W ACCESS (SET ALREADY)
4718 005100 012737 005176 000004 MOV #80$,NXMVEC ;SET UP BUS ERROR VECTOR
4719 002000 CKCPSZ = 1024. ;SET UP SIZE OF PAGE TO CHECK
4720 005106 005001 CLR R1 ;
4721 005110 010100 8$: MOV R1,R0 ;SET UP POINTER, CONSIDERING NON-ZERO START
4722 005112 005400 NEG R0 ;CHANGE NEGATIVE WORD COUNT
4723 005114 006300 ASL R0 ; TO POSITIVE BYTE ADDRESS OFFSET
4724 005116 062700 140000 ADD #PAGE6,R0 ;MAP THROUGH APR6
4725 005122 062701 002000 ADD #CKCPSZ,R1 ;SET UP COUNT TO TEST
4726 005126 004737 005260 JSR PC,10$ ;CALL CHECKER FOR DEFINED PAGE
4727 005132 062737 000020 172354 ADD #CKCPSZ/BSFACT.,KISAR6 ;UP MAPPING REG TO NEXT PAGE
4728 005140 023737 172354 002046 CMP KISAR6,PHYLIM ;PAST ALL OF PHYSICAL MEMORY?
4729 005146 101760 BLOS 8$ ;NOT YET
4730 005150 004037 014570 JSR R0,CKTCRL ;ADVERTISE COMPLETION
4731 005154 004411 027056 041456 .ASCIZ " ...COMPLETE"<15><12>
005162 046517 046120 052105
005170 006505 000012
4732 .EVEN ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12-1
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4733 005174 000512 BR CKMPAR ;
4734 ;
4735 005176 80$: ;THIS TRAP HANDLER IS NEEDED ONLY IF THERE
4736 ; CAN BE HOLES IN THE PHYSICAL MEMORY
4737 005176 021627 005266 CMP (SP),#15$ ;EXPECTED TRAP FROM CHECKER?
4738 005202 001422 BEQ 82$ ;OKAY
4739 005204 CK11SC <CKEPC!CKEMSG>,<BAD NXM TRAP IN MEM CHK>
4740 005206 040502 020104 054116 .ASCIZ "BAD NXM TRAP IN MEMORY CHECKER"<377>
005214 020115 051124 050101
005222 044440 020116 042515
005230 047515 054522 041440
005236 042510 045503 051105
005244 000377
4741 .EVEN ;
4742 005246 000400 BR 82$ ;
4743 005250 012716 005416 82$: MOV #40$,(SP) ;SET RECOVERY ADDRESS
4744 005254 000002 RTI ;RECOVER
4745 000 .ENDC ;NDF M$$MGE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12-2
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4747 ; MEMORY CHECKER SUBROUTINE, CALLED FROM ABOVE, AND SKIPPED AROUND INLINE
4748 ;
4749 005256 000000 1$: .WORD 0 ;LOCAL LOWER LIMIT WORD
4750 005260 012702 000001 10$: MOV #1,R2 ;SET UP TEST PATTERN
4751 005264 011003 MOV (R0),R3 ;SAVE CONTENTS OF OBJECT LOCATION
4752 005266 15$: ;LEGAL TRAP OCCURS HERE
4753 005266 012737 177777 005256 MOV #-1,1$ ;SET LIMIT WORD NON-ZERO
4754 005274 005010 CLR (R0) ;CLEAR OBJECT WORD
4755 005276 005737 005256 TST 1$ ;REACHED LOWER LIMIT?
4756 005302 001006 BNE 20$ ;NO, CONTINUE WITH TEST
4757 ;YES, SET VALUES TO SKIP TESTING THIS CODE AREA
4758 005304 062700 000142 ADD #60$-1$,R0 ;POINT PAST THIS CODE
4759 005310 162701 000061 SUB #<60$-1$>/2,R1 ;ADJUST COUNT FOR SKIPPING TEST
4760 005314 003361 BGT 10$ ;NO PAGE BREAK RESULTED, RESUME TEST
4761 005316 000207 RTS PC ;CODE COVERS PAGE BREAK, RETURN R1 LE ZERO
4762 ;
4763 005320 20$: ;
4764 005320 010210 22$: MOV R2,(R0) ;STUFF CURRENT PATTERN
4765 005322 005110 COM (R0) ;INVERT IT
4766 005324 005110 COM (R0) ;AND BRING IT BACK
4767 005326 021002 CMP (R0),R2 ;DID IT SURVIVE?
4768 005330 001411 BEQ 30$ ;YES
4769 005332 CKSERR R2,<(R0)>,R0 ;SAVE GD,BD,ADR
4770 005340 CK11SC <CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
4771 005352 000400 BR 30$ ;
4772 005354 006302 30$: ASL R2 ;ADVANCE PATTERN
4773 005356 001360 BNE 22$ ;REPEAT UNTIL R2 IS ZERO
4774 005360 103757 BCS 22$ ; AND EVEN THEN, DO IT ONCE MORE
4775 005362 010310 MOV R3,(R0) ;RESTORE RIGHTFUL DATA
4776 005364 005110 COM (R0) ;BLAP IT, TOO
4777 005366 005110 COM (R0) ; BACK AND FORTH
4778 005370 022003 CMP (R0)+,R3 ;CHECK FOR SURVIVAL AND ADVANCE POINTER
4779 005372 001411 BEQ 40$ ;OKAY
4780 005374 CKSERR R3,<-(R0)>,R0 ;SAVE GD,BD,ADR
4781 005402 CK11SC <CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
4782 005414 000400 BR 40$ ;
4783 005416 077160 40$: SOB R1,10$ ;DO OVER THE WHOLE DEFINED LIMIT OF THE PAGE
4784 005420 000207 60$: RTS PC ;THEN RETURN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12-3
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4786 ; CHECK THE MEMORY PARITY OPTION
4787 ;
4788 005422 CKMPAR: ;START CHECKING CORE HERE
4789 001 .IF EQ <PDP11-40.>
4790 MOV #N.MM11,CKDNAM ;SAVE NAME OF "DEVICE"
4791 CLR CKDEVN ;"UNIT" IS 0
4792 MOV #MP.REG,R1 ;OPTION REGISTER
4793 MOV R1,CHKCHR+CKDA ;SAVE ADR IN CASE NEED TO TYPE IT
4794 MOV NXMVEC,-(SP)
4795 MOV #MP.VEC,CHKCHR+CKDV ;VECTOR FOR INTERRUPTS
4796 MOV #60$,NXMVEC ;IN CASE PARITY OPTION NOT INSTALLED
4797 CLR MP.REG ;TRY TO CLEAR MEMORY PARITY REGISTER
4798 MOV @P,NXMVEC ;RESTORE TRAP VECTOR
4799 JSR R5,CHKBIT ;CHECK READ/WRITE BITS
4800 107745
4801 ;NOW CHECK INTERRUPTS FROM PARITY CONTROL
4802 ; THIS IS DIFFICULT CUZ SETTING MP.ENB & MP.ERR WON'T CAUSE INTERRUPT
4803 CLR R0 ;VECTOR WE TOOK WILL APPEAR HERE
4804 MOV #MP.WWP,@R1 ;WE WANT TO WRITE WRONG PARITY
4805 MOV CKMPAR,CKMPAR ;WRITE A BAD WORD
4806 ;
4807 CLR @R1 ;BUT ONLY ONE WORD !
4808 TST CKMPAR ;TRY FOR AN INTERRUPT
4809 NOP ;IN CASE SLOW
4810 TST R0 ;SEE IF WE GOT ONE
4811 BEQ 32$
4812 CK11SC <CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPTED WHEN NOT ENABLED>
4813 32$: MOV #MP.ENB,@R1 ;NOW LETS GET THE INTERRUPT
4814 TST CKMPAR
4815 CLR @R1 ;DISABLE FURTHER INTERRUPTS
4816 MOV CKMPAR,CKMPAR ;WRITE BACK RIGHT
4817 TST R0 ;DID WE GET THE INTERRUPT ?
4818 BNE 34$
4819 CK11SC <CKEDID!CKEMSE!CKEPC>,CKMG04,<INTERRUPT DID NOT OCCUR>
4820 BR 80$
4821 ;
4822 34$: CMP R0,CHKCHR+CKDV ;WAS INTERRUPT RIGHT?
4823 BEQ 36$ ;YES.
4824 CKSERR <CHKCHR+CKDV>,R0,<#CKMPAR> ;GD,BD,ADR
4825 CK11SC <CKEMSE!CKEDID!CKEPC!CKEGB>,CKMG05,<interrupted to wrong vector>
4826 BR 80$ ;DONE.
4827 ;
4828 .PAGE
4829 ; COME HERE IF PARITY OPTION IS PRESENT AND WORKING
4830 ;
4831 36$: JSR R0,CKTCRL ;PRINT MESSAGE ABOUT IT
4832 .ASCIZ \ MF11-UP\
4833 .EVEN
4834 MOV #MP.ENB,MP.REG ;ENABLE PARITY ERRORS
4835 BR 80$ ;ALL DONE.
4836 ;
4837 ;HERE IF WE GET A BUS TRAP WHILE ACCESSING THE PARITY CONTROL REG
4838 60$: MOV (SP)+,(SP)+ ;CLEAN OFF STACK
4839 CK11SC <CKEDID!CKEPC!CKEMSE>,CKMG06,<not found>
4840 ;
4841 002 .IF DF MP.ARM
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12-4
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4842 MOV #402,MP.ARM ;MP.ARM CONTAINS A MOV #MP.ENB,MP.REG;
4843 ; THIS TURNS IT INTO A BR .+6
4844 001 .ENDC
4845 80$: MOV (SP)+,NXMVEC
4846 ;
4847 000 .ENDC;.IF EQ <PDP11-40.>
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 12-5
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4849 ; SEE IF ROM = BM873 OR M9301 IS PRESENT
4850 ;
4851 001 .IF DF FT.ROM
4852 002 .IF NE FT.ROM
4853 CK.ROM: MOV NXMVEC,-(SP) ;SAVE BUS TRAP VECTOR
4854 MOV #20$,NXMVEC
4855 TST ROMADR ;IS ROM REALLY HERE ?
4856 BR 90$ ;YES
4857 ;
4858 ;HERE BECAUSE ROM NOT PRESENT
4859 20$: CLR GO.ROM ;MAKE JMP ROMADR = HALT
4860 MOV (SP)+,(SP)+ ;CLEAN OFF STACK
4861 ;
4862 90$: MOV (SP)+,NXMVEC
4863 001 .ENDC;NE FT.ROM
4864 000 .ENDC;DF FT.ROM
4865 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 13
C11DTE.MAC 10-AUG-79 16:05 CHECK MEMORY - SLIDING BIT PATTERN
4867
4868 .SBTTL CHECK KW11-L HDW
4869 ;
4870 ; BE SURE CLOCK IS PRESENT AND TICKS
4871 ;
4872 005422 012737 001641 002040 CHKCLK: MOV #N.KW.L,CKDNAM ;SET UP FOR NAME
4873 005430 042737 100000 002034 BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
4874 005436 012704 177546 MOV #CLKWRD,R4 ;SET UP DEV ADR
4875 005442 010437 016262 MOV R4,CHKCHR+CKDA ;SET UP DEVICE ADR
4876 005446 012737 000100 016264 MOV #CLKVEC,CHKCHR+CKDV ;SET UP VECTOR ADR
4877 005454 005037 002036 CLR CKDEVN ;DEVICE NUMBER
4878 005460 012737 005566 000004 MOV #20$,NXMVEC ;SET BUS TRAP IN CASE CLOCK IS NOT PRESENT
4879 005466 005714 TST (R4) ;TRAP IF NOT INSTALLED
4880 005470 012737 015542 000004 MOV #CKBUST,NXMVEC ;WHERE TO GO ON BUS TRAP
4881 005476 013746 000100 MOV CLKVEC,-(SP) ;SAVE WHERE TO GO ON INT
4882 005502 012737 005610 000100 MOV #80$,CLKVEC ;SETUP INTERRUPT VECTOR
4883 005510 012737 000003 005622 MOV #3,CHKTIM ;TIME 3 TICKS
4884 005516 005037 177776 CLR PS ;LET INTERRUPTS HAPPEN
4885 005522 012714 000100 MOV #KW.INE,(R4) ;ENABLE THE CLOCK
4886 005526 001412 BEQ 15$ ;IF COUNTED OUT ALREADY EVIL
4887 005530 005000 CLR R0 ;INITIALIZE WATCHDOG COUNTER
4888 005532 005737 005622 10$: TST CHKTIM
4889 005536 001432 BEQ CKCLK9 ;BRANCH IF TIMED OUT ALREADY
4890 005540 077004 SOB R0,10$
4891 005542 CK11SC <CKEPC!CKEDID>,<Slow>,<NO RESPONSE FROM KW11>
4892 005544 066123 073557 000377 .ASCIZ \Slow\<377>
4893 .EVEN
4894 005552 000424 BR CKCLK9 ;
4895 005554 15$: CK11SC <CKEPC!CKEDID>,<Fast>,<KW11 TICKING TOO FAST>
4896 005556 060506 072163 000377 .ASCIZ \Fast\<377>
4897 .EVEN
4898 005564 000417 BR CKCLK9 ;
4899 005566 20$: CK11SC <CKEPC!CKEDID>,<Not Present>,<CAN'T ACCESS KW11>
4900 005570 067516 020164 071120 .ASCIZ \Not Present\<377>
005576 071545 067145 177564
005604 000
4901 005606 .EVEN
4902 005606 000406 BR CKCLK9 ;
4903 ;
4904 ; KW11 INTERRUPT HANDLER
4905 ;
4906 005610 005337 005622 80$: DEC CHKTIM ;COUNT OUT TIMER
4907 005614 001001 BNE 90$ ;
4908 005616 005014 CLR (R4) ;TURN OFF CLOCK
4909 005620 000002 90$: RTI ;DISMISS INTERRUPT
4910 ;
4911 005622 000000 CHKTIM: .WORD 0 ;
4912 005624 CKCLK9: SPL 7 ;SET TO LEVEL 7
4913 005632 012714 000100 MOV #KW.INE,(R4) ;ENABLE INT
4914 005636 012637 000100 MOV (SP)+,CLKVEC ;RESTORE WHERE TO GO ON INT
4915 005642 004537 010626 JSR R5,CHKINL ;FIND THE INT LEVEL
4916 005646 177777 -1 ;DELAY TO WAIT FOR INT
4917 005650 042737 000100 177546 BIC #KW.INE,CLKWRD ;DISABLE CLK INTS
4918 005656 004037 014570 JSR R0,CKTCRL ;INDICATE CLOCK PRESENT
4919 005662 053513 030461 046055 .ASCIZ \KW11-L checked\
005670 061440 062550 065543
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 13-1
C11DTE.MAC 10-AUG-79 16:05 CHECK KW11-L HDW
005676 062145 000
4920 005702 .EVEN ;
4921 005702 004737 002102 JSR PC,CKAKW1 ;CALL TO MAIN FOR CLOCK
4922 ;
4923 005706 FALLR . ;FALL INTO WHATEVER COMES NEXT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 13-2
C11DTE.MAC 10-AUG-79 16:05 CHECK DL10 HDW
4925 .SBTTL CHECK DL10 HDW
4926 ;
4927 005706 CKDL10:
4928 001 .IF NE FTDL10 ;IF DOESN'T HAVE A DL10,DON'T CHECK IT
4929 MOV DL10AD,R4 ;IF "DL10AD" IS NON 0 A DL10 IS PRESENT
4930 ; AND R4 WILL BE LOADED WITH BASE ADR
4931 BEQ 10$ ;BRANCH IF WE DO NOT
4932 BIC #CKFIDT,CHKFLG ;SO WE PRINT DEV ID
4933 MOV #CKND10,CKDNAM ;DEVICE NAME
4934 CLR CKDEVN ;DEVICE NUMBER
4935 MOV R4,R1 ;PUT DEVICE ADDR FOR CHKBIT
4936 MOV R4,CHKCHR+CKDA ;PUT IN CHARACT TABLE FOR ERROR REPORTING
4937 JSR R5,CHKBIT ;CHECK THE FOLLOWING BITS
4938 DL.B00!DL.B01!DL.INE!DL.ERE
4939 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4940 DL.WCO ;WORD COUNT OVERFLOW
4941 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4942 DL.PAR ;PARITY ERROR
4943 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4944 DL.NXM ;NON EX MEM
4945 JSR R5,CHKDLX ;CHECK SET/CLEAR OF
4946 DL.11I
4947 8$: MOV #DL.B01,(R4) ;SET DL10 FOR LEVEL 5
4948 MOV #DL.VEC,CHKCHR+CKDV;PUT DEVICE VECTOR IN TABLE FOR CKINT
4949 $CKINT R4,R4,DL.INE,DL.11I,DL.11C
4950 $CKINT R4,R4,DL.ERE,<DL.PAR!DL.NXM!DL.WCO>,<DL.CNX!DL.CPE!DL.CWC>
4951 JSR R0,CKTCRL ;NOTE PRESENCE OF DL10
4952 .ASCIZ \ DL10\
4953 .EVEN
4954 10$:
4955 000 .ENDC ;.IF NE FTDL10
4956 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14
C11DTE.MAC 10-AUG-79 16:05 CHECK DL10 HDW
4958
4959 .SBTTL DEVICE SCAN AND CHECK
4960 ;
4961 ;THE SAME ROUTINE IS USED FOR FLOATING AND FIXED DEVICES
4962 ;HOWEVER FOR FIXED DEVICES THE VECTOR MULTIPLE MUST BE 0
4963 ; *** WARNING: *** CKCDEV IS BOTH CODE AND DATA BASE.
4964 ;DO *NOT* PUT ANYTHING OTHER THAN "DEVICE" MACROS BETWEEN CKCDEV AND CKCEND!
4965 ;
4966 ; INVOCATION:
4967 ; DEVICE A,MAXN,VI,HI,VM,NAM,FV
4968 ;
4969 ; ARG A ;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
4970 ; ARG MAXN ;MAXIMUM NUMBER OF DEVICES
4971 ; ARG VI ;VECTOR INCREMENT
4972 ; ARG HI ;HARDWARE INCREMENT
4973 ; ARG VM ;VECTOR MULTIPLE
4974 ; ARG NAM ;DEVICE NAME ABBREVIATION
4975 ; ARG FV ;FIRST VECTOR ADR (FIXED DEV ONLY)
4976 ;
4977 005706 004037 014570 JSR R0,CKTCRL ;
4978 005712 062012 073145 061551 .ASCII <12>"device scan report assumes"
005720 020145 061563 067141
005726 071040 070145 071157
005734 020164 071541 072563
005742 062555 163
4979 .IIF DF CKSTD .ASCII <15><12>"standard PDP-11 fixed and floating assignments"
4980 001 .IF DF CKDN2X
4981 002 .IF NE CKDN2X&B0
4982 005745 015 020012 020040 .ASCII <15><12>" DN20"
005752 020040 020040 047104
005760 030062
4983 001 .ENDC
4984 002 .IF NE CKDN2X&B1
4985 005762 005015 020040 020040 .ASCII <15><12>" DN21"
005770 020040 042040 031116
005776 061
4986 001 .ENDC
4987 002 .IF NE CKDN2X&B5
4988 005777 015 020012 020040 .ASCII <15><12>" DN25"
006004 020040 020040 047104
006012 032462
4989 001 .ENDC
4990 006014 063040 074151 062145 .ASCII " fixed assignments (no floating)"
006022 060440 071563 063551
006030 066556 067145 071564
006036 024040 067556 063040
006044 067554 072141 067151
006052 024547
4991 000 .ENDC ;DF CKDN2X
4992 006054 000 .BYTE 0
4993 006056 .EVEN ;
4994 ;
4995 ;
4996 006056 CKCDEV: ;FIXED ADDRESS, FIXED VECTOR DEVICES
4997 006056 CHKCD: DEVICE CD.STS,1,0,0,0,CD,CD.VEC ;CD20(CD11)
4998 000034 CKCADD=.-CKCDEV ;SIZE OF "DEVICE" BLOCK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-1
C11DTE.MAC 10-AUG-79 16:05 DEVICE SCAN AND CHECK
4999 006112 CHKCR: DEVICE CR.STS,1,0,0,0,CR,CR.VEC ;CR11
5000 006146 DEVICE KG.STS,8.,0,10,0,KG,0 ;KG11
5001 006202 DEVICE LE.STS,2,-10,10,0,LE,LE.VEC ;LP11
5002 006236 DEVICE LP0STS,2,-4,20,0,LP,LP.VEC ;LP20
5003 006272 DEVICE PP.STS,1,0,0,0,PP,PP.VEC ;PP11(PC11)
5004 006326 DEVICE PR.STS,1,0,0,0,PR,PR.VEC ;PR11(PC11)
5005 006362 DEVICE TC.STS,1,0,0,0,TC,TC.VEC ;TC11
5006 006416 DEVICE TM.STS,1,0,0,0,TM,TM.VEC ;TM11
5007 006452 DEVICE 177446,1,0,0,0,RC,210 ;RC11
5008 006506 DEVICE 177460,1,0,0,0,RF,204 ;RF11
5009 006542 DEVICE 176700,1,0,0,0,RH,254 ;RH11
5010 006576 CHKRP: DEVICE 176710,1,0,0,0,RP,254 ;RP11-C
5011 006632 DEVICE 177500,1,0,0,0,TA,260 ;TA11
5012 006666 DEVICE 177404,1,0,0,0,RK,220 ;RK11
5013 006722 DEVICE 177170,1,0,0,0,RX,264 ;RX11
5014 006756 DEVICE 172540,1,0,0,0,KW.P,104 ;KW11-P
5015 ;;;; DEVICE DS.DVA,1,20,10,0,DS,DS.VEC ;DS11
5016 007012 CHKDTE: DEVICE 174440,4,-4,40,0,DTE2,774 ;DTE20
5017 001 .IF DF CKSTD ;STANDARD FLOATING ASSIGNMENTS
5018 ;FIXED ADDRESS, FLOATING VECTOR DEVICES
5019 DEVICE 174770,32.,10,-10,10,DP,0 ;DP11
5020 DEVICE 175200,64.,4,10,4,DN,0 ;DN11
5021 DEVICE 170500,16.,4,10,10,DM,0 ;DM11BB
5022 DEVICE 172600,16.,4,10,4,R6,0 ;PA611RDR
5023 DEVICE 172700,16.,4,10,4,P6,0 ;PA611PNCH
5024 DEVICE 175610,16.,10,10,10,DL.E,0 ;DL11-E
5025 .IIF DF SY0880 DEVICE 177776,1,10,0,10,NL,0 ;(NULL DEVICE, VECTOR SPACER)
5026 ;FULLY FLOATING DEVICES
5027 DEVICE 0,16.,10,10,10,DJ,0 ;DJ11
5028 DEVICE 0,16.,10,20,10,DH,0 ;DH11
5029 DEVICE 0,16.,10,10,10,DQ,0 ;DQ11
5030 DEVICE 0,16.,10,10,10,DU,0 ;DU11
5031 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
5032 DEVICE 0,16.,10,10,10,DUP,0 ;DUP11
5033 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
5034 .IIF DF SY0880 DEVICE 0,1,10,10,10,NL,0 ;(NULL DEVICE, ADDRESS SPACER)
5035 DEVICE 0,16.,10,10,4,DMC,0 ;DMC11
5036 DEVICE 0,3.,10,10,4,KMC,0 ;KMC11
5037 000 .ENDC ;DF CKSTD
5038 ;
5039 001 .IF DF CKDN2X ;-20 FRONT END CONFIGURATIONS
5040 002 .IF NE CKDN2X&B0 ;DN20
5041 007046 DEVICE 160540,3,10,10,0,KMC,540 ;KMC11
5042 007102 DEVICE 160300,12.,10,10,0,DUP,570 ;DUP11
5043 007136 DEVICE 175630,1,10,10,0,DL.E,740 ;DL11-E (DN20 #1)
5044 007172 DEVICE 175640,1,10,10,0,DL.E,730 ;DL11-E (DN20 #2)
5045 007226 DEVICE 175650,1,10,10,0,DL.E,720 ;DL11-E (DN20 #3)
5046 001 .ENDC ;NE CKDN2X&B0
5047 002 .IF NE CKDN2X&B1 ;DN21
5048 007262 DEVICE 160740,4,10,10,0,DMC,670 ;DMC11
5049 001 .ENDC ;NE CKDN2X&B1
5050 002 .IF NE CKDN2X&B5 ;DN25
5051 007316 DEVICE 160640,3,10,10,0,KMC,300 ;KMC11
5052 007352 DEVICE 160010,16.,10,10,0,DZ,340 ;DZ11
5053 001 .ENDC ;NE CKDN2X&B5
5054 000 .ENDC ;DF CKDN2X
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-2
C11DTE.MAC 10-AUG-79 16:05 DEVICE SCAN AND CHECK
5055 ;
5056 007406 CKCEND: ;END OF DEVICES TO CHECK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-3
C11DTE.MAC 10-AUG-79 16:05 CHK11 COMPLETION
5058 .SBTTL CHK11 COMPLETION
5059 ;
5060 007406 004037 014570 CHK.90: JSR R0,CKTCRL ;
5061 007412 004412 044103 030513 .ASCIZ <12>" CHK11 complete"<15><12><12>
007420 020061 067543 070155
007426 062554 062564 005015
007434 000012
5062 .EVEN ;
5063 007436 012700 015415 MOV #CK.BUF,R0 ;SEND OUT A NULL
5064 007442 CALL CKBFSH ; LINE TO THE REMOTE DEVICE
5065 007446 011606 MOV (SP),SP ;CHAIN BACK TO CALLER'S STACK
5066 007450 012605 MOV (SP)+,R5 ;RESTORE
5067 007452 012604 MOV (SP)+,R4 ; CALLER'S
5068 007454 013701 002044 MOV CK.DTE,R1 ; REGISTERS
5069 007460 000177 172356 JMP @CK.CAL ;RETURN TO CALLER
5070 .SBTTL END OF CHK11 MAINLINE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-4
C11DTE.MAC 10-AUG-79 16:05 GENERAL SUBROUTINES
5072 .SBTTL GENERAL SUBROUTINES
5073 ;**** GOT RID OF ALL THE STANDARD CHK11 VECTOR SETUP HERE ****;
5074 ;**** AFTER ALL, THIS IS ONLY THE TERTIARY LOADER... ****;
5075 .SBTTL LOOK FOR AND CHECK SYSTEM DEVICES
5076 ;
5077 ; CALLING SEQUENCE (GENERATED BY MACRO "DEVICE"):
5078 ; JSR R5,CHKDEV
5079 ; (OFFSET
5080 ; NAME)
5081 ; D.BADR .WORD ADDRESS OF 1ST DEVICE REGISTER
5082 ; D.MAXL .BYTE MAX # OF DEVICES TO SEEK
5083 ; D.VINC .BYTE VECTOR INC
5084 ; D.HINC .BYTE HDW INC
5085 ; D.VMUL .BYTE 1ST VEC MULTIPLE
5086 ; D.CNTP .WORD <ADR OF NUMBER OF DEVICES OR ZERO>
5087 ; D.NAMP .WORD <ADR OF .ASCIZ \NAME\>
5088 ; D.DIAG .WORD <ADR OF ROUTINE TO VERIFY OPERATION>
5089 ; D.MAIN .WORD <ADR OF MAIN PROGRAM ROUTINE FOR DEVICE>
5090 ; D.MPVC .WORD <ADR OF TABLE WHICH CONTAINS MAIN PROG VECTORS OR 0>
5091 ; D.CNTF .WORD <# OF DEVICES FOUND>
5092 ; D.FRSV .WORD <FIRST VECTOR FOUND>
5093 ; D.PRIO .WORD <PI LEVEL>
5094 ; D.FVFD .WORD <FIRST DEV VECTOR FOR FIXED TYPE DEV>
5095 ; D.NEXT (RETURN ADDRESS)
5096 ;
5097 007464 CHKDEV: ;
5098 ;LOOK FOR AND COUNT PLAUSIBLE DEVICE TYPES
5099 ;
5100 007464 016537 000010 002040 MOV D.NAMP(R5),CKDNAM ;REMEMBER DEVICE NAME
5101 007472 005002 CLR R2 ;INITIALIZE COUNTER FOR DEVICES
5102 ;GET DEVICE VECTOR
5103 007474 013703 011502 MOV CHKFLV,R3 ;ASSUME FLOATING VECTOR
5104 007500 105765 000005 TSTB D.VMUL(R5) ;BUT SEE IF FIXED
5105 007504 001002 BNE 4$ ;FLOATING VECTOR
5106 007506 016503 000026 MOV D.FVFD(R5),R3 ;FIXED, GET PRE-ASSIGNED VECTOR
5107 ;
5108 007512 011504 4$: MOV (R5),R4 ;GET HDW ADR FOR 1ST DEVICE
5109 007514 001012 BNE 6$ ;ADDRESS IS NOT ZERO, HENCE FIXED DEVICE
5110 ;DEV EXPECTS TO FLOAT, BUMP UP TO NEXT SLOT
5111 007516 116501 000004 MOVB D.HINC(R5),R1 ;COMPUTE NEXT ADDRESS AS MULTIPLE OF HDW INC
5112 007522 060137 011504 ADD R1,CHKFLD ;
5113 007526 005301 DEC R1 ;
5114 007530 040137 011504 BIC R1,CHKFLD ;
5115 007534 013704 011504 MOV CHKFLD,R4 ;COPY FOR USE
5116 007540 010415 MOV R4,(R5) ;STUFF EXPECTED ADDRESS IN DEVICE TABLE
5117 007542 6$: ;
5118 007542 012737 007654 000004 7$: MOV #20$,NXMVEC ;SET BUS TRAP VECTOR
5119 007550 005714 TST (R4) ;CHECK TO SEE IF DEVICE IS PRESENT
5120 007552 012737 015542 000004 MOV #CKBUST,NXMVEC ;IT'S THERE, SET BUS ERR VEC BACK
5121 007560 005702 TST R2 ;IS THIS THE FIRST OF ITS KIND ?
5122 007562 001014 BNE 15$ ;NO
5123 007564 005065 000020 CLR D.CNTF(R5) ;YES, CLEAR NUMBER OF DEV FOUND
5124 007570 005065 000022 CLR D.FRSV(R5) ;CLEAR FIRST VECTOR ADR
5125 ;;;; CLR D.PRIO(R5) ;CLEAR BR LEVEL
5126 007574 116501 000005 MOVB D.VMUL(R5),R1 ;GET ADDRESS MULTIPLE OF VECTOR
5127 007600 001405 BEQ 15$ ;BRANCH IF FIXED VECTOR DEV
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-5
C11DTE.MAC 10-AUG-79 16:05 LOOK FOR AND CHECK SYSTEM DEVICES
5128 007602 005301 DEC R1 ;ELSE COUNT UP VECTOR MOD VMUL
5129 007604 010365 000026 MOV R3,D.FVFD(R5) ;SAVE EXPECTED ADDRESS OF FIRST VECTOR
5130 007610 060103 ADD R1,R3 ;
5131 007612 040103 BIC R1,R3 ;
5132 007614 005202 15$: INC R2 ;COUNT DEVICE
5133 007616 005265 000020 INC D.CNTF(R5) ;COUNT DEVICE AND REMEMBER IT
5134 007622 116501 000003 MOVB D.VINC(R5),R1 ;GET VECTOR INCREMENT
5135 007626 060103 ADD R1,R3 ;COMPUTE NEW VECTOR
5136 007630 116501 000004 MOVB D.HINC(R5),R1 ;GET REG BLOCK INCREMENT
5137 007634 060104 ADD R1,R4 ;ADVANCE DEVICE ADR POINTER
5138 007636 021537 011504 CMP (R5),CHKFLD ;FLOATING DEVICE?
5139 007642 101737 BLOS 7$ ;YES, KEEP LOOKING UNTIL GAP FOUND
5140 007644 120265 000002 CMPB R2,D.MAXL(R5) ;HAVE WE CHECKED AS MANY AS WE CAN EXPECT?
5141 007650 001334 BNE 7$ ;NO, LOOP BACK FOR REST
5142 007652 024646 CMP -(SP),-(SP) ;YES, FAKE A TRAP
5143 ;WE HAVE FOUND AS MANY UNITS AS WE SOUGHT,
5144 ; OR WE HAVE TRAPPED ON FINDING FEWER
5145 ;REPORT THE DEVICE COUNT
5146 007654 012737 015542 000004 20$: MOV #CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
5147 007662 022626 CMP (SP)+,(SP)+ ;POP OFF TRAP
5148 007664 021537 011504 CMP (R5),CHKFLD ;FLOATER?
5149 007670 101016 BHI 21$ ;NO
5150 007672 010437 011504 MOV R4,CHKFLD ;YES, SAVE CURRENT ADDRESS AS GAP ADDRESS
5151 007676 120265 000002 CMPB R2,D.MAXL(R5) ;TOO MANY?
5152 007702 101411 BLOS 21$ ;NO
5153 007704 CK11SC <CKEDID>,<Too many device units>
5154 007706 067524 020157 060555 .ASCIZ "Too many units"
007714 074556 072440 064556
007722 071564 000
5155 007726 .EVEN ;
5156 007726 005765 000006 21$: TST D.CNTP(R5) ;DO WE HAVE A REMOTE ADDRESS TO REPORT COUNT?
5157 007732 001402 BEQ 22$ ;IF NOT, DON'T TRY
5158 007734 010275 000006 MOV R2,@D.CNTP(R5) ;YES, PUT NUMBER FOR SOMEONE TO FIND
5159 007740 010200 22$: MOV R2,R0 ;NUMBER OF DEVICES WE FOUND
5160 007742 001001 BNE 24$ ;THERE ARE SOME
5161 001 .IF DF CKNODV
5162 JSR PC,CKCRLF ;DO CR/LF
5163 JSR R0,CKTSTR ;THERE AREN'T ANY
5164 .ASCIZ "no" ;
5165 .EVEN ;
5166 BR 25$ ;
5167 .IFF
5168 007744 000560 BR 40$ ;AREN'T ANY - FORGET IT
5169 000 .ENDC
5170 007746 004737 014556 24$: JSR PC,CKCRLF ;DO CR/LF
5171 007752 004737 014616 JSR PC,CKTOCT ;TYPE OUT THE NUMBER
5172 007756 012700 010336 25$: MOV #70$,R0 ;ASSUME FIXED ADDRESS DEVICE
5173 007762 021537 011504 CMP (R5),CHKFLD ; BUT CHECK
5174 007766 101002 BHI 26$ ;FIXED
5175 007770 012700 010346 MOV #72$,R0 ;RATHER FLOATING
5176 007774 004737 014530 26$: JSR PC,CKTTXT ;SAY WHICH
5177 010000 013700 002040 MOV CKDNAM,R0 ;GET ADR OF ASCIZ STRING
5178 010004 004737 014530 JSR PC,CKTTXT ;TYPE DEVICE NAME
5179 010010 020227 000001 CMP R2,#1 ;HOW MANY ?
5180 010014 001402 BEQ 27$ ;SINGULAR
5181 010016 CK11SC <CKENCL>,<'s> ;PLURAL
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-6
C11DTE.MAC 10-AUG-79 16:05 LOOK FOR AND CHECK SYSTEM DEVICES
5182 010020 000163 .ASCIZ \s\ ;
5183 .EVEN ;
5184 010022 012700 010372 27$: MOV #74$,R0 ;ADD TO DESCRIPTOR STRING
5185 010026 020227 000001 CMP R2,#1 ;USE PROPER PREPOSITION
5186 010032 101402 BLOS 28$ ;
5187 010034 012700 010362 MOV #73$,R0 ;
5188 010040 004737 014530 28$: JSR PC,CKTTXT ;TYPE PREPOSITION
5189 010044 011500 MOV (R5),R0 ;GET EXPECTED DEVICE ADDRESS
5190 010046 004737 014616 JSR PC,CKTOCT ;TYPE IT OUT
5191 ;THE CURRENT DEVICE UNITS HAVE BEEN SOUGHT
5192 ; AND COUNTED - PROCEED TO TEST ANY SO FOUND
5193 010052 005702 TST R2 ;WERE THERE ANY?
5194 010054 001514 BEQ 40$ ;NO
5195 010056 010346 MOV R3,-(SP) ;
5196 010060 010446 MOV R4,-(SP) ;
5197 010062 010246 MOV R2,-(SP) ;R2 MUST STAY ON TOP FOR COUNT
5198 010064 005037 002036 CLR CKDEVN ;CHECK UNIT 0 FIRST
5199 010070 016503 000026 MOV D.FVFD(R5),R3 ;GET FIRST VECTOR FOR POSSIBLE FIXED
5200 010074 004037 014574 JSR R0,CKTSTR ;REPORT VECTOR ADDRESS
5201 010100 020054 062566 072143 .ASCIZ ", vector at" ;
010106 071157 060440 000164
5202 .EVEN ;
5203 010114 010300 MOV R3,R0 ;
5204 010116 004737 014602 JSR PC,CKTBOC ;
5205 010122 116500 000005 MOVB D.VMUL(R5),R0 ;GET VECTOR MULTIPLE
5206 010126 001405 BEQ 30$ ;BRANCH IF FIXED
5207 010130 013703 011502 MOV CHKFLV,R3 ;GET VECTOR FOR 1ST UNIT
5208 010134 005300 DEC R0 ;
5209 010136 060003 ADD R0,R3 ;
5210 010140 040003 BIC R0,R3 ;
5211 010142 011504 30$: MOV (R5),R4 ;GET HDW ADR FOR FIRST UNIT
5212 010144 001002 BNE 32$ ;
5213 010146 013704 011504 MOV CHKFLD,R4 ;FLOATING DEVICE
5214 010152 005037 016266 32$: CLR CHKCHR+CKPI ;ROUTINE WILL SET PI LEVEL
5215 010156 016500 000012 MOV D.DIAG(R5),R0 ;ADR OF ROUTINE TO VERIFY DEVICE
5216 010162 001424 BEQ 34$ ;BRANCH IF NO ROUTINE TO VERIFY
5217 010164 042737 100000 002034 BIC #CKFIDT,CHKFLG ;HAVEN'T TYPED ID YET
5218 010172 010437 016262 MOV R4,CHKCHR+CKDA ;SAVE DEVICE ADDRESS
5219 010176 010337 016264 MOV R3,CHKCHR+CKDV ;SAVE VECTOR ADDRESS IN TABLE
5220 010202 010401 MOV R4,R1 ;PUT DEV ADR IN R1, MOST WILL USE IT
5221 010204 005037 016270 CLR CHKCHR+CKFLG ;CLR AND LET DEV ROUTINE SET FLAGS
5222 010210 SPL 7 ;MAKE SURE WE'RE AT LEVEL 7
5223 010216 004710 JSR PC,(R0) ;CALL TO DEVICE CHECK
5224 010220 005765 000022 TST D.FRSV(R5) ;SEE IF VECTOR ADR SET YET
5225 010224 001003 BNE 34$ ;BRANCH IF SET
5226 010226 013765 016264 000022 MOV CHKCHR+CKDV,D.FRSV(R5) ;SET FIRST VECTOR FOUND
5227 ;;;; MOV CHKCHR+CKPI,D.PRIO(R5) ;SET FIRST PI LEVEL FOUND
5228 010234 021527 175400 34$: CMP (R5),#DS.DVA ;DS11 ARE SPECIAL SO DON'T CALL MAIN HERE
5229 010240 001404 BEQ 35$ ;BRANCH IF DS11
5230 010242 012700 016262 MOV #CHKCHR,R0 ;POINT TO THE CHARACTERISTIC TABLE
5231 010246 004775 000014 JSR PC,@D.MAIN(R5) ;CALL TO MAIN PROGRAM
5232 010252 116500 000003 35$: MOVB D.VINC(R5),R0 ;GET VECTOR INCREMENT
5233 010256 060003 ADD R0,R3 ;
5234 010260 116500 000004 MOVB D.HINC(R5),R0 ;HDW INCREMENT
5235 010264 060004 ADD R0,R4 ;POINT TO NEXT REGISTER SET
5236 010266 005237 002036 INC CKDEVN ;ON TO NEXT DEVICE NUMBER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 14-7
C11DTE.MAC 10-AUG-79 16:05 LOOK FOR AND CHECK SYSTEM DEVICES
5237 010272 023716 002036 CMP CKDEVN,(SP) ;DONE ALL UNITS YET? (SET TO 177776 BY NULL DIAG)
5238 010276 103725 BLO 32$ ;NO, NOT YET
5239 010300 012602 MOV (SP)+,R2 ;
5240 010302 012604 MOV (SP)+,R4 ;
5241 010304 012603 MOV (SP)+,R3 ;
5242 010306 40$: ;
5243 000000 .REPT 0
5244 ;;;;DISABLED CODE!!!
5245 SAVE <R3,R4>
5246 CLR R4 ;FLAG NO MORE DEVICES
5247 JSR PC,@D.MAIN(R5) ;CALL MAIN PROGRAM
5248 RESTORE <R4,R3>
5249 .ENDR
5250 ;
5251 ;DONE CHECKING ALL DEVICE UNITS, UPDATE FLOATING VALUES AS REQ'D
5252 ;
5253 010306 105765 000005 TSTB D.VMUL(R5) ;FIXED VECTOR DEV?
5254 010312 001406 BEQ 50$ ;YES
5255 010314 013746 011502 MOV CHKFLV,-(SP) ;NO, RESET FLOATING VECTOR
5256 010320 010337 011502 MOV R3,CHKFLV ;
5257 010324 012603 MOV (SP)+,R3 ;
5258 010326 011500 MOV (R5),R0 ;WAS THIS A FLOATING DEVICE ?
5259 010330 062705 000030 50$: ADD #D.NEXT,R5 ;RETURN FOLLOWING TRAILING ARGS
5260 010334 000205 RTS R5 ;
5261 ;
5262 010336 043040 074151 062145 70$: .ASCIZ " Fixed " ;
010344 000040
5263 .EVEN ;
5264 010346 043040 067554 072141 72$: .ASCIZ " Floating " ;
010354 067151 020147 000
5265 010362 .EVEN ;
5266 010362 063040 067562 020155 73$: .ASCIZ " from " ;
010370 000
5267 010372 .EVEN ;
5268 010372 060440 020164 000 74$: .ASCIZ " at " ;
5269 010400 .EVEN ;
5270 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 15
C11DTE.MAC 10-AUG-79 16:05 LOOK FOR AND CHECK SYSTEM DEVICES
5272
5273 .SBTTL BIT BY BIT SET/CLEAR TEST
5274 ;
5275 ; CHECK WE CAN SET/CLEAR VARIOUS BITS
5276 ;
5277 ; CALL MOV #<ADR OF ASCIZ \NAME\>,CKDNAM
5278 ; MOV <DEVICE NUMBER>,CKDEVN
5279 ; MOV <DEVICE REGISTER ADDRESS>,R1
5280 ; JSR R5,CHKBIT
5281 ; <ALL BITS TO TEST>
5282 ;
5283 010400 010046 CHKBIT: MOV R0,-(SP) ;
5284 010402 052737 000340 177776 BIS #BR7,PS ;DISABLE INTERRUPTS
5285 010410 011500 MOV (R5),R0 ;GET BITS TO CHECK
5286 010412 040011 BIC R0,(R1) ;TRY AND CLEAR ALL OF THEM
5287 010414 030011 BIT R0,(R1) ;SEE IF ALL OF THEM CLEARED?
5288 010416 001410 BEQ 1$ ;BRANCH IF ALL CLEAR
5289 010420 005046 CLR -(SP) ;WHAT THE RESULT SHOULD BE
5290 010422 011146 MOV (R1),-(SP) ;PUT C(DEV REG) ON STACK
5291 010424 010046 MOV R0,-(SP) ;BUT ONLY CERTAIN BITS ARE BAD CANDIDATES
5292 010426 005116 COM (SP) ;GET RID OF ONES
5293 010430 042616 BIC (SP)+,(SP) ; THAT WE'RE NOT INTERESTED IN
5294 010432 010146 MOV R1,-(SP) ;SAVE THE DEVICE ADR
5295 010434 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BITS WOULD NOT CLEAR>
5296 010440 012700 000001 1$: MOV #1,R0 ;START WITH B0 AND GO UNTIL B15 IS DONE
5297 010444 031500 2$: BIT (R5),R0 ;WANT THIS BIT CHECKED?
5298 010446 001420 BEQ 4$ ;BRANCH IF NOT, AND MAKE NEW BIT
5299 010450 050011 BIS R0,(R1) ;TRY TO SET THE BIT
5300 010452 030011 BIT R0,(R1) ;SEE IF THE BIT SET
5301 010454 001005 BNE 3$ ;BRANCH IF IT SET
5302 010456 010046 MOV R0,-(SP) ;SAVE GOOD
5303 010460 005046 CLR -(SP) ;GOOD SHOUD BE 0 FOR THAT BIT
5304 010462 010146 MOV R1,-(SP) ;DEV ADR WHERE IT HAPPENED
5305 010464 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<BIT WOULD NOT SET>
5306 010470 040011 3$: BIC R0,(R1) ;NOW THAT ITS SET TRY TO CLEAR IT
5307 010472 030011 BIT R0,(R1) ;SEE IF IT CLEARED
5308 010474 001405 BEQ 4$ ;BRANCH IF IT CLEARED AND GET NEW BIT
5309 010476 005046 CLR -(SP) ;GOOD SHOUD BE 0
5310 010500 010046 MOV R0,-(SP) ;SINCE IT DIDN'T CLEAR THIS BIT IS BAD
5311 010502 010146 MOV R1,-(SP) ;DEV ADR THAT FAILED
5312 010504 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BIT WOULD NOT CLEAR>
5313 010510 006300 4$: ASL R0 ;MAKE NEW BIT POSITION
5314 010512 001354 BNE 2$ ;BRANCH IF THERE IS A BIT
5315 010514 012600 MOV (SP)+,R0 ;
5316 010516 005725 TST (R5)+ ;GO OVER BITS FOLLOWING JSR
5317 010520 000205 RTS R5 ;EXIT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 15-1
C11DTE.MAC 10-AUG-79 16:05 BIT SET/BIT CLEAR TEST FOR DL10
5319 .SBTTL BIT SET/BIT CLEAR TEST FOR DL10
5320 ;
5321 ;ROUTINE TO CHECK DL10 BITS
5322 ;
5323 001 .IF NE FTDL10
5324 CHKDLX: MOV (R5)+,R0 ;GET BIT TO CHECK
5325 BIS R0,(R1) ;SET THE BIT IN THE DL10
5326 CMP (R1),R0 ;DID IT SET AND ONLY IT SET?
5327 BEQ 1$ ;BRANCH IF OK
5328 CKSERR R0,<(R1)>,R1 ;GD, BD, ADR
5329 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<SET BIT BUT ITS NOT SET>
5330 1$: ASR R0 ;SHIFT RIGHT TO GET IT IN CLEAR POSITION
5331 BIS R0,(R1) ;SET BIT TO CLEAR BIT
5332 TST (R1) ;ALL BITS SHOULD BE CLEAR NOW
5333 BEQ 2$ ;BRANCH IF THEY ARE
5334 CLR -(SP) ;THE GOOD
5335 MOV (R1),-(SP) ;THE BAD
5336 MOV R1,-(SP) ;THE BAD ADR
5337 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<SETTING DIDN'T CLR BIT>
5338 2$: RTS R5 ;EXIT
5339 000 .ENDC ;.IF NE FTDL10
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 15-2
C11DTE.MAC 10-AUG-79 16:05 PRINT DEVICE ID ROUTINE
5341 .SBTTL PRINT DEVICE ID ROUTINE
5342 ;
5343 010522 032737 100000 002034 CKDIDT: BIT #CKFIDT,CHKFLG ;HAVE WE ALREADY TYPE DEVICE ID ?
5344 010530 001035 BNE 1$
5345 010532 CK11SC 0,<? >
5346 010534 004407 020077 000 .ASCIZ <7>" ? "
5347 010542 .EVEN
5348 010542 013700 002040 MOV CKDNAM,R0 ;GET ASCIZ \DEVICE NAME\
5349 010546 004737 014530 JSR PC,CKTTXT ;TYPE DEVICE NAME
5350 010552 CK11SC <CKENCL>,< #>
5351 010554 021440 000 .ASCIZ \ #\
5352 010560 .EVEN
5353 010560 013700 002036 MOV CKDEVN,R0 ;GET UNIT NUMBER
5354 010564 004737 014616 JSR PC,CKTOCT ;TYPE UNIT NUMBER
5355 010570 CK11SC <CKENCL>,<(Adr = >
5356 010572 040450 071144 036440 .ASCIZ \(Adr = \
010600 000040
5357 .EVEN
5358 010602 013700 016262 MOV CHKCHR+CKDA,R0 ;GET DEVICE ADDR
5359 010606 004737 014616 JSR PC,CKTOCT ;TYPE IT
5360 010612 CK11SC <CKENCL>,<)>
5361 010614 000051 .ASCIZ \)\
5362 .EVEN
5363 010616 052737 100000 002034 BIS #CKFIDT,CHKFLG ;REMEMBER WE TYPED DEVICE ID
5364 010624 000207 1$: RTS PC
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 15-3
C11DTE.MAC 10-AUG-79 16:05 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5366 .SBTTL ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5367 ;
5368 ;CALL JSR R5,CHKINL ;WITH DEVICE READY TO INT BUT
5369 ; ; WITH THE PS SET TO LEVEL 7.
5370 ;
5371 010626 010046 CHKINL: MOV R0,-(SP) ;SAVE R0
5372 010630 010146 MOV R1,-(SP) ;SAVE R1
5373 010632 010246 MOV R2,-(SP) ;SAVE R2
5374 010634 012702 000300 MOV #BR6,R2 ;START BY CHECKING LEVEL 6
5375 010640 011501 1$: MOV (R5),R1 ;GET TIME TO WAIT
5376 010642 005000 CLR R0 ;WILL BE SET BY INT ROUTINE IF INT
5377 010644 010237 177776 MOV R2,PS ;LOWER PS LEVEL
5378 ;MOST REASONABLE INTERRUPTS WHICH OCCUR WILL
5379 ; DISPATCH THROUGH CKINT, RETURN THE VECTOR
5380 ; ADDRESS USED IN R0
5381 010650 005700 2$: TST R0 ;SEE IF INT YET
5382 010652 001012 BNE 10$ ;NON 0 SAYS INTERRUPT HAPPENED
5383 010654 077103 SOB R1,2$ ;TIME AND WAIT
5384 010656 SPL 7 ;TIMED OUT SET LEVEL 7, LOWER AND TRY AGAIN
5385 010664 162702 000040 SUB #40,R2 ;MAKE LEVEL LOWER BY 1
5386 010670 002363 BGE 1$ ;BRANCH IF LEVEL 0 NOT CHECKED YET
5387 010672 CK11SC <CKEMSE!CKEDID!CKEPC>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
5388 010676 000415 BR 3$ ;EXIT
5389 ;
5390 010700 020037 016264 10$: CMP R0,CHKCHR+CKDV ;SEE IF SAME AS WHAT IT SHOULD BE
5391 010704 001406 BEQ 11$ ;BRANCH IF CORRECT VECTOR
5392 010706 CKSERR <CHKCHR+CKDV>,<R0>,<R4>
5393 010716 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
5394 ;
5395 010722 062702 000040 11$: ADD #40,R2 ;MAKE THE DEVICE LEVEL
5396 010726 010237 016266 MOV R2,CHKCHR+CKPI ;SAVE LEVEL DEVICE INTERRUPTED AT
5397 010732 012602 3$: MOV (SP)+,R2 ;RESTORE R2
5398 010734 012601 MOV (SP)+,R1 ;RESTORE R1
5399 010736 012600 MOV (SP)+,R0 ;RESTORE R0
5400 010740 005725 TST (R5)+ ;SKIP OVER TIME DELAY CONSTANT
5401 010742 000205 RTS R5 ;RETURN WITH DEVICE LEVEL SAVED IN CHARACTERISTICS TABLE
5402 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16
C11DTE.MAC 10-AUG-79 16:05 ROUTINE TO FIND DEVICE INTERRUPT LEVEL
5404
5405 .SBTTL CHECK INTERRUPTS AND FIND DEVICE LEVEL
5406 ;
5407 ;ROUTINE TO CHECK INTERRUPTS AND FIND DEVICE LEVEL
5408 ;
5409 ; CALL (GENERATED BY MACRO "$CKINT"):
5410 ; MOV ENABLE ADR,R1
5411 ; MOV INT ADR,R2
5412 ; JSR R5,CKINT
5413 ; TRAILING ARGS:
5414 ; (NAME) (PURPOSE)
5415 ; I.ENAB - ENABLE BIT
5416 ; I.INTS - INTERRUPT BITS
5417 ; I.INTC - SPECIAL CLEAR BITS
5418 ; I.RTRN - RETURN ADDRESS
5419 ;
5420 010744 010346 CKINT: MOV R3,-(SP)
5421 010746 010446 MOV R4,-(SP)
5422 010750 005037 016266 CLR CHKCHR+CKPI ;START WITH PI OF 0 (NO DEV)
5423 010754 005037 011336 CLR CKFLAG ;0 = PI LEVEL FOUND MUST BE PUT IN TABLE
5424 ; NON 0 = CHECK PI LEVEL FOUND WITH TABLE
5425 010760 012704 000001 MOV #1,R4 ;STARTING POSITION OF SLIDING INT BIT
5426 010764 012703 000340 CKINT1: MOV #BR7,R3 ;START CHECKING AT THIS LEVEL
5427 010770 010337 177776 CKINT2: MOV R3,PS ;SET PS
5428 010774 005000 CLR R0 ;SET TO 0 SO IF INT HAPPENS WE KNOW IT
5429 010776 030465 000002 CKINT3: BIT R4,I.INTS(R5) ;IS THERE A BIT TO TEST?
5430 011002 001002 BNE 5$ ;BRANCH IF BIT IN POSITION
5431 011004 000137 011314 JMP CKINT7 ;MAKE NEW BIT POSITION
5432 011010 051511 5$: BIS (R5),(R1) ;SET INTERRUPT ENABLE
5433 011012 050412 BIS R4,(R2) ;SET INTERRUPT BIT
5434 011014 000240 NOP ;ALLOW 1 EXTRA INST TIME FOR INT
5435 011016 SPL 7 ;LET NO INT HAPPEN
5436 011024 041511 BIC (R5),(R1) ;CLEAR INT ENABLE
5437 011026 005765 000004 TST I.INTC(R5) ;SEE IF SPECIAL CLEAR
5438 011032 001403 BEQ 7$ ;BRANCH IF NOT
5439 011034 056512 000004 BIS I.INTC(R5),(R2) ;SPECIAL CLEAR
5440 011040 000402 BR 9$ ;CONTINUE
5441 011042 046512 000002 7$: BIC I.INTS(R5),(R2) ;CLEAR INT BITS
5442 011046 005700 9$: TST R0 ;IF R0 IS NON 0 IT SHOULD BE THE
5443 ; VECTOR ADR. IF 0 NO INT HAPPENED.
5444 011050 001006 BNE 10$ ;BRANCH IF INTERRUPT
5445 011052 162703 000040 SUB #40,R3 ;MAKE PS VALUE 1 LEVEL LESS
5446 011056 002344 BGE CKINT2 ;BRANCH IF NEW LEVEL OK
5447 011060 CK11SC <CKEMSE!CKEPC!CKEDID>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
5448 011064 000517 BR CKINTE ;EXIT
5449 011066 10$: ;INTERRUPT OCCURRED, CHECK IT OUT
5450 011066 020037 016264 CMP R0,CHKCHR+CKDV ;SEE IF WE WENT TO CORRECT ADR
5451 011072 001407 BEQ 13$ ;BRANCH IF WE DID, R0 = VECTOR ADR
5452 011074 CKSERR <CHKCHR+CKDV>,R0,<R2>;GD,BD,ADR
5453 011104 CK11SC <CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
5454 011110 000505 BR CKINTE ;EXIT
5455 011112 005737 011336 13$: TST CKFLAG ;MUST WE LOAD LEVEL OR CHECK IT?
5456 011116 001010 BNE 11$ ;BRANCH IF JUST CHECK
5457 011120 010337 016266 MOV R3,CHKCHR+CKPI ;LOAD LEVEL JUST FOUND
5458 011124 062737 000040 016266 ADD #40,CHKCHR+CKPI ;MAKE LEVEL OF DEVICE
5459 011132 012737 177777 011336 MOV #-1,CKFLAG ;SET FLAG SO NEXT TIME WE CHECK LEVEL AS WELL
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16-1
C11DTE.MAC 10-AUG-79 16:05 CHECK INTERRUPTS AND FIND DEVICE LEVEL
5460 011140 010300 11$: MOV R3,R0 ;GET PRESENT LEVEL
5461 011142 062700 000040 ADD #40,R0 ;MAKE IT THE DEVICE LEVEL
5462 011146 020037 016266 CMP R0,CHKCHR+CKPI ;CHECK LEVEL AGAINST LAST TIME
5463 011152 001427 BEQ CKINT6 ;BRANCH IF LEVEL CHECKS
5464 011154 CKSERR <CHKCHR+CKPI>,R0,R4
5465 011164 CK11SC <CKEPC!CKEDID!CKEGB>,<Interrupt to Different BR Level>,<INTERRUPT TO DIF
5466 011166 067111 062564 071162 .ASCIZ \Interrupt to Different BR Level\<377>
011174 070165 020164 067564
011202 042040 063151 062546
011210 062562 072156 041040
011216 020122 062514 062566
011224 177554 000
5467 011230 .EVEN
5468 011230 000435 BR CKINTE ;EXIT
5469 011232 005037 177776 CKINT6: CLR PS ;CHECK WITH LEVEL 0 AND
5470 011236 005000 CLR R0 ; NO INT ENABLE BITS SET
5471 011240 050412 BIS R4,(R2) ; AND INT BIT SET THAT NO INT OCCURRS
5472 011242 000240 NOP ;PAUSE
5473 011244 000240 NOP ;PAUSE
5474 011246 SPL 7 ;DON'T LET AN INT HAPPEN
5475 011254 005700 TST R0 ;SEE IF ONE HAPPENED
5476 011256 001403 BEQ 19$ ;BRANCH IF NO INT
5477 011260 CK11SC <CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPT WHEN NOT ENABLED>
5478 011264 000417 BR CKINTE ;EXIT
5479 011266 005765 000004 19$: TST I.INTC(R5) ;SEE IF SPECIAL CLEAR
5480 011272 001403 BEQ 22$ ;BRANCH IF NOT
5481 011274 056512 000004 BIS I.INTC(R5),(R2) ;SPECIAL CLEAR (DL10 FOR ONE)
5482 011300 000401 BR 24$ ;CONTINUE
5483 011302 040412 22$: BIC R4,(R2) ;CLEAR INT BITS
5484 011304 006304 24$: ASL R4 ;MAKE NEW BIT POSITION
5485 011306 001406 BEQ CKINTE ;BRANCH IF DONE
5486 011310 000137 010764 JMP CKINT1 ;TEST NEW BIT
5487 011314 006304 CKINT7: ASL R4 ;MAKE NEW INT BIT POSITION
5488 011316 001402 BEQ CKINTE ;BRANCH IF NO NEW BIT POSITION
5489 011320 000137 010776 JMP CKINT3 ;BRANCH IF NEW BIT POSITION
5490 011324 062705 000006 CKINTE: ADD #I.RTRN,R5 ;FOR CORRECT RETURN
5491 011330 012604 MOV (SP)+,R4 ;
5492 011332 012603 MOV (SP)+,R3 ;
5493 011334 000205 RTS R5 ;RETURN
5494 ;
5495 011336 000000 CKFLAG: 0
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16-2
C11DTE.MAC 10-AUG-79 16:05 GENERAL INTERRUPT FIELDER FOR CHK11
5497 .SBTTL GENERAL INTERRUPT FIELDER FOR CHK11
5498 ;
5499 ;WE GET HERE FROM ALMOST ANY INTERRUPT WHILE IN CHK11
5500 ; THIS WILL RETURN THE VECTOR ADDRESS IN R0 -
5501 ; THIS IS DISCERNED FROM THE CONDITION CODE BITS AND THE
5502 ; ADDRESS AT WHICH THE CODE IS ENTERED
5503 ;
5504 011340 CHKINT:
5505 ;ENTRY FOR VECTORS 0-74
5506 011340 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5507 011344 004737 011460 JSR PC,1$
5508 011350 000000 .WORD 0
5509 000012 CHKISZ = .-CHKINT ;CHKINT BLOCK SIZE
5510 ;ENTRY FOR VECTORS 100-174
5511 011352 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5512 011356 004737 011460 JSR PC,1$
5513 011362 000100 .WORD 100
5514 ;ENTRY FOR VECTORS 200-274
5515 011364 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5516 011370 004737 011460 JSR PC,1$
5517 011374 000200 .WORD 200
5518 ;ENTRY FOR VECTORS 300-374
5519 011376 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5520 011402 004737 011460 JSR PC,1$
5521 011406 000300 .WORD 300
5522 ;ENTRY FOR VECTORS 400-474
5523 011410 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5524 011414 004737 011460 JSR PC,1$
5525 011420 000400 .WORD 400
5526 ;ENTRY FOR VECTORS 500-574
5527 011422 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5528 011426 004737 011460 JSR PC,1$
5529 011432 000500 .WORD 500
5530 ;ENTRY FOR VECTORS 600-674
5531 011434 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5532 011440 004737 011460 JSR PC,1$
5533 011444 000600 .WORD 600
5534 ;ENTRY FOR VECTORS 700-774
5535 011446 013700 177776 MOV PS,R0 ;GET PROCESSOR STATUS
5536 011452 004737 011460 JSR PC,1$
5537 011456 000700 .WORD 700
5538 ;-----------------------------------------------------------------
5539 011460 042700 177760 1$: BIC #^C17,R0 ;SAVE ONLY CONDITION CODE BITS
5540 011464 006300 ASL R0 ;MULTIPLY BY 4 (4 BYTES PER VECTOR)
5541 011466 006300 ASL R0 ;
5542 011470 063600 ADD @(SP)+,R0 ;MAKES VECTOR ADR (POPS JSR RET ADR)
5543 011472 012766 000340 000002 MOV #BR7,2(SP) ;DON'T TRAP AGAIN ON RETURN
5544 011500 000002 RTI ;
5545 ;
5546 011502 000001 CHKFLV: .BLKW 1 ;CURRENT FLOATING DEVICE VECTOR
5547 011504 000001 CHKFLD: .BLKW 1 ;CURRENT FLOATING DEVICE ADR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16-3
C11DTE.MAC 10-AUG-79 16:05 DEVICE DIAGNOSTICS
5549 .SBTTL DEVICE DIAGNOSTICS
5550 ;
5551 ; THE FOLLOWING ROUTINES HAVE NAMES OF THE FORM X--11, WHERE -- IS
5552 ; A DEVICE NAME (E.G. DH, DL, DTE2, KMC, ETC.) - THIS DEVICE NAME IS USED
5553 ; IN THE MACRO "DEVICE" TO GENERATE A POINTER TO THE APPROPRIATE
5554 ; DIAGNOSTIC ROUTINE - "DEVICE" CALLS CHKDEV, WHICH ACCESSES THE
5555 ; TABLE GENERATED BY "DEVICE" CONTAINING THIS POINTER, AND USES
5556 ; IT TO CALL THE PROPER DIAGNOSTIC
5557 ;
5558 ; DEVELOPERS: TRY TO KEEP THE DEVICE ROUTINE SETS IN
5559 ; ALPHABETICAL ORDER BY DEVICE NAME (E.G., ...DL11-A, DL11-E,
5560 ; DM11BB, DN11, ... DU11, DUP11, DZ11...) - ALSO NOTE THAT THE
5561 ; THE DEVICE NAMES ARE THE ABBREVIATIONS USED IN THE MACRO NAMSTR
5562 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16-4
C11DTE.MAC 10-AUG-79 16:05 CHECK CD20 HARDWARE
5564 .SBTTL CHECK CD20 HARDWARE
5565 ;
5566 .IIF NDF FTCD20,FTCD20=0
5567 001 .IF NE FTCD20
5568 011506 XCD11: ;
5569 011506 012737 011742 000004 MOV #30$,NXMVEC ;SET A LOCAL BUS ERROR HANDLER
5570 011514 005761 000006 TST CDST2(R1) ;LOOK FOR SECONDARY STATUS REGISTER
5571 011520 012737 015542 000004 MOV #CKBUST,NXMVEC ;IT'S THERE, THIS MUST BE A CD20 (NOT A CR11)
5572 011526 016146 000004 MOV CDBA(R1),-(SP) ;TO BE SURE,
5573 011532 012700 177777 MOV #-1,R0 ; FIND OUT IF WE CAN
5574 011536 074061 000004 XOR R0,CDBA(R1) ; FIDDLE THE "CDBA" BITS
5575 011542 022661 000004 CMP (SP)+,CDBA(R1) ; IF WE CAN'T,
5576 011546 001501 BEQ 40$ ; IT ISN'T A CD11/20
5577 011550 074061 000004 XOR R0,CDBA(R1) ; IF WE DID, PUT THE BITS BACK
5578 011554 052737 000001 006116 BIS #1,CHKCR+4 ;MAKE CR11 TEST FAIL IF TRIED
5579 011562 004537 010400 JSR R5,CHKBIT ;R/W CHECK ON CD.STS
5580 011566 000162 .WORD CD.IE!CD.XAD!CD.PAC
5581 011570 005721 TST (R1)+ ;UP TO CDCC
5582 011572 004537 010400 JSR R5,CHKBIT ;
5583 011576 177777 .WORD ALLBTS ;
5584 011600 005721 TST (R1)+ ;UP TO CDBA
5585 011602 004537 010400 JSR R5,CHKBIT ;
5586 011606 177777 .WORD ALLBTS ;
5587 011610 010401 MOV R4,R1 ;RESTORE CD.STS POINTER
5588 011612 032711 010000 BIT #CD.OFL,(R1) ;READER AVAILABLE?
5589 011616 001012 BNE 10$ ;YES
5590 011620 CK11SC 0,<not ready> ;
5591 011622 041411 031104 020060 .ASCIZ " CD20 off line"
011630 063157 020146 064554
011636 062556 000
5592 011642 .EVEN ;
5593 011642 000207 RTS PC ;
5594 ;
5595 011644 012721 000400 10$: MOV #CD.PWC,(R1)+ ;CLEAR READER
5596 011650 012721 177777 MOV #-1,(R1)+ ;SET TO READ ONE COLUMN
5597 011654 012721 160000 MOV #160000,(R1)+ ; INTO A NON-EXISTENT LOCATION
5598 011660 012714 000161 MOV #CD.IE!CD.XAD!CD.GO,(R4) ;START READER
5599 011664 005000 CLR R0 ;SET TIMER FOR READ WAIT
5600 011666 032714 100200 15$: BIT #CD.ERR!CD.RDY,(R4) ;LOOK FOR ERROR OR DONE
5601 011672 001017 BNE 20$ ;GOT ONE OF THEM
5602 011674 077004 SOB R0,15$ ;NOT YET
5603 011676 CK11SC <CKEPC!CKEDID>,<SLOW READ>
5604 011700 041411 031104 020060 .ASCIZ " CD20 time out on read"
011706 064564 062555 067440
011714 072165 067440 020156
011722 062562 062141 000
5605 011730 .EVEN ;
5606 011730 000207 RTS PC ;
5607 ;
5608 011732 004537 010626 20$: JSR R5,CHKINL ;CD20 SHOULD BE READY TO INTERRUPT
5609 011736 177777 .WORD 177777 ;
5610 011740 000207 RTS PC ;
5611 ;
5612 011742 012737 015542 000004 30$: MOV #CKBUST,NXMVEC ;RESTORE BUS ERROR VECTOR
5613 011750 022626 CMP (SP)+,(SP)+ ;POP TRAP
5614 011752 40$: CK11SC 0,<NOT CD20> ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 16-5
C11DTE.MAC 10-AUG-79 16:05 CHECK CD20 HARDWARE
5615 011754 061411 071157 062562 .ASCIZ " correction - reader is NOT a CD20"
011762 072143 067551 020156
011770 020055 062562 062141
011776 071145 064440 020163
012004 047516 020124 020141
012012 042103 030062 000
5616 012020 .EVEN ;
5617 012020 000207 RTS PC ;
5618 000 .ENDC ;NE FTCD20
5619 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17
C11DTE.MAC 10-AUG-79 16:05 CHECK CD20 HARDWARE
5621
5622 .SBTTL CHECK CR11 HARDWARE
5623 ;
5624 ;CALL MOV #<VECTOR ADR>,R3
5625 ; MOV #<HDW ADR>,R4
5626 ; MOV #<HDW ADR>,R1
5627 ; JSR PC,XCR11
5628 ;
5629 .IIF NDF FTCR11,FTCR11=0
5630 001 .IF NE FTCR11
5631 012022 016146 000004 XCR11: MOV CDBA(R1),-(SP) ;CHECK TO SEE
5632 012026 012700 177777 MOV #-1,R0 ; IF WE CAN
5633 012032 074061 000004 XOR R0,CDBA(R1) ; FIDDLE THE BITS IN
5634 012036 022661 000004 CMP (SP)+,CDBA(R1) ; THE BUFFER ADDRESS CSR
5635 012042 001423 BEQ 10$ ;NO - READER IS REAL
5636 012044 074061 000004 XOR R0,CDBA(R1) ;YES - SET THE BITS BACK
5637 012050 CK11SC 0,<NOT CR11> ;
5638 012052 067411 070157 020163 .ASCIZ " oops - reader is NOT a CR11"
012060 020055 062562 062141
012066 071145 064440 020163
012074 047516 020124 020141
012102 051103 030461 000
5639 012110 .EVEN ;
5640 012110 000207 RTS PC ;
5641 ;
5642 012112 052737 000001 006062 10$: BIS #1,CHKCD+4 ;MAKE CD20 TEST FAIL IF TRIED
5643 012120 004537 010400 JSR R5,CHKBIT ;CHECK HARDWARE BITS
5644 012124 000102 .WORD CR.EJT!CR.INE ;
5645 012126 032714 001000 BIT #CR.BSY,(R4) ;SEE IF BUSY (MAYBE POWER OFF)
5646 012132 001414 BEQ 2$ ;BRANCH IF COMMAND CAN BE GIVEV
5647 012134 CK11SC 0,< CR11 not Rdy>
5648 012136 041440 030522 020061 .ASCIZ \ CR11 not Rdy\
012144 067556 020164 062122
012152 000171
5649 .EVEN
5650 012154 012737 000006 016266 MOV #CR.LVL,CHKCHR+CKPI ;GIVE DEFAULT LEVEL
5651 012162 000207 RTS PC ;
5652 ;
5653 012164 012714 000101 2$: MOV #CR.INE!CR.CFD,(R4) ;SET INT ENABLE AND READ
5654 ; TO FORCE ANY KIND OF INT
5655 012170 005000 CLR R0 ;FOR TIMING OUT
5656 012172 032714 100200 1$: BIT #CR.ERR!CR.CDN,(R4) ;SEE IF AN INT CONDITION EXISTS
5657 012176 001015 BNE 3$ ;IF NOT, THEN WAIT.
5658 012200 077004 SOB R0,1$ ;START TIMING OUT
5659 012202 042714 000100 BIC #CR.INE,(R4) ;DISABLE CR11 INT ENABLE
5660 012206 CK11SC <CKEPC!CKEDID>,<CR11 Timed Out>,<CR11 NOT RESPONDING>
5661 012210 051103 030461 052040 .ASCIZ \CR11 Timed Out\
012216 066551 062145 047440
012224 072165 000
5662 012230 .EVEN ;
5663 012230 000207 RTS PC ;
5664 ;
5665 012232 004537 010626 3$: JSR R5,CHKINL ;FIND INT LEVEL
5666 012236 177777 -1 ;FOR TIME-OUT LOOP
5667 012240 042714 000100 BIC #CR.INE,(R4) ;DISABLE INT FOR CR11
5668 012244 000207 RTS PC ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17-1
C11DTE.MAC 10-AUG-79 16:05 CHECK CR11 HARDWARE
5669 000 .ENDC ;NE FTCR11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17-2
C11DTE.MAC 10-AUG-79 16:05 CHECK DH11 HDW
5671 .SBTTL CHECK DH11 HDW
5672 .IIF NDF NDH11,NDH11=0 ;BY DEFAULT NO DH11S
5673 ;
5674 ;CALL MOV #<VECTOR ADR>,R3
5675 ; MOV #<HDW ADR>,R4
5676 ; MOV #<HDW ADR>,R1
5677 ; JSR PC,XDH11
5678 ;
5679 .IIF NDF FTDH11,FTDH11=0
5680 001 .IF NE FTDH11
5681 XDH11: MOV R3,-(SP) ;SAVE REGISTER
5682 JSR R5,CHKBIT ;CHECK RD/WRT BITS
5683 131177 ;READ/WRITE BITS
5684 TST (R1)+ ;ADVANCE TO NXT REC CHAR REG
5685 TST (R1)+ ;ADVANCE TO LINE PARAMETER REG(XX4)
5686 JSR R5,CHKBIT ;CHECK RD/WRT BITS
5687 177767 ;READ/WRITE BITS
5688 TST (R1)+ ;ADVANCE TO CURRENT ADR REG(XX6)
5689 CLR R2 ;START CHECK AT LINE 0
5690 1$: JSR R5,CHKBIT ;CHECK RD/WRT BITS
5691 -1 ;READ/WRITE BITS
5692 INC R2 ;NEXT LINE TO CHECK
5693 CMP R2,#17 ;DONE
5694 BLE 1$ ;CHECK LINES 0-17
5695 TST (R1)+ ;ADVANCE TO BYTE COUNT REG(X10)
5696 CLR R2 ;START CHECK AT LINE 0
5697 2$: JSR R5,CHKBIT ;CHECK RD/WRT BITS
5698 -1 ;READ/WRITE BITS
5699 INC R2 ;NEXT LINE TO CHECK
5700 CMP R2,#17 ;ALL LINES CHECKED?
5701 BLE 2$ ;CHECK ALL 20 LINES
5702 TST (R1)+ ;ADVANCE TO BAR REG(XX12)
5703 TST (R1)+ ;ADVANCE TO BREAK REG(X14)
5704 JSR R5,CHKBIT ;CHECK BITS
5705 -1 ;READ/WRITE BITS
5706 TST (R1)+ ;ADVANCE TO SILO STATUS REG(X16)
5707 JSR R5,CHKBIT ;CHECK READ/WRITE BITS
5708 77
5709 $CKINT R4,R4,<DH.RIE!DH..MM>,<DH..RI>
5710 $CKINT ,,<DH.SIE!DH..MM>,<DH..SI>
5711 ADD #4,CHKCHR+CKDV ;MAKE EXPECTED VECTOR FOR XMIT
5712 $CKINT ,,<DH.TIE>,<DH..TI>
5713 MOV R3,CHKCHR+CKDV ;PUT VECTOR ADDRESS IN TABLE
5714 ;
5715 002 .IF NE NDH11 ;DON'T CHECK HARDWARE NOT TO BE USED
5716 CKDH1A: MOV R3,DHXMII ;ADR TO COME TO ON XMIT INT
5717 ADD #4,DHXMII ;
5718 MOV #CKBLK,R0 ;LOAD A BUFFER WITH COUNT PATTERN
5719 MOV #400,R1 ;LOAD 400 CHARACTERS
5720 CLR R2 ;START WITH 0
5721 1$: MOVB R2,(R0)+ ;STORE THE COUNT PATTERN
5722 INCB R2 ;NEW PATTERN
5723 SOB R1,1$ ;BUFFER LOADED?
5724 CLR R3 ;START WITH LINE 0
5725 MOV #1,R2 ;LINE BIT (LINE 0)
5726 CKDH1B: CLR DHDATA ;FIRST RCV'D SHOULD BE 0
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17-3
C11DTE.MAC 10-AUG-79 16:05 CHECK DH11 HDW
5727 .IIF NDF NTRIB,NTRIB=0
5728 003 .IF NE NTRIB
5729 ;IF TRIBUTARY LINES IN USE
5730 ;USE MINIMAL TEST TO AVOID INTERFERRENCE
5731 ;WITH THE FUNCTIONAL STATIONS ON LINE
5732 ;THE PROBLEM ARISES BECAUSE MAINTAINANCE
5733 ;MODE ON THE DH11 DRIVES THE MODEM LINES!!!
5734 MOV #-1,R1
5735 DEC DHDATA
5736 MOVB R1,CKBLK
5737 .IFF
5738 MOV #-400,R1
5739 002 .ENDC ;.IF NE NTRIB
5740 BIS #DH..MC,(R4) ;CLEAR THE DH
5741 BIS #DH..MM!DH.SIE!DH.TIE!DH.RIE,(R4) ;ENABLE INTS
5742 BIS R3,(R4) ;LOAD THE LINE NUMBER
5743 MOV #B6!B8!B9!B10!B12!B13!DH.2SB!DH.CL8!DH.PEN!DH..OP,DH.LPR(R4)
5744 ;SEL 8BIT,9600,PAR,ODD
5745 MOV R1,DH.BCR(R4) ;LENGTH TO XMIT
5746 MOV #CKBLK,DH.CAR(R4) ;ADR WHERE THE DATA IS
5747 MOV #4,DH.SSR(R4) ;ALARM LEVEL TO 4
5748 CKDH1E: CLR R0 ;INT RETURNS ADR IN HERE
5749 CLR R1 ;TIMER
5750 MOV R2,DH.BAR(R4) ;SET LINE ACTIVE
5751 2$: CLR PS ;LEVEL TO 0 FOR INTS
5752 NOP ;LET AN INTERRUPT HAPPEN
5753 SPL 7 ;DON'T LET ONE HAPPEN
5754 CMP R0,CHKCHR+CKDV ;SEE IF RCV INT YET
5755 BEQ 4$ ;BRANCH IF RCV INT
5756 CMP R0,DHXMII ;SEE IF XMIT INT
5757 BEQ 5$ ;BRANCH IF XMIT INT
5758 TST R0 ;SEE IF ANY INTERRUPT
5759 BEQ 3$ ;BRANCH IF NO INTERRUPT
5760 CKSERR <CHKCHR+CKDV>,R0,R3
5761 CK11SC <CKEPC!CKEGB!CKEDID>,<Ill Int>,<ILLEGAL INT WHILE WAITING FOR DH11 INT>
5762 .ASCIZ \Ill Int\<377>
5763 .EVEN
5764 JMP CKDH1D ;DON'T TEST ANY MORE
5765 3$: SOB R1,2$ ;TIME-OUT
5766 CK11SC <CKEPC!CKEDID>,<No Int>,<NO DH11 INTERRUPT>
5767 .ASCIZ \No Int\<377>
5768 .EVEN
5769 JSR PC,CKDHPL ;REPORT LINE NUMBER
5770 JMP CKDH1D ;DON'T TEST ANY MORE
5771 5$: BIT #DH.NXM,(R4) ;SEE IF NXM
5772 BEQ 16$ ;BRANCH IF NO NXM
5773 CK11SC <CKEPC!CKEDID>,<Xmit Nxm>,<TRANSMIT NXM ON DH>
5774 .ASCIZ \Xmit Nxm\<377>
5775 .EVEN
5776 JSR PC,CKDHPL ;REPORT LINE NUMBER
5777 BR CKDH1D ;DON'T TEST ANY MORE
5778 16$: BIT #DH..TI,(R4) ;BETTER HAVE XMIT INT
5779 BNE 17$ ;BRANCH IF WE DO
5780 CK11SC <CKEPC!CKEDID>,<Ill Xmit Int>,<INT TO XMIT BUT FOR NO REASON>
5781 .ASCIZ \Ill Xmit Int\<377>
5782 .EVEN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17-4
C11DTE.MAC 10-AUG-79 16:05 CHECK DH11 HDW
5783 JSR PC,CKDHPL ;REPORT LINE NUMBER
5784 BR CKDH1D ;DON'T TEST ANY MORE
5785 17$: BIC #DH..TI,(R4) ;CLEAR XMIT INT
5786 BR CKDH1E ;
5787 4$: BIT #DH..SI,(R4) ;SEE IF SILO OVERFLOW
5788 BEQ CKDH1C ;BRANCH IF SILO HAD ROOM
5789 CK11SC <CKEPC!CKEDID>,<Silo Full>,<SILO OVERFLOW>
5790 .ASCIZ \Silo Full\<377>
5791 .EVEN
5792 JSR PC,CKDHPL ;REPORT LINE NUMBER
5793 BR CKDH1D ;DON'T TEST ANY MORE
5794 CKDH1C: BIC #DH..RI,(R4) ;CLEAR RCV INT (MUST FOR MAINT MODE)
5795 MOV DH.NRC(R4),R0 ;GET STUFF FROM SILO
5796 BIT #DH.DOV!DH..FE!DH..PE,R0 ;SEE IF ANY ERROR BITS WITH DATA
5797 BEQ 7$ ;BRANCH IF NO ERRORS WITH THE DATA
5798 MOV DHDATA,-(SP) ;MAKE THE GOOD
5799 MOV R3,-(SP) ;PUT LINE # IN
5800 SWAB (SP) ;GET IT IN THE (LB)
5801 BIS (SP)+,(SP) ;LINE # NOW IN GOOD
5802 BIS #DH.VDP,(SP) ;GOOD INCLUDES VALID DATA PRESENT
5803 MOV R0,-(SP) ;THE BAD
5804 MOV R3,-(SP) ;THE LINE UNDER TEST
5805 CK11SC <CKEGB!CKEPC!CKEDID>,<Data Err Bit Set>,<ERROR BITS WITH THE DATA>
5806 .ASCIZ \Data Err Bit Set\<377>
5807 .EVEN
5808 BR CKDH1D ;DON'T TEST ANY MORE
5809 7$: BIT #DH.VDP,R0 ;SEE IF VALID DATA
5810 BNE 8$ ;BRANCH IF VALID DATA
5811 CK11SC <CKEPC!CKEDID>,<Not Valid Data>,<NOT VALID DATA BIT SET>
5812 .ASCIZ \Not Valid Data\<377>
5813 .EVEN
5814 JSR PC,CKDHPL ;REPORT LINE NUMBER
5815 BR CKDH1D ;DON'T TEST ANY MORE
5816 8$: BIC #B15!B14!B13!B12,R0 ;CLEAR DATA ERROR BITS
5817 SWAB R0 ;FOR CHECKING LINE #
5818 CMPB R0,R3 ;SEE IF LINE #OK
5819 BEQ 9$ ;BRANCH IF IT IS
5820 MOV R3,-(SP) ;LEGAL LINE NUMBER
5821 CLR -(SP) ;0 FOR BYTE MOVE
5822 MOVB R0,(SP) ;THE ILLEGAL LINE NUMBER
5823 MOV R3,-(SP) ;LINE UNDER TEST
5824 CK11SC <CKEGB!CKEPC!CKEDID>,<Ill Line Num>,<ILLEGAL LINE NUMBER>
5825 .ASCIZ \Ill Line Num\<377>
5826 .EVEN
5827 BR CKDH1D ;DON'T TEST ANY MORE
5828 9$: SWAB R0 ;FOR CHECKING THE DATA
5829 CMPB R0,DHDATA ;SEE IF CORRECT DATA
5830 BEQ 10$ ;BRANCH IF DATA OK
5831 MOV DHDATA,-(SP) ;GOOD DATA
5832 CLR -(SP) ;FOR BYTE MOVE
5833 MOVB R0,(SP) ;THE BAD DATA
5834 MOV R3,-(SP) ;THE LINE #
5835 CK11SC <CKEGB!CKEPC!CKEDID>,<Data Err>,<DATA ERROR>
5836 .ASCIZ \Data Err\<377>
5837 .EVEN
5838 BR CKDH1D ;DON'T TEST ANY MORE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 17-5
C11DTE.MAC 10-AUG-79 16:05 CHECK DH11 HDW
5839 10$: INCB DHDATA ;NEW PATTERN EXPECTED
5840 BEQ 11$ ;BRANCH IF LINE DONE
5841 JMP CKDH1E ;
5842 ;
5843 11$:
5844 CKDH1D: INC R3 ;NEW LINE NUMBER
5845 ASL R2 ;NEW BIT FOR NEXT LINE
5846 BEQ CKDH1F ;BRANCH IF TEST ALL DONE
5847 JMP CKDH1B ;
5848 ;
5849 CKDHPL: CK11SC 0,< Line #>
5850 .ASCIZ \ Line #\
5851 .EVEN
5852 MOV R3,R0 ;LINE NUMBER TO R0 FOR CALL
5853 JSR PC,CKTOCT ;PRINT LINE NUMBER
5854 RTS PC ;RETURN
5855 ;
5856 .IFF ;NE NDH11
5857 10$: JSR R0,CKTSTR
5858 .ASCIZ \ SKIPPING TRANSMISSION CHECK\
5859 .EVEN
5860 MOV #377+<<.+6-10$>/2>,10$ ;SHUT OFF SKIPPING COMMENT
5861 001 .ENDC ;NE NDH11
5862 ;
5863 CKDH1F: BIS #DH..MC,(R4) ;MASTER CLEAR
5864 MOV (SP)+,R3 ;GET R3 BACK
5865 RTS PC ;DH CHARACTER TEST DONE
5866 DHDATA: 0
5867 DHXMII: 0
5868 000 .ENDC ;NE FTDH11
5869 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18
C11DTE.MAC 10-AUG-79 16:05 CHECK DH11 HDW
5871
5872 .SBTTL CHECK DL11-A HDW
5873 ;
5874 .IIF NDF FTDL1A,FTDL1A=0
5875 001 .IF NE FTDL1A
5876 XDL.A11:
5877 RTS PC
5878 000 .ENDC ;NE FTDL1A
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-1
C11DTE.MAC 10-AUG-79 16:05 CHECK DL11-E HDW
5880 .SBTTL CHECK DL11-E HDW
5881 ;
5882 ;CALL MOV #<VECTOR ADR>,R3
5883 ; MOV #<HDW ADR>,R4
5884 ; MOV #<HDW ADR>,R1
5885 ; JSR PC,XDL11
5886 ;
5887 .IIF NDF FTDL1E,FTDL1E=0
5888 001 .IF NE FTDL1E
5889 012246 XDL.E11:
5890 012246 010346 MOV R3,-(SP) ;
5891 012250 004537 010400 JSR R5,CHKBIT ;CHECK READ/WRITE BITS
5892 012254 000156 000156 ;
5893 012256 005721 TST (R1)+ ;ADVANCE TO RECEIVE DATA REGISTER
5894 012260 005721 TST (R1)+ ;ADVANCE TO TRANSMIT STATUS REGISTER
5895 012262 004537 010400 JSR R5,CHKBIT ;
5896 012266 000105 000105 ;
5897 012270 012603 MOV (SP)+,R3 ;
5898 012272 000207 RTS PC ;
5899 000 .ENDC ;NE FTDL1E
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-2
C11DTE.MAC 10-AUG-79 16:05 CHECK DM11BB HDW
5901 .SBTTL CHECK DM11BB HDW
5902 ;
5903 ;CALL MOV #<VECTOR ADR>,R3
5904 ; MOV #<HDW ADR>,R4
5905 ; MOV #<HDW ADR>,R1
5906 ; JSR PC,XDM11
5907 ;
5908 .IIF NDF FTDM11,FTDM11=0
5909 001 .IF NE FTDM11
5910 XDM11: JSR R5,CHKBIT ;CHECK FOLLOWING BITS
5911 DM.ALI!DM.DNE!DM..MM!DM.ENB!DM.IEN
5912 $CKINT ,R4,<DM.IEN>,<DM.DNE>
5913 JSR PC,CKDMCS ;CLEAR SCAN AND CHECK IT CLEARED
5914 BIS #DM.ENB,(R4) ;ENABLE SCAN
5915 BIT #DM.BSY,(R4) ;SEE IF BSY SET
5916 BNE 1$ ;BRANCH IF IT DID
5917 CK11SC <CKEPC!CKEDID>,<Busy did not Set>,<BUSY DID NOT SET>
5918 .ASCIZ \Busy did not Set\<377>
5919 .EVEN
5920 1$: JSR PC,CKDMCS ;CLEAR SCAN AND CHECKED IT CLEARED
5921 RTS PC
5922 ;
5923 .IIF NDF DM.TIM,DM.TIM=40. ;DM11BB SETTLE TIME IN MEMORY CYCLES
5924 ;
5925 CKDMCS: MOV #DM.DNE!DM..MM!DM.IEN!DM.ENB!DM.ALI,R2
5926 ;BITS WHICH SHOULD GET CLEARED
5927 MOV #<DM.TIM/5>,R0 ;TIME OUT FOR BUSY
5928 BIS #DM.SCN,(R4) ;CLEAR SCAN
5929 5$: BIT #DM.BSY,(R4) ;SEE IF BUSY CLEAR YET
5930 BEQ 2$ ;BRANCH IF IT IS
5931 SOB R0,5$ ;TIME OUT WAITING FOR BSY TO CLEAR
5932 CK11SC <CKEPC!CKEDID>,<Busy did not Clear>,<CLEARING SCAN FAILED TO CLEAR BUSY>
5933 .ASCIZ \Busy did not Clear\<377>
5934 .EVEN
5935 2$: BIT R1,(R4) ;SEE IF THEY ARE ALL CLEAR
5936 BEQ 3$ ;BRANCH IF THEY ARE ALL CLEAR
5937 MOV (R4),R0 ;GET DM11 STATUS
5938 COM R2 ;MASK OUT NON INTERESTING BITS
5939 BIC R2,R0 ;
5940 CLR -(SP) ;GOOD
5941 MOV R0,-(SP) ;BAD
5942 MOV R4,-(SP) ;ADR
5943 CK11SC <CKEGB!CKEPC!CKEDID>,<Clear Scan Error>,<CLR SCAN FAILED TO CLEAR A BIT>
5944 .ASCIZ \Clear Scan Error\<377>
5945 .EVEN
5946 3$: RTS PC
5947 000 .ENDC ;NE FTDM11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-3
C11DTE.MAC 10-AUG-79 16:05 CHECK DN11 HDW
5949 .SBTTL CHECK DN11 HDW
5950 ;
5951 ;CALL MOV #<VECTOR ADR>,R3
5952 ; MOV #<HDW ADR>,R4
5953 ; MOV #<HDW ADR>,R1
5954 ; JSR PC,XDN11
5955 ;
5956 .IIF NDF FTDN11,FTDN11=0
5957 001 .IF NE FTDN11
5958 XDN11: JSR R5,CHKBIT ;CHECK BITS
5959 007714 ;READ/WRITE BITS
5960 $CKINT ,R4,<DN..IE!DN..ME>,<DN.DNE>
5961 RTS PC
5962 000 .ENDC ;NE FTDN11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-4
C11DTE.MAC 10-AUG-79 16:05 CHECK DP11 HDW
5964 .SBTTL CHECK DP11 HDW
5965 ;
5966 ;CALL MOV #<VECTOR ADR>,R3
5967 ; MOV #<HDW ADR>,R4
5968 ; MOV #<HDW ADR>,R1
5969 ; JSR PC,XDP11
5970 ;
5971 .IIF NDF FTDP11,FTDP11=0
5972 001 .IF NE FTDP11
5973 XDP11: JSR R5,CHKBIT ;CHECK BITS
5974 3707 ;READ/WRITE BITS
5975 TST (R1)+ ;ADV TO REC BUF/SYN REG
5976 ;;;; JSR R5,CHKBIT ;CHECK BITS
5977 ;;;; 000000 ;READ/WRITE BITS
5978 TST (R1)+ ;ADV TO XMT STATUS REG
5979 JSR R5,CHKBIT ;
5980 000143 ;READ/WRITE BITS
5981 ;;;; TST (R1)+ ;ADV TO XMT BUFFER
5982 ;;;; JSR R5,CHKBIT ;
5983 ;;;; 000000 ;READ/WRITE BITS
5984 $CKINT R4,R4,B6,B7 ;
5985 RTS PC ;
5986 000 .ENDC ;NE FTDP11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-5
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
5988 .SBTTL CHECK DQ11 HDW
5989 ;
5990 ;CALL MOV #<VECTOR ADR>,R3
5991 ; MOV #<HDW ADR>,R4
5992 ; MOV #<HDW ADR>,R1
5993 ; JSR PC,XDQ11
5994 ;
5995 .IIF NDF FTDQ11,FTDQ11=0
5996 001 .IF NE FTDQ11
5997 XDQ11:
5998 002 .IF NDF,FT.D75 ;ONLY ASSEMBLE DQ IF NOT DC75
5999 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
6000 110373 ;READ/WRITE BITS
6001 TST (R1)+ ;ADVANCE TO XMT REGISTER
6002 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
6003 101772 ;READ/WRITE BITS
6004 TST (R1)+ ;ADVANCE TO ERR REGISTER
6005 JSR R5,CHKBIT ;CHECK WE CAN SET BITS
6006 017477 ;READ/WRITE BITS
6007 TST (R1)+ ;ADVANCE TO SHADOW REGISTERS
6008 JSR R5,CHKBIT
6009 -1
6010 ;
6011 ;DETERMINE DQ11 INTERRUPT LEVEL
6012 ;
6013 30$: $CKINT R4,R4,DQ.RIE,<DQ.RDP!DQ.RDS>
6014 MOV CHKCHR+CKDV,-(SP) ;SAVE VECTOR
6015 ADD #4,CHKCHR+CKDV ;MAKE VECTOR B
6016 CMP (R1)+,(R2)+ ;POINT TO XMIT REG
6017 $CKINT ,,<DQ.XIE>,<DQ.XDS!DQ.XDP>
6018 TST (R2)+ ;ADVANCE INT BIT POINTER TO ERR REG
6019 $CKINT ,,<DQ.EIE>,<DQ.VRC!DQ.XLE!DQ.RLE!DQ.XNX!DQ.RNX!DQ.XCL!DQ.RCL>
6020 MOV (SP)+,CHKCHR+CKDV ;RESTORE VECTOR A VECTOR
6021 ;
6022 ;ENTRY BECAUSE DQ11 TRAPPED TO RIGHT LOCATION
6023 ; CHECK WE CAN CLEAR THE DATASET FLAG
6024 ;
6025 32$: MOV #5,R0 ;PATIENCE COUNTER ON DATASET FLAG
6026 31$: BIC #DQ.DSF,2(R4) ;CLEAR DATASET FLAG
6027 CMP (SP),(SP) ;TIME WASTER ONLY
6028 BIT #DQ.DSF,2(R4) ;CHECK TO SEE IF DATASET FLAG STILL OFF
6029 BEQ CHKDQE
6030 SOB R0,31$
6031 CK11SC <CKEDID!CKEPC>,<Can't Clr Dataset Flg>,< CAN'T CLEAR DATASET FLAG>
6032 .ASCIZ \Can't Clr Dataset Flg\<377>
6033 .EVEN
6034 .PAGE
6035 ;CHECK THAT ERROR BITS WORK
6036 ;
6037 CHKDQE: JSR PC,CKDQCL ;CLEAR ENTIRE DQ
6038 MOV #40,R2 ;FIRST BIT TO TRY
6039 1$: BIS R2,4(R4) ;SET AN ERROR BIT
6040 MOV 4(R4),R0 ;GET ERR REG
6041 BPL 2$ ;BRANCH IF B15 ERR NOT SET
6042 BIT R2,R0 ;SEE IF THE BIT SET
6043 BNE 3$ ;BRANCH IF B15 SET AND ERR BIT SET
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 18-6
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6044 2$: MOV R2,-(SP) ;SAVE GOOD
6045 BIS #B15,(SP) ; ALSO MUST INCLUDE BIT 15.
6046 JSR PC,CKDQES ;PUT BAD AND REG # ON STACK
6047 CK11SC <CKEDID!CKEPC!CKEGB>,<Bit not Set>,<CAN'T SET BIT>
6048 .ASCIZ \Bit not Set\<377>
6049 .EVEN
6050 3$: BIC R2,4(R4) ;CLEAR BIT JUST SET, SHOULD ALSO CLEAR B15.
6051 MOV 4(R4),R0 ;SAVE RESULTS
6052 BMI 4$ ;BRANCH IF B15 SET (IT SHOULDN'T BE)
6053 BIT R2,R0 ;SEE IF THE BIT IS CLEAR
6054 BEQ 5$ ;BRANCH IF ITS 0
6055 4$: CLR -(SP) ;WHAT GOOD SHOULD BE
6056 JSR PC,CKDQES ;SAVE BD, AND REG # ON STACK
6057 CK11SC <CKEDID!CKEPC!CKEGB>,<Bit not Clear>,<COULDN'T CLEAR BIT>
6058 .ASCIZ \Bit not Clear\<377>
6059 .EVEN
6060 5$: ASR R2 ;ALL DONE?
6061 BNE 1$ ;BRANCH BACK IF ANOTHER BIT TO TEST
6062 BR CHKDQS ;GO CHECK SECONDARY REGS
6063 ;
6064 CKDQES: MOV (SP)+,R1 ;SAVE RETURN PC
6065 MOV R0,-(SP) ;PUT C(ERR REG) ON STACK
6066 MOV R2,-(SP) ;BIT WE TESTED
6067 BIS #B15,(SP) ;INCLUDE ERROR BIT
6068 COM (SP) ;
6069 BIC (SP)+,(SP) ;KEEP ONLY THE INTERESTING BITS
6070 MOV R4,-(SP) ;SAVE REG ADR
6071 ADD #4,(SP) ;MAKE IT THE ERROR REG
6072 JMP (R1) ;RETURN
6073 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 19
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6075
6076 ; CHECK WE CAN LOAD VARIOUS DQ11 SECONDARY REGISTERS
6077 ;
6078 CHKDQS: CLR R0 ;1ST TRY TO CLEAR ALL SECONDARY REGISTERS
6079 JSR PC,60$ ;GO DO IT
6080 MOV #-1,R0 ;NOW TRY TO SET ALL SECONDARY REGISTERS
6081 JSR PC,60$
6082 MOV #1,R0 ;BIT TO LOAD
6083 10$: JSR PC,60$ ;TRY TO LOAD BIT
6084 ASL R0 ;SHIFT BIT
6085 BNE 10$ ;BRANCH IF STILL HAVE BITS TO TEST
6086 MOV #RG.SYN,R1 ;NOW TRY TO LOAD REG WITH REG #
6087 12$: MOV R1,R0 ;DATA = REGISTER NUMBER
6088 JSR PC,CKDQSL ;TRY TO LOAD REGISTER
6089 CMP #RG.SYN,R1
6090 BNE 14$
6091 DEC R1 ;SKIP REG 10
6092 14$: DEC R1 ;ON TO NEXT REGISTER
6093 BPL 12$
6094 MOV #RG.SYN,R1 ;NOW CHECK IT LOADED
6095 16$: MOV R1,R0 ;DATA SHOULD BE SAME
6096 JSR PC,CKDQSR ;CHECK DATA STILL THERE
6097 CMP #RG.SYN,R1 ;WAS THIS THE FIRST REG ?
6098 BNE 18$
6099 DEC R1 ;YES SO SKIP REG 10
6100 18$: DEC R1 ;ON TO NEXT REGISTER
6101 BPL 16$ ;DO REST IF ANY
6102 MOV #RG.MSC,R1 ;NOW TEST MISC REG
6103 CLR R0 ;TRY TO CLEAR REGISTER
6104 JSR PC,CKDQSL ;TRY TO LOAD IT
6105 MOV #2,R0 ;TEST STEP-MODE BIT
6106 JSR PC,CKDQSL
6107 MOV #10,R0 ;TEST TEST-LOOP BIT
6108 JSR PC,CKDQSL
6109 CLR R0
6110 JSR PC,CKDQSL ;CLEAR MISC REG
6111 BR CHKDQL ;DO A LOOP BACK TEST
6112 ;
6113 60$: MOV #RG.SYN,R1 ;1ST REGISTER TO LOAD
6114 62$: JSR PC,CKDQSL
6115 CMP #RG.SYN,R1 ;DID WE JUST CHECK THE SYN REG ?
6116 BNE 64$
6117 DEC R1 ;YES SO SKIP A REG
6118 64$: DEC R1 ;ON TO THE NEXT REG
6119 BPL 62$
6120 RTS PC ;YES
6121 ;
6122 ; LOAD A DQ11 2NDARY REGISTER
6123 ; CALL MOV #DATA,R0
6124 ; MOV #REG,R1
6125 ; JSR PC,CKDQSL
6126 CKDQSL: BIS #DQ.MBM,R1
6127 MOVB R1,5(R4) ;SELECT THE REGISTER
6128 MOV R0,6(R4) ;LOAD THE DATA
6129 CKDQSR: BIS #DQ.MBM,R1
6130 MOVB R1,5(R4) ;SELECT THE REGISTER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 19-1
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6131 BIC #DQ.MBM,R1
6132 CMP R0,6(R4) ;CHECK TO SEE IF WE LOADED IT
6133 BNE 10$
6134 RTS PC
6135 10$: MOV R0,-(SP) ;SAVE GOOD DATA
6136 MOV 6(R4),-(SP) ;SAVE BAD DATA
6137 MOV R1,-(SP) ;SAVE 2ND REG #
6138 CK11SC <CKEDID!CKEPC!CKEGB>,<Secondary Reg Err>,<SECONDARY REG ERROR>
6139 .ASCIZ \Secondary Reg Err\<377>
6140 .EVEN
6141 RTS PC ;RETURN
6142 .PAGE
6143 ; DISCOVER WHAT THE SPECIAL CHARACTERS ARE IN THE DQ11.
6144 ;
6145 CHKDQL:
6146 003 .IF NE SPCVFY ;CHECK FOR SPECIAL CHARS ONLY IF USED
6147 CLR CHKCHR+CKFLG ;CLEAR WHERE WE COUNT SPECIAL CHARS
6148 MOV R2,-(SP) ;SAVE R2
6149 MOV R3,-(SP) ;SAVE R3 (VECTOR)
6150 MOV R5,-(SP) ;SAVE R5
6151 MOVB #255,CHKXBF+2 ;SOMETHING OTHER THAN SYNC (226)
6152 CLR R3 ;START WITH CHARACTER 0
6153 CKDQLP:
6154 1$: JSR PC,CKDQCL ;CLEAR DQ
6155 MOV #CHKRBF,R5 ;ADDRESS TO LOAD
6156 MOV #<<CHKRBF-CHKXBF>/2>,R1 ;LENGTH TO LOAD
6157 CLR R2 ;DATA TO LOAD
6158 JSR PC,CKLDBF ;LOAD BUFFER
6159 MOV #226*401,CHKXBF ;SYNC CHAR WE USE
6160 MOVB R3,CHKXBF+3 ;PUT CHAR IN XMIT BUFFER
6161 DQREGS SYN,(R4) ;SYNC REG
6162 MOV #226*401,6(R4) ;PUT SYNC CHAR IN REG
6163 DQREGS MSC,(R4) ;MISC REG
6164 MOV #4010,6(R4) ;LOAD MISC REG
6165 DQREGS PTA,(R4) ;PRI XMIT ADDR REG
6166 MOV #CHKXBF,6(R4) ;LOAD XMIT PRI ADDR REG
6167 DQREGS STA,(R4) ;SEC XMIT ADR REG
6168 MOV #CHKXBF,6(R4) ;LOAD XMIT SEC ADDR REG
6169 DQREGS PRA,(R4) ;PRIMARY RECEIVE ADDR REG
6170 MOV #CHKRBF,6(R4) ;LOAD REC ADDR REG PRI
6171 DQREGS SRA,(R4) ;SEC REC ADR REG
6172 MOV #CHKRBF,6(R4) ;LOAD REC ADDR REG SEC
6173 DQREGS PTC,(R4) ;PRI XMIT CC
6174 MOV #-4,6(R4) ;LOAD PRI XMIT CC
6175 DQREGS STC,(R4) ;SEC XMIT CC
6176 MOV #-2,6(R4) ;LOAD SEC XMIT CC
6177 DQREGS PRC,(R4) ;PRI REC CC
6178 MOV #-2,6(R4) ;LOAD PRI REC CC
6179 DQREGS SRC,(R4) ;SEC REC CC
6180 MOV #-2,6(R4) ;LOAD SEC REC CC
6181 CLR R1 ;CLEAR SAVED STATUS
6182 MOV #DQ.RGO!DQ.CIE!DQ.RIE,(R4) ;TELL REC TO GO WITH IE
6183 MOV #DQ.XGO,2(R4) ;TELL XMIT TO GO
6184 CKDQWA: CLR R5 ;FOR TIME-OUT
6185 CLR R0 ;UPON INT R0 WILL GET VECTOR
6186 CLR PS ;LET INT HAPPEN
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 19-2
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6187 1$: TST R0 ;SEE IF AN INTERRUPT
6188 BNE 2$ ;BRANCH IF ONE (R0 IS NON 0)
6189 SOB R5,1$ ;TIME OUT
6190 CK11SC <CKEPC!CKEDID>,<Timed Out>,<TIMED OUT WHILE WAITING FOR AN INT>
6191 .ASCIZ \Timed Out\<377>
6192 .EVEN
6193 BR CKDQOT ;DON'T CHK THIS DQ ANY MORE
6194 2$: CMP R0,CHKCHR+CKDV ;SEE IF WE CAME TO THE RIGH VECTOR
6195 BEQ CKDQGI ;BRANCH IF WE DID
6196 CKSERR <CHKCHR+CKDV>,R0,R4 ;SAVE GD,BD,DEV ADR
6197 CK11SC <CKEPC!CKEDID!CKEGB>,<Interrupted to Wrong Vector>,<INTERRUPTED TO WRONG
6198 .ASCIZ \Interrupted to Wrong Vector\<377>
6199 .EVEN
6200 BR CKDQOT ;DON'T CHK ANY MORE OF THIS DQ
6201 CKLDBF: MOV R2,(R5)+ ;PUT DATA IN ADDR
6202 SOB R1,CKLDBF ;FILLED?
6203 RTS PC ;YES.
6204 ;
6205 CKDQGI: MOV (R4),R5 ;GET STATUS
6206 TSTB R5 ;SEE IF DONE YET?
6207 BMI 1$ ;BRANCH IF SO
6208 BIT #DQ.RDS,R5 ;SEE IF SEC INT
6209 BNE 2$ ;BRANCH IF IT IS
6210 BIT #DQ.VCH,R5 ;SEE IF SPECIAL CHAR INT
6211 BNE 3$ ;BRANCH IF SO
6212 CK11SC <CKEDID!CKEPC>,<Illegal Interrupt>,<SOME BIT OTHER THAN SPEC CHAR INT'ED
6213 .ASCIZ \Illegal Interrupt\<377>
6214 .EVEN
6215 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
6216 1$: BIT #DQ.VCH,R5 ;SEE IF SPECIAL CHAR INT
6217 BEQ 5$ ;BRANCH IF NOT
6218 MOV R5,R1 ;SAVE REC STATUS FOR PRINT
6219 BIC #DQ.VCH!DQ.RDP!DQ.CIE,(R4) ;DISMISS INT
6220 BR CKDQWA ;GO WAIT FOR ANOTHER INT
6221 3$: BIC #DQ.VCH,(R4) ;CLEAR FOR EXIT
6222 BR CKDQWA ;GO WAIT FOR ANOTHER INT
6223 5$: BIC #DQ.RDP,(R4) ;
6224 BR CKDQWA ;GO WAIT FOR ANOTHER INT
6225 2$: BIT #DQ.VCH,R1 ;WAS IT A SPECIAL CHAR?
6226 BEQ 6$ ;NO, SO JUST UPDATE PATTERN
6227 BIT #DQ.CHR,R1 ;WAS THERE CAUSE FOR VCH ?
6228 BNE 9$ ;MUST BE NON 0 OR WHY ARE WE HERE
6229 CK11SC <CKEDID!CKEPC>,<Spec Char Code Fld 0>,<SPECIAL CHAR CODE FIELD 0>
6230 .ASCIZ \Spec Char Code Fld 0\
6231 .EVEN
6232 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
6233 9$: BIT #DQ.ETB!DQ.ETX!DQ.ENQ,R1 ;WAS IT INTERESTING SPECIAL CHAR ?
6234 BNE 10$ ;IF SO FIND WHICH
6235 BIS #B15,CHKCHR+CKFLG ;SET FLAG THAT SYNC INTERRUPTS
6236 BR 6$
6237 69$: .WORD B10
6238 .WORD B9
6239 .WORD B8
6240 10$: MOV #4,R5 ;INDEX FOR SPECIAL CHAR TABLE
6241 INC CHKCHR+CKFLG ;COUNT SPECIAL CHARACTER
6242 12$: BIT 69$(R5),R1 ;CHECK FOR SPECIAL CHAR FLAG
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 19-3
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6243 BEQ 14$
6244 MOV R3,CHKCHR+CKSPC(R5) ;PUT INTO THE TABLE
6245 14$: SUB #2,R5
6246 BGE 12$ ;LOOK FOR ANOTHER MAYBE
6247 6$: INCB R3 ;NEXT CHAR TO CHECK
6248 BEQ 4$ ;BRANCH IF ALL DONE
6249 BIC #DQ.RDS!DQ.VCH!DQ.CIE!DQ.RIE,(R4) ;
6250 JMP CKDQLP ;
6251 CKDQOT=.
6252 4$: MOV (SP)+,R5
6253 MOV (SP)+,R3
6254 MOV (SP)+,R2
6255 CMPB CHKCHR+CKFLG,#4 ;SHOULD BE NO MORE THAT 4
6256 BLE 15$ ;CHECK IF SO
6257 CK11SC <CKEDID!CKEPC>,<More than 4 Spec Char Det>,<MORE THAN 4 SPEC CHAR WERE D
6258 .ASCIZ \More than 4 Spec Char Det\
6259 .EVEN
6260 BR CKDQOT ;DON'T CHECK ANY MORE OF THIS DQ
6261 .IFF
6262 10$: JSR R0,CKTSTR
6263 .ASCIZ \ SKIPPING SPEC CHAR TEST\
6264 .EVEN
6265 MOV #377+<<.+6-10$>/2>,10$ ;SHUT OFF SKIPPING COMMENT
6266 002 .ENDC ; .IF NE SPCVFY
6267 15$: RTS PC ;RETURN
6268 .PAGE
6269 ;ROUTINE TO CLEAR THE ENTIRE DQ
6270 ;
6271 CKDQCL: MOV R0,-(SP)
6272 MOV R1,-(SP)
6273 MOV R2,-(SP)
6274 DQREGS MSC,(R4) ;SELECT MISC REG
6275 MOV #DQ.MC,6(R4) ;MASTER CLEAR
6276 DQREGS MSC,(R4) ;SELECT MISC REG AGAIN
6277 MOV #DQ.MC,6(R4) ;MASTER CLEAR AGAIN
6278 MOV #17,R0 ;CLEAR ALL SEC REG
6279 MOV #B12,R2 ;CLEAR BITS 13+14 IN ERR
6280 1$: MOV R2,4(R4) ;SELECT A SEC REG
6281 CLR 6(R4) ;CLEAR THAT SEC REG
6282 ADD #B8,R2 ;SELECT NEXT SEC REG TO CLEAR
6283 SOB R0,1$ ;ALL SEC CLEARED?
6284 MOV (SP)+,R2 ;RESTORE REGS USED
6285 MOV (SP)+,R1
6286 MOV (SP)+,R0
6287 RTS PC ;RETURN
6288 ;
6289 .IIF NDF CHKBSZ,CHKBSZ=10
6290 CHKXBF: .BLKB CHKBSZ
6291 CHKRBF: .BLKB CHKBSZ
6292 ;
6293 001 .ENDC ;RANGES OVER ENTIRE DQ CHECK (NDF FT.D75)
6294 ;
6295 .IIF DF,FT.D75, RTS PC
6296 000 .ENDC ;NE FTDQ11
6297 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 20
C11DTE.MAC 10-AUG-79 16:05 CHECK DQ11 HDW
6299
6300 .SBTTL CHECK DS11 HDW
6301 ;
6302 ;CALL MOV #<VECTOR ADR>,R3
6303 ; MOV #<HDW ADR>,R4
6304 ; MOV #<HDW ADR>,R1
6305 ; JSR PC,CKDS11
6306 ;
6307 .IIF NDF FTDS11,FTDS11=0
6308 001 .IF NE FTDS11
6309 CKDS11:
6310 MOV DS.AUX,R1 ;GET AUX REG TO SEE HOW MANY GROUPS
6311 MOV #DS.AD1,R2 ;FOR CHECKING GROUP NUMBER
6312 MOV #4,R0 ;ALWAYS 1 GROUP IF DS11
6313 1$: BIT R2,R1 ;GROUP EXIST?
6314 BEQ 2$ ;BRANCH IF NO GROUP
6315 ADD #4,R0 ;COUNT 4 LINES FOR EACH GROUP
6316 ASL R2 ;POSITION TO CHECK NEXT GROUP BIT
6317 BNE 1$ ;BRANCH IF WE CAN CHECK ANOTHER
6318 2$: JSR PC,CKTBOC ;PRINT NUMBER OF LINES
6319 CK11SC CKENCL,< Lines>
6320 .ASCIZ \ Lines\
6321 .EVEN
6322 MOV #DS.AUX,R1 ;CHECK THE AUX REG
6323 JSR R5,CHKBIT ;CHECK FOLLOWING BITS
6324 1700 ;BITS TO CHECK
6325 MOV #DS.DVA-2,R1 ;SET TO CHECK LINES
6326 MOV #DS.VEC,CHKCHR+CKDV ;VECTOR TO START AT
6327 MOV 26(R5),CHKCHR+CKPI ;PI LEVEL FOR ALL DS11
6328 MOV R0,R2 ;NUMBER OF LINES TO CHECK
6329 MOV #CHKCHR,R0 ;POINT TO BLOCK FOR MAIN CALL
6330 3$: ADD #2,R1 ;LINE ADR TO CHECK
6331 MOV R1,CHKCHR+CKDA ;MAIN NEEDS THIS INFO
6332 JSR R5,CHKBIT ;CHK RECEIVE STATUS REG
6333 6477 ;BITS TO CHECK
6334 TST (R1)+ ;ADVANCE TO REC DATA REG
6335 JSR R5,CHKBIT ;CHK RECEIVE DATA REG
6336 7777 ;BITS TO CHECK
6337 TST (R1)+ ;ADVANCE TO XMIT STATUS REG
6338 JSR R5,CHKBIT ;CHK XMIT STATUS REG
6339 476 ;BITS TO CHECK
6340 TST (R1)+ ;ADVNACE TO XMIT DATA REG
6341 JSR R5,CHKBIT ;CHK XMIT DATA REG
6342 7777 ;BITS TO CHECK
6343 JSR PC,@14(R5) ;CALL THE MAIN PROGRAM
6344 ADD #20,CHKCHR+CKDV ;ADVANCE VECTOR ADR FOR NEXT LINE
6345 ADD #10,CHKCHR+CKDA ;ADVANCE DEVICE ADR FOR NEXT LINE
6346 SOB R2,3$ ;ALL LINES CHECKED?
6347 MOV #DS.VEC,CHKCHR+CKDV ;SO "CHKDEV" WILL FILL OUT BLOCK
6348 ;
6349 RTS PC ;FINI CHECKING DS11
6350 000 .ENDC ;NE FTDS11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 20-1
C11DTE.MAC 10-AUG-79 16:05 CHECK DTE20 HARDWARE
6352 .SBTTL CHECK DTE20 HARDWARE
6353 ;
6354 ;CALL MOV #<VECTOR ADR>,R3
6355 ; MOV #<HDW ADR>,R4
6356 ; MOV #<HDW ADR>,R1
6357 ; JSR PC,XDTE211
6358 ;
6359 .IIF NDF FTDTE,FTDTE=0
6360 001 .IF NE FTDTE
6361 012274 XDTE211: ;
6362 012274 010100 MOV R1,R0 ;FROM THE DEVICE ADDRESS
6363 012276 006200 ASR R0 ;BITS 5 AND 6 GIVE US WHICH ONE IT IS
6364 012300 006200 ASR R0 ;POSITION TO BITS 2 AND 3 WHICH IS
6365 012302 006200 ASR R0 ;WHERE THE VECTOR VARIES
6366 012304 042700 177763 BIC #^C14,R0 ;ISOLATE THEM
6367 012310 160037 016264 SUB R0,CHKCHR+CKDV ;CORRECT OUR VECTOR ADDRESS
6368 012314 004537 010400 JSR R5,CHKBIT ;CHECK DLYCNT IN DTE'S RAM
6369 012320 177777 177777 ; SINCE WE CAN ACCESS ALL THE BITS
6370 012322 062701 000034 ADD #CSTAT-DLYCNT,R1 ;POINT TO STATUS REGISTER
6371 012326 012711 000040 MOV #INTRON,(R1) ;ENABLE INTERRUPTS
6372 012332 032711 000001 BIT #INTSON,(R1) ;DOES DTE AGREE?
6373 012336 001022 BNE 10$ ;YEP
6374 012340 CK11SC <CKEPC!CKEDID>,<Setting INTRON didn't set INTSON>
6375 012342 062523 072164 067151 .ASCIZ \Setting INTRON didn't set INTSON\<377>
012350 020147 047111 051124
012356 047117 062040 062151
012364 023556 020164 062563
012372 020164 047111 051524
012400 047117 000377
6376 .EVEN
6377 012404 012711 004000 10$: MOV #INT11S,(R1) ;NOW SEE IF IT WILL INTERRUPT US
6378 012410 004537 010626 JSR R5,CHKINL
6379 012414 177777 -1 ;TIME DELAY COUNT
6380 012416 012711 000010 MOV #INTROF,(R1) ;TRY TO MAKE IT GO AWAY
6381 012422 032711 000001 BIT #INTSON,(R1) ;WHICH SHOULD TURN THIS OFF
6382 012426 001423 BEQ 20$ ;OKAY
6383 012430 CK11SC <CKEPC!CKEDID>,<Setting INTROF didn't clear INTSON>
6384 012432 062523 072164 067151 .ASCIZ \Setting INTROF didn't clear INTSON\<377>
012440 020147 047111 051124
012446 043117 062040 062151
012454 023556 020164 066143
012462 060545 020162 047111
012470 051524 047117 000377
6385 .EVEN
6386 012476 032711 000010 20$: BIT #RM,(R1) ;WE SHOULD BE RESTRICTED
6387 012502 001016 BNE 30$ ;WE ARE, FINE
6388 012504 CK11SC <CKEPC!CKEDID>,<DTE20 is not restricted>
6389 012506 052104 031105 020060 .ASCIZ \DTE20 is not restricted\<377>
012514 071551 067040 072157
012522 071040 071545 071164
012530 061551 062564 177544
012536 000
6390 012540 .EVEN ;
6391 012540 012741 000100 30$: MOV #DRESET,-(R1) ;REALLY INITIALIZE DTE20
6392 012544 000207 RTS PC
6393 000 .ENDC ;NE FT.DTE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 20-2
C11DTE.MAC 10-AUG-79 16:05 CHECK DU11 HDW
6395 .SBTTL CHECK DU11 HDW
6396 ;
6397 ;CALL MOV #<VECTOR ADR>,R3
6398 ; MOV #<HDW ADR>,R4
6399 ; MOV #<HDW ADR>,R1
6400 ; JSR PC,XDU11
6401 .IIF NDF FTDU11,FTDU11=0
6402 001 .IF NE FTDU11
6403 XDU11: ;
6404 RTS PC
6405 000 .ENDC ;NE FTDU11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 20-3
C11DTE.MAC 10-AUG-79 16:05 CHECK DUP11 HDW
6407 .SBTTL CHECK DUP11 HDW
6408 ;
6409 ;CALL MOV #<VECTOR ADR>,R3
6410 ; MOV #<HDW ADR>,R4
6411 ; MOV #<HDW ADR>,R1
6412 ; JSR PC,XUP11
6413 .IIF NDF FTDUP1,FTDUP1=0
6414 001 .IF NE FTDUP1
6415 012546 XDUP11: ;
6416 012546 FIELD $$,DUPRIE,DUPDTR ;
6417 012546 004537 010400 JSR R5,CHKBIT ;TEST THE RECVR CSR
6418 012552 000576 .WORD DUPSSY!$$ ;
6419 012554 005721 TST (R1)+ ;UP TO RECVR, BUT IT'S READ ONLY
6420 012556 005721 TST (R1)+ ;UP TO XMIT CSR
6421 012560 004537 010400 JSR R5,CHKBIT ;
6422 012564 036130 .WORD DUPTMC!DUPTM1!DUPTM0!DUPTMI!DUPTIE!DUPTSN!DUPTHD
6423 012566 005721 TST (R1)+ ;UP TO XMIT DBR
6424 012570 004537 010400 JSR R5,CHKBIT ;
6425 012574 003777 .WORD DUPXAB!DUPXEM!DUPXSM!DUPXDB
6426 012576 010401 MOV R4,R1 ;RESTORE DEVICE ADDRESS
6427 ;(ADD INTERRUPT CHECK)
6428 012600 000207 RTS PC ;
6429 000 .ENDC ;NE FTDUP1
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 20-4
C11DTE.MAC 10-AUG-79 16:05 CHECK DZ11 HDW
6431 .SBTTL CHECK DZ11 HDW
6432 ;
6433 ;CALL MOV #<VECTOR ADR>,R3
6434 ; MOV #<HDW ADR>,R4
6435 ; MOV #<HDW ADR>,R1
6436 ; JSR PC,XDZ11
6437 .IIF NDF FTDZ11,FTDZ11=0
6438 001 .IF NE FTDZ11
6439 012602 XDZ11: ;
6440 012602 004537 010400 JSR R5,CHKBIT ;
6441 012606 040140 .WORD DZ.TIE!DZ.RIE!DZ.SCN
6442 012610 005721 TST (R1)+ ;
6443 012612 004537 010400 JSR R5,CHKBIT ;
6444 012616 000000 .WORD 0 ;
6445 012620 010401 MOV R4,R1 ;
6446 ;ADD INTERRUPT TEST
6447 012622 000207 RTS PC ;
6448 000 .ENDC ;NE FTDZ11
6449 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21
C11DTE.MAC 10-AUG-79 16:05 CHECK DZ11 HDW
6451
6452 .SBTTL CHECK KG11 HARDWARE
6453 ;
6454 012624 XKG11: SAVE R3 ;
6455 012626 CHKCHR R4,<#0>,<#0> ;
6456 012646 005000 CLR R0 ;
6457 012650 11$: KGLOAD R0 ;
6458 012664 020064 000002 CMP R0,KGBCC(R4) ;CHECK THAT IT LOADED
6459 012670 001422 BEQ 12$ ;OK
6460 012672 CKSERR R0,KGBCC(R4),R4 ;GD,BD,ADR
6461 012702 CK11SC <CKEPC!CKEDID!CKEGB>,<Can't load BCC Correctly>,<BCC ERROR>
6462 012704 060503 023556 020164 .ASCIZ \Can't load BCC Correctly\<377>
012712 067554 062141 041040
012720 041503 041440 071157
012726 062562 072143 074554
012734 000377
6463 .EVEN ;
6464 012736 077034 12$: SOB R0,11$ ;
6465 ;
6466 ; CHECK CRC PORTION
6467 ;
6468 012740 012700 000777 MOV #777,R0 ;FIRST ENTRY FOR CRC
6469 012744 KGLOAD #0 ;CLEAR KG11
6470 012750 005003 CLR R3 ;CLEAR SOFTWARE COPY
6471 012752 004737 013030 20$: JSR PC,70$ ;CALCULATE SOFTWARE BCC
6472 012756 110064 000004 MOVB R0,KGDATA(R4) ;INCLUDE CHAR IN HDW BCC
6473 012762 020364 000002 CMP R3,KGBCC(R4) ;
6474 012766 001415 BEQ 54$ ;
6475 012770 CKSERR R3,KGBCC(R4),R4 ;
6476 013000 CK11SC <CKEPC!CKEGB!CKEDID>,<Incorrect CRC>,<INCORRECT CRC>
6477 013002 067111 067543 071162 .ASCIZ \Incorrect CRC\<377>
013010 061545 020164 051103
013016 177503 000
6478 013022 .EVEN ;
6479 013022 077025 54$: SOB R0,20$ ;
6480 ;
6481 013024 RESTORE R3 ;
6482 013026 000207 RTS PC ;
6483 ;
6484 ;SUBROUTINE TO CALCULATE CRC IN R3
6485 ;
6486 013030 70$: SAVE <R0,R1> ;
6487 013034 042700 177400 BIC #^C377,R0 ;STRIP EXTRA BITS
6488 013040 012701 000010 MOV #8.,R1 ;COUNTER
6489 013044 074003 XOR R0,R3 ;
6490 013046 012700 120001 MOV #120001,R0 ;
6491 013052 000241 72$: CLC ;CLEAR CARRY BIT
6492 013054 006003 ROR R3 ;
6493 013056 103001 BCC 74$ ;
6494 013060 074003 XOR R0,R3 ;
6495 013062 077105 74$: SOB R1,72$ ;
6496 013064 RESTORE <R1,R0> ;
6497 013070 000207 RTS PC ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-1
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6499 .SBTTL CHECK KMC/DMC HARDWARE
6500 ;
6501 ;CALL MOV #<VECTOR ADR OF KMC11>,R3
6502 ; MOV #<HDW ADR OF KMC11>,R4
6503 ; MOV #<HDW ADR OF KMC11>,R1
6504 ; JSR PC,XKMC11
6505 ;
6506 .IIF NDF FTKMC,FTKMC=0
6507 .IIF NDF FTDMC,FTDMC=0
6508 001 .IF NE FTDMC
6509 013072 XDMC11:
6510 013072 010546 XKMC11: MOV R5,-(SP) ;SAVE R5
6511 013074 010446 MOV R4,-(SP) ; AND R4
6512 013076 010346 MOV R3,-(SP) ; AND R3
6513 013100 012714 040000 MOV #MD.CLR,(R4) ;INITIALIZE THE KMC11
6514 013104 013746 002050 MOV MDCSRP,-(SP) ;LOG IN THE DEVICE
6515 013110 001004 BNE 10$ ;NOT THE FIRST
6516 013112 012716 002052 MOV #MDCSR,(SP) ;THE FIRST, SET POINTER
6517 013116 011637 002050 MOV (SP),MDCSRP ;
6518 013122 010436 10$: MOV R4,@(SP)+ ;ENTER DEVICE CSR INTO STARTUP TABLE
6519 013124 062737 000002 002050 ADD #2,MDCSRP ;UPDATE TABLE POINTER
6520 013132 005024 CLR (R4)+ ;CLEAR THE CSRS
6521 013134 005024 CLR (R4)+ ;
6522 013136 005024 CLR (R4)+ ;
6523 013140 005024 CLR (R4)+ ;
6524 013142 010104 MOV R1,R4 ;
6525 013144 004537 010400 JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6526 013150 000377 .WORD 377 ;ALL BITS OF BSEL 0
6527 013152 005721 TST (R1)+ ;LOOK AT SEL 2
6528 013154 004537 010400 JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6529 013160 177777 .WORD ALLBTS ;ALL BITS OF SEL 2
6530 013162 005721 TST (R1)+ ;LOOK AT SEL 4
6531 013164 004537 010400 JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6532 013170 177777 .WORD ALLBTS ;ALL BITS OF SEL 4
6533 013172 005721 TST (R1)+ ;LOOK AT SEL 6
6534 013174 004537 010400 JSR R5,CHKBIT ;VERIFY THESE BITS WORK
6535 013200 177777 .WORD ALLBTS ;ALL BITS OF SEL 6
6536 002 .IF NE FTKMCL
6537 TST MDCODB+2 ;IF WE ARE RETAINING THE CRAM...
6538 BEQ 20$ ; DON'T CHECK INTERRUPTS (CLOBBERS CRAM 0)
6539 001 .ENDC ;NE FTKMCL
6540 ;CREATE A DMC INTERRUPT BY SETTING
6541 ; BUS RQ IN MP MISC BY JAMMING MP INSTRS
6542 013202 012737 000340 177776 MOV #BR7,PS ;STOP INTERRUPTS
6543 013210 012714 001000 MOV #MD.RMI,(R4) ;SET ROM I ("JAM INSTRUCTION")
6544 013214 012764 000600 000006 MOV #600,6(R4) ;600 = "MOVE #200,BRG"
6545 013222 052714 000400 BIS #MD.SMP,(R4) ;EXECUTE THE INSTRUCTION
6546 013226 005014 CLR (R4) ;TURN OFF STEP AND ROM I
6547 013230 012714 001000 MOV #MD.RMI,(R4) ;SET ROM I AGAIN
6548 013234 012764 061231 000006 MOV #61231,6(R4) ;61231 = "MOVE BRG,MISC" (SETS BUS RQ)
6549 013242 052714 000400 BIS #MD.SMP,(R4) ;EXECUTE
6550 013246 005014 CLR (R4) ;TURN OFF ROM I
6551 013250 004537 010626 JSR R5,CHKINL ;CHECK FOR THE RESULTING INTERRUPT
6552 013254 177777 .WORD 177777 ;
6553 013256 012714 040000 MOV #MD.CLR,(R4) ;CLEAR INTERFACE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-2
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6555 ; IF WE HAVE A VALID COPY OF THE MICROCODE, WE CAN TEST
6556 ; THE CRAM. OTHERWISE BYPASS MOST OF THE TESTING.
6557 ;
6558 013262 20$:
6559 002 .IF NE FTKMC
6560 013262 012701 000012 MOV #12,R1 ;CHECK ARBITRARY LOCATION IN CRAM
6561 013266 004737 014130 JSR PC,CKMDRD ;READ FROM IT
6562 013272 010046 MOV R0,-(SP) ;SAVE DATA READ
6563 013274 005100 COM R0 ;INVERT IT
6564 013276 004737 013776 JSR PC,CKMDWR ;WRITE BACK INVERTED DATA
6565 013302 004737 014130 JSR PC,CKMDRD ;READ IT BACK OUT
6566 013306 020026 CMP R0,(SP)+ ;CHECK IT AGAINST WHAT WAS WRITTEN
6567 013310 001034 BNE 22$ ;DATA DIFFERENT, CRAM IS READ/WRITE
6568 ;NOT WRITTEN, CRAM IS A CROM
6569 013312 023727 002040 001626 CMP CKDNAM,#N.KMC11 ;DID YOU EXPECT A KMC?
6570 013320 001026 BNE 21$ ;NO, SKIP CRAM CHECK, NO MSG
6571 013322 013746 002034 MOV CHKFLG,-(SP) ;PREVENT ERROR FROM BEING SET
6572 013326 CK11SC CKEDID,<DEV IS DMC>
6573 013330 041411 040522 020115 .ASCIZ " CRAM is not R/W, device is a DMC"
013336 071551 067040 072157
013344 051040 053457 020054
013352 062544 064566 062543
013360 064440 020163 020141
013366 046504 000103
6574 .EVEN ;
6575 013372 012637 002034 MOV (SP)+,CHKFLG ;RESTORE PREVIOUS FLAG WORD
6576 013376 000137 013732 21$: JMP CKMDXT ;SKIP CRAM CHECK
6577 ;
6578 013402 005100 22$: COM R0 ;INVERT DATA BACK
6579 013404 004737 013776 JSR PC,CKMDWR ;REWRITE AGAIN
6580 013410 023727 002040 001532 CMP CKDNAM,#N.DMC11 ;WAS A DMC EXPECTED?
6581 013416 001027 BNE 23$ ;NO, MUST HAVE BEEN A KMC CALL
6582 013420 013746 002034 MOV CHKFLG,-(SP) ;PREVENT ERROR FROM BEING SET
6583 013424 CK11SC CKEDID,<dev is a KMC>
6584 013426 051011 053457 041440 .ASCIZ " R/W CRAM present, device is a KMC"
013434 040522 020115 071160
013442 071545 067145 026164
013450 062040 073145 061551
013456 020145 071551 060440
013464 045440 041515 000
6585 013472 .EVEN ;
6586 013472 012637 002034 MOV (SP)+,CHKFLG ;RESTORE PREVIOUS FLAG WORD
6587 013476 003 23$: .IF NE FTKMCL
6588 TST MDCODB+2 ;IS MICROCODE IMAGE INVALID?
6589 BNE 24$ ;NOT OBVIOUSLY
6590 JSR PC,CKMDEX ;YES, BE SURE WE CAN CYCLE THE CRAM
6591 JMP CKMDXT ; BUT LEAVE ITS CONTENTS ALONE.
6592 24$:
6593 002 .ENDC ;NE FTKMCL
6594 013476 005001 CLR R1 ;START AT CRAM ADDRESS 0
6595 013500 005000 30$: CLR R0 ;DATA IS ZERO
6596 013502 004737 014024 JSR PC,CKMDCK ;WRITE 0 AND CHECK IT
6597 013506 005201 INC R1 ;NEXT CRAM LOCATION
6598 013510 022701 002000 CMP #2000,R1 ;REACHED THE END OF THE CRAM?
6599 013514 001371 BNE 30$ ;NO, DO THE REST.
6600 013516 004737 013746 JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-3
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6601 013522 005001 CLR R1 ;START AT THE BEGINNING AGAIN
6602 013524 004737 014130 36$: JSR PC,CKMDRD ;READ A WORD FROM THE CRAM
6603 013530 005700 TST R0 ;IS IT ZERO?
6604 013532 001417 BEQ 42$ ;YES, THAT IS OK.
6605 013534 CKSERR <#0>,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6606 013544 CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM CLEAR FAILED>,<CRAM CLEAR FAILED>
6607 013546 041440 040522 020115 .ASCIZ / CRAM clear failed /
013554 066143 060545 020162
013562 060546 066151 062145
013570 000040
6608 .EVEN
6609 013572 005201 42$: INC R1 ;NEXT CRAM ADDRESS
6610 013574 022701 002000 CMP #2000,R1 ;REACHED THE END OF THE CRAM?
6611 013600 001351 BNE 36$ ;NO, DO THE REST
6612 ;
6613 ; NOW SET EACH CRAM LOCATION TO ITS OWN ADDRESS. THIS CHECKS FOR
6614 ; ADDRESSING FAILURES.
6615 ;
6616 013602 005001 CLR R1 ;START AT LOCATION ZERO
6617 013604 010100 50$: MOV R1,R0 ;GET ADDRESS
6618 013606 006300 ASL R0 ; * 2 (WE ARE PUTTING THE 10-BIT
6619 013610 006300 ASL R0 ; * 4 CRAM ADDRESS IN THE MIDDLE
6620 013612 006300 ASL R0 ; * 8 OF THE 16-BIT WORD.)
6621 013614 004737 014024 JSR PC,CKMDCK ;WRITE ADDRESS INTO CRAM
6622 013620 005201 INC R1 ;NEXT CRAM ADDRESS
6623 013622 020127 002000 CMP R1,#2000 ;REACHED END OF CRAM YET?
6624 013626 103766 BLO 50$ ;NO, GO DO THE REST.
6625 013630 004737 013746 JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
6626 013634 005001 CLR R1 ;START AT BEGINNING OF CRAM AGAIN
6627 013636 004737 014130 55$: JSR PC,CKMDRD ;READ WORD FROM CRAM
6628 013642 010102 MOV R1,R2 ;GET CRAM ADDRESS
6629 013644 006302 ASL R2 ; * 2
6630 013646 006302 ASL R2 ; * 4
6631 013650 006302 ASL R2 ; * 8
6632 013652 020002 CMP R0,R2 ;IS THE CRAM OK?
6633 013654 001422 BEQ 60$ ;YES
6634 013656 CKSERR R2,R0,R1 ;NO, STUFF GOOD, BAD, AND CRAM ADDRESS
6635 013664 CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM ERROR>,<CRAM ERROR>
6636 013666 041440 040522 020115 .ASCIZ / CRAM data = address error /
013674 060544 060564 036440
013702 060440 062144 062562
013710 071563 062440 071162
013716 071157 000040
6637 .EVEN ;
6638 013722 005201 60$: INC R1 ;NEXT CRAM ADDRESS
6639 013724 020127 002000 CMP R1,#2000 ;REACHED THE END OF THE CRAM?
6640 013730 103742 BLO 55$ ;NO, GO DO THE REST
6641 ;
6642 ; NOW LOAD THE APPLICATION CODE INTO THE CRAM, IF REQUESTED.
6643 ;
6644 003 .IF NE FTKMCL
6645 CLR R1 ;START AT THE BEGINNING OF THE CRAM
6646 MOV #MDCODB,R2 ;POINT TO APPLICATION CODE
6647 70$: MOV (R2)+,R0 ;GET WORD TO LOAD
6648 JSR PC,CKMDCK ;WRITE IT INTO THE CRAM
6649 INC R1 ;POINT TO NEXT CRAM LOCATION
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-4
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6650 CMP R2,#MDCODE ;REACHED END OF PROGRAM?
6651 BNE 70$ ;NO, LOAD THE REST
6652 JSR PC,CKMDEX ;COMPLEMENT THE CRAM TWICE
6653 CLR R1 ;START AT BEGINNING OF CRAM AGAIN
6654 MOV #MDCODB,R2 ;POINT TO APPLICATION CODE AGAIN
6655 72$: JSR PC,CKMDRD ;READ A WORD FROM THE CRAM
6656 MOV (R2)+,R3 ;GET WORD THAT SHOULD BE THERE
6657 CMP R3,R0 ;IS IT RIGHT?
6658 BEQ 78$ ;YES
6659 CKSERR R3,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6660 CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM LOAD ERROR>,<CRAM LOAD ERROR>
6661 .ASCIZ / CRAM load error /
6662 .EVEN ;
6663 78$: INC R1 ;NEXT CRAM ADDRESS
6664 CMP R2,#MDCODE ;REACHED END OF APPLICATION PROGRAM?
6665 BLO 72$ ;NO, DO THE REST
6666 002 .ENDC ;NE FTKMCL
6667 001 .ENDC ;NE FTKMC
6668 ;
6669 ; DMC (KMC) CHECK COMPLETED
6670 ;
6671 013732 012714 040000 CKMDXT: MOV #MD.CLR,(R4) ;BE SURE THE KMC11 IS CLEAR
6672 013736 012603 MOV (SP)+,R3 ;RESTORE R3
6673 013740 012604 MOV (SP)+,R4 ; AND R4
6674 013742 012605 MOV (SP)+,R5 ; AND R5
6675 013744 000207 RTS PC ;RETURN.
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-5
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6677 002 .IF NE FTKMC ;THESE SUBROUTINES APPLY ONLY TO
6678 ; WRITEABLE CONTROL STORES, I.E., KMC'S
6679 ;
6680 ; SUBROUTINE TO COMPLEMENT THE DATA IN THE KMC11'S CRAM.
6681 ; ENTERING AT CKMDEX WILL CAUSE THE ROUTINE TO EXECUTE TWICE -
6682 ; IF THE KMC11 IS WORKING PROPERLY THIS WILL LEAVE THE CRAM UNCHANGED.
6683 ;
6684 013746 004717 CKMDEX: JSR PC,(PC) ;CALL REST OF ROUTINE ONCE, RETURN
6685 ; HERE AND FALL INTO IT FOR SECOND PASS
6686 013750 005001 CLR R1 ;START AT BEGINNING OF CRAM
6687 013752 004737 014130 80$: JSR PC,CKMDRD ;READ WORD FROM CRAM
6688 013756 005100 COM R0 ;COMPLEMENT IT
6689 013760 004737 014024 JSR PC,CKMDCK ;WRITE IT BACK (AND CHECK IT)
6690 013764 005201 INC R1 ;NEXT CRAM LOCATION
6691 013766 020127 002000 CMP R1,#2000 ;REACHED END OF CRAM?
6692 013772 103767 BLO 80$ ;NO, DO THE REST
6693 013774 000207 RTS PC ;YES, ALL DONE
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 21-6
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6695 ; SUBROUTINE TO WRITE A WORD INTO THE KMC11'S CRAM
6696 ;
6697 ; R0 = WORD TO WRITE
6698 ; R1 = CRAM ADDRESS
6699 ; R4 = POINTER TO KMC11 CSR
6700 ;
6701 013776 005014 CKMDWR: CLR (R4) ;CLEAR BSEL 1
6702 014000 010164 000004 MOV R1,4(R4) ;SET ADDRESS INTO SEL 4
6703 014004 010064 000006 MOV R0,6(R4) ;LOAD DATA INTO SEL 6
6704 014010 052714 002000 BIS #MD.RMO,(R4) ;SET ROM O
6705 014014 052714 022000 BIS #MD.RMO!MD.CWR,(R4) ;SET CRAM WRITE ALSO
6706 014020 005014 CLR (R4) ;CLEAR ROM O AND CRAM WRITE
6707 014022 000207 RTS PC ;RETURN
6708 ;
6709 ; SUBROUTINE TO WRITE AND VERIFY A WORD IN THE CRAM
6710 ;
6711 ; CALLED AS CKMDWR
6712 ;
6713 014024 010046 CKMDCK: MOV R0,-(SP) ;SAVE DATA TO BE WRITTEN
6714 014026 004737 013776 JSR PC,CKMDWR ;WRITE THE WORD
6715 014032 004737 014130 JSR PC,CKMDRD ;READ IT BACK
6716 014036 020016 CMP R0,(SP) ;DATA SAME AS WRITTEN?
6717 014040 001431 BEQ 85$ ;YES.
6718 014042 010246 MOV R2,-(SP) ;NO, SAVE R2
6719 014044 016602 000002 MOV 2(SP),R2 ;GET BAD DATA FROM CRAM
6720 014050 CKSERR R2,R0,R1 ;GOOD, BAD, CRAM ADDRESS
6721 014056 CK11SC <CKEPC!CKEGB!CKEDID>,<CRAM DATA ERROR>,<CRAM DATA ERROR>
6722 014060 041440 040522 020115 .ASCIZ / CRAM data error in write check /
014066 060544 060564 062440
014074 071162 071157 064440
014102 020156 071167 072151
014110 020145 064143 061545
014116 020153 000
6723 014122 .EVEN
6724 014122 012602 MOV (SP)+,R2 ;RESTORE R2
6725 014124 012600 85$: MOV (SP)+,R0 ;RESTORE DATA
6726 014126 000207 RTS PC ;RETURN
6727 ;
6728 ; SUBROUTINE TO READ A WORD FROM THE KMC11'S CRAM.
6729 ;
6730 ; R1 = ADDRESS
6731 ; R4 = POINTER TO KMC11 CSR
6732 ;
6733 ; ON RETURN:
6734 ;
6735 ; R0 = DATA FROM CRAM
6736 ;
6737 014130 005014 CKMDRD: CLR (R4) ;CLEAR BSEL 1
6738 014132 010164 000004 MOV R1,4(R4) ;SET ADDRESS INTO BSEL 4
6739 014136 052714 002000 BIS #MD.RMO,(R4) ;SET ROM O
6740 014142 016400 000006 MOV 6(R4),R0 ;FETCH DATA
6741 014146 005014 CLR (R4) ;CLEAR ROM O
6742 014150 000207 RTS PC ;RETURN
6743 001 .ENDC ;NE FTKMC
6744 000 .ENDC ;NE FTDMC
6745 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22
C11DTE.MAC 10-AUG-79 16:05 CHECK KMC/DMC HARDWARE
6747
6748 .SBTTL CHECK LP11 HARDWARE
6749 ;
6750 ;CALL MOV #<VECTOR ADR>,R3
6751 ; MOV #<HDW ADR>,R4
6752 ; MOV #<HDW ADR>,R1
6753 ; JSR PC,XLE11
6754 ;
6755 .IIF NDF FTLE11,FTLE11=0
6756 001 .IF NE FTLE11
6757 014152 XLE11: ;
6758 014152 032714 100000 BIT #LE.ERR,(R4) ;SEE IF DEV READY
6759 014156 001406 BEQ 1$ ;BRANCH IF RDY
6760 014160 CK11SC <CKEDID!CKENCL>,< Not Rdy>
6761 014162 047040 072157 051040 .ASCIZ \ Not Rdy\<377>
014170 074544 000377
6762 .EVEN ;
6763 014174 004537 010400 1$: JSR R5,CHKBIT ;CHECK HDW BITS
6764 014200 000100 .WORD LE.INE
6765 014202 $CKINT ,R4,<LE.INE>,<LE.DNE>
6766 014216 000207 RTS PC
6767 000 .ENDC ;NE FTLE11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-1
C11DTE.MAC 10-AUG-79 16:05 CHECK LP20 HARDWARE
6769 .SBTTL CHECK LP20 HARDWARE
6770 ;
6771 .IIF NDF FTLP20,FTLP20=0
6772 001 .IF NE FTLP20
6773 014220 XLP11: ;
6774 014220 012737 000340 177776 MOV #BR7,PS ;
6775 014226 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;CLEAR CONTROLLER
6776 014232 062701 000012 ADD #LPRAMD,R1 ;POINT TO RAM DATA BUFFER
6777 014236 010102 MOV R1,R2 ;
6778 014240 005722 TST (R2)+ ;POINT TO CHAR BUFFER
6779 014242 105012 CLRB (R2) ;SET RAM ADDRESS TO ZERO
6780 014244 005011 10$: CLR (R1) ;CLEAR RAM LOCATION
6781 014246 105212 INCB (R2) ;UP RAM ADDRESS
6782 014250 001375 BNE 10$ ; UNTIL IT OVERFLOWS
6783 014252 010401 MOV R4,R1 ;RECOVER BASE CRS ADDRESS
6784 014254 005061 000004 CLR LPBSAD(R1) ;SET UP HARMLESS TRANSFER
6785 014260 012761 177777 000006 MOV #-1,LPBCTR(R1) ;
6786 014266 004537 010400 JSR R5,CHKBIT ;CHECK R/W ON CSRA
6787 014272 002176 .WORD LP.DH!LP.IE!LP.XAD!LP.MDS!LP.PEN
6788 ;
6789 014274 005721 TST (R1)+ ;UP TO CSRB
6790 014276 004537 010400 JSR R5,CHKBIT ;
6791 014302 003400 .WORD LP.TS2!LP.TS1!LP.TS0
6792 014304 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6793 ;
6794 014310 005721 TST (R1)+ ;CHECK R/W ON BUS ADDRESS
6795 014312 004537 010400 JSR R5,CHKBIT ;
6796 014316 177777 .WORD ALLBTS ;
6797 014320 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6798 ;
6799 014324 012702 000003 MOV #3,R2 ;NEXT THREE REGISTERS ARE ALIKE
6800 014330 005721 20$: TST (R1)+ ;BYTE COUNT, PAGE CONT, RAMDATA
6801 014332 004537 010400 JSR R5,CHKBIT ;
6802 014336 007777 .WORD 7777 ;
6803 014340 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6804 014344 077207 SOB R2,20$ ;
6805 ;
6806 014346 005721 TST (R1)+ ;CHECK R/W ON CHAR BUFFER
6807 014350 004537 010400 JSR R5,CHKBIT ;
6808 014354 177777 .WORD ALLBTS ;
6809 014356 012714 001400 MOV #LP.RSE!LP.LOI,(R4) ;
6810 ;
6811 014362 010401 MOV R4,R1 ;RECOVER BASE CSR ADDRESS
6812 014364 032711 004000 BIT #LP.ONL,(R1) ;PRINTER AVAILABLE?
6813 014370 001012 BNE 30$ ;YES
6814 014372 CK11SC 0,<NOT READY>
6815 014374 050114 030062 067040 .ASCIZ "LP20 not ready"
014402 072157 071040 060545
014410 074544 000
6816 014414 .EVEN ;
6817 014414 000207 RTS PC ;
6818 ;
6819 014416 012761 177777 000006 30$: MOV #-1,LPBCTR(R1) ;SET CHAR COUNT
6820 014424 010161 000004 MOV R1,LPBSAD(R1) ;SET ADDRESS TO SELF
6821 014430 062761 000014 000004 ADD #LPCBUF,LPBSAD(R1) ;
6822 014436 012711 000061 MOV #LP.B17!LP.B16!LP.GO,(R1) ;SET HIGH ADDRESS BITS AND START
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-2
C11DTE.MAC 10-AUG-79 16:05 CHECK LP20 HARDWARE
6823 014442 $CKINT ,R4,LP.IE,LP.IE ;
6824 014456 000207 RTS PC ;
6825 000 .ENDC ;NE FTLP20
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-3
C11DTE.MAC 10-AUG-79 16:05 CHECK MD11 HDW
6827 .SBTTL CHECK MD11 HDW
6828 ;
6829 ;CALL MOV #<VECTOR ADR>,R3
6830 ; MOV #<HDW ADR>,R4
6831 ; MOV #<HDW ADR>,R1
6832 ; JSR PC,XMD11
6833 .IIF NDF FTMD11,FTMD11=0
6834 001 .IF NE FTMD11
6835 XMD11: ;
6836 RTS PC
6837 000 .ENDC ;NE FTMD11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-4
C11DTE.MAC 10-AUG-79 16:05 DUMMY NULL DEVICE CHECKER
6839 .SBTTL DUMMY NULL DEVICE CHECKER
6840 ;
6841 ;
6842 ;
6843 014460 000207 XNL11: RTS PC ;DUMMY
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-5
C11DTE.MAC 10-AUG-79 16:05 CHECK PA611P HARDWARE
6845 .SBTTL CHECK PA611P HARDWARE
6846 ;
6847 ;CALL MOV #<VECTOR ADR>,R3
6848 ; MOV #<HDW ADR>,R4
6849 ; MOV #<HDW ADR>,R1
6850 ; JSR PC,XP611
6851 ;
6852 .IIF NDF FTP611,FTP611=0
6853 001 .IF NE FTP611
6854 XP611: ;
6855 RTS PC
6856 000 .ENDC ;NE FTP611
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-6
C11DTE.MAC 10-AUG-79 16:05 CHECK PA611R HARDWARE
6858 .SBTTL CHECK PA611R HARDWARE
6859 ;
6860 ;CALL MOV #<VECTOR ADR>,R3
6861 ; MOV #<HDW ADR>,R4
6862 ; MOV #<HDW ADR>,R1
6863 ; JSR PC,XR611
6864 ;
6865 .IIF NDF FTR611,FTR611=0
6866 001 .IF NE FTR611
6867 XR611: ;
6868 RTS PC
6869 000 .ENDC ;NE FTR611
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-7
C11DTE.MAC 10-AUG-79 16:05 CHECK PP11 HARDWARE
6871 .SBTTL CHECK PP11 HARDWARE
6872 ;
6873 ;CALL MOV #<VECTOR ADR>,R3
6874 ; MOV #<HDW ADR>,R4
6875 ; MOV #<HDW ADR>,R1
6876 ; JSR PC,XPP11
6877 ;
6878 .IIF NDF FTPP11,FTPP11=0
6879 001 .IF NE FTPP11
6880 XPP11:
6881 JSR R5,CHKBIT
6882 PP.INE
6883 $CKINT ,R4,<PP.INE>,<PP.RDY>
6884 RTS PC
6885 000 .ENDC ;NE FTPP11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-8
C11DTE.MAC 10-AUG-79 16:05 CHECK PR11 HARDWARE
6887 .SBTTL CHECK PR11 HARDWARE
6888 ;
6889 ;CALL MOV #<VECTOR ADR>,R3
6890 ; MOV #<HDW ADR>,R4
6891 ; MOV #<HDW ADR>,R1
6892 ; JSR PC,XPR11
6893 ;
6894 .IIF NDF FTPR11,FTPR11=0
6895 001 .IF NE FTPR11
6896 XPR11: ;
6897 JSR R5,CHKBIT ;CHECK HARDWARE BITS
6898 PR.INE
6899 CLR R0 ;FOR TIME OUT
6900 BIS #PR..RE!PR.INE,(R4) ;TELL READER TO DO SOMETHING
6901 ; TO FORCE ANY INTERRUPT COND
6902 1$: BIT #PR.DNE!PR.ERR,(R4) ;SEE IF AN INT CONDITION IS THERE
6903 BNE 2$ ;IF NOT, THEN WAIT FOR ONE.
6904 SOB R0,1$ ;TIME OUT TO CATCH NO RESPONSE
6905 CK11SC <CKEDID!CKEPC>,<Timed Out>,<NO RESPONSE>
6906 .ASCIZ \Timed Out\<377>
6907 .EVEN
6908 BIC #PR.INE,(R4) ;DISABLE INT ENABLE
6909 RTS PC ;EXIT
6910 2$: JSR R5,CHKINL ;FIND INT LEVEL
6911 -1 ;FOR TIME-OUT
6912 BIC #PR.INE,(R4) ;DISABLE INTS
6913 RTS PC
6914 000 .ENDC ;NE FTPR11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-9
C11DTE.MAC 10-AUG-79 16:05 CHECK RH11 HARDWARE
6916 .SBTTL CHECK RH11 HARDWARE
6917 ;
6918 ;CALL MOV #<VECTOR ADR>,R3
6919 ; MOV #<HDW ADR>,R4
6920 ; MOV #<HDW ADR>,R1
6921 ; JSR PC,XRH11
6922 ;
6923 .IIF NDF FTRH11,FTRH11=0
6924 001 .IF NE FTRH11
6925 XRH11: BIS #1,CHKRP+4+0 ;GROSS KLUDGE TO PREVENT CHKDEV FROM
6926 RTS PC ; FINDING WHAT LOOKS LIKE AN RP.
6927 ; (THE DEVICE REGISTERS OVERLAP)
6928 000 .ENDC ;NE FTRH11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-10
C11DTE.MAC 10-AUG-79 16:05 CHECK TC11 HARDWARE
6930 .SBTTL CHECK TC11 HARDWARE
6931 ;
6932 ;CALL MOV #<VECTOR ADR>,R3
6933 ; MOV #<HDW ADR>,R4
6934 ; MOV #<HDW ADR>,R1
6935 ; JSR PC,XTC11
6936 ;
6937 .IIF NDF FTTC11,FTTC11=0
6938 001 .IF NE FTTC11
6939 XTC11: ;
6940 002 .IF NDF,FT.D75
6941 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6942 TC.D17!TC.D16
6943 TST (R1)+ ;ADVANCE TO COMMAND REGISTER
6944 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6945 TC..MM!TC..DI!TC.REV!TC.US7!TC.INE!TC.A17!TC.A16
6946 TST (R1)+ ;ADVANCE TO WORD COUNT REG
6947 JSR R5,CHKBIT ;TEST FOLLOWING BITS
6948 -1
6949 TST (R1)+ ;ADVANCE TO BUS ADDR REG
6950 JSR R5,CHKBIT ;TEST THE FOLLOWING BITS
6951 -1
6952 TST (R1)+ ;ADVANCE TO DATA REGISTER
6953 JSR R5,CHKBIT ;CHECK FOLLOWING BITS
6954 -1
6955 MOV R4,R1 ;SET UP ADR FOR INT CHK
6956 TST (R1)+ ;ADVANCE TO COMMAND REG
6957 MOV R1,R2 ;SET UP FOR INT CHK
6958 $CKINT ,,<TC.INE>,<TC.RDY>
6959 001 .ENDC ;IF NDF FT.D75
6960 RTS PC
6961 000 .ENDC ;NE FTTC11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-11
C11DTE.MAC 10-AUG-79 16:05 CHECK TM11 HARDWARE
6963 .SBTTL CHECK TM11 HARDWARE
6964 ;
6965 ;CALL MOV #<VECTOR ADR>,R3
6966 ; MOV #<HDW ADR>,R4
6967 ; MOV #<HDW ADR>,R1
6968 ; JSR PC,XTM11
6969 ;
6970 .IIF NDF FTTM11,FTTM11=0
6971 001 .IF NE FTTM11
6972 XTM11: ;
6973 RTS PC
6974 000 .ENDC ;NE FTTM11
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 22-12
C11DTE.MAC 10-AUG-79 16:05 NULL DIAGNOSTIC
6976 .SBTTL NULL DIAGNOSTIC
6977 ;
6978 ;
6979 ;
6980 014462 X.....: ;
6981 014462 004037 014574 JSR R0,CKTSTR ;
6982 014466 020073 067151 062564 .ASCIZ "; integrity not tested"
014474 071147 072151 020171
014502 067556 020164 062564
014510 072163 062145 000
6983 014516 .EVEN ;
6984 014516 012737 177776 002036 MOV #177776,CKDEVN ;SET COUNT TO PREVENT MORE TYPEOUTS
6985 014524 000207 RTS PC ;
6986 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23
C11DTE.MAC 10-AUG-79 16:05 NULL DIAGNOSTIC
6988
6989 .SBTTL TTY SUPPORT FOR TYPE OUTS
6990 ;
6991 014526 000000 CKTRPT: .WORD 0 ;REPORT DESTINATION DEVICE
6992 ; B15 - CTY
6993 ; B7 - REMOTE DEVICE
6994 ;
6995 ; TYPE THE MESSAGE STRING POINTED TO BY R0
6996 ;
6997 ; CALL JSR PC,CKTTXT ;R0 CONTAINS ADDR OF TXT
6998 ; ON EXIT R0 POINTS TO THE EVEN LOCATION FOLLOWING THE TEXT
6999 ;
7000 .ENABL LSB
7001 014530 CKTTXT: SAVE <R1>
7002 014532 112001 10$: MOVB (R0)+,R1 ;GET THE NEXT CHARACTER
7003 014534 001403 BEQ 20$ ;BRANCH IF END (NULL)
7004 014536 004737 014670 JSR PC,CKTCHR ;TYPE CHAR
7005 014542 000773 BR 10$ ;GET NEXT CHAR
7006 ;
7007 014544 005200 20$: INC R0 ;
7008 014546 042700 000001 BIC #B0,R0 ;POINT TO EVEN LOC
7009 014552 25$: RESTORE <R1>
7010 014554 000207 RTS PC ;RETURN TO CALLER
7011 ;
7012 ; TYPE A CARRIAGE RETURN AND LINE FEED
7013 ;
7014 ; CALL JSR PC,CKCRLF
7015 ;
7016 014556 004037 014574 CKCRLF: JSR R0,CKTSTR
7017 014562 005015 000 .ASCIZ <15><12>
7018 014566 .EVEN
7019 014566 000207 RTS PC
7020 ;
7021 ; TYPE A STRING PRECEEDED BY A CR/LF
7022 ;
7023 ; CALL JSR R0,CKTCRL
7024 ; .ASCIZ \TEXT\
7025 ; .EVEN
7026 ;
7027 014570 004737 014556 CKTCRL: JSR PC,CKCRLF ;FIRST TYPE A CR/LF
7028 ;
7029 ; TYPE A MESSAGE ON THE CTY
7030 ; CALL JSR R0,CKTSTR ;CALL TYPE ROUTINE
7031 ; .ASCIZ \TEXT\
7032 ; .EVEN
7033 ;
7034 014574 004737 014530 CKTSTR: JSR PC,CKTTXT ;GO TYPE STRING
7035 014600 000200 RTS R0
7036 ;
7037 ;TYPE A BLANK AND THE OCTAL CONTENTS OF R0
7038 ;
7039 ; SIMILIAR TO CKTOCT
7040 ;
7041 014602 CKTBOC: SAVE <R1>
7042 014604 012701 000040 MOV #040,R1
7043 014610 004737 014670 JSR PC,CKTCHR
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-1
C11DTE.MAC 10-AUG-79 16:05 TTY SUPPORT FOR TYPE OUTS
7044 014614 000401 BR 30$
7045 ;
7046 ; TYPE THE OCTAL CONTENTS OF R0
7047 ;
7048 ; CALL JSR PC,CKTOCT ;WITH ARG IN R0
7049 ;
7050 014616 CKTOCT: SAVE <R1>
7051 014620 30$: SAVE <R0>
7052 014622 004737 014634 JSR PC,50$
7053 014626 40$: RESTORE <R0>
7054 014630 RESTORE <R1>
7055 014632 000207 RTS PC
7056 ;
7057 ;RECURSIVE BINARY TO ASCIC CONVERSION
7058 ; PUSHES CURRENT VALUE IN R0 ONTO STACK, THEN DIVIDES BY 8 -
7059 ; IF THE QUOTIENT IS NOT ZERO IT CALLS ITSELF, HENCE INTERLEAVING
7060 ; INTERMEDIATE VALUES AND RETURN ADDRESSES - WHEN THE QUOTIENT
7061 ; BECOMES ZERO, INTERMEDIATE VALUES ARE POPPED, AND THE LEAST
7062 ; SIGNIFICANT VALUES ARE PRINTED IN TURN, WITH RETURN FALLING
7063 ; BACK INTO THE PRINT ROUTINE - NOTICE THAT LEADING ZEROS ARE
7064 ; AUTOMATICALLY SUPPRESSED, EXCEPT THE LONE ZERO OF A ZERO WORD
7065 ;
7066 014634 50$: SAVE <R0> ;STUFF CURRENT VALUE
7067 014636 006000 ROR R0 ;DIVIDE BY EIGHT
7068 014640 006000 ROR R0 ;
7069 014642 006000 ROR R0 ;
7070 014644 042700 160000 BIC #160000,R0 ;CLEAR SPURIOUS CARRIES IN
7071 014650 001402 BEQ 60$ ;SKIP TO PRINT WHEN QUOTIENT ZERO
7072 014652 004737 014634 JSR PC,50$ ; ELSE CALL SELF
7073 014656 60$: RESTORE <R1> ;POP INTERMEDIATE VALUE
7074 014660 042701 177770 BIC #^C7,R1 ;SAVE LSD
7075 014664 052701 000060 BIS #60,R1 ;SET BITS FOR ASCII CHARACTER
7076 ; AND DROP INTO CHARACTER PRINT
7077 ;
7078 ; TYPE THE SINGLE CHARACTER IN R1
7079 ;
7080 ; CALL JSR PC,CKTCHR ;WITH CHAR IN R1
7081 ;
7082 014670 120127 000040 CKTCHR: CMPB R1,#40 ;DOES THIS NEED FILLER ?
7083 014674 103015 BHIS 80$ ;
7084 014676 120127 000011 CMPB R1,#11 ;IS CHAR A TAB (11)
7085 014702 001005 BNE 70$ ;BRANCH IF NOT A TAB
7086 014704 004037 014574 JSR R0,CKTSTR ;GIVE SPACES FOR IT
7087 014710 040 040 040 .BYTE 40,40,40,0 ;SUBSTITUTE SPACES FOR TAB
014713 000
7088 014714 000207 RTS PC ;
7089 ;
7090 014716 004737 014722 70$: JSR PC,75$ ;TYPE CHAR FIRST THEN PAD IT WITH 4 NULLS
7091 014722 004737 014730 75$: JSR PC,80$ ;
7092 014726 005001 CLR R1 ;
7093 014730 005737 014526 80$: TST CKTRPT ;CTY OUTPUT REPORT DEVICE?
7094 014734 100005 BPL 83$ ;NO
7095 014736 105737 177564 81$: TSTB CTOSTS ;YES, TEST FOR STILL BUSY
7096 014742 100375 BPL 81$ ;
7097 014744 110137 177566 MOVB R1,CTOCHR ;TYPE CHAR
7098 014750 105737 014526 83$: TSTB CKTRPT ;REMOTE DEVICE RECEIVING REPORT?
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-2
C11DTE.MAC 10-AUG-79 16:05 TTY SUPPORT FOR TYPE OUTS
7099 014754 100002 BPL 86$ ;NO
7100 014756 004737 015206 JSR PC,CKTREM ;YES, REPORT REMOTELY
7101 014762 000207 86$: RTS PC ;
7102 ;
7103 ; BINARY TO DECIMAL ASCII CONVERSION AND OUTPUT
7104 ;
7105 014764 CKTDEC: SAVE <R0,R1,R2> ;
7106 014772 012702 015060 MOV #125$,R2 ;SET DIVISOR POINTER
7107 014776 005001 101$: CLR R1 ;CLEAR QUOTIENT COUNTER
7108 015000 005742 103$: TST -(R2) ;BACK DOWN INTO ARRAY
7109 015002 001414 BEQ 111$ ;DONE ALL BUT UNITS
7110 015004 005201 107$: INC R1 ;UP QUOTIENT
7111 015006 161200 SUB (R2),R0 ;SUBTRACT CURRENT 10**N
7112 015010 002375 BGE 107$ ;NOT NEGATIVE YET, LOOP AROUND
7113 015012 061200 ADD (R2),R0 ;WENT TOO FAR, GO BACK ONE
7114 015014 005301 DEC R1 ;COUNT BACK QUOTIENT
7115 015016 001770 BEQ 103$ ;IF QUOTIENT IS ZERO, SUPPRESS IT
7116 015020 052701 000060 BIS #'0,R1 ;CONVERT QUOTIENT DIGIT TO ASCII
7117 015024 004737 014670 JSR PC,CKTCHR ;TYPE DIGIT
7118 015030 005712 TST (R2) ;DONE TO LSD?
7119 015032 001361 BNE 101$ ;NO
7120 015034 111$: RESTORE <R2,R1,R0> ;RESTORE AND RETURN
7121 015042 000207 RTS PC ;
7122 015044 000000 000001 000012 124$: .WORD 0,1.,10.,100.,1000.,10000. ;DECIMAL ORDERS OF MAGNITUDE
015052 000144 001750 023420
7123 015060 125$: ;125$ **ENDS** THE ARRAY
7124 ;
7125 ; GET A SINGLE CHAR FROM THE KEYBOARD
7126 ; R1 WILL HAVE THE SEVEN BIT CHAR INPUT, OR
7127 ; WILL HAVE -1 IF THE ROUTINE HAD TO WAIT MORE
7128 ; THAN 30 SECONDS FOR A RESPONSE
7129 ; IF THERE IS NO CTY, THE RETURNED CHAR WILL BE "N" (DEFAULT "NO")
7130 ; CALL JSR PC,CKGCHR
7131 ;
7132 015060 005737 014526 CKGCHR: TST CKTRPT ;KB EXIST?
7133 015064 100030 BPL 96$ ;NO, DON'T LOOK FOR A CHARACTER
7134 015066 SAVE <R0,R2> ;YES, ENTER INPUT WAIT
7135 015072 012702 000764 MOV #500.,R2 ;SET TIMEOUT COUNTERS
7136 015076 005000 CLR R0 ;
7137 015100 012701 177777 MOV #-1,R1 ;ASSUME NO CHARACTER WILL BE RECEIVED
7138 015104 005737 177562 TST CTICHR ;CLEAR BUFFER
7139 015110 077001 90$: SOB R0,90$ ;THIS TAKES ABOUT 1/15 SECOND TO FALL THROUGH
7140 015112 005302 DEC R2 ;DO IT ENOUGH TIMES TO GET TO 30-60 SECONDS
7141 015114 001411 BEQ 95$ ;NO INPUT WAS SEEN, RETURN WITH DEFAULT
7142 015116 105737 177560 TSTB CTISTS ;LOOK FOR CHAR
7143 015122 100372 BPL 90$ ;NOT THERE YET
7144 015124 113701 177562 MOVB CTICHR,R1 ;FINALLY GOT ONE, GRAB IT
7145 015130 042701 177600 BIC #^C177,R1 ;KEEP ONLY INTERESTING BITS
7146 015134 004737 014670 JSR PC,CKTCHR ;TYPE IT BACK TO HIM (ECHO)
7147 015140 95$: RESTORE <R2,R0> ;
7148 015144 000207 RTS PC ;
7149 ;
7150 015146 012701 000116 96$: MOV #'N,R1 ;NO CTY, RETURN "NO" FOR ANSWER
7151 015152 000207 RTS PC ;
7152 ;
7153 ; GET A CHARACTER AND RETURN Z-BIT SET IF IT IS A "Y" (CASE INSENSITIVE) -
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-3
C11DTE.MAC 10-AUG-79 16:05 TTY SUPPORT FOR TYPE OUTS
7154 ; RETURN WITH C-BIT SET IF NO CHARACTER WAS RECEIVED
7155 ;
7156 015154 004737 015060 CKGYES: JSR PC,CKGCHR ;GET ANY CHARACTER
7157 015160 120127 000040 CMPB R1,#40 ;TEST FOR IGNORED OR UNPRINTABLE
7158 015164 002406 BLT 97$ ;NO CHARACTER
7159 015166 052701 000040 BIS #40,R1 ;FORCE LOWER CASE FOR COMPARISON
7160 015172 120127 000171 CMPB R1,#'Y!40 ;IS IT A "Y"?
7161 015176 000241 CLC ;RETURN Z-BIT FOR CALLER TO BRANCH ON
7162 015200 000207 RTS PC ;
7163 015202 000261 97$: SEC ;NO REASONABLE CHARACTER TYPED
7164 015204 000207 RTS PC ;
7165 .DSABL LSB
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-4
C11DTE.MAC 10-AUG-79 16:05 REMOTE OUTPUT HANDLER
7167 .SBTTL REMOTE OUTPUT HANDLER
7168 ;
7169 015206 CKTREM: ;
7170 ; THIS ROUTINE WILL TAKE THE OUTPUT DIRECTED
7171 ; TO THE CTY AND SEND IT OVER A BUFFERED
7172 ; LINK TO BE OUTPUT ON A REMOTE DEVICE.
7173 ;
7174 ; IF THE TRANSFER IS BUFFERED, RECEIPT OF A -1 BYTE
7175 ; SHOULD FORCE THE TRANSMISSION OF THE PARTIALLY FILLED
7176 ; BUFFER TO ENSURE THE UP TO DATE REPORTING OF VITAL
7177 ; MESSAGES (DEATH, DISEASE, FAMINE, ETC.)
7178 ;
7179 015206 105037 014526 CLRB CKTRPT ;PREVENT ERROR LOOP IN THIS ROUTINE
7180 015212 010046 MOV R0,-(SP) ;
7181 015214 013700 015540 MOV CK.PTR,R0 ;PICK UP BUFFER FILL POINTER
7182 015220 120127 177777 CMPB R1,#-1 ;IF CHARACTER IS -1,
7183 015224 001003 BNE 5$ ; (NOT)
7184 015226 CALL CKBFSH ;WRITE OUT BUFFER
7185 015232 000426 BR 100$ ;AND QUIT (DON'T STORE THE -1)
7186 015234 020127 000015 5$: CMP R1,#15 ;IF CHARACTER IS <CR>,
7187 015240 001003 BNE 10$ ; (NOT)
7188 015242 005237 015536 INC CK.BFG ;SET FLAG
7189 015246 000412 BR 30$ ;AND STORE IN BUFFER
7190 015250 020127 000012 10$: CMP R1,#12 ;IF CHARACTER IS <LF>,
7191 015254 001005 BNE 20$ ; (NOT)
7192 015256 005737 015536 TST CK.BFG ;AND LAST CHAR WAS <CR>,
7193 015262 001402 BEQ 20$ ; (NOT)
7194 015264 CALL CKBFSH ;WRITE OUT BUFFER
7195
7196 015270 005037 015536 20$: CLR CK.BFG ;CLEAR <CR> FLAG
7197 015274 110120 30$: MOVB R1,(R0)+ ;STORE CHAR IN BUFFER
7198 015276 020027 015535 CMP R0,#CK.BFN ;IF AT END OF BUFFER,
7199 015302 001002 BNE 100$ ; (NOT)
7200 015304 CALL CKBFSH ;WRITE OUT BUFFER
7201 015310 010037 015540 100$: MOV R0,CK.PTR ;REFRESH BUFFER FILL POINTER
7202 015314 012600 MOV (SP)+,R0 ;
7203 015316 112737 177777 014526 MOVB #-1,CKTRPT ;RESET "REMOTE REPORTING" FLAG
7204 015324 RETURN ;RETURN TO CALLER
7205
7206
7207 ; ROUTINE TO WRITE OUT A BUFFER
7208
7209 015326 162700 015415 CKBFSH: SUB #CK.BUF,R0 ;CALCULATE BUFFER LENGTH
7210 015332 005200 INC R0 ; PLUS ONE FOR OPCODE
7211 015334 010037 015412 MOV R0,CK.LEN ;SET UP BYTE COUNT WORD
7212 015340 012700 015412 MOV #CK.LEN,R0 ;ADDRESS BUFFER START
7213 015344 010446 MOV R4,-(SP) ;
7214 015346 010546 MOV R5,-(SP) ;
7215 015350 010246 MOV R2,-(SP) ;
7216 015352 010146 MOV R1,-(SP) ;
7217 015354 005004 CLR R4 ;SET PHYSICAL ADDRESS
7218 015356 005005 CLR R5 ; BASE AT ZERO
7219 015360 013701 002044 MOV CK.DTE,R1 ;PICK UP DTE CSR ADDRESS
7220 015364 013702 002042 MOV CK.CAL,R2 ;ADDRESS LOADER CODE
7221 015370 CALL DTESND-MOP(R2) ;CALL DTE SEND ROUTINE IN LOADER
7222 015374 012601 MOV (SP)+,R1 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-5
C11DTE.MAC 10-AUG-79 16:05 REMOTE OUTPUT HANDLER
7223 015376 012602 MOV (SP)+,R2 ;
7224 015400 012605 MOV (SP)+,R5 ;
7225 015402 012604 MOV (SP)+,R4 ;
7226 015404 012700 015415 MOV #CK.BUF,R0 ;RESET FILL POINTER TO START OF BUFFER
7227 015410 RETURN
7228
7229 015412 000000 CK.LEN: .WORD 0 ;BYTE COUNT FOR DTE SEND ROUTINE
7230 015414 034 .BYTE 28. ;MOP OP CODE
7231 015415 000120 CK.BUF: .BLKB 80. ;BUFFER
7232 015535 000 CK.BFN: .BYTE 0 ; END OF BUFFER (1 BYTE SAFETY PAD)
7233 .EVEN ;
7234 015536 000000 CK.BFG: .WORD 0 ;FLAG WORD
7235 015540 015415 CK.PTR: .WORD CK.BUF ;BUFFER FILL POINTER
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 23-6
C11DTE.MAC 10-AUG-79 16:05 UNEXPECTED BUS TRAP HANDLER
7237 .SBTTL UNEXPECTED BUS TRAP HANDLER
7238 ;
7239 015542 CKBUST: CK11SC <CKEDID>,<Bus error trap>
7240 015544 072502 020163 071105 .ASCIZ \Bus Error trap from\
015552 067562 020162 071164
015560 070141 063040 067562
015566 000155
7241 .EVEN ;
7242 015570 011600 MOV (SP),R0 ;GET PC OF NEXT INST
7243 015572 162700 000002 SUB #2,R0 ;MAKE PC WITHIN BAD INST
7244 015576 004737 014602 JSR PC,CKTBOC ;PRINT THE PC WHERE WE WERE DONE IN
7245 ;;;; JMP ? ;FATAL BUS ERROR
7246 015602 000000 20$: HALT ;SOMEDAY WE MAY HAVE A REAL ABORT ROUTINE
7247 015604 000776 BR 20$ ; BUT FOR NOW, WE JUST HANG
7248 ;EDIT PAGE BREAK (FF)
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24
C11DTE.MAC 10-AUG-79 16:05 UNEXPECTED BUS TRAP HANDLER
7250
7251 .SBTTL CK11SC/TRAP INSTRUCTION HANDLER
7252 ;
7253 ; TRAP INSTRUCTION HANDLER - WE GET HERE ON ERROR IN CHK11
7254 ;
7255 ; AT HALT TIME R0 CONTAINS ADDRESS OF TRAP
7256 ;
7257 015606 010046 CHKERR: MOV R0,-(SP) ;SAVE A WORKING REGISTER
7258 015610 016646 000002 MOV 2(SP),-(SP) ;GET THE ADDRESS OF
7259 015614 162716 000002 SUB #2,(SP) ; THE TRAP INSTRUCTION
7260 015620 013646 MOV @(SP)+,-(SP) ;REPLACE THE ADDRESS WITH THE INSTR
7261 015622 032716 000010 BIT #CKEDID,(SP) ;PRINT DEVICE ID+REG MSG?
7262 015626 001405 BEQ 11$ ;NO
7263 015630 052737 000001 002034 BIS #CKFERR,CHKFLG ;YES, REMEMBER WE HAD AN ERROR
7264 015636 004737 010522 JSR PC,CKDIDT ;
7265 015642 032716 000002 11$: BIT #CKEPC,(SP) ;TYPE PC MESSAGE?
7266 015646 001421 BEQ 14$ ;NO
7267 015650 004037 014570 JSR R0,CKTCRL ;YES
7268 015654 020011 071105 067562 .ASCIZ \ Error at PC\
015662 020162 072141 050040
015670 000103
7269 .EVEN ;
7270 015672 052737 000001 002034 BIS #CKFERR,CHKFLG ;REMEMBER WE HAD AN ERROR
7271 015700 016600 000004 MOV 4(SP),R0 ;GET ADDRESS
7272 015704 005740 TST -(R0) ; OF INSTRUCTION
7273 015706 004737 014602 JSR PC,CKTBOC ;PRINT SPACE AND ADDRESS
7274 015712 032716 000024 14$: BIT #CKEMSG!CKEMSE,(SP);ANY MSG TO DO?
7275 015716 001434 BEQ 36$ ;NO
7276 ;
7277 015720 032716 000040 BIT #CKENCL,(SP) ;YES, SUPPRESS CR/LF?
7278 015724 001002 BNE 20$ ;YES
7279 015726 004737 014556 JSR PC,CKCRLF ;NO, DO CR/LF
7280 015732 032716 000110 20$: BIT #CKEDID!CKEGB,(SP);DETAIL FORMAT SPACES?
7281 015736 001404 BEQ 24$ ;NO
7282 015740 004037 014574 JSR R0,CKTSTR ;YES
7283 015744 004411 000 .ASCIZ " "
7284 015750 .EVEN ;
7285 015750 016600 000004 24$: MOV 4(SP),R0 ;GET MSG ADDRESS
7286 015754 032716 000020 BIT #CKEMSE,(SP) ;INDIRECT?
7287 015760 001401 BEQ 29$ ;NO, INLINE
7288 015762 011000 MOV (R0),R0 ;YES, GET ACTUAL ADDRESS
7289 015764 004737 014530 29$: JSR PC,CKTTXT ;TYPE OUT MSG
7290 015770 062766 000002 000004 ADD #2,4(SP) ;UPDATE RETURN ADDRESS
7291 015776 032716 000004 BIT #CKEMSG,(SP) ;WAS MSG INLINE?
7292 016002 001402 BEQ 36$ ;NO
7293 016004 010066 000004 MOV R0,4(SP) ;YES, REPLACE RETURN ADDRESS
7294 016010 032716 000100 36$: BIT #CKEGB,(SP) ;SEE IF GOOD BAD PRINT OUT
7295 016014 001454 BEQ 40$ ;BRANCH IF NOT THIS
7296 016016 004037 014570 JSR R0,CKTCRL ;
7297 016022 004411 062101 027562 .ASCIZ \ Adr/Reg =\
016030 062522 020147 000075
7298 .EVEN ;
7299 016036 016600 000010 MOV 10(SP),R0 ;GET ADR OFF THE STACK
7300 016042 004737 014602 JSR PC,CKTBOC ;PRINT ADR
7301 016046 004037 014574 JSR R0,CKTSTR ;
7302 016052 020040 042107 036440 .ASCIZ \ GD =\
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24-1
C11DTE.MAC 10-AUG-79 16:05 CK11SC/TRAP INSTRUCTION HANDLER
016060 000
7303 016062 .EVEN
7304 016062 016600 000014 MOV 14(SP),R0 ;GET "GOOD"
7305 016066 004737 014602 JSR PC,CKTBOC ;PRINT IT
7306 016072 004037 014574 JSR R0,CKTSTR ;
7307 016076 020040 042102 036440 .ASCIZ \ BD =\
016104 000
7308 016106 .EVEN
7309 016106 016600 000012 MOV 12(SP),R0 ;PRINT BAD STUFF
7310 016112 004737 014602 JSR PC,CKTBOC ;PRINT BAD
7311 016116 004037 014574 JSR R0,CKTSTR ;
7312 016122 020040 047530 020122 .ASCIZ \ XOR =\
016130 000075
7313 .EVEN
7314 016132 016646 000014 MOV 14(SP),-(SP) ;GET GOOD
7315 016136 074016 XOR R0,(SP) ;LEAVE ONLY QUESTIONABLE BITS
7316 016140 012600 MOV (SP)+,R0 ;PRINT THEM
7317 016142 004737 014602 JSR PC,CKTBOC ;
7318 016146 032716 000001 40$: BIT #CKEFAT,(SP) ;FATAL ERROR? HALT REQUIRED?
7319 016152 001426 BEQ 50$ ;NO
7320 016154 052737 000001 002034 BIS #CKFERR,CHKFLG ;YES, NOTE THAT WE HAD AN ERROR
7321 016162 004037 014570 JSR R0,CKTCRL ;
7322 016166 004411 060506 060564 .ASCIZ \ Fatal Error\<377>
016174 020154 071105 067562
016202 177562 000
7323 016206 .EVEN
7324 016206 013700 016260 MOV CKSPCD,R0 ;PUT STOPCODE IN R0, 0 IS NOT TO BE DISPLAYED
7325 016212 001401 BEQ 45$ ;IF 0
7326 016214 000000 HALT ;STOP CODE IN R0, PRESS CONTINUE
7327 ; GIVES ADR WE CAME FROM
7328 016216 016600 000004 45$: MOV 4(SP),R0 ;ADDRESS OF RETURN FROM TRAP IN R0
7329 016222 000000 HALT ;FATAL ERROR - R0 CONTAINS ERROR ADDRESS
7330 016224 000137 002106 JMP CHK.11 ;IF CONTINUE DO PROGRAM AGAIN.
7331 016230 032726 000100 50$: BIT #CKEGB,(SP)+ ;WAS THERE A GD-BD PRINT? (POP SAVED INSTUCTION)
7332 016234 001002 BNE 55$ ;YES, CLEAR STACK
7333 016236 012600 MOV (SP)+,R0 ;
7334 016240 000002 RTI ; AND EXIT
7335 ;
7336 016242 012600 55$: MOV (SP)+,R0 ;RESTORE WORKING REGISTER, CLEAN STACK
7337 016244 012666 000004 MOV (SP)+,4(SP) ;PC
7338 016250 012666 000004 MOV (SP)+,4(SP) ;PS
7339 016254 005726 TST (SP)+ ;CLEAN THE STACK
7340 016256 000002 RTI ; THEN EXIT
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24-2
C11DTE.MAC 10-AUG-79 16:05 CK11SC/TRAP INSTRUCTION HANDLER
7342 016260 000000 CKSPCD: .WORD 0 ;CONTAINS STOPCODE ON FATAL ERROR
7343 ;
7344 016262 CHKCHR:
7345 ;
7346 000000 CKDA = .-CHKCHR ;DEVICE ADDRESS OFFSET
7347 016262 000001 .BLKW 1
7348 ;
7349 000002 CKDV = .-CHKCHR ;DEVICE VECTOR OFFSET
7350 016264 000001 .BLKW 1
7351 ;
7352 000004 CKPI = .-CHKCHR ;DEVICE PI LEVEL OFFSET
7353 016266 000001 .BLKW 1
7354 ;
7355 000006 CKFLG = .-CHKCHR ;DEVICE FLAGS OFFSET
7356 ; B0-B5 = # OF DQ11 SPECIAL CHAR
7357 ; B15 = INTERRUPTED ON SYNC
7358 016270 000001 .BLKW 1
7359 ;
7360 000010 CKSPC = .-CHKCHR ;SPECIAL CHAR OFFSET
7361 016272 000004 .BLKW 4 ;SPECIAL CHARACTERS
7362 ;
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24-3
C11DTE.MAC 10-AUG-79 16:05 CK11SC/TRAP INSTRUCTION HANDLER
7364 000000 .REPT 0
7365 CKVECT CD,1,1 ;CD20 VECTOR SETUP
7366 CKVECT CR,1,1 ;CR11 VECTOR SETUP
7367 CKVECT DH,2,16. ;DH11 VECTOR SETUP
7368 CKVECT DJ,2,16. ;DJ11 VECTOR SETUP
7369 CKVECT DL.E,2,16. ;DL11 VECTOR SETUP
7370 CKVECT DM,1,16. ;DM11BB VECTOR SETUP
7371 CKVECT DMC,2,16. ;DMC11 VECTOR SETUP
7372 CKVECT DN,1,64. ;DN11 VECTOR SETUP
7373 CKVECT DP,2,32. ;DP11 VECTOR SETUP
7374 CKVECT DQ,2,16. ;DQ11 VECTOR SETUP
7375 CKVECT DS,4,16. ;DS11 VECTOR SETUP
7376 CKVECT DU,2,16. ;DU11 VECTOR SETUP
7377 CKVECT DUP,2,16. ;DUP11 VECTOR SETUP
7378 CKVECT DTE2,1,1 ;DTE20 VECTOR SETUP
7379 CKVECT KMC,2,3 ;KMC11 VECTOR SETUP
7380 CKVECT KW.P,1,1 ;KW11-P VECTOR SETUP
7381 CKVECT LE,1,2 ;LP11 VECTOR SETUP
7382 CKVECT LP,1,2 ;LP20 VECTOR SETUP
7383 CKVECT PP,1,1 ;PP11 VECTOR SETUP
7384 CKVECT PR,1,1 ;PR11 VECTOR SETUP
7385 CKVECT P6,1,16. ;PA611P VECTOR SETUP
7386 CKVECT R6,1,16. ;PA611R VECTOR SETUP
7387 CKVECT TC,1,1 ;TC11 VECTOR SETUP
7388 CKVECT TM,1,1 ;TM11 VECTOR SETUP
7389 CKVECT RC,1,1 ;RC11 VECTOR SETUP
7390 CKVECT RF,1,1 ;RF11 VECTOR SETUP
7391 CKVECT RH,1,1 ;RH11 (RJP04) VECTOR SETUP
7392 CKVECT RP,1,1 ;RP11-C VECTOR SETUP
7393 CKVECT TA,1,1 ;TA11 VECTOR SETUP
7394 CKVECT RK,1,1 ;RK11 VECTOR SETUP
7395 CKVECT RX,1,1 ;RX11 VECOR SETUP
7396 .ENDR ;END OF SUPPRES VECTORS
7397 ;
7398 016302 062515 020155 071105 CKMG01: .ASCIZ \Mem Err\<377>
016310 177562 000
7399 016313 102 072151 062040 CKMG02: .ASCIZ \Bit did not clear\<377>
016320 062151 067040 072157
016326 061440 062554 071141
016334 000377
7400 016336 064502 020164 064544 CKMG03: .ASCIZ \Bit did not set\<377>
016344 020144 067556 020164
016352 062563 177564 000
7401 016357 111 072156 071145 CKMG04: .ASCIZ \Interrupt did not occur\<377>
016364 072562 072160 062040
016372 062151 067040 072157
016400 067440 061543 071165
016406 000377
7402 016410 067111 062564 071162 CKMG05: .ASCIZ \Interrupted to wrong vector\<377>
016416 070165 062564 020144
016424 067564 073440 067562
016432 063556 073040 061545
016440 067564 177562 000
7403 016445 156 072157 063040 CKMG06: .ASCIZ \not found\<377>
016452 072557 062156 000377
7404 016460 067151 062564 071162 CKMG07: .ASCIZ \interrupted when not enabled\<377>
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24-4
C11DTE.MAC 10-AUG-79 16:05 CK11SC/TRAP INSTRUCTION HANDLER
016466 070165 062564 020144
016474 064167 067145 067040
016502 072157 062440 060556
016510 066142 062145 000377
7405 ;
7406 .EVEN
7407 002164 CKBLK=CKINTS ;REMOVE THIS AREA AS A BUFFER FOR THE DH11 TEST
7408 ;
7409 016516 000040 .BLKW 40 ;STACK FOR CHECK-11
7410 016616 CHKSTK =. ;END OF STACK
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 24-5
C11DTE.MAC 10-AUG-79 16:05 MODULE END
7412 .SBTTL MODULE END
7413 .SBTTL PROGRAM END
7414 016616 CHKEND= . ;COMPUTE AND PRINT PROGRAM SIZE
7415 ;
7416 ; EEEEEEEEEEEEEE NN NN DDDDDDDDDD !!
7417 ; EE NNNN NN DD DD !!
7418 ; EE NN NN NN DD DD !!
7419 ; EE NN NN NN DD DD !!
7420 ; EEEEEEEEEE NN NN NN DD DD !!
7421 ; EE NN NN NN DD DD !!
7422 ; EE NN NN NN DD DD !!
7423 ; EE NN NNNN DD DD
7424 ; EEEEEEEEEEEEEE NN NN DDDDDDDDDD !!
7425 ;
7426 ;
7427 ;**********************************************************************
7428 ;
7429 ; END OF CHK11 - THE ONLY ONCE ONLY SYSTEM DIAGNOSTIC YOU'LL EVER NEED
7430 ;
7431 ;**********************************************************************
7432 ;
7433 000000 .END DTEMOP ;START AT LOADER START
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
ALLBTS= 177777 752# 4221 5583 5586 6529 6532 6535 6796 6808
BIT0 = 000001 3081# 3179 3181 3401
BIT1 = 000002 3082# 3178 3401
BIT10 = 002000 3091# 3174
BIT11 = 004000 3092# 3173
BIT12 = 010000 3093# 3172
BIT13 = 020000 3094# 3158 3171
BIT14 = 040000 3095# 3148 3170
BIT15 = 100000 3096# 3147 3157 3169
BIT2 = 000004 3083#
BIT3 = 000010 3084#
BIT4 = 000020 3085#
BIT5 = 000040 3086# 3119
BIT6 = 000100 3087# 3167 3177
BIT7 = 000200 3088# 3176
BIT8 = 000400 3089# 3175
BIT9 = 001000 3090#
BPARER= 000020 1368#
BPTLVL= 000007 788#
BPTVEC= 000014 788#
BR0 = 000000 756#
BR1 = 000040 757#
BR2 = 000100 758#
BR3 = 000140 759#
BR4 = 000200 760#
BR5 = 000240 761#
BR6 = 000300 762# 5374
BR7 = 000340 763# 4131 4157 4165 4912 5222 5284 5384 5426 5435 5474 5543 6542
6774
BSEL0 = 000000 1068#
BSEL1 = 000001 1071#
BSEL2 = 000002 1068#
BSEL3 = 000003 1071#
BSEL4 = 000004 1068#
BSEL5 = 000005 1071#
BSEL6 = 000006 1068#
BSEL7 = 000007 1071#
BSFACT= 000100 1618# 4501 4516 4517 4614 4727
BUSA16= 040000 1336# 3148# 3253 3407 3412 3654
BUSA17= 100000 1335# 3147# 3253 3407
BYTCNT 001324 3345 3702#
B.DM11= 170500 1038#
B0 = 000001 735# 752 885 945 947 977 991 1009 1020 1030 1047 1054# 1088
1104 1121 1130 1150 1169 1374 1377 1794 1821 1879 1911 3793 4106
4981 5040 7008
B1 = 000002 736# 884 946 947 976 992 1009 1030 1047 1054# 1087 1103 1120
1131 1170 1372 1820 1842 1844 1846 1848 1878 1904 1906 1908 1910
3794 4984 5047
B10 = 002000 745# 879 916 966 998 1040 1089 1113 1141 1160 1292 1362 1811
1833 1834 1835 1836 1869 1890 1895 1896 1897 1898
B11 = 004000 746# 878 917 965 999 1039 1089 1098 1112 1142 1161 1292 1360
1791 1810 1828 1868 1889
B12 = 010000 747# 877 918 936 964 1000 1010 1080 1097 1111 1143 1162 1178
1359 1809 1827 1867 1888
B13 = 020000 748# 876 919 932 935 963 1001 1011 1110 1163 1257 1346 1358
1808 1826 1866 1885 1887
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-1
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
B14 = 040000 749# 875 920 931 934 940 962 1002 1012 1079 1109 1256 1336
1357 1807 1865 1886 1887
B15 = 100000 750# 752 874 921 933 939 961 1003 1013 1078 1108 1145 1165
1255 1335 1345 1356 1650 1781 1790 1806 1825 1864 1883 4107
B2 = 000004 737# 906 943 975 993 1009 1021 1030 1047 1054# 1086 1102 1132
1152 1171 1371 1819 1843 1844 1847 1848 1877 1905 1906 1909 1910
3795
B3 = 000010 738# 974 994 1009 1030 1047 1054# 1085 1101 1119 1133 1153 1172
1369 1818 1845 1846 1847 1848 1876 1907 1908 1909 1910 3796
B4 = 000020 739# 942 973 1009 1030 1046 1054# 1084 1118 1134 1154 1173 1368
1817 1840 1875 1902 3797
B5 = 000040 740# 941 971 995 1009 1030 1045 1054# 1083 1117 1135 1155 1174
1196 1367 1816 1839 1874 1901 3799 4987 5050
B6 = 000100 741# 883 898 905 912 970 996 1009 1022 1030 1044 1054# 1082
1100 1116 1136 1156 1175 1354 1366 1638 1639 1652 1783 1793 1815
1838 1873 1900 3800
B7 = 000200 742# 882 913 969 997 1009 1023 1030 1043 1054# 1081 1099 1115
1137 1157 1176 1365 1640 1651 1782 1792 1814 1837 1872 1899
B8 = 000400 743# 881 914 968 1042 1089 1139 1158 1262 1364 1813 1830 1832
1834 1836 1871 1890 1892 1894 1896 1898
B9 = 001000 744# 880 915 967 1041 1089 1114 1140 1159 1363 1812 1831 1832
1835 1836 1870 1890 1893 1894 1897 1898
CDBA = 000004 831# 5572 5574* 5575 5577* 5631 5633* 5634 5636*
CDCC = 000002 828#
CDDB = 000006 833# 850
CDHRSZ= 000010 864#
CDST = 000000 804#
CDST2 = 000006 850# 5570
CD.B16= 000020 806# 808
CD.B17= 000040 806# 808
CD.CER= 100000 835#
CD.COL= 000120 829#
CD.DER= 004000 805#
CD.DLT= 002000 805#
CD.EOF= 020000 805#
CD.ERR= 100000 805# 5600
CD.GO = 000001 807# 5598
CD.HPE= 000004 807#
CD.IE = 000100 806# 5580 5598
CD.LVL= 000004 800# 4997
CD.NXM= 001000 806#
CD.OFL= 010000 805# 5588
CD.ONL= 000010 807#
CD.PAC= 000002 807# 5580
CD.PCK= 020000 852#
CD.PWC= 000400 806# 5595
CD.RCK= 040000 852#
CD.RDC= 040000 805#
CD.RDY= 000200 806# 5600
CD.SCK= 010000 852#
CD.STS= 177160 803# 4997
CD.VEC= 000230 801# 4997
CD.XAD= 000060 808# 5580 5598
CHKBIT 010400 4217 4234 5283# 5579 5582 5585 5643 5891 5895 6368 6417 6421 6424
6440 6443 6525 6528 6531 6534 6763 6786 6790 6795 6801 6807
CHKCD 006056 4997# 5642*
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-2
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
CHKCHR 016262 4212* 4214* 4230* 4232* 4875* 4876* 5214* 5218* 5219* 5221* 5226 5230 5358
5390 5392 5396* 5422* 5450 5452 5457* 5458* 5462 5464 5650* 6367* 6455*
7344# 7346 7349 7352 7355 7360
CHKCKB 002432 4224 4228#
CHKCKD 002660 4188 4270#
CHKCLK 005422 4872#
CHKCOR 004440 4584 4588#
CHKCR 006112 4999# 5578*
CHKCTY 002246 4171 4175#
CHKDEV 007464 4997 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010
5011 5012 5013 5014 5016 5041 5042 5043 5044 5045 5048 5051 5052
5097#
CHKDTE 007012 5016#
CHKEND= 016616 7414#
CHKERR 015606 4169 7257#
CHKFLD 011504 4140* 5112* 5114* 5115 5138 5148 5150* 5173 5213 5547#
CHKFLG 002034 4105# 4141* 4176* 4228* 4873* 5217* 5343 5363* 6571 6575* 6582 6586* 7263*
7270* 7320*
CHKFLV 011502 4139* 5103 5207 5255 5256* 5546#
CHKINL 010626 4220 4915 5371# 5608 5665 6378 6551
CHKINT 011340 4156 5504# 5509
CHKISZ= 000012 4164 5509#
CHKMAP 003434 4429 4433#
CHKMMG 003536 4455 4463#
CHKRP 006576 5010#
CHKSTK= 016616 4136 7410#
CHKTIM 005622 4883* 4888 4906* 4911#
CHK.11 002106 3294 4131# 7330
CHK.90 007406 5060#
CI.INE= 000100 898# 4235
CKACD$= 002102 4997#
CKACD1= ****** U 4997
CKACR$= 002102 4999#
CKACR1= ****** U 4999
CKADLX= 002102 4122
CKADL.= 002102 5043# 5044# 5045#
CKADMC= 002102 5048#
CKADTE= 002102 5016#
CKADUP= 002102 5042#
CKADZ$= 002102 5052#
CKADZ1= ****** U 5052
CKAKG$= 002102 5000#
CKAKG1= 002102 4125 5000
CKAKMC= 002102 5041# 5051#
CKAKW.= 002102 5014#
CKAKW1= 002102 4124 4921
CKALE$= 002102 5001#
CKALE1= ****** U 5001
CKALP$= 002102 5002#
CKALP1= ****** U 5002
CKAMEM= 002102 4123
CKAPP$= 002102 5003#
CKAPP1= ****** U 5003
CKAPR$= 002102 5004#
CKAPR1= ****** U 5004
CKARC$= 002102 5007#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-3
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
CKARC1= ****** U 5007
CKARF$= 002102 5008#
CKARF1= ****** U 5008
CKARH$= 002102 5009#
CKARH1= ****** U 5009
CKARK$= 002102 5012#
CKARK1= ****** U 5012
CKARP$= 002102 5010#
CKARP1= ****** U 5010
CKARX$= 002102 5013#
CKARX1= ****** U 5013
CKATA$= 002102 5011#
CKATA1= ****** U 5011
CKATC$= 002102 5005#
CKATC1= ****** U 5005
CKATM$= 002102 5006#
CKATM1= ****** U 5006
CKBFSH 015326 5064 7184 7194 7200 7209#
CKBLK = 002164 7407#
CKBUST 015542 4182 4187 4880 5120 5146 5571 5612 7239#
CKCADD= 000034 4998#
CKCDEV 006056 4996# 4998
CKCEND 007406 5056#
CKCLK9 005624 4889 4894 4898 4902 4912#
CKCOR 005030 4681 4692#
CKCPSZ= 002000 4719# 4725 4727
CKCPU 002660 4270 4276#
CKCPUE 003360 4348 4351 4354 4357 4360 4363 4366#
CKCPUN 003112 4331# 4366*
CKCRLF 014556 5170 7016# 7027 7279
CKDA = 000000 4212* 4230* 4875* 5218* 5358 6455* 7346#
CKDEVN 002036 4108# 4216* 4877* 5198* 5236* 5237 5353 6984*
CKDIDT 010522 5343# 7264
CKDLXB 003434 4376 4383#
CKDL10 005706 4927#
CKDNAM 002040 4109# 4215* 4233* 4872* 5100* 5177 5348 6569 6580
CKDN2X= 000043 161# 4980 4981 4984 4987 5039 5040 5047 5050
CKDV = 000002 4214* 4232* 4876* 5219* 5226 5390 5392 5450 5452 6367* 6455* 7349#
CKEDID= 000010 3796# 4891 4895 4899 5153 5295 5305 5312 5387 5393 5447 5453 5465
5477 5603 5660 6374 6383 6388 6461 6476 6572 6583 6606 6635 6721
6760 7239 7261 7280
CKEFAT= 000001 3793# 4452 7318
CKEGB = 000100 3800# 4770 4781 5295 5305 5312 5393 5453 5465 6461 6476 6606 6635
6721 7280 7294 7331
CKEMSE= 000020 3797# 4307 4450 4504 4506 4524 4531 4551 4561 4563 4649 4657 4739
4770 4781 4891 4895 4899 5153 5181 5295 5305 5312 5345 5350 5355
5360 5387 5393 5447 5453 5465 5477 5590 5603 5614 5637 5647 5660
6374 6383 6388 6461 6476 6572 6583 6606 6635 6721 6760 6814 7239
7274 7286
CKEMSG= 000004 3795# 4307 4450 4504 4506 4524 4531 4551 4561 4563 4649 4657 4739
4770 4781 4891 4895 4899 5153 5181 5295 5305 5312 5345 5350 5355
5360 5387 5393 5447 5453 5465 5477 5590 5603 5614 5637 5647 5660
6374 6383 6388 6461 6476 6572 6583 6606 6635 6721 6760 6814 7239
7274 7291
CKENCL= 000040 3799# 4649 5181 5350 5355 5360 6760 7277
CKEPC = 000002 3794# 4307 4561 4563 4739 4770 4781 4891 4895 4899 5295 5305 5312
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-4
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
5387 5393 5447 5453 5465 5477 5603 5660 6374 6383 6388 6461 6476
6606 6635 6721 7265
CKFERR= 000001 4106# 7263 7270 7320
CKFIDT= 100000 4107# 4176 4228 4873 5217 5343 5363
CKFLAG 011336 5423* 5455 5459* 5495#
CKFLG = 000006 5221* 7355#
CKGCHR 015060 7132# 7156
CKGYES 015154 7156#
CKHALT 002104 4121#
CKINT 010744 5420# 6765 6823
CKINTE 011324 5448 5454 5468 5478 5485 5488 5490#
CKINTS 002164 4154# 7407
CKINT1 010764 5426# 5486
CKINT2 010770 5427# 5446
CKINT3 010776 5429# 5489
CKINT6 011232 5463 5469#
CKINT7 011314 5431 5487#
CKMDCK 014024 6596 6621 6689 6713#
CKMDEX 013746 6600 6625 6684#
CKMDRD 014130 6561 6565 6602 6627 6687 6715 6737#
CKMDWR 013776 6564 6579 6701# 6714
CKMDXT 013732 6576 6671#
CKMG01 016302 4770 4781 7398#
CKMG02 016313 5295 5312 7399#
CKMG03 016336 5305 7400#
CKMG04 016357 5387 5447 7401#
CKMG05 016410 5393 5453 7402#
CKMG06 016445 7403#
CKMG07 016460 5477 7404#
CKMPAR 005422 4733 4788#
CKNAME 001350 3748# 4043 4237
CKNODV= ****** U 5161
CKPI = 000004 5214* 5396* 5422* 5457* 5458* 5462 5464 5650* 6455* 7352#
CKPOPJ 002102 4120# 4997 4999 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010
5011 5012 5013 5052
CKSPC = 000010 7360#
CKSPCD 016260 4142* 4770* 4781* 7324 7342#
CKSTD = ****** U 4979 5017
CKTBOC 014602 5204 7041# 7244 7273 7300 7305 7310 7317
CKTCHR 014670 4247 4249 4253 7004 7043 7082# 7117 7146
CKTCRL 014570 4240 4266 4276 4369 4465 4604 4637 4713 4730 4918 4977 5060 7027#
7267 7296 7321
CKTDEC 014764 4373 4646 7105#
CKTOCT 014616 4244 4251 4662 4673 5171 5190 5354 5359 7050#
CKTREM 015206 7100 7169#
CKTRPT 014526 4177* 4186* 4209* 6991# 7093 7098 7132 7179* 7203*
CKTSTR 014574 4255 4260 4652 4665 4668 4674 5200 6981 7016 7034# 7086 7282 7301
7306 7311
CKTTXT 014530 4238 4259 4264 4367 5176 5178 5188 5349 7001# 7034 7289
CKVCD1= ****** U 4997
CKVCR1= ****** U 4999
CKVDL.= ****** U 5043 5044 5045
CKVDMC= ****** U 5048
CKVDTE= ****** U 5016
CKVDUP= ****** U 5042
CKVDZ1= ****** U 5052
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-5
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
CKVEDI= 000021 3750 3755#
CKVKG1= ****** U 5000
CKVKMC= ****** U 5041 5051
CKVKW.= ****** U 5014
CKVLE1= ****** U 5001
CKVLP1= ****** U 5002
CKVMAJ= 000002 3750 3753#
CKVMIN= 000101 3750 3754#
CKVPP1= ****** U 5003
CKVPR1= ****** U 5004
CKVRC1= ****** U 5007
CKVRF1= ****** U 5008
CKVRH1= ****** U 5009
CKVRK1= ****** U 5012
CKVRP1= ****** U 5010
CKVRX1= ****** U 5013
CKVTA1= ****** U 5011
CKVTC1= ****** U 5005
CKVTM1= ****** U 5006
CKVWHN 001412 3751 3757#
CKVWHO 001424 3751 3759#
CKWRD 003110 4280 4284 4330#
CK.BFG 015536 7188* 7192 7196* 7234#
CK.BFN 015535 7198 7232#
CK.BUF 015415 5063 7209 7226 7231# 7235
CK.CAL 002042 4111# 4135* 5069 7220
CK.DTE 002044 4112# 4132* 5068 7219
CK.LEN 015412 7211* 7212 7229#
CK.PTR 015540 7181 7201* 7235#
CK04 003314 4319 4347#
CK05 003322 4292 4350#
CK20 003330 4295 4353#
CK34 003336 4327 4356#
CK40 003344 4294 4359#
CK45 003352 4328 4362#
CLKENB= 000100 1639#
CLKLVL= 000004 1632#
CLKVEC= 000100 1634# 4876 4881 4882* 4914*
CLKWRD= 177546 1636# 4874 4917*
CLRSR0 000720 3271* 3504#
CO.INE= 000100 905# 4218 4219
CO..MM= 000004 906# 4218
CR.BSY= 001000 880# 5645
CR.CDN= 000200 882# 5656
CR.CFD= 000001 885# 5653
CR.DAT= 177162 887#
CR.DNE= 040000 875#
CR.EJT= 000002 884# 5644
CR.ERR= 100000 874# 5656
CR.HCK= 020000 876#
CR.INE= 000100 883# 5644 5653 5659 5667
CR.LVL= 000006 868# 4999 5650
CR.MCK= 010000 877#
CR.OLN= 002000 879#
CR.RDY= 000400 881#
CR.STS= 177160 872# 4999
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-6
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
CR.TIM= 004000 878#
CR.VEC= 000230 869# 4999
CR0STS= 177160 871#
CSTAT = 000034 1355# 3168# 3315* 3409* 3502 3510 3549* 3551* 3557* 3593* 3604* 3634* 3654*
6370
CTICHR= 177562 894# 4181 7138 7144
CTILVL= 000004 896#
CTISTS= 177560 893# 4180 4229 7142
CTIVEC= 000060 895# 4232
CTOCHR= 177566 901# 4179 7097*
CTOLVL= 000004 903#
CTOSTS= 177564 900# 4178 4211 7095
CTOVEC= 000064 902# 4214
CVCD$$= 000000 4997#
CVCR$$= 000000 4999#
CVDL.E= 000000 5043# 5044# 5045#
CVDMC$= 000000 5048#
CVDTE2= 000000 5016#
CVDUP$= 000000 5042#
CVDZ$$= 000000 5052#
CVKG$$= 000000 5000#
CVKMC$= 000000 5041# 5051#
CVKW.P= 000000 5014#
CVLE$$= 000000 5001#
CVLP$$= 000000 5002#
CVPP$$= 000000 5003#
CVPR$$= 000000 5004#
CVRC$$= 000000 5007#
CVRF$$= 000000 5008#
CVRH$$= 000000 5009#
CVRK$$= 000000 5012#
CVRP$$= 000000 5010#
CVRX$$= 000000 5013#
CVTA$$= 000000 5011#
CVTC$$= 000000 5005#
CVTM$$= 000000 5006#
DEBUG = 000001 269
DEXDON= 000004 1371#
DEXWD1= 000006 1340# 3152#
DEXWD2= 000004 1339# 3151#
DEXWD3= 000002 1338# 3150# 3502 3510
DGUTS = 000000 257 259
DHBASE= 160020 909#
DHRFER= 020000 932#
DHROVR= 040000 931#
DH.AEE= 100000 939#
DH.BAR= 000012 926#
DH.BCR= 000010 925#
DH.BRK= 000014 927#
DH.CAR= 000006 924#
DH.CL5= 000000 944#
DH.CL6= 000001 945#
DH.CL7= 000002 946#
DH.CL8= 000003 947#
DH.CNX= 000400 914#
DH.DOV= 040000 934#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-7
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
DH.LPR= 000004 923#
DH.LVL= 000007 910#
DH.NRC= 000002 922#
DH.NXM= 002000 916#
DH.PEN= 000020 942#
DH.RIE= 000100 912#
DH.SIE= 010000 918#
DH.SSR= 000016 928#
DH.TIE= 020000 919#
DH.VDP= 100000 933#
DH..FE= 020000 935#
DH..HD= 040000 940#
DH..MC= 004000 917#
DH..MM= 001000 915#
DH..OP= 000040 941#
DH..PE= 010000 936#
DH..RI= 000200 913#
DH..SI= 040000 920#
DH..TI= 100000 921#
DH.2SB= 000004 943#
DIAG1 = 000030 1352# 3165#
DIAG2 = 000032 1353# 3166# 3315*
DIAG3 = 000036 1376# 3180# 3549*
DLBASE= 100000 956# 960
DLDADR= 175610 982#
DLDSIZ= 000010 983#
DLPENB= 000040 972#
DLRBUF= 000002 1006#
DLRSTS= 000000 988#
DLXBUF= 000006 1027#
DLXSTS= 000004 1017#
DLYCNT= 000000 1334# 3146# 3409* 3551* 3593* 3654* 6370
DLYMSK= 037777 1337# 3149#
DL.BAS= 100000 955# 956
DL.BRK= 000001 1020#
DL.B00= 000001 977#
DL.B01= 000002 976#
DL.B04= 000020 973#
DL.CAR= 010000 1000#
DL.CNX= 002000 966#
DL.CPE= 000400 968#
DL.CTS= 020000 1001#
DL.CWC= 000100 970#
DL.DIE= 000040 995#
DL.DSC= 100000 1003#
DL.DTR= 000002 992#
DL.ERE= 000010 974#
DL.ERR= 100000 1013#
DL.E.L= 000000 5043 5044 5045
DL.INE= 000004 975#
DL.LVL= 000004 958#
DL.NXM= 004000 965#
DL.OVR= 040000 1012#
DL.PAR= 001000 967#
DL.PEN= 000040 971# 972
DL.RGO= 004000 999#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-8
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
DL.RIE= 000100 996#
DL.RNG= 040000 1002#
DL.ROK= 000200 997#
DL.RTS= 000004 993#
DL.STS= 100000 960#
DL.VEC= 000170 957#
DL.WCO= 000200 969#
DL.XIE= 000100 1022#
DL.XOK= 000200 1023#
DL..FE= 020000 1011#
DL..MM= 000004 1021#
DL..PE= 010000 1010#
DL..RC= 000377 1009#
DL..RE= 000001 991#
DL..XC= 000377 1030#
DL.10C= 010000 964#
DL.10I= 020000 963#
DL.11C= 040000 962#
DL.11I= 100000 961#
DL.2RC= 002000 998#
DL.2XM= 000010 994#
DL10AD= 001430 3783
DMBASE= 170500 1034#
DMC.LV= 000005 1051# 5048
DM.ALI= 000017 1047#
DM.BSY= 000020 1046#
DM.DNE= 000200 1043#
DM.ENB= 000040 1045#
DM.IEN= 000100 1044#
DM.INI= 002000 1040#
DM.LVL= 000007 1036#
DM.SCN= 004000 1039#
DM.STP= 000400 1042#
DM.TIM= 000120 182#
DM..MM= 001000 1041#
DNBASE= 175200 1076#
DN.ACR= 040000 1079#
DN.DGT= 007400 1089#
DN.DLO= 010000 1080#
DN.DNE= 000200 1081#
DN.DSS= 000040 1083#
DN.LVL= 000007 1075#
DN.PND= 000020 1084#
DN.PWI= 100000 1078#
DN..CR= 000001 1088#
DN..DP= 000002 1087#
DN..IE= 000100 1082#
DN..ME= 000004 1086#
DN..MM= 000010 1085#
DON10C= 040000 1357# 3170# 3548
DON11C= 000100 1366# 3177# 3621
DP.CAR= 004000 1112#
DP.CTS= 002000 1113#
DP.DTR= 000001 1121#
DP.LVL= 000007 1093#
DP.MIS= 000020 1118#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-9
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
DP.MRY= 010000 1111#
DP.RIE= 000100 1100#
DP.RNG= 020000 1110#
DP.ROF= 040000 1109#
DP.RTS= 001000 1114#
DP.SIE= 000040 1117#
DP.TIE= 000100 1116#
DP..CF= 100000 1108#
DP..CP= 010000 1097#
DP..HD= 000002 1103#
DP..IS= 000002 1120#
DP..MM= 000004 1102#
DP..MR= 000010 1101#
DP..MT= 000010 1119#
DP..RA= 004000 1098#
DP..RD= 000200 1099#
DP..SS= 000001 1104#
DP..TD= 000200 1115#
DQ.BCC= 000100 1175#
DQ.CAR= 010000 1162#
DQ.CHR= 007400 1138#
DQ.CIE= 000020 1134# 1146
DQ.CTS= 020000 1163#
DQ.DIE= 000020 1154#
DQ.DSF= 100000 1165#
DQ.DSR= 002000 1160#
DQ.DTR= 001000 1159#
DQ.EIE= 000010 1153#
DQ.ENQ= 002000 1141#
DQ.ETB= 000400 1139#
DQ.ETX= 001000 1140#
DQ.HD = 000010 1133#
DQ.LVL= 000007 1125#
DQ.MBM= 000020 1179#
DQ.MC = 000040 1196#
DQ.MEM= 010000 1178#
DQ.RAC= 010000 1143# 1146
DQ.RCL= 000002 1170#
DQ.RDP= 000200 1137#
DQ.RDS= 000100 1136#
DQ.RGO= 000001 1130# 1146
DQ.RIE= 000040 1135#
DQ.RKL= 110021 1146#
DQ.RLE= 000010 1172#
DQ.RNG= 004000 1161#
DQ.RNX= 000040 1174#
DQ.RTS= 000400 1158#
DQ.SEC= 000004 1132# 1152#
DQ.SSY= 000002 1131#
DQ.SYN= 004000 1142#
DQ.VCH= 100000 1145# 1146
DQ.VRC= 000200 1176#
DQ.XCL= 000001 1169#
DQ.XDP= 000200 1157#
DQ.XDS= 000100 1156#
DQ.XGO= 000001 1150#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-10
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
DQ.XIE= 000040 1155#
DQ.XLE= 000004 1171#
DQ.XNX= 000020 1173#
DRESET= 000100 1354# 3167# 3315 6391
DS.AD1= 020000 1257#
DS.AD2= 040000 1256#
DS.AD3= 100000 1255#
DS.AUX= 175600 1248#
DS.DTR= 000440 1289# 1291 1292
DS.DVA= 175400 1249# 5228
DS.IVA= 000400 1262#
DS.LVL= 000007 1251#
DS.RDR= 000002 1277#
DS.RGO= 006455 1292#
DS.RST= 000000 1278#
DS.VEC= 000400 1250#
DS.XDR= 000006 1275#
DS.XGO= 000455 1291#
DS.XST= 000004 1276#
DS.ZAP= 170000 1290#
DTEMOP 000000 3200# 4043 7433
DTERCA 001034 3347 3388 3436 3603#
DTERCV 001026 3340 3442 3523 3591#
DTESND 000764 3327 3453 3547# 7221
DTE2.L= 000000 5016
DUPACT= 004000 1388#
DUPCAR= 010000 1388#
DUPCRS= 000000 1387#
DUPCTS= 020000 1388#
DUPDIE= 000040 1389#
DUPDSA= 100000 1388#
DUPDSB= 000001 1390#
DUPDSR= 001000 1389#
DUPDTR= 000002 1390# 6416
DUPPDM= 100000 1425#
DUPPIC= 001000 1425#
DUPPSR= 000002 1424#
DUPP2M= 010000 1425#
DUPP2S= 000377 1426#
DUPRAB= 002000 1412#
DUPRCE= 000020 1389#
DUPRCR= 010000 1412#
DUPRDB= 000002 1411# 1424
DUPRDN= 000200 1389#
DUPRDT= 000377 1413#
DUPREM= 001000 1412#
DUPRER= 100000 1412#
DUPRIE= 000100 1389# 6416
DUPRNG= 040000 1388#
DUPROV= 040000 1412#
DUPRSM= 000400 1412#
DUPRTS= 000004 1390#
DUPSSY= 000400 1389# 6418
DUPTAC= 001000 1438#
DUPTCS= 000004 1436#
DUPTDB= 000006 1457#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-11
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
DUPTDL= 100000 1437#
DUPTDN= 000200 1438#
DUPTHD= 000010 1438# 6422
DUPTIE= 000100 1438# 6422
DUPTMC= 020000 1437# 6422
DUPTMI= 002000 1438# 6422
DUPTMT= 040000 1437#
DUPTM0= 004000 1437# 6422
DUPTM1= 010000 1437# 6422
DUPTRS= 000400 1438#
DUPTSN= 000020 1438# 6422
DUPXAB= 002000 1458# 6425
DUPXCI= 040000 1458#
DUPXCO= 010000 1458#
DUPXDB= 000377 1459# 6425
DUPXEM= 001000 1458# 6425
DUPXMT= 004000 1458#
DUPXSM= 000400 1458# 6425
DUP.LV= 000006 1383# 5042
DUP2RC= 002000 1388#
DUP2TX= 000010 1390#
DZ.CLR= 000020 1475#
DZ.INI= 050140 1480#
DZ.LVL= 000000 5052
DZ.RCV= 010000 1486#
DZ.RIE= 000100 1477# 1480 6441
DZ.SAE= 010000 1478# 1480
DZ.SCN= 000040 1476# 1480 6441
DZ.TIE= 040000 1479# 1480 6441
D$$BUG= ****** U 3201 3313 3359 3369 3402 3413 3416 3419 3467 3509 3572 3625 3632
3642
D$$CHK= ****** U 3314 3515 3553 3577 3647
D.CNTF= 000020 5123* 5133*
D.CNTP= 000006 5156 5158*
D.DIAG= 000012 5215
D.FRSV= 000022 5124* 5224 5226*
D.FVFD= 000026 5106 5129* 5199
D.HINC= 000004 5111 5136 5234
D.MAIN= 000014 5231
D.MAXL= 000002 5140 5151
D.NAMP= 000010 5100
D.NEXT= 000030 5259
D.VINC= 000003 5134 5232
D.VMUL= 000005 5104 5126 5205 5253
D.$$$$= 000000 4997 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010
5011 5012 5013 5014 5016 5041 5042 5043 5044 5045 5048 5051 5052
ED.HIS= 000001 3756# 4254
EMTLVL= 000007 791#
EMTVEC= 000030 791#
ENBGO = 000103 1700#
ERR10C= 010000 1359# 3172# 3548
ERR11C= 000001 1374# 1375 3179# 3621
ERR11S= 000002 1373#
EXCLUD= 000000 165# 175 177 178 179 184 185 186 187 188 190 193 195
198 199 200 201 202 203 204 205 206
E$$CHK= 000000 3012# 3314 3348 3515 3519 3569 3624 3631 3639
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-12
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
FLOATD= 160000 3781 4140
FLOATV= 000300 3780 4139
FTCD20= 177777 173# 5566 5567
FTCR11= 177777 174# 5629 5630
FTDH11= 000000 175# 176 181 5679 5680
FTDJ11= 000000 177#
FTDL1A= 000000 179# 5874 5875
FTDL1E= 177777 180# 5887 5888
FTDL10= 000000 178# 4381 4384 4928 5323
FTDMC = 177777 183# 194 6507 6508
FTDM11= 000000 181# 5908 5909
FTDN11= 000000 184# 5956 5957
FTDP11= 000000 185# 5971 5972
FTDQ11= 000000 186# 187 5995 5996
FTDS11= 000000 188# 6307 6308
FTDTE = 177777 189# 6359 6360
FTDUP1= 177777 191# 6413 6414
FTDU11= 000000 190# 6401 6402
FTDZ11= 177777 192# 6437 6438
FTKG11= 000000 193# 3777
FTKMC = 177777 194# 195 6506 6559 6677
FTKMCL= 000000 195# 6536 6587 6644
FTLE11= 177777 196# 6755 6756
FTLP20= 177777 197# 6771 6772
FTMD11= 000000 198# 6833 6834
FTPA61= 000000 199#
FTPP11= 000000 200# 6878 6879
FTPR11= 000000 201# 6894 6895
FTP611= 000000 6852 6853
FTRH11= 000000 202# 6923 6924
FTRK11= 000000 203#
FTRX11= 000000 204#
FTR611= 000000 6865 6866
FTTC11= 000000 205# 6937 6938
FTTM11= 000000 206# 6970 6971
FT.CHK= 000001 276
FT.HLP= 000001 267
FT.ROM= ****** U 4851
FT.87S= ****** U 1629
IDZ0 = 010000 835#
IDZ1 = 020000 835#
IDZ2 = 040000 835#
ILSLVL= 000007 787#
ILSVEC= 000010 787#
INCLUD= 177777 164# 173 174 180 181 183 189 191 192 194 196 197
INTROF= 000010 1369# 1370 6380
INTRON= 000040 1367# 6371
INTSON= 000001 1375# 6372 6381
INT11C= 002000 1362# 3174# 3564
INT11S= 004000 1361# 6377
IOTLVL= 000007 789#
IOTVEC= 000020 789#
IZ00 = 001000 835#
IZ01 = 000400 835#
IZ02 = 000200 836#
IZ03 = 000100 836#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-13
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
IZ04 = 000040 836#
IZ05 = 000020 836#
IZ06 = 000010 836#
IZ07 = 000004 836#
IZ08 = 000002 836#
IZ09 = 000001 836#
IZ11 = 002000 835#
IZ12 = 004000 835#
I.DSRD= 000007 1282# 1292
I.DSRS= 000006 1283#
I.DSXD= 000007 1284# 1291
I.DSXS= 000006 1285#
I.INTC= 000004 5437 5439 5479 5481
I.INTS= 000002 5429 5441
I.RTRN= 000006 5490
I.$$$$= 000000 6765 6823
KDSAR0= 172360 1607#
KDSAR1= 172362 1607#
KDSAR2= 172364 1607#
KDSAR3= 172366 1607#
KDSAR4= 172370 1607#
KDSAR5= 172372 1607#
KDSAR6= 172374 1607#
KDSAR7= 172376 1607#
KDSDR0= 172320 1607#
KDSDR1= 172322 1607#
KDSDR2= 172324 1607#
KDSDR3= 172326 1607#
KDSDR4= 172330 1607#
KDSDR5= 172332 1607#
KDSDR6= 172334 1607#
KDSDR7= 172336 1607#
KGBCC = 000002 1529# 6458 6460 6473 6475
KGDATA= 000004 1530# 6457* 6472*
KG.CCI= 000005 1527#
KG.CLR= 000020 1522# 1528 6469
KG.CRC= 000001 1525# 1528
KG.DDB= 000010 1523#
KG.DNE= 000200 1519#
KG.INI= 000121 1528#
KG.LRC= 000003 1526#
KG.LVL= 000000 5000
KG.SEN= 000100 1520# 1528
KG.STP= 000040 1521#
KG.STS= 170700 1518# 5000
KISAR0= 172340 1607# 3134# 3233* 4474* 4484 4498 4514 4539
KISAR1= 172342 1607# 3135# 3234* 4476*
KISAR2= 172344 1607# 3136# 3235* 3242* 3247
KISAR3= 172346 1607# 3137#
KISAR4= 172350 1607# 3138#
KISAR5= 172352 1607# 3139#
KISAR6= 172354 1607# 3140# 4484* 4498 4500* 4514* 4539* 4607* 4622* 4623 4628* 4630 4671
4716* 4727* 4728
KISAR7= 172356 1607# 3141# 3236* 4478*
KISDR0= 172300 1607# 3125# 3229* 4475* 4485
KISDR1= 172302 1607# 3126# 3230* 4477*
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-14
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
KISDR2= 172304 1607# 3127# 3231*
KISDR3= 172306 1607# 3128#
KISDR4= 172310 1607# 3129#
KISDR5= 172312 1607# 3130#
KISDR6= 172314 1607# 3131# 4485* 4515* 4540* 4545* 4559* 4564 4566* 4608*
KISDR7= 172316 1607# 3132# 3232* 4479*
KMC.LV= 000000 5041 5051
KW.INE= 000100 1638# 4885 4913 4917
KW.P.L= 000000 5014
KW.TIC= 000200 1640#
LE.DAT= 177516 1655#
LE.DNE= 000200 1651# 6765
LE.ERR= 100000 1650# 6758
LE.INE= 000100 1652# 6764 6765
LE.LVL= 000004 1644# 5001
LE.STS= 177514 1648# 5001
LE.VEC= 000200 1645# 5001
LE0DAT= 177516 1654# 1655
LE0STS= 177514 1647# 1648
LE1DAT= 177522 1660#
LE1STS= 177520 1659#
LODADR 001330 3381 3394 3399 3441 3466 3507 3705#
LODNUM 001155 3318* 3368 3373* 3683#
LPBCTR= 000006 1729# 6785* 6819*
LPBSAD= 000004 1727# 6784* 6820* 6821*
LPCBUF= 000014 1745# 6821
LPCCTR= 000015 1746#
LPCKSM= 000017 1749#
LPCSRA= 000000 1671#
LPCSRB= 000002 1702#
LPPCTR= 000010 1733#
LPRAMD= 000012 1737# 6776
LPRBSZ= 000020 1751#
LPTDAT= 000016 1748#
LP.B16= 000020 1673# 1699 6822
LP.B17= 000040 1673# 1699 6822
LP.CHI= 020000 1672#
LP.DEM= 000002 1705#
LP.DH = 002000 1672# 6787
LP.DNE= 000200 1673#
LP.DV = 100000 1703#
LP.ERR= 100000 1672#
LP.GO = 000001 1674# 1700 6822
LP.GOE= 000001 1705#
LP.IE = 000100 1673# 1700 6787 6823
LP.LOI= 000400 1673# 6775 6792 6797 6803 6809
LP.LVL= 000004 1666# 5002
LP.MDS= 000014 1698# 6787
LP.MD0= 000004 1674# 1695 1696 1697 1698
LP.MD1= 000010 1674# 1698
LP.MPE= 000020 1705#
LP.NRD= 020000 1703#
LP.OFL= 000200 1704#
LP.ONL= 004000 1672# 6812
LP.OPT= 004000 1704#
LP.PAR= 010000 1703#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-15
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
LP.PEN= 000002 1674# 1700 6787
LP.PER= 000040 1705#
LP.PGZ= 040000 1672#
LP.RDL= 002000 1738#
LP.RIN= 004000 1738#
LP.RP = 010000 1738# 1739
LP.RPE= 000010 1705#
LP.RPI= 000400 1738#
LP.RSE= 001000 1673# 6775 6792 6797 6803 6809
LP.RTR= 001000 1738#
LP.SYN= 000004 1705#
LP.TS0= 000400 1704# 6791
LP.TS1= 001000 1704# 6791
LP.TS2= 002000 1704# 6791
LP.VEC= 000754 1667# 5002
LP.VFE= 000100 1704#
LP.VFR= 010000 1672#
LP.XAD= 000060 1699# 6787
LP.180= 040000 1703#
LP0STS= 175400 1669# 5002
L$$DPR= 000000 3015# 3319 3354 3378 3469 3495 3688
MDCSR 002052 4117# 6516
MDCSRP 002050 4116# 6514 6517* 6519*
MD.CLR= 040000 1053# 6513 6553 6671
MD.CWR= 020000 1053# 6705
MD.LLU= 004000 1053#
MD.RMI= 001000 1054# 6543 6547
MD.RMO= 002000 1054# 6704 6705 6739
MD.RUN= 100000 1053#
MD.SLU= 010000 1053#
MD.SMP= 000400 1054# 6545 6549
MG.ANR= 100000 1573# 4529
MG.APL= 040000 1573#
MG.ARO= 020000 1573# 4529
MG.DAD= 000020 1575#
MG.EMT= 001000 1574#
MG.ENB= 000001 1575# 4472
MG.IDN= 000200 1574#
MG.KDS= 000004 1600#
MG.MD0= 000040 1574#
MG.MD1= 000100 1574#
MG.MNT= 000400 1574#
MG.PG0= 000002 1575#
MG.PG1= 000004 1575#
MG.PG2= 000010 1575#
MG.SDS= 000002 1600#
MG.TMM= 010000 1573#
MG.UDS= 000001 1600#
MMGLVL= 000007 793#
MMGSR0= 177572 1572# 4434 4437 4472 4480* 4529
MMGSR1= 177574 1595#
MMGSR2= 177576 1597#
MMGSR3= 172516 1599#
MMGVEC= 000250 793# 4468
MOP 000240 3289 3312# 3326 3337 3441 3452 3531 3534 7221
MOPERR 000760 3467 3530# 3572 3625 3632 3642
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-16
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
MOPFER 000742 3359 3369 3402 3413 3416 3419 3520# 3524
MOPFNC 001326 3352 3379 3390 3459 3703#
MOPWAT 000274 3331# 3333 3460
MPE11 = 001000 1363#
MP.ENB= 000001 1763#
MP.ERR= 100000 1760#
MP.LVL= 000007 1756#
MP.REG= 172100 1758#
MP.VEC= 000114 1755#
MP.WWP= 000004 1762#
M$$CHK= 000000 3014# 3314 3396 3465 3515 3519
M$$MGE= 000000 169# 3018# 3227 3395 3501 3550 3592 4439 4464 4589 4693
M$$XSZ= 002000 3017# 3242 3263 3288 3693 3713
M.PDAP= 000020 3109#
M.PEAM= 000022 3110#
M.PEMM= 000006 3104#
M.PLBT= 000030 3112#
M.PLDP= 000024 3111# 3355 3379
M.PMDP= 000016 3108#
M.PMLD= 000002 3102# 3358 3390 3459
M.PMLT= 000000 3101#
M.PMMR= 000014 3107#
M.PRMD= 000004 3103#
M.PRML= 000012 3106# 3682
M.PRPR= 000010 3105# 3667
NDH11 = 000000 176# 5672
NLINES= 000060 4115#
NXMLVL= 000007 786#
NXMVEC= 000004 786# 4175* 4182* 4187* 4436* 4612* 4718* 4878* 4880* 5118* 5120* 5146* 5569*
5571* 5612*
N.CD11 001434 4060# 4997
N.CI11 001446 4062# 4233
N.CO11 001455 4063# 4215
N.CR11 001441 4061# 4999
N.DH11 001465 4064#
N.DJ11 001472 4065#
N.DL.A 001504 4067#
N.DL.E 001513 4068# 5043 5044 5045
N.DL01 001477 4066#
N.DMC1 001532 4070# 5048 6580
N.DM11 001522 4069#
N.DN11 001540 4071#
N.DP11 001545 4072#
N.DQ11 001552 4073#
N.DS11 001557 4074#
N.DTE2 001564 4075# 5016
N.DUP1 001577 4077# 5042
N.DU11 001572 4076#
N.DV11 001605 4078#
N.DZ11 001612 4079# 5052
N.KG11 001617 4080# 5000
N.KMC1 001626 4081# 5041 5051 6569
N.KT11 001634 4082#
N.KW.L 001641 4083# 4872
N.KW.P 001650 4084# 5014
N.LE11 001664 4086# 5001
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-17
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
N.LK11 001657 4085#
N.LP11 001671 4087# 5002
N.MM11 001676 4088#
N.NL11 001706 4089#
N.PP11 001742 4092# 5003
N.PR11 001747 4093# 5004
N.P611 001722 4090#
N.RC11 001754 4094# 5007
N.RF11 001761 4095# 5008
N.RH11 001773 4097# 5009
N.RK11 001766 4096# 5012
N.RP11 002000 4098# 5010
N.RX11 002007 4099# 5013
N.R611 001732 4091#
N.TA11 002014 4100# 5011
N.TC11 002021 4101# 5005
N.TM11 002026 4102# 5006
PAGE0 = 000000 1622# 4486 4516
PAGE0B= 000000 1622#
PAGE1 = 020000 1622#
PAGE1B= 000200 1622# 4476
PAGE2 = 040000 1622#
PAGE2B= 000400 1622#
PAGE3 = 060000 1622#
PAGE3B= 000600 1622#
PAGE4 = 100000 1622#
PAGE4B= 001000 1622#
PAGE5 = 120000 1622#
PAGE5B= 001200 1622#
PAGE6 = 140000 1622# 4487 4517 4541 4615 4724
PAGE6B= 001400 1622#
PAGE7 = 160000 1622#
PAGE7B= 007600 1622# 1623# 4478 4630
PARMAD 001156 3287* 3288* 3472 3477 3689#
PASS = 000002 278 279#
PASS2 = ****** U 3693 3713
PDP11 = 000042 157# 559 684 4372 4789
PDZ0 = 000001 844#
PDZ1 = 000002 844#
PDZ2 = 000004 844#
PD.A = 000200 1612#
PD.ACF= 000007 1614# 4564 4566
PD.AC0= 000001 1612# 1614 4471 4515 4540 4545 4559 4608
PD.AC1= 000002 1612#
PD.AC2= 000004 1612# 1614
PD.ED = 000010 1612#
PD.PLF= 077400 1613# 4471 4540 4559 4608
PD.PL0= 000400 1611# 1613 4515
PD.PL1= 001000 1611#
PD.PL2= 002000 1611#
PD.PL3= 004000 1611#
PD.PL4= 010000 1611#
PD.PL5= 020000 1611#
PD.PL6= 040000 1611# 1613
PD.W = 000100 1612#
PHYLIM 002046 4114# 4636* 4728
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-18
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
POSMSK= 000200 805# 806# 807# 835# 836# 844# 852# 853# 1053# 1054# 1388# 1389# 1390#
1412# 1425# 1437# 1438# 1458# 1573# 1574# 1575# 1600# 1611# 1612# 1672# 1673#
1674# 1703# 1704# 1705# 1738#
PP.DAT= 177556 1785#
PP.ERR= 100000 1781#
PP.INE= 000100 1783#
PP.LVL= 000004 1775# 5003
PP.RDY= 000200 1782#
PP.STS= 177554 1779# 5003
PP.VEC= 000074 1776# 5003
PP0STS= 177554 1778#
PRGDAT 001160 3320* 3381 3471 3496 3690#
PR.BSY= 004000 1791#
PR.DAT= 177552 1796#
PR.DNE= 000200 1792#
PR.ERR= 100000 1790#
PR.INE= 000100 1793#
PR.LVL= 000004 1773# 5004
PR.STS= 177550 1788# 5004
PR.VEC= 000070 1774# 5004
PR..RE= 000001 1794#
PR0 = 000000 765#
PR0STS= 177550 1787#
PR1 = 000040 766# 767 768 769 770 771 772
PR2 = 000100 767#
PR3 = 000140 768#
PR4 = 000200 769#
PR5 = 000240 770#
PR6 = 000300 771#
PR7 = 000340 772# 3119# 3204
PS = 177776 722# 3118# 4131* 4884* 4912* 5222* 5284* 5377* 5384* 5427* 5435* 5469* 5474*
5506 5511 5515 5519 5523 5527 5531 5535 6542* 6774*
PWFLVL= 000007 790#
PWFVEC= 000024 790#
PZ00 = 000040 844#
PZ08 = 000010 844#
PZ09 = 000020 844#
PZ11 = 000100 844#
PZ12 = 000200 844#
P6.LVL= 000007 1767#
RAMDAT= 007777 1739#
RAMLOD= 000014 1697#
RCVLDN 001327 3365 3704#
RCVMSG 001324 3337 3522 3701#
RC.LVL= 000000 5007
REQMLD 001152 3452 3680# 3684
REQMLZ= 000002 3681 3684#
REQOPS 001144 3326 3665# 3675
REQOPZ= 000004 3666 3675#
RF.LVL= 000000 5008
RG.MSC= 000012 1195#
RG.PRA= 000000 1185#
RG.PRC= 000001 1186#
RG.PTA= 000002 1187#
RG.PTC= 000003 1188#
RG.SRA= 000004 1189#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-19
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
RG.SRC= 000005 1190#
RG.STA= 000006 1191#
RG.STC= 000007 1192#
RG.SYN= 000011 1194#
RH.LVL= 000000 5009
RK.LVL= 000000 5012
RM = 000010 1370# 6386
RP.LVL= 000000 5010
RX.LVL= 000000 5013
R6.LVL= 000007 1769#
SEL0 = 000000 1068#
SEL2 = 000002 1068#
SEL4 = 000004 1068#
SEL6 = 000006 1068#
SLEW = 000020 1740#
SPCVFY= 000000 187#
SR0 = 177572 3123# 3237* 3508
STACK 001350 3225 3292 3317 3711#
STKLEN= 000200 274
ST2ENB= 100000 852#
SW = 177570 733#
SWR = 177570 3117#
S$$CLD= ****** U 2984 2985 3444 3670
S..AMC= 000000 283#
S..BDT= 000011 294#
S..CHK= 000012 295#
S..CNK= 000003 287#
S..CTY= 000005 289#
S..DL1= 000002 285# 286
S..DTE= 000002 286#
S..ILS= 000004 288#
S..KW1= 000007 291#
S..MEM= 000006 290# 4770 4781
S..MMG= 000014 297#
S..MPD= 000013 296#
S..NCN= 000010 292#
S..NXM= 000001 284#
TA.LVL= 000000 5011
TC.A16= 000020 1840#
TC.A17= 000040 1839#
TC.BAR= 177346 1852#
TC.CLK= 000100 1815#
TC.CMD= 177342 1823#
TC.DAT= 177350 1854#
TC.DT0= 000020 1817#
TC.DT1= 000010 1818#
TC.DT2= 000004 1819#
TC.D16= 000001 1821#
TC.D17= 000002 1820#
TC.ERR= 100000 1825#
TC.ILO= 010000 1809#
TC.INE= 000100 1838#
TC.LVL= 000006 1802# 5005
TC.MMT= 000040 1816#
TC.MTE= 020000 1808#
TC.NXM= 000400 1813#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-20
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
TC.PAR= 040000 1807#
TC.RDA= 000006 1844#
TC.RDY= 000200 1837#
TC.REV= 004000 1828#
TC.RMT= 000002 1842#
TC.SAT= 000000 1841#
TC.SST= 000010 1845#
TC.STS= 177340 1804# 5005
TC.UPS= 000200 1814#
TC.US0= 000000 1829#
TC.US1= 000400 1830#
TC.US2= 001000 1831#
TC.US3= 001400 1832#
TC.US4= 002000 1833#
TC.US5= 002400 1834#
TC.US6= 003000 1835#
TC.US7= 003400 1836#
TC.VEC= 000214 1800# 5005
TC.WCR= 177344 1850#
TC.WRA= 000016 1848#
TC.WTM= 000012 1846#
TC..BM= 002000 1811#
TC..DI= 010000 1827#
TC..DM= 001000 1812#
TC..EZ= 100000 1806#
TC..MM= 020000 1826#
TC..RD= 000004 1843#
TC..SE= 004000 1810#
TC..WR= 000014 1847#
TENAD1= 000010 1341# 3153#
TENAD2= 000012 1342# 3154#
TM.A16= 000020 1902#
TM.A17= 000040 1901#
TM.BAR= 172526 1915#
TM.BCR= 172524 1913#
TM.BGL= 004000 1868#
TM.BOT= 000040 1874#
TM.BTE= 000400 1871#
TM.CRE= 020000 1866#
TM.CUR= 000200 1899#
TM.DAT= 172530 1917#
TM.D72= 000000 1884#
TM.D75= 020000 1885#
TM.D78= 040000 1886#
TM.D98= 060000 1887#
TM.EOF= 040000 1865#
TM.EOT= 002000 1869#
TM.ERR= 100000 1883#
TM.INE= 000100 1900#
TM.LVL= 000005 1860# 5006
TM.MTC= 172522 1881#
TM.NXM= 000200 1872#
TM.OFL= 000000 1903#
TM.PAE= 010000 1867#
TM.RDL= 172532 1919#
TM.REW= 000016 1910#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-21
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
TM.RLE= 001000 1870#
TM.RWS= 000002 1878#
TM.SLR= 000100 1873#
TM.STS= 172520 1862# 5006
TM.TSD= 000010 1876#
TM.TUR= 000001 1879#
TM.US0= 000000 1891#
TM.US1= 000400 1892#
TM.US2= 001000 1893#
TM.US3= 001400 1894#
TM.US4= 002000 1895#
TM.US5= 002400 1896#
TM.US6= 003000 1897#
TM.US7= 003400 1898#
TM.VEC= 000224 1858# 5006
TM.WEF= 000006 1906#
TM.WEG= 000014 1909#
TM.WRL= 000004 1877#
TM..GO= 000001 1911#
TM..IC= 100000 1864#
TM..LP= 004000 1889#
TM..PC= 010000 1888#
TM..RD= 000002 1904#
TM..SF= 000010 1907#
TM..SR= 000012 1908#
TM..US= 003400 1890#
TM..WR= 000004 1905#
TM.7CH= 000020 1875#
TO10AD= 000020 1348# 3160# 3557*
TO10BC= 000014 1343# 3155#
TO10BM= 000001 1377# 3181# 3549
TO10DB= 000400 1364# 3175# 3564
TO10DN= 100000 1356# 3169# 3570
TO10DT= 000024 1350# 3162#
TO10ER= 020000 1358# 3171# 3570
TO11AD= 000022 1349# 3161# 3604*
TO11BC= 000016 1344# 3156# 3634*
TO11BM= 020000 1346# 3158# 3630
TO11CM= 007777 1347# 3159# 3630
TO11DB= 004000 1360# 1361 3173# 3332
TO11DN= 000200 1365# 3176# 3640
TO11DT= 000026 1351# 3163#
TO11ER= 000002 1372# 1373 3178# 3640
TO11IB= 100000 1345# 3157# 3627 3630
TRPLVL= 000007 792#
TRPVEC= 000034 792# 4169*
TSTMOD= 000004 1695#
T$$RLD= 000000 2983# 2984 2986 3016 3202
T$$32K= 000000 3019# 3606 3651
UDSAR0= 177660 1605#
UDSAR1= 177662 1605#
UDSAR2= 177664 1605#
UDSAR3= 177666 1605#
UDSAR4= 177670 1605#
UDSAR5= 177672 1605#
UDSAR6= 177674 1605#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-22
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
UDSAR7= 177676 1605#
UDSDR0= 177620 1605#
UDSDR1= 177622 1605#
UDSDR2= 177624 1605#
UDSDR3= 177626 1605#
UDSDR4= 177630 1605#
UDSDR5= 177632 1605#
UDSDR6= 177634 1605#
UDSDR7= 177636 1605#
UISAR0= 177640 1605#
UISAR1= 177642 1605#
UISAR2= 177644 1605#
UISAR3= 177646 1605#
UISAR4= 177650 1605#
UISAR5= 177652 1605#
UISAR6= 177654 1605#
UISAR7= 177656 1605#
UISDR0= 177600 1605#
UISDR1= 177602 1605#
UISDR2= 177604 1605#
UISDR3= 177606 1605#
UISDR4= 177610 1605#
UISDR5= 177612 1605#
UISDR6= 177614 1605#
UISDR7= 177616 1605#
VCTLIM 001432 4045# 4166
VFULOD= 000010 1696#
VRS = 000002 246#
XCD$$ = 011506 4997#
XCD11 011506 4997 5568#
XCR$$ = 012022 4999#
XCR11 012022 4999 5631#
XDL.E$= 012246 5043# 5044# 5045#
XDL.E1 012246 5043 5044 5045 5889#
XDMC$$= 013072 5048#
XDMC11 013072 5048 6509#
XDTE2$= 012274 5016#
XDTE21 012274 5016 6361#
XDUP$$= 012546 5042#
XDUP11 012546 5042 6415#
XDZ$$ = 012602 5052#
XDZ11 012602 5052 6439#
XKG$$ = 012624 5000#
XKG11 012624 5000 6454#
XKMC$$= 013072 5041# 5051#
XKMC11 013072 5041 5051 6510#
XKW.P$= 014462 5014#
XKW.P1= ****** U 5014
XLE$$ = 014152 5001#
XLE11 014152 5001 6757#
XLP$$ = 014220 5002#
XLP11 014220 5002 6773#
XNL11 014460 6843#
XPP$$ = 014462 5003#
XPP11 = ****** U 5003
XPR$$ = 014462 5004#
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 25-23
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- USER SYMBOLS
XPR11 = ****** U 5004
XRC$$ = 014462 5007#
XRC11 = ****** U 5007
XRF$$ = 014462 5008#
XRF11 = ****** U 5008
XRH$$ = 014462 5009#
XRH11 = ****** U 5009
XRK$$ = 014462 5012#
XRK11 = ****** U 5012
XRP$$ = 014462 5010#
XRP11 = ****** U 5010
XRX$$ = 014462 5013#
XRX11 = ****** U 5013
XTA$$ = 014462 5011#
XTA11 = ****** U 5011
XTC$$ = 014462 5005#
XTC11 = ****** U 5005
XTM$$ = 014462 5006#
XTM11 = ****** U 5006
X..... 014462 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 6980#
Z = 000121 6457# 6469#
ZTALL = 007777 854#
ZT00 = 001000 853#
ZT01 = 000400 853#
ZT02 = 000200 853#
ZT03 = 000100 853#
ZT04 = 000040 853#
ZT05 = 000020 853#
ZT06 = 000010 853#
ZT07 = 000004 853#
ZT08 = 000002 853#
ZT09 = 000001 853#
ZT11 = 002000 853#
ZT12 = 004000 853#
$MMADR= 172400 1605# 1607#
$$ = 000176 1605# 1607# 6416# 6418
$$HERE= 001300 4043# 4044 4045
. = 016616 3317 3471 3531 3675 3684 3695# 3702# 3703# 3704# 3705# 3710# 3784# 4103#
4105# 4108# 4109# 4111# 4112# 4114# 4171 4224 4242# 4257# 4262# 4270 4278#
4309# 4371# 4376 4429 4455 4467# 4576# 4584 4606# 4639# 4654# 4667# 4676#
4681 4715# 4901# 4920# 4923 4993# 4998 5155# 5265# 5267# 5269# 5347# 5352#
5467# 5509 5546# 5547# 5592# 5605# 5616# 5639# 5662# 6390# 6478# 6585# 6723#
6816# 6983# 7018# 7231# 7284# 7303# 7308# 7323# 7346 7347# 7349 7350# 7352
7353# 7355 7358# 7360 7361# 7409# 7410 7414
CHK11 - ONCE ONLY SYSTEM DIAGNOSTIC DNMAC X24.07-563 06-DEC-79 13:39 PAGE 26
C11DTE.MAC 10-AUG-79 16:05 CROSS REFERENCE TABLE -- MACRO NAMES
ABORT 3837# 4452
ASCIZ 706#
CALL 3027# 3327 3340 3347 3388 3436 3442 3453 3523 3616 5064 7184 7194 7200 7221
CHKCHR 3960# 6455
CKSERR 3831# 4769 4780 5392 5452 5464 6460 6475 6605 6634 6720
CKVECT 4006#
CKVEC1 4019#
CK11SC 3808# 4307 4450 4452 4504 4506 4524 4531 4551 4561 4563 4649 4657 4739 4770
4781 4891 4895 4899 5153 5181 5295 5305 5312 5345 5350 5355 5360 5387 5393
5447 5453 5465 5477 5590 5603 5614 5637 5647 5660 6374 6383 6388 6461 6476
6572 6583 6606 6635 6721 6760 6814 7239
COUNT 318#
DEBUG 3031# 3201 3313 3359 3369 3402 3413 3416 3419 3467 3509 3572 3625 3632 3642
DEFVEC 777# 786 787 788 789 790 791 792 793
DEVICE 3888# 4997 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011
5012 5013 5014 5016 5041 5042 5043 5044 5045 5048 5051 5052
DQREGS 1203#
ERR 3042# 3359 3369 3402 3413 3416 3419 3467 3572 3625 3632 3642
EXCH 698#
FALLR 341# 4171 4224 4270 4376 4429 4455 4584 4681 4923
FIELD 416# 752 1613 1614 6416
FIT 3068# 3693 3713
GREATR 361#
KGLOAD 1532# 6457 6469
LDVECT 4029#
LESSER 353#
MMNAM1 1549# 1605 1607
MMNAM2 1554# 1605 1607
NAMASC 388#
NAMEBT 366# 805 806 807 835 836 844 852 853 1053 1054 1388 1389 1390 1412
1425 1437 1438 1458 1573 1574 1575 1600 1611 1612 1672 1673 1674 1703 1704
1705 1738
NAMSTR 4053# 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073
4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088
4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102
RESTOR 335# 6481 6496 7009 7053 7054 7073 7120 7147
RETURN 3027# 3581 3658 7204 7227
SAVE 327# 6454 6486 7001 7041 7050 7051 7066 7105 7134
SPL 686# 4131 4912 5222 5384 5435 5474
STOPCD 303#
$CKINT 3858# 6765 6823
.DEC 349#
.INC 345#
. ABS. 016616 000 OVR RW ABS LCL D
ERRORS DETECTED: 0
DTEMPT,DTEMPT/CRF=C11DTE
RUN-TIME: 18 26 4 SECONDS
RUN-TIME RATIO: 1421/49=28.5
CORE USED: 18K (35 PAGES)