home *** CD-ROM | disk | FTP | other *** search
- /*=========================================================================*/
- /* XBBS BBS Configuration Editor copyright (c) 1989/90 by M. Kimes */
- /* All rights reserved */
- /*=========================================================================*/
-
- #include "msgg.h"
- #include "twindow.h"
- #include "keys.h"
- #include "scrntitl.h"
-
-
- /* Function prototypes */
-
- extern char * lstrip (char *a);
- void readconfig (void);
- void configure(void);
- void saveconfig(void);
- void newuserr(void);
- void bbs(void);
- void matrix(void);
- void setdefaults(void);
- void prompts(void);
- void miscel(void);
- void paths(void);
- void prepare_config(void);
- extern int window1(void);
- extern int window2(void);
- extern int window3(void);
- extern int window4(void);
- int prompt1(void);
- int prompt2(void);
- int prompt3(void);
- int addbackslash(char *,int);
- char * rstrip(char *);
- void quit(void);
- void quitnosave(void);
- void quitsave(void);
- int elevell(char *,int);
- int shltype(char *,int);
- int yesorno(char *,int);
- void fboardd(void);
- void mboardd(void);
- void params(void);
- void params2(void);
- void printscreen(void);
- void jumptodos(void);
-
- char msk78[]="______________________________________________________________________________";
- char mskdate[]="__/__/____";
- char mskphone[]="(___)___-____";
- #define msk5 "_____"
- #define msk35 msk78+43
- #define msk36 msk78+42
- #define mskst msk35+33
- #define mskzip msk35+30
- #define mskcit msk35+11
- #define msk1 msk78+77
- #define msk2 msk78+76
- #define msk3 msk35+32
- #define msk4 msk35+31
- #define msk6 msk35+29
- #define msk47 msk78+31
- #define msk63 msk78+15
- #define msk15 msk78+63
- #define msk12 msk78+66
- #define msk58 msk78+20
- #define msk46 msk78+32
-
- /* Global variables */
-
- struct _config conf; /* System configuration read from CONFIG.BBS */
- struct _user newuser;
- struct _logconfig logconf;
- char nonstop=0;
-
- extern unsigned char usemouse;
- extern word maxx;
- extern word maxy;
-
- int VERSION=117;
-
-
- void main (int argc,char *argv[]) {
-
- WINDOW *instruct;
- char test;
- int x;
-
- maxx=80;
- maxy=25;
-
- if (argc>1) {
- if (strcmp(strupr(argv[1]),"IN")==0) {
- nonstop=1;
- readconfig();
- conf.sysopin=1;
- saveconfig();
- printf("\n\x1b[0;2;37mThe SysOp is IN\n");
- exit(0);
- }
- if (strcmp(argv[1],"OUT")==0) {
- nonstop=1;
- readconfig();
- conf.sysopin=0;
- saveconfig();
- printf("\n\x1b[0;2;37mThe SysOp is OUT\n");
- exit(0);
- }
- if (strcmp(argv[1],"BIOS")==0) {
- directvideo=0;
- }
- }
-
- x=(int)getvect(0x33); /* Check for mouse driver */
- if(x!=0) {
- _AX=0; /* Initialize mouse */
- geninterrupt(0x33);
- usemouse=(char)_AX;
- if(usemouse) {
- _AX=2;
- geninterrupt(0x33); /* Hide mouse cursor */
- }
- }
-
- cprintf("\r\nXCONFIG copyright (c) 1989/90 by M. Kimes\r\nCompiled: %s %s\r\n",__DATE__,__TIME__);
- if(usemouse) cprintf("\r\nMouse detected...");
- cprintf("\r\nLoading help...");
- load_help(searchpath("xconfig.hlp"));
- cprintf("\r\nLoading config...");
- nonstop=2;
- setdefaults();
- readconfig();
- nonstop=0;
-
- printscreen();
-
- Smore:
-
- configure();
- clear_message();
- cursor(0,25);
- instruct=establish_window(2,21,3,40);
- set_border(instruct,1);
- set_title(instruct," Confirm ");
- set_colors(instruct,ALL,RED,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," Are you sure you want to quit? (Y-n) ");
- Testagain:
- test=toupper(generic_mouse_input(instruct));
- if ((test=='N') || (test==ESC)) {
- if (test==ESC) {
- printf("\x7");
- goto Testagain;
- }
- delete_window(instruct);
- goto Smore;
- }
- quitnosave();
-
- }
-
- void quitnosave(void) {
-
- clear_message();
- close_all();
- printf("\x1b[2J\x1b[1;1HYou can also call XCONFIG with IN or OUT as an argument to\n");
- printf("change the SysOp's status from a BATch file or the DOS prompt.\n");
- exit(0);
-
- }
-
- void quitsave(void) {
-
- clear_message();
- saveconfig();
- quitnosave();
-
- }
-
-
-
- void setdefaults (void) {
-
- int register x;
-
- if (nonstop!=2) clear_message();
- strcpy(newuser.name,"New User");
- strcpy(newuser.handle,"New User");
- strset(newuser.password,0);
- strcpy(newuser.city,"Nowhere");
- strcpy(newuser.state,"XX");
- strcpy(newuser.zip,"00000");
- strcpy(newuser.phone1,"3180000000");
- strcpy(newuser.phone2,"3180000000");
- newuser.length=24;
- newuser.width=80;
- newuser.graphics=0;
- newuser.fullscreen=0;
- newuser.deleted=0;
- newuser.ansimenus=1;
- newuser.gen1=0;
- newuser.gen2=0;
- newuser.gen3=0;
- newuser.ignorehrs=0;
- newuser.ignorerat=0;
- newuser.nokill=0;
- newuser.cold=0;
- newuser.more=0;
- newuser.expert=0;
- newuser.arq=0;
- newuser.scrnclr=0;
- newuser.twit=0;
- newuser.commodore=0;
- newuser.attr2=0;
- newuser.stat[0]=(word)5;
- newuser.stat[1]=(word)0;
- newuser.upk=0;
- newuser.downk=0;
- newuser.upno=0;
- newuser.downno=0;
- newuser.posts=0;
- newuser.credit=0;
- newuser.violations=0;
- newuser.lastdate.da_year=1980;
- newuser.lastdate.da_day=1;
- newuser.lastdate.da_mon=1;
- gettime(&newuser.lasttime);
- getdate(&newuser.logondate);
- gettime(&newuser.logontime);
- getdate(&newuser.birthdate);
- newuser.hiok=0;
- newuser.lastmsgarea=0;
- newuser.reserved=0;
-
- newuser.times=0;
- newuser.callsperday=3;
- newuser.timepercall=30;
- newuser.totaltime=90;
- newuser.callstoday=0;
- newuser.timetoday=0;
- newuser.pointid=0;
- for(x=0;x<5;x++) strset(newuser.variable[x],'0');
- for(x=0;x<10;x++) newuser.numvars[x]=0;
- newuser.comptype=0;
- newuser.uktoday=0;
- newuser.dktoday=0;
- newuser.id=0L;
- newuser.node=0;
-
- logconf.name=1;
- logconf.handle=1;
- logconf.phone1=1;
- logconf.phone2=1;
- logconf.graphics=1;
- logconf.ansiedit=1;
- logconf.scrnclr=1;
- logconf.pagepause=1;
- logconf.commflag=1;
- logconf.zipcode=1;
- logconf.city=1;
- logconf.state=1;
- logconf.pass=1;
- logconf.birth=1;
- logconf.length=1;
- logconf.width=1;
- logconf.locallog=0;
- logconf.loglimit=7;
- logconf.nameattempts=3;
- logconf.passattempts=3;
- logconf.minbaud=1200;
-
- conf.bvideo=1;
- conf.node=0;
- conf.net=0;
- conf.alt_node=0;
- conf.alt_net=0;
- conf.zone=0;
- conf.alt_zone=0;
- strcpy(conf.homepath,"C:\\XBBS\\");
- strcpy(conf.mailpath,"C:\\BT\\MSG\\");
- strcpy(conf.filepath,"C:\\BT\\FILES\\");
- strcpy(conf.outpath,"C:\\BT\\OUT\\");
- strcpy(conf.menupath,"C:\\XBBS\\MENU\\");
- strcpy(conf.messpath,"C:\\XBBS\\MESS\\");
- strcpy(conf.sysop,"Sysop");
- strcpy(conf.system,"The Unknown XBBS");
- strcpy(conf.logfile,"C:\\XBBS\\XBBS.LOG");
- strcpy(conf.edansi,"QuickEd.EXE *p *B *T 180");
- strcpy(conf.edline,"LINEED.EXE MSGTMP -B*B -T*T -P*P -L*l -G*G -W*w");
- strcpy(conf.edlocal,"Q.EXE MSGTMP");
- strcpy(conf.edgraph,"ANSIEd.EXE *P *B *T");
- strcpy(conf.lastcaller,"A. Ghost");
- strcpy(conf.quote_file,"QUOTES.XBS");
- strcpy(conf.domain,"FidoNet");
- strcpy(conf.alt_domain,"FidoNet");
-
- conf.forcefilemsg=0;
- conf.reservedbits=0;
- conf.fastANSI=0;
- conf.nolmrs=200;
- conf.genstatezip=0;
- conf.ansibaud=1200;
- conf.purgebaud=2400;
- conf.netmailboard=5;
- conf.altnetboard=0;
- conf.commport=0;
- conf.ansiavail=1;
- conf.idleseconds=180;
- conf.pages=2;
- conf.sysopin=1;
- conf.uptime=1;
- conf.touchup=1;
- conf.callcount=0;
- conf.downtime=0;
- conf.debug=1;
- conf.startat=3;
- conf.dvideo=1;
- conf.swap=0;
- conf.useswapdisk='C';
- conf.LIMEMS=0;
- conf.reserved2=0;
- conf.version=VERSION;
- strset(conf.reserved1,0);
- conf.lastcall=time(NULL);
- conf.comments=4;
- conf.carbons=0;
- conf.lastusernum=0;
- conf.share=0;
- conf.logtext=0;
- conf.logfiles=0;
- conf.logmenu=0;
- conf.logmsg=0;
- conf.quote_pos=0;
- conf.nextid=0L;
- conf.helpkey=20;
- conf.RBBSorQBBS=0;
-
- strcpy(conf.mboard.name,"Feedback");
- conf.mboard.attr=12;
- conf.mboard.max=50;
- conf.mboard.number=2;
- conf.mboard.substat1=100;
- conf.mboard.substat2=0;
- conf.mboard.age=0;
- conf.mboard.flags=0;
- conf.mboard.minwrite=0;
- strcpy(conf.mboard.forceto,"The Sysop");
-
- for(x=0;x<10;x++) {
- strset(conf.jumpfile[x],0);
- strset(conf.subfile[x],0);
- strset(conf.jumpkey[x],0);
- strset(conf.subkey[x],0);
- }
-
- strcpy(conf.fboard.name,"New Uploads");
- conf.fboard.flags=0;
- conf.fboard.userflags=0;
- conf.fboard.age=0;
- conf.fboard.leechpercent=0;
- strcpy(conf.fboard.dpath,"C:\\XBBS\\Newest");
- strcpy(conf.fboard.upath,"C:\\XBBS\\Uploads");
- strcpy(conf.origin,"I'm running XBBS and you're not");
-
- for (x=0;x<42;x++) {
- conf.available[x]=0;
- }
- conf.genphone=0;
- strset(conf.nodelist,0);
- conf.packsize=2048;
-
- if (nonstop!=2) any_message(" Default parameters set ");
-
- }
-
-
- int addbackslash(bf,key)
-
- char *bf;
-
- {
-
- int register x;
-
- for (x=77;x>(-1);x--) {
- if (bf[x]!=' ') {
- break;
- }
- }
- if (x<0) {
- x=0;
- *bf='\\';
- }
- if (bf[x]!='\\') {
- if (x==77) {
- error_message("No room for trailing backslash!");
- return ERROR;
- }
- bf[x+1]='\\';
- }
- return 0;
- }
-
-
-
- int shltype (bf,key)
-
- char *bf;
-
- {
-
- if (strstr("SEBDXEI",bf)==NULL) {
- error_message("Invalid exit type!");
- return ERROR;
- }
- return 0;
- }
-
-
- int lessthan255 (bf,key)
-
- char *bf;
-
- {
-
- if (atoi(bf)>255 || atoi(bf)<0) {
- error_message("0-255 only!");
- return ERROR;
- }
- return 0;
- }
-
-
- int oneto255 (bf,key)
-
- char *bf;
-
- {
-
- if (atoi(bf)>255 || atoi(bf)<1) {
- error_message("1-255 only!");
- return ERROR;
- }
- return 0;
- }
-
-
- int purger (bf,key)
-
- char *bf;
-
- {
-
- if ((word)atol(bf)>38400 || (word)atol(bf)<300) {
- error_message("300-38400 only!");
- return ERROR;
- }
- return 0;
- }
-
-
-
- int yesorno (bf,key)
-
- char *bf;
-
- {
-
- if (strstr("YN",bf)==NULL) {
- error_message("Answer [Y]es or [N]o!");
- return ERROR;
- }
- return 0;
- }
-
-
-
- int nocommas (bf,key)
-
- char *bf;
-
- {
-
- if (strchr(bf,',')!=NULL) {
- error_message("No commas allowed!");
- return ERROR;
- }
- return 0;
- }
-
-
-
- int elevell(bf,key)
-
- char *bf;
-
- {
-
- if ((atoi(bf)>255) || (atoi(bf)<4)) {
- error_message("Invalid ERRORLEVEL (4-255)!");
- return ERROR;
- }
- return 0;
- }
-
-
-
- void readconfig (void) {
-
- FILE *fp;
- struct ffblk f;
- char both=0;
-
- if (!nonstop) {
- clear_message();
- cursor(0,25);
- }
-
- if(findfirst("config.bbs",&f,0)) {
- if (nonstop==2) {
- return;
- }
- else if (nonstop) {
- printf("\nConfiguration file not found!\n");
- exit(1);
- }
- }
- else {
- if(f.ff_fsize!=(long)sizeof(struct _config)) {
- printf("\nConfig file odd size--must be old version.\n");
- sleep(1);
-
- }
- if(!(fp=fopen("config.bbs","rb"))) {
- if (nonstop) {
- printf("\nCannot open CONFIG.BBS!\n");
- exit(1);
- }
- }
- else {
- rewind(fp);
- fread(&conf,sizeof(struct _config),1,fp);
- if(f.ff_fsize==(long)sizeof(struct _config)) {
- if(conf.version!=VERSION) {
- printf("\nVersion of this config file is %d\n",conf.version);
- sleep(1);
- }
- }
- both=1;
- fclose(fp);
- }
- }
-
- checknew:
-
- if (nonstop && nonstop!=2) return;
- if(findfirst("newuser.bbs",&f,0)) {
- if (!nonstop) {
- goto Tellem;
- }
- else {
- printf("\nCannot find NEWUSER.BBS!\n");
- }
- }
- if(!(fp=fopen("newuser.bbs","rb"))) {
- printf("\nCan't open NEWUSER.BBS\n");
- }
- else {
- rewind(fp);
- fread(&newuser,sizeof(struct _user),1,fp);
- fread(&logconf,sizeof(struct _logconfig),1,fp);
- fclose(fp);
- both=both+2;
- }
-
- Tellem:
-
- if (nonstop) return;
- clear_message();
- switch (both) {
- case 3: any_message(" Loaded Logon & Main configurations ");
- break;
- case 2: any_message(" Loaded Logon configuration ");
- break;
- case 1: any_message(" Loaded Main configuration ");
- break;
- case 0: any_message(" No configurations loaded! ");
- }
-
- }
-
-
- void readconfig (void);
- void saveconfig(void);
- void setdefaults(void);
- void newuserr(void);
- void bbs(void);
- void matrix(void);
- void prompts(void);
- void miscel(void);
- void paths(void);
- void quitsave(void);
- void quitnosave(void);
- void params(void);
- void params2(void);
- void specfiles(void);
- void fboardd(void);
- void mboardd(void);
-
- char *pselcs[]={
- " Save config ",
- " Load config ",
- " Set defaults ",
- NULL
- };
- char *dselcs[]={
- " General ",
- " Matrix ",
- " Paths ",
- " Parameters [1] ",
- " Parameters [2] ",
- " Special Files ",
- " File Board ",
- " Message Board ",
- NULL
- };
- char *eselcs[]={
- " New Users ",
- " Prompts ",
- " Misc ",
- NULL
- };
- char *qselcs[]={
- " Exit and Save ",
- " Exit No Save ",
- " DOS Shell ",
- NULL
- };
-
- static void(*dfuncs[])()={bbs,matrix,paths,params,params2,specfiles,fboardd,mboardd};
- static void(*pfuncs[])()={saveconfig,readconfig,setdefaults};
- static void(*efuncs[])()={newuserr,prompts,miscel};
- static void(*qfuncs[])()={quitsave,quitnosave,jumptodos};
- static MENU tmn[]={
- {" Main ", dselcs,dfuncs},
- {" Logon ", eselcs,efuncs},
- {" Storage ", pselcs,pfuncs},
- {" Exit ", qselcs,qfuncs},
- {NULL,NULL,NULL}
- };
-
-
-
- void configure (void) {
-
- menu_select(" XBBS Configuration Editor copyright (c) 1989/90 by M. Kimes ",tmn);
-
- }
-
-
-
- void paths (void) {
-
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
-
- clear_message();
- instruct=establish_window(25,22,3,19);
- set_border(instruct,2);
- set_title(instruct," System Paths ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- wnd=establish_window(0,4,16,80);
- set_title(wnd," System Paths ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- wprompt(wnd,2,0,"Path where BBS files reside:");
- wprompt(wnd,2,2,"Path to net mail directory:");
- wprompt(wnd,2,4,"Path to net files directory:");
- wprompt(wnd,2,6,"Path to Outbound holding area:");
- wprompt(wnd,2,8,"Path to 'menu' files (*.XBS):");
- wprompt(wnd,2,10,"Path to message files:");
- wprompt(wnd,2,12,"Path to nodelist:");
- init_template(wnd);
- fld=establish_field(wnd,0,1,msk78,conf.homepath,'A');
- field_window(fld,"homepath ",40,10);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,3,msk78,conf.mailpath,'A');
- field_window(fld,"mailpath ",40,11);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,5,msk78,conf.filepath,'A');
- field_window(fld,"filepath ",40,12);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,7,msk78,conf.outpath,'A');
- field_window(fld,"outpath ",40,14);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,9,msk78,conf.menupath,'A');
- field_window(fld,"menupath ",40,1);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,11,msk78,conf.messpath,'A');
- field_window(fld,"messpath ",40,3);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,13,msk78,conf.nodelist,'A');
- field_window(fld,"nodelist ",40,5);
- field_validate(fld,addbackslash);
- prep_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
- delete_window(instruct);
- }
-
-
-
- void specfiles(void)
-
- {
-
- register word x;
- char s[80];
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
-
- clear_message();
- instruct=establish_window(25,22,3,19);
- set_border(instruct,2);
- set_title(instruct," Special Files ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- wnd=establish_window(15,0,22,50);
- set_title(wnd," Special Files ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- for (x=0;x<10;x++) {
- sprintf(s,"Goto file #%01u:",x);
- wprompt(wnd,2,(x),s);
- }
- for (x=0;x<10;x++) {
- sprintf(s,"Gosub file #%01u:",x);
- wprompt(wnd,2,(x+10),s);
- }
- for (x=0;x<10;x++) {
- wprompt(wnd,35,(x),"Key:");
- }
- for (x=0;x<10;x++) {
- wprompt(wnd,36,(x+10),"Key:");
- }
-
- init_template(wnd);
-
- for (x=0;x<10;x++) {
- fld=establish_field(wnd,17,(x),msk12,conf.jumpfile[x],'A');
- field_window(fld,"jumpfiles ",40,10+x);
- fld=establish_field(wnd,41,(x),msk1,conf.jumpkey[x],'a');
- field_window(fld,"jumpkeys ",40,10+x);
- }
- for(x=0;x<10;x++) {
- fld=establish_field(wnd,18,(x+10),msk12,conf.subfile[x],'A');
- field_window(fld,"subfiles ",40,11-x);
- fld=establish_field(wnd,42,(x+10),msk1,conf.subkey[x],'a');
- field_window(fld,"subkeys ",40,11-x);
- }
-
- prep_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
- delete_window(instruct);
- }
-
-
- void params (void)
-
- {
-
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
- char commport[4];
- char idleseconds[6];
- char pages[4];
- char debug[2];
- char uptime[2];
- char downtime[2];
- char callcount[16];
- char sysopin[2];
- char touchup[2];
- char ansiavail[2];
- char startat[4];
- char numcomps[4];
- char dvideo[2];
- char comments[4];
- char bioswrites[2];
- char purge[7];
- char genphone[2];
-
- clear_message();
- instruct=establish_window(25,23,3,21);
- set_border(instruct,2);
- set_title(instruct," Parameters [1] ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- sprintf(comments,"%hu",conf.comments);
- sprintf(numcomps,"%hu",conf.numcomps);
- sprintf(startat,"%-hu",conf.startat);
- sprintf(callcount,"%-lu",conf.callcount);
- sprintf(commport,"%-hu",conf.commport);
- sprintf(pages,"%-hu",conf.pages);
- sprintf(idleseconds,"%-u",conf.idleseconds);
- sprintf(purge,"%-u",conf.purgebaud);
- if (conf.sysopin==1) strcpy(sysopin,"Y");
- else strcpy(sysopin,"N");
- if (conf.touchup==0) strcpy(touchup,"N");
- else strcpy(touchup,"Y");
- if (conf.ansiavail==0) strcpy(ansiavail,"N");
- else strcpy(ansiavail,"Y");
- if (conf.dvideo==0) strcpy(dvideo,"N");
- else strcpy(dvideo,"Y");
- if (!conf.debug) strcpy(debug,"N");
- else strcpy(debug,"Y");
- if (conf.downtime==0) strcpy(downtime,"N");
- else strcpy(downtime,"Y");
- if (conf.uptime==0) strcpy(uptime,"N");
- else strcpy(uptime,"Y");
- if (conf.bioswrites==0) strcpy(bioswrites,"N");
- else strcpy(bioswrites,"Y");
- if (conf.genphone==0) strcpy(genphone,"N");
- else strcpy(genphone,"Y");
-
- wnd=establish_window(4,1,21,64);
- set_border(wnd,3);
- set_title(wnd," Miscellaneous Parameters [1] ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- wprompt(wnd,2,1,"SysOp In?");
- wprompt(wnd,2,2,"Maximum number of unanswered pages:");
- wprompt(wnd,2,3,"Maximum number of `idle' seconds:");
- wprompt(wnd,2,4,"Commport (0=COM1 1=COM2 etc.):");
- wprompt(wnd,2,5,"Start U/D Ratio enforcement at d/l #:");
- wprompt(wnd,2,6,"Number of system calls:");
- wprompt(wnd,2,7,"Is ANSI processing available?");
- wprompt(wnd,2,8,"`Touch-up' new upload dates?");
- wprompt(wnd,2,9,"Give back upload time?");
- wprompt(wnd,2,10,"Give back download time?");
- wprompt(wnd,2,11,"`Debug' mode on?");
- wprompt(wnd,2,12,"Number of computer types to track?");
- wprompt(wnd,2,13,"Use direct screen writes?");
- wprompt(wnd,2,14,"Number of comment lines @ uploads?");
- wprompt(wnd,2,15,"BIOS writes for ANSI writes?");
- wprompt(wnd,2,16,"Maximum purge baud?");
- wprompt(wnd,2,17,"Use generic phone # input?");
-
- init_template(wnd);
-
- fld=establish_field(wnd,40,1,msk1,sysopin,'A');
- field_window(fld,"sysopin ",40,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,2,mskst,pages,'N');
- field_window(fld,"pages ",40,12);
- fld=establish_field(wnd,40,3,mskzip,idleseconds,'N');
- field_window(fld,"idlesecond",40,13);
- fld=establish_field(wnd,40,4,msk2,commport,'N');
- field_window(fld,"commport ",40,14);
- fld=establish_field(wnd,40,5,mskst,startat,'N');
- field_window(fld,"startat ",40,14);
- fld=establish_field(wnd,40,6,msk15,callcount,'N');
- field_window(fld,"callcount ",40,1);
- fld=establish_field(wnd,40,7,msk1,ansiavail,'A');
- field_window(fld,"ansiavail ",40,2);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,8,msk1,touchup,'A');
- field_window(fld,"touchup ",40,3);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,9,msk1,uptime,'A');
- field_window(fld,"uptime ",40,4);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,10,msk1,downtime,'A');
- field_window(fld,"downtime ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,11,msk1,debug,'A');
- field_window(fld,"debug ",40,6);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,12,msk3,numcomps,'N');
- field_window(fld,"numcomps ",40,7);
- field_validate(fld,lessthan255);
- fld=establish_field(wnd,40,13,msk1,dvideo,'A');
- field_window(fld,"dvideo ",40,2);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,14,msk3,comments,'N');
- field_window(fld,"comments ",40,3);
- fld=establish_field(wnd,40,15,msk1,bioswrites,'A');
- field_window(fld,"bioswrites",40,4);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,16,msk6,purge,'N');
- field_window(fld,"purge ",40,5);
- field_validate(fld,purger);
- fld=establish_field(wnd,40,17,msk1,genphone,'A');
- field_window(fld,"genphone ",40,6);
- field_validate(fld,yesorno);
-
- prep_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
-
- conf.commport=(char)atoi(commport);
- conf.idleseconds=(word)atol(idleseconds);
- conf.pages=(byte)atoi(pages);
- conf.purgebaud=(word)atol(purge);
- if(*debug=='Y') conf.debug=1;
- else conf.debug=0;
- if (*uptime=='Y') conf.uptime=1;
- else conf.uptime=0;
- if (*downtime=='Y') conf.downtime=1;
- else conf.downtime=0;
- if (*dvideo=='Y') conf.dvideo=1;
- else conf.dvideo=0;
- if (*bioswrites=='Y') conf.bioswrites=1;
- else conf.bioswrites=0;
- if (*genphone=='Y') conf.genphone=1;
- else conf.genphone=0;
- conf.callcount=(ulong)atol(callcount);
- if (*sysopin=='Y')conf.sysopin=1;
- else conf.sysopin=0;
- if (*touchup=='Y') conf.touchup=1;
- else conf.touchup=0;
- if (*ansiavail=='Y') conf.ansiavail=1;
- else conf.ansiavail=0;
- conf.startat=(byte)atoi(startat);
- conf.numcomps=(byte)atoi(numcomps);
- conf.comments=(byte)atoi(comments);
-
- delete_window(instruct);
- }
-
-
- void params2 (void)
-
- {
-
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
- char genstatezip[2];
- char LIMEMS[2];
- char swap[2];
- char useswapdisk[2];
- char promptsay[2];
- char numcarbons[2];
- char sharing[2];
- char nolmrs[5];
- char logmenu[2];
- char logmsg[2];
- char logfile[2];
- char logtext[2];
- char fastansi[2];
- char forcefilemsg[2];
- char prev_quote_file[13];
- char nextid[32];
- char packsize[6];
- char helpkey[2];
- char RBBSorQBBS[2];
-
- clear_message();
- instruct=establish_window(25,24,3,21);
- set_border(instruct,2);
- set_title(instruct," Parameters [2] ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- strcpy(prev_quote_file,conf.quote_file);
- if(conf.nolmrs<50) conf.nolmrs=50;
- if(conf.nolmrs>4095) conf.nolmrs=4095;
- sprintf(nolmrs,"%u",conf.nolmrs);
- if (conf.LIMEMS) strcpy(LIMEMS,"Y");
- else strcpy(LIMEMS,"N");
- if (conf.swap) strcpy(swap,"Y");
- else strcpy(swap,"N");
- sprintf(useswapdisk,"%c",conf.useswapdisk);
- if (conf.genstatezip==0) strcpy(genstatezip,"N");
- else strcpy(genstatezip,"Y");
- if (conf.promptsay==0) strcpy(promptsay,"N");
- else strcpy(promptsay,"Y");
- if (conf.fastANSI==0) strcpy(fastansi,"N");
- else strcpy(fastansi,"Y");
- if (conf.carbons>9) conf.carbons=9;
- sprintf(numcarbons,"%u",conf.carbons);
- if (conf.share) strcpy(sharing,"Y");
- else strcpy(sharing,"N");
- if (conf.logfiles) strcpy(logfile,"Y");
- else strcpy(logfile,"N");
- if (conf.logmsg) strcpy(logmsg,"Y");
- else strcpy(logmsg,"N");
- if(conf.forcefilemsg) strcpy(forcefilemsg,"Y");
- else strcpy(forcefilemsg,"N");
- if (conf.logmenu) strcpy(logmenu,"Y");
- else strcpy(logmenu,"N");
- if (conf.logtext) strcpy(logtext,"Y");
- else strcpy(logtext,"N");
- if (conf.RBBSorQBBS) strcpy(RBBSorQBBS,"Y");
- else strcpy(RBBSorQBBS,"N");
- sprintf(nextid,"%01lu",conf.nextid);
- sprintf(packsize,"%01u",conf.packsize);
- *helpkey=conf.helpkey;
- helpkey[1]=0;
- if(*helpkey==0 || *helpkey==' ') *helpkey=20;
-
- wnd=establish_window(4,0,22,64);
- set_border(wnd,3);
- set_title(wnd," Miscellaneous Parameters [2] ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- wprompt(wnd,2,1,"Helpkey:");
- wprompt(wnd,2,2,"#LMRs to keep:");
- wprompt(wnd,2,3,"Swap on spawn?");
- wprompt(wnd,2,4,"Use EMS?");
- wprompt(wnd,2,5,"Swapdrive:");
- wprompt(wnd,2,6,"Print Prompt #'s?");
- wprompt(wnd,2,7,"Generic state/zip field?");
- wprompt(wnd,2,8,"# Carbon msgs:");
- wprompt(wnd,2,9,"Share (M'tasking)?");
- wprompt(wnd,2,10,"Log names of all menus?");
- wprompt(wnd,2,11,"Log when msgs are read in an area?");
- wprompt(wnd,2,12,"Log when files are listed in an area?");
- wprompt(wnd,2,13,"Log text files when paged-read?");
- wprompt(wnd,2,14,"Fast ANSI output via INT 29h?");
- wprompt(wnd,2,15,"Indexed Quote File:");
- wprompt(wnd,2,16,"Force msgs @ upload?");
- wprompt(wnd,2,17,"Next user id:");
- wprompt(wnd,2,18,"Size at which to compress msgs:");
- wprompt(wnd,2,19,"Make RBBS-style DORINFO?.DEF?");
-
- init_template(wnd);
-
- fld=establish_field(wnd,40,1,msk1,helpkey,'a');
- field_window(fld,"helpkey ",1,12);
- fld=establish_field(wnd,40,2,msk4,nolmrs,'N');
- field_window(fld,"nolmrs ",40,6);
- fld=establish_field(wnd,40,3,msk1,swap,'A');
- field_window(fld,"swap ",40,6);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,4,msk1,LIMEMS,'A');
- field_window(fld,"ems ",40,7);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,5,msk1,useswapdisk,'A');
- field_window(fld,"swapdrive ",40,8);
- fld=establish_field(wnd,40,6,msk1,promptsay,'A');
- field_validate(fld,yesorno);
- field_window(fld,"promptsay ",1,9);
- fld=establish_field(wnd,40,7,msk1,genstatezip,'A');
- field_validate(fld,yesorno);
- field_window(fld,"genstatezi",40,9);
- fld=establish_field(wnd,40,8,msk1,numcarbons,'N');
- field_window(fld,"numcarbons",1,10);
- fld=establish_field(wnd,40,9,msk1,sharing,'A');
- field_window(fld,"share ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,10,msk1,logmenu,'A');
- field_window(fld,"logmenu ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,11,msk1,logmsg,'A');
- field_window(fld,"logmsg ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,12,msk1,logfile,'A');
- field_window(fld,"logfile ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,13,msk1,logtext,'A');
- field_window(fld,"logtext ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,14,msk1,fastansi,'A');
- field_window(fld,"fastansi ",1,11);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,15,msk12,conf.quote_file,'A');
- field_window(fld,"quotefile ",1,12);
- fld=establish_field(wnd,40,16,msk1,forcefilemsg,'A');
- field_window(fld,"filemsg ",1,10);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,40,17,msk12,nextid,'N');
- field_window(fld,"nextid ",1,9);
- fld=establish_field(wnd,40,18,msk5,packsize,'N');
- field_window(fld,"packsize ",1,8);
- fld=establish_field(wnd,40,19,msk1,RBBSorQBBS,'A');
- field_validate(fld,yesorno);
- field_window(fld,"RBBSorQBBS",1,8);
-
- prep_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
-
- rstrip(conf.quote_file);
- if(strcmp(conf.quote_file,prev_quote_file)) conf.quote_pos=0;
- conf.nolmrs=(word)atol(nolmrs);
- if(conf.nolmrs<50) conf.nolmrs=50;
- if(conf.nolmrs>4095) conf.nolmrs=4095;
- if (*swap=='Y') conf.swap=1;
- else conf.swap=0;
- if (*logtext=='Y') conf.logtext=1;
- else conf.logtext=0;
- if (*logmsg=='Y') conf.logmsg=1;
- else conf.logmsg=0;
- if (*logmenu=='Y') conf.logmenu=1;
- else conf.logmenu=0;
- if (*logfile=='Y') conf.logfiles=1;
- else conf.logfiles=0;
- if (*fastansi=='Y') conf.fastANSI=1;
- else conf.fastANSI=0;
- if (*LIMEMS=='Y') conf.LIMEMS=1;
- else conf.LIMEMS=0;
- conf.useswapdisk=*useswapdisk;
- if (*promptsay=='Y') conf.promptsay=1;
- else conf.promptsay=0;
- if (*genstatezip=='Y') conf.genstatezip=1;
- else conf.genstatezip=0;
- if(*sharing=='Y') conf.share=1;
- else conf.share=0;
- conf.carbons=(byte)atoi(numcarbons);
- if(*forcefilemsg=='Y') conf.forcefilemsg=1;
- else conf.forcefilemsg=0;
- conf.nextid=(ulong)atol(nextid);
- if((word)atol(packsize)<1024) conf.packsize=1024;
- else conf.packsize=(word)atol(packsize);
- conf.helpkey=*helpkey;
- if(*RBBSorQBBS=='Y') conf.RBBSorQBBS=1;
- else conf.RBBSorQBBS=0;
-
- delete_window(instruct);
- }
-
-
-
- void mboardd (void) {
-
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
- char max[6];
- char number[6];
- char substat1[6];
- char substat2[6];
- char public[2];
- char private[2];
- char real[2];
- char echo[2];
- char net[2];
- char readonly[2];
- char alternate[2];
-
- conf.mboard.minwrite=0;
- conf.mboard.age=0;
- conf.mboard.flags=0;
- sprintf(max,"%-u",conf.mboard.max);
- sprintf(number,"%-u",conf.mboard.number);
- number[4]=0;
- sprintf(substat1,"%-u",conf.mboard.substat1);
- sprintf(substat2,"%-u",conf.mboard.substat2);
- if ((conf.mboard.attr & PUBLIC)!=0) strcpy(public,"Y");
- else strcpy(public,"N");
- if ((conf.mboard.attr & PRIVATE)!=0) strcpy(private,"Y");
- else strcpy(private,"N");
- if ((conf.mboard.attr & REAL)!=0) strcpy(real,"Y");
- else strcpy(real,"N");
- if ((conf.mboard.attr & NET)!=0) strcpy(net,"Y");
- else strcpy(net,"N");
- if ((conf.mboard.attr & ECHO)!=0) strcpy(echo,"Y");
- else strcpy(echo,"N");
- if ((conf.mboard.attr & READONLY)!=0) strcpy(readonly,"Y");
- else strcpy(readonly,"N");
- if ((conf.mboard.attr & ALTERNATE)!=0) strcpy(alternate,"Y");
- else strcpy(alternate,"N");
-
-
- clear_message();
- instruct=establish_window(25,22,3,21);
- set_border(instruct,2);
- set_title(instruct," Default Message ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- wnd=establish_window(4,4,19,78);
- set_border(wnd,3);
- set_title(wnd," Default Message Area ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- wprompt(wnd,2,1,"Message area name:");
- wprompt(wnd,2,2,"Force to:");
- wprompt(wnd,2,3,"Maximum # of messages:");
- wprompt(wnd,2,4,"Number of area:");
- wprompt(wnd,2,5,"SubOp Status #0:");
- wprompt(wnd,2,6,"SubOp Status #1:");
- wprompt(wnd,2,7,"Public Messages OK?");
- wprompt(wnd,2,8,"Private Messages OK?");
- wprompt(wnd,2,9,"Real Names Only?");
- wprompt(wnd,2,10,"Echo Area?");
- wprompt(wnd,2,11,"Net Area?");
- wprompt(wnd,2,12,"Alternate Net Area?");
- wprompt(wnd,2,13,"Read-Only Area?");
- wprompt(wnd,2,14,"Default Origin Line:");
- init_template(wnd);
- fld=establish_field(wnd,26,1,msk47,conf.mboard.name,'a');
- field_window(fld,"mname ",40,10);
- field_validate(fld,nocommas);
- fld=establish_field(wnd,26,2,msk35,conf.mboard.forceto,'a');
- field_window(fld,"forceto ",40,12);
- fld=establish_field(wnd,26,3,mskzip,max,'N');
- field_window(fld,"max ",40,14);
- fld=establish_field(wnd,26,4,msk3,number,'N');
- field_window(fld,"number ",40,16);
- fld=establish_field(wnd,26,5,mskzip,substat1,'N');
- field_window(fld,"substat1 ",40,1);
- fld=establish_field(wnd,26,6,mskzip,substat2,'N');
- field_window(fld,"substat2 ",40,2);
- fld=establish_field(wnd,26,7,msk1,public,'A');
- field_window(fld,"public ",40,3);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,8,msk1,private,'A');
- field_window(fld,"private ",40,4);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,9,msk1,real,'A');
- field_window(fld,"real ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,10,msk1,echo,'A');
- field_window(fld,"echo ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,11,msk1,net,'A');
- field_window(fld,"nett ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,12,msk1,alternate,'A');
- field_window(fld,"alternate ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,26,13,msk1,readonly,'A');
- field_window(fld,"readonly ",40,5);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,2,15,msk58,conf.origin,'a');
- field_window(fld,"origin ",40,5);
-
- prep_template(wnd);
- data_entry(wnd);
- delete_window(wnd);
-
- conf.mboard.attr=0;
- if (*public=='Y') conf.mboard.attr=conf.mboard.attr+PUBLIC;
- if (*private=='Y' && *echo=='N') conf.mboard.attr=conf.mboard.attr+PRIVATE;
- if (*real=='Y') conf.mboard.attr=conf.mboard.attr+REAL;
- if (*echo=='Y') conf.mboard.attr=conf.mboard.attr+ECHO;
- if (*net=='Y') conf.mboard.attr=conf.mboard.attr+NET;
- if (*readonly=='Y') conf.mboard.attr=conf.mboard.attr+READONLY;
- if (*alternate=='Y') conf.mboard.attr=conf.mboard.attr+ALTERNATE;
- conf.mboard.max=(word)atoi(max);
- conf.mboard.number=(word)atoi(number);
- conf.mboard.substat1=(word)atoi(substat1);
- conf.mboard.substat2=(word)atoi(substat2);
-
- delete_window(instruct);
-
- }
-
-
- void fboardd(void) {
-
- WINDOW *wnd;
- FIELD *fld;
- WINDOW *instruct;
- char flags[2];
- char freedls[2];
-
- clear_message();
- instruct=establish_window(25,22,3,21);
- set_border(instruct,2);
- set_title(instruct," File Area ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help ");
-
- if (conf.fboard.flags & COUNTDLS) strcpy(flags,"Y");
- else strcpy(flags,"N");
- if (conf.fboard.flags & FREEFILES) strcpy(freedls,"Y");
- else strcpy(freedls,"N");
-
- conf.fboard.leechpercent=0;
- conf.fboard.age=0;
- conf.fboard.userflags=0;
-
- wnd=establish_window(0,5,10,80);
- set_border(wnd,3);
- set_title(wnd," Default File Area ");
- set_colors(wnd,ALL,BLUE,WHITE,BRIGHT);
- set_colors(wnd,ACCENT,WHITE,BLACK,DIM);
- display_window(wnd);
- wprompt(wnd,2,1,"File Area Name:");
- wprompt(wnd,2,2,"Download Path:");
- wprompt(wnd,2,4,"Upload Path:");
- wprompt(wnd,2,6,"Track number of downloads?");
- wprompt(wnd,2,7,"Free downloads?");
- init_template(wnd);
- fld=establish_field(wnd,18,1,msk46,conf.fboard.name,'a');
- field_window(fld,"fname ",40,12);
- field_validate(fld,nocommas);
- fld=establish_field(wnd,0,3,msk78,conf.fboard.dpath,'A');
- field_window(fld,"dpath ",40,13);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,0,5,msk78,conf.fboard.upath,'A');
- field_window(fld,"upath ",40,14);
- field_validate(fld,addbackslash);
- fld=establish_field(wnd,30,6,msk1,flags,'A');
- field_window(fld,"fflags ",40,14);
- field_validate(fld,yesorno);
- fld=establish_field(wnd,30,7,msk1,freedls,'A');
- field_window(fld,"freefiles ",40,14);
- field_validate(fld,yesorno);
-
- prep_template(wnd);
- data_entry(wnd);
- if (*flags=='Y') conf.fboard.flags=conf.fboard.flags | COUNTDLS;
- else conf.fboard.flags=conf.fboard.flags & (~COUNTDLS);
- if (*freedls=='Y') conf.fboard.flags=conf.fboard.flags | FREEFILES;
- else conf.fboard.flags=conf.fboard.flags & (~FREEFILES);
- delete_window(wnd);
- delete_window(instruct);
-
- }
-
-
-
- void prompts(void) {
-
- int exitcode;
- signed char which=1;
- WINDOW *instruct;
-
- clear_message();
- instruct=establish_window(25,22,3,55);
- set_border(instruct,2);
- set_title(instruct," Logon Question Switches ");
- set_colors(instruct,ALL,GREEN,BLACK,DIM);
- set_colors(instruct,ACCENT,GREEN,WHITE,BRIGHT);
- display_window(instruct);
- wprintf(instruct," [F1] for help -- X to set, [Space] to reset");
-
- exitcode=prompt1();
- delete_window(instruct);
- return;
- }