INTEGER FUNCTION BUFILL (BUFFER) C C **************************************************************** C C KERMIT for the MODCOMP MAXIV operating system C C Compliments of: C C SETPOINT, Inc. C 10245 Brecksville Rd. C Brecksville, Ohio 44141 C C C KERMIT is a copyrighted protocol of Columbia Univ. The authors C of this version hereby grant permission to copy this software C provided that it is not used for an explicitly commercial C purpose and that proper credit be given. SETPOINT, Inc. makes C no warranty whatsoever regarding the accuracy of this package C and will assume no liability resulting from it's use. C C **************************************************************** C C Abstract: Fill up the buffer with character bytes from the C sending disk file. C C MODIFICATION HISTORY C C BY DATE REASON PROGRAMS AFFECTED C C C **************************************************************** C C Author: BOB BORGESON Version: A.0 Date: Oct-86 C C Calling Parameters: C C R BUFFER - Data array to be filled from the disk file C C **************************************************************** C C Messages generated by this module : None C C **************************************************************** C C Subroutines called directly : CTL, DGETCH C C **************************************************************** C C Files referenced : None C C **************************************************************** C C Local variable definitions : C C **************************************************************** C C Commons referenced : KER, KERPAR C C **************************************************************** C C (*$END.DOCUMENT*) C C **************************************************************** C * * C * D I M E N S I O N S T A T E M E N T S * C * * C **************************************************************** C IMPLICIT INTEGER (A-Z) C INTEGER*2 BUFFER(132) C C **************************************************************** C * * C * T Y P E S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C * * C * C O M M O N S T A T E M E N T S * C * * C **************************************************************** C INCLUDE USL/KERCOM INCLUDE USL/KERPMC C C **************************************************************** C * * C * E Q U I V A L E N C E S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C * * C * D A T A S T A T E M E N T S * C * * C **************************************************************** C C C **************************************************************** C C Code starts here : C I=1 C !FILE DESCRIPTOR OF THE SENDING C !DISK FILE CH=7 100 CONTINUE IF ((DGETCH(T,CH).EQ.EOF))GO TO 1000 C !KEEP READING BYTE FROM THE DISK C !FILE UNTIL WE REACH AN EOF,OR C !WE HAVE ENOUGH BYTE TO FILL C !BUFFER IF((T.GE.BLANK).AND.(T.NE.DEL).AND.(T.NE.QUOTE))GO TO 800 C !IT IS THE LINE DELIMITER OF C !THIS SYSTEM, INSERT THE LF C !BEFORE THE CR IF(T.NE.LF)GO TO 700 BUFFER(I)=QUOTE I=I+1 BUFFER(I)=CTL(CR) I=I+1 700 CONTINUE C !WE GOT A QUOTE CHARACTER BUFFER(I)=QUOTE I=I+1 IF(T.NE.QUOTE)T=CTL(T) 800 CONTINUE BUFFER(I)=T I=I+1 C !READ UP TO SPSIZ-8 BYTE FROM DISK IF(I.LE.(SPSIZ-8))GO TO 900 C !I BYTE WAS READ BUFILL=I-1 RETURN 900 CONTINUE C GO TO 100 C 1000 CONTINUE C IF(I.NE.1)GO TO 1100 C !ZERO BYTE WAS READ BUFILL=EOF RETURN 1100 CONTINUE C !PARTIAL EOF WAS DETECTED BUFILL=I-1 RETURN END