.TITLE GCLMSG -- PROCESS GET COMMAND LINE ERROR MESSAGES .IDENT /X01.00/ .ENABLE LC .NLIST BEX ; ; Author: Gilbert J. DeLeeuw ; Date: May 3, 1984 ; Name: GCLMSG - Generate GCL error messages ; Function: To either exit, or generate the appropriate error message ; ; Parameters: ; ; R0 - Must contain address of GCLBLK ; R2 - Returns length of message ; R3 - Returns address of message ; ; .MCALL EXST$S,GCMLB$,GCMLD$,RCML$ ; ; Define macro ; .MACRO MSG ERN,TXT .NCHR L, .BYTE L .BYTE ERN .ASCII !TXT! .ENDM ; ; Define offsets ; GCMLD$ ; ; GCML Messages ; MTBL: MSG GE.IOR, MSG GE.OPR, MSG GE.BIF, MSG GE.MDE, MSG GE.RBG, MSGU: MSG 0, .EVEN ; ; Entry point GCLMSG:: MOVB G.ERR(R0),R1 ;COPY STATUS BYTE ; ; EOF? ; CMPB #GE.EOF,R1 ;END OF FILE? BNE GCLERR ;NO EXST$S #1 ;EXIT ; ; GCML Error processing ; GCLERR: 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 RSTCML ;END OF TABLE REACHED CMP R4,R1 ;COMPARE CODES BNE 10$ ;IF CODES MATCH, WE ARE DONE ; ; Reset command level ; RSTCML: RCML$ ;CLOSE COMMAND FILE RTS PC ;RETURN TO CALLER .END