/* k 0224     23/09/91      */
/* k 0226     24/09/91      *//* literals */
/* k 0230       09/10/91        *//* assemble some data */
/* k 0231       10/10/91        *//* resident module */
/* k 0232	11/10/91	*/
/* k 0233	12/10/91	*//* Trn modules */
/* k 0235	18/10/91	*//* pswitch for showdata */
/* k 0243	20/10/91	*//* common resources */
/* k 0245	20/10/91	*//* statscreen */
/* k 0247	22/10/91	*/
/* k 0252	27/10/91	*//* setar7 */
/* k 0260       10/11/91        *//* status */
/* k 0262       11/11/91        *//* status */
/* k 0264       12/11/91        *//* Codes */
/* k 0266	13/11/91	*//* status 8,9 */
/* k 0269	17/11/91	*//* On-line exit */
/* k 0282      12/12/91         *//* from BSS */
/* k 0292       23/12/91        *//* save initial path */
/* k 0304	23/02/92	*//*	path     */
/* k 0306       24/02/92        *//* ddoff */
/* k 0307       24/02/92        *//* 300-byte segments */
/* k 0320	22/03/92	*//* New initialization */
/* k 1082       23/03/92        *//* definition bufvt,buflan */
/* k 0322	26/03/92	*//* Files menu */
#include <include.h>
#include <vt.h>
#include <conio.h>
#include <emadapt.h>
#include <bufmap.h>
#include <dcr.h>
#include <tbs.h>             /* 5001 */
#include <tabm.h>
#include <popen39.h>
#include <pget39.h>
#include <pfree39.h>
#include <pwrite39.h>
#include <pread39.h>
#include <bufdrv.h>
#include <p3927c.h>   /*стpуктуpы ССВ и стpуктуpы дополнительных паpаметpов drvtrn39*/
#include <p3926c.H>    /* TRANSMIT */
#include <p3928c.H>    /* RECEIVE  */
#include <p390bc.H>    /* BUFFER_GET  */
#include <p3915c.H>    /* BUFFER_FREE  */
#include <p3915t.H>    /* OPEN          */
#include <p3916c.H>    /* CLOSE */
#include <p3927t.H>
#include <p3928t.H>
#include <p390bt.H>
#include <p3926t.H>         /* 5001 */
#define MAXDIR 66	/* @0322 */
struct WORDREGS {
	unsigned int	ax, bx, cx, dx, si, di, cflag, flags;
};

struct BYTEREGS {
	unsigned char	al, ah, bl, bh, cl, ch, dl, dh;
};
union	REGS	{
	struct	WORDREGS x;
	struct	BYTEREGS h;
};

struct	SREGS	{
	unsigned int	es;
	unsigned int	cs;
	unsigned int	ss;
	unsigned int	ds;
};
struct buf_vt  {	/* @0233 */
#if (OS_TYPE!=0)	/* @0215 */
 unsigned  char contents [4000]; 	/* @0208 */
#endif			/* @0215 */
 unsigned  int cursor_size;
  int curx,cury,currmode;	/* @0233 */
 unsigned char winleft,wintop,winright,winbottom;
	       };
extern char *rentdos;
extern short curs[5],curx[5],cury[5];                                 /* 0014 */
extern short cur_curs,cur_curx,cur_cury;
#if (OVL_TYPE==0)	/* @0233 */
extern  char *com1[7];
extern  char letter[7];
extern  char *com2[7];
extern  char *key1[5];	/* @0217 */
extern  char *key2[5];  /* @0217 */
extern  char *text[7];
#else
extern  char **com1;
extern  char *letter;
extern  char **com2;
extern  char **key1;	/* @0217 */
extern  char **key2;  /* @0217 */
extern  char **text;
#endif
extern   short com_v;
					/* @0046 */		/* 0017 */
					/* @0046 */
					/* @0046 */
