ASMB
      NAM SDEA2,7 24306-60001 REV.2026 791205 
* 
* 
******************************************************************* 
* (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-18009
*     RELOC:     24306-60001
* 
* 
* 
******************************************************************
* 
* 
* 
* 
* 
*FUNCTION - CONVERTS A FIELD FROM DECIMAL FORMAT, 
*RIGHT-JUSTIFIED, TWO DIGITS PER WORD, TO A2 FORMAT.
* 
*CALLING SEQUENCE - CALL SDEA2(JSTR,JBEG,JEND,NER)
*WHERE JSTR NAMES THE ONE-DIMENSIONAL STRING INTEGER ARRAY
*THAT IS TO BE CONVERTED. 
*JBEG IS AN INTEGER CONSTANT, INTEGER VARIABLE, OR
*INTEGER EXPRESSION DEFINING THE FIRST CHARACTER IN 
*JSTR TO BE CONVERTED.
*JEND IS AN INTEGER CONSTANT, INTEGER VARIABLE, OR
*INTEGER EXPRESSION DEFINING THE LAST CHARACTER IN JSTR 
*THAT IS TO BE CONVERTED. 
*NER IS AN INTEGER VARIABLE ERROR INDICATOR.
*IT IS SET WHEN A DIGIT IS GREATER THAN 9 OR
*NEGATIVE UNLESS THE NEGATIVE DIGIT IS AT POSITION JEND.
* 
      ENT SDEA2 
      EXT .ENTR,S.GET,SPUT,SZONE
PARAM BSS 4 
SDEA2 NOP 
      JSB .ENTR     TRANSFER PARAMETERS 
      DEF PARAM 
      LDA FOUR
      STA JSIGN     JSIGN=4 
      JSB S.GET      GET LAST CHAR
      DEF *+4 
      DEF PARAM,I    JSTR 
      DEF PARAM+2,I  JLAST
      DEF JTEST     JTEST=LAST CHAR 
      LDA JTEST 
      SSA,RSS 
      JMP POS 
      LDB TWO         IF JTEST<0  JSIGN=2 
      STB JSIGN 
      CMA           NEGATE LAST CHAR
      STA JTEST 
      JSB SPUT      AND REPLACE IN JSTR 
      DEF *+4 
      DEF PARAM,I     JSTR
      DEF PARAM+2,I  JLAST
      DEF JTEST 
POS   LDA PARAM+1,I JNOW=J
      STA JNOW
THREE JSB S.GET      GET NEXT CHAR
      DEF *+4 
      DEF PARAM,I      JSTR 
      DEF JNOW
      DEF JTEST 
      LDA JTEST 
      SSA 
      JMP ERR          IF JTEST<0 GO ERR
      ADA NTEN
      SSA,RSS 
      JMP ERR       IF JTEST<10 THEN
      LDA JTEST     MASK ASCII TO JTEST AND 
      IOR SIXTY 
      STA JTEST 
      JSB SPUT      PUT ASCII CHAR IN JSTR. 
      DEF *+4 
      DEF PARAM,I      JSTR 
      DEF JNOW
      DEF JTEST 
      JMP *+3 
ERR   LDA JNOW      NER=JNOW
      STA PARAM+3,I 
      LDA PARAM+2,I 
      CMA,INA 
      ADA JNOW
      SSA,RSS 
      JMP FIN 
      ISZ JNOW      IF JNOW<JLAST THEN
      JMP THREE     JNOW=JNOW+1 
FIN   JSB SZONE     ELSE ZONE JSIGN 
      DEF *+5 
      DEF PARAM,I       JSTR
      DEF PARAM+2,I      JLAST
      DEF JSIGN 
      DEF JNOW
      JMP SDEA2,I 
JSIGN BSS 1 
JTEST BSS 1 
JNOW  BSS 1 
FOUR  OCT 4 
TWO   OCT 2 
NTEN  DEC -10 
SIXTY OCT 60
      END 
      END$
                                                                                                                                  