Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/rsx11s/error.list
There are no other files named error.list in the archive.
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3
1 .TITLE ERROR
2 .IDENT /03/
3
4 ;
5 ; COPYRIGHT (C) 1974, 1978
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
9 ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
10 ;
11 ; VERSION 03
12 ;
13 ; GARY H. MENDELSOHN 19-MAY-75
14 ;
15 ; PREVIOUSLY MODIFIED BY:
16 ;
17 ; T. J. MILLER
18 ;
19 ; MODIFIED BY:
20 ;
21 ; D. L. GIRDLER 10-MAY-77
22 ;
23 ; DLG001 -- DON'T INCREMENT ERROR COUNT IF ERROR
24 ; LOGGING IS NOT TURNED ON.
25 ;
26 ; E. L. BAATZ 13-NOV-77
27 ;
28 ; EB099 -- GUARANTEE THAT $QEMB, $ALEB1, $DVERR, AND
29 ; $DVCER WILL ALWAYS BE DEFINED
30 ;
31 ; ERROR LOGGING
32 ;
33
34 .IF DF E$$DVC!E$$NSI!E$$PER
35
36 ;
37 ; EQUATED SYMBOLS
38 ;
39
40 WRTLIM=520. ;LOGGER WRITE THRESHOLD
41 ERRTIM=5.*K$$TPS ;TIME LIMIT IN QUEUE BEFORE WRITE
42
43 .IFTF
44
45 .MCALL HWDDF$
46 000000 HWDDF$ ;DEFINE CPU REGISTERS
47
48 .IFT
49
50 ;
51 ; MACRO LIBRARY CALLS
52 ;
53
54 .MCALL CLKDF$,HDRDF$,PCBDF$,PKTDF$,TCBDF$
55 CLKDF$ ;DEFINE CLOCK OFFSETS AND CODES
56 HDRDF$ ;DEFINE TASK HEADER OFFSETS
57 PCBDF$ ;DEFINE PARTITION OFFSETS
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-1
58 PKTDF$ ;DEFINE I/O PACKET OFFSETS
59 TCBDF$ ;DEFINE TASK CONTROL BLOCK OFFSETS AND CODES
60 ;**-20
61 ;
62 ; LOCAL STORAGE
63 ;
64
65 .IF DF E$$DVC
66
67 ;
68 ; DEVICE TIMEOUT STORAGE
69 ;
70
71 DTOTMP: .BLKW 1 ;SAVED CSR CONTENTS
72
73 .ENDC
74
75 .IF DF E$$NSI
76
77 ;
78 ; NONSENSE INTERRUPT STORAGE
79 ;
80 ; ADJACENCY ASSUMED
81 ;
82
83 .BLKW 3 ;FORK BLOCK
84 TEMP: .BLKB 1 ;PS STORAGE
85 NSI: .BYTE -1 ;RECURSION COUNTER
86 OPS: .BLKW 1 ;OLD PS STORAGE
87 OPC: .BLKW 1 ;OLD PC STORAGE
88
89 .ENDC
90
91 ;+
92 ; **-$ALEMB-ALLOCATE AN ERROR MESSAGE BLOCK
93 ; **-$ALEB1-ALLOCATE AN ERROR MESSAGE BLOCK (ALTERNATE ENTRY)
94 ;
95 ; THIS ROUTINE IS CALLED BY ERROR SERVICING
96 ; ROUTINES. IT COUNTS THE OCCURENCE OF THE ERROR AND TRIES
97 ; TO ALLOCATE A CORE BLOCK FROM THE POOL.
98 ; IF IT IS SUCCESFUL, IT FILLS IN THE ERROR CODE, THE TIME AND THE
99 ; ERROR SEQUENCE NUMBER. ELSE, IT RETURNS WITH C-SET.
100 ;
101 ; INPUTS:
102 ;
103 ; 2(SP)=ERROR CODE
104 ; 0(SP)=RETURN
105 ; R1 =SIZE OF THE EMB TO ALLOCATE
106 ;
107 ; OUTPUTS:
108 ;
109 ; IF C-CLEAR:
110 ; (R0)=ADDRESS OF THE FIRST UNFILLED BYTE
111 ; (R1)=ADDRESS OF THE EMB
112 ;
113 ; IF C-SET, UNSUCCESSFUL
114 ;
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-2
115 ; NOTE: R2 AND R3 ARE DESTROYED BY $ALEMB THRU $ALOCB
116 ;-
117
118 .ENABL LSB ;DLG001
119 $ALEMB::TST $ERRPT ;ERROR LOG TURNED ON? ;DLG001
120 SEC ;ASSUME NO ALLOCATION ;DLG001
121 BEQ 20$ ;IF EQ NO, DON'T COUNT ERROR ;DLG001
122 INC $ERRSQ ;COUNT THE ERROR ;DLG001
123 $ALEB1::SEC ;ASSUME ALLOCATION WILL NOT OCCUR ;**-1
124 MOV $ERRPT,R0 ;ERROR LOGGING TURNED ON?
125 BEQ 20$ ;IF EQ NO
126 MOV $ERRLM,R0 ;IS THERE ROOM AVAILABLE?
127 BMI 20$ ;NO IF MI
128 CALL $ALOCB ;ALLOCATE THE EMB
129 BCS 20$ ;UNSUCCESSFUL IF CS
130 SUB R1,$ERRLM ;UPDATE ROOM LEFT
131 MOV R1,E.SIZE+2(R0) ;FILL IN SIZE OF EMB
132 MOV R0,R1 ;COPY EMB POINTER
133 CMP (R0)+,(R0)+ ;ADVANCE OVER LINK AND E.SIZE
134 MOV 2(SP),(R0)+ ;FILL CODE
135 MOV #$TTNS,R2 ;POINT PAST CURRENT SECOND
136 10$: DEC R2 ;SKIP BYTE
137 MOVB -(R2),(R0)+ ;FILL TIME
138 CMP R2,#$TTNS-14 ;DONE YET?
139 BHI 10$ ;IF HI NO
140 MOV $ERRSQ,(R0)+ ;FILL SEQUENCE NUMBER
141 CLC ;INDICATE SUCCESS
142 20$: MOV (SP)+,(SP) ;REMOVE ERROR CODE
143 RETURN ;EXIT
144 .DSABL LSB ;DLG001
145 ; EB099
146 .IFF ; EB099
147 ; EB099
148 000000 $ALEB1:: ; ; EB099
149
150 .ENDC
151
152 .IF DF E$$DVC
153
154 ;+
155 ; **-$BMSET-SET A DRIVER'S BIT IN THE I/O ACTIVE BITMAP
156 ;
157 ; THIS COROUTINE RAISES PROCESSOR PRIORITY TO SEVEN AND
158 ; SETS THE MASK IN THE SCB IN $IOABM,
159 ; LETS THE CALLER START THE FUNCTION, AND THEN,
160 ; ALLOWS INTERRUPTS.
161 ;
162 ; INPUTS:
163 ;
164 ; (R4)=ADDRESS OF THE SCB
165 ;
166 ; OUTPUTS:
167 ;
168 ; $IOABM IS MODIFIED AND RETURN IS MADE AT PR7
169 ;-
170
171 $BMSET::MTPS #PR7 ;LOCK OUT INTERRUPTS
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-3
172 BIS S.BMSK(R4),$IOABM ;;;UPDATE BITMAP
173 CALL @(SP)+ ;;;CALL THE CALLER
174 MTPS #0 ;;;ALLOW INTERRUPTS AND CLEAR C.
175 RETURN ;EXIT
176
177 ;+
178 ; **-$DTOER-DEVICE TIMEOUTS
179 ;
180 ; THIS IS THE EMB FORMATTING ROUTINE WHEN
181 ; TIMEOUT ERRORS ARE RECOGNIZED BY THE DRIVER. ON THE
182 ; FIRST OCCURENCE OF AN ERROR, $DTOER ATTEMPTS TO LOG IT.
183 ; IF ERRORS OCCUR ON RETRIES, THEY ARE NOT LOGGED.
184 ;
185 ; THE ERROR CODE EC.DTO IS PUSHED ON THE STACK,
186 ; THE ERROR IN PROGRESS BIT IS SET IN THE SCB, THE LENGTH OF THE
187 ; REQUIRED EMB IS CALCULATED AND $ALEMB IS CALLED. IF $ALEMB FAILS
188 ; TO ALLOCATE A PACKET FOR ANY REASON, $DTOER EXITS
189 ; AND THE POINTER IN THE SCB TO THE EMB IS CLEARED.
190 ; ELSE, THE SAVED $IOABM IS COPIED FROM THE SCB TO THE EMB AND
191 ; A POINTER TO THE EMB IS SAVED IN THE SCB. THE ERROR INFORMATION
192 ; INCLUDING DEVICE REGISTERS IS PUT INTO THE EMB AND THE
193 ; RETURN IS MADE. THE CONTENTS OF THE CSR THAT IS SAVED IS UNCHANGED
194 ; FROM THE TIME OF TIMEOUT. AFTER THE CSR IS SAVED, DEVICE INTERRUPTS
195 ; ARE DISABLED AND CPU PRIORITY IS LOWERED TO PR0.
196 ;
197 ; INPUTS:
198 ;
199 ; (R2)=ADDRESS OF THE CSR
200 ; (R4)=ADDRESS OF THE SCB
201 ;
202 ; OUTPUTS:
203 ;
204 ; C=0 IF FUNCTION WAS NOT A USER-MODE DIAGNOSTIC FUNCTION
205 ; THE EMB IS FILLED AND THE SCB CONTAINS A POINTER
206 ; TO IT AND ERROR IN PROGRESS FLAG IS SET IN THE SCB.
207 ; C=1 IF FUNCTION WAS A USER-MODE DIAGNOSTIC FUNCTION.
208 ; IN THIS CASE ONLY INTERRUPT ENABLE IS CLEARED AND
209 ; THE PRIORITY IS LOWERED TO 0.
210 ;
211 ; NOTE: IF THE SYSTEM SUPPORTS DIAGNOSTICS R1 WILL BE SET TO THE ;DLG001
212 ; I/O PACKET ADDRESS. IF DIAGNOSTICS ARE NOT SUPPORTED, ALL ;DLG001
213 ; REGISTERS ARE PRESERVED. ;DLG001
214 ;- ;**-2
215
216 .IFTF
217
218 .ENABL LSB
219 000000 $DTOER:: ;;;REFERENCE LABEL
220
221 .IFT
222
223 MOV (R2),DTOTMP ;;;SAVE CSR CONTENTS
224
225 .IFTF
226
227 000000 042712 000100 BIC #100,(R2) ;;;TURN OFF DEVICE INTERRUPTS
228 000004 MTPS #0 ;;;ALLOW INTERRUPTS
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-4
229
230
231 .IF DF D$$IAG
232
233 MOV S.PKT(R4),R1 ;PICK UP ADDRESS OF I/O PACKET
234 SEC ;ASSUME USER-MODE DIAGNOSTIC FUNCTION
235 BITB #IQ.UMD,I.FCN(R1) ;DIAGNOSTIC FUNCTION?
236 BNE 100$ ;IF NE YES
237 CLC ;INDICATE CSR SAVED ;DLG001
238
239 .ENDC
240
241
242 .IFT
243
244 MOV #EC.DTO,-(SP) ;INDICATE DEVICE TIMEOUT
245 BR 10$ ;ENTER COMMON CODE
246
247 ;+
248 ; **-$DVCER-DEVICE ERROR BIT SET
249 ;
250 ; THIS IS THE EMB FORMATTING ROUTINE WHEN DEVICE ERROR BIT
251 ; ERRORS ARE RECOGNIZED BY THE DRIVER. ON THE
252 ; FIRST OCCURENCE OF AN ERROR, $DVCER ATTEMPTS TO LOG IT.
253 ; IF ERRORS OCCUR ON RETRIES, THEY ARE NOT LOGGED.
254 ;
255 ; THE ERROR CODE EC.DVC IS PUSHED ON THE STACK,
256 ; THE ERROR IN PROGRESS BIT IS SET IN THE SCB, THE LENGTH OF THE
257 ; REQUIRED EMB IS CALCULATED AND $ALEMB IS CALLED. IF $ALEMB FAILS
258 ; TO ALLOCATE A PACKET FOR ANY REASON, $DVCER EXITS.
259 ; AND THE POINTER IN THE SCB TO THE EMB IS CLEARED.
260 ; ELSE, THE SAVED $IOABM IS COPIED FROM THE SCB TO THE EMB AND
261 ; A POINTER TO THE EMB IS SAVED IN THE SCB. THE ERROR INFORMATION
262 ; INCLUDING DEVICE REGISTERS IS PUT INTO THE EMB AND THE
263 ; RETURN IS MADE.
264 ;
265 ; INPUTS:
266 ;
267 ; (R4)=ADDRESS OF THE SCB
268 ;
269 ; OUTPUTS:
270 ;
271 ; IF SUCCESSFUL, THE EMB IS FILLED, AND THE SCB
272 ; CONTAINS A POINTER TO IT. AN ERROR IN PROGRESS BIT
273 ; IS SET IN THE SCB. ELSE, THE OCCURRENCE OF
274 ; THE ERROR IS COUNTED ONLY.
275 ;
276 ; NOTE: ALL REGISTERS ARE PRESERVED
277 ;-
278
279 $DVERR:: ; TEMPORARY * * *
280 $DVCER::MOV #EC.DVC,-(SP) ;INDICATE DEVICE ERROR
281 SEC ;INDICATE NO CSR ADDRESS
282 10$: MOV R2,-(SP) ;SAVE R2
283 MOV R1,-(SP) ;SAVE R1
284 MOV R0,-(SP) ;SAVE R0
285 MOV R2,-(SP) ;SAVE CSR ADDRESS
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-5
286 BCC 20$ ;WAS THAT A CSR ADDRESS?
287 CLR (SP) ;NO IF CS
288 20$: MOV 10(SP),-(SP) ;MOVE ERROR CODE
289 MOV R3,12(SP) ;SAVE R3
290
291 ;
292 ; AT THIS POINT THE STACK CONTAINS:
293 ;
294 ; 0(SP)=ERROR CODE
295 ; 2(SP)=CSR ADDRESS OR 0
296 ; 4(SP)=SAVED R0
297 ; 6(SP)=SAVED R1
298 ; 10(SP)=SAVED R2
299 ; 12(SP)=SAVED R3
300 ; 14(SP)=RETURN
301 ;
302 BITB #SP.EIP!SP.ENB,S.PRI(R4) ;ERROR IN PROGRESS OR LOGGING OFF?
303 BNE 80$ ;YES IF NE
304 BISB #SP.EIP,S.PRI(R4) ;INDICATE ERROR IN PROGRESS
305 MOVB S.RCNT(R4),R1 ;GET NUMBER OF DEVICE REGS
306 ASL R1 ;MAKE BYTE COUNT
307 ADD #E.LGTH+2,R1 ;MAKE REQUIRED EMB SIZE
308 CALL $ALEMB ;TRY TO GET AN EMB
309 BCC 30$ ;SUCCESS IF CC
310 CLR S.BMSV(R4) ;INDICATE NO EMB
311 BR 90$ ;AND EXIT
312 30$: MOV S.BMSV(R4),(R0)+ ;FILL SAVED BITMAP
313 MOV R1,S.BMSV(R4) ;SAVE POINTER TO EMB
314 MOV S.PKT(R4),R1 ;GET I/O PACKET ADDRESS
315 CLR (R0)+ ;SAVE ROOM FOR RETRY COUNTS
316 MOV I.TCB(R1),R2 ;GET TCB ADDRESS
317 MOV T.PRI(R2),(R0)+ ;FILL I/O CNT (AND PRIORITY)
318 MOV T.NAM(R2),(R0)+ ;FILL TASK NAME
319 MOV T.NAM+2(R2),(R0)+ ;
320 MOV T.PCB(R2),R2 ;GET PCB ADDRESS
321 MOV P.REL(R2),(R0)+ ;FILL 1/64TH REAL ADDRESS
322 MOV P.HDR(R2),R2 ;POINT TO HEADER
323 MOV H.CUIC(R2),(R0)+ ;FILL TASK UIC
324 MOV I.UCB(R1),(R0)+ ;FILL DEVICE ID
325 MOV I.FCN(R1),(R0)+ ;FILL FUNCTION CODE
326 ADD #I.PRM,R1 ;POINT TO PARAMETERS
327 MOV #7,R2 ;SET UP LOOP
328 40$: MOV (R1)+,(R0)+ ;FILL PARAMETERS
329 DEC R2 ;DONE?
330 BNE 40$ ;NO IF NE
331 MOVB S.RCNT(R4),R2 ;GET NUMBER OF DEVICE REGS
332 MOV R2,(R0)+ ;FILL REG COUNT
333 MOVB S.ROFF(R4),R1 ;GET OFFSET OF FIRST REG FROM CSR
334 ADD S.CSR(R4),R1 ;POINT TO FIRST REG
335 50$: CMP R1,(SP) ;IS THIS THE CSR?
336 BNE 60$ ;NO IF NE
337 MOV DTOTMP,(R0)+ ;FILL SAVED CSR CONTENTS
338 TST (R1)+ ;ADJUST R1
339 BR 70$ ;
340 60$: MOV (R1)+,(R0)+ ;FILL REGISTER
341 70$: DEC R2 ;DONE?
342 BNE 50$ ;NO IF NE
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-6
343 BR 90$ ;
344 80$: TST (SP)+ ;REMOVE ERROR CODE
345 90$: TST (SP)+ ;REMOVE CSR ADDRESS
346 MOV (SP)+,R0 ;RESTORE R0
347 MOV (SP)+,R1 ;RESTORE R1
348 MOV (SP)+,R2 ;RESTORE R2
349 MOV (SP)+,R3 ;RESTORE R3
350
351 .IFTF
352
353 000010 100$: RETURN ;EXIT
354 .DSABL LSB
355 ; EB099
356 .IFF ; EB099
357 ; EB099
358 000012 $DVERR:: ; ; EB099
359 000012 $DVCER:: ; ; EB099
360
361 .ENDC
362
363 .IF DF E$$NSI
364
365 ;+
366 ; **-$NS0,$NS1,$NS2,$NS3,$NS4,$NS5,$NS6,$NS7-
367 ; NONSENSE INTERRUPT IDENTIFIER ROUTINES
368 ;
369 ; EACH OF THESE ROUTINES IS VECTORED TO BY ONE OF A GROUP OF 16
370 ; UNUSED VECTORS. THE VECTORS ARE SUB-CODED IN THE PS CONDITION CODES.
371 ;-
372
373 $NS0: :CALL NSIER ;;;CALL COMMON CODE
374 .WORD 0 ;;;GROUP 0-17
375 $NS1:: CALL NSIER ;;;
376 .WORD 20 ;;;GROUP 20-37
377 $NS2:: CALL NSIER ;;;
378 .WORD 40 ;;;GROUP 40-57
379 $NS3:: CALL NSIER ;;;
380 .WORD 60 ;;;GROUP 60-77
381 $NS4:: CALL NSIER ;;;
382 .WORD 100 ;;;GROUP 100-117
383 $NS5:: CALL NSIER ;;;
384 .WORD 120 ;;;GROUP 120-137
385 $NS6:: CALL NSIER ;;;
386 .WORD 140 ;;;GROUP 140-157
387 $NS7:: CALL NSIER ;;;
388 .WORD 160 ;;;GROUP 160-177
389
390 ;+
391 ; **-NSIER-NONSENSE INTERRUPT ERRORS
392 ;
393 ; THIS ROUTINE IDENTIFIES THE INTERRUPTING VECTOR AND LOGS
394 ; THE ERROR.
395 ;
396 ; INPUTS:
397 ;
398 ; @(SP)=BITS 06:04 OF UNUSED VECTOR NUMBER
399 ;
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-7
400 ; OUTPUTS:
401 ;
402 ; AN EMB IS ALLOCATED AND QUEUED TO THE LOGGER WHICH
403 ; CONTAINS THE VECTOR NUMBER AND THE I/O ACTIVE BITMAP.
404 ;-
405
406 NSIER: MFPS -(SP) ;;;SAVE VECTOR ID(MODULO 20)
407 INCB NSI ;;;NSI IN PROGRESS?
408 BEQ 10$ ;;;NO IF EQ
409 CMP (SP)+,(SP)+ ;;;YES, CLEAR STACK
410 RTI ;;;AND RETURN
411 10$: BIC #177760,(SP) ;;;ISOLATE VECTOR ID(MOD 20)
412 MOV (SP)+,TEMP ;;;SAVE VECTOR ID(MOD 20)
413 BIS @(SP)+,TEMP ;;;ADD GROUP BIAS
414 MOV (SP),OPC ;;;SAVE PREINTERRUPT PC
415 MOV 2(SP),OPS ;;;SAVE PREINTERRUPT PS
416 CALL $INTSV,PR7 ;;;SWITCH STACKS
417 MOV $IOABM,R5 ;;;COPY IOABM
418 MOV #TEMP,R4 ;;;POINT PAST FORK BLOCK
419 CALL $FORK1 ;;;AND FORK,SAVING R5
420 MOV #E.OPC+2+2,R1 ;SET
421 MOV #EC.NSI,-(SP) ; UP TO
422 CALL $ALEMB ; CREATE EMB
423 BCS 20$ ;FAILED IF CS
424 MOV R5,(R0)+ ;FILL BITMAP
425 MOV TEMP,(R0)+ ;FILL ID AND COUNT
426 MOV OPS,(R0)+ ;FILL OLD PS
427 MOV OPC,(R0) ;FILL OLD PC
428 MOV #$QEMB,-(SP) ;SET UP TO CALL $QEMB
429 20$: MOV #-1,TEMP ;RESET RECURSION COUNTER
430 RETURN ;EXIT
431
432 .ENDC
433
434 .IF DF E$$DVC!E$$NSI
435
436 ;+
437 ; **-$QEMB-QUEUE AN EMB
438 ;
439 ; THIS IS THE COMMON POINT FOR ALL EMBS. THE EMB IS QUEUED
440 ; FIFO IN THE ERROR QUEUE. IF THERE ARE
441 ; ENOUGH BYTES OF EMBS IN THE POOL, THE LOGGER TASK IS AWAKENED.
442 ; ELSE, IF THE QUEUE WAS EMPTY, A SCHEDULE REQUEST IS MADE
443 ; SO A QUEUED EMB WILL BE WRITTEN WITHIN A TIME LIMIT.
444 ; ELSE, A RETURN IS MADE.
445 ;
446 ; INPUTS:
447 ;
448 ; (R1)=ADDRESS OF THE EMB
449 ;
450 ; OUTPUTS:
451 ;
452 ; THE EMB IS QUEUED. CONDITIONALLY, THE LOGGER IS WAKED
453 ; OR A SCHEDULE REQUEST IS MADE FOR THE LOGGER
454 ;
455 ; NOTE: REGISTERS R0-R3 ARE DESTROYED
456 ;-
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-8
457
458 .ENABL LSB
459 $QEMB:: SAVNR ;SAVE R4 AND R5
460 MOV $ERRPT,R5 ;GET ERRLOG TCB
461 BEQ 30$ ;NOT INITIALIZED IF EQ
462 MOV #$ERRHD,R0 ;POINT TO ERROR QUEUE LISTHEAD
463 MOV (R0),-(SP) ;SAVE CONTENTS OF LISTHEAD
464 CALL $QINSF ;QUEUE THE EMB FIFO
465 ADD E.SIZE+2(R1),$ERRSZ ;UPDATE POOL USAGE
466 CMP $ERRSZ,#WRTLIM ;ENOUGH TO WRITE
467 BGE 10$ ;YES IF GE
468 TST (SP)+ ;WAS ERROR QUEUE EMPTY?
469 BNE 20$ ;NO IF NE
470
471 ;
472 ; ERROR QUEUE WAS EMPTY. SET A SCHEDULE REQUEST FOR THE
473 ; LOGGER AT ERRTIM FROM NOW, SO THAT THE EMB WILL BE
474 ; WRITTEN IF NO MORE ERRORS OCCUR BEFORE THEN.
475 ;
476
477 MOV #C.LGTH,R1 ;SIZE OF CLOCK QUEUE ENTRY
478 CALL $ALOCB ;TRY TO GET SOME CORE
479 BCS 15$ ;UNAVAILABLE IF CS
480 CLR C.UIC(R0) ;INDICATE DEFAULT UIC
481 CLR R1 ;HIGH TIME=0
482 MOV #ERRTIM,R2 ;LOW TIME
483 MOV #C.SSHT,R4 ;SINGLE-SHOT TASK REQUEST
484 CALLR $CLINS ;MAKE REQUEST
485
486 ;
487 ; REQUEST THE LOGGER NOW
488 ;
489
490 10$: TST (SP)+ ;CLEAN STACK
491 15$: MOV R5,R0 ;COPY LOGGER TCB
492 TST T.STAT(R0) ;ERRLOG RUNNING?
493 BPL 20$ ;YES IF PL
494 CLR R1 ;INDICATE DEFAULT UIC
495 CALLR $TSKRT ;REQUEST LOGGER
496 20$: RETURN ;EXIT
497 30$: CRASH ;NO ERRORS ARE QUEUED IF
498 ;NO LOGGER IS PRESENT
499 .DSABL LSB
500 ; EB099
501 .IFF ; EB099
502 ; EB099
503 000012 $QEMB:: ; ; EB099
504
505 .ENDC
506
507 000001 .END
ERROR MACRO M1110 22-AUG-79 07:05 PAGE 3-9
SYMBOL TABLE
A$$CHK= 000000 G$$TTK= 000000 L$$DRV= 000000 P$$RTY= 000000 UISAR4= 177650
A$$CPS= 000000 H$$RTZ= 000074 MPAR = 172100 P$$TPT= 000000 UISAR5= 177652
A$$TRP= 000000 I$$RDN= 000000 MPCSR = 177746 R$$DER= 000000 UISAR6= 177654
CMODE = 140000 KDSAR0= 172360 M$$CRB= 000124 R$$EXV= 000000 UISAR7= 177656
C$$ORE= 002000 KDSDR0= 172320 M$$MGE= 000000 R$$SND= 000000 UISDR0= 177600
FE.CAL= 000040 KISAR0= 172340 M$$NET= 000000 R$$11M= 000000 UISDR4= 177610
FE.CEX= 020000 KISAR5= 172352 M$$NT2= 000000 R$$11S= 000000 UISDR5= 177612
FE.DRV= 000010 KISAR6= 172354 N$$LDV= 000001 SISDR0= 172200 UISDR6= 177614
FE.EXP= 000200 KISAR7= 172356 PIRQ = 177772 SR0 = 177572 UISDR7= 177616
FE.EXT= 000001 KISDR0= 172300 PMODE = 030000 SR3 = 172516 V$$CTR= 001200
FE.EXV= 000004 KISDR6= 172314 PR0 = 000000 SWR = 177570 V$$RSN= 000031
FE.LSI= 000400 KISDR7= 172316 PR1 = 000040 S$$YSZ= 001740 X$$DBT= 000000
FE.MUP= 000002 K$$CNT= 177546 PR4 = 000200 TPS = 177564 $ALEB1 000000RG
FE.MXT= 040000 K$$CSR= 177546 PR5 = 000240 UBMPR = 170200 $DTOER 000000RG
FE.NLG= 100000 K$$IEN= 000115 PR6 = 000300 UDSAR0= 177660 $DVCER 000012RG
FE.PKT= 000100 K$$LDC= 000001 PR7 = 000340 UDSDR0= 177620 $DVERR 000012RG
FE.PLA= 000020 K$$TPS= 000074 PS = 177776 UISAR0= 177640 $QEMB 000012RG
G$$TPP= 000000 L$$ASG= 000000
. ABS. 000000 000
000012 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 1913 WORDS ( 8 PAGES)
DYNAMIC MEMORY: 2980 WORDS ( 11 PAGES)
ELAPSED TIME: 00:00:19
[11,24]ERROR,SY0:[11,34]ERROR/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,ERROR