.TITLE ERDIR - Directive Errors .IDENT /V01.00/ .ENABL LC ;+ ; This module processes directive errors by outputing the directive error ; code ($DSW) and matching message from LB:[1,2]QIOSYM.MSG. ; ; (taskname) -- [Exiting due to] Directive error ($dsw) ; (directive error message from qiosym) ; at PC (pc) ; ; Call with: JSR PC,ERDIRX (or ERDIRR) ; $DSW = Directive error code. ; ; Exit with: ERDIRR -> Message output and return to caller (PSW/CS). ; ERDIRX -> Message output and task exit (with error status). ;- .PSECT ERR$TX,RO,D DIRERR: .ASCIZ /Directive/ .PSECT ERR$CD,RO,I ERDIRX::INC (SP) ;Set to exit ERDIR:: JSR PC,$SAVAL ;Save all registers MOV $DSW,R2 ;Get the error number MOV R2,-(SP) ;Save for later recall NEG R2 ;Convert to positive number ADD #128.,R2 ;Directive errors start at 129 CALL ERTXT ;Get the error message from QIOSYM MOV (SP)+,R0 ;Get error number MOV #DIRERR,R1 ;Get the error type message MOV 16(SP),R3 ;Get the error PC CLR R5 ;Set no optional line CALLR ERMSG ;Go processor the error and return .END