//**********************
//*****  Includes  *****
//**********************

#include "exec/types.h"

struct Globals
{
 TEXT activity[20];      // Activity Name

 BYTE AN,                // Activity Number
      aborttransfer,     // Abort Transfer
      frontend,
      frontendstatus,
      hide,              // User hidden from who display
      kickuser,
      mute,              // User is in mute status
      shutdown;

 long ULCPS,             // UL CPS
      DLCPS,             // DL CPS
      CurrentBaudRate;
};

//*************************
//*************************
//*************************
//*****  Struct User  *****  FiLE: Accounts.Data
//*************************
//*************************
//*************************

struct User
{
 UWORD   Slot_Number;            // Account#
 UBYTE   Status;                 // 0=Deleted, 1=Active, 2=New User, 3=Locked Out

 TEXT    Name[31],               // Users Name
         RealName[26],           // Real Name
         VoicePhone[21],         // Voice Phone Number
         DataPhone[21],          // Data  Phone Number
         Address[26],            // Address
         City[26],               // City
         State[4],               // State/Providence Code
         Country[4],             // Country Code
         MailRoute[15],          // Zip Code / Mail Route
         ComputerType[21],       // Computer Type (Possible Code Instead)
         Password[16],           // Password
         Comment[31];            // Comment String

 UBYTE   Security;               // Access Level
 UWORD   WeedDays,               // Days of inactivity until bbs auto deletes
         ReduceDays;             // Days Paid for by a payer.
 UBYTE   ReducedAccess;          // Preset level to give to user after reduced days

 UBYTE   AnsiType,               // Ansi Type (Ascii, Amiga Ansi, IBM Ansi, VT100, RIP)
         U_Proto,                // Protocal Selected:UBYTE= 0-255 value
         D_Proto,                // download protocal
         HelpLevel,              // Level of Help
         MSGHeader,              // Msg Header Type
         EditorLines,            // Max Lines allowed in Editor
         DescLines,              // File Listing lines, Descriptions
         ViewMode,               // File Listing View Mode
         WhoPrefs,               // Who Preferences
         MB_J,                   // Message Rejoin
         FB_J,                   // File rejoin
         Length,                 // Length of screen
         Width,                  // Width of screen
         Language,
         Translation,
         TimeZone,               // Time Zone Offset
         BirthDate_Day,          // DAY of birth
         BirthDate_Month,        // MONTH of birth
         BirthDate_Year,         // YEAR of birth
         IdleTime,               // Idle time allowed for no activity
         NodeLastOn;             // Last node user was on

 UWORD   ForwardMailSlot,        // Slot Number of user to forward mail to!
         PWF;                    // Number of Password Failures

 UWORD   Total_Calls,            // # of Calls Total
         Total_Posts,            // Msgs left total
         Total_PostsReceived,    // Msgs Received
         Total_ULFiles,          // # of Uploads
         Total_DLFiles,          // # of Downloads
         Total_TimeBank;         // Time Bank Value
 ULONG   Total_ULBytes,          // Total Uploaded Bytes
         Total_DLBytes;          // Total Downloaded Bytes

 UWORD   Limit_Calls,            // Calls ALLOWED per Day
         Limit_Posts,            // Messages Allowed p/d
         Limit_ULFiles,          // # of Uploads Per Period
         Limit_DLFiles,          // # of Downloads Per Period
         Limit_Time,             // Time Limit per day.
         Limit_TimeBank,
         Limit_ChatTime;         // Limit of Time user can be in chat door
 ULONG   Limit_ULBytes,          // Limit Upload Bytes Per Period
         Limit_DLBytes;          // Limit Download Bytes Per Period
 UBYTE   F_Ratio,                // File Ratio
         B_Ratio;                // Byte Ratio

