.TITLE GNBLK - GET NEXT NON-BLANK CHARACTER .IDENT "01" ; ; ; COPYRIGHT 1975, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ; ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC. ; ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DEC ASUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. ; ; VERSION: 01 ; BY: H.LEV ; DATE: 1/25/74 ; ; THIS SUBROUTINE GETS THE NEXT NON-BLANK CHARACTER AND TESTS ; FOR END OF LINE ; .MCALL RETURN ; ; EQUATES SYMBOLS ; CR = 15 ; CARRIAGE RETURN ESC = 33 ; ESCAPE SPA = 40 ; SPACE ;+ ; *** - $GNBLK - GET NEXT CHARACTER FROM BUFFER AND FIND NEXT NON-BLANK ; *** - $NNBLK - STARTING WITH CHARACTER IN R2, FIND NEXT NON-BLANK ; THIS SUBROUTINE GETS THE NEXT NON-BLANK CHARACTER AND ; TESTS IT FOR BEING AN END OF LINE CHARACTER. ; ; INPUT: ; R0 - BUFFER POINTER ; R2 - $NNBLK ONLY - THE FIRST CHARACTER TO BE TESTED ; ; OUTPUT: ; R0 - UPDATED TO POINT TO NEXT CHARACTER IN BUFFER ; R2 - FIRST NON-BLANK FOUND ; CARRY CLEAR - NO END OF LINE FOUND ; CARRY SET - END OF LINE (CR, ESC) FOUND, ITS IN R2. ; ;- $GNBLK::MOVB (R0)+,R2 ; GET NEXT CHARACTER $NNBLK::CLR R1 ; ZERO BLANK COUNT 5$: CMPB R2,#SPA ; IS IT BLANK? BNE 10$ ; NO INC R1 ; YES, SET BLANK FOUND MOVB (R0)+,R2 ; GET NEXT CHARACTER BR 5$ ; LOOP UNTIL NON-BLANK 10$: CMPB R2,#CR ; IS IT CARRIAGE RETURN (EOL)? BEQ 20$ ; YES CMPB R2,#ESC ; NO, IS IT ESCAPE (EOL)? BEQ 20$ ; YES TST R2 ; ZERO BYTE? BEQ 20$ ; YES CLC ; NO, SET NOT EOL FLAG BR 30$ ; 20$: SEC ; SET END OF LINE FLAG 30$: RETURN ; .END