home *** CD-ROM | disk | FTP | other *** search
/ Best Objectech Shareware Selections / UNTITLED.iso / boss / comm / bbs / 008 / bbbsdef.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-10-24  |  8.6 KB  |  272 lines

  1. unit bbbsdef;
  2.  
  3. {==============================================================================
  4.  
  5.   This unit is Copyright 1992, Kim Heino.
  6.  
  7.   Definitions and variables for BBBS, version number is below.
  8.   You may use this file as long as this is totally unmodified.
  9.   I take no responsibility over any program using this file.
  10.   Also included to original packet: BBBSPACK.TPU
  11.  
  12. ==============================================================================}
  13.  
  14. {$f+,o-,v-}
  15.  
  16. interface
  17.  
  18. const ver : string[4] = '0.28';       { version }
  19.       maxnodes = 9;                   { max node numbers }
  20.       max_msg = 3200;                 { max unread messages per area }
  21.       buffer_len = 320;               { com incoming buffer length }
  22.       buffer_open = 64;
  23.       buffer_close = 32;
  24.       macro_len = 30;                 { macro length }
  25.       txtsize = 414;                  { bbbstxt lines }
  26.       max_macro = 5;                  { macros }
  27.       commands_saved = 10;            { inputs saved }
  28.       lines_in_editor = 600;          { max lines in editor }
  29.       max_script_val = 9;             { max script variables }
  30.       max_lread = 127;
  31.       downloads_remembered = 512;
  32.       hexs : string[16] = '0123456789ABCDEF';
  33.  
  34. type accesst = set of (readmsg, writemsg, download, upload, sigop, aempty1, aempty2, aempty3);
  35.      statust = set of (must, member, invite, fidoarea, postarea, resume, fileinfo, noreply);
  36.      mstatust = set of (killed, moved, private, sent, readed, mempty1, mempty2, mempty3);
  37.      chars = (char_IBM, char_SF7, char_ISO, char_IBN, char_US7, char_GE7,
  38.               char_NO7, char_FR7, char_IT7, char_SP7);
  39.  
  40.      timet = record
  41.        date : record
  42.          year, month, day : byte;
  43.        end;
  44.        time : record
  45.          hour, minute, second : byte;
  46.        end;
  47.      end;
  48.  
  49.      userrec = record
  50.        uempty1    : array[1..20] of byte;
  51.        pmsgleft   : word;
  52.        pfileup    : word;
  53.        pfiledown  : word;
  54.        pcalled    : word;
  55.        timebank   : byte;
  56.        todayused  : integer;
  57.        name       : string[30];
  58.        pass       : string[8];
  59.        address    : string[30];
  60.        city       : string[30];
  61.        phone      : string[16];
  62.        birth      : string[16];
  63.        ok2login   : byte;       { 0 = yes, 1 = get lost, 2 = killed }
  64.        lasttime   : timet;
  65.        timelimit  : integer;
  66.        timeson    : word;
  67.        uploaded   : word;
  68.        downloaded : word;
  69.        msgleft    : word;
  70.        msgread    : word;
  71.        sysop      : byte;       { Bit 0=DOS,1=Confs,2=Files,3=Priv,4=Pass }
  72.        charset    : chars;
  73.        pagelength : byte;
  74.        ansi       : boolean;    {*}
  75.        fse        : boolean;    {*}
  76.        expert     : byte;
  77.        protocol   : byte;       { 0=Z, 1=Y, 2=X, 3=Bi, 4=XCRC, 5=YB, 6=HSL }
  78.        fcheckedy  : byte;
  79.        fcheckedm  : byte;
  80.        fcheckedd  : byte;
  81.        packtype   : byte;       { 0=text, 1=arc, 2=zip, 3=lzh, 4=arj, 5=zoo }
  82.        bytesup    : longint;
  83.        bytesdown  : longint;
  84.        g_r        : boolean;    {*}
  85.        msgdumped  : word;
  86.        ansimenu   : boolean;    {*}
  87.        colors     : boolean;    {*}
  88.        review     : boolean;    {*}
  89.        faccess    : byte;       { 0=up and down, 1=up, 2=down, 3=nothing }
  90.        resume     : word;
  91.        limits     : byte;
  92.        language   : byte;       { 0..9 (0=English, 1=Suomi) }
  93.        mistakes   : byte;
  94.        toggles1   : byte;       { Bit 7=XYdisp,6=Lines,5=ConfS,4=Avatar,3=not(Flash) }
  95.        readmode   : byte;       { 0=Marked,1=Reference,2=Forward }
  96.      end;
  97.  
  98.      msgrec = record
  99.        number     : word;
  100.        status     : mstatust;
  101.        msgfrom    : string[30];
  102.        msgfromn   : word;
  103.        msgto      : string[30];
  104.        msgton     : word;
  105.        subject    : string[40];
  106.        dated      : timet;
  107.        replyto    : word;
  108.        nextreply  : word;
  109.        firstreply : word;
  110.        offset     : longint;
  111.        lines      : word;
  112.        zonefrom   : byte;
  113.        netfrom    : word;
  114.        nodefrom   : word;
  115.        msgid      : longint;
  116.        mempty     : array[1..3] of byte;
  117.      end;
  118.  
  119.      msgusrrec = record
  120.        lastread   : word;
  121.        access     : accesst;
  122.        status     : statust;
  123.      end;
  124.  
  125.      filrec = record
  126.        name       : string[12];
  127.        dir        : string[60];
  128.        desc       : string[40];
  129.        dated      : timet;
  130.        fsize      : longint;
  131.        uploader   : word;
  132.        downloaded : word;
  133.        dirnum     : word;
  134.        status     : byte;       { byte and $7F: 0=normal,1=del,2=p_user,3=free,4=p_conf (bit 7=reserved (repacked)) }
  135.        finfo      : word;
  136.        fileto     : word;
  137.        fempty     : array[1..13] of byte;
  138.      end;
  139.  
  140.      hihhi = record
  141.        unused1    : word;       { times }
  142.        unused2    : word;       { day# }
  143.        name       : string[30];
  144.        msg        : string[79];
  145.      end;
  146.  
  147.      cfgrec = record
  148.        versi : string[4];
  149.        bbbsname : string[30];
  150.        sysop : string[30];
  151.        maxactiveconf : word;
  152.        bell : boolean;
  153.        rts_cts : boolean;
  154.        fdbbs, bipath, dszpath : string[70];
  155.        grab : string[12];
  156.        packers,
  157.        maindir,
  158.        grabdir,
  159.        holddir,
  160.        updir,
  161.        menudir,
  162.        logfile,
  163.        hippodir : string[70];
  164.        zone, net, node, point : array[1..maxnodes] of word;
  165.        postconf, resumeconf, fileinfoconf : word;
  166.        newusertime : integer;
  167.        newuserfaccess : byte;
  168.        irq : array[0..5] of byte;
  169.        upstatus : byte;
  170.        allowext : byte; { Bit+1 8=HS,7=ARC,6=ZIP,5=ZOO,4=ARJ,3=LHA,2=DSZ,1=BI }
  171.        maxnodes, nodenumber : word;
  172.        startspeed : word;
  173.        resetspeed, hangup : boolean;
  174.        initstring : string[40];
  175.        loginlog : string[70];
  176.        eventcount : byte;
  177.        eventh, eventm, evente : array[1..9] of byte;
  178.        pass : string[8];
  179.        updowncheck : boolean;
  180.        showprivate : boolean;
  181.        chatdir : string[70];
  182.        buildin : byte; { Bit+1 5=5_3,4=5_2,3=5_1,2=Hippo,1=Robo }
  183.        baseaddr : array[0..4] of word;
  184.        set16550 : array[0..4] of boolean;
  185.        hspath : string[70];
  186.        allfiles : string[12];
  187.        commercial : string[70];
  188.        macros : array[1..10] of string[40];
  189.        limits : array[0..15,1..2] of byte;
  190.        rush : array[0..23] of byte;
  191.        min_speed : word;
  192.        local_keys : boolean;
  193.        show_empty_nodes : boolean;
  194.        newdir : string[70];
  195.        bankmax : byte;
  196.        bankrate : byte;
  197.      end;
  198.  
  199.      noderec = record
  200.        status : byte; { 0=off,1=active,2=not,3=writing,4=grab,5=down,6=up,7=chat,8=door,9=groupchat }
  201.        speed  : word;
  202.        mnp    : boolean;
  203.        name   : string[44];
  204.      end;
  205.  
  206.      chatrec = record
  207.        node : byte;
  208.        msg  : string[79];
  209.      end;
  210.  
  211.      statrec = record
  212.        day    : byte; { 0=sunday, 1=monday, etc... }
  213.        min1   : word; { user online minutes }
  214.        min2   : word; { sysop online minutes }
  215.        call1  : word; { user calls }
  216.        call2  : word; { sysop calls }
  217.        msg1   : word; { user msgs entered }
  218.        msg2   : word; { sysop msgs entered }
  219.      end;
  220.  
  221. var buffer : array[0..buffer_len] of char;
  222.     chartable : array[1..2, 0..255] of char;
  223.     msgreaded : array[1..max_msg] of word;
  224.     txt : array[1..txtsize] of ^string;
  225.     macros : array[1..max_macro, 1..2] of string[macro_len];
  226.     commands : array[1..commands_saved] of string[72];
  227.     lread : array[0..max_lread] of msgusrrec;
  228.     inval : array[1..max_script_val] of string[70];
  229.     u : userrec;
  230.     cfg : cfgrec;
  231.     ustatus, confparam : msgusrrec;
  232.     node : noderec;
  233.     confname : string[20];
  234.     logfile, script, grabfile : text;
  235.     local_buffer, comstring : string;
  236.     unum : longint;
  237.     old_guru : pointer;
  238.     confnro, baud, realbaud, loginhour, loginmin, lastmsg, curmsg, firstmsg,
  239.     lastreaded, foryou, newavail, reserved2, reserved3, reserved4, startleft,
  240.     startdump, startread : word;
  241.     lastwarn, temptime : integer;
  242.     jobtype, com, reserved1, errl, tempsys, commands_in_memory, pagecounter : byte;
  243.     lastinchar : char;
  244.     realmnp, carrier, outputstopped, files_checked, desqview, quicklogin,
  245.     paged, script_running : boolean;
  246.     filna : string[12];
  247.  
  248. implementation
  249.  
  250. {begin}
  251. end.
  252.  
  253. ===============================================================================
  254.  
  255. unit bbbspack;
  256.  
  257. {$f+,o-,v-}
  258.  
  259. interface
  260.  
  261. function  pack(s : string) : string;
  262. function  unpack(s : string) : string;
  263. procedure clrstr(var s : string);
  264. function  whatcpu : byte;
  265.  
  266. var _32_bit_processor : boolean;
  267.  
  268. implementation
  269.  
  270. ===============================================================================
  271.  
  272.