 UBYTE   Period_Type;            // Mins, Hours, Days, Weeks, Months, Years
 UWORD   Period_Length,          // 24 hours or whatever! Set Limits by Period
         Period_Calls,           // Calls made  Today
         Period_Posts,           // Todays Msgs Sent
         Period_ULFiles,         // Todays Ul's
         Period_DLFiles,         // Todays Dl's
         Period_ChatTime;        // Time user has been in chat this period
 ULONG   Period_ULBytes,         // Period Bytes Uploaded
         Period_DLBytes;         // Period Bytes Downloaded

 UWORD   Left_DLFiles,           // Files left available for download
         Left_ChatTime,          // Limit of Time user can be in chat door
         Left_Time;              // Time Left
 ULONG   Left_DLBytes;           // Bytes left for this period

 UWORD   DayCredits,             // For Payers
         FileCredits;            // Files Paid for by a payer.
 ULONG   ByteCredits,            // Bytes Paid for by a payer.
         PersonalBytes,          // Personal Area Bytes Limit
         LastBaudRate;           // Last Baud Rate of a user.

 LONG    Time_First_Called,      // Time First Logged On
         Time_Last_Logoff,       // Last Time LOGGED OFF
         Time_Last_Connect;      // Time last CONNECTED

LONGBITS UserBitsA,              //
         UserBitsB,              //
         UtilBits,               // 32 bits for Programmers to use as they wish for utils.
         LastCallFlags,          // Flags for activities during last call. Posted,UL,DL,etc
         CatFlags,               // Flags for Custom File Listing
         NFlags1,                // Normal Flags Part 1
         NFlags2,                // Normal Flags Part 2
         SFlags1,                // Sysop  Flags Part 1
         SFlags2;                // Sysop  Flags Part 2

 char    MsgBase[41],            // MB 0-39 Flags N,Y,S   // Change to 2 LONGBITS
         FileBase[41];           // FB 0-39 Flags N,Y,S   // one for normal, one for sysop

 UWORD   Last_Read_Message[40],  // -position change- Last read pointer
         Last_Scan_Message[40];

 BYTE    AnsiColor;              // Ansi Color
 BYTE    BExtras[29];

 UWORD   CheckSum,
         SerialNumber;           // Unique seiral number for flagged files, etc.

 SHORT   SExtras[3];
 LONG    LExtras[3];
};

struct Csum
{
 UWORD Csum;
};

//*******************************
//*******************************
//*******************************
//*****  Struct SystemData  ***** FiLE: SystemData.Data - (GLOBAL SETTINGS!)
//*******************************
//*******************************
//*******************************

struct SystemData
{
       // System Names / Locations

 TEXT  Name[31],                  // Name of BBS System
       Location[51],              // Location of BBS System
       SysopName[31],             // Sysop's Name

       // System Paths

       AccountDataPath[81],       // Path to Accounts.data
       AccountInfoPath[81],       // Path to User Info Files
       CatalogsPath[81],          // Path to Catalog files
       ExtendedDescPath[81],      // Path to extended descriptions
       LogsPath[81],              // path for Log & transcript
       OptionalDirPath[81],       // Path to Optional Dir
       SetupDirPath[81],          // Path to Master Setup Directory
       SysopHoldPath[81],         // sysop hold dir
       ResumeDirPath[81],         // send partial files to
       DoorsPath[81],             // Door Path
       ModulesPath[81],           // Modules Path
       VoteBoothPath[81],         // Path to voting booth area

       // Passwords

       LocalAccessPassword[21],   // Password: Local Access (Sysop/Local Logins)
       SysopCmdsPassword[21],     // Password: Sysop Commands
       NewUserPassword[21],       // Password: New User's to apply
       SystemEntryPassword[21],   // Password: Users to enter system

       // Scripts

       LocalShell[101],           // command to launch local cli
       DropToShell[101],          // command to drop to dos.

       FontName[31],              // Font Name

       RemoteShellPassword[21],   // Password: Local Shell Access
       LocalLogonPassword[21],    // Password: Local Logon Password

