/*->h.vxdef */

#define VXBDX 24
#define VXBDY 40



#define VXDX vsc->oscharx
#define VXDY vsc->oschary


#define VXEDX (vsc->zoom.var?VXBDX:vsc->oscharx)
#define VXEDY (vsc->zoom.var?VXBDY:vsc->oschary)


#define VXDXM vscr->oscharx
#define VXDYM vscr->oschary


#define VXEDXM (vscr->zoom.var?VXBDX:vscr->oscharx)
#define VXEDYM (vscr->zoom.var?VXBDY:vscr->oschary)


#define VXASH  0
#define VXADHT 1
#define VXADHB 2

#define VXFLASH1 0x1000
#define VXUNDER  0x2000
#define VXDWL    0x8000
#define VXDWR    0x4000
#define VXDHT     0x400
#define VXDHB     0x800
#define VXFLASH2  0x200


#define VXCMASK   0x1FF



#define VFLASH   136   /*flash */
#define VDOUBLE  141   /* double */
#define VHOLD    158   /* hold */
#define VCONCEAL 152   /* conceal */
#define VSTEADY  137   /* steady */
#define VSINGLE  140   /* single */
#define VRELEASE 159   /* release */
#define VCONT    153   /* continuous */
#define VSEP     154   /* separated */
#define VNEWBACK 157   /* new background */
#define VBLKBACK 156   /* black background */

#define VALPHARED 129

#define VGRAPHRED 145


#define VXTEXT   0
#define VXGRNEG  1
#define VXGRPOS  2




typedef struct vxscreen
{
 int               tcbuf[25][40];
 union
 {
  struct
  {
   int               route[64];
  } cept3;

  struct 
  {
   int  back[25];
   int  look1[8];
   int  look2[8];
   int  dynam;
   int  flags;
   int  attr;
   int  parallel;
   int  sbrk;
   int  lastchar;
   int  lastcharl;
   int  zero1;            /* 49 */
   char zero5[5];
   char x;
   char y;
   char g0;
   char g1;
   char g2;
   char g3;
   char glr;
   char zero2;
   char zero3;
   char tops;
   char bots;             /* 4 */
   int  stuff[11];
  } cept2;
 } u;

 int               tvbuf[25][40];
 char              attr[25];
 char              rlo[25];
 char              rhi[25];
 char              flo[25];
 char              fhi[25];
 zoomer            zoom;
 int               notrans;
 int               scalefactors;
 sprite_factors    scaleblock;
 int               oscharx;
 int               oschary;
 int               pixelgrid;
 int               flashphase;
 int               height;
 int               start;
 char              lmod[32];
} vxscreen;



extern  int vxopen;
extern  int vxexists;
extern  int viewescflag;                   /* Escape flag */
extern  int vxhash;
extern  int vxstate1;
extern  int vedit;                         /* Editor mode */

extern  int ttvx;                          /* cursor posn */
extern  int ttvy;

extern  int mttvx;
extern  int mttvy;


extern  int vxmovecurs;
extern  int vxcurs;
extern  int vxblock;
extern  int vxcursphase;
extern  int vxmodded;
extern  int vxpendredraw;
extern  int vxcurstime;
extern  int vxauto;
extern  int vxbeep;

extern char vxceteol[32];
extern char vxanswerbackstring[32];
extern char vxmbxreply[32];
extern char vxprefix[32];
extern char vxsuffix[32];
extern char vxaseq[32];
extern char vxatseq[32];
extern char vxsolseq[32];
extern char vxechopacestring[32];

extern  int vxflashtime;
extern  int vxflashphase;

extern  vxscreen * vscr;


extern  int vxkeypad;

extern  int vxshortlines;               /* short lines in frame send */
extern  int vxechocheck;                /* echo check           */
extern  int vxdump;                     /* text dump only       */
extern  int vxprintff;                  /* form feed            */
extern  int vxslotel;                   /* slo telesoftware     */
extern  int vxcetel;                    /* CET protocol         */
extern  char vxceteol[32];
extern  int vxautoresume;               /* auto resume          */
extern  int vxreturnishash;             /* RETURN is hash       */
extern  int campusreturnishash;
extern  int campusdefault;
extern  int vxescseq;                   /* use escape sequences */
extern  int vxechopace;        /* pace for sending chars with no echo check */

extern  int vxlocal;                    /* local mode */
extern  int vxlocalecho;                /* local echo */

extern  int vxtxcrlnf;
extern  int vxrxcrlnf;
extern  int vxbit8c;

extern  int vxinvert;                   /* B<->W */


extern  int vxhearsayff;        /* use Hearsay frame files ? */
extern  int vxframesize;        /* default frame size */
                                /* logic is if minitel then CEPT 2 */
                                /* else hearsay or arcomm */



extern  int     vxdeftools;

extern  zoomer  vxdefz;
extern  zoomer  vxbdefz;


extern  int minitel;                    /* Minitel mode */

extern  int mxcnc;

extern  int mxforeground;
extern  int mxbackground;
extern  int mxstyle;
extern  int mxfront;
extern  int mxback;

extern int mxapa;                      /* APA seq */
extern int mxapax;
extern int mxrep;
extern int mxesc;
extern int mxesc1;
extern int mxpend;

extern int mxset;
extern int mxlast;
extern int mxinv;
extern int mxscroll;
extern int mxss2;
extern int mxss2first;
extern int mxunder;

extern int mxmodded;


extern void viewhi(int i);
extern int  viewline(int i);
extern int  viewconvertstringline(char * string);
extern void viewstringline(char * string);

extern void setvxcolour(int fp);