extern char sw_wait;	/* @0184 */
 extern char xwbuf[256];                    /* @0192 */
 extern char wbuf[256];                    /* @0192 */
 extern char wbufd[256];	/* @0243 */
 extern struct mat (*wmat)[3];						/* @0054 */
 extern short ddfff;          /* @0200 */ /* @0044 *//* @0159 */
 /* @0159 */
 extern char *filename;/* @0060 */
 struct segoff {                               /* @0158 *//* @0158 */
   unsigned short seg;               /* @0159 */           /* @0158 */
   unsigned short off;               /* @0158 */             /* @0158 */
               };                    /* @0159 */
 extern struct segoff (*dout)[512];       /* @0158 *//* @0159 */
 extern long cseek, nseek, oldseek;                /* @0157 @0158 *//* @0160 */
 extern char d_g[];		/* @0174 *//* @0184 */
 extern unsigned short lasti,curi,curseg;       /* @0159 */
extern char mail[];	/* @0157 *//* @0304 */
extern char dpp[];      /* @0306 */
extern char ddpp[];	/* @0243 */
 extern char dtxt8[];    	/* TEMPORARY */
  extern char eoflag;		/* @0161 */
  extern short type;
  extern short nida,oldnida;			/* @0060 */		/* @0057 */
  extern struct rqb *nrda,*crda,*orda,*oldnrda;	/* @0060 */	/* @0057 */
  extern short last; 				/* @0060 */
  extern unsigned short plj,lj;/* @0061 @0060 @0158 *//* @0159 */
  extern short fdd,fddd,le;	/* @0159 */
  extern short dfdd;	/* @0243 */
  extern unsigned char *tp;				/* @0061 *//* @0184 */
  extern long sendno;						/* @0072 */
  extern char scrn;							/* 0017 */
  extern struct rqb *rqbp;
  extern struct segprf *segp;
  extern struct init3 *wp;			/* @0050 */		/*  0017 */
  extern char rhhdr0[3];			/* @0048 */
extern char cond;  							/* 0017 */
extern char name[8];
   extern short signbuf[5];/* @0208 */
   extern short sigsw[5];                                  /* @0029 */
   extern short ss[5];                                                 /* @0029 */
   extern char *pt1,*pt2,*pt3;
extern unsigned  char *rdos;		/* @0201 */
extern short msg28;           /* @0201 */
  extern struct nau *vtnau;						/* @0044 */
   extern char ch[26];
   extern short l,j;
   extern short leng;							/* @0044 */
extern short px1,py1,px2,py2,pcurx,pcury,pxw,pyw;
extern char *begpt,*curpt;
extern char pattr;
extern union REGS reg;
extern short offs;
extern short hoffs;	/* @0233 */
  extern short textcol[5],backcol[5];                   /* 0014 */     /* 0017 */
 extern short msw2;       /* @0221 */
  extern int akey,bkey;
struct ekran {
    char icon;
    char attrib;
    };
#if (OVL_TYPE==0)   /* @0264 */
extern char * ind_ENABLE [2];
#else
extern char **ind_ENABLE;
#endif
extern int attr_addr[1920];
extern char  buffer [1920], attrib[16];
extern struct ekran screen [1920];
 extern int   cursor_pos,laddr, haddr,enable_flag_port,enable_flag_kbd,enable_flag_sys;
extern char *mix;
extern int cursor_row, cursor_col;
extern int ind_y;
extern unsigned int enable_x1,enable_x2,insert_x,insert;

extern int portkey;

extern int swi;

extern char colortable[256];
extern unsigned int oldcursor, shortcursor, tallcursor, nocursor,vissegment;
extern unsigned int baseport;
extern struct save_7927  buf7927;	/* @0208 */

extern struct buf_dos {
#if (OS_TYPE!=0)	/* @0215 */
 unsigned  char contents [4000]; 	/* @0208 */
#endif			/* @0215 */
 unsigned  int cursor_size;
  int curx,cury,currmode;	/* @0233 */
} buf2580;

extern char fmindex[];           /* 255 means that profile is not allowed */