       ScriptsPath[81],           // Path to Tempest Scripts

       PresetD[16][26],           // Descriptions of Presets

       BadArchivesPath[81],       // Path where bad archives are stored!

       IconSize[21],              // 0 0 500 10  icon window

       CHAR_Extra[2359];
 //________________________________________________________________________

 UBYTE LockViewMode,              // View mode to lock users into
       Chat_H,                    // Chat Color for USER
       Chat_M,                    // Chat Color for SYSOP
       ULRewardP_Time,            // Percentage of time gained for uploads
       MaxPages,                  // Maximum time user can page sysop per call
       WindowToFront,             // window to front

       SystemFlags[120],

       ULRewardP_DLCredits,       // Download Credits for a day for uploads

       AttemptsName,              // User Name Attempts
       AttemptsPass,              // User Password Attempts
       AttemptsSysP,              // System Password Attempts
       AttemptsNewU,              // New User Password Attempts

       UBYTE_Extras[95];
 //________________________________________________________________________

 WORD  NumberOfLines,            // Total Number of Nodes

       WORDExtras[40];
 //________________________________________________________________________

 int   FontSize,                  // 8: Defualt
       MaxUsers,                  // Maximim User's allowed on system

       INT_Extras[30];
 //________________________________________________________________________

 long  LowFreeSpace,              // Low point for warning of low harddrive space
       NoFreeSpace,               // Required harddrive space for uploads

       MaxSizeViewText,           // Max size of a file that can be viewed
                                  // with online view text file command.

       SystemFlags1,              // System Flags (32 Flags) #1
       SystemFlags2,              // System Flags (32 Flags) #2
       SystemFlags3,              // System Flags (32 Flags) #3
       SystemFlags4,              // System Flags (32 Flags) #4
       SystemFlags5,              // System Flags (32 Flags) #5
       SystemFlags6,              // System Flags (32 Flags) #6
       SystemFlags7,              // System Flags (32 Flags) #7
       SystemFlags8,              // System Flags (32 Flags) #8
       SystemFlags9,              // System Flags (32 Flags) #9

       LONG_Extras[30];
};

//*******************************
//*******************************
//*******************************
//*****  Struct NodeData  ******* FiLE: NodeData-x.Data - (PER NODE SETTINGS!)
//*******************************
//*******************************
//*******************************

struct NodeData
{
       // Node Paths

 TEXT  TempULWorkPath[81],        // Send file while uploading
       TextDirPath[81],           // Path to Text Directory
       DescribeDirPath[81],       // Path to Describe Directory

       IconSize[21],              // 0 0 500 10  icon window

       // Modem Information

       DeviceName[81],            // serial.device
       Open[61],                  // Modem INIT string
       Reset[31],                 // Hangup/reset string
       Ring[31],                  // RING DETECTED string
       Answer[31],                // What to do when a ring
       Busy[31],                  // to make the modem off-hook
       OnHook[21],                // to make modem on-hook
       Escape[21],                // to get modems attention

       // Scripts

       NotUsed1[51],              // Not Used
       NotUsed2[51],              // Not Used

       NodePassword[21],          // Password for this node!

       CHAR_Extra[2979];
 //________________________________________________________________________

 UBYTE LocalMode,              // 0: Serial routines active  1:View Mode
       Serial_Shared,          // 0: Normal,  1: Open in shared mode
       Auto_Iconify,           // 0: open normal  1: open into icon
       Hide_Node,              // 0: normal 1: hide screen completly

       DTR,                    // 1: dtr drop, 0 Nope use +++, but DTR only works on the internal serial prt
       Wire_Mode,              // 0: 7 wire   1: 4 Wire mode
       XON,                    // Xon/Xoff    0: off  1:on
       RAD_BOG,                // Rad_boggie  0: off  1:on
       BackGround,             // BBS screen to back ground
       FORCE,                  // 0:Empty file 1:Raw Window
       Parse,                  // 0:Parse 1:quick
       FILEPROMPT,             // 0:3 command prompt  1:pick area
       FLUSH,                  // 0: Normal  1:FLUSH SERIAL
       FUNCTION, // DEAD!
       TIMEOT,                 // 30(Defalut) for hangu[p on incomming call

