.TITLE DIRMSG -- DIRRECTIVE ERROR MESSAGES .IDENT /X01.00/ .ENABLE LC .NLIST BEX ; ; Author: Gilbert J. DeLeeuw ; Date: May 3, 1984 ; Name: Compress and Restore Utility ; Function: To generate appropriate Dirrective error message ; ; Parameters: ; ; R2 - Returns length of message ; R3 - Returns address of message ; .MACRO MSG ERN,TXT .NCHR L, .BYTE L .BYTE ERN .ASCII !TXT! .ENDM ; ; Table size TSIZ=37. ; ; I/O Messages MTBL: MSG IE.UPN, MSG IE.INS, MSG IE.PTS, MSG IE.UNS, MSG IE.ULN, MSG IE.HWR, MSG IE.ACT, MSG IE.ITS, MSG IE.FIX, MSG IE.CKP, MSG IE.TCH, MSG IE.RBS, MSG IE.PRI, MSG IE.RSU, MSG IE.NSW, MSG IE.ILV, MSG IE.ITN, MSG IE.LNF, MSG IE.AST, MSG IE.MAP, MSG IE.IOP, MSG IE.ALG, MSG IE.WOV,
MSG IE.NVR, MSG IE.NVW, MSG IE.ITP, MSG IE.IBS, MSG IE.LNL, MSG IE.IUI, MSG IE.IDU, MSG IE.ITI, MSG IE.PNS, MSG IE.IPR, MSG IE.ILU, MSG IE.IEF, MSG IE.ADP, MSG IE.SDP, MSGU: MSG 0, .EVEN ; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; I/O Error Checking DIRMSG:: MOV $DSW,R1 ;DIRRECTIVE ERROR CODE BGE DONE ;NOT AN ERROR ; ; SET UP OTHER REGISTERS CLR R2 ;INITIALIZE R2 MOV #MTBL,R3 ;GET ADDRESS OF TABLE ; ; Search for match 10$: ADD R2,R3 ;POINT TO NEXT MESSAGE MOVB (R3)+,R2 ;LENGTH OF STRING MOVB (R3)+,R4 ;ERROR NUMBER BEQ UNKN ;END OF TABLE REACHED CMP R4,R1 ;COMPARE CODES BNE 10$ ;IF CODES MATCH, WE ARE DONE SEC ;SET CARRY TO INDICATE ERROR RTS PC ;AND LOOP ; ; Undefined code message UNKN: MOV #MSGU+12.,R0 ;ADDRESS CLR R2 ;SUPPRESS LEADING ZERO'S CALL $CBDSG ;CONVERT CODE TO ASCII MOVB MSGU,R2 ;LENGTH MOV #MSGU+2,R3 ;ADDRESS SEC ;SET CARRY TO INDICATE ERROR DONE: RTS PC .END