home *** CD-ROM | disk | FTP | other *** search
- /*
- ** ctl.h (FrontDoor)
- **
- ** Copyright 1991 Joaquim H. Homrighausen. All rights reserved.
- **
- ** SETUP.FD definitions for FrontDoor 2.00+
- **
- ** Last revision: 91-10-02
- **
- ** -------------------------------------------------------------------------
- ** This information is not necessarily final and is subject to change at any
- ** given time without further notice
- ** -------------------------------------------------------------------------
- */
-
- /* Mailer ----------------------------------------------------------------- */
-
- /* --- Loglevels */
-
- #define LOGFATAL 0x0001 /* ! Fatal errors */
- #define LOGERROR 0x0002 /* ? Errors */
- #define LOGBRIEF 0x0004 /* + Major changes in action */
- #define LOGACCT 0x0008 /* $ Accounting information */
- #define LOGXFER 0x0010 /* * Sent/Received files */
- #define LOGTRIVIAL 0x0020 /* - Minor changes in action */
- #define LOGXFERMSG 0x0040 /* % Transfer messages */
- #define LOGMODEM 0x0080 /* = Modem activities/responses */
- #define LOGTRX 0x0100 /* : Session transaction numbers */
- #define LOGSESSION 0x0200 /* ~ Session stuff, SysOp, etc. */
- #define LOGRMTAKAS 0x0400 /* ~ Remote system's AKAs */
- #define LOGRMTINFO 0x0800 /* ~ Remote system's information */
- #define LOGUNEXPECT 0x1000 /* # Unexpected password */
- #define LOGDEBUG 0x8000 /* All loglevels enabled */
-
- /* --- Miscellaneous MAILER flags */
-
- #define NOUNLISTED 0x00000001L /* Don't allow unlisted systems */
- #define CREATE_BATCH 0x00000002L /* Create batchfile when BBS caller */
- #define TERMONLY 0x00000004L /* Running as Terminal-Only */
- #define DTR_HANGUP 0x00000008L /* Use DTR to hangup */
- #define DTR_DIAL 0x00000010L /* Toggle DTR prior to dialing */
- #define DTR_BUSY 0x00000020L /* Use DTR to signal BUSY */
- #define MANUAL_ANSWER 0x00000040L /* Use manual answer */
- #define CONNECT_RESET 0x00000080L /* Reset modem to connect speed */
- #define MODEM_FIXED 0x00000100L /* Use constant speed against modem */
- #define NOMAIL_NOPWD 0x00000200L /* No mail from unsecured systems */
- #define DELAYFIRST 0x00000400L /* Delay before first call */
- #define CLOCK 0x00000800L /* Display clock */
- #define KILLNULL 0x00001000L /* Remove messages with no text */
- #define MAILONLY 0x00002000L /* Don't allow human callers */
- #define LIMITED_ANSWER 0x00004000L /* Limited hours to answer */
- #define EXIT_NETMAIL 0x00008000L /* Exit when netmail received */
- #define ZONE_ADAPTION 0x00010000L /* Adopt called/calling zone */
- #define PRINTNEWMSGS 0x00020000L /* Print received messages */
- #define NOUNKNOWNPOINTS 0x00040000L /* Don't accept unlisted points */
- #define FORCEDCARRIER 0x00080000L /* Carrier is forced. Ring required */
- #define NULLMODEM 0x00100000L /* Initiate session when CD high */
- #define MAILER43LINES 0x00200000L /* Use 43/50 line mode in mailer */
- #define SWAPTOEMSDISK 0x00400000L /* Swap file to LIM/EMS/DISK w/shell */
- #define MAILEREMSOK 0x00800000L /* If EMS can be used for swapping */
- #define PRESENTAKAS 0x01000000L /* Present AKAs during EMSI sessions */
- #define NOBLINKMAIL 0x02000000L /* Don't flash the waiting mail sign */
- #define EXITONANYFILE 0x04000000L /* Exit after ANY data has been rcvd */
- #define MAILERAUTOLINES 0x08000000L /* Use whatever screen mode is there */
- #define HONOR_RRQ 0x10000000L /* Honor RRQ */
- #define NO_TIMESTAMP 0x20000000L /* Don't show timestamp in window-1 */
- #define MAILERCUSTOMCRT 0x40000000L /* User-defined screen size */
-
- /* --- Audio flags */
-
- #define CLOCKNOISE 0x0001 /* Tic-tac-tic-tac-tic-tac */
- #define INMAILNOISE 0x0002 /* Unpacked any mail */
- #define INCRASHNOISE 0x0004 /* Unpacked crash or immediate mail */
- #define INCONNECTNOISE 0x0008 /* Incoming MAIL call (connect) */
- #define INCALLERNOISE 0x0010 /* Incoming human caller passed >BBS*/
- #define MAILWAITING 0x0020 /* Mail is waiting */
- #define OUTMAILNOISE 0x0040 /* Sent mail (after session) */
- #define OUTCONNECTNOISE 0x0080 /* Outgoing MAIL call (connect) */
- #define ERRORNOISE 0x0100 /* S.O.S. */
-
- /* --- Request types */
-
- #define REQALL 0x01 /* Anybody can request */
- #define REQNONE 0x02 /* No one can request */
- #define REQLISTED 0x04 /* Only listed systems */
- #define REQLIMITED 0x08 /* Limited hours */
-
-
- typedef struct
- {
- /* --- The logfile */
-
- char log[71];
- word loglevel; /* See --- Loglevels */
-
- /* --- Telephone number manipulation */
-
- char prefix[31]; /* Always added */
- char hidden[10][31]; /* Strip these if they are in # */
- char postfix[31]; /* Always appended */
-
- /* --- Miscellaneous flags */
-
- long flags; /* See --- Miscellaneous flags */
- long flags_reserved; /* Reserved flags */
- word audio; /* See --- Audio flags */
- byte synchtimer; /* Number of seconds for sync */
-
- /* --- Errorlevels */
-
- byte crashexit; /* Mail exit */
- byte bbs300;
- byte bbs1200;
- byte bbs1275;
- byte bbs2400;
- byte bbs4800;
- byte bbs9600;
- byte bbs19200;
- byte bbs38400;
-
- /* --- Modem */
-
- word modembaud; /* 30=300, 24=2400, etc. */
- byte modemport; /* 1-255 (COM1=1, COM2=2, etc.) */
- byte modemdelay; /* 1/10 seconds delay / line sent */
-
- /* --- Messages */
-
- char b300msg[16];
- char b1200msg[16];
- char b1275msg[16];
- char b2400msg[16];
- char b4800msg[16];
- char b9600msg[16];
- char b19200msg[16];
- char b38400msg[16];
- char errormsg[16];
- char busymsg[16];
- char carriermsg[16];
- char okmsg[16];
- char ringmsg[16];
- char nodialmsg[16];
- char noanswmsg[16];
- char voicemsg[16];
-
- /* --- Commands */
-
- char escapestr[11];
- char offhookstr[11];
- char reconnectstr[11];
- char init1[50];
- char init2[50];
- char init3[50];
- char resetstr[50];
- char downstr[50];
- char hangupstr[11];
- char dialstr[11];
-
- /* --- Manual answer stuff */
-
- char oldmodemanswer[11]; /* Not used anymore */
- byte answerdelay;
-
- /* --- Limited answer start and end times */
-
- byte begin_hour;
- byte begin_minute;
- byte end_hour;
- byte end_minute;
-
- /* --- Calling control */
-
- byte retrybusy;
- byte retryresend;
- byte retrydelay;
-
- /* --- File request control */
-
- char reqlist[71]; /* List to scan for reqable dirs */
- char reqalias[71]; /* Magic filenames */
- char reqmessage[71]; /* Appended to FAILED REQUEST message */
- byte reqtype; /* Bit field */
- byte reqmaxfiles; /* Max number of files to send on 1 req */
- word reqmaxtime; /* Maximum number of minutes for req */
- word reqmaxsize; /* Maximum size (in KB) for req */
- word reqminbaud; /* Minimum baudrate for req */
- byte reqstarthr; /* Start time for file requests, can be */
- byte reqstartmin; /* - combined with the reqdays field */
- byte reqendhr;
- byte reqendmin;
- byte reqdays; /* 7 6 5 4 3 2 1 0x80==All days
- _ _ _ _ _ _ _
- : : : : : : :
- : : : : : : +--- Saturday
- : : : : : +----- Friday
- : : : : +------- Thursday
- : : : +--------- Wednesday
- : : +----------- Tuesday
- : +------------- Monday
- +--------------- Sunday */
-
- /* --- File to send when human callers are let thru */
-
- char bbsname[11];
- char beforebbsbanner[71];
-
- /* Function keys from mailer menu */
- /* --- F1-F12, Shift F1-F12 */
-
- struct
- {
- char cmd[61];
- char title[26];
- byte behavior; /* 1-Pause, 2-Process msg base */
- }
- key[24];
-
- /* --- Mailer colors
-
- header
- highlight
- clock
- data_entry
- error
- normal_text
- frame
- window_text
- window_frame
- window_select
- window_highlight */
-
- byte color[11];
-
- /* --- Number of days to keep entries in history files */
-
- byte keep_history;
-
- /* --- FDServer password, if none given, server is INactive */
-
- char slavepwd[21];
-
- /* --- File displayed to users when system is in event for no callers */
-
- char ineventfile[71];
-
- /* --- File displayed when human callers are seen on mail-only system */
-
- char mailonlyfile[71];
-
- /* --- External programs to run on certain "wake-up" strings */
-
- struct
- {
- char wakeupstr[40];
- byte errorlevel;
- }
- externmail[10];
-
- /* RESERVED FIELD */
-
- /* --- Limited audio start and end times. If the below four bytes
- are all zero (0), audio is enabled all the time */
-
- byte audio_begin_hour;
- byte audio_begin_minute;
- byte audio_end_hour;
- byte audio_end_minute;
-
- /* --- Minimum cost to process undialable */
-
- word min_undial_cost;
-
- /* --- Carrier detect mask (commercial version), default=128 */
-
- byte CDMASK;
-
- /* --- FDCD buffer sizes (commercial version) */
-
- word FOSSIL_OUTBS,
- FOSSIL_INBS;
-
- /* --- List to scan for SECURE sessions during file requests */
-
- char reqseclist[71];
-
- /* --- Extended baud rate exits */
-
- byte bbs7200;
- byte bbs12000;
- byte bbs14400;
-
- /* --- Custom screen size parameters to INT 10H (commercial version) */
-
- word SETcustomcrt_AX,
- SETcustomcrt_BX,
- SETcustomcrt_CX,
- SETcustomcrt_DX;
-
- word RESETcustomcrt_AX,
- RESETcustomcrt_BX,
- RESETcustomcrt_CX,
- RESETcustomcrt_DX;
-
- /* --- Alias List to scan for SECURE sessions */
-
- char reqsecalias[71];
-
- /* --- Command string to force modem to answer */
-
- char modemanswer[41];
-
- char RESERVERAT[811];
- }
- _mailer;
-
-
- /* Editor ----------------------------------------------------------------- */
-
- #define EDITOR43LINES 0x00000001L /* Use 43/50-line mode */
- #define SHOWHARDCRS 0x00000002L /* Display paragraph (hard CR) char */
- #define EDITORSWAP 0x00000004L /* Swap file to LIM/EMS/DISK w/shell */
- #define EDITOREMSOK 0x00000008L /* Whether or not EMS should be used */
- #define EDITORAUTOLINES 0x00000010L /* Use whatever screen mode is there */
- #define HONOR_CFM 0x00000020L /* Honor CFM */
- #define EDITORCUSTOMCRT 0x00000040L /* User-defined screen size */
- #define RKILL_NEVER_E 0x00000080L /* Never ask "Delete Original?"-E */
- #define RKILL_NEVER_L 0x00000100L /* Never ask "Delete Original?"-L */
- #define RKILL_NEVER_N 0x00000200L /* Never ask "Delete Original?"-N */
- #define USEZONEGATE_YES 0x00000400L /* Always use zone gate if OK */
- #define USEZONEGATE_NO 0x00000800L /* Never use zone gate, even if OK */
-
- /* --- Netmail folder behavior */
-
- #define RESTRICTED 0x00000001L
- #define EXPORTOK 0x00000004L
- #define USEXLATTABLES 0x00000008L
- #define EDREADONLY 0x00000020L
-
- typedef struct
- {
- /* --- Macro keys */
- /* F1-F12, Shift F1-F12 */
-
- char macrokey[24][61];
-
- /* --- Margin, default==60 */
-
- byte margin;
-
- /* --- Default message status */
-
- word msgbits;
-
- /* --- Miscellaneous settings */
-
- long flags;
-
- /* --- Origin lines */
-
- char origin[20][61];
-
- /* --- Editor colors
- top_line
- status_line
- error
- text
- text_quotes
- text_reverse
- text_hardCRs
- header
- header_data
- header_data_highlight
- data_entry
- window_frame
- window_text
- window_select
- window_highlight */
-
- byte color[15];
-
- /* --- Netmail folder flags */
-
- long netfolderflags;
-
- /* --- Translation tables IN/OUT */
-
- byte translate_in[256];
- byte translate_out[256];
-
- /* --- Where Hudson-style message base files are */
-
- char qbase[71];
-
- /* --- Custom screen size parameters to INT 10H (commercial version) */
-
- word SETcustomcrt_AX,
- SETcustomcrt_BX,
- SETcustomcrt_CX,
- SETcustomcrt_DX;
-
- word RESETcustomcrt_AX,
- RESETcustomcrt_BX,
- RESETcustomcrt_CX,
- RESETcustomcrt_DX;
-
- /* --- RESERVED */
-
- char RESERVERAT[1008];
- }
- _editor;
-
-
- /* Shared data ------------------------------------------------------------- */
-
- #define FASTKEY 0x00000001L
- #define FLICKER 0x00000002L
- #define BLACKOUT 0x00000004L
- #define HAVEEXTKBD 0x00000008L /* Use extended INT 16H calls */
- #define FORCE24HOUR 0x00000010L /* Force 24-hour time format */
-
- #define SUPERUSER 0x00000001L /* User flags */
- #define ADMINUSER 0x00000002L
- #define USER 0x00000004L
- #define BYPASSRO 0x00010000L
- #define BYPASSEXP 0x00020000L
-
- #define PROTECT_MEXIT 0x00000001L /* Protect Alt-Q Mailer */
- #define PROTECT_MSHELL 0x00000002L /* Protect Alt-Z Mailer */
- #define PROTECT_MKEYS 0x00000004L /* Protect function keys Mailer */
- #define PROTECT_MFREQ 0x00000008L /* Protect file requests Mailer */
- #define PROTECT_MXMIT 0x00000010L /* Protect transmit Mailer */
- #define PROTECT_MSEND 0x00000020L /* Protect send mail Mailer */
- #define PROTECT_MPOLL 0x00000040L /* Protect poll Mailer */
- #define PROTECT_MNCOMP 0x00000080L /* Protect FDNC Mailer */
- #define PROTECT_MQUEUE 0x00000100L /* Protect mail queue Mailer */
- #define PROTECT_MPRN 0x00000200L /* Protect printer toggle Mailer */
-
- /*
- ** Domain structure
- */
- typedef struct
- {
- word zone, /* Zone for domain */
- reserved;
- char name[28]; /* Name of domain */
- }
- _DOMAIN;
-
- /*
- ** AKA matching structure
- */
- typedef struct
- {
- word zone, /* Zone to match */
- net, /* Net to match */
- akanum; /* AKA to use */
- }
- _ZMATCH;
-
- /*
- ** Shared information structure
- */
- typedef struct
- {
- char systempath[71];
- char mailpath[71];
- char swap_path[71];
- char rescanpath[71]; /* Commercial version */
- char RESERVED_path_2[71];
- char infilepath[71];
- char packetpath[71];
- char nodelistpath[71];
-
- word countrycode;
-
- struct
- {
- word zone;
- word net;
- word node;
- word point;
- }
- aka[11];
-
- /* --- Timeout value for screen blanker in SECONDS (0-255) */
-
- long flags;
- byte blackout_time;
-
- /* --- User record */
-
- struct
- {
- char name[37];
- long pwdcrc; /* CRC-32 of user password, -1L No pwd */
- dword flags;
- }
- user[10];
-
- /* --- Protection of exits (commercial version) */
-
- dword exitpwdcrc; /* Password for DOS shell, exits, etc. */
- dword exitflags; /* Which flags should be protected */
-
- /* --- Zone match set-up */
-
- _ZMATCH zmatch[20];
-
- /* --- "Domain" set-up */
-
- _DOMAIN domain[20];
-
- /* --- System information */
-
- struct
- {
- char name[50], /* Name of site */
- location[40], /* Location of site */
- phone[26]; /* Phone number or '-Unpublished-' */
- dword baud; /* Baud rate (300-115200) */
- char flags[50]; /* Capability flags of site */
- }
- siteinfo;
-
- /* --- Reserved */
-
- char RESERVED[86];
- }
- _shared;
-
-
- /* Terminal --------------------------------------------------------------- */
-
- #define CONNECT_NOISE 0x00000001L
- #define TRANSFER_NOISE 0x00000002L
- #define USE_TRANSLATE 0x00000004L
- #define USE_43LINES 0x00000008L
- #define AUTOZMODEM 0x00000010L
- #define NOWRAPAROUND 0x00000020L
- #define LOCALECHO 0x00000040L
- #define NOAVATAR 0x00000080L
- #define USE_AUTOLINES 0x00000100L
- #define NOCLRONFF 0x00000200L /*Don't clear screen on form feeds*/
- #define IEMSIACTIVE 0x00000400L /*Interactive EMSI Support*/
- #define TERMCUSTOMCRT 0x00000800L /*User-defined screen size*/
- #define TERMLOG 0x00001000L /*Logging in Terminal*/
-
- typedef struct
- {
- /* --- Init string */
-
- char initstring[41];
-
- /* --- Max memory to use for buffer (in K) */
-
- word scrollsize;
-
- /* --- 0=TTY, 1=ANSI, 2=VT52, 3=VT100 */
-
- byte emulation;
-
- /* --- Index in protocol list */
-
- byte protocol;
-
- /* --- Shift F1-F12 macro settings */
-
- char shiftkey[12][31];
-
- /* --- Ctrl F1-F12 macro settings */
-
- char ctrlkey[12][31];
-
- /* --- Default download path */
-
- char downloadpath[60];
-
- /* --- Default upload path */
-
- char uploadpath[60];
-
- /* --- Translation table - modem->screen */
-
- byte translate_in[256];
-
- /* --- Translation table - screen->modem */
-
- byte translate_out[256];
-
- /* --- Seconds to wait before next dial.. */
-
- byte retrywait;
-
- /* --- Behavior, sounds, flashes.. etc. */
-
- dword flags;
-
- /* --- CRC-32 of password to enter PhoneDir */
-
- dword directorypwd;
-
- /* --- Invoked with Alt-I */
-
- char editor[60];
-
- /* --- Default profile. See TERMINAL.H */
-
- char profile[94];
-
- /* --- Custom screen size params to INT 10H (commercial version) */
-
- word SETcustomcrt_AX,
- SETcustomcrt_BX,
- SETcustomcrt_CX,
- SETcustomcrt_DX;
-
- word RESETcustomcrt_AX,
- RESETcustomcrt_BX,
- RESETcustomcrt_CX,
- RESETcustomcrt_DX;
-
- /* --- Reserved */
-
- char RESERVERAT[854];
- }
- _terminal;
-
-
- /* Printer (commercial version) ------------------------------------------- */
-
- #define PAGE_FORMAT 0x00000001L
- #define PAGE_FFEED 0x00000002L
- #define EJECT 0x00000004L
- #define MANUAL_PAPER 0x00000008L
- #define HIDE_KLUDGE 0x00000010L
- #define CONTINOUS 0x00000020L
-
- typedef struct
- {
- char port; /* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 */
- char baud; /* 0 9600, 1 4800, 2 2400, 3 1200 */
- byte stopbits; /* 0x00 - 1, 0x01 - 2 */
- byte wordlength; /* 0x00 - 7, 0x01 - 8 */
- byte parity; /* 0x00 - Even, 0x01 - Odd, 0x02 - None */
- byte pagelen;
- long behavior;
- char init[71];
- char reset[71];
- char bold_on[31];
- char bold_off[31];
- char under_on[31];
- char under_off[31];
- char italic_on[31];
- char italic_off[31];
- byte pagewidth; /* Width in columns of a page */
- byte leftmargin; /* Left margin, ie. start printing at column */
- byte footer; /* Footer margin, ie. leave nn lines */
- byte header; /* Header margin, ie. skip nn lines */
- byte translate_out[256]; /* Translation table - disk->printer */
- char pr2RESERVED[100];
- }
- _printer;
-
-
- /*****************************************************************************
- ** **
- ** Don't use ANY of the data in the file if the CRC values are NOT correct. **
- ** **
- ** Check the fingerprint[] field before assuming 1.99b and higher. Your **
- ** software should also check the sysrev field to make sure it's compatible **
- ** with the data listed in SETUP.FD **
- ** **
- *****************************************************************************/
- #define FD_THISREV 0x0100
-
- struct _ctl
- {
- char fingerprint[5]; /* Must contain "JoHo<NUL>" */
- word sysrev; /* Must contain THISREV above */
- dword ctlcrc; /* CRC-32 of struct excluding the 1st 11 bytes */
- _mailer m;
- _editor e;
- _shared s;
- _terminal t;
- _printer p;
- dword ctlcrc2; /* CRC-32 of all the above */
- };
-
- /* end of file "ctl.h" */
-