       CallersLogStatus,
       CaptureLogStatus,
       DoorsLogStatus,
       DebugLogStatus,
       SysopLogStatus,

       Define[119],            // Define Flags

       NTSCPAL,                // 0= NTSC, 1=PAL
       HIGHRES,                // Interlace Mode (1)
       OVERSCAN,               // Full OverScan Mode (1)
       HALFSCREEN,             // Half Screen Mode (1)
       Sleeplogoff,            // Time before sleep logoff - was Define[41]
       MsgLogStatus,
       TransferLogStatus,
       CaptureFilter,          // Capture Filter On/Off
       MinAccessLevel,         // Minimum access level to logon to this node.
       LoadedLanguage,         // Current Loaded Lanugage
       NumberOfRings,          // Number of rings before modem picks up.
       ModemPauseDelay,        // Delay for modem pause.
       ModemCharDelay,         // Delay in between characters.

       BYTE_Extras[88];
 //________________________________________________________________________

 WORD  CurrentNode,              // Current Node #

       WORDExtras[40];
 //________________________________________________________________________

 int   SerialDeviceNumber,        // serial device unit #  (ULONG)
       BitPlanes,                 // Bit Planes
       BBSPriority,               // Normal Priority
       FileTransferPriority,      // File Trasfer Priority
       Fixed_Link,                // Fixed or Variable DTE Rate

       FrontEnd,                  // Front End Flag

       DoorsPriority,             // Doors Priority

       INT_Extras[28];
 //________________________________________________________________________

 long  HighestBaudRate,           // Highest BAUD RATE / DTE Rate
       MinBaudRate,               // Minimum Baud Rate

       NodeFlags1,                // Node Flags (32 Flags) #1
       NodeFlags2,                // Node Flags (32 Flags) #2
       NodeFlags3,                // Node Flags (32 Flags) #3
       NodeFlags4,                // Node Flags (32 Flags) #4
       NodeFlags5,                // Node Flags (32 Flags) #5
       NodeFlags6,                // Node Flags (32 Flags) #6
       NodeFlags7,                // Node Flags (32 Flags) #7
       NodeFlags8,                // Node Flags (32 Flags) #8

       LONG_Extras[30];
};

//******************************
//******************************
//******************************
//*****  Struct File_Area  ***** FiLE: Files.data
//******************************
//******************************
//******************************

struct File_Area
{
 TEXT     Name[31],       // Name of Area
          What[41],       // Description of Area
          Path[51],       // Path
          Password[21],   // Password to enter.
          EChar[50];

 BYTE     DelMonths,      // Deletion Months, 0 = Disabled.
          ON,             // On/Off Switch
          Sex,            // Sex Type Allowed (M,F,B)
          EBYTE[20];

 UBYTE    AccessLevel,    // Minimum Access Level Required
          Area,
          MinAge,
          MaxAge,
          ULTimeReward,   // Upload Time Reward Percentage.
          DLTimeReward,   // Download Time Reward Percentage.
          DLBonusReward,  // Reward given to upload for every download of his UL's
          FileIDDetection,// FileID Detection On/Off per area
          FileIDCreation, // FileID Creation  On/Off per area
          Allow,          // 0=All, 1=Upload only, 2=Download Only, 3=None
          EUBYTE[17];

 WORD     RollOver,
          WExtras[4];
 int      Eint[4];
 long     ELong[5];

 LONGBITS Flags,
          Flags2;
};

// Flags Bits

