FTN SUBROUTINE DCATI(IBUF,ISTRT,IEND,DNUM),92069-16173 REV.1912 781219 C C C***************************************************************** C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED C NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR C TRANSLATED TO ANOTHER PROGRAM LANGUAGE WIOTH OUT THE PRIOR C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. C****************************************************************** C C C SOURCE: 92069-18173 C RELOC: 92069-16173 C C C ABASTRACT: C C DCATI CONVERTS AN ASCII STRING NO LONGER THAN TEN CHARACTERS C TO A DOUBLE WORD INTEGER. THE STRING MUST NOT CONTAIN A SIGN. C C CALLING SEQUENCE: C C CALL DCATI(IBUF,ISTRT,IEND,DNUM) C C WHERE: C C IBUF C IS THE ASCII STRING C C ISTRT C IS THE BYTE OFFSET C C IEND C IS THE BYTE OFFSET OF THE END OF THE STRING C C DNUM C IS A TWO WORD BUFFER WHICH WILL CONTAIN THE DOUBLE C WORD INTEGER WHEN DCATI EXITS C C ON EXIT: C C DNUM CONTAINS A DOUBLE WORD INTEGER C C C C C****************************************************************: C INTEGER IZERO(2),ITEN(2),ICHAR(2) REAL ZERO,TEN,CHAR EXTERNAL DAD,DMP INTEGER IMAX(5) C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EQUIVALENCE (ZERO,IZERO),(TEN,ITEN),(CHAR,ICHAR) DATA IZERO/0,0/ DATA ITEN/0,10/ DATA ICHAR/0,0/ DATA IMAX/2H21,2H47,2H48,2H36,2H47/ C C C C C C ICHAR(1) = 0 DNUM = ZERO IF(ISTRT .GT. IEND) GOTO 40 I = IEND - ISTRT + 1 IF (I .GT. 10) GOTO 40 IF(I .LT. 10) GOTO 20 IF(JSCOM(IBUF,ISTRT,IEND,IMAX,1) .LE. 0) GOTO 20 DNUM = DBLEI(-1) GOTO 40 C C LOOP TO CONVERT INTEGER C 20 CONTINUE DO 30 I= ISTRT,IEND CALL SGET(IBUF,I,ICHAR(2) ) ICHAR(2) = ICHAR(2) - 60B IF ( (ICHAR(2) .LT. 0) .OR. (ICHAR(2) .GT. 9))GOTO 40 DNUM = DAD ( DMP(DNUM,TEN), CHAR) 30 CONTINUE 40 RETURN END