.TITLE SRDTRP .IDENT /V001.1/ .MCALL QIO$S,WTSE$S,CALLR,CLOSE$ .MACRO MESG$ STRING .ASCIZ \STRING\ .ENDM MESG: .ASCII /SRD -- */ SERV: .BLKB 4 .ASCII /* / MES1: .BLKB 40. .EVEN TRAP0:: MOV #SERV,R1 ;POINT AT SEVERITY INDICATOR MOV #"DI,(R1)+ ;ASSUME DIAGNOSTIC MOV #"AG,(R1) ; ASRB 1(SP) ;IS THIS FATAL OR DIAGNOSTIC? BCS 10$ ;BR IF DIAGNOSTIC MOV #"TL,(R1) ;SET FATAL HEADER MOV #"FA,-(R1) ; MOV #LSTNX$,2(SP) ;FIX UP RETURN 10$: ADD #ERRTAB,(SP) ;COMPUTE MESSAGE ADDRESS MOV @(SP)+,R1 ;GET DESCRIPTOR MOV #MES1,R2 ;START OF VARIABLE AREA 20$: MOVB (R1)+,(R2)+ ;FILL OUT MESSAGE BNE 20$ ;THE WHOLE THING MOVB #'!,(R2)+ ;FILL THIS OUT MOV #MESG,R1 ;START OF MESSAGE SUB R1,R2 ;R1 GETS LENGTH 40$: QIO$S #IO.WVB,MOLUN,#17,,,, BCC 50$ ;BR IF A-OK CALL $ALERR ;DIAGNOSE ERR BR 40$ ;RETURN IF NO POOL-TRY AGAIN 50$: WTSE$S #17 ;WAIT FOR I-O TO STOP BIS #FLSW,S2MSK$ ;MARK SOMETHING GONE OUT RTT ;RETURN CONTROL ; ; ; ERRTAB::.WORD 999$ .WORD 1$, 2$, 3$, 4$, 5$, 6$, 7$ .WORD 10$,11$,12$,13$,14$,15$,16$,17$ .WORD 20$,21$,22$,23$,24$ 999$: MESG$ 1$: MESG$ 2$: MESG$ 3$: MESG$ 4$: MESG$ 5$: MESG$ 6$: MESG$ 7$: MESG$ 10$: MESG$ 11$: MESG$ 12$: MESG$ 13$: MESG$ 14$: MESG$ 15$: MESG$ 16$: MESG$ 17$: MESG$ 20$: MESG$ 21$: MESG$ 22$: MESG$ 23$: MESG$ 24$: MESG$ .EVEN ;*** MAKE SURE ITS AN EVEN NUMBER *** .END