.TITLE NCHAR - # OF CHARACTERS .IDENT /25MAY7/ ;16:10:00, LV ; .ENTRY NCHAR - # OF CHARACTERS ;+ ; N C H A R ; ; PURPOSE: NCHAR WILL RETURN THE INDEX OF THE LAST ; NON-BLANK CHARACTER IN A STRING. NOTE THAT ; NULL CHARACTERS ARE NOT CONSIDERED TO BE ; BLANKS, ALTHOUGH THEY PRINT AS SUCH. BECAUSE ; OF THIS, NULL CHARACTERS MAY BE USED TO BIAS ; THE CHARACTER COUNT. THE LIBRARY ROUTINE ; BLKFIL CAN BE USED TO PREVENT UNINTENTIONAL ; BIASING OF THIS NATURE. ; ; IF THE ENTIRE STRING IS BLANK, ZERO IS RETURNED. ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE FUNCTION) ; CALL NCHAR(STRING,NBYTES) ; ; INPUT: STRING = ADDRESS OF CHARACTER STRING ; NBYTES(INTEGER) = NUMBER OF BYTES IN STRING ; ; LANGUAGE: MACRO-11 ; ;- ; REVISIONS: ; JAN-75 RK WRITTEN ; 25-MAY-77 LV UPDATED TO CONFORM TO STANDARDS ; NCHAR:: MOV R1,-(SP) MOV 2(R5),R1 ;STRING ADDRESS MOV @4(R5),R0 ;BYTE COUNT ADD R0,R1 ;COMPUTE ADDRESS OF LAST CHAR+1 10$: CMPB #40,-(R1) ;IS IT A BLANK? BNE DONE ;NO, R0 CONTAINS INDEX SOB R0,10$ ;ADJUST INDEX AND GO LOOK AT IT DONE: MOV (SP)+,R1 ;EITHER FOUND NON-BLANK OR NO ;NON-BLANKS IN STRING RETURN .END