; VALERR - VAL ERROR REPORTING ROUTINES ; LAST EDIT: 11-SEP-80 ; ;- .NLIST .LIST TTM .NLIST SEQ,LOC,BIN,BEX .TITLE VALERR .LIST ;+ ; .IDENT /V003/ ; ; THESE ROUTINES ARE CONCERNED WITH THE REPORTING OF ERRORS ; DETECTED BY THE VAL PACKAGE. THESE ARE GENERALY VALUES ; WHICH FALL OUTSIDE A SPECIFIED RANGE. ; ; THIS ROUTINE PRINTS AN ERROR MESSAGE AND THE INPUT LINE ; UP TO AND INCLUDING THE BAD VALUE. IT THEN CALLS 'VALHLP' ; WHICH PRINTS FULL DETAILS OF THE VALUE REQUIRED. ; ; ; THESE ROUTINES ARE FORTRAN CALLABLE TO PERMIT USER ; DEFINITION OF ERROR REPORTING. ; ; THE FIRST THREE ARGUMENTS PASSED ARE: ; LUN LUN NUMBER TO USE FOR MESSAGE OUTPUT ; LINE OUTS LINE NUMBER FOR MESSAGE OUTPUT ; LBUF THE CURRENT LINE BUFFER. THIS IS A BYTE BUFFER ; CONTAINING THE TEXT LINE IN WHICH THE ERROR ; OCCURED. THE FIRST BYTE OF THE BUFFER CONTAINS ; THE INDEX IN THE LINE AT WHICH THE BAD ITEM IS ; LOCATED. ; ; ; ;- .NLIST .LIST SEQ,LOC,BIN .LIST .PSECT VALIO ; ; .GLOBL OUT,OUTS ; GENERAL MESSAGE OUTPUT ROUTINE ; ; PARAMETER LIST OFFSETS: P1=2 P2=4 P3=6 P4=10 P5=12 P6=14 P7=16 ; ; ;+ ; ; INTERR - ERROR IN INTEGER REQUEST ; INTERR(LUN,LINE,LBUF,IVAL,ILOW,IHIGH) ; ;- INTERR:: ; ; ;+ ; REAERR - ERROR IN REAL REQUEST ; REAERR(LUN,LINE,LBUF,RVAL,RLOW,RHIGH) ; ;- REAERR:: ; ;+ ; ; REPORT ERROR FROM VALDIR ; DIRERR(LUN,LINE,LBUF,IVAL,ILOW,IHIGH,DIR) ; ;- DIRERR:: ;+ ; ; REPORT ANY OTHER ERRORS DETECTED ; OTHERR(LUN,LINE,LBUF) ; ;- OTHERR:: ; ; ; OUTPUT OFFENDING LINE MOV R0,-(SP) MOV R1,-(SP) MOV R5,-(SP) MOV #BLK1,R5 MOV #MES1,P1(R5) ;'* ERROR * IN ' CALL OUT MOV (SP),R5 MOV P3(R5),R0 ;ADDRESS OF LINE BUFFER MOVB (R0)+,R1 ;GET LENGTH BYTE ADD R0,R1 ;POINT TO END CLRB (R1) ;TERMINATE BUFFER MOV #BLK1,R5 MOV R0,P1(R5) CALL OUTS MOV (SP)+,R5 MOV (SP)+,R1 MOV (SP)+,R0 CALL VALHLP ;PRINT REQUEST DETAILS RETURN ; ;+ ; ; CLEAR ERROR MESSAGES AFTER SUCCESS ; CLRERR(LUN,LINE) ; ;- CLRERR::MOV R5,-(SP) ;OUTPUT TWO BLANK LINES MOV #BLK0,R5 ;TWO BLANK LINES CALL OUTS CALL OUTS MOV (SP)+,R5 RETURN ; ; ; ; ; ; ; BLK0: .WORD 0 BLK1: .WORD 1,0 ; MES1: .ASCIZ /* ERROR * IN: / ; .END