extern char tsindex[];           /* 255 means that profile is not allowed */
extern  struct avt0 *avt;    /* AVT table */     /* @0087 */
extern  unsigned char Flag28;        /* @0201 */
extern  unsigned char Flagport;      /* @0201 */
extern  unsigned char optflg,flag2,tf,sflag;  /* @0203 */
/* @0230 */
extern  struct rqb *first_rqb;                  /* @0023 */
extern  struct rqb *last_rqb;                                   /* @0023 */
extern  struct wrktb tmp2tb[1];   /* 1005 */
extern  char *ptr;                             /* @0088 */         /* @0023 */
/* @0230 */
extern  short bfd;      /* @0206 */
extern  struct srdt *ws;
extern  struct rdt *wr;
extern  struct mat *wn;
extern  struct dlctb *wd;        /* @0043 */
extern  struct majtb *wm;
extern  struct aname (*wa)[3];
extern  struct nau *wnau;
  /* @0205 */
extern  short rc;           /* @0043 */
/* @0304 */
extern struct buf_vt bufvt2580;    /* @0215 *//* @0233 */
extern char far *videobuf;        /* @0207 */

/* sessa */
 extern short  sw1;
 extern short  sw2[5];                      /* 0014 */
 extern short  x1[5],y1[5],x2[5],y2[5];                                /* 0014 */
 extern short escptr[5];    	/* @0206 */                        /* 0014 */
 extern short  esc;
 extern short hsw;
 extern short msw;
 extern short input;
 extern char escflg;			/* @0046 */
 extern (*escrtn)();			/* @0046 */
 extern char save25[80];
 extern short escape;        /* escape code CTRL F1 */
								/* 0014 */
 extern char vt_flag;
 extern short scr_no;
 extern short unit[4];     /* @0307 */
  extern short nu;
								/* 0017 */
  extern short class;
								/* @0034 */
  extern struct rqb *bufp;
  extern short *pf;
 extern char dispflag;		/* @0056 */
extern char pww[16];						/* @0071 */
extern char outbuffer[1920];	/* @0185 */
extern struct out7920 *out7920;/* @0185 */

extern int col;	/* @0185 */
extern int row;	/* @0185 */
extern int color;	/* @0185 */
extern int width;	/* @0185 */
  extern struct parmglu *wglu;
  extern struct tmp2 *wtmp2;
  extern struct sess *wsess;
  extern struct majtb *wmtb;
  extern struct nausg *wnseg;
  extern struct segprf *wseg;
  extern struct th *wth;
  extern struct rh *wrh;		/* @0157 */
  extern union ru *wru;
  extern struct hscb *whscb;
  extern struct lhscb *wlhscb;
  extern struct bind *wbind;                                 /* 1003 */
  extern char out_buffer[1920];  /* 1003 *//* @0175 */
  extern struct rqb *rrqb;
  extern int was_bufm;
  extern int was_vvodz;
 extern char opr[20];
extern char priv;

extern unsigned char a_to_e[256];
extern unsigned char e_to_a[256];
extern struct dcr dcr;
extern struct dcr_el dcr_el;
extern struct dcr ddcr;		/* @0243 */
extern struct dcr_el ddcr_el;	/* @0243 */
extern struct rqb *dataq;
extern char user[8];			/* @0157 */
extern char duser[8];		/* @0243 */
extern struct data2 *wda;
extern int fff;         /* @0157 *//* @0159 */
extern int cry;	/* @0186 */
extern struct rqb *qrp;   /* @0158 */
extern struct dcr *d_crec;          /* @0157 */
extern struct dcr *dd_crec;	/* @0243 */
extern struct dcr_el *del;          /* @0157 */
extern struct dcr_el *ddel;	/* @0243 */
extern struct nextprev {            /* @0159 */
  long next;                 /* @0159 */
  long prev;                 /* @0159 */
                } nextprev;  /* @0159 */
extern long seek;                    /* @0157 *//* @0158 */
extern short doff;                  /* @0157 */
extern short ddoff;                 /* @0306 */
extern unsigned char shiftfl;             /* @0201 */
extern struct naus0 *nps;
#if (OVL_TYPE==1)
 extern int (*(pswitch[10]))();            /* @0224 @0235 *//* @0322 */
