.TITLE DELETE .IDENT /830812/ ;DELETES A SUBSTRING FROM STRING ; ;REGISTER USAGE : ; R0 SCRATCH ; R1 SPAN ; R2 STRING ; R3 START DELETE:: MOV SP,R0 TST (R0)+ MOV (R0),R1 ;SPAN TO DELETE MOV R3,(R0)+ MOV (R0),R3 ;START OF DELETE MOV R2,(R0)+ MOV (R0),R2 ;STRING POINTER MOV (SP)+,(R0) ; TST R1 BLE 6$ DEC R3 ;CHARACTERS TO SKIP TO DELETE POINT BLE 2$ 1$: TSTB (R2)+ ;SKIP TO DELETE POINT BEQ 6$ ;IGNORE IF POINT BEYOND END SOB R3,1$ ; 2$: MOV R2,R0 3$: TSTB (R2)+ ;SKIP DELETED CHARACTERS BEQ 5$ SOB R1,3$ ; 4$: MOVB (R2)+,(R0)+ ;MOVE BACK REMAINING CHARACTERS BNE 4$ ;FALL THROUGH WHEN COMPLETE ; 5$: CLRB (R0)+ ;MARK END OF STRING ; 6$: MOV (SP)+,R3 MOV (SP)+,R2 RTS PC .END