home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / TAGBBS / TAGR25G.ZIP / TAGR25G.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1990-10-02  |  31.0 KB  |  613 lines

  1. {
  2. T.A.G. (C) Copyrighted 1986-1990 by Robert Numerick and Victor Capton
  3. All rights reserved.
  4.  
  5.                    -----------------------------------
  6.                    T.A.G. Version 2.5g Data Structures
  7.                    -----------------------------------
  8.  
  9. All we ask if you use these records is to give credit where credit is due.
  10.  
  11. Additional structure information may be given out on an individual basis
  12. depending on the situation.
  13.  
  14. Program: TAGR25G.PAS
  15. }
  16.  
  17. type
  18.  
  19.   arflagtype='@'..'Z'; {AR flags}
  20.  
  21.   arflagset=set of arflagtype; {Set of AR flags}
  22.  
  23.   flagrec=(      {Special flags}
  24.     autoprivdel, {A=Force user to delete private mail}
  25.     nopostcall,  {B=No post call ratio}
  26.     ForceULScan, {C=Force this user to automatically scan when uploading}
  27.     ranon,       {D=Restrict from posting anonymous}
  28.     rbbslist,    {E=Restrict from adding to other BBS list}
  29.     rchat,       {F=Restrict from chatting}
  30.     nodllimit,   {G=No download ratio limit}
  31.     rpubmsg,     {H=Restrict from posting public mail}
  32.     rprivmsg,    {I=Restrict from sending private mail}
  33.     rvoting,     {J=Restrict from voting}
  34.     onecall,     {K=One call per day allowed}
  35.     pubnotval,   {L=Public posts are not validated}
  36.     protdel,     {M=Protect from deletion}
  37.     nofilepts,   {N=No file point checks}
  38.     rfileval,    {O=Word wrap in messages enabled}
  39.     pause,       {P=[PAUSE] active}
  40.     ansi,        {Q=ANSI graphics active}
  41.     color,       {R=Color active if ANSI present}
  42.     onekey,      {S=Onekey input used instead of line input}
  43.     alert,       {T=Alert active from user's next call}
  44.     usermale,    {U=User is of the male gender}
  45.     mboxclosed,  {V=Mail box closed to all but SysOp's}
  46.     tabs,        {W=VT100 tabs are used to optimize display}
  47.     clschar      {X=Clear screen characters used}
  48.     );           {3 bytes used for 24 flags in set}
  49.  
  50.   flagset=set of flagrec; {Set of special flags}
  51.  
  52.   ConfigFlagRec=(
  53.     UseCustomMenus,  {Allow custom ANSI menus}
  54.     uuflag1,
  55.     uuflag2,
  56.     uuflag3,
  57.     uuflag4,
  58.     uuflag5,
  59.     uuflag6,
  60.     uuflag7,
  61.     uuflag8,
  62.     uuflag9,
  63.     uuflag10,
  64.     uuflag11,
  65.     uuflag12,
  66.     uuflag13,
  67.     uuflag14,
  68.     uuflag15,
  69.     uuflag16,
  70.     uuflag17,
  71.     uuflag18,
  72.     uuflag19,
  73.     uuflag20,
  74.     uuflag21,
  75.     uuflag22,
  76.     uuflag23
  77.     );
  78.  
  79.   ConfigFlagSet=set of ConfigFlagRec;
  80.  
  81.   filerec=(           {File flags}
  82.     notvalidated,     {File is not validated}
  83.     ownerrestricted,  {Uploader did not receive credit on upload}
  84.     uuf1,             {Reserved}
  85.     uuf2,             {Reserved}
  86.     uuf3,             {Reserved}
  87.     uuf4,             {Reserved}
  88.     uuf5,             {Reserved}
  89.     uuf6              {Reserved}
  90.     );                {1 byte used for 8 flags in set}
  91.  
  92.   flagrecset=set of filerec; {Set of file flags}
  93.  
  94.   msgscanrec=set of 0..55; {Set of flags for message section scanning}
  95.  
  96.   filescanrec=set of 0..174; {Set of flags for file section scanning}
  97.  
  98.   colorrec=
  99.     array[false..true,0..9] of byte; {Array of B&W/Color Colors}
  100.                                      {  false=Black and white colors}
  101.                                      {  true =Color colors}
  102.  
  103.   umsgsrec=record    {User last read message point for each section}
  104.     ltr:char;        {Message letter - e.g. "A" of A-28432}
  105.     number:integer;  {Message number - e.g. -28432 of A-28432}
  106.   end;
  107.  
  108.   smalrec=record     {User name index - NAMES.LST}
  109.     name:string[36]; {User name}
  110.     number:integer;  {User number}
  111.   end;
  112.  
  113.   userrec=record                    {User log - USER.LST}
  114.     uname,                          {User name}
  115.       rname:string[36];             {Real name}
  116.     addr,                           {Address}
  117.       comtype,                      {Computer type}
  118.       citystate,                    {City/State}
  119.       snote:string[30];             {SysOp note}
  120.     lastdate,                       {Last date on - MS-DOS format}
  121.       lasttime:integer;             {Last time on - MS-DOS format}
  122.     pw:string[16];                  {Password}
  123.     phone:string[12];               {Phone number}
  124.     zcode:string[10];               {Zip code}
  125.     qscan:array[0..55] of umsgsrec; {Array of last read pointers}
  126.                                     {for each message section   }
  127.     vote:array[1..20] of byte;      {Array of voting answers for each question}
  128.     callspr:array[1..15] of byte;   {Call spread for last 15 calls - Number}
  129.                                     {of days between each call:            }
  130.                                     {    0     =Called the same day        }
  131.                                     {    1..253=X number of days between   }
  132.                                     {    254   =254 or more days between   }
  133.                                     {    255   =Element not used yet       }
  134.     ttimeon,                        {Total time on system in minutes}
  135.       ulk,                          {UL K-Bytes}
  136.       dlk:real;                     {DL K-Bytes}
  137.     usernum,                        {User number                }
  138.                                     {  0            =Deleted    }
  139.                                     {  Same as rec  =Normal user}
  140.                                     {  Diff from rec=Locked out }
  141.       privpost,                     {Private posts}
  142.       pubpost,                      {Public posts}
  143.       feedback,                     {Feedback sent to SysOp}
  144.       numcalls,                     {Total number of calls to system}
  145.       numul,                        {Number of uploads}
  146.       numdl,                        {Number of downloads}
  147.       fmail,                        {Forward mail to which user number}
  148.                                     {  0=Forwarding inactive          }
  149.       hbaud,                        {Highest baud rate user supports}
  150.       timetoday,                    {Minutes on system date of last call}
  151.       credit,                       {Credit for mail in cents}
  152.       debit,                        {Debit for mail in cents}
  153.       points,                       {File points}
  154.       timebank,                     {Minutes in time bank}
  155.       bday,                         {Birthdate of user - MS-DOS format}
  156.       lastchange:integer;           {Reserved}
  157.     strtmenu,                       {Reserved}
  158.       sl,                           {Security level - SL}
  159.       dsl,                          {Download security level - DSL}
  160.       hlvl,                         {Help level}
  161.       colms,                        {Number of screen columns}
  162.       lines,                        {Number of screen lines}
  163.       callstoday,                   {Number of calls to system today}
  164.       illegal,                      {Illegal logon attempts}
  165.       waiting,                      {Number of private messages waiting}
  166.       lmsgbase,                     {Last message base}
  167.       ldlbase,                      {Last file section}
  168.       cls,                          {Reserved}
  169.       fulledit:byte;                {Full screen editor status}
  170.                                     {  0=Ask user each time   }
  171.                                     {  1=Never use it         }
  172.                                     {  2=Always use it        }
  173.     ar:arflagset;                   {AR flag set}
  174.     flags:flagset;                  {Special flag set}
  175.     msgsysop:array[1..4] of byte;   {Array of SubOp message boards (255=None)}
  176.     msgscan:msgscanrec;             {Message area scan set}
  177.     dlscan:filescanrec;             {File section scan set}
  178.     colors:colorrec;                {User colors}
  179.     tbdeposit,                      {Time deposited in bank date of last call}
  180.       tbwithdraw:byte;              {Time withdraw from bank date of last call}
  181.     adjtime:integer;                {Adjusted time date of last call}
  182.     ConfigFlags:ConfigFlagSet;
  183.     unused:array[1..9] of byte;    {Reserved}
  184.   end;
  185.  
  186.   messages=record    {Message filename}
  187.     ltr:char;        {Message letter    - e.g. A      of A-28432.1}
  188.     number:integer;  {Message number    - e.g. -28432 of A-28432.1}
  189.     ext:byte;        {Message extension - e.g. 1      of A-28432.1}
  190.   end;
  191.  
  192.   anontyp=(   {Message section anonymous type}
  193.     no,       {Anonymous messages not allowed}
  194.     yes,      {Anonymous messages allowed}
  195.     forced,   {Messages forced anonymous}
  196.     atunused  {Reserved}
  197.     );
  198.  
  199.   boardrec=record         {Public message section - BOARDS.DAT}
  200.     name:string[45];      {Base name                          }
  201.                           {30 max real length - Rest for color}
  202.     filename:string[12];  {Header filename (does NOT include ".BRD"}
  203.     sl:byte;              {SL required}
  204.     maxmsgs:byte;         {Maximum messages}
  205.     pw:string[16];        {Password required - Null if none}
  206.     anonymous:anontyp;    {Anonymous type}
  207.     ar:arflagtype;        {AR flag required}
  208.     noansi:boolean;       {ANSI graphics disabled}
  209.     postsl:byte;          {SL required to post}
  210.   end;
  211.  
  212.   msgstat=(       {Message status type}
  213.     validated,    {Normal validated message}
  214.     unvalidated,  {Unvalidated message}
  215.     deleted       {Deleted message - Ready for purge}
  216.     );
  217.  
  218.   messagerec=record       {Public message header - *.BRD}
  219.     title:string[30];     {Subject}
  220.     messagestat:msgstat;  {Message status}
  221.     message:messages;     {Message name}
  222.     owner:integer;        {User number of poster}
  223.     date:integer;         {Date posted - Days since Jan 1, 1985}
  224.     unused:byte;          {Reserved}
  225.   end;
  226.  
  227.   mailrec=record       {Private message header - EMAIL.DAT}
  228.     title:string[30];  {Subject}
  229.     from,              {User number of who message from}
  230.       destin:integer;  {User number of who message to}
  231.     msg:messages;      {Message name}
  232.     date:integer;      {Date posted - Days since Jan 1, 1985}
  233.     unused:byte;       {Reserved}
  234.   end;
  235.  
  236.   smallmessagerec=record  {Short messages - SHORTMSG.DAT}
  237.     msg:string[160];      {Message text}
  238.     destin:integer;       {User number of who message to}
  239.   end;
  240.  
  241.   vdatar=record                 {Voting questions - VOTING.DAT}
  242.     question:string[74];        {Question}
  243.     numa:integer;               {Number of answers in below array}
  244.     answ:array[0..9] of record  {Array of answer data}
  245.       ans:string[40];           {Answer}
  246.       numres:integer;           {Number of users who choose this response}
  247.     end;
  248.   end;
  249.  
  250.   ulrec=record              {File section - FBOARDS.DAT}
  251.     name:string[39];        {Section name                       }
  252.                             {26 max real length - Rest for color}
  253.     filename:string[8];     {Listing filename (does not include ".DIR")}
  254.                             {If UL and DL paths are different,         }
  255.                             {filename for upload section is "FILES"    }
  256.                             {If first character is "@" then *.DIR file }
  257.                             {is found in main data files directory     }
  258.     dlpathname:string[30];  {Download pathname}
  259.     ulpathname:string[30];  {Upload pathname}
  260.     password:string[16];    {Password required}
  261.     dsl,                    {DSL required}
  262.       seenames:byte;        {DSL required to see uploader names}
  263.     arlvl:arflagtype;       {AR flag required}
  264.     noratio:boolean;        {Ratio disabled}
  265.   end;
  266.  
  267.   ulfrec=record              {File listing - *.DIR}
  268.     filename:string[12];     {File name}
  269.     description:string[78];  {Description}
  270.     nacc:integer;            {Number of times file downloaded}
  271.     unused:byte;             {Reserved}
  272.     blocks:word;             {Number of 128 byte blocks in file}
  273.     owner:string[36];        {Uploader of file}
  274.     date:string[8];          {Date file uploaded}
  275.     daten:integer;           {Date file uploaded in days since Jan 1, 1985}
  276.     flag:flagrecset;         {File status}
  277.     points:byte;             {File points}
  278.   end;
  279.  
  280.   range=array[0..255] of integer; {Range of values for all security levels}
  281.                                   {for use in system configuration        }
  282.  
  283.   systatrec=record                    {System status - STATUS.DAT}
  284.     altpath,                          {Alternate file path}
  285.       msgspath:string[40];            {Message text path}
  286.     uusr:array[1..15] of byte;        {Reserved}
  287.     ShowFilesOpen,                    {Show Files Open on Top Screen}
  288.     localsysopwindow,                 {SysOp window when on locally}
  289.       allowsuperfast,                 {Allow SHIFT password override}
  290.       waitsend,                       {FOSSIL buffer inactive}
  291.       overlayems,                     {Attempt EMS of overlays}
  292.       lockbaud,                       {Locked baud rate}
  293.       directscreen,                   {Direct screen writes}
  294.       useems,                         {Use EMS memory for swap shell}
  295.       useswap,                        {Use swap shell}
  296.       usefossil,                      {Use FOSSIL driver}
  297.       snowcheck:boolean;              {Snow checking active}
  298.     modemresultnocarrier:string[14];  {Modem NO CARRIER result}
  299.     modemanswer:string[20];           {Modem answer phone string}
  300.     modemresultring:string[14];       {Modem RING result}
  301.     minkpost,                         {Minimum K-Bytes to post}
  302.       minkul:integer;                 {Minimum K-Bytes to upload}
  303.     autochatbufopen:boolean;          {Auto chat buffer open}
  304.     modemoffhook:string[20];          {Modem off-hook string}
  305.     modemresultok:string[14];         {Modem OK result}
  306.     logonpassword,                    {SL when SysOp PW #1 needed to logon}
  307.       readtextmsg:byte;               {SL when allowed to use /READ command}
  308.     alertchatonly,                    {Alert active only when chat on}
  309.       genericinfo,                    {Generic mode active}
  310.       logonphone:boolean;             {Logon requires phone number}
  311.     modeminit:string[54];             {Modem initialization string}
  312.     lastcaller:string[42];            {Name and number of last caller}
  313.     modemhangup:string[20];           {Modem disconnect string}
  314.     boardpw:string[16];               {New user password (Null=None)}
  315.     boardphone:string[12];            {Board phone number}
  316.     sysopcolor,                       {Chat SysOp color}
  317.       usercolor:byte;                 {Chat user color}
  318.     postcallflag:arflagtype;          {Post call ratio AR flag}
  319.     nopostcallchk,                    {SL when post call ratio ignored}
  320.       reinittime,                     {Minutes to re-init modem when no calls}
  321.       startmenu:byte;                 {Starting menu for users}
  322.     useautomsg,                       {Display auto-message during logon}
  323.       logonoffhook:boolean;           {Take phone off-hook on local logon}
  324.     nopointchk:byte;                  {DSL when file points ignored}
  325.     lastdate:string[8];               {Date last user logged on}
  326.     unused_event:
  327.       array[1..390] of byte;          {Old events-Moved to EVENTS.DAT}
  328. {$IFDEF Multi_user}
  329.     multiuserpath:string[40];         {Multi-user path}
  330. {$ELSE}
  331.     unused_multiuserpath:string[40];  {Unused}
  332. {$ENDIF}
  333.     junk:array[1..11] of byte;        {Reserved}
  334.     gfilespath:string[40];            {Main data files path}
  335.     storebadlogon:boolean;            {Store bad logon info in SysOp log}
  336.     maxbdnum,                         {Maximum number of batch DL files}
  337.       maxbunum:byte;                  {Maximum number of batch UL files}
  338.     boardname:string[48];             {Board name}
  339.     sysopmenusl:byte;                 {SL required for SysOp Control-Q menu}
  340.     sysopmenuar:arflagtype;           {AR flag required from Control-Q menu}
  341.     sysopname:string[36];             {SysOp name}
  342.     swappath:string[40];              {Swap shell path}
  343.     chatpw:string[16];                {Chat password}
  344.     modemafterhangup:string[20];      {Modem after hang up string}
  345.     uubytes:array[1..45] of byte;     {Reserved}
  346.     ksm:array[1..9] of string[255];   {Internal use}
  347.     sysoppw:
  348.       array[1..3] of string[16];      {Array of SysOp passwords}
  349.     modemresult:
  350.       array[1..8] of string[14];      {Array of modem result strings}
  351.                                       {  1,2=300 baud               }
  352.                                       {  3,4=1200 baud              }
  353.                                       {  5,6=2400 baud              }
  354.                                       {  7,8=9600 baud              }
  355.     callernum,                        {Total number of calls to system}
  356.       ulktoday,                       {K-Bytes uploaded today}
  357.       dlktoday,                       {K-Bytes downloaded today}
  358.       uur1,                           {Reserved}
  359.       uur2,                           {Reserved}
  360.       uur3:real;                      {Reserved}
  361.     users,                            {Number of active users}
  362.       activetoday,                    {Minutes active today}
  363.       callstoday,                     {Calls today}
  364.       msgposttoday,                   {Public messages posted today}
  365.       emailtoday,                     {Private messages posted today}
  366.       fbacktoday,                     {Feedback sent to SysOp today}
  367.       ultoday:integer;                {Number of uploads today}
  368.     waitbaud:word;                    {Baud rate for modem initialization}
  369.     lowtime,                          {Minutes into day for start chat hours}
  370.       hitime,                         {Minutes into day for end chat hours}
  371.       maxusers,                       {Maximum users allowed to be active}
  372.       errorstoday,                    {Number of errors today}
  373.       nuserstoday,                    {Number of new users today}
  374.       dltoday,                        {Number of downloads today}
  375.       newusermsgto,                   {User number new user message sent to}
  376.       uui1,                           {Reserved}
  377.       sysopmailto,                    {User number mail to "SYSOP" is sent to}
  378.       guestuser,                      {Guest user number (0=None)}
  379.       low300time,                     {Minutes into day 300 baud hours start}
  380.       uui2,                           {Reserved}
  381.       usagelogdays,                   {Number of days to keep USAGE.LOG}
  382.       hi300time:integer;              {Minutes into day 300 baud hours end}
  383.       UEditJumpSL:byte;               {SL required for SysOp Control-U menu}
  384.     UEditJumpAR:arflagtype;           {AR flag required from Control-U menu}
  385.     novicedisplay,                    {Number of calls to display novice msg}
  386. {$IFDEF Multi_user}
  387.       nodenumber:byte;                {Multi-user node number}
  388. {$ELSE}
  389.       unused_nodenumber:byte;         {Unused}
  390. {$ENDIF}
  391.     UEditJumpPassword:boolean;        {Use System pswd for Quick User Edit}
  392.     ScanOnUploads:boolean;            {System permits forced scan on uploads}
  393.       maxtimeinbank:word;             {Maximum minutes in time bank}
  394.       showgifres,                     {Show GIF resolution}
  395.       checkuploadspace,               {Show upload drive space}
  396.       systemsecur:boolean;            {Full keyboard security active}
  397. {$IFDEF Multi_user}
  398.     multiuser:boolean;                {Board in multi-user mode      }
  399.                                       {Assuming you have that version}
  400. {$ELSE}
  401.     unused_multiuser:boolean;         {Unused}
  402. {$ENDIF}
  403.     tbmaxdeposit,                     {Maximum daily time bank deposit}
  404.       tbmaxwithdraw,                  {Maximum daily time bank withdraw}
  405.       sysoplvl,                       {SL for SysOp}
  406.       cosysoplvl,                     {SL for CoSysOp}
  407.       suboplvl,                       {Exact SL for full SubOp}
  408.       addbbslvl,                      {SL for adding boards to bbs listing}
  409.       emaillvl,                       {SL for sending normal private mail}
  410.       unused_3,                       {Reserved}
  411.       unused_4,                       {Reserved}
  412.       seeunvallvl,                    {DSL for seeing unvalidated files}
  413.       dlcosysoplvl,                   {DSL for Download CoSysOp}
  414.       noratiochk,                     {DSL for no ratio}
  415.       readanon,                       {SL to know who send anonymous mail}
  416.       replyanon,                      {SL to reply to anonymous private mail}
  417.       publicanonany,                  {SL to post anonymous on any public base}
  418.       privateanonany,                 {SL to send private anonymous mail}
  419.       maxpubliccall,                  {Maximum public posts per call}
  420.       maxprivcall,                    {Maximum private messages per call}
  421.       maxfbackcall,                   {Maximum feedback to SysOp per call}
  422.       maxwaitso,                      {Maximum messages waiting SysOp}
  423.       seepasswords,                   {SL to see user passwords remotely}
  424.       maxwaitcs,                      {Maximum messages waiting CoSysOp}
  425.       maxwaitnorm,                    {Maximum messages waiting normal user}
  426.       comport,                        {Communications port}
  427.       timeout,                        {Minutes for inactivity time-out}
  428.       timeoutbell,                    {Minutes for inactivity bell}
  429.       backlogdays,                    {Number of days to keep SYSOP.LOG's}
  430.       privilagesl,                    {Privilege SL}
  431.       privilagedsl,                   {Privilege DSL}
  432.       cdmask,                         {Carrier detect mask}
  433.       maxlogontries,                  {Maximum logon attempts per call}
  434.       numlines,                       {Maximum lines per msg for normal user}
  435.       csnumlines,                     {Maximum lines per msg for CoSysOp}
  436.       ultimepercent,                  {UL time percent refund}
  437.       maxchats,                       {Maximum chat pages per call}
  438.       readmsgview,                    {SL for read message view user command}
  439.       readmsgval:byte;                {SL for read message user validated}
  440.     closedsystem,                     {System closed}
  441.       titlepause,                     {Allow [PAUSE] on welcome screen}
  442.       logonbulletin,                  {Logon to the bulletin section}
  443.       blankwait,                      {Blank the wait screen if no activity}
  444.       handles,                        {Allow handles}
  445.       unused_1,                       {Reserved}
  446.       securesystem,                   {Keyboard security active}
  447.       timeperday,                     {Time limits represent time per day}
  448.       mailer,                         {External mailer active}
  449.       sysopfemale,                    {SysOp is female}
  450.       scantosysoplog:boolean;         {File scans are saved in SysOp log}
  451.     timeallowed,                      {SL array of time per call/per day}
  452.       uldlnumratio,                   {DSL array of number of file UL ratios}
  453.       uldlkratio,                     {DSL array of K-Byte UL ratios}
  454.       callsallowed,                   {SL array of calls allowed per day}
  455.       postcall:range;                 {SL array of posts per 1/10 call}
  456.     hmsg:messages;                    {The very important high message pointer}
  457.     unused_2:arflagset;               {Reserved}
  458.   end;
  459.  
  460.   menuflagtype=( {Menu flag type}
  461.     sls,         {SL security check - When off DSL security check}
  462.     orcheck,     {SL or AR - When off SL and AR}
  463.     flag1,       {Time/Help display (menu) or Hidden status (command)}
  464.     flag2,       {Board display override (menu) or unused (command)}
  465.     flag3        {Menu name prompt (menu) or unused (command)}
  466.     ); {1 byte}
  467.  
  468.   menuflagset=set of menuflagtype; {Set of menu flags}
  469.  
  470.   menurec=record
  471.     longd:string[60];             {Menu desc (menu) or Long command desc (cmd)}
  472.     gsl:byte;                     {General security level - Use depends}
  473.                                   {on the "sls" flag                   }
  474.     arlvl:arflagtype;             {AR flag}
  475.     flags:menuflagset;            {Menu flags}
  476.     case menu:boolean of          {Menu or command - Variant section}
  477.       true :(menunum:byte;        {Menu number}
  478.              mprompt:string[20];  {Menu prompt unless "flag3" active}
  479.              password:string[15]; {Menu password}
  480.              fallback:byte;       {Fallback menu number}
  481.              helpfile:string[7];  {Help file ID name}
  482.              starthelp:byte;      {Starting help level}
  483.              location:byte);      {Menu location (0=Main, 1=File)}
  484.       false:(pkey:byte;           {Command PKey}
  485.              pdata:string[20];    {Command PData}
  486.              shortd:string[15];   {Command short description}
  487.              cmdkey:string[12]);  {Command execution key}
  488.   end; {case/record}
  489.  
  490.   macrorec=record                   {Macro list - MACROS.LST}
  491.     usern:integer;                  {User number of macro owner}
  492.     key:array[1..4] of string[160]; {Text for each of the macros}
  493.   end;
  494.  
  495.   sprotocolrec=record              {Single protocols - SPROT.DAT}
  496.     key:string[12];                {Execution key}
  497.     desc:string[60];               {Description}
  498.     minbaud,                       {Minimum baud rate to use}
  499.       maxbaud:word;                {Maximum baud rate to use}
  500.     dsl:byte;                      {DSL required}
  501.     templog,                       {Temp log path and name}
  502.       ullog,                       {UL log path and name}
  503.       dllog:string[52];            {DL log path and name}
  504.     ulstring,                      {UL string for DOS call}
  505.       dlstring:string[70];         {DL string for DOS call}
  506.     goodcode:boolean;              {Result codes mean good transfer}
  507.     dlcode,                        {DL error level result codes}
  508.       ulcode:array[1..6] of byte;  {DL error level result codes}
  509.   end;
  510.  
  511.   bprotocolrec=record                    {Batch protocols - BPROT.DAT}
  512.     key:string[12];                      {Execution key}
  513.     desc:string[60];                     {Description}
  514.     minbaud,                             {Minimum baud rate to use}
  515.       maxbaud:word;                      {Maximum baud rate to use}
  516.     dsl:byte;                            {DSL required}
  517.     ulstring,                            {UL string for DOS call}
  518.       dlstring:string[70];               {DL string for DOS call}
  519.     ullist,                              {UL file list file path and name}
  520.       dllist,                            {DL file list file path and name}
  521.       templog,                           {Temp log path and name}
  522.       ullog,                             {UL log path and name}
  523.       dllog:string[52];                  {DL log path and name}
  524.     maxcmdlen,                           {Maximum command line length}
  525.       posfn,                             {Position of filename in log}
  526.       posstatus:byte;                    {Position of status in log}
  527.     goodcode:boolean;                    {Result codes mean good transfer}
  528.     dlcode,                              {DL status result codes}
  529.       ulcode:array[1..6] of string[10];  {UL status result codes}
  530.   end;
  531.  
  532.   validationrec=record   {Validation information - VALIDATE.DAT}
  533.     key:char;            {Execution key}
  534.     desc:string[160];    {Description sent to user after validation}
  535.                          {76 max real length - Rest for color}
  536.     sl,                  {SL to set on validation}
  537.       dsl:byte;          {DSL to set on validation}
  538.     credit,              {Credit in cents to set on validation}
  539.       points,            {File points to set on validation}
  540.       timebank:integer;  {Time bank minutes to set on validation}
  541.     ar:arflagset;        {AR flags to set on validation}
  542.     flags:flagset;       {Special flags to set on validation}
  543.     unusedint:integer;   {Reserved}
  544.   end;
  545.  
  546.   EventType  =
  547.     (UnknownEvent,          {* 1-1. Unknown                *}
  548.      EventIsExternal,       {* 1-2. External/Internal      *}
  549.      EventIsActive,         {* 1-3. Active/InActive        *}
  550.      EventIsShell,          {* 1-4. Shell/Error            *}
  551.      EventIsMonthly,        {* 1-5. Monthly/Daily          *}
  552.      EventIsPermission,     {* 1-6. Permission/Restriction *}
  553.      EventIsChat,           {* 1-7. Chat Event             *}
  554.      EventIsSoft,           {* 1-8. Soft/Hard              *}
  555.  
  556.      BaudIsActive,          {* 2-1. Baud Rate Flag         *}
  557.      SLisActive,            {* 2-2. SL Flag                *}
  558.      DSLisActive,           {* 2-3. DSL Flag               *}
  559.      ARisActive,            {* 2-4. ARflag required        *}
  560.      InRatioIsActive,       {* 2-5. InRatioFlag            *}
  561.      TimeIsActive,          {* 2-6. Time Flag              *}
  562.      SetARisActive,         {* 2-7. Set AR flag            *}
  563.      ClearARisActive,       {* 2-8. Clear AR Flag          *}
  564.  
  565.      uuEvent31,uuEvent32,   {* Byte 3 ...                  *}
  566.      uuEvent33,uuEvent34,
  567.      uuEvent35,uuEvent36,
  568.      uuEvent37,uuEvent38,
  569.  
  570.      uuEvent41,uuEvent42,   {* Byte 4 ...                  *}
  571.      uuEvent43,uuEvent44,
  572.      uuEvent45,uuEvent46,
  573.      uuEvent47,uuEvent48,
  574.  
  575.      uuEvent51,uuEvent52,   {* Byte 5 ...                  *}
  576.      uuEvent53,uuEvent54,
  577.      uuEvent55,uuEvent56,
  578.      uuEvent57,uuEvent58
  579.     );
  580.  
  581.   EventDaysType       = Set of 0..6;
  582.  
  583. {*************************************************************************}
  584. {* The Record Structure of the EventFile                                 *}
  585. {*************************************************************************}
  586.   EventRecordType = Record               {* ---------------------------- *}
  587.     EventFlags     : Set of EventType;   {* Kinds of Events Supported    *}
  588.     EventDayOfMonth: Byte;               {* If monthly, the Day of Month *}
  589.     EventDays      : EventDaysType;      {* If Daily, the Days Active    *}
  590.     EventStartTime : Word;               {* Start Time in Min from Mid.  *}
  591.     EventFinishTime: Word;               {* Finish Time                  *}
  592.     EventDesc      : Str32;              {* Description of the Event     *}
  593.     EventQualMsg   : Str64;              {* Msg/Path if he qualifies     *}
  594.     EventNotQualMsg: Str64;              {* Msg/Path if he doesn't       *}
  595.     EventPreTime   : Byte;               {* Min. B4 event to rest. Call  *}
  596.     EventOffHook   : Boolean;            {* Take phone Offhook ?         *}
  597.     EventLastDate  : Str8;               {* Last Date Executed           *}
  598.                                          {* ---------------------------- *}
  599.     EventErrorLevel: Byte;               {* For Ext Event ErrorLevel     *}
  600.     EventShellPath : String[8];          {* File for Ext Event Shell     *}
  601.                                          {* ---------------------------- *}
  602.     LoBaud,HiBaud  : Word;               {* Limits On Baud Rates         *}
  603.     LoSL,HiSL      : Byte;               {* Limits On SL's               *}
  604.     LoDSL,HiDSL    : Byte;               {* Limits on  DSL's             *}
  605.     ARflagRequired : Char;               {* AR flag required             *}
  606.                                          {* ---------------------------- *}
  607.     MaxTimeAllowed : Word;               {* Max Time per user this event *}
  608.     SetARflag      : Char;               {* AR Flag to Set               *}
  609.     ClearARflag    : Char;               {* AR Flag to Clear             *}
  610.     EventUnused    :                     {* ---------------------------- *}
  611.       Array[1..128] of Byte;             {* Reserved                     *}
  612.   End; {Record}                          {* ---------------------------- *}
  613.