SUBROUTINE PUTCH (C, FD) INTEGER C, FD COMMON /CHANNEL/ CHANNEL(0:15), APOS, VPOS, LINEBUF(68,0:15), NC(0 *:15), IC(0:15), MD(0:15) INTEGER CHANNEL INTEGER APOS INTEGER VPOS INTEGER LINEBUF INTEGER NC INTEGER IC INTEGER MD IF(.NOT.(0 .LE. FD .AND. FD .LE. 15 .AND. CHANNEL(FD) .NE. 10001)) *GOTO 23000 IF(.NOT.(MD(FD) .NE. 1))GOTO 23002 MD(FD) = 1 IC(FD) = 1 NC(FD) = 0 23002 CONTINUE IF(.NOT.(C .EQ. 10))GOTO 23004 BYTE(LINEBUF(1,FD),IC(FD)) = 10 IC(FD) = IC(FD) + 1 CALL FLUSH (FD) GOTO 23005 23004 CONTINUE BYTE(LINEBUF(1,FD),IC(FD)) = C IC(FD) = IC(FD) + 1 IF(.NOT.(IC(FD) .GT. 132 .OR. C .EQ. 13))GOTO 23006 CALL WRSEQ (FD, LINEBUF(1,FD), IC(FD), IER) CALL CHKIO (FD, IER) IC(FD) = 1 GOTO 23007 23006 CONTINUE IF(.NOT.(C .EQ. 12 .OR. C .EQ. 0))GOTO 23008 CALL FLUSH (FD) 23008 CONTINUE 23007 CONTINUE 23005 CONTINUE 23000 CONTINUE RETURN END