home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / CBVR097U.ZIP / RBVVAR.PAS < prev    next >
Pascal/Delphi Source File  |  1993-03-09  |  20KB  |  453 lines

  1. UNIT RBVVAR; (* contains variables specific to RENEGADE version *)
  2.  
  3. INTERFACE
  4.  
  5. CONST
  6.  
  7.     _version            = 'RENEGADE-CBV 0.97 ';
  8.  
  9.     _config             = 'CBVCFG.';
  10.     _user_file          = 'USERS.DAT';
  11.     _versionflag1       = 1100000100;
  12.     _versionflag2       = 1000100000;
  13.  
  14.     maxbases=250;
  15.     maxfbases=250;
  16.  
  17.  
  18. TYPE
  19.  
  20.   acrq='@'..'Z';                  { Access Restriction flags }
  21.  
  22.   colors   = array[FALSE..TRUE,0..9] of byte; { Color tables }
  23.  
  24.   mzscanr  = set of 1..maxbases;                 { Which message bases to scan }
  25.   fzscanr  = set of 1..maxfbases;                { Which file bases to scan }
  26.   mhireadr = array[1..maxbases] of longint;      { Lastread pointers }
  27.  
  28.  
  29.   uflags =
  30.    (rlogon,                       { L - Limited to one call a day }
  31.     rchat,                        { C - No SysOp paging }
  32.     rvalidate,                    { V - Posts are unvalidated }
  33.     ruserlist,                    { U - Can't list users }
  34.     ramsg,                        { A - Can't post an auto message }
  35.     rpostan,                      { * - Can't post anonymously }
  36.     rpost,                        { P - Can't post }
  37.     remail,                       { E - Can't send email }
  38.     rvoting,                      { K - Can't use voting booth }
  39.     rmsg,                         { M - Force email deletion }
  40.  
  41.     xreplace,                      { use me }
  42.     xhotkey,                       { hotkey input mode }
  43.     xavatar,                       { Supports Avatar }
  44.     xxause,                        { screen pausing }
  45.     xnovice,                       { user requires novice help }
  46.     xansi,                         { Supports ANSI }
  47.     xcolor,                        { Supports color }
  48.     xalert,                        { Alert SysOp upon login }
  49.     xsmw,                          { Short message(s) waiting }
  50.     xnomail,                       { Mailbox is closed }
  51.  
  52.     fnodlratio,                   { 1 - No UL/DL ratio }
  53.     fnopostratio,                 { 2 - No post/call ratio }
  54.     fnofilepts,                   { 3 - No file points checking }
  55.     fnodeletion);                 { 4 - Protected from deletion }
  56.  
  57.   suflags =
  58.     (lockedout,                   { if locked out }
  59.     deleted,                      { if deleted }
  60.     trapactivity,                 { if trapping users activity }
  61.     trapseparate,                 { if trap to seperate TRAP file }
  62.     chatauto,                     { if auto chat trapping }
  63.     chatseparate,                 { if separate chat file to trap to }
  64.     slogseparate,                 { if separate SysOp log }
  65.     clsmsg,                       { if clear-screens }
  66.     avadjust,                     { if AVATAR color adjust }
  67.     fseditor                      { if Full Screen Editor }
  68.   );
  69.  
  70.   ACFF                  = SET OF ACRQ;
  71.   ACRR                  = SET OF UFLAGS;
  72.  
  73.  
  74.     ConfigRec           = RECORD
  75.       header            : STRING[15];
  76.  
  77.       use_note_field,
  78.       compare_fons,                    (* compare userrec.phone 2 entry?? *)
  79.       update_trash,
  80.       allow_ld,
  81.       allow_out_ld,
  82.       CTS_RTS,
  83.       hangup_after,
  84.       use_callfile,                    (* CANCALL.DAT - ac-pr to only call *)
  85.       direct_write,
  86.       quite_mode,                      (* option requested by Apolloyn *)
  87.       allow_toll                       (* allow toll calls? *)
  88.                        : BOOLEAN;
  89.  
  90.       retry_attempts,
  91.       delay_time,
  92.       drop_delay,
  93.       min_time,                        (* min time granted for door use *)
  94.       hang_time,                       (* no entry hangup time *)
  95.       max_SL,
  96.       logtype          : BYTE;         (* 0=NONE 1=PART 2=COMP *)
  97.       startmenu        : STRING[7];
  98.  
  99.       LC_SL,
  100.       LC_DSL,
  101.       LD_SL,
  102.       LD_DSL           : BYTE;
  103.  
  104.       LC_AR,
  105.       LD_AR            : ACFF;
  106.  
  107.       LC_flags,
  108.       LD_flags         : ACRR;      (* userrec.uflags *)
  109.  
  110.       IRQLevel,
  111.  
  112.       LC_filepoints,
  113.       LD_filepoints    : INTEGER;
  114.  
  115.       bbs_areac,
  116.       bbs_prefix,
  117.       bbs_suffix       : STRING[4];
  118.  
  119.       LD_PREFIX        : STRING[20];
  120.  
  121.       dialcommand,                     (* command to dial on modem *)
  122.       hangupcmd        : STRING[30];   (* command to hangup the modem *)
  123.  
  124.       logfiledir,
  125.       _BBSDIR_         : STRING[60];   (* now is BBS directory! *)
  126.  
  127.       version1,
  128.       version2,
  129.  
  130.       LastDate,                       (* for checking autocfg *)
  131.  
  132.       LD_WIN_START,
  133.       LD_WIN_STOP      : LONGINT;
  134.  
  135.     END;
  136.  
  137.   RGuserrec= record
  138.     name:string[36];                  { system name      }
  139.     realname:string[36];              { real name        }
  140.     pw:string[20];                    { password         }
  141.     ph:string[12];                    { phone #          }
  142.     bday:string[8];                   { birthdate        }
  143.     firston:string[8];                { first on date    }
  144.     laston:string[8];                 { last on date     }
  145.     street:string[30];                { street address   }
  146.     citystate:string[30];             { city, state      }
  147.     zipcode:string[10];               { zipcode          }
  148.     usrdefstr:array[1..3] of string[35]; { type of computer }
  149.                                       { occupation       }
  150.                                       { BBS reference    }
  151.     note:string[35];                  { SysOp note       }
  152.     userstartmenu:string[8];          { menu to start at }
  153.     lockedfile:string[8];             { print lockout msg}
  154.     flags:set of uflags;              { flags            }
  155.     sflags:set of suflags;            { status flags     }
  156.     ar:set of acrq;                   { AR flags         }
  157.     vote:array[1..25] of byte;        { voting data      }
  158.  
  159.     sex:char;                         { gender           }
  160.     ttimeon,                          { total time on    }
  161.     uk,                               { UL k             }
  162.     dk:longint;                       { DL k             }
  163.     tltoday,                          { # min left today }
  164.     forusr,                           { forward mail to  }
  165.     filepoints:integer;               { # of file points }
  166.  
  167.     uploads,downloads,                { # of ULs/# of DLs}
  168.     loggedon,                         { # times on       }
  169.     msgpost,                          { # message posts  }
  170.     emailsent,                        { # email sent     }
  171.     feedback,                         { # feedback sent  }
  172.     timebank,                         { # mins in bank   }
  173.     timebankadd,                      { # added today    }
  174.     dlktoday,                         { # kbytes dl today}
  175.     dltoday:word;                     { # files dl today }
  176.  
  177.     waiting,                          { mail waiting     }
  178.     linelen,                          { line length      }
  179.     pagelen,                          { page length      }
  180.     ontoday,                          { # times on today }
  181.     illegal,                          { # illegal logons }
  182.     barf,
  183.     lastmbase,                        { # last msg base  }
  184.     lastfbase,                        { # last file base }
  185.     sl,dsl:byte;                      { SL / DSL         }
  186.  
  187.     mhiread:mhireadr;                 { Message last read date ptrs}
  188.     mzscan:mzscanr;                   { Which message bases to scan}
  189.     fzscan:fzscanr;                   { Which file bases to scan}
  190.  
  191.     cols:colors;                      { user colors }
  192.  
  193.     garbage:byte;
  194.     timebankwith:word;                { amount of time withdrawn today}
  195.     passwordchanged:word;             { last day password changed }
  196.     defarctype:byte;                  { default QWK archive type }
  197.     lastconf:char;                    { last conference they were in }
  198.     lastqwk:longint;                  { date/time of last qwk packet }
  199.     getownqwk:boolean;                { add own messages to qwk packet? }
  200.     scanfilesqwk:boolean;             { scan file bases for qwk packets? }
  201.     privateqwk:boolean;               { get private mail in qwk packets? }
  202.  
  203.     credit:longint;                   { Amount of credit a user has }
  204.     debit:longint;                    { Amount of debit a user has }
  205.     expiration:longint;               { Expiration date of this user }
  206.     expireto:char;                    { Subscription level to expire to }
  207.     ColorScheme:byte;                 { User's color scheme # }
  208.  
  209.     res:array[1..2] of byte;         { RESERVED }
  210.   end;
  211.  
  212. (***************************************************************************)
  213. const
  214.   ver='01-03 Beta';
  215.   maxprotocols=120;
  216.   maxevents=10;
  217.   maxarcs=8;
  218.   maxbatchfiles=50;
  219.   maxmenucmds=100;
  220.  
  221. TYPE
  222.   astr=string[160];
  223.  
  224.   acstring=string[20];            { Access Condition String }
  225.  
  226.   secrange = array[0..255] of integer;        { Access tables }
  227.  
  228.   filearcinforec=                 { Archive configuration records }
  229.   record
  230.     active:boolean;               { active or not  }
  231.     ext:string[3];                { file extension }
  232.     listline,                     { /x for internal;
  233.                                      x: 1=ZIP, 2=ARC/PAK, 3=ZOO, 4=LZH }
  234.     arcline,                      { compression cmdline    }
  235.     unarcline,                    { de-compression cmdline }
  236.     testline,                     { integrity test cmdline }
  237.     cmtline:string[25];           { comment cmdline        }
  238.     succlevel:integer;            { success ERRORLEVEL, -1=ignore results }
  239.   end;
  240.  
  241.   historyrec=                     { HISTORY.DAT : Summary logs }
  242.   record
  243.     date:string[8];
  244.     userbaud:array[0..4] of word;
  245.     active,callers,newusers,posts,email,feedback,
  246.     errors,uploads,downloads:word;
  247.     uk,dk:longint;
  248.   end;
  249.  
  250.   modemflags=         { MODEM.DAT status flags }
  251.   (
  252.     lockedport,       { COM port locked at constant rate }
  253.     xonxoff,          { XON/XOFF (software) flow control }
  254.     ctsrts            { CTS/RTS (hardware) flow control }
  255.   );
  256.  
  257.  
  258. linerec=
  259.   record
  260.     waitbaud:word;                    { initialization baud }
  261.     comport:byte;                     { COM port number }
  262.     init:string[50];                  { init string }
  263.     answer:string[40];                { answer string }
  264.     hangup:string[40];                { hangup string }
  265.     offhook:string[40];               { phone off-hook string }
  266.     nocallinittime:word;              { reinit modem after x mins of inactivity }
  267.     lockedportbaud:word;              { locked baud rate }
  268.     mflags:set of modemflags;         { status flags }
  269.     nocarrier:byte;                   { NO CARRIER result code }
  270.     resultcode:array[1..2,0..14]      { CONNECT result codes }
  271.                  of byte;             { 300,1200,2400,4800,7200,9600,12000,14400,16800,19200,5 extra}
  272.     logonacs:acstring;                { acs string to logon this node }
  273.     doorpath:string[40];              { path to write door info files to }
  274.   end;
  275.  
  276.   validationrec = record
  277.     description:string[25];           { description }
  278.     newsl,                            { new SL }
  279.     newdsl:byte;                      { new DSL }
  280.     newar:set of acrq;                { new AR }
  281.     newac:set of uflags;              { new AC }
  282.     newfp:integer;                    { file points to add }
  283.     newcredit:longint;                { new credit (added) }
  284.     expiration:word;                  { days until expiration }
  285.     expireto:char;                    { validation level to expire to }
  286.     softar:boolean;                   { TRUE=AR added to current, else replaces }
  287.     softac:boolean;                   { TRUE=AC    "   "   "       "      "  }
  288.     newmenu:string[8];                { User start out menu }
  289.   end;
  290.  
  291.  
  292. systatrec=
  293.   record
  294.     datapath:string[40];              { DATA path }
  295.     miscpath:string[40];              { MISC path }
  296.     menupath:string[40];              { MENU path }
  297.     logspath:string[40];              { LOGS path }
  298.     msgpath:string[40];               { MSGS path }
  299.     nodepath:string[40];              { NODE list path }
  300.     temppath:string[40];              { TEMP path }
  301.     protpath:string[40];              { PROT path }
  302.     arcspath:string[40];              { ARCS path }
  303.  
  304.     bbsname:string[40];               { BBS name }
  305.     bbsphone:string[12];              { BBS phone number }
  306.     sysopname:string[30];             { SysOp's name }
  307.  
  308.     lowtime,                          { SysOp begin minute (in minutes) }
  309.     hitime,                           { SysOp end time }
  310.     dllowtime,                        { normal downloading hours begin.. }
  311.     dlhitime,                         { ..and end }
  312.     minbaudlowtime,                   { minimum baud calling hours begin.. }
  313.     minbaudhitime,                    { ..and end }
  314.     minbauddllowtime,                 { minimum baud downloading hours begin.. }
  315.     minbauddlhitime:integer;          { ..and end }
  316.  
  317.     minimumbaud,                      { minimum baud rate to logon }
  318.     minimumdlbaud:longint;            { minimum baud rate to download }
  319.  
  320.     shuttlelog,                       { Use Shuttle Logon? }
  321.     closedsystem,                     { Allow new users? }
  322.     swapshell:boolean;                { Swap on shell? }
  323.  
  324.     sysoppw,                          { SysOp password }
  325.     newuserpw,                        { newuser password }
  326.     minbaudoverride,                  { override minimum baud rate }
  327.     shuttlepw:string[20];             { Shuttle password }
  328.  
  329.     crapola2:string[8];               { }
  330.  
  331.     sop,                              { SysOp }
  332.     csop,                             { Co-SysOp }
  333.     msop,                             { Message SysOp }
  334.     fsop,                             { File SysOp }
  335.     spw,                              { SysOp PW at logon }
  336.     seepw,                            { see SysOp PWs remotely  }
  337.     normpubpost,                      { make normal public posts }
  338.     normprivpost,                     { send normal e-mail }
  339.     anonpubread,                      { see who posted public anon }
  340.     anonprivread,                     { see who sent anon e-mail }
  341.     anonpubpost,                      { make anon posts }
  342.     anonprivpost,                     { send anon e-mail }
  343.     seeunval,                         { see unvalidated files }
  344.     dlunval,                          { DL unvalidated files }
  345.     nodlratio,                        { no UL/DL ratio }
  346.     nopostratio,                      { no post/call ratio }
  347.     nofilepts,                        { no file points checking }
  348.     ulvalreq,                         { uploads require validation }
  349.     junkola1,                         { nuuuuuuuuukkkkkkkked }
  350.     overridechat:acstring;            { override chat hours }
  351.  
  352.     maxprivpost,                      { max email can send per call }
  353.     maxfback,                         { max feedback per call }
  354.     maxpubpost,                       { max posts per call }
  355.     maxchat,                          { max sysop pages per call }
  356.     maxwaiting,                       { max mail waiting }
  357.     csmaxwaiting,                     { max mail waiting for Co-SysOp + }
  358.     junk1,                            { }
  359.     junk2,                            { }
  360.     maxlogontries,                    { tries allowed for PW's at logon }
  361.     sysopcolor,                       { SysOp color in chat mode }
  362.     usercolor:byte;                   { user color in chat mode }
  363.     minspaceforpost,                  { minimum drive space left to post }
  364.     minspaceforupload:integer;        { minimum drive space left to upload }
  365.     backsysoplogs,                    { days to keep SYSOP##.LOG }
  366.     eventwarningtime,                 { minutes before event to warn user }
  367.     wfcblanktime:byte;                { minutes before blanking WFC menu }
  368.  
  369.     allowalias,                       { allow handles? }
  370.     phonepw,                          { phone number password in logon? }
  371.     localsec,                         { use local security? }
  372.     globaltrap,                       { trap everyone's activity? }
  373.     autochatopen,                     { automatically open chat buffer? }
  374.     autominlogon,                     { Auto-Message at logon? }
  375.     bullinlogon,                      { bulletins at logon? }
  376.     lcallinlogon,                     { "Last Few Callers" list at logon? }
  377.     yourinfoinlogon,                  { "Your Info" at logon? }
  378.     offhooklocallogon,                { phone off-hook for local logons? }
  379.     forcevoting,                      { manditory voting? }
  380.     compressbases,                    { "compress" file/msg base numbers? }
  381.     searchdup:boolean;                { search for dupes files when UL? }
  382.     slogtype:byte;                    { log type: File/Printer/Both }
  383.     stripclog:boolean;                { strip colors from SysOp log? }
  384.     newapp,                           { send new user application to # }
  385.     timeoutbell,                      { minutes before timeout beep }
  386.     timeout:integer;                  { minutes before timeout }
  387.     useems:boolean;                   { use EMS for overlay }
  388.     usebios:boolean;                  { use BIOS for video output }
  389.     cgasnow:boolean;                  { snow supression on }
  390.     alertbeep:integer;                { time between alert beeps }
  391.  
  392.     filearcinfo:
  393.         array[1..maxarcs] of filearcinforec;           { archive specs }
  394.     filearccomment:
  395.         array[1..3] of string[40];    { BBS comment files for archives }
  396.     uldlratio,                        { use UL/DL ratios? }
  397.     fileptratio:boolean;              { use auto file-pt compensation? }
  398.     fileptcomp,                       { file point compensation ratio }
  399.     fileptcompbasesize,               { file point base compensation size }
  400.     ulrefund,                         { percent of time to refund on ULs }
  401.     tosysopdir:byte;                  { SysOp file base }
  402.     validateallfiles:boolean;         { validate files automatically? }
  403.     maxintemp,                        { max K allowed in TEMP }
  404.     minresume:integer;                { min K to allow resume-later }
  405.  
  406.     RES99:array[1..11] of byte;
  407.  
  408.     sysoppword:boolean;               { check for sysop password? }
  409.  
  410.     RES98:array[1..9] of byte;
  411.  
  412.     allstartmenu:string[8];           { logon menu to start users on }
  413.     bulletprefix:string[8];           { default bulletins filename }
  414.  
  415.     timeallow,                        { time allowance }
  416.     callallow,                        { call allowance }
  417.     dlratio,                          { # ULs/# DLs ratios }
  418.     dlkratio,                         { DLk/ULk ratios }
  419.     postratio,                        { posts per call ratio }
  420.     dloneday,                         { Max number of dload files in one day}
  421.     dlkoneday:secrange;               { Max k downloaded in one day}
  422.  
  423.     lastdate:string[8];               { last system date }
  424.     curwindow:byte;                   { type of SysOp window in use }
  425.     istopwindow:boolean;              { is window at top of screen? }
  426.     callernum:longint;                { system caller number }
  427.     numusers:integer;                 { number of users }
  428.   end;
  429.  
  430. (***************************************************************************)
  431.  
  432.  
  433.  
  434. VAR
  435.  
  436.    SecTable            : secrange;
  437.  
  438.    AddTimeLOCAL,
  439.    AddTimeLONGD        : INTEGER;
  440.  
  441.    RGuserfile          : FILE OF RGuserrec;
  442.    RGuser              : RGuserrec;
  443.    RGUserFN            : STRING;
  444.  
  445.    Config              : ConfigRec;
  446.    ConfigFile          : FILE OF ConfigRec;
  447.  
  448.    RealCFGName         : STRING;
  449.  
  450. IMPLEMENTATION
  451.  
  452. END.
  453.