; SUBROUTINE INSERT(IN,OUT,I,{,M}) ; ; INSERT REPLACES A PORTION OF STRING OUT BY STRING IN. ; THE INSERTION STARTS AT CHARACTER POSITION I IN OUT AND A ; MAXIMUM OF M CHARACTERS ARE INSERTED. IF M IS NOT SPECIFIED ; ALL CHARACTERS TO THE RIGHT OF I ARE REPLACED. IF IN AND OUT ; ARE THE SAME STRING, M MUST BE GIVEN .TITLE INSERT .IDENT /V2/ .PSECT .GLOBL INSERT INSERT: MOV (R5)+,R3 MOV (R5)+,R1 MOV (R5)+,R2 MOV @(R5)+,R4 BEQ INSRTA INSRTB: DEC R4 BEQ INSRTA TSTB (R2)+ BNE INSRTB DEC R2 INSRTA: CMPB #4 ,R3 BHI INSRTC MOV @(R5)+,R5 BEQ INSRTD INSRTG: MOVB (R2),R0 BNE INSRTE MOV SP,R4 INSRTE: MOVB (R1)+,(R2)+ BEQ INSRTF DEC R5 BNE INSRTG MOVB (R2),R0 CLRB (R2)+ INSRTF: TST R4 BNE INSRTD MOVB R0,-(R2) INSRTD: RTS PC INSRTC: MOVB (R1)+,(R2)+ BNE INSRTC RTS PC .END