C --- INCLUDE file for HOST program C c chunk control See ENTRY OUTPUT in SUBROUTINE INPUT c c possibly should also stop chunky if user typing ? c or if very few char's in a chunk ? both are easy to check for REAL*4 TIME_INTERVAL/4.0/ ! seconds (if took less, be chunky) PARAMETER N_CHAR_TIL_SWITCH=120 ! characters (check time after this many) ! this is the minimum number of fast ! characters before start chunky PARAMETER NTIMEOUT=1 ! seconds to await chunk ! if too long, user echo is slow PARAMETER N_CHAR_QIO_MAX=160 ! max characters per chunk ! actual used is adjusted dynamically ! depending on baud rate. ! bigger is more efficient ! but risks missing CTRL-S ! and not echoing user fast enough. ! 20 is ok for 1200 baud C C Special control characters C PARAMETER CTLQ=CHAR(17) PARAMETER CTLS=CHAR(19) PARAMETER CTLC=CHAR(3) PARAMETER CTLY=CHAR(25) PARAMETER CTLZ=CHAR(26) PARAMETER CTLD=CHAR(4) PARAMETER BREAK=CHAR(4) PARAMETER CTLT=CHAR(20) PARAMETER ESC=CHAR(27) PARAMETER LF=CHAR(10) !LINE FEED PARAMETER CR=CHAR(13) !CARRIAGE RETURN PARAMETER ZERO = CHAR(0) PARAMETER CRLF=CR//LF PARAMETER end$$='~' !end of input string indicator PARAMETER file$$='^' !marker to insert filename PARAMETER eor$$=CHAR(-1) !end of receive indicator PARAMETER eos$$=CHAR(-2) !end of send indicator PARAMETER cmd$$=CHAR(-3) !start of commands to remote PARAMETER eocmd$$=CHAR(-4) !end of commands to remote system PARAMETER delay$$=CHAR(-5) !long delay needed here PARAMETER duplex$$='%' ! marks spot to put duplex Y or N ! for CYBER PARAMETER MAXRECSIZ=200 C C System and message parameters and default values C PARAMETER (NSYS=5,NMSGS=10) PARAMETER (CYBER=1,VAX=2,PDP=3,RT=4,UNIX=5) PARAMETER DEF_BAUD_RATE='1200' PARAMETER DEF_NAME='CYBER' PARAMETER DEF_DUPLEX='FULL' PARAMETER DEF_PARITY='NONE' c C C Definition of I/O function codes C INCLUDE '($IODEF)' C C Integer and Logical variables C LOGICAL SENDING,RECEIVING,TYPING,TIMER,HALTED,HALF_DUPLEX, & HANDSHAKING,VAX_EXIT,ECHO_FILE,CONTINUING,IN_SETUP, & SESSION,BLOCK_SEND,KECHO_OFF,BLOCK_RCV,BLOCK_RCV_OFF, & FILE_XFR_START,SYSCHANGE,CHUNKY_MODE,IGNORENUL,IGNORECR C LOGICAL*1 NRECS_STR(6) ! no reason to be here should be in routines ? INTEGER*2 RCV_STAT REAL T1,DELTA INTEGER N_CHAR_QIO ! characters per chunk ! bigger is more efficient ! but risks missing CTRL-S ! and not echoing user fast enough. ! 20 is ok for 1200 baud C COMMON/STUFF/LOCAL_CHANNEL,REMOTE_CHANNEL, & NTIMER,NSENDIN,NSENDOUT,NVXF,NCHF,BCOUNT,SENDING,RECEIVING, & TYPING,TIMER,HALTED,HALF_DUPLEX,HANDSHAKING,NDELAY,COMPUTER, & VAX_EXIT,MESNO_BEG(NSYS),NUM_MESGS(NSYS),ECHO_FILE, & CONTINUING,IN_SETUP,SESSION,NRECS,NRECS_STR,SYSCHANGE, & BLOCK_SEND,BLOCK_SIZE,KBLKSIZ(NSYS+1),XOFF_COUNT, & RCV_STAT(4),BLOCK_RCV,BLOCK_RCV_OFF,FILE_XFR_START, & RSP_COUNT,T1,DELTA,TIME_INTERVAL,CHUNKY_MODE,N_CHAR_QIO, & IGNORENUL,IGNORECR,MAXLEN C C C Character string variables ??? filenames need not be here ? C COMMON/CHARS/DATAIN,DATAOUT,chunkout,BYTES,SENDIN,SENDOUT,VAXFILE, & FILENAME,CH,STR(4,NSYS),KNAME(0:NSYS), & HAND(0:NSYS),HAND_SETUP(0:NSYS),HANDSHAKE,HAND_RCV(0:NSYS), & KPARITY(NSYS),KDUPLEX(NSYS),KECHO_OFF(NSYS+1),MESSAGE(NMSGS), & VAX_MODEM,BAUD_RATE,NAME,PARITY,DUPLEX, ! HOST_SAVE equivalence & SESTXT,NULL,DASH, & RCVIN,SYSNAME CHARACTER*1 DATAIN,DATAOUT,CH,HAND,HAND_SETUP,HANDSHAKE,HAND_RCV CHARACTER*(N_CHAR_QIO_MAX) chunkout ! the chunk buffer CHARACTER*1 NULL,DASH CHARACTER*512 BYTES,SENDIN,SENDOUT,RCVIN C HOST_SAVE & SAVE_PARAMS is equivalenced to the common block ? CHARACTER VAX_MODEM*20, BAUD_RATE*4,NAME*7,PARITY*4, & DUPLEX*4 CHARACTER SAVE_PARAMS*39 ! sum of lengths of HOST_SAVE strings CHARACTER*4 KPARITY,KDUPLEX CHARACTER VAXFILE*60,FILENAME*60,STR*150,KNAME*7 CHARACTER MESSAGE*100 CHARACTER*4 SESTXT CHARACTER*7 SYSNAME C C Equivalences C EQUIVALENCE(SAVE_PARAMS,VAX_MODEM) BYTE BYTEIN,BYTEOUT,BENDIN EQUIVALENCE (DATAIN,BYTEIN),(DATAOUT,BYTEOUT),(SENDIN,BENDIN) C C ----------- End INCLUDE File ------------------------------------