; SUBROUTINE VERIFY(A,B,I) ; FUNCTION IVERIF(A,B) ; ; DETERMINES WHETHER EACH CHARACTER IN STRING A OCCURS IN STRING B. ; THE SUBROUTINE RETURNS THE POSITION OF THE FIRST CHARACTER IN B ; WHICH IS NOT IN A, OR 0 IF ALL CHARACTERS IN B APPEAR IN A. ; THIS VALUE IS RETURNED IN I(VERIFY) OR AS THE FUNCTION RESULT(IVERIF). ; ; IF IVERIF IS USED, NEITHER A NOR B MAY BE LITERAL STRINGS. .TITLE VERIFY .IDENT /V2/ .GLOBL VERIFY,IVERIF .PSECT VERIFY: IVERIF: MOV (R5)+,-(SP) MOV (R5)+,R1 MOV (R5)+,R2 MOV #10 ,R0 VERIFA: CLR -(SP) DEC R0 BNE VERIFA VERIFC: MOVB (R2)+,R3 BLE VERIFB JSR PC,VERIFH BISB (R3),(R4) VERIFB: BNE VERIFC VERIFE: INC R0 MOVB (R1)+,R3 BLE VERIFD JSR PC,VERIFH BITB (R3),(R4) BNE VERIFE VERIFG: ADD #20 ,SP CMPB #3 ,(SP)+ BHI VERIFF MOV R0,@(R5)+ VERIFF: RTS PC VERIFD: BNE VERIFG CLR R0 BR VERIFG VERIFH: MOV R3,R4 BIC #177770 ,R3 ADD PC,R3 ADD #20 ,R3 ASR R4 ASR R4 ASR R4 ADD SP,R4 CMPB (R4)+,(R4)+ RTS PC .WORD 040200,010040,002010,000402 .END