home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / MISC / XDEV_117.ZIP / MSGG.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-02  |  26.5 KB  |  658 lines

  1. /* MSGG.H file*/
  2.  
  3. #include "mem.h"
  4. #include "errno.h"
  5. #include "io.h"
  6. #include "fcntl.h"
  7. #include "dos.h"
  8. #include "dir.h"
  9. #include "stdio.h"
  10. #include "string.h"
  11. #include "stdlib.h"
  12. #include "ctype.h"
  13. #include "time.h"
  14. #include "stddef.h"
  15. #include "process.h"
  16. #include "share.h"
  17. #include "alloc.h"
  18. #include "stdarg.h"
  19. #include "conio.h"
  20. #include "setjmp.h"
  21.  
  22.  
  23. #define begin        {
  24. #define end          }
  25.  
  26. #define true         0
  27. #define false        -1
  28.  
  29. #define shl          <<
  30. #define shr          >>
  31. #define xor          ^
  32. #define and          &&
  33. #define or           ||
  34. #define not          !
  35. #define mod          %
  36. #define BACKSPACE    "\b \b"
  37.  
  38. typedef unsigned       bit;
  39. typedef unsigned int  word;
  40. typedef unsigned char byte;
  41. typedef unsigned long ulong;
  42.  
  43. #define S_IFMT      0170000         /* file type mask */
  44. #define S_IFDIR     0040000         /* directory */
  45. #define S_IFCHR     0020000         /* character special */
  46. #define S_IFREG     0100000         /* regular */
  47. #define S_IREAD     0000400         /* read permission, owner */
  48. #define S_IWRITE    0000200         /* write permission, owner */
  49. #define S_IEXEC     0000100         /* execute/search permission, owner */
  50.  
  51.  
  52. /*--------------------------------------------------------------------------*/
  53. /*                                                                          */
  54. /* MESSAGES.............                                                                 */
  55. /*                                                                          */
  56. /*--------------------------------------------------------------------------*/
  57.  
  58.  
  59. /*--------------------------------------------------------------------------*/
  60. /* FIDO Message header                                                      */
  61. /*--------------------------------------------------------------------------*/
  62. struct _msg {
  63.       char from[36];
  64.       char to[36];
  65.       char subj[63];
  66.       char nodelist[9];    /* OPUS: Name of the nodelist used               */
  67.       char date[20];
  68.       word times;          /* FIDO<tm>: Number of times read                */
  69.       word dest;           /* Destination node                              */
  70.       word orig;           /* Origination node number                       */
  71.       word cost;           /* Unit cost charged to send the message         */
  72.       word orig_net;       /* Origination network number                    */
  73.       word dest_net;       /* Destination network number                    */
  74.       int  msg_filler[4];
  75.       word reply;          /* Current msg is a reply to this msg number     */
  76.       word attr;           /* Attribute (behavior) of the message           */
  77.       word up;             /* Next message in the thread                    */
  78. };
  79.  
  80.  
  81. /*--------------------------------------------------------------------------*/
  82. /* FIDO Message attributes (attr)                                           */
  83. /*--------------------------------------------------------------------------*/
  84. #define MSGPRIVATE 0x0001  /* private message,          0000 0000 0000 0001 */
  85. #define MSGCRASH   0x0002  /* accept for forwarding     0000 0000 0000 0010 */
  86. #define MSGREAD    0x0004  /* read by addressee         0000 0000 0000 0100 */
  87. #define MSGSENT    0x0008  /* sent OK (remote)          0000 0000 0000 1000 */
  88. #define MSGFILE    0x0010  /* file attached to msg      0000 0000 0001 0000 */
  89. #define MSGFWD     0x0020  /* being forwarded           0000 0000 0010 0000 */
  90. #define MSGORPHAN  0x0040  /* unknown dest node         0000 0000 0100 0000 */
  91. #define MSGKILL    0x0080  /* kill after mailing        0000 0000 1000 0000 */
  92. #define MSGLOCAL   0x0100  /* FidoNet vs. local         0000 0001 0000 0000 */
  93. #define MSGXX1     0x0200  /*                           0000 0010 0000 0000 */
  94. #define MSGXX2     0x0400  /* STRIPPED by FidoNet<tm>   0000 0100 0000 0000 */
  95. #define MSGFRQ     0x0800  /* file request              0000 1000 0000 0000 */
  96. #define MSGRRQ     0x1000  /* receipt requested         0001 0000 0000 0000 */
  97. #define MSGCPT     0x2000  /* is a return receipt       0010 0000 0000 0000 */
  98. #define MSGARQ     0x4000  /* audit trail requested     0100 0000 0000 0000 */
  99. #define MSGURQ     0x8000  /* update request            1000 0000 0000 0000 */
  100.  
  101.  
  102. /*-------------------------------------------------------------------------*/
  103. /* XBBS Message header                                                     */
  104. /*-------------------------------------------------------------------------*/
  105. struct _xmsg {
  106.       char from[36];
  107.       char to[36];
  108.       char subj[64];
  109.       word o_point;
  110.       word length;         /* Length of message */
  111.      ulong start;          /* Starting postition in text file              */
  112.       char date[20];
  113.       word times;          /* Number of times read                         */
  114.       word dest;           /* Destination node                             */
  115.       word orig;           /* Origination node number                      */
  116.       word cost;           /* Unit cost charged to send the message        */
  117.       word orig_net;       /* Origination network number                   */
  118.       word dest_net;       /* Destination network number                   */
  119.       char indate[4];      /* import date  (YMD(null))                     */
  120.       word m_attr;         /* Extra attributes                             */
  121.       word d_zone;         /* Destination zone                             */
  122.       word o_zone;         /* Origination zone                             */
  123.       word attr;           /* Attribute (behavior) of the message          */
  124.       word d_point;
  125. };
  126.  
  127.  
  128. /* These apply to m_attr */
  129.  
  130. #define MSGDELETED 0x0001  /* deleted message,          0000 0000 0000 0001*/
  131. #define MSGANON    0x0002  /* anonymous message         0000 0000 0000 0010*/
  132. #define MSGECHO    0x0004  /* unmoved echo message      0000 0000 0000 0100*/
  133. #define MSGNET     0x0008  /* unmoved net message       0000 0000 0000 1000*/
  134. #define MSGHOLD    0x0010  /* file attached to msg      0000 0000 0001 0000*/
  135. #define MSGHOST    0x0020  /* being forwarded           0000 0000 0010 0000*/
  136. #define MSGSCANNED 0x0040  /* already scanned           0000 0000 0100 0000*/
  137. #define MSGKEEP    0x0080  /* don't delete              0000 0000 1000 0000*/
  138. #define MSGTREATED 0x0100  /* soft cr's & lf's removed  0000 0001 0000 0000*/
  139. #define MSGPACKED  0x0200  /* message LZSS compressed   0000 0010 0000 0000*/
  140. /*#define    0x0400  /*  0000 0100 0000 0000*/
  141. /*#define    0x0800  /*  0000 1000 0000 0000*/
  142. /*#define    0x1000  /*  0001 0000 0000 0000*/
  143. /*#define    0x2000  /*  0010 0000 0000 0000*/
  144. /*#define    0x4000  /*  0100 0000 0000 0000*/
  145. #define MSGTAGGED  0x8000  /* used by offline readers   1000 0000 0000 0000*/
  146.  
  147.  
  148.  
  149. /*--------------------------------------------------------------------------*/
  150. /* User record structure                                                    */
  151. /*--------------------------------------------------------------------------*/
  152.  
  153.   struct _user
  154.    begin
  155.       char           name[36];
  156.       char           handle[36];
  157.       struct date    birthdate;
  158.       char           password[12];
  159.       char           city[24];
  160.       char           state[3];
  161.       char           zip[6];
  162.       char           phone1[11];
  163.       char           phone2[11];
  164.       bit length: 7;
  165.       bit cold: 1;
  166.       char           width;
  167.         bit graphics: 1;
  168.         bit fullscreen: 1;
  169.         bit scrnclr: 1;
  170.         bit commodore: 1;
  171.         bit expert: 1;
  172.         bit more: 1;
  173.         bit ignorehrs: 1;
  174.         bit ignorerat: 1;
  175.         bit nokill: 1;
  176.         bit deleted: 1;
  177.         bit arq: 1;
  178.         bit twit: 1;
  179.         bit ansimenus: 1;
  180.         bit gen1: 1;
  181.         bit gen2: 1;
  182.         bit gen3: 1;
  183.       word           attr2;
  184.       word           stat[10];
  185.       unsigned long  upk;
  186.       unsigned long  downk;
  187.       word           upno;
  188.       word           downno;
  189.       word           posts;
  190.       int            credit;
  191.       char           violations;
  192.       struct date    lastdate;
  193.       struct time    lasttime;
  194.       struct date    logondate;
  195.       struct time    logontime;
  196.       unsigned long  times;
  197.       word           callsperday;
  198.       word           timepercall;
  199.       word           totaltime;
  200.       word           callstoday;
  201.       word           timetoday;
  202.       char           variable[5][76]; /* Strings vars saved w/ user record */
  203.       word           numvars[10];     /* Numeric vars saved w/ user record */
  204.       char           comptype;        /* # designating user's computer type */
  205.       word           uktoday;
  206.       word           dktoday;
  207.        bit            hiok: 1;
  208.        bit            lastmsgarea: 10;
  209.        bit            reserved: 5;
  210.       word            pointid;        /* If he's a mailerless point */
  211.       unsigned long  id;
  212.       char           node;
  213.    end;
  214.  
  215.  
  216.  
  217. /*--------------------------------------------------------------------------*/
  218. /* User attributes                                                          */
  219. /*--------------------------------------------------------------------------*/
  220. #define GRAPHICS   0x0001  /* ANSI                      0000 0000 0000 0001 */
  221. #define FULLSCREEN 0x0002  /* full screen editor        0000 0000 0000 0010 */
  222. #define SCRNCLR    0x0004  /* screen clearing?          0000 0000 0000 0100 */
  223. #define COMMODORE  0x0008  /* GP Special flag           0000 0000 0000 1000 */
  224. #define EXPERT     0x0010  /* help level                0000 0000 0001 0000 */
  225. #define MORE       0x0020  /* More? pause               0000 0000 0010 0000 */
  226. #define IGNOREHRS  0x0040  /* Ignore u/d hours          0000 0000 0100 0000 */
  227. #define IGNORERAT  0x0080  /* Ignore ratio enforcement  0000 0000 1000 0000 */
  228. #define NOKILL     0x0100  /* Don't kill user           0000 0001 0000 0000 */
  229. #define DELETED    0x0200  /* User is deleted           0000 0010 0000 0000 */
  230. #define ARQ        0x0400  /* Reliable connect          0000 0100 0000 0000 */
  231. #define TWIT       0x0800  /* Twit or whatever          0000 1000 0000 0000 */
  232. #define ANSIMENUS  0x1000  /* Use ANSI Menus?           0001 0000 0000 0000 */
  233. #define GEN1       0x2000  /* No use by system          0010 0000 0000 0000 */
  234. #define GEN2       0x4000  /* No use by system          0100 0000 0000 0000 */
  235. #define GEN3       0x8000  /* No use by system          1000 0000 0000 0000 */
  236.  
  237.  
  238. /*--------------------------------------------------------------------------*/
  239. /* Message area record                                                      */
  240. /*--------------------------------------------------------------------------*/
  241.  
  242. struct _mboard
  243.  begin
  244.   char       name[48];
  245.   char       forceto[36];
  246.   word       attr;
  247.   word       max;
  248.   word       number;
  249.   word       substat1;
  250.   word       substat2;
  251.   signed char age;
  252.   word         flags;
  253.   word       minwrite;
  254.  end;
  255.  
  256. /*-------------------------------------------------------------------------*/
  257. /* MBoard attributes                                                       */
  258. /*-------------------------------------------------------------------------*/
  259. #define NOORIG     0x0001  /* No Origin or tear       0000 0000 0000 0001 */
  260. #define ANSI       0x0002  /* ANSI                    0000 0000 0000 0010 */
  261. #define PRIVATE    0x0004  /* Obvious                 0000 0000 0000 0100 */
  262. #define PUBLIC     0x0008  /*   "                     0000 0000 0000 1000 */
  263. #define ECHO       0x0010  /*   "                     0000 0000 0001 0000 */
  264. #define NET        0x0020  /*   "                     0000 0000 0010 0000 */
  265. #define MCI        0x0040  /*   "                     0000 0000 0100 0000 */
  266. #define READONLY   0x0080  /*   "                     0000 0000 1000 0000 */
  267. #define ALTERNATE  0x0100  /*   "                     0000 0001 0000 0000 */
  268. #define ALTECHO    0x0200  /*   "                     0000 0010 0000 0000 */
  269. #define ANON       0x0400  /*   "                     0000 0100 0000 0000 */
  270. #define REAL       0x0800  /*   "                     0000 1000 0000 0000 */
  271. #define ASSOC      0x1000  /* Msg area allows assoc   0001 0000 0000 0000 */
  272. #define EXTERN     0x2000  /* Activates [E] prompt    0010 0000 0000 0000 */
  273. #define FORCE      0x4000  /* Always force            0100 0000 0000 0000 */
  274. #define COMPRESS   0x8000  /* Allow LZSS comp here    1000 0000 0000 0000 */
  275.  
  276.  
  277. /*-------------------------------------------------------------------------*/
  278. /* FBoard flags                                                            */
  279. /*-------------------------------------------------------------------------*/
  280. #define COUNTDLS   0x0001  /* Use timestamp as #dls   0000 0000 0000 0001 */
  281. #define FREEFILES  0x0002  /* Don't inc downloads     0000 0000 0000 0010 */
  282. #define FILEASSOC  0x0004  /* File area allows assoc  0000 0000 0000 0100 */
  283. #define FREEUP     0x0008  /* Don't inc uploads       0000 0000 0000 1000 */
  284.  
  285. /*--------------------------------------------------------------------------*/
  286. /* File area record                                                         */
  287. /*--------------------------------------------------------------------------*/
  288.  
  289. struct _fboard
  290.  begin
  291.   char       name[47];
  292.   char       flags;
  293.   char       dpath[79];
  294.   char       upath[79];
  295.   signed char age;
  296.   word         userflags;
  297.   char       leechpercent;
  298.  end;
  299.  
  300.  
  301. #define STOPDL "\x0b\x03\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
  302.  
  303. /*--------------------------------------------------------------------------*/
  304. /* Protocol record                                                          */
  305. /*--------------------------------------------------------------------------*/
  306.  
  307.   struct   protocol {
  308.     char   name[25];
  309.     char   key;
  310.     int    adj;
  311.     char   spawndn[119];
  312.     char   spawnup[119];
  313.     char   abort[48];
  314.     unsigned wild:         1;
  315.     unsigned multi:        1;
  316.     unsigned simul:        1;
  317.     unsigned list:        1;
  318.     unsigned opus:        1;
  319.     unsigned noname:    1;
  320.     unsigned reserved:    2;
  321.     char   pad1;
  322.     char   pad2;
  323.   };
  324.  
  325.  
  326. /*--------------------------------------------------------------------------*/
  327. /*                                                                          */
  328. /* CONFIGURATION.............                                               */
  329. /*                                                                          */
  330. /*--------------------------------------------------------------------------*/
  331.  
  332. struct _config {
  333.    char   commport;       /* Commport to use...0=COM1,1=COM2,etc.          */
  334.    word   node;           /* Our node number                               */
  335.    char   mailpath[79];   /* Path for incoming messages                    */
  336.    char   filepath[79];   /* Path for incoming files                       */
  337.    word   net;            /* Our network number                            */
  338.    word   alt_node;       /* Alternate node number (mainly for HOSTS)      */
  339.    word   alt_net;        /* Alternate net number (mainly for HOSTS)       */
  340.    byte   zone;           /* Our zone number                               */
  341.    byte   alt_zone;       /* Alternate zone number                         */
  342.    char   homepath[79];   /* Path to BBS Files                             */
  343.    char   outpath[79];    /* Path for outbound messages                    */
  344.    char   menupath[79];   /* Path to system menu files                     */
  345.    char   messpath[79];   /* Path to system message files                  */
  346.    char   sysop[36];      /* SysOp's name                                  */
  347.    char   system[64];     /* BBS's name                                    */
  348.    char   logfile[79];    /* System logfile                                */
  349.    word   idleseconds;    /* Seconds user can be idle before disconnect    */
  350.    char   pages;          /* Number of times user can page sysop           */
  351.    bit    sysopin:    1;  /* Is he? 0 or 1                                 */
  352.    bit    touchup:    1;  /* Touchup uploaded file dates? 0 or 1           */
  353.    bit    uptime:     1;  /* 1=Return upload time                          */
  354.    bit    downtime:   1;  /* 1=Return download time                        */
  355.    bit    dvideo:     1;  /* Use direct video for some output?             */
  356.    bit    bvideo:     1;  /* If not, use BIOS?                               */
  357.    bit    bioswrites: 1;  /* Write through BIOS for ANSI?                  */
  358.    bit    debug:      1;  /* Debug on or off (0 or 1)                      */
  359.    bit    ansiavail:  1;  /* Is ANSI available? 0 or 1                       */
  360.    bit       whichstat:  2;  /* Default status line (0-2)                       */
  361.    bit    promptsay:  1;
  362.    char   edansi[79];     /* External ANSI editor DOS string               */
  363.    char   edline[79];     /* External line editor DOS string               */
  364.    char   edlocal[79];    /* Local message editor DOS string               */
  365.    word   ansibaud;       /* Minimum baud for ANSI                         */
  366.    char   quotestring[4]; /* String to put before quotes in reply          */
  367.    ulong  callcount;      /* Number of System calls                        */
  368.    char   lastcaller[36]; /* Last caller to system                         */
  369.    word   netmailboard;   /* Net Mail Board #                              */
  370.    word   altnetboard;    /* Net Mail Board # for alternate zone:net/node  */
  371.    struct _mboard mboard; /* Default message board setup                   */
  372.    struct _fboard fboard; /* Default file board setup                      */
  373.    char   origin[59];     /* Default origin line                           */
  374.    char      carbons;          /* Number of carbons allowed                       */
  375.    char      jumpfile[10][13];  /* Jump filenames                               */
  376.    char   jumpkey[10][2]; /*    Jump keys                                   */
  377.    char   subfile[10][13];/*    Sub filenames                               */
  378.    char   subkey[10][2];  /*    Sub keys                                   */
  379.    word   nolmrs;
  380.    long      quote_pos;      /* Start of next sequential quote in quotefile   */
  381.    char   quote_file[13]; /* Name of quotefile                               */
  382.    char   domain[37];
  383.    char   alt_domain[37];
  384.    bit    forcefilemsg: 1;
  385.    bit    trace: 1;
  386.    bit    RBBSorQBBS: 1;  /* Type of DORINFO?.DEF to make                  */
  387.    bit    reservedbits: 5;
  388.    ulong  nextid;
  389.    word   packsize;
  390.    char   helpkey;
  391.    int    version;
  392.    long   lastcall;
  393.    char   reserved1[94]; /*                                               */
  394.    char   startat;        /* Start u/d enforcement after # d/l's           */
  395.    char   numcomps;       /* How many computer types you are tracking      */
  396.    char   edgraph[79];    /* "Real" ANSI editor                            */
  397.    char   comments;       /* Number of comment lines for upload            */
  398.    word   purgebaud;      /* Maximum baud rate to purge outbound with      */
  399.    bit      genphone:       1; /* Use generic phone input?                      */
  400.    bit    genstatezip: 1; /* Use state & zip as generic field?               */
  401.    bit       share:       1; /* Using SHARE.EXE?                               */
  402.    bit    fastANSI:    1; /* Use INT 29h for ANSI output?                  */
  403.    bit    logmenu:     1;
  404.    bit       logfiles:       1;
  405.    bit    logmsg:       1;
  406.    bit      logtext:       1;
  407.    char      nodelist[79];   /* Path to nodelist files                           */
  408.    word   lastusernum;      /* Last user's record #                           */
  409.    char   useswapdisk;      /* Disk drive to use for swapping                   */
  410.    char   LIMEMS;          /* Use LIMEMS for swapping?                       */
  411.    char   swap;              /* Swap or not?                                   */
  412.    int    available[41];  /* For third party apps...see notes              */
  413.    char   reserved2;
  414. };
  415.  
  416. /*
  417.      Notes on available[] area in _config structure.   These ints may be
  418.      allocated by a third-party program so long as the app first makes
  419.      sure the int is not 0!  Apps should always use the highest
  420.      available slot.  Do not use a slot unless it (the two-byte int) is
  421.      0!  Even XBBS might use a slot someday following this convention,
  422.      so you'll avoid system crashes someday if you play by the rules
  423.      today.
  424. */
  425.  
  426.  
  427. /*--------------------------------------------------------------------------*/
  428. /* Logon Configuration                                                     */
  429. /*--------------------------------------------------------------------------*/
  430.  
  431. struct _logconfig {
  432.   bit name;
  433.   bit handle;
  434.   bit phone1;
  435.   bit phone2;
  436.   bit graphics;
  437.   bit ansiedit;
  438.   bit scrnclr;
  439.   bit pagepause;
  440.   bit commflag;
  441.   bit zipcode;
  442.   bit city;
  443.   bit state;
  444.   bit pass;
  445.   bit birth;
  446.   bit length;
  447.   bit width;
  448.   bit locallog;          /* Automatic logon in local mode? */
  449.  
  450.   char   loglimit;       /* How long to give user for login (mins)        */
  451.   char   nameattempts;   /* How many times user can try to enter name     */
  452.   char   passattempts;   /* How many times user can try to enter pword    */
  453.   word   minbaud;        /* Minimum baud rate                             */
  454.   char   reserved[24];
  455. };
  456.  
  457.  
  458. struct _events {      /* Structure for XBBS online events */
  459.     char filename[13];
  460.     ulong secsleft;
  461. };
  462.  
  463.  
  464.  
  465.  
  466. /*--------------------------------------------------------------------------*/
  467. /* Message packet header                                                    */
  468. /*--------------------------------------------------------------------------*/
  469. #define PKTVER       2
  470.  
  471. struct _pkthdr {
  472.     word
  473.         orig_node,             /* originating node */
  474.         dest_node,             /* destination node */
  475.         year,                  /* 1989 - nnnnn */
  476.         month,
  477.         day,
  478.         hour,
  479.         minute,
  480.         second,
  481.         rate,                  /* unused */
  482.         ver,                   /* 2 */
  483.         orig_net,              /* originating net */
  484.         dest_net;              /* destination net */
  485.     byte
  486.         product,
  487.         rev_lev,               /* revision level */
  488.         password[8];
  489.      word
  490.         qm_orig_zone,
  491.         qm_dest_zone;
  492.      byte
  493.         domain[8];
  494.      word
  495.         orig_zone,             /* originating zone */
  496.         dest_zone,             /* destination zone */
  497.         orig_point,            /* originating point */
  498.         dest_point;            /* destination point */
  499.      long
  500.         pr_data;
  501. };
  502.  
  503. /*      PakdMessage  = 02H 00H         message type, old type-1 is
  504.                                        obsolete
  505.                      origNode          of message
  506.                      destNode          of message
  507.                      origNet           of message
  508.                      destNet           of message
  509.                      AttributeWord
  510.                      cost              in lowest unit of originator's
  511.                                        currency
  512.                      DateTime          message body was last edited
  513.                      toUserName{36}    Null terminated
  514.                      fromUserName{36}  Null terminated
  515.                      subject{72}       Null terminated
  516.                      text{unbounded}   Null terminated          /*
  517.  
  518. /*=====================================================================*/
  519. /* FOSSIL definitions                                                  */
  520. /*=====================================================================*/
  521.  
  522. #define SETBAUD    0
  523. #define TRANSWAIT  1
  524. #define RECVWAIT   2
  525. #define GETSTAT    3
  526. #define INIT       4
  527. #define DEINIT     5
  528. #define DTR        6
  529.   #define UP         1
  530.   #define DOWN       0
  531. #define FLUSHOUT   8
  532. #define PURGEOUT   9
  533. #define PURGEIN    10
  534. #define TRANSMIT   11
  535. #define PEEK       12
  536. #define KEYNOWAIT  13
  537. #define KEYWAIT    14
  538. #define FLOW       15
  539. #define ONOFF      16
  540.   #define ON         0
  541.   #define OFF        2
  542. #define SETCRSR    17
  543. #define READCRSR   18
  544. #define ONEANSI    19
  545.   #define CARRIER    128
  546.   #define INITOK     0x1954
  547. #define WATCHDOG   20
  548. #define REBOOT     23
  549.   #define COLD       0
  550.   #define WARM       1
  551. #define BLOCKREAD  24
  552. #define BLOCKWRITE 25
  553.  
  554.  
  555. /*-------------------------------------------------------------------------*/
  556. /* Nodelist structures for QuickNodeList                                   */
  557. /*-------------------------------------------------------------------------*/
  558.  
  559. /*------------------------------------------------------------------------*/
  560. /* Values for the `flags1' field                                          */
  561. /*------------------------------------------------------------------------*/
  562. #define B_hub      0x0001  /* node is a net hub       0000 0000 0000 0001 */
  563. #define B_host     0x0002  /* node is a net host      0000 0000 0000 0010 */
  564. #define B_region   0x0004  /* node is region coord    0000 0000 0000 0100 */
  565. #define B_zone     0x0008  /* node is a zone coord    0000 0000 0000 1000 */
  566. #define B_CM       0x0010  /* runs continuous mail    0000 0000 0001 0000 */
  567. #define B_ores1    0x0020  /* reserved for Opus       0000 0000 0010 0000 */
  568. #define B_ores2    0x0040  /* reserved for Opus       0000 0000 0100 0000 */
  569. #define B_ores3    0x0080  /* reserved for Opus       0000 0000 1000 0000 */
  570. #define B_ores4    0x0100  /* reserved for Opus       0000 0001 0000 0000 */
  571. #define B_ores5    0x0200  /* reserved for Opus       0000 0010 0000 0000 */
  572. #define B_res1     0x0400  /* reserved for non-Opus   0000 0100 0000 0000 */
  573. #define B_res2     0x0800  /* reserved for non-Opus   0000 1000 0000 0000 */
  574. #define B_res3     0x1000  /* reserved for non-Opus   0001 0000 0000 0000 */
  575. #define B_res4     0x2000  /* reserved for non-Opus   0010 0000 0000 0000 */
  576. #define B_res5     0x4000  /* reserved for non-Opus   0100 0000 0000 0000 */
  577. #define B_res6     0x8000  /* reserved for non-Opus   1000 0000 0000 0000 */
  578.  
  579. struct nodeidx {
  580.     word  zone;
  581.     word  net;
  582.     word  node;
  583.     char  type;
  584. };
  585.  
  586. struct nodeinfo {
  587.     char type;
  588.     word zone;
  589.     word net;
  590.     word node;
  591.     char name[21];
  592.     char city[41];
  593.     char phone[41];
  594.     char password[9];
  595.     word flags;
  596.     word baud;
  597.     int  cost;
  598. };
  599.  
  600.  
  601. /* Symbols for SPAWNIT */
  602.  
  603. #define SPAWN 0;
  604. #define EXEC  1;
  605. #define BATCH 2;
  606. #define DOS   3;
  607. #define EXIT  4;
  608. #define PRINT 5;
  609.  
  610. /* Symbols for GENIN */
  611.  
  612. #define ALLL     1
  613. #define ALPHA    2
  614. #define NUM      3
  615. #define ALPHANUM 4
  616. #define YESNO    5
  617. #define FLE      6
  618. #define FLEP     7
  619. #define FLEW     8
  620. #define FLEPW    9
  621. #define NAME     10
  622. #define NEAT     11
  623. #define PHONE    12
  624. #define DATE     13
  625. #define SUBJECT  14
  626. #define YESNOM   15
  627. #define FLEX     16
  628. #define ARROWS   17
  629. #define ANSIIN   18
  630. #define ANSISET  19
  631. #define FBATCH   20
  632. #define FBATCHW  21
  633. #define FBATCHWP 22
  634. #define FBATCHP  23
  635. #define TRUEANSI 24
  636. #define WORD      25
  637. #define WORDNUM     26
  638. #define BITS     27
  639. #define ANY         28
  640. #define ANYNOECHO 29
  641. #define HYPER    30
  642. #define THRU     31
  643. #define FLENX    64
  644. #define YESNOQ   65
  645.  
  646. /* ANSI COLOR TRANS TABLE TO textcolor() */
  647.  
  648. /* char ansii[8]={30,34,32,36,31,35,33,37}; */
  649.  
  650. /* EQUATES for ANSI directions */
  651.  
  652. #define    UPP        0
  653. #define DOWNN   1
  654. #define FORWARD    2
  655. #define BACK    3
  656.  
  657. /* END OF FILE: msgg.h */
  658.