*DECK LSEARCH 
          IDENT  LSEARCH
          TITLE  LSEARCH - SEARCH LITERAL POOL FOR MATCH
*         LSEARCH - LITERAL POOL SEARCH 
* 
*         CALLING SEQUENCE
*                LSEARCH(START,LEN,STRING,LSTR,MATCH) 
*         INPUTS
*                START - ADDRESS OF LITERAL POOL
*                LEN - LENGTH OF POOL (WORDS) 
*                STRING - ADDRESS OF STRING TO SEARCH FOR 
*                LSTR - LENGTH STRING (WORDS) 
*         OUTPUT
*                MATCH - SET -1 IF NO MATCH FOUND 
*                      - SET TO FIRST WORD OFFSET OF MATCHING STRING
*                        IF FOUND 
          ENTRY  LSEARCH
 LSEARCH  DATA   0
          SB1    1
          SB2    X1          TABLE ADDRESS
          SA1    A1+B1
          SA2    X1          LEN
          SA1    A1+B1
          SB7    X1          STRING 
          SA1    A1+B1
          SA3    X1          LSTR 
          IX4    X2-X3
          SB4    X4          UPPER TABLE LIMIT
          SB5    X3          LSTR 
          SA1    A1+B1
          SX7    X1 
          SA7    MATCH
          SB3    B0          TABLE INDEX
 LS1      BSS    0
          SB6    B0          STRING INDEX 
          SA4    B2+B3       NEW TABLE ENTRY
 LS2      BSS    0
          SA1    B7+B6       STRING 
          BX7    X4-X1
          NZ    X7,LS3       NO MATCH, GET NEW TABLE ENTRY
          NG     X7,LS3 
           SB6   B6+B1
          SA4    A4+B1
          NE     B5,B6,LS2   MORE WORDS IN STRING 
          SA1    MATCH
          SX7    B3 
          SA7    X1 
          EQ     LSEARCH
          SPACE  3
 LS3      BSS    0
          SB3    B3+B1
          LE     B3,B4,LS1   MORE TABLE ENTRIES 
          SA1    MATCH
          MX7    59 
          SA7    X1 
          EQ     LSEARCH
          SPACE  3
 MATCH    BSS   1 
          END 