#else
 extern int (*(pswitch[10]))();            /* @0224 *//* @0322 */
#endif
extern  char inithdr[3];				/* @0048 */
extern char termhdr[3];				/* @0055 */
#if (OVL_TYPE==0)
 extern int (*(fswitch[2]))();            /* @0224 */
extern  char *statxt[3];	/* @0216 */ /* @0224 */
extern  char hstatus[];                     /* @0224 */
extern  int (*(stswitch[]))();              /* @0224 */
extern char *etxt[];		/* @0052 */
extern char hexit[];
extern int (*(eswitch[2]))();
extern char *offtext[3];
extern char hlogof[9];
extern int (*(lfswitch[3]))();
extern char hdata[6];
 /* @0159 */
/* @0230 */
extern char *datatxt[2];
extern int (*(dswitch[]))();
extern  char *dtxt[4];
extern  char *dtxt3[2];
extern  char *dtxt2[3]; 		/* @0044 */
extern  short dar1[2];
extern  char *pk1[4];/* @0067 *//* @0060 *//* @0061 *//* @0072 */
extern  char *pk2[4];/* @0067 *//* @0060 */
extern  char *rk1[5];/* @0060 */	/* @0061 */
extern  char *rk2[5];/* @0060 *//* @0072 */
extern  char *dk1[5];	/* @0060 */	/* @0061 */
extern  char *dk2[5];	/* @0060 */
extern  char *sk1[5];   /* @0262 */
extern  char hlogon[];
extern  int (*(lswitch[3]))();
extern  char hsignon[];
extern  char *sigtxt[7];
extern  int (*(sswitch[3]))();
extern char hset[];
extern char *settxt[4];	/* @0203 */
extern int (*(setswitch[]))();
extern char *(settxt0[3]);
extern char *(settxt1[4]);
/* @0203 */
extern char *(settxt3[3]);
extern char *(settxt4[2]);
extern short setar1[5];
extern short setar2[5];
extern char *(setar3[4]);  /* @0203 */
extern short setar4[5];
extern short setar5[3];
extern short setar6[3];
extern char *((*setar7[3])[3]);
extern short setar8[3];
/* @0245 */
#else
 extern int (*((*fswitch)[2]))();            /* @0224 */
extern  char **statxt;	/* @0216 */ /* @0224 */
extern  char *hstatus;                     /* @0224 */
extern  int (*((*stswitch)[]))();              /* @0224 */
extern char **etxt;		/* @0052 */
extern char *hexit;
extern int (*((*eswitch)[2]))();
extern char **offtext;
extern char *hlogof;
extern int (*((*lfswitch)[3]))();
extern char *hdata;
 /* @0159 */
