home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / maximus / fddev220.arj / C.ARJ / CTL.H < prev    next >
C/C++ Source or Header  |  1993-06-28  |  33KB  |  633 lines

  1. /*
  2. **  ctl.h
  3. **
  4. **  Structures for SETUP.FD
  5. **
  6. **  Copyright 1989-1993 Joaquim Homrighausen; All rights reserved.
  7. **
  8. **  Last revised: 93-06-23                         FrontDoor 2.11+
  9. **
  10. **  -------------------------------------------------------------------------
  11. **  This information is not necessarily final and is subject to change at any
  12. **  given time without further notice
  13. **  -------------------------------------------------------------------------
  14. */
  15. #ifndef __SETUPFD__
  16. #define __SETUPFD__
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. /*
  23. **  Mailer ------------------------------------------------------------------
  24. */
  25.  
  26.     /* Loglevels */
  27.  
  28. #define LOGFATAL    0x0001                                /*'!' Fatal errors*/
  29. #define LOGERROR    0x0002                                      /*'?' Errors*/
  30. #define LOGBRIEF    0x0004                     /*'+' Major changes in action*/
  31. #define LOGACCT     0x0008                      /*'$' Accounting information*/
  32. #define LOGXFER     0x0010                         /*'*' Sent/Received files*/
  33. #define LOGTRIVIAL  0x0020                     /*'-' Minor changes in action*/
  34. #define LOGXFERMSG  0x0040                           /*'%' Transfer messages*/
  35. #define LOGMODEM    0x0080                  /*'=' Modem activities/responses*/
  36. #define LOGTRX      0x0100                 /*':' Session transaction numbers*/
  37. #define LOGSESSION  0x0200                  /*'~' Session stuff, SysOp, etc.*/
  38. #define LOGRMTAKAS  0x0400                        /*'~' Remote system's AKAs*/
  39. #define LOGRMTINFO  0x0800                 /*'~' Remote system's information*/
  40. #define LOGUNEXPECT 0x1000                         /*'#' Unexpected password*/
  41. #define LOGDEBUG    0x8000                           /*All loglevels enabled*/
  42.  
  43.     /* Miscellaneous flags (FLAGS) */
  44.  
  45. #define NOUNLISTED      0x00000001L           /*Don't allow unlisted systems*/
  46. #define CREATE_BATCH    0x00000002L       /*Create batchfile when BBS caller*/
  47. #define TERMONLY        0x00000004L               /*Running as Terminal-Only*/
  48. #define DTR_HANGUP      0x00000008L                      /*Use DTR to hangup*/
  49. #define DTR_DIAL        0x00000010L            /*Toggle DTR prior to dialing*/
  50. #define DTR_BUSY        0x00000020L                 /*Use DTR to signal BUSY*/
  51. #define MANUAL_ANSWER   0x00000040L                      /*Use manual answer*/
  52. #define CONNECT_RESET   0x00000080L           /*Reset modem to connect speed*/
  53. #define MODEM_FIXED     0x00000100L       /*Use constant speed against modem*/
  54. #define NOMAIL_NOPWD    0x00000200L         /*No mail from unsecured systems*/
  55. #define DELAYFIRST      0x00000400L                /*Delay before first call*/
  56. #define CLOCK           0x00000800L                          /*Display clock*/
  57. #define KILLNULL        0x00001000L           /*Remove messages with no text*/
  58. #define MAILONLY        0x00002000L              /*Don't allow human callers*/
  59. #define xxxxLIMITEDANSW 0x00004000L                /*Limited hours to answer*/
  60. #define EXIT_NETMAIL    0x00008000L             /*Exit when netmail received*/
  61. #define ZONE_ADAPTION   0x00010000L              /*Adopt called/calling zone*/
  62. #define PRINTNEWMSGS    0x00020000L                /*Print received messages*/
  63. #define NOUNKNOWNPOINTS 0x00040000L           /*Don't accept unlisted points*/
  64. #define FORCEDCARRIER   0x00080000L       /*Carrier is forced. Ring required*/
  65. #define NULLMODEM       0x00100000L          /*Initiate session when CD high*/
  66. #define MAILER43LINES   0x00200000L          /*Use 43/50 line mode in mailer*/
  67. #define SWAPTOEMSDISK   0x00400000L      /*Swap file to LIM/EMS/DISK w/shell*/
  68. #define MAILEREMSOK     0x00800000L        /*If EMS can be used for swapping*/
  69. #define PRESENTAKAS     0x01000000L      /*Present AKAs during EMSI sessions*/
  70. #define NOBLINKMAIL     0x02000000L      /*Don't flash the waiting mail sign*/
  71. #define EXITONANYFILE   0x04000000L      /*Exit after ANY data has been rcvd*/
  72. #define MAILERAUTOLINES 0x08000000L      /*Use whatever screen mode is there*/
  73. #define HONOR_RRQ       0x10000000L                              /*Honor RRQ*/
  74. #define NO_TIMESTAMP    0x20000000L       /*Don't show timestamp in window-1*/
  75. #define MAILERCUSTOMCRT 0x40000000L               /*User-defined screen size*/
  76.  
  77.     /* Miscellaneous flags (FLAGS2) */
  78.  
  79. #define FAXAUTORECEIVE  0x00000001L               /*Handle inbound fax calls*/
  80. #define MAILERLOGDFRS   0x00000002L         /*Log data following RING signal*/
  81. #define MEXTFREQS       0x00000004L            /*Use external file ReqServer*/
  82. #define MEXTFREQNOSWAP  0x00000008L      /*Don't swap when calling ReqServer*/
  83. #define FAXAUTOPRINT    0x00000010L       /*Auto print faxes (internal only)*/
  84.  
  85.     /* Audio flags */
  86.  
  87. #define CLOCKNOISE      0x0001                     /*Tic-tac-tic-tac-tic-tac*/
  88. #define INMAILNOISE     0x0002                           /*Unpacked any mail*/
  89. #define INCRASHNOISE    0x0004            /*Unpacked crash or immediate mail*/
  90. #define INCONNECTNOISE  0x0008                /*Incoming MAIL call (connect)*/
  91. #define INCALLERNOISE   0x0010           /*Incoming human caller passed >BBS*/
  92. #define MAILWAITING     0x0020                             /*Mail is waiting*/
  93. #define OUTMAILNOISE    0x0040                   /*Sent mail (after session)*/
  94. #define OUTCONNECTNOISE 0x0080                /*Outgoing MAIL call (connect)*/
  95. #define ERRORNOISE      0x0100                                      /*S.O.S.*/
  96.  
  97.     /* Request types */
  98.  
  99. #define REQALL          0x01                           /*Anybody can request*/
  100. #define REQNONE         0x02                            /*No one can request*/
  101. #define REQLISTED       0x04                           /*Only listed systems*/
  102. #define REQLIMITED      0x08                                 /*Limited hours*/
  103. #define REQONLYONEMATCH 0x80                /*Stop searching after one match*/
  104.  
  105.  
  106. typedef struct
  107.     {
  108.     char                log[71];                              /*Log filename*/
  109.     unsigned short int  loglevel;                            /*See Loglevels*/
  110.  
  111.     char                prefix[31];                           /*Always added*/
  112.     char                hidden[10][31];       /*Strip these if they are in #*/
  113.     char                postfix[31];                       /*Always appended*/
  114.  
  115.     long                flags;                     /*See Miscellaneous flags*/
  116.     long                flags2;                    /*See Miscellaneous flags*/
  117.     unsigned short int  audio;                             /*See Audio flags*/
  118.     unsigned char       synchtimer;   /*Number of seconds before drop to BBS*/
  119.  
  120.     unsigned char       crashexit;                               /*Mail exit*/
  121.     unsigned char       bbs300;                    /*Human caller    300 BPS*/
  122.     unsigned char       bbs1200;                   /*Human caller   1200 BPS*/
  123.     unsigned char       bbs1275;                   /*Human caller  12/75 BPS*/
  124.     unsigned char       bbs2400;                   /*Human caller   2400 BPS*/
  125.     unsigned char       bbs4800;                   /*Human caller   4800 BPS*/
  126.     unsigned char       bbs9600;                   /*Human caller   9600 BPS*/
  127.     unsigned char       bbs19200;                  /*Human caller  19200 BPS*/
  128.     unsigned char       bbs38400;                  /*Human caller  38400 BPS*/
  129.  
  130.     unsigned short int  modembaud;                   /*30=300, 24=2400, etc.*/
  131.     unsigned char       modemport;            /*1-255 (COM1=1, COM2=2, etc.)*/
  132.     unsigned char       modemdelay;         /*1/10 seconds delay / line sent*/
  133.  
  134.     char                b300msg[16];                           /*CONNECT 300*/
  135.     char                b1200msg[16];                         /*CONNECT 1200*/
  136.     char                b1275msg[16];                         /*CONNECT 1275*/
  137.     char                b2400msg[16];                         /*CONNECT 2400*/
  138.     char                b4800msg[16];                         /*CONNECT 4800*/
  139.     char                b9600msg[16];                         /*CONNECT 9600*/
  140.     char                b19200msg[16];                       /*CONNECT 19200*/
  141.     char                b38400msg[16];                       /*CONNECT 38400*/
  142.     char                errormsg[16];                                /*ERROR*/
  143.     char                busymsg[16];                                  /*BUSY*/
  144.     char                carriermsg[16];                         /*NO CARRIER*/
  145.     char                okmsg[16];                                      /*OK*/
  146.     char                ringmsg[16];                                  /*RING*/
  147.     char                nodialmsg[16];                         /*NO DIALTONE*/
  148.     char                noanswmsg[16];                           /*NO ANSWER*/
  149.     char                voicemsg[16];                                /*VOICE*/
  150.  
  151.     char                escapestr[11];              /*Return to command mode*/
  152.     char                offhookstr[11];                          /*Busy line*/
  153.     char                reconnectstr[11];              /*Return to data mode*/
  154.     char                init1[50];                        /*Initialization-1*/
  155.     char                init2[50];                        /*Initialization-2*/
  156.     char                init3[50];                        /*Initialization-3*/
  157.     char                resetstr[50];                  /*Force "OK" response*/
  158.     char                downstr[50];                    /*Sent upon shutdown*/
  159.     char                hangupstr[11];                             /*On hook*/
  160.     char                dialstr[11];                                  /*Dial*/
  161.  
  162.     char                oldmodemanswer[11];                   /*!!Not used!!*/
  163.     unsigned char       answerdelay;          /*1/10s delay before answering*/
  164.  
  165.     unsigned char       begin_hour;                           /*!!Not used!!*/
  166.     unsigned char       begin_minute;                         /*!!Not used!!*/
  167.     unsigned char       end_hour;                             /*!!Not used!!*/
  168.     unsigned char       end_minute;                           /*!!Not used!!*/
  169.  
  170.     unsigned char       retrybusy;                /*Retry attempts when BUSY*/
  171.     unsigned char       retryresend;              /*Retry attemps on failure*/
  172.     unsigned char       retrydelay;                  /*Seconds between calls*/
  173.  
  174.     char                reqlist[71];         /*List to scan for reqable dirs*/
  175.     char                reqalias[71];                      /*Magic filenames*/
  176.     char                reqmessage[71]; /*Appended to FAILED REQUEST message*/
  177.     unsigned char       reqtype;                                 /*See below*/
  178.     unsigned char       reqmaxfiles;  /*Max number of files to send on 1 req*/
  179.     unsigned short int  reqmaxtime;      /*Maximum number of minutes for req*/
  180.     unsigned short int  reqmaxsize;           /*Maximum size (in KB) for req*/
  181.     unsigned short int  OLDreqminbaud;                        /*!!Not used!!*/
  182.     unsigned char       reqstarthr;   /*Start time for file requests, can be*/
  183.     unsigned char       reqstartmin;     /*..combined with the reqdays field*/
  184.     unsigned char       reqendhr;               /*End time for file requests*/
  185.     unsigned char       reqendmin;
  186.     unsigned char       reqdays;      /* 7 6 5 4 3 2 1         0x80=All days
  187.                                          _ _ _ _ _ _ _
  188.                                          : : : : : : :
  189.                                          : : : : : : +--- Saturday
  190.                                          : : : : : +----- Friday
  191.                                          : : : : +------- Thursday
  192.                                          : : : +--------- Wednesday
  193.                                          : : +----------- Tuesday
  194.                                          : +------------- Monday
  195.                                          +--------------- Sunday            */
  196.  
  197.     char                bbsname[11];             /*Press <Esc> for "bbsname"*/
  198.     char                beforebbsbanner[71];  /*File sent before drop to BBS*/
  199.  
  200.     struct                                            /*Mailer function keys*/
  201.         {
  202.         char            cmd[61];                        /*Program to execute*/
  203.         char            title[26];               /*Title to appear on screen*/
  204.         unsigned char   behavior;     /*0x01-Pause, 0x02-Rescan, 0x04-NoSwap*/
  205.         }
  206.     key[24];                                          /*F1-F12, Shift F1-F12*/
  207.  
  208.     unsigned char       color[11];                        /*Header
  209.                                                             Highlight
  210.                                                             Clock
  211.                                                             Data entry
  212.                                                             Error
  213.                                                             Normal text
  214.                                                             Frame
  215.                                                             Window text
  216.                                                             Window frame
  217.                                                             Window select
  218.                                                             Window highlight*/
  219.  
  220.     unsigned char       keep_history; /*Days to keep entries in mail history*/
  221.  
  222.     char                slavepwd[21];    /*FDServer password, empty=inactive*/
  223.  
  224.     char                ineventfile[71];  /*Displayed to users when no users*/
  225.     char                mailonlyfile[71];/*Displayed to users when mail-only*/
  226.  
  227.     struct                                         /*External mail interface*/
  228.         {
  229.         char            wakeupstr[39];              /*String to trigger exit*/
  230.         unsigned char   flags;                       /*0x01=Leave FOSSIL hot*/
  231.         unsigned char   errorlevel;                /*Errorlevel to exit with*/
  232.         }
  233.     externmail[10];
  234.  
  235.     unsigned char       audio_begin_hour;   /*Start and end of audio allowed*/
  236.     unsigned char       audio_begin_minute;   /*If all four fields are zero,*/
  237.     unsigned char       audio_end_hour;    /*..audio is allowed at all times*/
  238.     unsigned char       audio_end_minute;
  239.  
  240.     unsigned short int  min_undial_cost;           /*Minimum undialable cost*/
  241.  
  242.     unsigned char       CDMASK;                    /*Carrier detect mask (C)*/
  243.  
  244.     unsigned short int  FOSSIL_OUTBS, FOSSIL_INBS;            /*!!Not used!!*/
  245.  
  246.     char                reqseclist[71];      /*List to scan for reqable dirs*/
  247.                                              /*...during SECURE sessions (C)*/
  248.  
  249.     unsigned char       bbs7200;                   /*Human caller   7200 BPS*/
  250.     unsigned char       bbs12000;                  /*Human caller  12000 BPS*/
  251.     unsigned char       bbs14400;                  /*Human caller  14400 BPS*/
  252.  
  253.     unsigned short int  SETcustomcrt_AX,        /*INT 10H register values to*/
  254.                         SETcustomcrt_BX,        /*set CUSTOM screen mode (C)*/
  255.                         SETcustomcrt_CX,
  256.                         SETcustomcrt_DX;
  257.  
  258.     unsigned short int  RESETcustomcrt_AX,      /*INT 10H register values to*/
  259.                         RESETcustomcrt_BX,    /*reset CUSTOM screen mode (C)*/
  260.                         RESETcustomcrt_CX,
  261.                         RESETcustomcrt_DX;
  262.  
  263.     char                reqsecalias[71];        /*Magic filenames for SECURE*/
  264.                                                               /*sessions (C)*/
  265.  
  266.     char                modemanswer[41];          /*Instruct modem to answer*/
  267.  
  268.     char                b7200msg[16];                         /*CONNECT 7200*/
  269.     char                b12000msg[16];                       /*CONNECT 12000*/
  270.     char                b14400msg[16];                       /*CONNECT 14400*/
  271.     char                b16800msg[16];                       /*CONNECT 16800*/
  272.     char                bfaxmsg[16];                           /*CONNECT FAX*/
  273.  
  274.     unsigned char       bbs16800;                  /*Human caller  16800 BPS*/
  275.     unsigned char       bbsfax;                        /*FAX call errorlevel*/
  276.  
  277.     char                InboundFaxPath[71];           /*Inbound fax path (C)*/
  278.  
  279.     char                FReqServer[71];       /*External file request server*/
  280.  
  281.     char                b57600msg[16];                       /*CONNECT 57600*/
  282.     char                b64000msg[16];                       /*CONNECT 64000*/
  283.     char                b115200msg[16];                     /*CONNECT 115200*/
  284.  
  285.     unsigned char       bbs57600;                  /*Human caller  57600 BPS*/
  286.     unsigned char       bbs64000;                  /*Human caller  64000 BPS*/
  287.     unsigned char       bbs115200;                 /*Human caller 115200 BPS*/
  288.  
  289.     char                ModemCustomMsg[16];     /*Custom CONNECT message (C)*/
  290.     long                ModemCustomBaud;      /*Actual baudrate of above (C)*/
  291.     unsigned char       bbsCustom;             /*Human caller Custom BPS (C)*/
  292.  
  293.     unsigned long       reqminbaud;      /*Minimum baudrate for file request*/
  294.  
  295.     char                MailExitSemaphore[71];   /*Touched/created when mail*/
  296.                                                      /*has been received (C)*/
  297.     char                FaxPrinter[71];         /*Program to invoke to print*/
  298.                                                         /*a received fax (C)*/
  299.     char                RESERVERAT[369];                          /*RESERVED*/
  300.     } 
  301.     _mailer;
  302.  
  303. /*
  304. **  Editor ------------------------------------------------------------------
  305. */
  306.  
  307.     /* Miscellaneous flags (FLAGS) */
  308.  
  309. #define EDITOR43LINES   0x00000001L                    /*Use 43/50-line mode*/
  310. #define SHOWHARDCRS     0x00000002L       /*Display paragraph (hard CR) char*/
  311. #define EDITORSWAP      0x00000004L        /*Swap to LIM/EMS/DISK when shell*/
  312. #define EDITOREMSOK     0x00000008L                  /*EMS OK for swap image*/
  313. #define EDITORAUTOLINES 0x00000010L      /*Use whatever screen mode is there*/
  314. #define HONOR_CFM       0x00000020L                              /*Honor CFM*/
  315. #define EDITORCUSTOMCRT 0x00000040L               /*User-defined screen size*/
  316. #define RKILL_NEVER_E   0x00000080L         /*Never ask "Delete Original?"-E*/
  317. #define RKILL_NEVER_L   0x00000100L         /*Never ask "Delete Original?"-L*/
  318. #define RKILL_NEVER_N   0x00000200L         /*Never ask "Delete Original?"-N*/
  319. #define USEZONEGATE_YES 0x00000400L             /*Always use zone gate if OK*/
  320. #define USEZONEGATE_NO  0x00000800L        /*Never use zone gate, even if OK*/
  321. #define NEWMSGSEM       0x00001000L   /*Semaphores when new msgs are created*/
  322. #define FAXAUTOVIEW     0x00002000L       /*View fax documents automatically*/
  323. #define FAXAUTOKILL     0x00004000L /*Remove fax document with cover message*/
  324.  
  325.     /* Netmail folder behavior */
  326.  
  327. #define RESTRICTED      0x00000001L                           /*See FOLDER.H*/
  328. #define EXPORTOK        0x00000004L
  329. #define USEXLATTABLES   0x00000008L
  330. #define EDREADONLY      0x00000020L
  331.  
  332. typedef struct
  333.     {
  334.     char                macrokey[24][61];             /*F1-F12, Shift F1-F12*/
  335.  
  336.     unsigned char       margin;                /*Wordwrap margin, default=60*/
  337.  
  338.     unsigned short int  msgbits;            /*Default NetMail message status*/
  339.  
  340.     long                flags;                                   /*See above*/
  341.  
  342.     char                origin[20][61];                       /*Origin lines*/
  343.  
  344.     unsigned char       color[15];                     /*Top line
  345.                                                          Status line
  346.                                                          Error
  347.                                                          Message text
  348.                                                          Quoted message text
  349.                                                          Reverse message text
  350.                                                          Hard <CR>s
  351.                                                          Message header
  352.                                                          Message header data
  353.                                                          Header data highlight
  354.                                                          Input fields
  355.                                                          Window frame
  356.                                                          Window text
  357.                                                          Window select
  358.                                                          Window highlight*/
  359.  
  360.     long                netfolderflags;               /*NetMail folder flags*/
  361.  
  362.     unsigned char       translate_in[256];     /*Translation table (reading)*/
  363.     unsigned char       translate_out[256];    /*Translation table (writing)*/
  364.  
  365.     char                qbase[71];       /*Path to Hudson Message Base (HMB)*/
  366.  
  367.     unsigned short int  SETcustomcrt_AX,        /*INT 10H register values to*/
  368.                         SETcustomcrt_BX,        /*set CUSTOM screen mode (C)*/
  369.                         SETcustomcrt_CX,
  370.                         SETcustomcrt_DX;
  371.  
  372.     unsigned short int  RESETcustomcrt_AX,      /*INT 10H register values to*/
  373.                         RESETcustomcrt_BX,    /*reset CUSTOM screen mode (C)*/
  374.                         RESETcustomcrt_CX,
  375.                         RESETcustomcrt_DX;
  376.  
  377.     char                FaxViewer[71];    /*Program invoked by <Ctrl-F3> (C)*/
  378.  
  379.     char                RESERVERAT[937];                          /*RESERVED*/
  380.     } 
  381.     _editor;
  382.  
  383. /*
  384. **  Shared data -------------------------------------------------------------
  385. */
  386.  
  387.     /* Miscellaneous flags (FLAGS) */
  388.  
  389. #define FASTKEY         0x00000001L               /*Set/reset typematic rate*/
  390. #define FLICKER         0x00000002L        /*Prevent flicker on CGA monitors*/
  391. #define BLACKOUT        0x00000004L                  /*Screen blanker active*/
  392. #define HAVEEXTKBD      0x00000008L    /*Use extended INT 16H keyboard calls*/
  393. #define FORCE24HOUR     0x00000010L              /*Force 24-hour time format*/
  394. #define MONOMODE        0x00000020L            /*Monochrome mode for FDSETUP*/
  395.  
  396.     /* User flags */
  397.  
  398. #define SUPERUSER       0x00000001L
  399. #define ADMINUSER       0x00000002L
  400. #define USER            0x00000004L
  401. #define BYPASSRO        0x00010000L           /*Bypass Read-only restriction*/
  402. #define BYPASSEXP       0x00020000L              /*Bypass Export restriction*/
  403.  
  404.     /* Protection flags */
  405.  
  406. #define PROTECT_MEXIT   0x00000001L               /*Mailer Protect Alt-Q (C)*/
  407. #define PROTECT_MSHELL  0x00000002L               /*Mailer Protect Alt-Z (C)*/
  408. #define PROTECT_MKEYS   0x00000004L       /*Mailer Protect function keys (C)*/
  409. #define PROTECT_MFREQ   0x00000008L       /*Mailer Protect file requests (C)*/
  410. #define PROTECT_MXMIT   0x00000010L            /*Mailer Protect transmit (C)*/
  411. #define PROTECT_MSEND   0x00000020L           /*Mailer Protect send mail (C)*/
  412. #define PROTECT_MPOLL   0x00000040L                /*Mailer Protect poll (C)*/
  413. #define PROTECT_MNCOMP  0x00000080L                /*Mailer Protect FDNC (C)*/
  414. #define PROTECT_MQUEUE  0x00000100L          /*Mailer Protect mail queue (C)*/
  415. #define PROTECT_MPRN    0x00000200L      /*Mailer Protect printer toggle (C)*/
  416.  
  417.     /* FTN-Domain structure */
  418.  
  419. typedef struct
  420.     {
  421.     unsigned short int  zone,                             /* Zone for domain*/
  422.                         RESERVED;
  423.     char                name[28];                           /*Name of domain*/
  424.     }
  425.     _DOMAIN;
  426.  
  427.     /* AKA matching structure */
  428.  
  429. typedef struct
  430.     {
  431.     unsigned short int  zone,                                /*Zone to match*/
  432.                         net,                                  /*Net to match*/
  433.                         akanum;                  /*AKA to use, 0=Primary AKA*/
  434.     }
  435.     _ZMATCH;
  436.  
  437. typedef struct
  438.     {
  439.     char                systempath[71];                        /*SYSTEM path*/
  440.     char                mailpath[71];                /*System NetMail folder*/
  441.     char                swap_path[71];                 /*Path for swap files*/
  442.     char                rescanpath[71];                /*Semaphore files (C)*/
  443.     char                infilesecpath[71];    /*Rcvd files, SECURE sessions*/
  444.     char                infilepath[71];                         /*Rcvd files*/
  445.     char                packetpath[71];       /*Path for outbound .PKT files*/
  446.     char                nodelistpath[71];       /*Path for nodelist database*/
  447.  
  448.     unsigned short int  countrycode;  /*Country code for tel.no. translation*/
  449.  
  450.     struct                                /*One primary address and ten AKAs*/
  451.         {
  452.         unsigned short int
  453.                         zone,
  454.                         net,
  455.                         node,
  456.                         point;
  457.         }
  458.     aka[11];
  459.  
  460.     long                flags;                                   /*See above*/
  461.  
  462.     unsigned char       blackout_time;     /*Screen blanker timer in seconds*/
  463.  
  464.     /* --- User record */
  465.  
  466.     struct                                                           /*Users*/
  467.         {
  468.         char            name[37];                                 /*Username*/
  469.         long            pwdcrc;        /*CRC-32 of user password, -1L No pwd*/
  470.         unsigned long   flags;                       /*User flags, see above*/
  471.         }
  472.     user[10];
  473.  
  474.     unsigned long       exitpwdcrc;/*Password for DOS shell, exits, etc. (C)*/
  475.     unsigned long       exitflags;     /*Which flags should be protected (C)*/
  476.  
  477.     _ZMATCH             zmatch[20];                     /*AKA matching table*/
  478.  
  479.     _DOMAIN             domain[20];                       /*FTN domain table*/
  480.  
  481.     struct                                                /*Site information*/
  482.         {                       
  483.         char            name[50],                           /*Name of system*/
  484.                         location[40],                   /*Location of system*/
  485.                         phone[26];         /*Phone number or '-Unpublished-'*/
  486.         unsigned long   baud;                       /*Baud rate (300-115200)*/
  487.         char            flags[50];              /*Capability flags of system*/
  488.         }
  489.     siteinfo;
  490.  
  491.     short int           FaxRecipient;          /*Fax recipient (0-based) (C)*/
  492.  
  493.     char                RESERVED[84];                             /*RESERVED*/
  494.     } 
  495.     _shared;
  496.  
  497. /*
  498. **    Terminal ----------------------------------------------------------------
  499. */
  500.  
  501.     /* Miscellaneous flags (FLAGS) */
  502.  
  503. #define CONNECT_NOISE   0x00000001L                  /*Make noise on connect*/
  504. #define TRANSFER_NOISE  0x00000002L              /*Make noise after transfer*/
  505. #define USE_TRANSLATE   0x00000004L                 /*Use translation tables*/
  506. #define USE_43LINES     0x00000008L                    /*Use 43/50-line mode*/
  507. #define AUTOZMODEM      0x00000010L            /*Allow auto-Zmodem downloads*/
  508. #define NOWRAPAROUND    0x00000020L             /*Disable automatic wrapping*/
  509. #define LOCALECHO       0x00000040L                /*Echo local input to CRT*/
  510. #define NOAVATAR        0x00000080L              /*Disable AVATAR/0+ support*/
  511. #define USE_AUTOLINES   0x00000100L     /*Use whatever screen mode is active*/
  512. #define NOCLRONFF       0x00000200L       /*Don't clear screen on form feeds*/
  513. #define IEMSIACTIVE     0x00000400L               /*Interactive EMSI Support*/
  514. #define TERMCUSTOMCRT   0x00000800L           /*User-defined screen size (C)*/
  515. #define TERMLOG         0x00001000L                /*Logging in Terminal (C)*/
  516.  
  517. typedef struct
  518.     {
  519.     char                initstring[41];               /*Modem initialization*/
  520.  
  521.     unsigned short int  scrollsize;  /*Maximum memory (kb) for scroll buffer*/
  522.  
  523.     unsigned char       emulation;          /*0=TTY, 1=ANSI, 2=VT52, 3=VT100*/
  524.  
  525.     unsigned char       protocol;           /*Default file transfer protocol*/
  526.  
  527.     char                shiftkey[12][31];                     /*Shift F1-F12*/
  528.     char                ctrlkey[12][31];                       /*Ctrl F1-F12*/
  529.  
  530.     char                downloadpath[60];            /*Default download path*/
  531.     char                uploadpath[60];                /*Default upload path*/
  532.  
  533.     unsigned char       translate_in[256];       /*Inbound translation table*/
  534.     unsigned char       translate_out[256];     /*Outbound translation table*/
  535.  
  536.     unsigned char       retrywait;        /*Seconds to wait before next dial*/
  537.  
  538.     unsigned long       flags;                                   /*See above*/
  539.  
  540.     unsigned long       directorypwd;/*CRC-32 of password to enter phone dir*/
  541.  
  542.     char                editor[60];           /*Program to invoke on <Alt-I>*/
  543.  
  544.     char                profile[94];       /*Default profile, see TERMINAL.H*/
  545.  
  546.     unsigned short int  SETcustomcrt_AX,        /*INT 10H register values to*/
  547.                         SETcustomcrt_BX,        /*set CUSTOM screen mode (C)*/
  548.                         SETcustomcrt_CX,
  549.                         SETcustomcrt_DX;
  550.  
  551.     unsigned short int  RESETcustomcrt_AX,      /*INT 10H register values to*/
  552.                         RESETcustomcrt_BX,    /*reset CUSTOM screen mode (C)*/
  553.                         RESETcustomcrt_CX,
  554.                         RESETcustomcrt_DX;
  555.  
  556.     char                RESERVERAT[854];                          /*RESERVED*/
  557.     } 
  558.     _terminal;
  559.  
  560. /*
  561. **    Printer (C) -------------------------------------------------------------
  562. */
  563.  
  564.     /* Miscellaneous flags (BEHAVIOR) */
  565.  
  566. #define PAGE_FORMAT     0x00000001L
  567. #define PAGE_FFEED      0x00000002L
  568. #define EJECT           0x00000004L
  569. #define MANUAL_PAPER    0x00000008L
  570. #define HIDE_KLUDGE     0x00000010L
  571. #define CONTINOUS       0x00000020L
  572.  
  573. typedef struct
  574.     {
  575.     char                port;       /*0=LPT1, 1=LPT2, 2=LPT3, 3=COM1, 4=COM2*/
  576.     char                baud;               /*0=9600, 1=4800, 2=2400, 3=1200*/
  577.     unsigned char       stopbits;                                 /*0=1, 1=2*/
  578.     unsigned char       wordlength;                               /*0=7, 1=8*/
  579.     unsigned char       parity;                      /*0=Even, 1=Odd, 2=None*/
  580.     unsigned char       pagelen;               /*Number of lines on one page*/
  581.     long                behavior;                                /*See above*/
  582.     char                init[71];                           /*Initialization*/
  583.     char                reset[71];                        /*Deinitialization*/
  584.     char                bold_on[31];
  585.     char                bold_off[31];
  586.     char                under_on[31];
  587.     char                under_off[31];
  588.     char                italic_on[31];
  589.     char                italic_off[31];
  590.     unsigned char       pagewidth;              /*Width in columns of a page*/
  591.     unsigned char       leftmargin;                            /*Left margin*/
  592.     unsigned char       footer;          /*Footer margin, ie. leave nn lines*/
  593.     unsigned char       header;           /*Header margin, ie. skip nn lines*/
  594.     unsigned char       translate_out[256];              /*Translation table*/
  595.     char                RESERVED[100];                            /*RESERVED*/
  596.     } 
  597.     _printer;
  598.  
  599.  
  600. /*
  601. **    SETUP.FD ----------------------------------------------------------------
  602. **
  603. ** Don't use ANY of the data in the file if the CRC values are NOT correct.
  604. **
  605. ** Check the fingerprint[] field before assuming 1.99b and higher. Your
  606. ** software should also check the sysrev field to make sure it's compatible
  607. ** with the data listed in SETUP.FD
  608. */
  609.  
  610.     /* Current system file revision level */
  611.  
  612. #define FD_THISREV      0x0100
  613.  
  614. struct _ctl
  615.     {
  616.     char                fingerprint[5];           /*Must contain "JoHo<NUL>"*/
  617.     unsigned short int  sysrev;                 /*Must contain THISREV above*/
  618.     unsigned long       ctlcrc;      /*CRC-32 of _ctl excluding 1st 11 bytes*/
  619.     _mailer             m;
  620.     _editor             e;
  621.     _shared             s;
  622.     _terminal           t;
  623.     _printer            p;
  624.     unsigned long       ctlcrc2;                   /*CRC-32 of all the above*/
  625.     };
  626.  
  627. #ifdef __cplusplus
  628. }
  629. #endif
  630. #endif
  631.  
  632. /* end of file "ctl.h" */
  633.