.TITLE FINDS ;.MACRO .FINDS A,B,ADDR ;SEARCHES STRING A FOR STRING B .GLOBL .FINDS ;ADDR OF FOUND STRING IS RETURNED IN ADDR ADDR: .BLKW 1 ;ADDRESS OF START OF FOUND STRING BFIND: .BLKW 1 ;ADDRESS OF STRING B AFIND: .BLKW 1 ;ADDRESS OF A .FINDS: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV AFIND,R0 L66: TSTB (R0) ;END OF A-STRING? BEQ ENDSTR MOV BFIND,R1 MOV R0,R2 L67: TSTB (R1) ;END OF B-STRING? BEQ FOUND ;IF SO, STRING WAS FOUND! CMPB (R2)+,(R1)+ BEQ L67 INC R0 ;STRINGS DO NOT MATCH; CHECK NEXT BYTE BR L66 ENDSTR: SEC ;C-BIT SET INDICATES STRING NOT FOUND BR RFIND FOUND: MOV R0,ADDR CLC RFIND: MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RETURN .END