.TITLE SRDTRP .MCALL QIO$S,WTSE$S,CALLR,CLOSE$,PUT$S .MACRO MESG$ STRING .ASCIZ \STRING\ .ENDM MESG: .ASCII /SRD -- */ SERV: .BLKB 4 .ASCII /* / MES1: .BLKB 80. .EVEN TRAP0:: MOV R0,R0SAV MOV R1,R1SAV MOV R2,R2SAV 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 MOV #MESG,R1 ;START OF MESSAGE SUB R1,R2 ;R2 GETS LENGTH 40$: QIO$S #IO.WVB,#1,#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,SWMSK$ ;MARK SOMETHING GONE OUT ; ; PUT IT ALSO ON THE LISTING FILE BIT #OUTFSW,SWMS1$ ; ONLY IF ONE WAS SPECIFIED BEQ 70$ MOV #LSTFDB,R0 TST F.BDB(R0) ; LISTING FILE OPEN ? BEQ 70$ ; BR IF NO PUT$S ,R1,R2 MOV #LINBUF,F.NRBD+2(R0) 70$: MOV R0SAV,R0 MOV R1SAV,R1 MOV R2SAV,R2 RTT ;RETURN CONTROL ; R0SAV: +0 R1SAV: +0 R2SAV: +0 ; ; 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$,25$,26$,27$ .WORD 30$,31$,32$,33$ 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$ 25$: MESG$ 26$: MESG$ 27$: MESG$ 30$: MESG$
31$: MESG$ 32$: MESG$ 33$: MESG$ .EVEN ;*** MAKE SURE ITS AN EVEN NUMBER *** .END