home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / prokit / data.doc < prev    next >
Encoding:
Text File  |  1989-06-02  |  12.6 KB  |  255 lines

  1.  
  2. (*
  3.  * DATA.DOC - DOOR support data provided by ProKIT
  4.  *
  5.  * (C) 1988 Samuel H. Smith (rev. 8-aug-88)
  6.  *
  7.  
  8. (*********************************************************************8
  9.  *
  10.  * This describes the layout of the PCBoard 14.0 database records and
  11.  * the various free variables that are provided by the ProKIT library.
  12.  *
  13.  * See DATA12.DOC for declarations used under PCB 12.1 (prokit 2.7)
  14.  *
  15.  *)
  16.  
  17. type
  18.    {layout of the PCBOARD.SYS file while doors are open}
  19.    pcb_sys_rec = record
  20.     {1  }display:        char2;          {display on console?  -1 or 0}
  21.     {3  }printer:        char2;          {print log?           -1 or 0}
  22.     {5  }page_bell:      char2;          {bother sysop?        -1 or 0}
  23.     {7  }alarm:          char2;          {caller alarm sound?  -1 or 0}
  24.     {9  }sysop_next:     char;           {force sysop on next? 'N', 'X' or ' '}
  25.  
  26.     {10 }errcheck:       char2;          {error check/correcting modem? -1 or 0}
  27.     {12 }graphics:       char;           {ansi graphics mode?   'Y','N','7'}
  28.     {13 }nodechat:       char;           {node chat status 'U' or 'A'}
  29.     {14 }openbps:        char5;          {BPS rate to open modem port at}
  30.     {19 }connectbps:     char5;          {BPS connect rate or 'Local'}
  31.     {24 }usernum:        integer;        {record number in user file}
  32.     {26 }firstname:      char15;         {caller's first name}
  33.     {41 }password:       char12;         {caller's password}
  34.     {53 }time_on:        integer;        {when the user logged on in MINUTES}
  35.     {55 }prev_used:      integer;        {minutes used in prev calls today, <0}
  36.     {57 }time_logged:    char5;          {hh:mm time the user logged on}
  37.     {62 }time_limit:     integer;        {maximum minutes allowed from PWRD}
  38.     {64 }down_limit:     integer;        {daily download limit/1000 from PWRD}
  39.     {66 }curconf:        byte;           {active conference when door opened}
  40.     {67 }joined:         bitmap;         {areas user has been in}
  41.     {72 }ydone:          bitmap;         {areas user has done 'Y' on}
  42.     {77 }time_added:     integer;        {highest conference added time in mins}
  43.     {79 }time_credit:    integer;        {upload/chat time credit in minutes}
  44.     {81 }slanguage:      char4;          {language used, blank, .FRE etc}
  45.     {85 }name:           char25;         {caller's full name}
  46.     {110}sminsleft:      integer;        {minutes left when door opened}
  47.     {112}snodenum:       byte;           {current node number}
  48.     {113}seventtime:     char5;          {hh:mm event time}
  49.     {118}seventactive:   char2;          {event time active? "-1" or "0 "}
  50.     {120}sslide:         char2;          {slide event? "-1" or " 0"}
  51.     {122}smemmsg:        single;         {memorized message number}
  52.     {126}scomport:       char;           {com port number '0','1','2'}
  53.     {127}fill99:         char2;          {filler UNDOCUMENTED}
  54.     {record size: 128}
  55.    end;
  56.  
  57.  
  58.    {layout of the USERS file}
  59.    pcb_user_rec = record
  60.     {1  }name:          char25;
  61.     {26 }city:          char24;
  62.     {50 }passwd:        char12;         {no spaces allowed}
  63.     {62 }busphone:      char13;
  64.     {75 }phone:         char13;
  65.  
  66.     {88 }date:          char6;          {yymmdd of last call}
  67.     {94 }time:          char5;          {hh:mm  of last call}
  68.     {99 }expert:        char;           {pcboard expert status Y or N}
  69.     {100}protocol:      char;           {X, C, Y, N}
  70.     {101}space1:        char;           {space - reserved}
  71.     {102}filedate:      char6;          {yymmdd of last file directory}
  72.     {108}level:         byte;           {security level}
  73.     {109}total_calls:   integer;        {number of times on system}
  74.     {111}pagelen:       byte;           {page length}
  75.     {112}uploads:       integer;        {number of uploads}
  76.     {114}downloads:     integer;        {number of downloads}
  77.     {116}downbytes:     double;         {daily download bytes so far}
  78.     {124}usercomment:   char30;         {user entered comment field}
  79.     {154}sysopcomment:  char30;         {sysop maintained comment field}
  80.     {184}lastused:      integer;        {minutes used so far today}
  81.     {186}expdate:       char6;          {yymmdd expiration date}
  82.     {192}explevel:      byte;           {expired security level}
  83.     {193}curconf:       byte;           {current conference number}
  84.     {194}conferences:   bitmap;         {area registration 1-39 (5 bytes)}
  85.     {199}expconf:       bitmap;         {expired conference registration}
  86.     {204}scanconf:      bitmap;         {user configured scan conferences}
  87.     {209}downtotal:     double;         {total bytes downloaded, all calls}
  88.     {217}uptotal:       double;         {total bytes uploaded, all calls}
  89.     {225}dead:          char;           {positive delete flag, Y or N}
  90.  
  91.     {226}lastread:      array[0..39] of single;
  92.                                         {last message pointer, main+39 conf's}
  93.  
  94.     {386}reserved:      char7;          {reserved for future use}
  95.  
  96.     {393}xpert:         char;           {pcb/pro's expert flag}
  97.     {394}nulls:         char;           {pcb/pro's nulls flag}
  98.     {395}scratchnum:    byte;           {scratch file number - incremented for
  99.                                          each use of a scratch file}
  100.     {396}dooruse:       byte;           {times in prodoor, up to 255}
  101.     {397}earned_k:      word;           {prodoor; earned kbytes}
  102.     {399}reserve3:      word;           {used by qmail??}
  103.     {total size: 400}
  104.    end;
  105.  
  106.  
  107.    {layout of the PCBOARD.SYS file when offline}
  108.    pcb_offline_sys_rec = record
  109.       display:        char2;          {display on console?  -1 or 0}
  110.       printer:        char2;          {print log?           -1 or 0}
  111.       page_bell:      char2;          {bother sysop?        -1 or 0}
  112.       alarm:          char2;          {caller alarm sound?  -1 or 0}
  113.       sysop_next:     char;           {force sysop on next? 'N', 'X' or ' '}
  114.       filler:         array[1..119] of char;     {filler, spaces}
  115.    end;
  116.  
  117.  
  118.    {layout of the CALLER file}
  119.    pcb_caller_rec = record
  120.       message:        array[1..62] of char;
  121.       crlf:           char2;   
  122.    end;
  123.  
  124.  
  125. (* layout of CNAMES record *)
  126.    pcbconf_rec = record
  127.       conf_name:              varstring;  {full name of the conference}
  128.       conf_rejoin:            boolean;
  129.       conf_viewmembers:       boolean;
  130.       conf_private_ul:        boolean;
  131.       conf_private_mail:      boolean;
  132.       conf_echo_mail:         boolean;
  133.       conf_addsec:            integer;
  134.       conf_addtime:           integer;    {minutes}
  135.       conf_msgblocks:         integer;    {1-32 message blocks; 1024 msgs each}
  136.  
  137.       conf_msgfile:           varstring;  {conference message base pathname}
  138.       conf_updir:             varstring;  {conference upload dir}
  139.       conf_public_uplist:     varstring;  {public uploads listing pathname}
  140.       conf_private_uplist:    varstring;  {private uploads listing pathname}
  141.       conf_private_updir:     varstring;  {private uploads dir}
  142.       conf_menufile:          varstring;  {normal user menu file pathname}
  143.       conf_smenufile:         varstring;  {sysop menu file pathname}
  144.       conf_newsfile:          varstring;  {conference news pathname}
  145.  
  146.       conf_doors:             integer;    {number of door programs}
  147.       conf_doormenu:          varstring;  {door menu pathname}
  148.       conf_doorinfo:          varstring;  {door info data pathname}
  149.  
  150.       conf_bulletins:         integer;
  151.       conf_bltmenu:           varstring;  {bulletin menu pathname}
  152.       conf_bltinfo:           varstring;  {bulletin info pathname}
  153.  
  154.       conf_scripts:           integer;    {number of scripts}
  155.       conf_scriptmenu:        varstring;  {script menu pathname}
  156.       conf_scriptinfo:        varstring;  {script info pathname}
  157.  
  158.       conf_dirs:              integer;    {file areas (not counting U/L dir)}
  159.       conf_dirmenu:           varstring;  {file area menu pathname}
  160.       conf_dirinfo:           varstring;  {file area info pathname}
  161.  
  162.       conf_dlpaths:           integer;    {number of download paths}
  163.       conf_dlinfo:            varstring;  {download path info pathname}
  164.    end;
  165.  
  166.  
  167. (* layout of pcboard.dat *)
  168.    pcbsetup_rec = record
  169.       sysop_name:             varstring;  {sysop display name}
  170.       use_realname:           boolean;    {use real name for sysop?}
  171.       local_graphics:         boolean;    {graphics on in local mode?}
  172.       userix_dir:             varstring;  {user index location}
  173.       users_path:             varstring;  {user file pathname}
  174.       caller_path:            varstring;  {caller log pathname}
  175.       cnames_path:            varstring;  {cnames file pathname}
  176.       fsec_path:              varstring;  {fsec file pathname}
  177.       upsec_path:             varstring;  {upsec file pathname}
  178.       conference_menu:        varstring;  {conference menu pathname}
  179.       tranlog_path:           varstring;  {down/upload transfer log pathname}
  180.       logoff_path:            varstring;  {logoff message pathname}
  181.       modem_offhook:          varstring;  {modem off-hook command}
  182.       disable_CTS_check:      boolean;    {disable modem rts/cts handshake}
  183.       recycle_offhook:        boolean;    {modem offhook during recycle?}
  184.       disable_filter:         boolean;    {disable high-bit filter}
  185.       disable_quick:          boolean;    {disable quick logon/join}
  186.       disable_graphics:       boolean;    {disable graphics mode?}
  187.       dos_recycle:            boolean;    {exit to dos after each caller}
  188.       allow_esc_codes:        boolean;    {allow escape codes in messages}
  189.       allow_cc_msgs:          boolean;    {allow carbon copy messages}
  190.       validate_to:            boolean;    {validate "TO:" in messages}
  191.       update_lastread:        boolean;    {update lastread on msg leave}
  192.       new_news:               boolean;    {display only NEW news files?}
  193.       timeout_minutes:        integer;    {keyboard timeout in minutes}
  194.       under_network:          boolean;    {running multi-node?}
  195.       node_number:            varstring;  {node number}
  196.       network_timeout:        integer;    {network timeout in seconds}
  197.       system_name:            varstring;  {name of the bbs system}
  198.       macro_string:           array[1..10] of varstring;
  199.                                           {shift-F1 thru F10 macros}
  200.       public_conferences:     BitMap;     {public conferences}
  201.       conf_count:             integer;    {number of conferences}
  202.       msg_lines:              integer;    {maximum message lines (1-99)}
  203.       ansi_intensity:         varstring;  {default intensity}
  204.       ansi_color:             varstring;  {color for inputs/filedisps}
  205.       event_active:           boolean;    {is event active?}
  206.       event_time:             string8;    {event time hh:mm}
  207.       event_buffer:           integer;    {minutes buffer before event}
  208.       event_noul:             boolean;    {disable uploads before event}
  209.       slide_event:            boolean;    {slide event time if needed}
  210.       disable_freecheck:      boolean;    {disable free space check}
  211.       printer_num:            varstring;  {printer port number 1..3}
  212.       min_upload_free:        integer;    {stop uploads if free space less (K)}
  213.    end;
  214.  
  215.  
  216.  
  217. (* ---------------------------------------------------------------- *)
  218. (* variables *)
  219.  
  220. var
  221.    linenum:         integer;      {used in "More?" prompting;
  222.                                     <0 for nonstop mode,
  223.                                     >1000 for user abort or ^K}
  224.  
  225.    pcbsys:          pcb_sys_rec;  {contents of pcboard.sys}
  226.  
  227.    user:            pcb_user_rec; {contents of user record}
  228.  
  229.    pcbsetup:        pcbsetup_rec; {contents of pcboard.dat}
  230.  
  231.    conf_info:       array[0..max_conf] of pcbconf_rec;
  232.                                  {contents of cnames}
  233.          
  234.    topcps:          integer;     {highest cps possible, this caller}
  235.    baudrate:        string8;     {caller's baud rate}
  236.    username:        string30;    {callers full name}
  237.    first_name:      string20;    {callers first name}
  238.  
  239.    dump_user:       boolean;     {set by F8, carrier loss or time elapsed *)
  240.  
  241.    cmdline:         string;      {current command line *)
  242.    par:             string;      {current command parameter *)
  243.  
  244.    config_file:     filenames;   {filename of configuration file *)
  245.    sys_dir:         filenames;   {directory where pcboard.sys is stored *)
  246.    home_dir:        filenames;   {directory door was loaded from}
  247.  
  248.    alt_i:           boolean;     {file input in effect? *)
  249.    alti_fd:         text;        {... file *)
  250.  
  251.    key_source:      (sysop_key, user_key);
  252.                                  {set by get_key - where did key come from? *)
  253.  
  254.  
  255.