FTN4,L C C C C C C CC************************************************************ C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * C RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * CC************************************************************ C C C C NAME: GGET C SOURCE: 92840 - 18148 C RELOC: 92840 - 16021 C C C CC*********************************************************** C C NOTE: ERROR 31 MUST BE DELETED FROM USE BY THE LABEL MODULE. C NOTE: 8-17-79 GGET NOW CHECKS TO MAKE SURE ICHAR IS A LEGITIMATE C CHARACTER. C SUBROUTINE GGET(ICHAR,IREPET,INFO,IDCB,IBUFR, +IBUFS,INDEX) +,92840-16021 REV.2013 791107 C************************************************************** C GGET RETURNS THE STROKES FOR CHARACTER ICHAR IN BUFFER IBUFR. C IREPET DETERMINES WHETHER GGET RETURNS THE FIRST,SECOND, THIRD C ETC SET OF STROKES FOR CHARACTERS THAT NEED MORE THAN ONE SET C OF STROKES TO WRITE. C C ICHAR = THE CHARACTER FOR WHICH YOU WANT THE STROKES(ZERO-FILLED, C RIGHT-JUSTIFIED, SAME FORMAT AS SGET PRESCRIBES). C IREPET= WHICH SET OF STROKES YOU WANT (FIRST BUNCH, SECOND BUNCH..) C C INFO = INFO ON THE CHARACTERS IN THE FONT FILE. C INDEX = RETURNED INDEX INTO IBUFR AT WHICH STROKES FOR ICHAR START. C IBUFS= SIZE OF IBUFR, INTEGRAL MULTIPLE OF 128. C C IREC1 =RECORD NUMBER AT WHICH STROKES FOR THE SPACE CHARACTER C ARE STORED. C NUMBER= NUMBER OF RECORDS USED FOR EACH CHARACTER. C C IOFF = INDEX OF ICHAR IN ASCII COLLATING SEQUENCE. C IREAD = FINAL NUMBER OF RECORD ON DISC TO READ. C C******************************************************************* C INTEGER IDCB(1),ICHAR,IREPET,INFO(1),IBUFR(1) INTEGER IBUFS,INDEX INTEGER IREC1,NUMBER INTEGER IOFF,IREAD C****************************************************************** C MAKE SURE ICHAR HOLDS A LEGITIMATE CHARACTER. IF NOT, CHANGE C ICHAR TO AN @ SIGN. C IF ((ICHAR .GE. INFO(7)) .AND. +(ICHAR .LE. INFO(8))) GO TO 100 CALL PLTER(13,IDUMY) ICHAR=INFO(9) C*************************************************************** C GET THE RECORD NUMBER OF THE SPACE CHARACTER, AND THE NUMBER C OF WORDS USED TO STORE ONE SET OF CHARACTER STROKES. C 100 IREC1=INFO(1) NUMBER=INFO(2) C*************************************************************** C GET THE INDEX OF ICHAR INTO IOFF. C IOFF=ICHAR-INFO(7) C************************************************************** C CALCULATE THE RECORD NUMBER ON THE DISC TO READ. C IREAD=IREC1+IOFF*(NUMBER/128)+(IREPET-1)*(IBUFS/128) C************************************************************** C READ THE RECORD AND RETURN C CALL READF(IDCB,IERR,IBUFR,IBUFS,LEN,IREAD) IF (IERR .LT. 0) GO TO 9000 INDEX=1 RETURN C************************************************************* C HAD A BAD READ OFF THE DISC FILE. C 9000 CONTINUE CALL PLTER(IERR-300,IRTN) RETURN END