home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 151 / IMDEV.ZIP / I / CTL.H next >
Text File  |  1993-04-28  |  20KB  |  518 lines

  1. /*
  2. **      ctl.h (InterMail)
  3. **
  4. **      Copyright 1988-1993 Peter Stewart & InterZone Software, Inc.
  5. **      All rights reserved. The information may be freely used by
  6. **      authors of InterMail utilities.
  7. **
  8. **      FD.SYS definitions for InterMail 2.2x
  9. **
  10. */
  11.  
  12. /* Mailer --------------------------------------------------- */
  13.  
  14. /* --- Loglevels */
  15.  
  16. #define LOGFATAL        0x0001       /* !  Fatal errors                  */
  17. #define LOGERROR        0x0002       /* ?  Errors                        */
  18. #define LOGBRIEF        0x0004       /* +  Major changes in action       */
  19. #define LOGACCT         0x0008       /* $  Accounting information        */
  20. #define LOGXFER         0x0010       /* *  Sent/Received files           */
  21. #define LOGTRIVIAL      0x0020       /* -  Minor changes in action       */
  22. #define LOGEFF          0x0040       /* %  Transfer efficiencies         */
  23. #define LOGMODEM        0x0080       /* =  Modem activities / resp.      */
  24. #define LOGROUTING      0x0100       /* :  Routing of messages etc.      */
  25. #define LOGSESSION      0x0200       /* ~  Session info, SysOp, etc.     */
  26. #define LOGDEBUG        0x8000       /*    All loglevels enabled         */
  27.  
  28. /* --- Miscellaneous MAILER flags */
  29.  
  30. #define NOUNLISTED      0x00000001L  /* Don't allow unlisted systems     */
  31. #define CREATE_BATCH    0x00000002L  /* Create batchfile when BBS caller */
  32. #define TERMONLY        0x00000004L  /* Running as Terminal-Only         */
  33. #define DTR_HANGUP      0x00000008L  /* Use DTR to hangup                */
  34. #define DTR_DIAL        0x00000010L  /* Toggle DTR prior to dialing      */
  35. #define DTR_BUSY        0x00000020L  /* Use DTR to signal BUSY           */
  36. #define MANUAL_ANSWER   0x00000040L  /* Use manual answer                */
  37. #define CONNECT_RESET   0x00000080L  /* Reset modem to connect speed     */
  38. #define MODEM_FIXED     0x00000100L  /* Use constant speed against modem */
  39. #define NOMAIL_NOPWD    0x00000200L  /* No mail from unsecured systems   */
  40. #define DELAYFIRST      0x00000400L  /* Delay before first call          */
  41. #define CLOCK           0x00000800L  /* Display clock                    */
  42. #define KILLNULL        0x00001000L  /* Remove messages with no text     */
  43. #define MAILONLY        0x00002000L  /* Don't allow human callers        */
  44. #define LIMITED_ANSWER  0x00004000L  /* Limited hours to answer          */
  45. #define EXIT_NETMAIL    0x00008000L  /* Exit when netmail received       */
  46. #define ZONE_ADAPTION   0x00010000L  /* Adopt called/calling zone        */
  47. #define PRINTNEWMSGS    0x00020000L  /* Print received messages          */
  48. #define NOUNKNOWNPOINTS 0x00040000L  /* Don't accept unlisted points     */
  49. #define FORCEDCARRIER   0x00080000L  /* Carrier is forced. Ring required */
  50. #define NULLMODEM       0x00100000L  /* Initiate session when CD high    */
  51. #define MAILER43LINES   0x00200000L  /* Use 43/50 line mode in mailer    */
  52. #define SWAPTOEMSDISK   0x00400000L  /* Swap file to LIM/EMS/DISK w/shell*/
  53. #define MAILEREMSOK     0x00800000L  /* If EMS can be used for swapping  */
  54. #define PRESENTAKAS     0x01000000L  /* Present AKAs during EMSI sessions*/
  55. #define NOBLINKMAIL     0x02000000L  /* Don't flash the waiting mail sign*/
  56. #define EXITONANYFILE   0x04000000L  /* Exit after ANY data has been rcvd*/
  57.  
  58. /* --- Audio flags */
  59.  
  60. #define CLOCKNOISE      0x0001       /* Tic-tac-tic-tac-tic-tac          */
  61. #define INMAILNOISE     0x0002       /* Unpacked any mail                */
  62. #define INCRASHNOISE    0x0004       /* Unpacked crash or immediate mail */
  63. #define INCONNECTNOISE  0x0008       /* Incoming MAIL call (connect)     */
  64. #define INCALLERNOISE   0x0010       /* Incoming human caller passed >BBS*/
  65. #define MAILWAITING     0x0020       /* Mail is waiting                  */
  66. #define OUTMAILNOISE    0x0040       /* Sent mail (after session)        */
  67. #define OUTCONNECTNOISE 0x0080       /* Outgoing MAIL call (connect)     */
  68. #define ERRORNOISE      0x0100       /* S.O.S.                           */
  69.  
  70.  
  71. /* --- Request types */
  72.  
  73. #define REQALL          0x01         /* Anybody can request              */
  74. #define REQNONE         0x02         /* No one can request               */
  75. #define REQLISTED       0x04         /* Only listed systems and their pts*/
  76. #define REQLIMITED      0x08         /* Limited hours                    */
  77.  
  78.  
  79. typedef struct
  80.  {
  81.    /* The logfile */
  82.  
  83.    char     log[71];        /* NO LONGER USED! Moved to MAILER.0## */
  84.    word     loglevel;       /* See --- Loglevels */
  85.  
  86.    /* Phone number manipulation */
  87.  
  88.    char     prefix[31];              /* Always added */
  89.    char     hidden[10][31];          /* Strip these if they are in # */
  90.    char     postfix[31];             /* Always appended */
  91.  
  92.    /* Miscellaneous flags */
  93.  
  94.    long     flags;                   /* See --- Miscellaneous flags */
  95.    long     flags_reserved;          /* Reserved flags              */
  96.    word     audio;                   /* See --- Audio flags         */
  97.    byte     synchtimer;              /* Number of seconds for sync  */
  98.  
  99.    /* Errorlevels */
  100.  
  101.    byte     crashexit;           /* Mail exit */
  102.    byte     bbs300;              /* NO LONGER USED - now in MODEM.### */
  103.    byte     bbs1200;             /* NO LONGER USED - now in MODEM.### */
  104.    byte     bbs1275;             /* NO LONGER USED - now in MODEM.### */
  105.    byte     bbs2400;             /* NO LONGER USED - now in MODEM.### */
  106.    byte     bbs4800;             /* NO LONGER USED - now in MODEM.### */
  107.    byte     bbs9600;             /* NO LONGER USED - now in MODEM.### */
  108.    byte     bbs19200;            /* NO LONGER USED - now in MODEM.### */
  109.    byte     bbs38400;            /* NO LONGER USED - now in MODEM.### */
  110.  
  111.    /* Modem */
  112.                                 /* NO LONGER USED - now in MODEM.### */
  113.    word     modembaud;          /* 30=300, 24=2400, etc.             */
  114.    byte     modemport;          /* 1-255 (COM1=1, COM2=2, etc.)      */
  115.    byte     modemdelay;         /* 1/10 seconds delay / line sent    */
  116.  
  117.    /* --- Messages */
  118.  
  119.    char     b300msg[16];        /* NO LONGER USED - now in MODEM.### */
  120.    char     b1200msg[16];       /* NO LONGER USED - now in MODEM.### */
  121.    char     b1275msg[16];       /* NO LONGER USED - now in MODEM.### */
  122.    char     b2400msg[16];       /* NO LONGER USED - now in MODEM.### */
  123.    char     b4800msg[16];       /* NO LONGER USED - now in MODEM.### */
  124.    char     b9600msg[16];       /* NO LONGER USED - now in MODEM.### */
  125.    char     b19200msg[16];      /* NO LONGER USED - now in MODEM.### */
  126.    char     b38400msg[16];      /* NO LONGER USED - now in MODEM.### */
  127.    char     errormsg[16];       /* NO LONGER USED - now in MODEM.### */
  128.    char     busymsg[16];        /* NO LONGER USED - now in MODEM.### */
  129.    char     carriermsg[16];     /* NO LONGER USED - now in MODEM.### */
  130.    char     okmsg[16];          /* NO LONGER USED - now in MODEM.### */
  131.    char     ringmsg[16];        /* NO LONGER USED - now in MODEM.### */
  132.    char     nodialmsg[16];      /* NO LONGER USED - now in MODEM.### */
  133.    char     noanswmsg[16];      /* NO LONGER USED - now in MODEM.### */
  134.    char     voicemsg[16];       /* NO LONGER USED - now in MODEM.### */
  135.  
  136.    /* --- Commands */
  137.  
  138.    char     escapestr[11];      /* NO LONGER USED - now in MODEM.### */
  139.    char     offhookstr[11];     /* NO LONGER USED - now in MODEM.### */
  140.    char     reconnectstr[11];   /* NO LONGER USED - now in MODEM.### */
  141.    char     init1[50];          /* NO LONGER USED - now in MODEM.### */
  142.    char     init2[50];          /* NO LONGER USED - now in MODEM.### */
  143.    char     init3[50];          /* NO LONGER USED - now in MODEM.### */
  144.    char     resetstr[50];       /* NO LONGER USED - now in MODEM.### */
  145.    char     downstr[50];        /* NO LONGER USED - now in MODEM.### */
  146.    char     hangupstr[11];      /* NO LONGER USED - now in MODEM.### */
  147.    char     dialstr[11];        /* NO LONGER USED - now in MODEM.### */
  148.  
  149.    /* --- Manual answer stuff */
  150.  
  151.    char     modemanswer[11];    /* NO LONGER USED - now in MODEM.### */
  152.    byte     answerdelay;        /* NO LONGER USED - now in MODEM.### */
  153.  
  154.    /* ------ Limited answer start and end times */
  155.  
  156.    byte     begin_hour;
  157.    byte     begin_minute;
  158.    byte     end_hour;
  159.    byte     end_minute;
  160.  
  161.    /* Calling control */
  162.  
  163.    byte     retrybusy;
  164.    byte     retryresend;
  165.    byte     retrydelay;
  166.  
  167.    /* File request control */
  168.  
  169.    char     reqlist[71];             /* List to scan for reqable dirs    */
  170.    char     reqalias[71];            /* Magic filenames                  */
  171.    char     reqmessage[71];          /* Appended to FAILED REQUEST message */
  172.    byte     reqtype;                 /* Bit field                        */
  173.    byte     reqmaxfiles;             /* Max number of files to send on 1 req*/
  174.    word     reqmaxtime;              /* Maximum number of minutes for req*/
  175.    word     reqmaxsize;              /* Maximum size (in KB) for req     */
  176.    word     reqminbaud;              /* Minimum baudrate for req         */
  177.    byte     reqstarthr;              /* Start time for file requests, can be*/
  178.    byte     reqstartmin;             /* combined with the reqdays field. */
  179.    byte     reqendhr;
  180.    byte     reqendmin;
  181.    byte     reqdays;                 /* 7 6 5 4 3 2 1    0x80==All days
  182.                     - - - - - - -
  183.                     │ │ │ │ │ │ │
  184.                     │ │ │ │ │ │ └─── Saturday
  185.                     │ │ │ │ │ └───── Friday
  186.                     │ │ │ │ └─────── Thursday
  187.                     │ │ │ └───────── Wednesday
  188.                     │ │ └─────────── Tuesday
  189.                     │ └───────────── Monday
  190.                     └─────────────── Sunday          */
  191.  
  192.    /* File to send when human callers are let thru */
  193.  
  194.    char     bbsname[11];
  195.    char     beforebbsbanner[71];
  196.  
  197.    /* Function keys from mailer menu */
  198.    /* --- F1-F12, Shift F1-F12       */
  199.  
  200.    struct
  201.      {
  202.       char     cmd[61];
  203.       char     title[26];
  204.       byte     behavior;             /* 1-Pause, 2-Process msg base */
  205.     }
  206.     key[24];
  207.  
  208.    /* Mailer colors
  209.  
  210.    header
  211.    highlight
  212.    clock
  213.    data_entry
  214.    error
  215.    normal_text
  216.    frame
  217.    window_text
  218.    window_frame
  219.    window_select
  220.    window_highlight */
  221.  
  222.    byte     color[11];
  223.  
  224.    /* Number of days to keep entries in history files */
  225.  
  226.    byte     keep_history;
  227.  
  228.    /* IMServer password, if none given, server is INactive */
  229.  
  230.    char     slavepwd[21];
  231.  
  232.    /* File displayed to users when system is in event for no callers */
  233.  
  234.    char     ineventfile[71];
  235.  
  236.    /* File displayed when human callers are seen on mail-only system */
  237.  
  238.    char     mailonlyfile[71];
  239.  
  240.    /* External programs to run on certain "wake-up" strings */
  241.  
  242.    struct
  243.     {
  244.       char     wakeupstr[40];
  245.       byte     errorlevel;
  246.     }
  247.     externmail[10];
  248.  
  249.    /* RESERVED FIELD */
  250.  
  251.    /* --- Limited audio start and end times. If the below four bytes
  252.       are all zero (0), audio is enabled all the time */
  253.  
  254.    byte     audio_begin_hour;
  255.    byte     audio_begin_minute;
  256.    byte     audio_end_hour;
  257.    byte     audio_end_minute;
  258.  
  259.    /* ---       Minimum cost to process undialable */
  260.  
  261.    word     min_undial_cost;
  262.  
  263.    char     RESERVED[957];
  264.    char     modem_name[61];            /* modem name, for 'modem selection' */
  265.  }
  266.  _mailer;
  267.  
  268.  
  269. /* Editor ----------------------------------------------------------------- */
  270.  
  271. #define EDITOR43LINES   0x00000001L
  272. #define SHOWHARDCRS     0x00000002L
  273. #define EDITORSWAP      0x00000004L  /* Swap file to LIM/EMS/DISK w/shell*/
  274. #define EDITOREMSOK     0x00000008L  /* Whether or not EMS should be used*/
  275.  
  276. /* Netmail folder behavior */
  277.  
  278. #define RESTRICTED      0x00000001L
  279. #define EXPORTOK        0x00000004L
  280. #define USEXLATTABLES   0x00000008L
  281. #define EDREADONLY      0x00000020L
  282.  
  283. typedef struct
  284.  {
  285.    /* Macro keys */
  286.  
  287.    char     macrokey[24][61];        /* F1-F12, Shift F1-F12 */
  288.  
  289.    /* Margin, default==60 */
  290.  
  291.    byte     margin;
  292.  
  293.    /* Default message status */
  294.  
  295.    word     msgbits;
  296.  
  297.    /* Miscellaneous settings */
  298.  
  299.    long     flags;
  300.  
  301.    /* Origin lines */
  302.  
  303.    char     origin[20][61];
  304.  
  305.    /* Editor colors
  306.       top_line
  307.       status_line
  308.       error
  309.       text
  310.       text_quotes
  311.       text_reverse
  312.       text_hardCRs
  313.       header
  314.       header_data
  315.       header_data_highlight
  316.       data_entry
  317.       window_frame
  318.       window_text
  319.       window_select
  320.       window_highlight  */
  321.  
  322.    byte     color[15];
  323.  
  324.    /* Netmail folder flags */
  325.  
  326.    long     netfolderflags;
  327.  
  328.    /* Translation tables IN/OUT */
  329.  
  330.    byte     translate_in[256];
  331.    byte     translate_out[256];
  332.  
  333.    /* Location of Hudson format message base files */
  334.  
  335.    char     qbase[71];
  336.  
  337.    /* RESERVED */
  338.  
  339.    char     RESERVED[1024];
  340.  }
  341.  _editor;
  342.  
  343.  
  344. /* Shared data ----------------------------------------------------------- */
  345.  
  346. #define FASTKEY      0x00000001L
  347. #define FLICKER      0x00000002L
  348. #define BLACKOUT     0x00000004L
  349. #define HAVEEXTKBD   0x00000008L    /* Use extended INT 16H calls */
  350. #define FORCE24HOUR  0x00000010L    /* Force 24-hour time format */
  351.  
  352. #define SUPERUSER    0x00000001L    /* User flags */
  353. #define ADMINUSER    0x00000002L
  354. #define USER         0x00000004L
  355. #define BYPASSRO     0x00010000L
  356. #define BYPASSEXP    0x00020000L
  357.  
  358. #define PROTECT_MEXIT   0x00000001L    /* Protect Alt-Q          Mailer */
  359. #define PROTECT_MSHELL  0x00000002L    /* Protect Alt-Z          Mailer */
  360. #define PROTECT_MKEYS   0x00000004L    /* Protect function keys  Mailer */
  361. #define PROTECT_MFREQ   0x00000008L    /* Protect file requests  Mailer */
  362. #define PROTECT_MXMIT   0x00000010L    /* Protect transmit       Mailer */
  363. #define PROTECT_MSEND   0x00000020L    /* Protect send mail      Mailer */
  364. #define PROTECT_MPOLL   0x00000040L    /* Protect poll           Mailer */
  365. #define PROTECT_MNCOMP  0x00000080L    /* Protect IMNC           Mailer */
  366. #define PROTECT_MQUEUE  0x00000100L    /* Protect mail queue     Mailer */
  367. #define PROTECT_MPRN    0x00000200L    /* Protect printer toggle Mailer */
  368.  
  369.  
  370. typedef struct
  371.  {
  372.    char     systempath[71];     /* System directory                       */
  373.    char     mailpath[71];       /* Netmail folder                         */
  374.    char     swap_path[71];      /* Path for swapping to disk              */
  375.    char     semaphore[71];      /* Semaphore directory                    */
  376.    char     secfilespath[71];   /* Files from password protected sessions */
  377.    char     infilepath[71];     /* Files from unprotected sessions        */
  378.    char     packetpath[71];     /* NO LONGER USED - moved to MAILER.###   */
  379.    char     nodelistpath[71];   /* Nodelist files                         */
  380.  
  381.    word     countrycode;
  382.  
  383.    struct          /* NO LONGER USED, but still maintained by IMSetup */
  384.      {
  385.       word     zone;
  386.       word     net;
  387.       word     node;
  388.       word     point;
  389.     }
  390.     aka[11];
  391.  
  392.    /* Timeout value for screen blanker in SECONDS (0-255) */
  393.  
  394.    long     flags;
  395.    byte     blackout_time;
  396.  
  397.    /* User record */
  398.  
  399.    struct
  400.     {
  401.       char     name[37];
  402.       long     pwdcrc;           /* Crc-32 of user password, -1L=No pwd */
  403.       dword    flags;
  404.     }
  405.     user[10];
  406.  
  407.    /* Protection of exits */
  408.  
  409.    dword    exitpwdcrc;          /* Password for DOS shell, exits, etc. */
  410.    dword    exitflags;           /* Which exits should be protected     */
  411.    char     filler[760];         /* contains domain stuff               */
  412.    char     systemname[50];      /* site_info - system name             */
  413.    char     systemloc[40];       /* site_info - location                */
  414.    char     systemphone[24];     /* site_info - phone                   */
  415.    char     fill[6];             /* 6 loose bytes :)                    */
  416.    char     systemflags[20];     /* site_info - nodelist flags          */
  417.    char     systemcountry[26];   /* site_info - country                 */
  418.    char     serial[14];          /* serial number                       */
  419.    char     reserved[76];        /* reserved space                      */
  420.  }
  421.  _shared;
  422.  
  423.  
  424. /* Terminal --------------------------------------------------------------- */
  425.  
  426. #define CONNECT_NOISE   0x00000001L
  427. #define TRANSFER_NOISE  0x00000002L
  428. #define USE_TRANSLATE   0x00000004L
  429. #define USE_43LINES     0x00000008L
  430. #define AUTOZMODEM      0x00000010L
  431. #define NOWRAPAROUND    0x00000020L
  432. #define LOCALECHO       0x00000040L
  433. #define NOAVATAR        0x00000080L
  434.  
  435.  
  436. typedef struct
  437.  {
  438.    char     initstring[41];      /* Init string                         */
  439.    word     scrollsize;          /* Max memory to use for buffer (in K) */
  440.    byte     emulation;           /* 0=TTY, 1=ANSI, 2=VT52, 3=VT100      */
  441.    byte     protocol;            /* Index in protocol list              */
  442.    char     shiftkey[12][31];    /* Shift F1-F12 macro settings         */
  443.    char     ctrlkey[12][31];     /* Ctrl  F1-F12 macro settings         */
  444.    char     downloadpath[60];    /* Default download path               */
  445.    char     uploadpath[60];      /* Default upload path                 */
  446.    byte     translate_in[256];   /* Translation table - modem->screen   */
  447.    byte     translate_out[256];  /* Translation table - screen->modem   */
  448.    byte     retrywait;           /* Seconds to wait before next dial..  */
  449.    dword    flags;               /* Behavior, sounds, flashes.. etc.    */
  450.    dword    directorypwd;        /* CRC-32 of password to enter phoneDir*/
  451.    char     editor[60];          /* Invoked with Alt-I                  */
  452.    char     RESERVED[796];       /* Reserved space                      */
  453.    struct
  454.      {
  455.     word     zone;                    /* NEW LOCATION OF AKA LIST! */
  456.     word     net;
  457.     word     node;
  458.     word     point;
  459.       }
  460.       newaka[21];
  461.  }
  462.  _terminal;
  463. /* Printer ---------------------------------------------------------------- */
  464.  
  465. #define PAGE_FORMAT   0x00000001L
  466. #define PAGE_FFEED    0x00000002L
  467. #define EJECT         0x00000004L
  468. #define MANUAL_PAPER  0x00000008L
  469. #define HIDE_KLUDGE   0x00000010L
  470. #define CONTINOUS     0x00000020L
  471.  
  472. typedef struct
  473.  {
  474.    char     port;       /* 0 LPT1, 1 LPT2, 2 LPT3, 3 COM1, 4 COM2 */
  475.    char     baud;       /* 0 9600, 1 4800, 2 2400, 3 1200 */
  476.    byte     stopbits;   /* 0x00 - 1, 0x01 - 2 */
  477.    byte     wordlength; /* 0x00 - 7, 0x01 - 8 */
  478.    byte     parity;     /* 0x00 - Even, 0x01 - Odd, 0x02 - None */
  479.    byte     pagelen;
  480.    long     behavior;
  481.    char     init[71];
  482.    char     reset[71];
  483.    char     bold_on[31];
  484.    char     bold_off[31];
  485.    char     pr1RESERVED[62];
  486.    char     italic_on[31];
  487.    char     italic_off[31];
  488.    byte     pagewidth;           /* Width in columns of a page */
  489.    byte     leftmargin;          /* Left margin, ie. start printing at column*/
  490.    byte     footer;              /* Footer margin, ie. leave nn lines */
  491.    byte     header;              /* Header margin, ie. skip nn lines */
  492.    byte     translate_out[256];  /* Translation table - disk->printer */
  493.    char     pr2RESERVED[100];
  494.  }
  495.  _printer;
  496.  
  497.  
  498. /* Global control file ------------------------------------------------**
  499. **
  500. *************************************************************************/
  501. #define IM_THISREV 0x0100
  502.  
  503. struct _ctl
  504.  {
  505.    char      fingerprint[5]; /* Must contain "JoHo" for compatibility */
  506.                              /* with TosScan                          */
  507.    word      sysrev;         /* Must contain THISREV above            */
  508.    dword     ctlcrc;         /* CRC-32 of struct excluding the 1st 11 bytes */
  509.    _mailer   m;
  510.    _editor   e;
  511.    _shared   s;
  512.    _terminal t;
  513.    _printer  p;
  514.    dword     ctlcrc2;        /* CRC-32 of all the above */
  515.  };
  516.  
  517. /* end of file "ctl.h" */
  518.