#define FA_FREEDL       (1<<2)    // All files are free donwload?     0=No, 1=Yes
#define FA_NOULCREDITS  (1<<3)    // No Upload Credits for this area. 0=Credits, 1=No
#define FA_AUTOVALIDATE (1<<4)    // Files are auto validated?        0=Yes, 1=No


//*****************************
//*****************************
//*****************************
//*****  Struct Msg_Area  ***** FiLE: Messages.data
//*****************************
//*****************************
//*****************************

struct Msg_Area
{
 TEXT     Name[31],       // Name of Area
          What[41],       // Description of Area
          Path[51],       // Path
          Password[21],   // Password
          EChar[50];

 BYTE     ON,             // On/Off Switch
          Sex,            // Sex Type Allowed (M,F,B)
          EBYTE[20];

 UBYTE    AccessLevel,    // Minimum Access Level Required
          Area,           // Area Number
          MinAge,         // Minimum Age to enter
          MaxAge,         // Maximum Age allowed to enter
          Allow,          // 0 = All, 1=Private Only, 2=Public Only, 3=Aynonoums Only
          EUBYTE[19];

 WORD     RollOver,
          WExtras[4];

 int      Eint[4];
 long     ELong[5];

 LONGBITS Flags1,
          Flags2;
};

#define MA_ALLOWANON   0x00000001  // Allow Anonymous Msgs
#define MA_ALLOWULPOST 0x00000001  // Allow Msgs to be uploaded
//***********************
//***********************
//***********************
//*****  Node_Info  *****  FiLE: NodeInfo_x
//***********************
//***********************
//***********************  // Add a ton more extra pointers next upgrade.

struct node_info
{
 struct Globals *GLOB;

 int  *mode;

 long *fileshouldbe;
 long *timelimit;

 struct User *UserInfo;
 struct SystemData *SystemDataInfo;
 struct NodeData *NodeDataInfo;
 struct Today *TodayInfo;
 struct Iconify *IconInfo;
 struct Editor *EdInfo;

 struct Screen *screen1Info;
 struct Window *windowInfo, *StatusPaneInfo, *iconInfo, *abortwindowInfo;

 struct IOExtSer *WriteSerReqInfo, *ReadSerReqInfo;
 struct IOStdReq *WriteConReqInfo, *ReadConReqInfo;
 struct IOStdReq *StatWriteReqInfo;

 struct MsgPort *WriteSerPortInfo, *ReadSerPortInfo, *TimerPortInfo;
 struct MsgPort *WriteConPortInfo, *ReadConPortInfo;
 struct MsgPort *StatWritePortInfo;

 struct timerequest *TimerMsgInfo;
 struct Msg_Area *MSGInfo;
 struct File_Area *FILESInfo;
 struct RATES *RATESInfo;
 struct R_SLOTS *R_SLOTSInfo;
 struct Questions *QuestionsInfo;
struct Runtimeinfo *RI;
};

//****************************
//*****  Struct Letters  ***** FiLE:
//****************************

struct Letters
{
 TEXT  Receiver [31],
       Sender   [31],
       Subject  [31],
       Password [9];

 long  Sent,
       Rcvd;

 int   Number,         /*  the number of the actuall message    */
       MsgArea,        /*  what area the message was written in */
       Delete,         /*  Delete  0:OK  1:DELETED              */
       Reply,          /*  This message was replied from        */
       Ano,            /*  0: normal 1:Quit Sender              */
       Read,           /*  Times the message has been read      */
       Status,         //  0=Private 1=Public 2=Password 3=Priority
                       //  4=Fowarded Mail
       ForceReply,     /*  0: na   1: get a reply               */
       Locked;         /*  0: na kill it if needed  1:Keep it   */
};

//**************************
//*****  Today Struct  *****  FiLE: Runtime.data
//**************************

struct Today
{
 TEXT   NMName[35],       // Name who sent message to next caller
        extra[40];

