Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0125/getbyt.for
There is 1 other file named getbyt.for in the archive. Click here to see a list.
	INTEGER FUNCTION GETBYT(CSUM)

C  THIS FUNCTION IS USED TO RETRIEVE FOUR
C  EIGHT BIT BYTES FROM ONE THIRTY SIX
C  BIT WORD AND SUM INTO CHECKSUM
C  THIS ROUTINE RETURNS ONE BYTE FOR EACH CALL

	INTEGER CSUM, DSK, LOG, POS, WORD36, GFIELD
	DATA DSK, LOG, POS /20, 21, 0/

1	FORMAT(' ? PREMATURE END OF FILE')

	POS = MOD(POS, 4)
	IF(POS .GT. 0) GO TO 10
	READ(DSK, END = 1000) WORD36
10	POS = POS + 1
	IF(POS .EQ. 1) GETBYT = GFIELD(WORD36, 10, 8)
	IF(POS .EQ. 2) GETBYT = GFIELD(WORD36, 2, 8)
	IF(POS .EQ. 3) GETBYT = GFIELD(WORD36, 28, 8)
	IF(POS .EQ. 4) GETBYT = GFIELD(WORD36, 20, 8)
	CSUM = CSUM + GETBYT
	RETURN
1000	WRITE(LOG, 1)
	CLOSE(UNIT=LOG)
	STOP
	END