.TITLE TRUNC ; SUBROUTINE TO TRUNCATE TRAILING BLANKS FROM A STRING, AND ENSURE ; THAT THE STRING ENDS WITH A NULL. ; ; CALL TRUNC (S,L) OR ; CALL TRUNC (S) ; ; S IS A STRING ; L IS LENGTH ; .GLOBL TRUNC TRUNC: MOV 2(R5),R0 ;ADDRESS STRING CMP @R5,#1 ;>1 ARGUMENT? BGT TWOARG T1: CLR R1 1$: INC R1 ;COUNT TSTB (R0)+ ;LOOK FOR NULL BNE 1$ BR T2 TWOARG: MOV @4(R5),R1 ;GET COUNT BLE T1 ;ZERO OR -: SAME AS 1-ARG ADD R1,R0 ;POINT TO END OF STRING CLRB -1(R0) ;BE SURE OF NULL IF NO BLANKS T2: DEC R1 ;COUNT STRING BACKWARDS BLT DONE TSTB -(R0) ;ALREADY NULL? BEQ T2 CMPB @R0,#40 ;NON-BLANK? BNE DONE CLRB @R0 ;BLANK- NULL IT BR T2 DONE: RTS PC .END