/* @0230 */
extern char **datatxt;
extern int (*((*dswitch)[]))();
extern int (*((*d2switch)[]))();	/* @0235 */
extern  char **dtxt;
extern  char **dtxt3;
extern  char **dtxt2; 		/* @0044 */
extern  short (*dar1)[2];
extern  char **pk1;/* @0067 *//* @0060 *//* @0061 *//* @0072 */
extern  char **pk2;/* @0067 *//* @0060 */
extern  char **rk1;/* @0060 */	/* @0061 */
extern  char **rk2;/* @0060 *//* @0072 */
extern  char **dk1;	/* @0060 */	/* @0061 */
extern  char **dk2;	/* @0060 */
extern  char **sk1;     /* @0262 */
extern  char *hlogon;
extern  int (*((*lswitch)[3]))();
extern  char *hsignon;
extern  char **sigtxt;
extern char **logtxt;	/* @0234 */
extern  int (*((*sswitch)[3]))();
extern char *hset;
extern char **settxt;	/* @0203 */
extern int (*((*setswitch)[]))();
extern char *((*settxt0)[3]);
extern char *((*settxt1)[4]);
/* @0203 */
extern char *((*settxt3)[3]);
extern char *((*settxt4)[2]);
extern short (*setar1)[5];
extern short (*setar2)[5];
extern char *((*setar3)[4]);  /* @0203 */
extern short (*setar4)[5];
extern short (*setar5)[3];
extern short (*setar6)[3];
extern char *((*setar7)[3]);	/* @0252 */
extern short (*setar8)[3];
#endif
extern struct rqb *((*(funct_table[ST_N]))());
/* @0264 */
#if (OVL_TYPE==0)
extern unsigned char togr[ ];
#else
extern unsigned char *togr;
#endif
extern  char hbuf[];
extern char twoblanks[];    /* @0226 */
#if (OVL_TYPE==1)	/* @0233 */
extern  char *hhead;
extern char *portdos;      /* @0226 */
#else
extern  char hhead[];
extern char portdos[];      /* @0226 */
#endif
#if (OVL_TYPE==0)		/* @0245 */
extern char datagram[];	/* @0226 */
extern char areaname[];	/* @0226 */
extern char datetime[];	/* @0226 */
#else				/* @0245 */
extern char *datagram;	/* @0226 */
extern char *areaname;	/* @0226 */
extern char *datetime;	/* @0226 */
#endif				/* @0245 */
extern char u2[];	/* @0226 */
extern char u4[];	/* @0226 */
extern char u5[];	/* @0226 */
extern char pgdn[];	/* @0226 */
extern char pgup[];	/* @0226 */
extern char u[];		/* @0226 */
#if (OVL_TYPE==0)		/* @0245 */
extern char ays[];	/* @0226 */
extern char fae[];	/* @0226 */
extern char scrhead[];	/* @0245 */
extern char scrptr[];   /* @0245 */
extern char *trctxt[];		/* @0260 */
extern char trchead[];		/* @0260 */
extern char trcptr[];		/* @0260 */
extern char *arstat[];		/* @0260 */
extern char *aretxt[];          /* @0262 */
extern char areaptr[];          /* @0262 */
extern char applptr[];	/* @0263 */
extern char applhead[]; /* @0263 */
extern char gluptr[];	/* @0263 */
extern char gluhead[];	/* @0263 */
extern char nodeptr[];	/* @0266 */
extern char nodehead[]; /* @0266 */
extern char dlcptr[];   /* @0266 */
extern char dlchead[];	/* @0266 */
extern char ntype[];	/* @0266 */
extern char *nntype[];	/* @0266 */
extern char dtype[];	/* @0266 */
extern char *ddtype[];	/* @0266 */
extern char active[];		/* @0247 */
extern char inactive[];	/* @0260 */
extern char quitp[];			/* @0269 */
#else				/* @0245 */
extern char *ays;	/* @0226 */
extern char *fae;	/* @0226 */
extern char *scrhead;	/* @0245 */
extern char *scrptr;   /* @0245 */
extern char **trctxt;		/* @0260 */
extern char *trchead;		/* @0260 */
extern char *trcptr;		/* @0260 */
extern char **arstat;		/* @0260 */
extern char *areaptr;           /* @0262 */
extern char **aretxt;           /* @0262 */
extern char *applptr;	/* @0263 */
extern char *applhead; /* @0263 */
extern char *gluptr;	/* @0263 */
extern char *gluhead;	/* @0263 */
extern char *nodeptr;	/* @0266 */
extern char *nodehead; /* @0266 */
extern char *dlcptr;   /* @0266 */
extern char *dlchead;	/* @0266 */
extern char *ntype;	/* @0266 */
extern char **nntype;	/* @0266 */
extern char *dtype;	/* @0266 */
extern char **ddtype;	/* @0266 */
extern char *active;		/* @0247 */
extern char *inactive;
extern char *quitp;			/* @0269 */
#endif  			/* @0245 */
/* @0230 */
extern char yes[];	/* @0247 */
extern char no[];
/* @0245 */
extern char b_ins[];
/* @0230 */
#if (OVL_TYPE==0)	/* @0264 */
extern unsigned char russ_table[ ];
#else
extern unsigned char *russ_table;	/* @0264 */
#endif
extern unsigned char russ_decod[ ];

