/*
 * 	Common include file
 *
 *		Jwahar Bammi
 *			usenet: mandrill!bammi@{decvax,sun}.UUCP
 *			csnet:  bammi@mandrill.ces.CWRU.edu
 *			arpa:   bammi@mandrill.ces.CWRU.edu
 *			CompuServe: 71515,155
 */

extern int Zmodem;		/* ZMODEM protocol requested */
extern int Nozmodem;		/* If invoked as "rb" */
extern int Badclose;		/* Error on last close */
extern int Batch;
extern int Wcsmask;
extern int Verbose;
extern int Quiet;		/* overrides logic that would otherwise set verbose */
extern int Lleft;		/* number of characters in linbuf */
extern int Readnum;		/* Number of bytes to ask for in read() from modem */
extern int Crcflg;
extern int ForceBinary;		/* local binary force override for rz */
extern char secbuf[];
extern char linbuf[];
#if (MWC || MANX)			/* File i/o buffer */
extern unsigned char *bufr;
#else
#ifndef DYNABUF
extern unsigned char bufr[];
#else
extern unsigned char *bufr;
#endif
#endif
extern int fout;
extern int Lastrx;
extern int Firstsec;
extern int Eofseen;		/* indicates cpm eof (^Z) has been received */
extern int errors;
extern long Bytesleft;		/* number of bytes of incoming file left */
extern long Modtime;		/* Unix style mod time for incoming file */
extern int Filemode;		/* Unix style mode for incoming file */
extern char Pathname[];
extern char *Progname;		/* the name by which we were called */
extern int Zctlesc;		/* Encode control characters */
extern int SendType;		/* Which send line to use	*/

extern int Thisbinary;		/* current file is to be received in bin mode */
extern int Blklen;		/* record length of received packets */
extern char Lzmanag;		/* Local file management request */
extern char zconv;		/* ZMODEM file conversion request */
extern char zmanag;		/* ZMODEM file management request */
extern char ztrans;		/* ZMODEM file transport request */
extern jmp_buf tohere;		/* For the interrupt on RX timeout */
extern jmp_buf busjmp;		/* for bus errors */
extern jmp_buf addrjmp;		/* for address errors */
extern unsigned long BusErr, AddrErr;	/* saved vector addresses */
extern int buserr();		/* Bus error handler */
extern int addrerr();		/* address error handler */
extern int Modem;		/* Send using Xmodem */
extern FILE *logf;
extern FILE *STDERR;
extern int vdebug;
extern int lsct;
extern int tryzhdrtype;		/* Header type to send corresponding to Last rx close */
extern int Txfcs32;		/* TRUE means send binary frames with 32 bit FCS */

 	/* Globals used by ZMODEM functions */
extern int Rxframeind;		/* ZBIN or ZHEX indicates type of frame received */
extern int Rxtype;		/* Type of header received */
extern int Rxcount;		/* Count of data bytes received */
extern int Rxtimeout;		/* Tenths of seconds to wait for something */
extern char Rxhdr[];		/* Received header */
extern char Txhdr[];		/* Transmitted header */
extern long Rxpos;		/* Received file position */
extern long Txpos;		/* Transmitted file position */
extern char Attn[];		/* Attention string rx sends to tx on err */

	/* Globals specific to Sz */
extern int Baudrate;
extern int Ascii;		/* Add CR's for brain damaged programs */
extern int Fullname;		/* transmit full pathname */
extern int Unlinkafter;		/* Unlink file after it is sent */
extern int Dottoslash;		/* Change foo.bar.baz to foo/bar/baz */
extern int errcnt;		/* number of files unreadable */
extern int Optiong;		/* Let it rip no wait for sector ACK's */
extern int Noeofseen;
extern int Totsecs;		/* total number of sectors this file */
extern int Filcnt;		/* count of number of files opened */
extern int Lfseen;
extern unsigned int Rxbuflen;	/* Receiver's max buffer length */
extern int Tframlen;		/* Override for tx frame length */
extern int blkopt;		/* Override value for zmodem blklen */
extern int Rxflags;
extern char Lzconv;		/* Local ZMODEM file conversion request */
extern char Lztrans;
extern int Command;		/* Send a command, then exit. */
extern char *Cmdstr;		/* Pointer to the command string */
extern int Cmdtries;
extern int Cmdack1;		/* Rx ACKs command, then do it */
extern int Exitcode;
extern int Testattn;		/* Force receiver to send Attn, etc with qbf. */
extern char *qbf;
extern long Lastread;		/* Beginning offset of last buffer read */
extern int Lastc;		/* Count of last buffer read or -1 */
extern int Dontread;		/* Don't read the buffer, it's still there */
extern jmp_buf intrjmp;		/* For the interrupt on RX CAN */
extern jmp_buf abrtjmp;		/* for force abort */
extern int siggi;		/* Line interrupt enable flag */
extern int Wantfcs32;		/* want to send 32 bit FCS */
extern int Znulls;		/* Number of nulls to send at beginning of ZDATA hdr */

#ifndef REMOTE
extern int *aline_addr;		/* Base addr of aline variables */
#endif

extern int hlines;		/* # of lines on screen		*/
extern int rez;			/* current resolution		*/
extern int scolor;			/* current fg/bg screen color toggle */

#ifndef REMOTE
extern long *ms_ptr;			/* Pointer to my screen memory */
#if (MWC || MANX)
extern long *m_screen;
#else
extern long m_screen[];
#endif /* MWC || MANX */
#endif /* REMOTE */

#ifdef MWC
extern long _stksize;
#endif /* MWC */

#ifdef DLIBS
extern long _STKSIZE;
#endif /* DLIBS */

#ifdef MANX
extern long _STKSIZ;
#endif /* MANX */

extern struct stat statbuf;		  /* Disk Transfer address for Find first etc */
extern int Baudrate;			  /* Current baud rate			      */
extern long drv_map;			  /* bit vector of valid drives */

extern BAUDS vbauds[];
extern IOREC save,	/* the original Iorec is saved here for the duration
			   of this process */
 	*savep;		/* ptr returned by Iorec() */

extern char iobuf[]; /* My large Rs232 receive buffer */

extern char *substr();

#ifdef DYNABUF
extern long BBUFSIZ;
extern unsigned char *dalloc();
#endif /* DYNABUF */

extern long pr_time;

/* -eof- */
