home *** CD-ROM | disk | FTP | other *** search
/ Best Objectech Shareware Selections / UNTITLED.iso / boss / comm / bbs / 008 / bbbsdef.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-24  |  10.7 KB  |  300 lines

  1. /******************************************************************************
  2.  
  3.   This unit is Copyright 1992, Kim Heino and Tapani T. Salmi.
  4.  
  5.   Definitions and variables for BBBS, version number is below.
  6.   You may use this file as long as this is totally unmodified.
  7.   We take no responsibility over any program using this file.
  8.  
  9. ******************************************************************************/
  10.  
  11. #ifdef __GNUC__
  12. typedef char                  boolean;    /*  8 bit, true or false */
  13. typedef unsigned char         byte;       /*  8 bit, unsigned */
  14. typedef signed short int      integer;    /* 16 bit, signed */
  15. typedef unsigned short int    word;       /* 16 bit, unsigned */
  16. typedef signed long int       longint;    /* 32 bit, signed */
  17. #endif
  18. #ifdef __MSDOS__
  19. typedef char                  boolean;    /*  8 bit, true or false */
  20. typedef unsigned char         byte;       /*  8 bit, unsigned */
  21. typedef signed short int      integer;    /* 16 bit, signed */
  22. typedef unsigned short int    word;       /* 16 bit, unsigned */
  23. typedef signed long int       longint;    /* 32 bit, signed */
  24. #endif
  25. #ifdef LATTICE
  26. typedef char                  boolean;    /*  8 bit, true or false */
  27. typedef unsigned char         byte;       /*  8 bit, unsigned */
  28. typedef signed short int      integer;    /* 16 bit, signed */
  29. typedef unsigned short int    word;       /* 16 bit, unsigned */
  30. typedef signed long int       longint;    /* 32 bit, signed */
  31. #endif
  32.  
  33. #define true                  1
  34. #define false                 0
  35.  
  36. #define rupted                1
  37.  
  38. #define maxnodes              9           /* max node numbers */
  39. #define max_msg               4096        /* max unread messages per area */
  40. #define buffer_len            256         /* com incoming buffer length */
  41. #define buffer_open           190
  42. #define buffer_close          220
  43. #define buffer_out_len        256         /* com outgoing buffer length */
  44. #define macro_len             30          /* macro length */
  45. #define txtsize               552         /* bbbstxt lines */
  46. #define max_macro             5           /* macros */
  47. #define commands_saved        10          /* inputs saved */
  48. #define lines_in_editor       2000        /* max lines in editor */
  49. #define max_lread             127         /* lread cache size (0 to xxx) */
  50. #define downloads_remembered  1024        /* whodown file size */
  51. #define max_script_val        9           /* max script variables */
  52.  
  53. #define acc_readmsg     1                 /* accesst bits */
  54. #define acc_writemsg    2
  55. #define acc_download    4
  56. #define acc_upload      8
  57. #define acc_sigop       16
  58. #define acc_aempty1     32
  59. #define acc_aempty2     64
  60. #define acc_aempty3     128
  61.  
  62. #define stat_must       1                 /* status bits */
  63. #define stat_member     2
  64. #define stat_invite     4
  65. #define stat_fidoarea   8
  66. #define stat_postarea   16
  67. #define stat_sempty1    32
  68. #define stat_sempty2    64
  69. #define stat_noreply    128
  70.  
  71. #define mstat_killed    1                 /* mstatust bits */
  72. #define mstat_moved     2
  73. #define mstat_private   4
  74. #define mstat_sent      8
  75. #define mstat_readed    16
  76. #define mstat_mempty1   32
  77. #define mstat_mempty2   64
  78. #define mstat_mempty3   128
  79.  
  80. #define char_IBM        0                 /* charsets */
  81. #define char_SF7        1
  82. #define char_ISO        2
  83. #define char_IBN        3
  84. #define char_US7        4
  85. #define char_GE7        5
  86. #define char_NO7        6
  87. #define char_FR7        7
  88. #define char_IT7        8
  89. #define char_SP7        9
  90. #define char_MAC        10
  91.  
  92. #define sysop_dos       1                 /* sysop access bits */
  93. #define sysop_confs     2
  94. #define sysop_files     4
  95. #define sysop_priv      8
  96. #define sysop_pass      16
  97.  
  98. struct dat {
  99.   byte year, month, day;
  100. };
  101. struct tim {
  102.   byte hour, minute, second;
  103. };
  104.  
  105. struct timet {
  106.   struct dat date;
  107.   struct tim time;
  108. };
  109.  
  110. struct userrec {
  111.   byte            uempty1[20];
  112.   word            pmsgleft;
  113.   word            pfileup;
  114.   word            pfiledown;
  115.   word            pcalled;
  116.   byte            timebank;
  117.   integer         todayused;
  118.   char            name[31];
  119.   char            pass[9];
  120.   char            address[31];
  121.   char            city[31];
  122.   char            phone[17];
  123.   char            birth[17];
  124.   byte            ok2login;     /* 0 = yes, 1 = get lost, 2 = killed */
  125.   struct timet    lasttime;
  126.   integer         timelimit;
  127.   word            timeson;
  128.   word            uploaded;
  129.   word            downloaded;
  130.   word            msgleft;
  131.   word            msgread;
  132.   byte            sysop;        /* Bit 0=DOS,1=Confs,2=Files,3=Priv,4=Pass */
  133.   byte            charset;
  134.   byte            pagelength;
  135.   byte            ansi;         /* Bit 0=ANSI */
  136.   byte            fse;          /* Bit 0=FSE */
  137.   byte            expert;
  138.   byte            protocol;     /* 0=Z, 1=Y, 2=X, 3=Bi, 4=XCRC, 5=YB, 6=HSL */
  139.   byte            fcheckedy;
  140.   byte            fcheckedm;
  141.   byte            fcheckedd;
  142.   byte            packtype;     /* 0=text, 1=arc, 2=zip, 3=lzh, 4=arj, 5=zoo */
  143.   longint         bytesup;
  144.   longint         bytesdown;
  145.   byte            g_r;          /* Bit 0=G&R */
  146.   word            msgdumped;
  147.   byte            ansimenu;     /* Bit 0=ANSImenu */
  148.   byte            colors;       /* Bit 0=Colors */
  149.   byte            review;       /* Bit 0=Review */
  150.   byte            faccess;      /* 0=up and down, 1=up, 2=down, 3=nothing */
  151.   word            resume;
  152.   byte            limits;
  153.   byte            language;     /* 0..9 (0=English, 1=Suomi, 2=Svenska) */
  154.   byte            mistakes;
  155.   byte            toggles1;     /* Bit 7=XYdisp,6=Lines,5=ConfS,4=Avatar,3=!Flash,2=Hotkeys,1=Indent,0=!Insert */
  156.   byte            readmode;     /* 0=Marked,1=Reference,2=Forward */
  157. };
  158.  
  159. struct msgrec {
  160.   word            number;
  161.   byte            status;
  162.   char            msgfrom[31];
  163.   word            msgfromn;
  164.   char            msgto[31];
  165.   word            msgton;
  166.   char            subject[41];
  167.   struct timet    dated;
  168.   word            replyto;
  169.   word            nextreply;
  170.   word            firstreply;
  171.   longint         offset;
  172.   word            lines;
  173.   byte            zonefrom;
  174.   word            netfrom;
  175.   word            nodefrom;
  176.   longint         msgid;
  177.   byte            mempty[3];
  178. };
  179.  
  180. struct msgusrrec {
  181.   word            lastread;
  182.   byte            access;
  183.   byte            status;
  184. };
  185.  
  186. struct filrec {
  187.   char            name[13];
  188.   char            dir[61];
  189.   char            desc[41];
  190.   struct timet    dated;
  191.   longint         fsize;
  192.   word            uploader;
  193.   word            downloaded;
  194.   word            dirnum;
  195.   byte            status;       /* byte and $7F: 0=normal,1=del,2=p_user,3=free,4=p_conf (bit 7=reserved (repacked)) */
  196.   word            finfo;
  197.   word            fileto;
  198.   byte            fempty[13];
  199. };
  200.  
  201. struct hihhi {
  202.   word            times;
  203.   word            unused2;  /* day# */
  204.   char            name[31];
  205.   char            msg[80];
  206. };
  207.  
  208. struct cfgrec {
  209.   char            versi[5];
  210.   char            bbbsname[31];
  211.   char            sysop[31];
  212.   word            maxactiveconf;
  213.   boolean         bell;
  214.   boolean         rts_cts;
  215.   char            fdbbs[71],
  216.                   bipath[71],
  217.                   dszpath[71];
  218.   char            grab[13];
  219.   char            packers[71],
  220.                   maindir[71],
  221.                   grabdir[71],
  222.                   holddir[71],
  223.                   updir[71],
  224.                   menudir[71],
  225.                   logfile[71],
  226.                   hippodir[71];
  227.   word            zone[maxnodes], net[maxnodes], node[maxnodes], point[maxnodes];
  228.   word            postconf, resumeconf, fileinfoconf;
  229.   integer         newusertime;
  230.   byte            newuserfaccess;
  231.   byte            irq[5];
  232.   byte            pollrate;
  233.   byte            upstatus;
  234.   byte            allowext; /* Bit 7=HS,6=ARC,5=ZIP,4=ZOO,3=ARJ,2=LHA,1=DSZ,0=BI */
  235.   word            maxactivenodes, nodenumber;
  236.   word            startspeed;
  237.   boolean         resetspeed, hangup;
  238.   char            initstring[41];
  239.   char            loginlog[71];
  240.   byte            eventcount;
  241.   byte            eventh[9], eventm[9], evente[9];
  242.   char            pass[9];
  243.   boolean         updowncheck;
  244.   boolean         showprivate;
  245.   char            chatdir[71];
  246.   byte            buildin; /* Bit 5=Blitz,4=5_3,3=5_2,2=5_1,1=Hippo,0=BRoboCop */
  247.   word            baseaddr[5];
  248.   boolean         set16550[5];
  249.   char            hspath[71];
  250.   char            allfiles[13];
  251.   char            commercial[71];
  252.   char            macros[10][41];
  253.   byte            limits[16][2];
  254.   byte            rush[24];
  255.   word            min_speed;
  256.   boolean         local_keys;
  257.   boolean         show_empty_nodes;
  258.   char            newdir[71];
  259.   byte            bankmax;
  260.   byte            bankrate;
  261. };
  262.  
  263. struct noderec {
  264.   byte            status;  /* 0=off,1=active,2=not,3=writing,4=grab,5=down,6=up,7=chat,8=door,9=groupchat */
  265.   word            speed;
  266.   boolean         mnp;
  267.   char            name[45];
  268. };
  269.  
  270. struct chatrec {
  271.   byte            node;
  272.   char            msg[80];
  273. };
  274.  
  275. struct statrec {
  276.   byte            day;    /* 0=sunday, 1=monday, etc... */
  277.   word            min1;   /* user online minutes */
  278.   word            min2;   /* sysop online minutes */
  279.   word            call1;  /* user calls */
  280.   word            call2;  /* sysop calls */
  281.   word            msg1;   /* user msgs entered */
  282.   word            msg2;   /* sysop msgs entered */
  283. };
  284.  
  285. extern  char              ver[6];         /* "0.29"; Version number  */
  286. extern  char              hexs[17];       /* "0123456789ABCDEF";      */
  287. extern  char              *vername;       /* "BBBS/D", "BBBS/2", etc. */
  288.  
  289. extern  struct msgusrrec  lread[max_lread+1], ustatus, confparam;
  290. extern  struct userrec    u;
  291. extern  struct cfgrec     cfg;
  292. extern  struct noderec    node;
  293. extern  FILE              *logfile, *script, *grabfile;
  294. extern  char              bzbuf[512], buffer[buffer_len+1], outbuffer[buffer_out_len+1], *txt[txtsize+1], *txt_start, macros[max_macro][2][macro_len+1], commands[commands_saved][80], filna[13], confname[50], local_buffer[256], comstring[512], temp_string[256], inval[max_script_val+1][80];
  295. extern  word              unum, confnro, baud, realbaud, loginhour, loginmin, lastmsg, curmsg, firstmsg,lastreaded, foryou, newavail, reserved2, reserved3, reserved4, startleft, startdump, startread, msgreaded[max_msg+1];
  296. extern  integer           lastwarn, temptime;
  297. extern  byte              bzlink, chartable[2][256], jobtype, com, reserved1, errl, tempsys, commands_in_memory, pagecounter, lastinchar, spymode, brobot;
  298. extern  boolean           realmnp, carrier, outputstopped, files_checked, desqview, quicklogin, paged, script_running, hotkeys;
  299.  
  300.