extern unsigned char russ_twomean [ ];
extern char rbshdr[3];      /* ru-header RBS */  /* 1005 */
extern char rhhdr[3];       /* rh-header     */  /* 1008 */
extern char rrbshdr[3];      /* ru-header RRBS */  /* 1008 */
extern char drlhdr[3];    /* 1005 */
extern char rlihdr[3];
extern char BIND1[25];
extern char vt[];       /* @0226 */
extern char l_s[];	/* @0226 */
extern char bindhdr[3];	/* @0226 */
extern char bindfhdr[3];/* @0226 */
extern short wver;                  /* version           1010  */
extern char *message[];
extern unsigned char ascii_ebcdic [ ];
extern unsigned char mod_host_pc [ ];
extern unsigned char mod_pc_host [ ];
extern char in_buffer[1920];    /* 1004 */
#if (OVL_TYPE==0)   	/* @0264 */
extern char ENABLE[];         /* @0227 */
extern char DISABLE[];       /* @0227 */
#else
extern char *ENABLE;         /* @0227 */
extern char *DISABLE;       /* @0227 */
#endif
extern int  vis_attr;        /* @0227 */
extern short help28;		/* @0233 */
#if (OVL_TYPE==0)	/* @0254 */
extern char *atype[];	/* @0254 */
extern areahead[];
extern char address[];	/* @0248 */
extern char *sttxt2[];
extern char *sttxt3[];
#else                	/* @0254 */
extern char **atype;    /* @0254 */
extern char *areahead;  /* @0254 */
extern char *address;   /* @0254 */
extern char **sttxt2;
extern char **sttxt3;
#endif			/* @0254 */
 struct ovpp {                   /* 5001 */
       struct rqb *wrqb;         /* 5001 */
       void *xmit_queue_one;     /* 5001 */
       };                        /* 5001 */
typedef  struct {
	 char address[18];
	 }PRD;
typedef  struct {
	 short buffer[2000];
	 }DIR;
typedef  struct {
	 short buffer_pool[3000];
	 char buf_id;
	 }DLC;
typedef  struct {
	 short id_station;
	 char count;
	 }XMTWO;
typedef  struct {
	 XMTWO *xm2;
	 short rezerv;
	 short length_in_buffer;
	 short user_data;
	 short user_length;
	 char user_space[50];   /* 5001 */
	 }XMONE;
typedef struct {
	char id_station1;
	char id_station2;
	char id_station3;
	char id_station4;
	char id_station5;
	char id_station6;
	}DEST;
typedef  struct {
	 char blok[58];
	 char buf_entr[255];
	 } BUFDRV;
typedef  struct {
	 char outbuf[255];
	 }ONE;
typedef  struct {
	 char buf_begin;
	 char buf_end;
	 }TWO;
typedef  struct {
	 short station_id;     /*идентификатоp станции*/
	 short buffer_left;    /*количество оставшихся буфеpов*/
	 char buffer_get;      /*количество буфеpов для получения*/
	 char res[3];
	 ONE *xm1;           /*адpес пеpвого пpинятого буфеpа*/
	 }TGET;
typedef  struct {
	 short station_id;
	 short buffer_left;
	 char reserv[4];
	 ONE *xm1;
	 }TFREE;
typedef  struct {
	 short sap_station_id;
	 short link_station_id;
	 char timer_t1;
	 char timer_t2;
	 char timer_ti;
	 char maxout;
	 char maxin;
	 char maxout_incr;
	 char max_retry_cnt;
	 char rsap_value;
	 short max_i_field;
	 char access_priority;
	 char nul;
	 DEST *pdad;
	 }TOPEN;
typedef struct {
	 short station_id;
	 char transmit_fs;
	 char rsap;
	 XMONE *xm1;
	 XMTWO *xm2;
	 short buffer_len_one;
	 short buffer_len_two;
	 ONE *pbo;
	 TWO *pbt;
	 }TWRITE;