 UWORD  CBAUD[20], // 300,1200,2400,4800,7200,9600,12000,14400,16800,19200,28800
        AbortedDl,
        AbortedUl,
        UpRes,
        DLRes,
        Users,
        Uploads,
        Downloads,
        Feedback,
        New,
        Messages,
        F_Sysop;

 int    Calls,
        NMAno,
        BBSNumbers,
        Busy,
        extra2,
        extra3,
        Total;

 long   dl_bytes,
        ul_bytes,
        NMDate,
        TODAY,
        L_ext1,
        L_ext2,
        connected;

 TEXT   Last[31];            // Last Caller on BBS

 UWORD  CurrentUser;

 TEXT   Reserved[31];       // Reserved Caller

 TEXT   ExtraNotUsed[164];
};

//*******************
//*****  Rates  *****  FiLE: Baud-x.data (x=Node)
//*******************

struct RATES
{
 int NewBaud,
     UPLOAD[25],
     DOWNLOAD[25],
     HOUR[25];
};

//****************************
//*****  Presets Struct  *****  FiLE: Presets.Data
//****************************

struct Defaults
{
 char     MB[41],
          FB[41];

 UBYTE    Security,
          F_Ratio,
          B_Ratio,
          IdleTime,
          ViewMode;

 UWORD    DayCredits,
          FileCredits,
          WeedDays,
          ReduceDays,
          ReducedAccess;

 UWORD    Limit_Calls,
          Limit_Posts,
          Limit_ULFiles,
          Limit_DLFiles,
          Limit_Time,
          Limit_TimeBank,
          Limit_ChatTime;
 ULONG    Limit_ULBytes,
          Limit_DLBytes;

 UWORD    Total_ULFiles,
          Total_DLFiles;
 ULONG    Total_ULBytes,
          Total_DLBytes,
          ByteCredits,
          PersonalBytes;

 LONGBITS NFlags1,
          NFlags2,
          SFlags1,
          SFlags2,
          CatFlags;

 char     CExtra[110];
 UBYTE    UBExtra[50];
 UWORD    UWExtra[25];
 ULONG    ULExtra[12];
};

//*******************************
//*****  Flag Files Struct  *****
//*******************************

struct FLAG
{
 TEXT  FileName[13];
 BYTE  Area;
 int   Number;
 ULONG Bytes;
 BYTE  COST;               // 0=Normal , 1=Free
 BYTE  EBYTES[8];
};

//****************************
//*****  Catalog Struct  *****  FiLE: Catalog.x
//****************************

struct Catalogs
{
 TEXT     FileName[13],
          Password[4],

          DateU[9],
          LastDateD[9],

          Uploader[31],
          Receiver[31]; // Only Used in F-Mail - Area 0.. Have 2 structs

 BYTE     Security; // 1 = Public, -1 = Sysop, -2 = UnVal, -3 = BadArchive

 UBYTE    Access;
                  //  0x01  0x02   0x04   0x08  0x10   0x20    0x40  0x80
 BYTEBITS Flags;  // Active,Free,ExtDesc,DLock,ELock,HDOnline,ArcTest- 8 Togglable Bits

 ULONG    Bytes;  // Filesize

 TEXT     Line[12][45];
};

struct UP_G
{
 TEXT     FileName[13],
          Password[4],

          DateU[9],
          LastDateD[9],

          Uploader[31],
          Receiver[31]; // Only Used in F-Mail - Area 0.. Have 2 structs

 BYTE     Security;

 UBYTE    Access,
          Area;
                  //  0x01  0x02  0x04
 BYTEBITS Flags;  // Active,Free,ExtDesc; --- 8 Togglable Bits

 ULONG    Bytes;

 TEXT     Line[12][45];
};

struct STACK
{
 char Command[40];
};

struct Indx
{
 int Active,
     FirstMsgNumber,
     LastMsgNumber,
     LastMsgSlot;
};


struct R_SLOTS
{
 int T_0,
     T_15,
     T_30,
     T_45;
};


