.TITLE TRUNC ; AUTHOR: MARTY PORTNER ; WORLD BOOK-CHILDCRAFT, INC. ;THIS SUBROUTINE TRUNCATES A CHACACTER STRING. ; ; CALLING FORMAT: ; ; CALL TRUNC(STRING,POS) ; ; THIS CALL WILL CAUSE STRING TO BE TRUNCATED AT POSITION POS. ; ; DEFAULTS SUPPLIED: POS<<<<<>>>>> +1 .IDENT /TRUNC3/ .PSECT $$STRG,RO,I,CON,LCL TRUNC:: CMPB #1,@R5 ;ENOUGH ARGS ?? BLE 1$ JMP ..BYE ;NO, EXIT 1$: CMP #-1,2(R5) ;STRING PRESENT ?? BEQ ..BYE ;NO, EXIT MOV R0,-(SP) ;SAVE R0 CMPB #1,@R5 ; BEQ 20$ ;SUPPLY DEFAULT POS CMP #-1,4(R5) ;POS THERE ?? BNE 2$ ;SUPPLY DEFAULT POS 20$: MOV 2(R5),R0 ;GET ADDR OF STRING, PLACE IN R0 CLRB (R0) ;ACTS LIKE NULL JMP 10$ ; 2$: MOV 2(R5),R0 ; TST @4(R5) ;POS O.K. ?? BLE 10$ ;IF NOT, EXIT ADD @4(R5),R0 ;CALCULATE TRUNCATION POSITION CLRB -(R0) ;TRUNCATE 10$: MOV (SP)+,R0 ; ..BYE: RTS PC ;RETURN .END