typedef struct {
	int point_id;
	}POINT;
typedef  struct {
	 char adapter;
	 char node_address[6];
	 short num_rsv_buffers;
	 short rcv_buffer_len;
	 short dnb_buffer_len;
	 char data_hold_buf;
	 PRD * pia;
	 short dir_buf_size;
	 short dir_pool_blocks;
	 DIR *buf1;
	 char dlc_max_sta;
	 void  *received_data;
	 short *open_data;
	 char maxout;
	 char maxin;
	 char station_count;
	 short dlc_buf_size;
	 short dlc_pool_len;
	 DLC *buf2;
	 }OPEN;
typedef  struct {
	 short station_id[255];
	 short *close_data;
	 }CLOSE;
typedef  struct {
	 char command;
	 short station_id;
	 XMONE *xm1;
	 XMTWO *xm2;
	 short buffer_len_one;
	 short buffer_len_two;
	 ONE *pbo;
	 TWO *pbt;
	 short *close_data;
	 }WRITE;
typedef struct {
	short sap_station_id;
	char maxout;
	char maxin;
	char rsap_value;
	char access_priority;
	DEST *dad;
	short *ioctl_data;
	short station_id;
	char option;
	short *received_data;
	}OPEN_STATION;
typedef struct {
	short station_id_1b;
	short *route ;
	short *connect_data;
	}CONNECT_STATION;
typedef struct {
	short station_id;
	short *close_station_data;
	}CLOSE_STATION;
typedef struct {
	short station_id;
	char buffer_get;
	short *get_data;
	}GET;
typedef struct {
	short station_id;
	ONE *pbo;
	short *free_data;
	}FREE;
typedef struct {
	 char ccb_adapter;
	 char ccb_command;
	 char ccb_retcode;
	 char ccb_work;
	 POINT *pnt;
	 void *cplt;
	 void *tab;
       } CCB;
typedef struct {               /* 5001 */
    	void *buf_pointer;
	short rcv_len;
	short length_in_buffer;
	short adapter_offset;
	short user_length;
	short station_id;
	char options;
	char message_type;
	short buffer_left;
	char rcv_fs;
	char adapter_num;
	char lan_header_length;
	char dlc_header_length;
	struct {
    		unsigned char ac;
		unsigned char fc;
		char dnode_addr[6];
		char onode_addr[6];
		 struct {
			unsigned dl:5;
			unsigned tm:3;
			unsigned rs:4;
			unsigned d:1;
			unsigned nk:3;
			short ukm1;
			short ukm2;
			short ukm3;
			short ukm4;
			short ukm5;
			short ukm6;
			short ukm7;
			short ukm8;
  			}im;
     			}lan_header;
	long dlc_header;
	char rcvd_data;
	}RECEIVE_BUF1;
typedef struct{
	void *buf_pointer;
	short rcv_len;
	short length_in_buffer;
	short adapter_offset;
	short user_length;
	char rcvd_data;
	}RECEIVE_BUF2;           /* 5001 */
/*                               /* @0282 */
extern CCB *PCCB;
extern  BUFDRV *PBUF;
extern char buffree[8];          /* 5001 */
extern char buftrn39[6500];      /* 5001 */

extern int cmd;
extern char PR1_NODE_ADDR[6];    /* 5001 */
extern short PR1_ST_ID_15;
extern short PR1_LINK_ST_ID_19[9];
extern char mxid[20];
extern char wovpp[40];
extern char tbs[];
extern char tabm[];
extern char adapter;
extern short station_id15;
/*extern *PBUF;*/
extern *CMD_CPLT;
extern *REC_DATA;             /* 5001 */
extern OPEN parm_open;
extern CLOSE parm_close;
extern WRITE parm_write;
extern OPEN_STATION parm_open_station;
extern CONNECT_STATION parm_connect_station;
extern CLOSE_STATION parm_close_station;
extern GET parm_get;
extern FREE parm_free;
extern PRD product_id_addr;
extern DIR dir_pool_address;
extern DLC dlc_pool_addr;
extern POINT ccb_pointer;
extern XMONE *xmit_queue_one;      /* 5001 */
extern XMTWO *xmit_queue_two;      /* 5001 */
extern DEST dest_addr;
extern BUFDRV bufer;
extern DLC *dlc;      /*5001*/

