; SUBROUTINE STRCMP ; TO COMPARE TWO STRINGS AND REPORT EQUALITY OR NOT. ; FORTRAN CALL: ; CALL STRCMP(STRING1,STRING2,NCH,IRSLT) ; WHERE STRING1=FIRST STRING (USUALLY ARRAY) ; STRING2=SECOND STRING ; NCH=NUMBER OF CHARACTERS TO COMPARE ; IRSLT=STATUS: 0 -> EQUALITY ; > 0 -> POSITION IN STRINGS AT WHICH = FAILED .TITLE STRCMP .CSECT .GLOBL STRCMP STRCMP: MOV 2(R5),R0 ;FIRST STRING ST. ADD. IN R0 MOV 4(R5),R1 ;2ND STRING ST. ADD. IN R1 MOV @6(R5),R2 ;LENGTH (# BYTES) IN R2 OVER: CMPB (R0)+,(R1)+ ;COMPARE BNE INEQ ;AT FAILURE GO TO REPORTING ROUTINE SOB R2,OVER ;KEEP GOING IF NOT DONE CLR @10(R5) ;ELSE REPORT SUCCESS RTS PC INEQ: NEG R2 ;CALCULATE # OF CHARACTER AT WHICH ADD @6(R5),R2 ;TEST FAILED AND PUT IN FOURTH INC R2 ;ARGUMENT MOV R2,@10(R5) RTS PC .END