home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / RA-CDK03.ZIP / RA250C.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-29  |  24.4 KB  |  849 lines

  1. /* File:    RA250.H     'C' structures for RemoteAccess 2.50 Gamma
  2.     Version:        0.3    (22/04/96)
  3.     Author:        Damien Guard
  4.     Copyright:  Envy Technologies, 1996.
  5.     Changes:        0.1 - Initial release
  6.                     0.2 - Fixed some compile problems
  7.                             Sorted enumeration types
  8.                     0.3 - Added some examples
  9.                             All new documentation (+Write format)
  10.                             CRC routines
  11.     Notes:        These are neither official structures nor authorised by
  12.                     Wantree Development.
  13.                     Always make sure "Allocate enums as int's" is OFF!
  14.                       They should be allocated as CHAR.
  15.                     This document formatted with tab's as three(3) characters
  16.     WARNING:        These structures have not been fully tested.
  17.                     I have only tested CONFIG.RA (CONFIGrecord) extensively.
  18.     Info:            Please e-mail suggestions to : envy@guernsey.net
  19.                     Latest version available at  : http://www.guernsey.net/~envy
  20.  
  21.     If you use this structure in your software please include something like
  22.     'This product uses the RA 'C' Developer Kit from Envy Technologies' -
  23.     it's not much to ask and using any part of the RACDK in your software
  24.     is free (in compiled form - see RACDK.DOC for more information)
  25. */
  26.  
  27. /* C <> Pascal string conversion macros from SNIPPETS 'C' library
  28.     C <> Pascal string copy macros by Damien Guard
  29.  
  30.  Convert a string:
  31.     Pas2C(string) to convert string from Pascal to C (ie. after READING)
  32.     C2Pas(string) to convert string to Pascal from C (ie. before WRITING)
  33.  
  34.  Copy a string:
  35.     cpyPas2C(destination,source) to copy from a Pascal string to a C string
  36.     cpyC2Pas(destination,source) to copy from a C string to a Pascal string */
  37.  
  38. typedef unsigned char UCHAR;
  39. #define Pas2C(s) {UCHAR n = *(s); memmove((s), &(s)[1], n); s[n] = '\0';}
  40. #define C2Pas(s) {int n = strlen(s); memmove(&(s)[1], (s), n); *(s) = n;}
  41. #define cpyPas2C(d,s) {UCHAR n = *(s); memmove((d), &(s)[1], n); d[n] = '\0';}
  42. #define cpyC2Pas(d,s) {int n = strlen(s); memmove(&(d)[1], (s), n); *(d) = n;}
  43.  
  44. /* Fake Pascal boolean type for clarity */
  45. typedef unsigned char booleanf;
  46.  
  47. /* enums here for clarity - not sure if they work */
  48. enum AskType {Yes, No, Ask, Only};
  49. enum VideoType {Auto, Short, Long};
  50. enum MsgType {LocalMail, NetMail, EchoMail, Internet, Newsgroup};
  51. enum MsgKindsType {Both, Private, Public, ROnly, NoReply};
  52. enum OrphanType {Ignore, Create, Kill };
  53. enum ResetType {Never, Week, Month, Year};
  54.  
  55. /* Typedef the RemoteAccess 'types' */
  56. typedef unsigned char FlagType[4];
  57. typedef unsigned char TimeF[6];                /* Time format                */
  58. typedef unsigned char DateF[9];                /* Date format                */
  59. typedef unsigned char LongDate[10];            /* Long date format        */
  60. typedef unsigned char ByteArray32[32];
  61. typedef unsigned char MSGTOIDXrecord[36];
  62. typedef unsigned char MSGTXTrecord[256];
  63. typedef unsigned int  LASTREADrecord[200];
  64. typedef unsigned int  COMBINEDrecord[200];
  65.  
  66. /* Mail network address (internal) */
  67. struct NetAddress {
  68.          unsigned int   Zone,
  69.                              Net,
  70.                              Node,
  71.                              Point;
  72. };
  73.  
  74. /* Security limits (LIMITS.RA) */
  75. struct LIMITSrecord {
  76.          unsigned int   Security,
  77.                              Ltime,
  78.                              L300,
  79.                              L1200,
  80.                              L2400,
  81.                              L4800,
  82.                              L7200,
  83.                              L9600,
  84.                              L12000,
  85.                              L14400,
  86.                              L16800,
  87.                              L19200,
  88.                              L38400,
  89.                              Llocal,
  90.                              RatioNum,
  91.                              RatioK;
  92.          float           PerMinCost;
  93.          unsigned int   L21600,
  94.                              L24000,
  95.                              L26400,
  96.                              L28800,
  97.                              L57600,
  98.                              L64000;
  99.          float           FlexiTime;
  100.          unsigned int   LsessionTime,
  101.                              ResetAmt;
  102.          enum ResetType      ResetPeriod;
  103.          unsigned int   ResetOffset,
  104.                              L31200,
  105.                              L33600;
  106.          unsigned char  FreeSpace[14];
  107. };
  108.  
  109. /* Languages (LANGUAGE.RA) */
  110. struct LANGUAGErecord {
  111.          unsigned char  Name[21],
  112.                              Attribute,
  113.                              DefName[61],
  114.                              MenuPath[61],
  115.                              TextPath[61],
  116.                              QuesPath[61];
  117.          unsigned int   Security;
  118.          FlagType        Flags,
  119.                              NotFlagsMask;
  120.          unsigned char  FreeSpace[191];
  121. };
  122.  
  123. /* Hudson message information (MSGINFO.BBS) */
  124. struct MSGINFOrecord {
  125.          unsigned int   LowMsg,
  126.                              HighMsg,
  127.                              TotalMsgs;
  128.          unsigned char  TotalOnBoard[200];
  129. };
  130.  
  131. /* Hudson message index (MSGIDX.BBS) */
  132. struct HMBMSGIDXrecord {
  133.          unsigned int   MsgNum;
  134.          unsigned char  Board;
  135. };
  136.  
  137. /* Hudson message headers (MSGHDR.BBS) */
  138. struct HMBMSGHDRrecord {
  139.          unsigned int   MsgNum,
  140.                              PrevReply,
  141.                              NextReply,
  142.                              TimesRead,
  143.                              StartBlock,
  144.                              NumBlocks,
  145.                              DestNet,
  146.                              DestNode,
  147.                              OrigNet,
  148.                              OrigNode,
  149.                              DestZone;
  150.          unsigned char  OrigZone;
  151.          unsigned int   Cost;
  152.          unsigned char  MsgAttr,
  153.                              NetAttr,
  154.                              Board;
  155.          TimeF           PostTime;
  156.          DateF           PostDate;
  157.          MSGTOIDXrecord WhoTo,
  158.                              WhoFrom;
  159.          unsigned char  Subject[73];
  160. };
  161.  
  162. /* Current online status (USERON.BBS) */
  163. struct USERONrecord {
  164.          MSGTOIDXrecord Name,
  165.                              Handle;
  166.          unsigned char  Line;
  167.          unsigned int   Baud;
  168.          unsigned char  City[26],
  169.                              Status,
  170.                                 /* 0 : Browsing/menu
  171.                                     1 : File transfer
  172.                                     2 : Messaging
  173.                                     3 : Door
  174.                                     4 : Sysop chat
  175.                                     5 : Questionnaire
  176.                                     6 : Real-time-conferencing
  177.                                     7 : New user logon
  178.                                  255 : User-defined - display StatDesc */
  179.                              Attribute,
  180.                                 /* Bit 0 : Hidden
  181.                                          1 : Wants chat
  182.                                          2 : Reserved for RANETMGR (RA/Pro)
  183.                                          3 : Do not disturb flag
  184.                                          6 : Ready */
  185.                              StatDesc[11],
  186.                              FreeSpace[98];
  187.          unsigned int   NoCalls;
  188. };
  189.  
  190. /* Todays callers list (LASTCALL.BBS) */
  191. struct LASTCALLrecord {
  192.          unsigned char  Line;
  193.                              MSGTOIDXrecord Name,
  194.                              Handle;
  195.          unsigned char  City[26];
  196.          unsigned int   Baud;
  197.          long           Times;
  198.          unsigned char  LogOn[6],
  199.                              LogOff[6];
  200.          unsigned char  Attribute;
  201.                                 /* Bit 0 : Hidden */
  202. };
  203.  
  204. /* File area header (FDBxxx.HDR) */
  205. struct FILESHDRrecord {
  206.          unsigned char  Name[13];
  207.          long                Size,
  208.                              CRC32;
  209.          unsigned char  Uploader[36];
  210.          long                UploadDate,
  211.                              FileDate,
  212.                              LastDL;
  213.          unsigned int   TimesDL;
  214.          unsigned char  Attrib,
  215.                                 /* Bit 0 : Deleted
  216.                                          1 : Unlisted
  217.                                          2 : Free - Does NOT affect "Cost"
  218.                                          3 : Not available (don't allow downloads)
  219.                                          4 : Locked (no kill)
  220.                                          5 : Missing/offline
  221.                                          6 : No time restrictions - always allow DL */
  222.                              Password[16],
  223.                              KeyWord [5] [16];
  224.          unsigned int   Cost;
  225.          long               LongDescPtr;
  226.          unsigned char  FreeSpace[20];
  227. };
  228.  
  229. /* File area index (FDBxxx.IDX) */
  230. struct FILESIDXrecord {
  231.          unsigned char     Name[13];
  232.          long               UploadDate,
  233.                              KeyWordCRC[5],
  234.                              LongDescPtr;
  235. };
  236.  
  237. /* User base index (USERSIDX.BBS) */
  238. struct USERSIDXrecord {
  239.          long           NameCRC32,
  240.                              HandleCRC32;
  241. };
  242.  
  243. /* User base (USERS.BBS) */
  244. struct USERSrecord {
  245.          MSGTOIDXrecord Name;
  246.          unsigned char  Location[26],
  247.                              Organisation[51],
  248.                              Address1[51],
  249.                              Address2[51],
  250.                              Address3[51],
  251.                              Handle[36],
  252.                              Comment[81];
  253.          long                PasswordCRC;
  254.          unsigned char  DataPhone[16],
  255.                              VoicePhone[16];
  256.          TimeF           LastTime;
  257.          DateF           LastDate;
  258.          unsigned char  Attribute,
  259.                                 /* Bit 0 : Flagged for delete
  260.                                          1 : Clear screen
  261.                                          2 : More? prompt
  262.                                          3 : ANSI emulation
  263.                                          4 : No-kill
  264.                                          5 : Xfer priority
  265.                                          6 : Full screen msg editor
  266.                                          7 : Quiet mode */
  267.                              Attribute2;
  268.                                 /* Bit 0 : Hot-keys
  269.                                          1 : AVT/0 (Avatar)
  270.                                          2 : Full screen message viewer
  271.                                          3 : Hidden
  272.                                          4 : Page priority
  273.                                          5 : No echomail in mailbox scan
  274.                                          6 : Guest account
  275.                                          7 : Post bill enabled */
  276.          FlagType       Flags;
  277.          long               Credit,
  278.                              Pending;
  279.          unsigned int   MsgsPosted,
  280.                              Security;
  281.          long                LastRead,
  282.                              NoCalls,
  283.                              Uploads,
  284.                              Downloads,
  285.                              UploadsK,
  286.                              DownloadsK,
  287.                              TodayK;
  288.          int                Elapsed;
  289.          unsigned int   ScreenLength;
  290.          unsigned char  LastPwdChange;
  291.          unsigned int   Group;
  292.          COMBINEDrecord CombinedInfo;
  293.          DateF           FirstDate,
  294.                              BirthDate,
  295.                              SubDate;
  296.          unsigned char  ScreenWidth,
  297.                              Language,
  298.                              DateFormat,
  299.                              ForwardTo[36];
  300.          unsigned int   MsgArea,
  301.                              FileArea;
  302.          unsigned char  DefaultProtocol;
  303.          unsigned int   FileGroup;
  304.          unsigned char  LastDOBCheck,
  305.                              Sex;
  306.          long               XIrecord;
  307.          unsigned int   MsgGroup;
  308.          unsigned char  Attribute3,
  309.                                 /* Bit 0 : Mailbox check: scan selected areas only */
  310.                              Password[16],
  311.                              FreeSpace[31];
  312. };
  313.  
  314. /* User base index (USERSXI.BBS) */
  315. struct USERSXIrecord {
  316.          unsigned char  FreeSpace[200];
  317. };
  318.  
  319. /* System information (SYSINFO.BBS) */
  320. struct SYSINFOrecord {
  321.          long           TotalCalls;
  322.          MSGTOIDXrecord LastCaller,
  323.                              LastHandle;
  324.          unsigned char  ExtraSpace[92];
  325. };
  326.  
  327. /* Timelog stat (TIMELOG.BBS) for EACH node */
  328. struct TIMELOGrecord {
  329.          DateF           StartDate;
  330.          unsigned int   BusyPerHour[24],
  331.                              BusyPerDay[7];    /* not implemented */
  332. };
  333.  
  334. /* Menu (*.MNU) */
  335. struct MNUrecord {
  336.          unsigned char  Typ;
  337.          unsigned int   Security,
  338.                              MaxSec;
  339.          FlagType        NotFlagsMask,
  340.                              Flags;
  341.          unsigned int   TimeLeft,
  342.                              TimeUsed;
  343.          unsigned char  Age,
  344.                              TermAttrib;
  345.                                 /* Bit 0 : ANSI
  346.                                          1 : Avatar
  347.                                          2 : RIPscript */
  348.          long                MinSpeed,
  349.                              MaxSpeed,
  350.                              Credit,
  351.                              OptionCost,
  352.                              PerMinCost;
  353.          ByteArray32    Node,
  354.                              Group;
  355.          unsigned int   StartTime[7],
  356.                              StopTime[7];
  357.          unsigned char  Display[136],
  358.                              HotKey[9],
  359.                              MiscData[136],
  360.                              Foreground,
  361.                              Background,
  362.                              FreeSpace[50];
  363. };
  364.  
  365. /* System events (EVENTS.RA) */
  366. struct EVENTrecord {
  367.          unsigned char  Status;  /* 0=Deleted 1=Enabled 2=Disabled */
  368.          TimeF           StartTime;
  369.          unsigned char  ErrorLevel,
  370.                              Days;
  371.          booleanf       Forced;
  372.          DateF           LastTimeRun;
  373. };
  374.  
  375. struct EVENTrecord EVENTrecordArray[20];
  376.  
  377. /* Message area configuration (MESSAGES.RA) */
  378. struct MESSAGErecord {
  379.          unsigned int   AreaNum,
  380.                              Unused;
  381.          unsigned char  Name[41];
  382.          enum MsgType        Typ;
  383.          enum MsgKindsType   MsgKinds;
  384.          unsigned char  Attribute,
  385.                                 /* Bit 0 : Enable EchoInfo
  386.                                          1 : Combined access
  387.                                          2 : File attaches
  388.                                          3 : Allow aliases
  389.                                          4 : Use SoftCRs as characters
  390.                                          5 : Force handle
  391.                                          6 : Allow deletes
  392.                                          7 : Is a JAM area */
  393.                              DaysKill,   /* Kill older than 'x' days */
  394.                              RecvKill;   /* Kill recv msgs, recv for more than 'x' days */
  395.          unsigned int   CountKill,
  396.                              ReadSecurity;
  397.          FlagType       ReadFlags,
  398.                              ReadNotFlags;
  399.          unsigned int   WriteSecurity;
  400.          FlagType       WriteFlags,
  401.                              WriteNotFlags;
  402.          unsigned int   SysopSecurity;
  403.          FlagType       SysopFlags,
  404.                              SysopNotFlags;
  405.          unsigned char  OriginLine[61],
  406.                              AkaAddress,
  407.                              Age,
  408.                              JAMbase[61];
  409.          unsigned int   Group,
  410.                              AltGroup[3];
  411.          unsigned char  Attribute2;
  412.                                 /* Bit 0 : Include in all groups */
  413.          unsigned int   NetmailArea;
  414.          unsigned char  FreeSpace2[7];
  415. };
  416.  
  417. /* Groups (MGROUPS.RA & FGROUPS.RA) */
  418. struct GROUPrecord {
  419.          unsigned int   AreaNum;
  420.          unsigned char  Name[41];
  421.          unsigned int   Security;
  422.          FlagType       Flags,
  423.                              NotFlagsMask;
  424.          unsigned char  FreeSpace[100];
  425. };
  426.  
  427. /* File area configuration (FILES.RA) */
  428. struct FILESrecord {
  429.          unsigned int   AreaNum,
  430.                              Unused;
  431.          unsigned char  Name[41],
  432.                              Attrib,
  433.                                 /* Bit 0 : Include in new files scan
  434.                                          1 : Include in upload dupe scan
  435.                                          2 : Permit long descriptions
  436.                                          3 : Area is on CD-ROM
  437.                                          4 : All files are FREE
  438.                                          5 : Allow DLs not in FDB
  439.                                          6 : Allow users to password uploads
  440.                                          7 : Scan uploads */
  441.                              FilePath[41];
  442.          unsigned int   KillDaysDL,
  443.                              KillDaysFD;
  444.          unsigned char  Password[16];
  445.          unsigned int   MoveArea;
  446.          unsigned char  Age,
  447.                              ConvertExt;
  448.          unsigned int   Group;
  449.          unsigned char  Attrib2;
  450.                                 /* Bit 0 : Include in all groups */
  451.          unsigned int   DefCost,
  452.                              UploadArea,
  453.                              UploadSecurity;
  454.          FlagType       UploadFlags,
  455.                              UploadNotFlags;
  456.          unsigned int   Security;
  457.          FlagType       Flags,
  458.                              NotFlags;
  459.          unsigned int   ListSecurity;
  460.          FlagType       ListFlags,
  461.                              ListNotFlags;
  462.          unsigned int   AltGroup[3];
  463.          unsigned char  Device,
  464.                              FreeSpace[13];
  465. };
  466.  
  467. /* Multi-line conferencing (CONF.RA?) */
  468. struct CONFrecord {
  469.          unsigned char  Name[9],
  470.                              Parent[9],
  471.                              Desc[71],
  472.                              Attr,
  473.                                 /* Bit 0 : Private
  474.                                          1 : Unlisted
  475.                                          2 : Global
  476.                                          3 : Permanent
  477.                                          4 : Use handles */
  478.                              Moderator[36],
  479.                              Language[21],
  480.                              Password[16];
  481.          unsigned int   Security;
  482.          FlagType        Flags;
  483.          unsigned char  NumNodes,
  484.                              Active[250];
  485.          booleanf       Child[250];
  486.          FlagType       NotFlagsMask;
  487.          unsigned char  FreeSpace[96];
  488. };
  489.  
  490. /* Modem configuration (MODEM.RA) */
  491. struct MODEMrecord {
  492.          unsigned char  ComPort,
  493.                              InitTries;
  494.          unsigned int   BufferSize,
  495.                              ModemDelay;
  496.          long               MaxSpeed;
  497.          booleanf       SendBreak,
  498.                              LockModem,
  499.                              AnswerPhone,
  500.                              OffHook;
  501.          unsigned char  InitStr[71],
  502.                              InitStr2[71],
  503.                              BusyStr[71],
  504.                              InitResp[41],
  505.                              BusyResp[41],
  506.                              Connect300[41],
  507.                              Connect1200[41],
  508.                              Connect2400[41],
  509.                              Connect4800[41],
  510.                              Connect7200[41],
  511.                              Connect9600[41],
  512.                              Connect12k[41],
  513.                              Connect14k[41],
  514.                              Connect16k[41],
  515.                              Connect19k[41],
  516.                              Connect38k[41],
  517.                              ConnectFax[41],
  518.                              RingStr[21],
  519.                              AnswerStr[21],
  520.                              ErrorFreeString[16],
  521.                              Connect21k[41],
  522.                              Connect24k[41],
  523.                              Connect26k[41],
  524.                              Connect28k[41],
  525.                              Connect57k[41],
  526.                              Connect64k[41],
  527.                              Connect31k[41],
  528.                              Connect33k[41],
  529.                              FreeSpace[100];
  530. };
  531.  
  532. /* Archiver control (internal) */
  533. struct ARCrecord {
  534.          unsigned char  Extension[4],
  535.                              UnpackCmd[61],
  536.                              PackCmd[61];
  537. };
  538.  
  539. /* Main configuration (CONFIG.RA) */
  540. /* All fields prefixed with 'x' no longer in use */
  541. struct CONFIGrecord {
  542.          unsigned int   VersionID;
  543.          unsigned char  xCommPort;       /* unused - found in MODEM.RA */
  544.          long                xBaud;                 /* unused - found in MODEM.RA */
  545.          unsigned char  xInitTries,        /* unused - found in MODEM.RA */
  546.                              xInitStr[71],     /* unused - found in MODEM.RA */
  547.                              xBusyStr[71],     /* unused - found in MODEM.RA */
  548.                              xInitResp[41],     /* unused - found in MODEM.RA */
  549.                              xBusyResp[41],   /* unused - found in MODEM.RA */
  550.                              xConnect300[41], /* unused - found in MODEM.RA */
  551.                              xConnect1200[41],/* unused - found in MODEM.RA */
  552.                              xConnect2400[41],/* unused - found in MODEM.RA */
  553.                              xConnect4800[41],/* unused - found in MODEM.RA */
  554.                              xConnect9600[41],/* unused - found in MODEM.RA */
  555.                              xConnect19k[41], /* unused - found in MODEM.RA */
  556.                              xConnect38k[41]; /* unused - found in MODEM.RA */
  557.          booleanf       xAnswerPhone;    /* unused - found in MODEM.RA */
  558.          unsigned char  xRing[21],             /* unused - found in MODEM.RA */
  559.                              xAnswerStr[21];  /* unused - found in MODEM.RA */
  560.          booleanf       xFlushBuffer;    /* unused - found in MODEM.RA */
  561.          int                xModemDelay;     /* unused - found in MODEM.RA */
  562.          unsigned int   MinimumBaud,
  563.                              GraphicsBaud,
  564.                              TransferBaud;
  565.          TimeF           SlowBaudTimeStart,
  566.                              SlowBaudTimeEnd,
  567.                              DownloadTimeStart,
  568.                              DownloadTimeEnd,
  569.                              PageStart[7],
  570.                              PageEnd[7];
  571.          unsigned char  SeriNum[23],
  572.                              CustNum[23],
  573.                              FreeSpace1[24];
  574.          unsigned int     PwdExpiry;
  575.          unsigned char     MenuPath[61],
  576.                              TextPath[61],
  577.                              AttachPath[61],
  578.                              NodelistPath[61],
  579.                              MsgBasePath[61],
  580.                              SysPath[61],
  581.                              ExternalEdCmd[61];
  582.          struct NetAddress
  583.                              Address[10]; /* 0 = Main address, 1 = AKA 1... */
  584.          unsigned char  SystemName[31];
  585.          unsigned int   NewSecurity,
  586.                              NewCredit;
  587.          FlagType       NewFlags;
  588.          unsigned char  OriginLine[61],
  589.                              QuoteString[16],
  590.                              Sysop[36],
  591.                              LogFileName[61];
  592.          booleanf       FastLogon,
  593.                              AllowSysRem,
  594.                              MonoMode,
  595.                              StrictPwdChecking,
  596.                              DirectWrite,
  597.                              SnowCheck;
  598.          int               CreditFactor;
  599.          unsigned int   UserTimeOut,
  600.                              LogonTime,
  601.                              PasswordTries,
  602.                              MaxPage,
  603.                              PageLength;
  604.          booleanf        CheckForMultiLogon,
  605.                              ExcludeSysopFromList,
  606.                              OneWordNames;
  607.          enum AskType           CheckMail;
  608.          booleanf        AskVoicePhone,
  609.                              AskDataPhone,
  610.                              DoFullMailCheck,
  611.                              AllowFileShells,
  612.                              FixUploadDates,
  613.                              FreezeChat;
  614.          enum AskType           ANSI,            /* ANSI:  Yes/no/ask new users */
  615.                              ClearScreen,     /* Clear: "                  " */
  616.                              MorePrompt;      /* More:  "                  " */
  617.          booleanf       UploadMsgs;
  618.          enum AskType           KillSent;        /* Kill/Sent     "             */
  619.          unsigned int   CrashAskSec;      /* Min sec# to ask 'Crash Mail ?' */
  620.          FlagType       CrashAskFlags;
  621.          unsigned int   CrashSec;         /* Min sec# to always send crash mail */
  622.          FlagType       CrashFlags;
  623.          unsigned int   FAttachSec;        /*         "    ask 'File Attach ?' */
  624.          FlagType       FAttachFlags;
  625.          unsigned char  NormFore,            /* foreground & background colours */
  626.                              NormBack,
  627.                              StatFore,
  628.                              StatBack,
  629.                              HiBack,
  630.                              HiFore,
  631.                              WindFore,
  632.                              WindBack,
  633.                              ExitLocal,            /* exit error levels - Unused?*/
  634.                              Exit300,
  635.                              Exit1200,
  636.                              Exit2400,
  637.                              Exit4800,
  638.                              Exit9600,
  639.                              Exit19k,
  640.                              Exit38k;
  641.          booleanf       MultiLine;
  642.          unsigned char  MinPwdLen;
  643.          unsigned int   MinUpSpace;
  644.          enum AskType           HotKeys;
  645.          unsigned char  BorderFore,
  646.                              BorderBack,
  647.                              BarFore,
  648.                              BarBack,
  649.                              LogStyle,
  650.                              MultiTasker,
  651.                              PwdBoard;
  652.          unsigned int   xBufferSize;     /* unused - found in MODEM.RA */
  653.          unsigned char  FKeys[10] [61];
  654.          booleanf        WhyPage;
  655.          unsigned char  LeaveMsg;
  656.          booleanf        ShowMissingFiles,
  657.                              xLockModem;      /* unused - found in MODEM.RA */
  658.          unsigned char  FreeSpace2[10];
  659.          booleanf        AllowNetmailReplies;
  660.          unsigned char  LogonPrompt[41];
  661.          enum AskType        CheckNewFiles;
  662.          unsigned char  ReplyHeader[61];
  663.          unsigned char  BlankSecs;
  664.          unsigned char  ProtocolAttrib[6];
  665.          unsigned char  xErrorFreeString[16], /* unused - found in MODEM.RA */
  666.                              xDefaultCombined[25]; /* replaced with DefaultCombined */
  667.          unsigned int   RenumThreshold;
  668.          unsigned char  LeftBracket,
  669.                              RightBracket;
  670.          booleanf       AskForHandle,
  671.                              AskForBirthDate;
  672.          unsigned int   GroupMailSec;
  673.          booleanf        ConfirmMsgDeletes;
  674.          unsigned char  FreeSpace4[30],
  675.                              TempScanDir[61];
  676.          enum AskType        ScanNow;
  677.          unsigned char  xUnknownArcAction,  /* unused - found in ARCHIVE.RA ?*/
  678.                              xFailedUnpackAction,/* unused - found in ARCHIVE.RA ?*/
  679.                              FailedScanAction;
  680.                                 /* Bit 0 : Mark deleted,
  681.                                          1 : Mark unlisted,
  682.                                          2 : Mark not available */
  683.          unsigned int   xUnknownArcArea,     /* no longer in use */
  684.                              xFailedUnpackArea,     /* no longer in use */
  685.                              FailedScanArea;
  686.          unsigned char  ScanCmd[61];
  687.          booleanf        xDeductIfUnknown; /* no longer in use */
  688.          unsigned char  NewUserGroup;
  689.          enum AskType        AVATAR;
  690.          unsigned char  BadPwdArea,
  691.                              Location[41],
  692.                              DoAfterAction,  /* 0 = wait for CR
  693.                                                      else wait for x seconds */
  694.                              OldFileLine[41], /* unused - replaced with FileLine*/
  695.                              CRfore,
  696.                              CRback,
  697.                              LangHdr[41];
  698.          booleanf       xSendBreak;      /* unused - found in MODEM.RA */
  699.          unsigned char  ListPath[61];    /* unused ??*/
  700.          enum AskType           FullMsgView,
  701.                              EMSI_Enable;
  702.          booleanf        EMSI_NewUser;
  703.          unsigned char  EchoChar[2],
  704.                              xConnect7200[41],    /* unused - found in MODEM.RA */
  705.                              xConnect12000[41],     /* unused - found in MODEM.RA */
  706.                              xConnect14400[41],     /* unused - found in MODEM.RA */
  707.                              Exit7200,
  708.                              Exit12000,
  709.                              Exit14400,
  710.                              ChatCommand[61];
  711.          enum AskType           ExtEd;
  712.          unsigned char  NewuserLanguage,
  713.                              LanguagePrompt[41];
  714.          enum VideoType      VideoMode;
  715.          booleanf        AutoDetectANSI,
  716.                              xOffHook; /* unused - found in MODEM.RA */
  717.          unsigned char  NewUserDateFormat;
  718.          unsigned char  KeyboardPwd[16];
  719.          booleanf       CapLocation;
  720.          unsigned char  NewuserSub,
  721.                              PrinterName[5],
  722.                              HilitePromptFore,    /* note lowercase 'l' in hilite */
  723.                              HiLitePromptBack,
  724.                              xInitStr2[71]; /* unused - found in MODEM.RA */
  725.          booleanf        AltJSwap;
  726.          unsigned char  SemPath[61];
  727.          booleanf       AutoChatCapture;
  728.          unsigned char  FileBasePath[61];
  729.          booleanf        NewFileTag,
  730.                              IgnoreDupeExt;
  731.          unsigned char  TempCDFilePath[61],
  732.                              TagFore,
  733.                              TagBack,
  734.                              xConnect16k[41], /* unused - found in MODEM.RA */
  735.                              Exit16k,
  736.                              FilePayback,
  737.                              FileLine[201],
  738.                              FileMissingLine[201],
  739.                              NewUserULCredit;
  740.          unsigned int   NewUserULCreditK;
  741.          struct ARCrecord
  742.                              ArcInfo[10];
  743.          unsigned char  RAMGRAltFKeys [5] [61],
  744.                              ArcViewCmd[61],
  745.                              xConnectFax[41], /* unused - found in MODEM.RA */
  746.                              ExitFax;
  747.          booleanf        UseXMS,
  748.                              UseEMS;
  749.          unsigned char  CheckDOB;
  750.          enum AskType           EchoCheck;
  751.          unsigned int   ccSec,
  752.                              ReturnRecSec;
  753.          booleanf        HonourNetReq;
  754.          COMBINEDrecord DefaultCombined;
  755.          booleanf       AskForSex,
  756.                              AskForAddress;
  757.          enum AskType           DLdesc;
  758.          booleanf        NewPhoneScan;
  759.          unsigned char  Exit21k,
  760.                              Exit24k,
  761.                              Exit26k,
  762.                              Exit28k,
  763.                              Exit57k,
  764.                              Exit64k;
  765.          booleanf       TagLogoffWarning, /* RA 2.5 - Warn if files are tagged
  766.                                                          at log off */
  767.                              LimitLocal,         /* RA 2.5 - Turn off sysop control
  768.                                                          keys for non-sysop local users*/
  769.                              SavePasswords;     /* RA 2.5 - Save user passwords */
  770.          unsigned char  BlankLogins,         /* RA 2.5 - Log off after x blank
  771.                                                          logins (returns)*/
  772.                              ripiconpath[61],     /* RA 2.5 - Path to RIPscript icons */
  773.                              Exit31k,             /* RA 2.5 - Exit level for 31kbps */
  774.                              Exit33k;             /* RA 2.5 - Exit level for 33kbps */
  775.          booleanf       IncludeNewCDareas;/* RA 2.5 - Include CD areas in new
  776.                                                          files list */
  777.          unsigned char  FutureExpansion[513];
  778. };
  779.  
  780. /* Exit-info dropfile (EXITINFO.BBS) */
  781. struct EXITINFOrecord {
  782.          unsigned int   Baud;
  783.          struct SYSINFOrecord
  784.                              SysInfo;
  785.          struct TIMELOGrecord
  786.                              TimeLogInfo;
  787.          struct USERSrecord
  788.                              UserInfo;
  789.          struct EVENTrecord
  790.                              EventInfo;
  791.          booleanf        NetMailEntered,
  792.                              EchoMailEntered;
  793.          TimeF           LoginTime;
  794.          DateF           LoginDate;
  795.          unsigned int   TimeLimit;
  796.          long                LoginSec;
  797.          unsigned int   UserRecord,
  798.                              ReadThru,
  799.                              NumberPages,
  800.                              DownloadLimit;
  801.          TimeF           TimeOfCreation;
  802.          long                LogonPasswordCRC;
  803.          booleanf        WantChat;
  804.          int                DeductedTime;
  805.          unsigned char  MenuStack [50] [9],
  806.                              MenuStackPointer;
  807.          struct USERSXIrecord
  808.                              UserXIinfo;
  809.          booleanf        ErrorFreeConnect,
  810.                              SysopNext,
  811.                              EMSI_Session;
  812.          unsigned char  EMSI_Crtdef[41],
  813.                              EMSI_Protocols[41],
  814.                              EMSI_Capabilities[41],
  815.                              EMSI_Requests[41],
  816.                              EMSI_Software[41],
  817.                              Hold_Attr1,
  818.                              Hold_Attr2,
  819.                              Hold_Len,
  820.                              PageReason[81],
  821.                              StatusLine,
  822.                              LastCostMenu[9];
  823.          unsigned int   MenuCostPerMin;
  824.          booleanf        DoesAVT,
  825.                              RIPmode,
  826.                              RIPVersion;
  827.          unsigned char  ExtraSpace[85];
  828. };
  829.  
  830. /* File transfer protocols (PROTOCOL.RA) */
  831. struct PROTOCOLrecord {
  832.          unsigned char  Name[16],
  833.                              ActiveKey;
  834.          booleanf        OpusTypeCtlFile,
  835.                              BatchAvailable;
  836.          unsigned char  Attribute,
  837.                                 /* 0=Disabled
  838.                                     1=Enabled */
  839.                              LogFileName[81],
  840.                              CtlFileName[81],
  841.                              DnCmdString[81],
  842.                              DnCtlString[81],
  843.                              UpCmdString[81],
  844.                              UpCtlString[81],
  845.                              UpLogKeyword[21],
  846.                              DnLogKeyword[21];
  847.          unsigned int   XferDescWordNum,
  848.                              XferNameWordNum;
  849. };