extern OPEN *pop;
extern CLOSE *pcl;
extern WRITE *pwr;
extern OPEN_STATION *post;
extern CONNECT_STATION *pcnst;
extern CLOSE_STATION *pcst;
extern GET *pgt;
extern FREE *pft;
extern DEST *det;
extern TGET *ccb_get;
extern TFREE *ccb_free;
extern TOPEN *ccb_open;
extern TWRITE *ccb_write;
extern ONE *buffer_one;
extern TWO *buffer_two;
extern CCB  *parm_ccb;

extern char *PCCB39;
extern BUFDRV *PBUF39;
/* 5001 */
extern short (* REC_DRV_DATA1)();   /*указатель на п/п приема данных*/
extern short (* REC_DRV_DATA)();    /*указатель на п/п завершения команды приема*/
extern short (* CMD_DRV)();         /*указатель на п/п завершения команд*/


extern char *UCCB;       /*УКАЗАТЕЛЬ КОДА ССВ.ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ ДЛЯ DRVINT.ASM*/
extern char buf16[16];
extern char buf15[16];
extern char buft15[30];
extern char buf27[16];
extern char buft27[12];
extern char buf28[16];
extern char buft28[13];
extern char buf0b[16];
extern char buft0b[24];
extern char buf26[16];
extern char buft26[12];

extern struct ccb15s *u15ccb;
extern struct tab15s *tab15u;

extern struct ccb27s *u27ccb;
extern struct tab27s *tab27u;

extern struct ccb16s *u16ccb;

extern struct ccb28s *u28ccb;
extern struct tab28s *tab28u;

extern struct ccb0bs *u0bccb;
extern struct tab0bs *tab0bu;

extern struct tab26s *tab26u;
extern struct ccb26s *u26ccb;        /* 5001 */
extern struct crec {
                void far *asc_rcv_exit;
                short asc_speed;
                unsigned char asc_width ; /* word width */
                unsigned char asc_parity; /* port & parity */
                unsigned char asc_stops; /* number of stop bits */
            } rec;
extern union REGS inregs, outregs;
extern struct SREGS segregs;
extern char MSG[];
*/                /* @0282 */
extern short fd;  /* @0231 */
extern char portpath[60];       /* @0292 *//* @0304 */
extern unsigned int pspseg;     /* @0320 */
extern char mbreak;             /* @0320 */
extern char *dosbreak;          /* @0320 */
extern char *mdta;              /* @0320 */
extern long *dosdta;            /* @0320 */
extern int *dospid;             /* @0320 */
extern long sample;             /* @0320 */
extern char *old65;		/* @0320 */
extern char *ydta;		/* @0320 */
extern int ypsp;		/* @0320 */
extern char *old24;		/* @0320 */
extern  unsigned char bufvt,buflan;  /* @1082 */
extern struct FILELIST {		/* @0322 */
  int current;
  int first;
  int findoff;
  int total;
  int files;
  int dirs;
  int curspos;
  int insert;
  int offset;
  char cdir[MAXDIR+13];
  unsigned char sw1,sw2,sw3;
 } FL;
extern  struct colors {
unsigned char deskcol;
unsigned char editcol;
unsigned char firstcol;
unsigned char curcol;
unsigned char namecol;

unsigned char filecol;
unsigned char curnamecol;

unsigned char X1;

unsigned char Y1;
unsigned char W;
unsigned char H;
unsigned char HIGH;
char find[14];
char name[6];
char files[7];
char dir[10];
	       } *co;
/* O V E R L A Y */
 #include "eoverl.h"

extern CCB *PCCB;
extern BUFDRV *PBUF;
