ASMB
      NAM JSCOM,7 24306-60001 REV.2026 791206 
* 
* 
******************************************************************* 
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED.
* NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR
* TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR WRITTEN
* CONSENT OF HEWLETT-PACKARD COMPANY. 
******************************************************************* 
* 
* 
*     SOURCE:    24306-18007
*     RELOC:     24306-60001
* 
* 
* 
******************************************************************
* 
* 
* 
* 
*FUNCTION - JSCOM IS A FUNCTION SUBPROGRAM WHICH
* COMPARES TWO VARIABLE LENGTH STRINGS IN A2 FORMAT 
* ACCORDING TO THE ASCII COLLATING SEQUENCE, AND
* SETS JSCOM TO A NEGATIVE NUMBER, ZERO, OR A POSITIVE
* NUMBER AS FOLLOWS:
* JSCOM<0 IF JSTR<KSTR
* JSCOM=0 IF JSTR=KSTR
* JSCOM>0 IF JSTR>KSTR
* 
*CALLING SEQUENCE 
* JSCOM(JSTR,J,JLAST,KSTR,K,IERR) 
* 
* JSCOM COMPARES CORRESPONDING CHARACTERS IN
* JSTR AND KSTR FROM LEFT TO RIGHT, STARTING WITH 
* JSTR(J) AND KSTR(K).  JSCOM TERMINATES WHEN JSTR
* AND KSTR DO NOT MATCH OR WHEN JSTR(JLAST) HAS BEEN
* COMPARED
* 
*ERROR CONDITIONS*
* IF ANY CHARACTER IN JSTR OR KSTR TO BE COMPARED 
* IS NOT A VALID PRINTABLE ASCII CHARACTER
* NER IS SET TO THE POSITION OF THE CURRENT 
* CHARACTER IN JSTR.
* A VALID PRINTABLE ASCII CHARACTER IS ANY
* CHARACTER WITH A CODE C SUCH THAT 37<C<173
* OR THAT THE CODE C IS SUCH THAT 240<C<340 
      ENT JSCOM 
      EXT .ENTR,SGET
PARAM BSS 6 
JSCOM NOP 
      JSB .ENTR     TRANSFER PARAMETERS 
      DEF PARAM 
      LDB PARAM+1,I  JNOW=J 
      STB JNOW      JNOW IS POINTER TO JSTR 
GET   LDB PARAM+1,I KNOW=K+JNOW-J 
      CMB,INB       KNOW IS POINTER TO KSTR 
      ADB JNOW
      ADB PARAM+4,I 
      STB KNOW
      JSB SGET      JTEST=JSTR(JNOW)
      DEF *+4 
      DEF PARAM,I 
      DEF JNOW
      DEF JTEST 
      LDB JTEST     JTEST VALID KATAKANA CHARACTER?   6-22-79 
      ADB N240        (240 < JTEST < 340)             6-22-79 
      SSB                                             6-22-79 
      JMP ASCJ      IT'S < 240, NOT K.K.              6-22-79 
      LDB JTEST     STILL MAY BE K.K.                 6-22-79 
      ADB N340                                        6-22-79 
      SSB           KATAKANA?                         6-22-79 
      JMP L1        YES, SKIP OVER NEXT SECTION       6-22-79 
      JMP ERR       INVALID CHARACTER, >340           6-22-79 
ASCJ  EQU *                                           6-22-79 
      LDB JTEST     JTEST A VALID CHARACTER?
      ADB N40        (39<JTEST<173?)
      SSB 
      JMP ERR 
      LDB JTEST 
      ADB N173
      SSB,RSS 
      JMP ERR       IF NOT, ERROR 
L1    EQU *                                           6-22-79 
      JSB SGET      KTEST=KSTR(KNOW)
      DEF *+4 
      DEF PARAM+3,I 
      DEF KNOW
      DEF KTEST 
      LDB KTEST     KTEST VALID KATAKANA CHARACTER?   6-22-79 
      ADB N240        (240 < KTEST < 340)             6-22-79 
      SSB                                             6-22-79 
      JMP ASCK      IT'S < 240, NOT K.K.              6-22-79 
      LDB KTEST     STILL MAY BE K.K.                 6-22-79 
      ADB N340                                        6-22-79 
      SSB            KATAKANA?                        6-22-79 
      JMP L2         YES, SKIP OVER NEXT SECTION      6-22-79 
      JMP ERR       INVALID CHARACTER, >340           6-22-79 
ASCK  EQU *                                           6-22-79 
      LDB KTEST     KTEST A VALID CHARACTER?
      ADB N40 
      SSB 
      JMP ERR       IF NOT, ERROR 
      LDB KTEST 
      ADB N173
      SSB,RSS 
      JMP ERR 
L2    EQU *                                           6-22-79 
      LDA KTEST     JSCOM=JTEST-KTEST 
      CMA,INA 
      ADA JTEST 
      SZA           IS JSCOM=0? 
      JMP JSCOM,I   IF NOT, RETURN
      ISZ JNOW      JNOW=JNOW+1 
      LDB JNOW      JNOW>JLAST? 
      CMB,INB 
      ADB PARAM+2,I 
      SSB 
      JMP JSCOM,I   IF SO, RETURN 
      JMP GET       ELSE COMPARE NEXT CHARACTERS
ERR   CLA,INA        JSCOM=1
      LDB JNOW      IERR=JNOW 
      STB PARAM+5,I 
      JMP JSCOM,I   RETURN
JNOW  BSS 1 
KNOW  BSS 1 
JTEST BSS 1 
KTEST BSS 1 
N40   OCT -40 
N173  OCT -173
N240  OCT -240                                        6-22-79 
N340  OCT -340                                        6-22-79 
      END 
      END$
                                                          