/*->h.dir */

#define SYSNAMELEN 16

extern char  sysname[SYSNAMELEN];


#define PREFIXLEN 32
#define PASSWLEN  32
#define NUMLEN    28



extern char  prefixstring[PREFIXLEN];

extern int dirtot;

extern int  prefix;
extern int  redial;
extern int  attempts;
extern int  ardelay;


extern void setpopcomms(void);
extern void decodedial(int m3);
extern void decodecomms(int m2,int m3,int m4,int m5);
extern void dirredraw(void);
extern void dirclose(void);
extern void diricon(void);
extern void dirboot(void);
extern void decodedir(int m2,int m3,int m4,int m5);
extern void entryicon(void);
extern void entryclose(void);
extern int  getentry(int handle);
extern void entrykey(int * key);
extern void tdstatus(int txrate,int rxrate,int data,int stop,int parity);
extern void refreshdirentry(int n);
extern void dirpop(void);
extern int  entryload(char * filename);
extern int  setupentrymenu(int writeable,int * menuhandle,int item);
extern int  setupdrivermenu(void);
extern int  setupvoicecompmenu(void);
extern int  setupservermenu(void);
extern void clearusermenus(void);




extern void dirshow(void);
extern void callzero(void);
extern void dodialselected(void);

extern int bitrate2int(int bitrate);

extern void passwordicon(void);
extern void passwordkey(int * key);

extern int getnumber(char * text,char * number,int map,int prefix);

extern int    finddirid(char * name);
extern char * diridname(int id);
extern void   diridnumber(int id,char * p,int doprefix);

extern void   gdecodedial(int m3);
extern void   moddir(void);



#define MYRMAX 0x1000

extern char * strings;
extern int writemitem(int ** pr,char * string,int bits,int shade,int * maxl);
extern void writemheader(int * menup,char * title,int maxwidth);

extern void dirdragend(void);
extern int savetextentry(char * filename);

extern void decodeentrymenu(int m3);
extern void decodeaddnamenumber(char * name,int sn,newbitstr * new);
extern int  findname(char * name);

extern void savedir(void);

extern int loadcsv(char * name);
extern int savecsv(char * name);


typedef os_error * (*entryfn)(char * name);

extern void openentrymenu(entryfn ex);

extern void voicedialp(char * number,int localprefix);
extern void voicedialpn(int n);


extern int setupbandmenu(void);


extern int  findnamedynamic(char * name);
extern void getdirbits(int n,newbitstr * new);
extern void getdirbitsall(int n,newbitstr * new);

extern int txserver(int mode,int id,int * code);


extern int getdirid(int n);
extern int callbar(int fp);

extern int txidok(int fp);
extern int txidoks(char * string);

extern int rxidok(int fp);
extern int rxidoks(char * string);

extern void diraddnewentry(char * name);

extern char * idtoname(char * id);


extern void dirtogglegroup(int group);
extern int  dirgroupshow(int group);





