home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
modcomp
/
bufill.
< prev
next >
Wrap
Text File
|
2020-01-01
|
6KB
|
154 lines
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