// 'Questions.data'
struct Questions
{
 char ASK [15] [60];
 int  ResponseLines[15];
};

// the 'Keys.data' file
struct F_KEYS
{
 int Online[21],
     Offline[21];
};

// Internal BBS USE ONLY
struct Editor
{
 int  Sec,
      Opt,                    // Optional Flag #, user must have access to.
      OptType,                // Normal or Sysop Flags
      Msg,
      File,
      Cur;
 char Typed[200],
      Command[256],
      Execute[256];
};

// Internal BBS USE ONLY
struct Iconify
{
 BYTE  Iconfied,          // 0:nope 1:yep
       Chat;              // 0: nope  1:tried to chat

 ULONG Baud;              // speed of user

 TEXT  Name[35],          // the user online
       Node_Number[3],    // the node/port #
       Last_Area[20],     // current area of BBS
       Last_Command[30],  // Last Command Entered
       Last_TextFile[35]; // last txt file
};


/*
  Filename sent for the external protocol to pick up.
   T:ProtoConfig_#  <- the # indicates the node number

CLI CALL >  Zmodem 1

this tells the proto driver zmodem to load the stats for the config
for node #1.
*/

struct protostats
{
 TEXT  Config[50],        /* The commands of the driver */
       UploadArea[255],    /* the Work Area              */
       LogPath[255],
       SerialDevice[50],
       KnownFileName[50],
       OptionPath[255],         /* to get the .opt files */
       BBSPATH[255],
       ex_strings[5][255];

 int   Mode,              /* 0: Dl, 1:ul                */
       Iconify,           /* Icon.. 0:no  1:yes         */
       Priority,
       UnitNumber,        /* the serial unit #          */
       ex_ints[10];

 ULONG User_Speed,        /* The baud rate for the user online's info */
       FreeSpace,         /* space need to be free on drive           */
       ex_ulongs[10];
};

/* the struct to tell the protocol what files are to be downloaded */

struct Down_Load
{
 TEXT File[255],
      FileName[13],
      ex_string[187];
 int  Area,
      Cost,
      FileNumber,
      ex_ints[9];
 long Bytes,
      ex_longs[10];
};

/* the protocol, fills in these stats about each file downloaded so the bbs
   knows what happened, and how to charge the user for the downloads
*/

struct DownLoad_Status
{
 TEXT  File[255],
       ex_strings[5][255];

 int   Cost,                        // 1: Free dl,  0: charge normal
       Area,
       Good,
       Errors,
       Mins,
       Secs,
       FileNumber,
       ex_ints[7];

 long  First_Byte_Sent,
       Last_Byte_Sent,
       Bytes_To_Charge,
       Files_To_Charge,
       CPS,
       FileSize,
       Seconds,
       ex_longs[9];
};


struct Name  // Accounts Index File
{
 char Username[31];
};

struct msgpassing
{
 int  REPLYNUMBER,
      TYPE,
      STATUS,
      AREA;
 char RECEIVER[31],
      SUBJECT[31];
};

struct prom
{
 TEXT prompts[35][255];
};

struct passe
{
 int  val1,val2,val3,val4,val5;
 char te[20],te1[20];
 long vt[15];
 char str[10][80];
};

struct UploadXPR
{
 TEXT Name[40],
      Lib[40],
      Config[40],
      Unknown[10],
      BBSMODE[10];
};

struct DownloadXPR
{
 TEXT Name[40],
      Lib[40],
      Config[40],
      Unknown[10],
      BBSMODE[10];
};

 struct L
  {
   TEXT LINE[185];
  };

 struct LL
  {
   TEXT LINE[50];
  };

 struct g
  {
   ULONG number;
   TEXT com[16][255];
  };

struct TempMessage
{
 struct Message Msg;
 int Command;
 int Node;
 int Data;

 struct User *UserInfo;
 struct NodeData *NodeDataInfo;
 struct Today *TodayInfo;
};
