SPL,L,O,"<INTV>"
! 
      NAME INTV(7) "92425-16025 REV.1841 780927"
! 
! 
!-------------------------------------------------------------
! 
! 
!     F. WARREN         17MAY76    REV. A 
! 
!     "C" COPYRIGHT HEWLETT-PACKARD COMPANY 1976. 
!     ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM 
!     MAY BE PHOTOCOPIED, REPRODUCED OR TRANSLATED
!     TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR 
!     WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. 
! 
!-------------------------------------------------------------
! 
! 
      LET GET BE FUNCTION,EXTERNAL,DIRECT     ! GET A CHAR
! 
!     INTV                             ASCII-TO-INTEGER (RIGHT/JUSTIFIED) 
INTV: FUNCTION(S1,FAIL) FEXIT,GLOBAL
      LET S1(1) BE INTEGER             ! INTEGER STRING 
      LET AT BE INTEGER                ! WORKING NUMBER 
      AK _ S1(1)                       ! START WITH CCNT
      IF AK = 0 THEN GO TO A2          ! NO DIGITS
      AT _ 0                           ! START WITH 0 
      EX _ 10                          ! ASSUME BASE 10 
      .B. _ @S1                        ! POINT GET TO STRING
      .A. _ S1(1)                      ! GET LAST CHAR
      IF GET # "B" THEN GO TO A1       ! NOT OCTAL
      EX _ 8                           ! RESET BASE 
      AK _ AK - 1                      ! CLIP OFF "B" 
      IF AK = 0 THEN GO TO A2          ! NO DIGITS
A1:   FOR IJ _ 1 TO AK DO THRU AA      ! FOR ALL DIGITS 
         .B. _ @S1                     ! POINT TO STRING
         .A. _ IJ                      ! IJ TH CHAR 
         ACHR _ GET                    ! GET THE CHAR 
         IF ACHR = " " THEN GO TO AA   ! SKIP BLANKS
         IF ACHR < "0" THEN GO TO A2   ! ERROR
         IF ACHR > "9" THEN GO TO A2   ! ERROR
         IF EX = 8 AND CHAR > "7" THEN GO TO A2 ! ERROR 
         VA _ ACHR - 60K               ! CONVERT TO NUMBER
         AT _ EX * AT + VA             ! CONVERT TO INTEGER AND ADD 
AA:      .A._0                         ! CONTINUE STATEMENT 
      FAIL_0                           ! SET TO SUCCEED 
      RETURN AT                        ! RETURN VALUE 
A2:                                    !
      FAIL_ -1                         ! SET FAIL FLAG
      FRETURN  -1                      ! FAILED TO CONVERT
      END                              !
      END 
END$
                                                                                                                                                                                                                